comparison pidgin/gtkdialogs.c @ 31762:eaa0c30d58ca

Bj«Órn Voigt pointed out that my plugin info dialog doesn't show the e-mail addresses included in plugins' author strings. This should fix that. I opted to escape the plugin's name too because I recall seeing a plugin with characters in its displayed name that would need to be escaped to display in the dialog. Fixes <4E353E4E.3040707@chemnitz.dialup.cs.tu-berlin.de>.
author John Bailey <rekkanoryo@rekkanoryo.org>
date Sat, 06 Aug 2011 04:52:18 +0000
parents 4bdf4e5e6d67
children 9e9efd1a09a2 866333145443
comparison
equal deleted inserted replaced
31761:e1f1e7b927c3 31762:eaa0c30d58ca
792 { 792 {
793 GString *str; 793 GString *str;
794 GList *l = NULL; 794 GList *l = NULL;
795 PurplePlugin *plugin = NULL; 795 PurplePlugin *plugin = NULL;
796 char *title = g_strdup_printf(_("%s Plugin Information"), PIDGIN_NAME); 796 char *title = g_strdup_printf(_("%s Plugin Information"), PIDGIN_NAME);
797 const char *pname, *pauthor, *pver, *pwebsite, *pid; 797 char *pname = NULL, *pauthor = NULL;
798 const char *pver, *pwebsite, *pid;
798 gboolean ploaded, punloadable; 799 gboolean ploaded, punloadable;
799 static GtkWidget *plugins_info = NULL; 800 static GtkWidget *plugins_info = NULL;
800 801
801 str = g_string_sized_new(4096); 802 str = g_string_sized_new(4096);
802 803
804 _("Plugin Information")); 805 _("Plugin Information"));
805 806
806 for(l = purple_plugins_get_all(); l; l = l->next) { 807 for(l = purple_plugins_get_all(); l; l = l->next) {
807 plugin = (PurplePlugin *)l->data; 808 plugin = (PurplePlugin *)l->data;
808 809
809 pname = purple_plugin_get_name(plugin); 810 pname = g_markup_escape_text(purple_plugin_get_name(plugin), -1);
810 pauthor = purple_plugin_get_author(plugin); 811 pauthor = g_markup_escape_text(purple_plugin_get_author(plugin), -1);
811 pver = purple_plugin_get_version(plugin); 812 pver = purple_plugin_get_version(plugin);
812 pwebsite = purple_plugin_get_homepage(plugin); 813 pwebsite = purple_plugin_get_homepage(plugin);
813 pid = purple_plugin_get_id(plugin); 814 pid = purple_plugin_get_id(plugin);
814 punloadable = purple_plugin_is_unloadable(plugin); 815 punloadable = purple_plugin_is_unloadable(plugin);
815 ploaded = purple_plugin_is_loaded(plugin); 816 ploaded = purple_plugin_is_loaded(plugin);
827 828
828 plugins_info = pidgin_build_help_dialog(title, "plugins_info", str); 829 plugins_info = pidgin_build_help_dialog(title, "plugins_info", str);
829 g_signal_connect(G_OBJECT(plugins_info), "destroy", 830 g_signal_connect(G_OBJECT(plugins_info), "destroy",
830 G_CALLBACK(gtk_widget_destroyed), &plugins_info); 831 G_CALLBACK(gtk_widget_destroyed), &plugins_info);
831 g_free(title); 832 g_free(title);
833 g_free(pname);
834 g_free(pauthor);
832 } 835 }
833 836
834 static void 837 static void
835 pidgin_dialogs_im_cb(gpointer data, PurpleRequestFields *fields) 838 pidgin_dialogs_im_cb(gpointer data, PurpleRequestFields *fields)
836 { 839 {