From 70c932170a4d6e8c15648cac53406be4a817911d Mon Sep 17 00:00:00 2001 From: Jean Sirmai Date: Sat, 14 Sep 2024 23:03:19 +0200 Subject: [PATCH] WIP: strftime --- src/fsm/dispatch.c | 16 +++---- src/fsm/journal.c | 51 ++++++++++++++++++++-- src/fsm/prefer.c | 18 ++++---- src/main.c | 2 +- src/signal.c | 72 +++++++++++++++--------------- src/widget/dispatch.c | 4 +- static void fsm journal.forget | 80 ++++++++++++++++++++++++++++++++++ 7 files changed, 184 insertions(+), 59 deletions(-) create mode 100644 static void fsm journal.forget diff --git a/src/fsm/dispatch.c b/src/fsm/dispatch.c index 15dc873..65e25c8 100644 --- a/src/fsm/dispatch.c +++ b/src/fsm/dispatch.c @@ -64,14 +64,14 @@ void fsm_journal_push_front_from_fsm (char *message) void fsm_init() { - fsm_journal_push_front (&gologos, " fsm > fsm_init() start"); + fsm_journal_push_front (&gologos, "fsm fsm_init() start"); - fsm_measures_list_init(); fsm_journal_push_front (&gologos, " fsm > fsm_measures_list_init()"); - fsm_results_list_init(); fsm_journal_push_front (&gologos, " fsm > fsm_results_list_init()"); - fsm_displayable_list_init(); fsm_journal_push_front (&gologos, " fsm > fsm_displayable_list_init()"); - fsm_preferences_init(); fsm_journal_push_front (&gologos, " fsm > fsm_preferences_init()"); + fsm_measures_list_init(); fsm_journal_push_front (&gologos, "fsm fsm_measures_list_init()"); + fsm_results_list_init(); fsm_journal_push_front (&gologos, "fsm fsm_results_list_init()"); + fsm_displayable_list_init(); fsm_journal_push_front (&gologos, "fsm fsm_displayable_list_init()"); + fsm_preferences_init(); fsm_journal_push_front (&gologos, "fsm fsm_preferences_init()"); - fsm_journal_push_front (&gologos, " fsm > fsm_init() end"); + fsm_journal_push_front (&gologos, "fsm fsm_init() end"); } void fsm_journal_publication_request (char *message) {fsm_journal_publish (gologos, message);} @@ -91,9 +91,9 @@ void fsm_set_preferences_state (bool value) { preferences_have_been_modified = value; if (value) fsm_journal_push_front (&gologos, - " fsm > fsm_set_preferences_state() <> preferences modified = TRUE"); + "fsm fsm_set_preferences_state() <> preferences modified = TRUE"); else fsm_journal_push_front (&gologos, - " fsm > fsm_set_preferences_state() <> preferences modified = FALSE"); + "fsm fsm_set_preferences_state() <> preferences modified = FALSE"); } bool fsm_get_preferences_state() {return preferences_have_been_modified;} diff --git a/src/fsm/journal.c b/src/fsm/journal.c index 254bafc..b453d86 100644 --- a/src/fsm/journal.c +++ b/src/fsm/journal.c @@ -27,11 +27,12 @@ #include #include #include +#include #include #include "../../include/fsm.h" /******************************************************************************/ -/* A journal stores chronologically the fsm yy_dd_mms */ +/* A journal stores chronologically the fsm events */ /* during a session run (rules exec, mainly) */ /******************************************************************************/ @@ -121,20 +122,64 @@ void fsm_journal_seek (journal jj, long usec, char *message) else printf ("> date (usec) %ld not found in journal\n", usec); } + +//------------------------------------------------------------------------------------ + +static void fsm_journal_get_event_date (char *event) +{ + struct timeval tv; + gettimeofday (&tv, NULL); + long yy_dd_mm = tv.tv_sec; + long usec = tv.tv_usec; + + char buf1[]=""; + strftime (buf1, JOURNAL_DATE_MAX_LENGTH, "%D %T", localtime (&yy_dd_mm)); + printf ("%s + %6ld ", buf1, usec); + + // *event = "ldkvbhej xadrhsjfvrejhs "; +} + void fsm_journal_publish (journal jj, char *message) { unit *a_unit = jj.last; char buf [JOURNAL_DATE_MAX_LENGTH]; + char myString[] = "Hello World"; + fsm_journal_get_event_date (myString); + int nb = 0; while (a_unit) { // Format time, "ddd yyyy-mm-dd hh:mm:ss zzz" "%Y-%m-%d %H:%M:%S" // https://www.man7.org/linux/man-pages/man3/strftime.3.html strftime(buf, sizeof(buf), "%D %T", localtime(&a_unit->yy_dd_mm)); - printf ("%s > %6ld < %s\n", buf, a_unit->usec, a_unit->message); + printf ("%s + %6ld %6d %s\n", buf, a_unit->usec, nb, a_unit->message); a_unit = a_unit->prev; nb ++; } - printf ("%s (n = %d)\n", message, nb); + + // char *event [JOURNAL_DATE_MAX_LENGTH] = "gyufgbyfjuvfde"; + // int **p_event [JOURNAL_DATE_MAX_LENGTH]; + fsm_journal_get_event_date (message); + + printf ("%4d %s\n", nb, message); } +// https://nicolasj.developpez.com/articles/libc/string/ +// https://thelinuxcode.com/pass-string-function-c-language/ +// +/* +void modifyString(char *str) { + *str = ‘J‘; // Dereference to change first char +} + +int main() { + char myString[] = "Hello World"; + + modifyString(myString); + + printf("%s", myString); // Prints Jello World +} + +Because modifyString receives a pointer to the string, + * it can modify the original by dereferencing. +*/ diff --git a/src/fsm/prefer.c b/src/fsm/prefer.c index c7a7524..8dad69f 100644 --- a/src/fsm/prefer.c +++ b/src/fsm/prefer.c @@ -74,7 +74,7 @@ void fsm_store_restore_reset (int choice, int value) switch (choice) { case (STORE) : fsm_journal_push_front_from_fsm ( - "prefer > fsm_store_restore_reset() <> switch (STORE)"); + "prefer fsm_store_restore_reset() <> switch (STORE)"); for (int i = 0; i < n_objects; i++) { p [i] = widget_get_object_transparency (i); widget_set_object_transparency_to_value (i, p [i]); @@ -82,19 +82,19 @@ void fsm_store_restore_reset (int choice, int value) break; case (RESTORE) : fsm_journal_push_front_from_fsm ( - "prefer > fsm_store_restore_reset() <> switch (RESTORE)"); + "prefer fsm_store_restore_reset() <> switch (RESTORE)"); for (int i = 0; i < n_objects; i++) widget_set_object_transparency_to_value (i, p [i]); break; case (RESET) : fsm_journal_push_front_from_fsm ( - "prefer > fsm_store_restore_reset() <> switch (RESET)"); + "prefer fsm_store_restore_reset() <> switch (RESET)"); for (int i = 0; i < n_objects; i++) widget_set_object_transparency_to_value (i, value); // i * 4 // rand() % 127 break; default : fsm_journal_push_front_from_fsm ( - "prefer > fsm_store_restore_reset() <> switch (default)"); + "prefer fsm_store_restore_reset() <> switch (default)"); } fsm_set_preferences_state (TRUE); @@ -109,9 +109,9 @@ static int reset_situations_to_value = -1; void fsm_reset_all_situations_transparencies_at_value (int value) { - char str1[140] = "prefer > fsm_reset_all_situations_transparencies_at_value() "; + char str1[140] = "prefer fsm_reset_all_situations_transparencies_at_value() "; char str2[10]; sprintf(str2, "%d, ", value); strcat(str1, str2); - fsm_journal_push_front_from_fsm ("prefer > fsm_reset_all_situations_transparencies_at_value() << TODO (prefer)"); // TODO + fsm_journal_push_front_from_fsm ("prefer fsm_reset_all_situations_transparencies_at_value() << TODO (prefer)"); // TODO reset_situations_to_value = value; widget_reset_all_situations_transparencies_to_value (value); } @@ -127,7 +127,7 @@ void fsm_reset_all_situations_transparencies_at_value (int value) void fsm_add_displayable (char *displayable_name) { fsm_journal_push_front_from_fsm ( - strcat("prefer > fsm_add_displayable() ", displayable_name)); // TODO + strcat("prefer fsm_add_displayable() ", displayable_name)); // TODO } @@ -137,12 +137,12 @@ void fsm_add_displayable (char *displayable_name) void fsm_preferences_init () { fsm_journal_push_front_from_fsm ( - "prefer > fsm_preferences_init()"); + "prefer fsm_preferences_init()"); } void fsm_displayable_list_init () { fsm_journal_push_front_from_fsm ( - "prefer > fsm_displayable_list_init()"); + "prefer fsm_displayable_list_init()"); } diff --git a/src/main.c b/src/main.c index 9727625..c0fc341 100644 --- a/src/main.c +++ b/src/main.c @@ -145,7 +145,7 @@ int main (int argc, char **argv) int status = g_application_run (G_APPLICATION (app), argc, argv); g_object_unref (app); - fsm_journal_publication_request ("main > fsm_journal_view_request() That'all folks ! 👋️ 😄️"); + fsm_journal_publication_request ("main That'all folks ! 👋️😄️"); return status; } diff --git a/src/signal.c b/src/signal.c index 2ef5794..942c9ed 100644 --- a/src/signal.c +++ b/src/signal.c @@ -36,7 +36,7 @@ static void on_auto_notification (const char *message) { - fsm_journal_widget_event ("signal > on_auto_notification()", PRIORITY_1); + fsm_journal_widget_event ("signal on_auto_notification()", PRIORITY_1); /* Ignored (2024-06-06) because I don't know how to get "main_window" easily if (window->toast_revealer == NULL) { @@ -63,7 +63,7 @@ static void on_auto_notification (const char *message) static void on_user_tree_expander_toggled (GtkExpander *expander, gpointer user_data) { - fsm_journal_widget_event ("signal > on_user_tree_expander_toggled()", PRIORITY_1); + fsm_journal_widget_event ("signal on_user_tree_expander_toggled()", PRIORITY_1); GtkTreeListRow *row = GTK_TREE_LIST_ROW (user_data); gboolean is_expanded = gtk_tree_list_row_get_expanded (row); gtk_tree_list_row_set_expanded (row, ! is_expanded); @@ -74,7 +74,7 @@ void on_bind_user_tree_factory (GtkSignalListItemFactory *factory, GObject* object, gpointer user_data) { - fsm_journal_widget_event ("signal > on_bind_user_tree_factory()", PRIORITY_0); + fsm_journal_widget_event ("signal on_bind_user_tree_factory()", PRIORITY_0); GtkListItem *list_item = GTK_LIST_ITEM (object); assert (list_item); @@ -98,7 +98,7 @@ void on_bind_user_tree_factory (GtkSignalListItemFactory *factory, void on_setup_user_tree_factory (GtkSignalListItemFactory *factory, GObject* object, gpointer user_data){ - fsm_journal_widget_event ("signal > on_setup_user_tree_factory()", PRIORITY_0); + fsm_journal_widget_event ("signal on_setup_user_tree_factory()", PRIORITY_0); GtkWidget* expander = gtk_expander_new (NULL); gtk_list_item_set_child (GTK_LIST_ITEM (object), expander); } @@ -111,7 +111,7 @@ void on_setup_user_tree_factory (GtkSignalListItemFactory *factory, gboolean on_glarea_render (GtkGLArea *area, GdkGLContext *context) { - fsm_journal_widget_event ("signal > on_glarea_render()", PRIORITY_1); + fsm_journal_widget_event ("signal on_glarea_render()", PRIORITY_1); // Check if the widget is a glarea if(gtk_gl_area_get_error(area) != NULL) { on_auto_notification("An OpenGL error occured !"); @@ -130,7 +130,7 @@ gboolean on_glarea_render (GtkGLArea *area, /* We need to set up our state when we realize the GtkGLArea widget */ void on_glarea_realize (GtkWidget *widget) { - fsm_journal_widget_event ("signal > on_glarea_realize()", PRIORITY_1); + fsm_journal_widget_event ("signal on_glarea_realize()", PRIORITY_1); GError *internal_error = NULL; // Make the GL context current to be able to call the GL API @@ -156,7 +156,7 @@ void on_glarea_realize (GtkWidget *widget) /* We should tear down the state when unrealizing */ void on_glarea_unrealize (GtkWidget *widget) { - fsm_journal_widget_event ("signal > on_glarea_unrealize()", PRIORITY_1); + fsm_journal_widget_event ("signal on_glarea_unrealize()", PRIORITY_1); GError *internal_error = NULL; // Make the GL context current to be able to call the GL API @@ -179,7 +179,7 @@ void on_glarea_unrealize (GtkWidget *widget) void on_axis_value_change (GtkAdjustment *adjustment, gpointer data) { - fsm_journal_widget_event ("signal > on_axis_value_change()", PRIORITY_1); + fsm_journal_widget_event ("signal on_axis_value_change()", PRIORITY_1); GtkWidget *slider = gtk_widget_get_parent(GTK_WIDGET(data)); GtkWidget *container_widget = gtk_widget_get_parent(GTK_WIDGET(slider)); @@ -207,7 +207,7 @@ void on_axis_value_change (GtkAdjustment *adjustment, gpointer data) void on_save_current_model_before_editing (GtkWidget *btt_SAVE_CURRENT_MODEL, gpointer data) { - fsm_journal_widget_event ("signal > on_save_current_model_before_editing()", PRIORITY_1); + fsm_journal_widget_event ("signal on_save_current_model_before_editing()", PRIORITY_1); gtk_widget_set_sensitive (GTK_WIDGET (data), TRUE); printf ("signal.c - SAVE_CURRENT_MODEL_BEFORE_EDITING\n"); @@ -216,14 +216,14 @@ void on_save_current_model_before_editing (GtkWidget *btt_SAVE_CURRENT_MODEL, void on_discard_current_model_before_editing (GtkWidget *btt_SAVE_CURRENT_MODEL, gpointer data) { - fsm_journal_widget_event ("signal > on_discard_current_model_before_editing()", PRIORITY_1); + fsm_journal_widget_event ("signal on_discard_current_model_before_editing()", PRIORITY_1); gtk_window_close (GTK_WINDOW (data)); } void on_write_current_model (GtkWidget *btt_WRITE_CURRENT_MODEL, gpointer data) { - fsm_journal_widget_event ("signal > on_write_current_model()", PRIORITY_1); + fsm_journal_widget_event ("signal on_write_current_model()", PRIORITY_1); gtk_window_close (GTK_WINDOW (data)); printf ("signal.c - WRITE_CURRENT_MODEL\n"); } @@ -240,7 +240,7 @@ static void switch_state_rules_data(); void on_toggle_exec_edit (GtkWidget *toggled_button, gpointer user_data) { - fsm_journal_widget_event ("signal > on_toggle_exec_edit()", PRIORITY_1); + fsm_journal_widget_event ("signal on_toggle_exec_edit()", PRIORITY_1); if (fsm_get_exec_edit ()) { // TODO (or NOT ?) et si je ne suis pas sur la page SYNTH gtk_button_set_icon_name (GTK_BUTTON (toggled_button), @@ -269,7 +269,7 @@ void on_toggle_exec_edit (GtkWidget *toggled_button, gpointer user_data) static void switch_state_rules_data() { - fsm_journal_widget_event ("signal > switch_state_rules_data()", PRIORITY_1); + fsm_journal_widget_event ("signal switch_state_rules_data()", PRIORITY_1); switch (fsm_get_state_rules_data()) { case (SYNTH) : @@ -321,7 +321,7 @@ static void switch_state_rules_data() // Les noms d'icônes sont utilisés pour deux fonctions distinctes... void on_toggle_state_rules_data (GtkWidget *toggled_button, gpointer user_data) { - fsm_journal_widget_event ("signal > on_toggle_state_rules_data()", PRIORITY_1); + fsm_journal_widget_event ("signal on_toggle_state_rules_data()", PRIORITY_1); const char *toggled_button_name = gtk_check_button_get_label (GTK_CHECK_BUTTON (toggled_button)); int is_active = gtk_check_button_get_active (GTK_CHECK_BUTTON (toggled_button)); @@ -339,7 +339,7 @@ void on_toggle_state_rules_data (GtkWidget *toggled_button, gpointer user_data) // ------------ M E N U / S E A R C H / H O M E / E T C ----------- // void on_clicked_topbar_right_search (GtkWidget *btt_menu, gpointer list_box) { - fsm_journal_widget_event ("signal > on_clicked_topbar_right_search()", PRIORITY_1); + fsm_journal_widget_event ("signal on_clicked_topbar_right_search()", PRIORITY_1); // next line presents the text_window and works only once.\n // It should present a menu.\n"); // TODO gtk_window_present (GTK_WINDOW (widget_get_text_window())); @@ -348,7 +348,7 @@ void on_clicked_topbar_right_search (GtkWidget *btt_menu, gpointer list_box) { void on_clicked_topbar_right_home (GtkWidget *btt_reset, gpointer data) { - fsm_journal_widget_event ("signal > on_clicked_topbar_right_home()", PRIORITY_1); + fsm_journal_widget_event ("signal on_clicked_topbar_right_home()", PRIORITY_1); // gtk_window_present (GTK_WINDOW (widget_get_dialog_window())); // NB works only once. < TODO } @@ -363,7 +363,7 @@ void on_clicked_topbar_right_home (GtkWidget *btt_reset, gpointer data) void on_updating_objects_transparencies (GtkWidget *btt_source, GtkScrollbar *scrollbar) { - fsm_journal_widget_event ("signal > on_updating_objects_transparencies()", PRIORITY_1); + fsm_journal_widget_event ("signal on_updating_objects_transparencies()", PRIORITY_1); const char *btt_name = gtk_button_get_icon_name (GTK_BUTTON (btt_source)); int value = gtk_adjustment_get_value (gtk_scrollbar_get_adjustment (scrollbar)); @@ -376,7 +376,7 @@ void on_updating_objects_transparencies (GtkWidget *btt_source, GtkScrollbar *sc void on_resetting_XYZ_in_state_page () { - fsm_journal_widget_event ("signal > on_resetting_XYZ_in_state_page()", PRIORITY_1); + fsm_journal_widget_event ("signal on_resetting_XYZ_in_state_page()", PRIORITY_1); widget_state_XYZ_reset_all(); } @@ -384,7 +384,7 @@ void on_resetting_XYZ_in_state_page () void on_situations_box_do_reset (GtkWidget *btt_reset, GtkScrollbar *reset_scrollbar) { - fsm_journal_widget_event ("signal > on_situations_box_do_reset()", PRIORITY_1); + fsm_journal_widget_event ("signal on_situations_box_do_reset()", PRIORITY_1); GtkAdjustment *adj_situ = gtk_scrollbar_get_adjustment (reset_scrollbar); fsm_reset_all_situations_transparencies_at_value (gtk_adjustment_get_value (adj_situ)); } @@ -397,7 +397,7 @@ void on_situations_box_do_reset (GtkWidget *btt_reset, GtkScrollbar *reset_scrol void on_clicked_topbar_right_measure (GtkWidget *btt, gpointer data) { - fsm_journal_widget_event ("signal > on_clicked_topbar_right_measure()", PRIORITY_1); + fsm_journal_widget_event ("signal on_clicked_topbar_right_measure()", PRIORITY_1); // fsm_measures_sorted_list_do something (); gtk_window_set_child (GTK_WINDOW (widget_get_main_window ()), GTK_WIDGET (widget_get_measure_page())); @@ -405,98 +405,98 @@ void on_clicked_topbar_right_measure (GtkWidget *btt, gpointer data) void on_start_new_measure (GtkWidget *btt, gpointer data) { - fsm_journal_widget_event ("signal > on_start_new_measure()", PRIORITY_1); + fsm_journal_widget_event ("signal on_start_new_measure()", PRIORITY_1); gtk_window_set_child (GTK_WINDOW (widget_get_main_window ()), GTK_WIDGET (widget_measure_do_select_rules_first())); } void on_select_rules_first (GtkWidget *btt, gpointer data) { - fsm_journal_widget_event ("signal > on_select_rules_first()", PRIORITY_1); + fsm_journal_widget_event ("signal on_select_rules_first()", PRIORITY_1); gtk_window_set_child (GTK_WINDOW (widget_get_main_window ()), GTK_WIDGET (widget_measure_do_depends_on_one_or_two_events())); } void on_measure_depends_on_a_single_event (GtkWidget *btt, gpointer data) { - fsm_journal_widget_event ("signal > on_measure_depends_on_a_single_event()", PRIORITY_1); + fsm_journal_widget_event ("signal on_measure_depends_on_a_single_event()", PRIORITY_1); gtk_window_set_child (GTK_WINDOW (widget_get_main_window ()), GTK_WIDGET (widget_measure_do_depends_on_a_single_event())); } void on_measure_depends_on_two_events (GtkWidget *btt, gpointer data) { - fsm_journal_widget_event ("signal > on_measure_depends_on_two_events()", PRIORITY_1); + fsm_journal_widget_event ("signal on_measure_depends_on_two_events()", PRIORITY_1); gtk_window_set_child (GTK_WINDOW (widget_get_main_window ()), GTK_WIDGET (widget_measure_do_select_a_second_rules_set())); } void on_select_a_second_rules_set (GtkWidget *btt, gpointer data) { - fsm_journal_widget_event ("signal > on_select_a_second_rules_set()", PRIORITY_1); + fsm_journal_widget_event ("signal on_select_a_second_rules_set()", PRIORITY_1); gtk_window_set_child (GTK_WINDOW (widget_get_main_window ()), GTK_WIDGET (widget_measure_do_choose_an_event_type())); } void on_select_a_second_measurement (GtkWidget *btt, gpointer data) { - fsm_journal_widget_event ("signal > on_select_a_second_measurement()", PRIORITY_1); + fsm_journal_widget_event ("signal on_select_a_second_measurement()", PRIORITY_1); gtk_window_set_child (GTK_WINDOW (widget_get_main_window ()), GTK_WIDGET (widget_measure_do_correlate())); } void on_skip_this_step (GtkWidget *btt, gpointer data) { - fsm_journal_widget_event ("signal > on_skip_this_step()", PRIORITY_1); + fsm_journal_widget_event ("signal on_skip_this_step()", PRIORITY_1); gtk_window_set_child (GTK_WINDOW (widget_get_main_window ()), GTK_WIDGET (widget_measure_do_insert_in_measurements_list ())); } void on_something_else (GtkWidget *btt, gpointer data) { - fsm_journal_widget_event ("signal > on_something_else()", PRIORITY_1); + fsm_journal_widget_event ("signal on_something_else()", PRIORITY_1); gtk_window_set_child (GTK_WINDOW (widget_get_main_window ()), GTK_WIDGET (widget_measure_do_end_creation_of_measurement_process())); } void on_closing_page (GtkWidget *btt, gpointer data) { - fsm_journal_widget_event ("signal > on_closing_page()", PRIORITY_1); + fsm_journal_widget_event ("signal on_closing_page()", PRIORITY_1); gtk_window_set_child (GTK_WINDOW (widget_get_main_window ()), GTK_WIDGET (widget_get_synth_page())); } void on_measure_single_event_occurences_nb (GtkWidget *btt, gpointer data) { - fsm_journal_widget_event ("signal > on_measure_single_event_occurences_nb()", PRIORITY_1); + fsm_journal_widget_event ("signal on_measure_single_event_occurences_nb()", PRIORITY_1); gtk_window_set_child (GTK_WINDOW (widget_get_main_window ()), GTK_WIDGET (widget_measure_event_occurences_nb())); } void on_measure_single_event_occurences_dates (GtkWidget *btt, gpointer data) { - fsm_journal_widget_event ("signal > on_measure_single_event_occurences_dates()", PRIORITY_1); + fsm_journal_widget_event ("signal on_measure_single_event_occurences_dates()", PRIORITY_1); gtk_window_set_child (GTK_WINDOW (widget_get_main_window ()), GTK_WIDGET (widget_measure_event_occurences_dates())); } void on_measure_single_event_occurences_situations (GtkWidget *btt, gpointer data) { - fsm_journal_widget_event ("signal > on_measure_single_event_occurences_situations()", PRIORITY_1); + fsm_journal_widget_event ("signal on_measure_single_event_occurences_situations()", PRIORITY_1); gtk_window_set_child (GTK_WINDOW (widget_get_main_window ()), GTK_WIDGET (widget_measure_event_occurences_situations())); } void on_measure_time_elapsed_between_two_events (GtkWidget *btt, gpointer data) { - fsm_journal_widget_event ("signal > on_measure_time_elapsed_between_two_events()", PRIORITY_1); + fsm_journal_widget_event ("signal on_measure_time_elapsed_between_two_events()", PRIORITY_1); gtk_window_set_child (GTK_WINDOW (widget_get_main_window ()), GTK_WIDGET (widget_measure_time_elapsed_between_two_events())); } void on_measure_third_event_occurences_in_between (GtkWidget *btt, gpointer data) { - fsm_journal_widget_event ("signal > on_measure_third_event_occurences_in_between()", PRIORITY_1); + fsm_journal_widget_event ("signal on_measure_third_event_occurences_in_between()", PRIORITY_1); gtk_window_set_child (GTK_WINDOW (widget_get_main_window ()), GTK_WIDGET (widget_measure_third_event_occurences_in_between())); } @@ -508,12 +508,12 @@ void on_measure_third_event_occurences_in_between (GtkWidget *btt, gpointer data void on_entry_name_insert_after (GtkWidget *entry, gpointer data) { - fsm_journal_widget_event ("signal > on_entry_name_insert_after()", PRIORITY_1); + fsm_journal_widget_event ("signal on_entry_name_insert_after()", PRIORITY_1); } void on_entry_name_delete_after (GtkWidget *entry, gpointer data) { - fsm_journal_widget_event ("signal > on_entry_name_delete_after()", PRIORITY_1); + fsm_journal_widget_event ("signal on_entry_name_delete_after()", PRIORITY_1); } diff --git a/src/widget/dispatch.c b/src/widget/dispatch.c index 43f1356..8735cd1 100644 --- a/src/widget/dispatch.c +++ b/src/widget/dispatch.c @@ -61,7 +61,7 @@ static void action_b (GSimpleAction *action, void on_windows_startup (GtkApplication *app) // WIP 2024-09 { fsm_journal_widget_event ( - "widget > on_windows_startup()", + "widget on_windows_startup()", PRIORITY_1); // on_windows_startup() is in: widget/dispatch.c NOT in: src/signal.c } @@ -69,7 +69,7 @@ void on_windows_startup (GtkApplication *app) // WIP 2024-09 void on_windows_activation (GtkApplication *app) { fsm_journal_widget_event ( - "widget > on_windows_activation()", + "widget on_windows_activation()", PRIORITY_1); // on_windows_activation() is in: widget/dispatch.c NOT in: src/signal.c diff --git a/static void fsm journal.forget b/static void fsm journal.forget new file mode 100644 index 0000000..ad912ed --- /dev/null +++ b/static void fsm journal.forget @@ -0,0 +1,80 @@ +//------------------------------------------------------------------------------------ + +static void fsm_journal_get_event_date (char **event) +{ + struct timeval tv; + gettimeofday (&tv, NULL); + long yy_dd_mm = tv.tv_sec; + long usec = tv.tv_usec; + + //strftime (buf1, JOURNAL_DATE_MAX_LENGTH, "%D %T", localtime (&yy_dd_mm)); + //printf ("%s + %6ld %6d ", buf1, usec, nb); + + printf(*event);// = "ldkvbhej xadrhsjfvrejhs"; +} + + +void fsm_journal_publish (journal jj, char *message) +{ + unit *a_unit = jj.last; + char buf [JOURNAL_DATE_MAX_LENGTH]; + int nb = 0; + while (a_unit) + { + // Format time, "ddd yyyy-mm-dd hh:mm:ss zzz" "%Y-%m-%d %H:%M:%S" + // https://www.man7.org/linux/man-pages/man3/strftime.3.html + strftime(buf, sizeof(buf), "%D %T", localtime(&a_unit->yy_dd_mm)); + printf ("%s + %6ld %6d %s\n", buf, a_unit->usec, nb, a_unit->message); + a_unit = a_unit->prev; + nb ++; + } + + // char *event [JOURNAL_DATE_MAX_LENGTH] = "gyufgbyfjuvfde"; + int **p_event [JOURNAL_DATE_MAX_LENGTH]; + fsm_journal_get_event_date (*p_event); // TODO + + printf ("%s\n", message); +} + +// https://nicolasj.developpez.com/articles/libc/string/ +// https://thelinuxcode.com/pass-string-function-c-language/ + + +vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + + +jean@n-guix-port:~/Gem-Graph/gem-graph-client [env] $ make run + DEP build/src/fsm/journal.d +src/fsm/journal.c: Dans la fonction « fsm_journal_get_event_date »: +src/fsm/journal.c:55:10: attention: variable inutilisée « usec » [-Wunused-variable] + 55 | long usec = tv.tv_usec; + | ^~~~ +src/fsm/journal.c:54:10: attention: variable inutilisée « yy_dd_mm » [-Wunused-variable] + 54 | long yy_dd_mm = tv.tv_sec; + | ^~~~~~~~ +src/fsm/journal.c: Dans la fonction « fsm_journal_publish »: +src/fsm/journal.c:155:5: attention: « event » est utilisé sans avoir été initialisé [-Wuninitialized] + 155 | fsm_journal_get_event_date (*event); // TODO + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src/fsm/journal.c:154:12: note: « event » déclaré ici + 154 | char **event [JOURNAL_DATE_MAX_LENGTH]; + | ^~~~~ + CC build/src/fsm/journal.o + LD bin/gem-graph-client +bin/gem-graph-client +09/14/24 10:05:10 + 772883 0 fsm fsm_init() start +09/14/24 10:05:10 + 772887 1 fsm fsm_measures_list_init() +09/14/24 10:05:10 + 772887 2 fsm fsm_results_list_init() +09/14/24 10:05:10 + 772887 3 prefer fsm_displayable_list_init() +09/14/24 10:05:10 + 772887 4 fsm fsm_displayable_list_init() +09/14/24 10:05:10 + 772887 5 prefer fsm_preferences_init() +09/14/24 10:05:10 + 772887 6 fsm fsm_preferences_init() +09/14/24 10:05:10 + 772887 7 fsm fsm_init() end +09/14/24 10:05:10 + 796793 8 widget on_windows_startup() +09/14/24 10:05:10 + 796798 9 widget on_windows_activation() +09/14/24 10:05:10 + 798832 10 signal on_toggle_state_rules_data() +09/14/24 10:05:10 + 798835 11 signal switch_state_rules_data() +main That'all folks ! 👋️😄️ +jean@n-guix-port:~/Gem-Graph/gem-graph-client [env] $ + +