Mercurial > pidgin.yaz
comparison src/protocols/jabber/jabber.c @ 8194:22b3974dc1af
[gaim-migrate @ 8916]
a bunch of tweaks to jabber roster handling, and a fix for a segfault when you delete the priority buddy in a contact
committer: Tailor Script <tailor@pidgin.im>
author | Nathan Walp <nwalp@pidgin.im> |
---|---|
date | Sun, 01 Feb 2004 01:06:10 +0000 |
parents | e0a70b763872 |
children | f24172f53650 |
comparison
equal
deleted
inserted
replaced
8193:e0a70b763872 | 8194:22b3974dc1af |
---|---|
915 | 915 |
916 static char *jabber_tooltip_text(GaimBuddy *b) | 916 static char *jabber_tooltip_text(GaimBuddy *b) |
917 { | 917 { |
918 JabberBuddy *jb = jabber_buddy_find(b->account->gc->proto_data, b->name, | 918 JabberBuddy *jb = jabber_buddy_find(b->account->gc->proto_data, b->name, |
919 FALSE); | 919 FALSE); |
920 JabberBuddyResource *jbr = jabber_buddy_find_resource(jb, NULL); | 920 GString *ret = g_string_new(""); |
921 char *ret = NULL; | 921 char *r = NULL; |
922 | 922 |
923 if(jbr) { | 923 if(jb) { |
924 char *text = NULL; | 924 JabberBuddyResource *jbr = jabber_buddy_find_resource(jb, NULL); |
925 if(jbr->status) { | 925 const char *sub; |
926 char *stripped; | 926 if(jb->subscription & JABBER_SUB_FROM) { |
927 stripped = gaim_markup_strip_html(jbr->status); | 927 if(jb->subscription & JABBER_SUB_TO) |
928 text = g_markup_escape_text(stripped, -1); | 928 sub = _("Both"); |
929 g_free(stripped); | 929 else if(jb->subscription & JABBER_SUB_PENDING) |
930 } | 930 sub = _("From (To pending)"); |
931 | 931 else |
932 ret = g_strdup_printf("<b>%s:</b> %s%s%s", | 932 sub = _("From"); |
933 _("Status"), | 933 } else { |
934 jabber_get_state_string(jbr->state), | 934 if(jb->subscription & JABBER_SUB_TO) |
935 text ? ": " : "", | 935 sub = _("To"); |
936 text ? text : ""); | 936 else if(jb->subscription & JABBER_SUB_PENDING) |
937 if(text) | 937 sub = _("None (To pending)"); |
938 g_free(text); | 938 else |
939 } else if(jb && !GAIM_BUDDY_IS_ONLINE(b) && jb->error_msg) { | 939 sub = _("None"); |
940 ret = g_strdup_printf("<b>%s:</b> %s", | 940 } |
941 _("Error"), jb->error_msg); | 941 g_string_append_printf(ret, "<b>%s:</b> %s\n", _("Subscription"), sub); |
942 } else if(jb && !GAIM_BUDDY_IS_ONLINE(b) && | 942 |
943 (jb->subscription & JABBER_SUB_PENDING || | 943 if(jbr) { |
944 !(jb->subscription & JABBER_SUB_TO))) { | 944 char *text = NULL; |
945 ret = g_strdup_printf("<b>%s:</b> %s", | 945 if(jbr->status) { |
946 _("Status"), _("Not Authorized")); | 946 char *stripped; |
947 } | 947 stripped = gaim_markup_strip_html(jbr->status); |
948 | 948 text = g_markup_escape_text(stripped, -1); |
949 return ret; | 949 g_free(stripped); |
950 } | |
951 | |
952 g_string_append_printf(ret, "<b>%s:</b> %s%s%s\n", | |
953 _("Status"), | |
954 jabber_get_state_string(jbr->state), | |
955 text ? ": " : "", | |
956 text ? text : ""); | |
957 if(text) | |
958 g_free(text); | |
959 } else if(!GAIM_BUDDY_IS_ONLINE(b) && jb->error_msg) { | |
960 g_string_append_printf(ret, "<b>%s:</b> %s\n", | |
961 _("Error"), jb->error_msg); | |
962 } | |
963 } | |
964 | |
965 if(ret->len > 0) { | |
966 g_string_truncate(ret, ret->len-1); | |
967 r = ret->str; | |
968 g_string_free(ret, FALSE); | |
969 } else { | |
970 g_string_free(ret, TRUE); | |
971 } | |
972 | |
973 return r; | |
950 } | 974 } |
951 | 975 |
952 static GList *jabber_away_states(GaimConnection *gc) | 976 static GList *jabber_away_states(GaimConnection *gc) |
953 { | 977 { |
954 JabberStream *js = gc->proto_data; | 978 JabberStream *js = gc->proto_data; |