Mercurial > pidgin
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);