From a4b1827793b146e9d0fd8db87c76cb5caa211dc6 Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Sat, 26 Mar 2022 21:48:59 +0800 Subject: [PATCH] [gnc-plugin-page-register] use gnc_g_list_stringjoin to store .gcm for gnc_plugin_page_register_filter_response_cb --- gnucash/gnome/gnc-plugin-page-register.c | 46 +++++++++--------------- 1 file changed, 16 insertions(+), 30 deletions(-) diff --git a/gnucash/gnome/gnc-plugin-page-register.c b/gnucash/gnome/gnc-plugin-page-register.c index 1fa6ad4c0b..136dd52b3e 100644 --- a/gnucash/gnome/gnc-plugin-page-register.c +++ b/gnucash/gnome/gnc-plugin-page-register.c @@ -3344,52 +3344,38 @@ gnc_plugin_page_register_filter_response_cb (GtkDialog* dialog, if (priv->fd.save_filter) { - gchar* filter = g_strdup_printf ("0x%04x", - priv->fd.cleared_match); // cleared match - gchar* tmp = g_strdup (filter); + gchar *filter; + GList *flist = NULL; + + // cleared match + flist = g_list_prepend + (flist, g_strdup_printf ("0x%04x", priv->fd.cleared_match)); // start time - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON ( - priv->fd.start_date_choose)) && priv->fd.start_time != 0) - { - gchar* timeval = gnc_plugin_page_register_filter_time2dmy ( - priv->fd.start_time); - filter = g_strconcat (tmp, ",", timeval, NULL); - g_free (timeval); - } + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->fd.start_date_choose)) && priv->fd.start_time != 0) + flist = g_list_prepend (flist, gnc_plugin_page_register_filter_time2dmy (priv->fd.start_time)); else - filter = g_strconcat (tmp, ",0", NULL); - - g_free (tmp); - tmp = g_strdup (filter); - g_free (filter); + flist = g_list_prepend (flist, g_strdup ("0")); // end time if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->fd.end_date_choose)) && priv->fd.end_time != 0) - { - gchar* timeval = gnc_plugin_page_register_filter_time2dmy (priv->fd.end_time); - filter = g_strconcat (tmp, ",", timeval, NULL); - g_free (timeval); - } + flist = g_list_prepend (flist, gnc_plugin_page_register_filter_time2dmy (priv->fd.end_time)); else - filter = g_strconcat (tmp, ",0", NULL); - - g_free (tmp); - tmp = g_strdup (filter); - g_free (filter); + flist = g_list_prepend (flist, g_strdup ("0")); // number of days if (priv->fd.days > 0) - filter = g_strdup_printf ("%s,%d", tmp, priv->fd.days); + flist = g_list_prepend (flist, g_strdup_printf ("%d", priv->fd.days)); else - filter = g_strconcat (tmp, ",0", NULL); - - g_free (tmp); + flist = g_list_prepend (flist, g_strdup ("0")); + flist = g_list_reverse (flist); + filter = gnc_g_list_stringjoin (flist, ","); PINFO ("The filter to save is %s", filter); gnc_plugin_page_register_set_filter (plugin_page, filter); g_free (filter); + g_list_free_full (flist, g_free); } } priv->fd.dialog = NULL;