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