[Gnucash-changes]
r13230 - gnucash/trunk/src/gnome - String cleanup;
fix manual emulation of ngettext;
fix some memory leaks due to g_strconcat, but not yet all
Christian Stimming
cstim at cvs.gnucash.org
Sun Feb 12 06:10:44 EST 2006
Author: cstim
Date: 2006-02-12 06:10:43 -0500 (Sun, 12 Feb 2006)
New Revision: 13230
Trac: http://svn.gnucash.org/trac/changeset/13230
Modified:
gnucash/trunk/src/gnome/druid-merge.c
Log:
String cleanup; fix manual emulation of ngettext; fix some memory leaks due to g_strconcat, but not yet all
Modified: gnucash/trunk/src/gnome/druid-merge.c
===================================================================
--- gnucash/trunk/src/gnome/druid-merge.c 2006-02-12 05:21:09 UTC (rev 13229)
+++ gnucash/trunk/src/gnome/druid-merge.c 2006-02-12 11:10:43 UTC (rev 13230)
@@ -48,7 +48,6 @@
QofSession *merge_session = NULL;
QofBook *mergeBook = NULL;
QofBook *targetBook = NULL;
-gchar *buffer = "";
static QofLogModule log_module = GNC_QSF_IMPORT;
@@ -100,8 +99,7 @@
if(count == 0)
{
output = GTK_LABEL(merge_get_widget("OutPut"));
- buffer = g_strdup_printf(_("No conflicts to be resolved."));
- gtk_label_set_text(output,buffer);
+ gtk_label_set_text(output,_("No conflicts to be resolved."));
gtk_widget_show(GTK_WIDGET(output));
}
LEAVE (" ");
@@ -129,8 +127,7 @@
if(count == 0)
{
output = GTK_LABEL(merge_get_widget("OutPut"));
- buffer = g_strdup_printf(_("No conflicts to be resolved."));
- gtk_label_set_text(output,buffer);
+ gtk_label_set_text(output,_("No conflicts to be resolved."));
gtk_widget_show(GTK_WIDGET(output));
}
LEAVE (" ");
@@ -155,8 +152,7 @@
if(count == 0)
{
output = GTK_LABEL(merge_get_widget("OutPut"));
- buffer = g_strdup_printf(_("No conflicts to be resolved."));
- gtk_label_set_text(output,buffer);
+ gtk_label_set_text(output,_("No conflicts to be resolved."));
gtk_widget_show(GTK_WIDGET(output));
}
LEAVE (" ");
@@ -258,8 +254,7 @@
if(count == 0)
{
output = GTK_LABEL(merge_get_widget("OutPut"));
- buffer = g_strdup_printf(_("No conflicts to be resolved."));
- gtk_label_set_text(output,buffer);
+ gtk_label_set_text(output,_("No conflicts to be resolved."));
gtk_widget_show(GTK_WIDGET(output));
}
gnc_resume_gui_refresh ();
@@ -317,6 +312,7 @@
QofParam *one_param;
gchar *importstring, *targetstring;
GtkLabel *output;
+ gchar *buffer, *buffer2, *buffer3;
g_return_if_fail(rule != NULL);
buffer = "";
@@ -333,19 +329,27 @@
count = 1; /* user display text counts from 1, not zero */
importstring = targetstring = NULL;
gnc_suspend_gui_refresh ();
- if(remainder == 1) {
- buffer = g_strdup_printf(_("\n%i conflict needs to be resolved.\n"),
- remainder);
- }
- else {
- buffer = g_strdup_printf(_("\n%i conflicts need to be resolved.\n"),
- remainder);
- }
- buffer = g_strconcat(buffer,
- g_strdup_printf(_("\n%i parameter values for this \"%s\" object.\n"),
- g_slist_length(user_reports), rule->targetEnt->e_type), NULL);
+ /* Translators: %i is the number of conflicts. This is a
+ ngettext(3) message. */
+ buffer2 = g_strdup_printf(ngettext("%i conflict needs to be resolved.",
+ "%i conflicts need to be resolved.",
+ remainder),
+ remainder);
+ /* Translators: %i is the number of values. This is a
+ ngettext(3) message. */
+ buffer3 = g_strdup_printf(ngettext("%i parameter value for this \"%s\" object.",
+ "%i parameter values for this \"%s\" object.",
+ g_slist_length(user_reports)),
+ g_slist_length(user_reports), rule->targetEnt->e_type);
+ buffer = g_strconcat("\n", buffer2, "\n", "\n", buffer3, "\n", NULL);
+ g_free(buffer2);
+ g_free(buffer3);
while(user_reports != NULL) {
one_param = user_reports->data;
+ /* FIXME: each g_strdup_printf as well as g_strconcat
+ will allocate a new string; all of these need to be
+ freed later. Currently this causes a lot of memory
+ leaks. */
buffer = g_strconcat(buffer, g_strdup_printf(_("%i:Parameter name: %s "),
count, one_param->param_name), NULL);
importstring = qof_book_merge_param_as_string(one_param, rule->importEnt);
More information about the gnucash-changes
mailing list