SF.net SVN: geany-plugins:[837] trunk/geanylatex/src/bibtex.c

frlan at users.sourceforge.net frlan at xxxxx
Sat Jul 18 00:15:19 UTC 2009


Revision: 837
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=837&view=rev
Author:   frlan
Date:     2009-07-18 00:15:19 +0000 (Sat, 18 Jul 2009)

Log Message:
-----------
GeanyLaTeX: Rework of previous try to fix memory leak

Modified Paths:
--------------
    trunk/geanylatex/src/bibtex.c

Modified: trunk/geanylatex/src/bibtex.c
===================================================================
--- trunk/geanylatex/src/bibtex.c	2009-07-18 00:11:47 UTC (rev 836)
+++ trunk/geanylatex/src/bibtex.c	2009-07-18 00:15:19 UTC (rev 837)
@@ -133,10 +133,13 @@
 void glatex_bibtex_write_entry(GPtrArray *entry, gint doctype)
 {
 	gint i;
-	gchar *output = NULL;
+	GString *output = NULL;
+	gchar *tmp = NULL;
 
 	/* Adding the doctype to entry */
-	output = g_strconcat("@", glatex_label_types[doctype], "{ \n",NULL);
+	output = g_string_new("@");
+	g_string_append(output, glatex_label_types[doctype]);
+	g_string_append(output, "{ \n");
 
 	/* Adding the keywords and values to entry */
 	for (i = 0; i < GLATEX_BIBTEX_N_ENTRIES; i++)
@@ -147,21 +150,23 @@
 			/* Check whether a field was only set for being used ... */
 			if (utils_str_equal(g_ptr_array_index (entry, i), "\0"))
 			{
-				output = g_strconcat(output,
-					glatex_label_entry_keywords[i], " = {},\n", NULL);
+				g_string_append(output, glatex_label_entry_keywords[i]);
+				g_string_append(output," = {},\n");
 			}
 			/* ... or has some real value inside. */
 			else
 			{
-				output = g_strconcat(output,
-					glatex_label_entry_keywords[i], " = {", g_ptr_array_index(entry, i),
-					"},\n", NULL);
+				g_string_append(output, glatex_label_entry_keywords[i]);
+				g_string_append(output, " = {");
+				g_string_append(output, g_ptr_array_index(entry, i));
+				g_string_append(output, "},\n");
 			}
 		}
 	}
 
-	output = g_strconcat(output, "}\n", NULL);
-	glatex_insert_string(output, FALSE);
-
+	g_string_append(output, "}\n");
+	tmp = g_string_free(output, FALSE);
+	glatex_insert_string(tmp, FALSE);
+	g_free(tmp);
 }
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Plugins-Commits mailing list