Mercurial > pidgin
comparison src/buddy.c @ 4867:6a0be79e9f71
[gaim-migrate @ 5197]
escape aliases for tooltips so they don't crash
committer: Tailor Script <tailor@pidgin.im>
author | Nathan Walp <nwalp@pidgin.im> |
---|---|
date | Sat, 22 Mar 2003 22:59:26 +0000 |
parents | ac9ed6c5594f |
children | 4f5bd9a2da37 |
comparison
equal
deleted
inserted
replaced
4866:703e02e52262 | 4867:6a0be79e9f71 |
---|---|
629 static char *gaim_get_tooltip_text(struct buddy *b) | 629 static char *gaim_get_tooltip_text(struct buddy *b) |
630 { | 630 { |
631 char *text = NULL; | 631 char *text = NULL; |
632 struct prpl* prpl = find_prpl(b->account->protocol); | 632 struct prpl* prpl = find_prpl(b->account->protocol); |
633 char *statustext = NULL; | 633 char *statustext = NULL; |
634 char *aliastext = NULL, *nicktext = NULL; | |
634 char *warning = NULL, *idletime = NULL; | 635 char *warning = NULL, *idletime = NULL; |
635 | 636 |
636 if (prpl->tooltip_text) { | 637 if (prpl->tooltip_text) { |
637 const char *end; | 638 const char *end; |
638 statustext = prpl->tooltip_text(b); | 639 statustext = prpl->tooltip_text(b); |
655 idletime = g_strdup_printf(_("%dh%02dm"), ihrs, imin); | 656 idletime = g_strdup_printf(_("%dh%02dm"), ihrs, imin); |
656 else | 657 else |
657 idletime = g_strdup_printf(_("%dm"), imin); | 658 idletime = g_strdup_printf(_("%dm"), imin); |
658 } | 659 } |
659 | 660 |
661 if(b->alias) | |
662 aliastext = g_markup_escape_text(b->alias, -1); | |
663 | |
664 if(b->server_alias) | |
665 nicktext = g_markup_escape_text(b->server_alias, -1); | |
666 | |
660 if (b->evil > 0) | 667 if (b->evil > 0) |
661 warning = g_strdup_printf(_("%d%%"), b->evil); | 668 warning = g_strdup_printf(_("%d%%"), b->evil); |
662 | 669 |
663 text = g_strdup_printf("<span size='larger' weight='bold'>%s</span>" | 670 text = g_strdup_printf("<span size='larger' weight='bold'>%s</span>" |
664 "%s %s" /* Alias */ | 671 "%s %s" /* Alias */ |
665 "%s %s" /* Nickname */ | 672 "%s %s" /* Nickname */ |
666 "%s %s" /* Idle */ | 673 "%s %s" /* Idle */ |
667 "%s %s" /* Warning */ | 674 "%s %s" /* Warning */ |
668 "%s%s", /* Status */ | 675 "%s%s", /* Status */ |
669 b->name, | 676 b->name, |
670 b->alias && b->alias[0] ? _("\n<b>Alias:</b>") : "", b->alias ? b->alias : "", | 677 aliastext ? _("\n<b>Alias:</b>") : "", aliastext ? aliastext : "", |
671 b->server_alias ? _("\n<b>Nickname:</b>") : "", b->server_alias ? b->server_alias : "", | 678 nicktext ? _("\n<b>Nickname:</b>") : "", nicktext ? nicktext : "", |
672 b->idle ? _("\n<b>Idle:</b>") : "", b->idle ? idletime : "", | 679 b->idle ? _("\n<b>Idle:</b>") : "", b->idle ? idletime : "", |
673 b->evil ? _("\n<b>Warned:</b>") : "", b->evil ? warning : "", | 680 b->evil ? _("\n<b>Warned:</b>") : "", b->evil ? warning : "", |
674 statustext ? "\n" : "", statustext ? statustext : ""); | 681 statustext ? "\n" : "", statustext ? statustext : ""); |
675 if(warning) | 682 if(warning) |
676 g_free(warning); | 683 g_free(warning); |
677 if(idletime) | 684 if(idletime) |
678 g_free(idletime); | 685 g_free(idletime); |
679 if(statustext) | 686 if(statustext) |
680 g_free(statustext); | 687 g_free(statustext); |
688 if(nicktext) | |
689 g_free(nicktext); | |
690 if(aliastext) | |
691 g_free(aliastext); | |
681 | 692 |
682 return text; | 693 return text; |
683 | 694 |
684 } | 695 } |
685 | 696 |
1184 group = group->next; | 1195 group = group->next; |
1185 } | 1196 } |
1186 } | 1197 } |
1187 | 1198 |
1188 static gboolean get_iter_from_node_helper(GaimBlistNode *node, GtkTreeIter *iter, GtkTreeIter *root) { | 1199 static gboolean get_iter_from_node_helper(GaimBlistNode *node, GtkTreeIter *iter, GtkTreeIter *root) { |
1200 | |
1189 do { | 1201 do { |
1190 GaimBlistNode *n; | 1202 GaimBlistNode *n; |
1191 GtkTreeIter child; | 1203 GtkTreeIter child; |
1192 | 1204 |
1193 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), root, NODE_COLUMN, &n, -1); | 1205 gtk_tree_model_get(GTK_TREE_MODEL(gtkblist->treemodel), root, NODE_COLUMN, &n, -1); |
1333 | 1345 |
1334 expand = TRUE; | 1346 expand = TRUE; |
1335 } | 1347 } |
1336 | 1348 |
1337 oldersibling = node->prev; | 1349 oldersibling = node->prev; |
1338 while (oldersibling && !get_iter_from_node(oldersibling, &oldersiblingiter)) | 1350 while (oldersibling && !get_iter_from_node(oldersibling, &oldersiblingiter)) { |
1339 oldersibling = oldersibling->prev; | 1351 oldersibling = oldersibling->prev; |
1352 } | |
1340 | 1353 |
1341 gtk_tree_store_insert_after(gtkblist->treemodel, &iter, &groupiter, oldersibling ? &oldersiblingiter : NULL); | 1354 gtk_tree_store_insert_after(gtkblist->treemodel, &iter, &groupiter, oldersibling ? &oldersiblingiter : NULL); |
1342 | 1355 |
1343 if (blist_options & OPT_BLIST_POPUP) | 1356 if (blist_options & OPT_BLIST_POPUP) |
1344 gtk_window_present(GTK_WINDOW(gtkblist->window)); | 1357 gtk_window_present(GTK_WINDOW(gtkblist->window)); |