Mercurial > ~mikael > mcabber > hg
comparison mcabber/src/commands.c @ 604:2e8342168ebc
"/info" shows buddy subscription
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Thu, 15 Dec 2005 13:04:34 +0100 |
parents | 483a87c99990 |
children | 89f5672eb523 |
comparison
equal
deleted
inserted
replaced
603:9516db839e08 | 604:2e8342168ebc |
---|---|
854 { | 854 { |
855 gpointer bud; | 855 gpointer bud; |
856 const char *jid, *name; | 856 const char *jid, *name; |
857 guint type; | 857 guint type; |
858 char *buffer; | 858 char *buffer; |
859 enum subscr esub; | |
859 | 860 |
860 if (!current_buddy) return; | 861 if (!current_buddy) return; |
861 bud = BUDDATA(current_buddy); | 862 bud = BUDDATA(current_buddy); |
862 | 863 |
863 jid = buddy_getjid(bud); | 864 jid = buddy_getjid(bud); |
864 name = buddy_getname(bud); | 865 name = buddy_getname(bud); |
865 type = buddy_gettype(bud); | 866 type = buddy_gettype(bud); |
867 esub = buddy_getsubscription(bud); | |
866 | 868 |
867 buffer = g_new(char, 128); | 869 buffer = g_new(char, 128); |
868 | 870 |
869 if (jid) { | 871 if (jid) { |
870 GSList *resources; | 872 GSList *resources; |
871 char *typestr = "unknown"; | 873 char *bstr = "unknown"; |
872 | 874 |
873 snprintf(buffer, 127, "jid: <%s>", jid); | 875 snprintf(buffer, 127, "jid: <%s>", jid); |
874 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 876 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
875 if (name) { | 877 if (name) { |
876 snprintf(buffer, 127, "Name: %s", name); | 878 snprintf(buffer, 127, "Name: %s", name); |
877 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 879 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
878 } | 880 } |
879 | 881 |
880 if (type == ROSTER_TYPE_USER) typestr = "user"; | 882 if (type == ROSTER_TYPE_USER) bstr = "user"; |
881 else if (type == ROSTER_TYPE_ROOM) typestr = "chatroom"; | 883 else if (type == ROSTER_TYPE_ROOM) bstr = "chatroom"; |
882 else if (type == ROSTER_TYPE_AGENT) typestr = "agent"; | 884 else if (type == ROSTER_TYPE_AGENT) bstr = "agent"; |
883 snprintf(buffer, 127, "Type: %s", typestr); | 885 snprintf(buffer, 127, "Type: %s", bstr); |
886 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | |
887 | |
888 if (esub == sub_both) bstr = "both"; | |
889 else if (esub & sub_from) bstr = "from"; | |
890 else if (esub & sub_to) bstr = "to"; | |
891 else bstr = "none"; | |
892 snprintf(buffer, 64, "Subscription: %s", bstr); | |
893 if (esub & sub_pending) | |
894 strcat(buffer, " (pending)"); | |
884 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | 895 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); |
885 | 896 |
886 resources = buddy_getresources(bud); | 897 resources = buddy_getresources(bud); |
887 for ( ; resources ; resources = g_slist_next(resources) ) { | 898 for ( ; resources ; resources = g_slist_next(resources) ) { |
888 gchar rprio; | 899 gchar rprio; |