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;