diff src/gtkrequest.c @ 10774:d83f745c997b

[gaim-migrate @ 12383] Some escaping stuff, all over the place. Various escaping fixes in the IRC prpl. The core and plugins only need to escape text if it's going to be shown in a gtkimhtml or equivalent - such as writing to a conversation window, or gaim_notify_{formatted,userinfo} The primary and secondary text for all notify and request API functions do NOT need to be escaped by the core or plugins, because whether html-like markup is required for these is UI dependent. Now we always escape these in the Gtk UI request & notify ops. Should I backport any of the above to oldstatus? I also removed gaim_chat_get_display_name() - it was almost a duplicate of gaim_chat_get_name(), and it leaked. committer: Tailor Script <tailor@pidgin.im>
author Stu Tomlinson <stu@nosnilmot.com>
date Sat, 02 Apr 2005 17:18:43 +0000
parents 179b0245a2f7
children 2ab4b5acc8d1
line wrap: on
line diff
--- a/src/gtkrequest.c	Sat Apr 02 16:38:33 2005 +0000
+++ b/src/gtkrequest.c	Sat Apr 02 17:18:43 2005 +0000
@@ -286,6 +286,7 @@
 	GtkWidget *img;
 	GtkWidget *toolbar;
 	char *label_text;
+	char *primary_esc, *secondary_esc;
 
 	data            = g_new0(GaimGtkRequestData, 1);
 	data->type      = GAIM_REQUEST_INPUT;
@@ -332,11 +333,15 @@
 	gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0);
 
 	/* Descriptive label */
+	primary_esc = (primary != NULL) ? g_markup_escape_text(primary, -1) : NULL;
+	secondary_esc = (secondary != NULL) ? g_markup_escape_text(secondary, -1) : NULL;
 	label_text = g_strdup_printf((primary ? "<span weight=\"bold\" size=\"larger\">"
 								 "%s</span>%s%s" : "%s%s%s"),
-								 (primary ? primary : ""),
+								 (primary ? primary_esc : ""),
 								 ((primary && secondary) ? "\n\n" : ""),
-								 (secondary ? secondary : ""));
+								 (secondary ? secondary_esc : ""));
+	g_free(primary_esc);
+	g_free(secondary_esc);
 
 	label = gtk_label_new(NULL);
 
@@ -435,6 +440,7 @@
 	GtkWidget *radio = NULL;
 	char *label_text;
 	char *radio_text;
+	char *primary_esc, *secondary_esc;
 
 	data            = g_new0(GaimGtkRequestData, 1);
 	data->type      = GAIM_REQUEST_ACTION;
@@ -483,11 +489,15 @@
 	gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0);
 
 	/* Descriptive label */
+	primary_esc = (primary != NULL) ? g_markup_escape_text(primary, -1) : NULL;
+	secondary_esc = (secondary != NULL) ? g_markup_escape_text(secondary, -1) : NULL;
 	label_text = g_strdup_printf((primary ? "<span weight=\"bold\" size=\"larger\">"
 				      "%s</span>%s%s" : "%s%s%s"),
-				     (primary ? primary : ""),
+				     (primary ? primary_esc : ""),
 				     ((primary && secondary) ? "\n\n" : ""),
-				     (secondary ? secondary : ""));
+				     (secondary ? secondary_esc : ""));
+	g_free(primary_esc);
+	g_free(secondary_esc);
 
 	label = gtk_label_new(NULL);
 
@@ -530,6 +540,7 @@
 	GtkWidget *img;
 	void **buttons;
 	char *label_text;
+	char *primary_esc, *secondary_esc;
 	int i;
 
 	data            = g_new0(GaimGtkRequestData, 1);
@@ -587,11 +598,15 @@
 	gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0);
 
 	/* Descriptive label */
+	primary_esc = (primary != NULL) ? g_markup_escape_text(primary, -1) : NULL;
+	secondary_esc = (secondary != NULL) ? g_markup_escape_text(secondary, -1) : NULL;
 	label_text = g_strdup_printf((primary ? "<span weight=\"bold\" size=\"larger\">"
 								 "%s</span>%s%s" : "%s%s%s"),
-								 (primary ? primary : ""),
+								 (primary ? primary_esc : ""),
 								 ((primary && secondary) ? "\n\n" : ""),
- 								 (secondary ? secondary : ""));
+								 (secondary ? secondary_esc : ""));
+	g_free(primary_esc);
+	g_free(secondary_esc);
 
 	label = gtk_label_new(NULL);
 
@@ -1234,6 +1249,7 @@
 	GaimRequestFieldGroup *group;
 	GaimRequestField *field;
 	char *label_text;
+	char *primary_esc, *secondary_esc;
 	int total_fields = 0;
 
 	data            = g_new0(GaimGtkRequestData, 1);
@@ -1281,8 +1297,10 @@
 	sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
 
 	if(primary) {
+		primary_esc = g_markup_escape_text(primary, -1);
 		label_text = g_strdup_printf(
-				"<span weight=\"bold\" size=\"larger\">%s</span>", primary);
+				"<span weight=\"bold\" size=\"larger\">%s</span>", primary_esc);
+		g_free(primary_esc);
 		label = gtk_label_new(NULL);
 
 		gtk_label_set_markup(GTK_LABEL(label), label_text);
@@ -1315,9 +1333,11 @@
 	}
 
 	if (secondary) {
+		secondary_esc = g_markup_escape_text(secondary, -1);
 		label = gtk_label_new(NULL);
 
-		gtk_label_set_markup(GTK_LABEL(label), secondary);
+		gtk_label_set_markup(GTK_LABEL(label), secondary_esc);
+		g_free(secondary_esc);
 		gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
 		gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
 		gtk_box_pack_start(GTK_BOX(vbox2), label, TRUE, TRUE, 0);