diff src/prefs.c @ 5420:c54cb8f8655f

[gaim-migrate @ 5799] This fixes a memleak on the preferences plugins page thing, and I changed some static buffers to dynamic stuff in oscar.c. Wheeeee. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sun, 18 May 2003 02:47:53 +0000
parents 1f901484599d
children af62169c74fd
line wrap: on
line diff
--- a/src/prefs.c	Sun May 18 01:19:03 2003 +0000
+++ b/src/prefs.c	Sun May 18 02:47:53 2003 +0000
@@ -1132,7 +1132,7 @@
 
 static void prefs_plugin_sel (GtkTreeSelection *sel, GtkTreeModel *model) 
 {
-	gchar buf[1024];
+	gchar *buf, *pname, *perr, *pdesc, *pauth, *pweb;
 	GtkTreeIter  iter;
 	GValue val = { 0, };
 	GaimPlugin *plug;
@@ -1142,26 +1142,28 @@
 	gtk_tree_model_get_value (model, &iter, 2, &val);
 	plug = g_value_get_pointer(&val);
 	
+	pname = g_markup_escape_text(_(plug->info->name), -1);
+	pdesc = g_markup_escape_text(_(plug->info->description), -1);
+	pauth = g_markup_escape_text(_(plug->info->author), -1);
+	pweb = g_markup_escape_text(_(plug->info->homepage), -1);
 	if (plug->error != NULL) {
-		g_snprintf(buf, sizeof(buf),
-				   "<span size=\"larger\">%s %s</span>\n\n"
-				   "<span weight=\"bold\" color=\"red\">%s</span>\n\n"
-				   "%s",
-				   g_markup_escape_text(_(plug->info->name), -1),
-				   plug->info->version,
-				   g_markup_escape_text(plug->error, -1),
-				   g_markup_escape_text(_(plug->info->description), -1));
+		perr = g_markup_escape_text(_(plug->error), -1);
+		buf = g_strdup_printf(
+				"<span size=\"larger\">%s %s</span>\n\n"
+				"<span weight=\"bold\" color=\"red\">%s</span>\n\n"
+				"%s",
+				pname, plug->info->version, perr, pdesc);
+		g_free(perr);
 	}
 	else {
-		g_snprintf(buf, sizeof(buf),
-				   "<span size=\"larger\">%s %s</span>\n\n%s",
-				   g_markup_escape_text(_(plug->info->name), -1),
-				   plug->info->version,
-				   g_markup_escape_text(_(plug->info->description), -1));
+		buf = g_strdup_printf(
+				"<span size=\"larger\">%s %s</span>\n\n%s",
+				pname, plug->info->version, pdesc);
 	}
-
 	gtk_label_set_markup(GTK_LABEL(plugin_description), buf);
-	g_snprintf(buf, sizeof(buf), 
+	g_free(buf);
+
+	buf = g_strdup_printf(
 #ifndef _WIN32
 		   _("<span size=\"larger\">%s %s</span>\n\n"
 		     "<span weight=\"bold\">Written by:</span>\t%s\n"
@@ -1173,14 +1175,15 @@
 		     "<span weight=\"bold\">URL:</span>  %s\n"
 		     "<span weight=\"bold\">File name:</span>  %s"),
 #endif
-		   g_markup_escape_text(_(plug->info->name), -1),
-		   plug->info->version,
-		   g_markup_escape_text(_(plug->info->author), -1),
-		   g_markup_escape_text(plug->info->homepage, -1),
-		   plug->path);
+		   pname, plug->info->version, pauth, pweb, plug->path);
 
 	gtk_label_set_markup(GTK_LABEL(plugin_details), buf);
-	g_value_unset (&val);
+	g_value_unset(&val);
+	g_free(buf);
+	g_free(pname);
+	g_free(pdesc);
+	g_free(pauth);
+	g_free(pweb);
 }
 
 static void plugin_load (GtkCellRendererToggle *cell, gchar *pth, gpointer data)