# HG changeset patch # User Mikael Berthe # Date 1134648274 -3600 # Node ID 2e8342168ebc52b0e05723ca17b8028a328d5771 # Parent 9516db839e08accceb7ecf278d866a9c58ab365d "/info" shows buddy subscription diff -r 9516db839e08 -r 2e8342168ebc mcabber/src/commands.c --- a/mcabber/src/commands.c Thu Dec 15 12:52:37 2005 +0100 +++ b/mcabber/src/commands.c Thu Dec 15 13:04:34 2005 +0100 @@ -856,6 +856,7 @@ const char *jid, *name; guint type; char *buffer; + enum subscr esub; if (!current_buddy) return; bud = BUDDATA(current_buddy); @@ -863,12 +864,13 @@ jid = buddy_getjid(bud); name = buddy_getname(bud); type = buddy_gettype(bud); + esub = buddy_getsubscription(bud); buffer = g_new(char, 128); if (jid) { GSList *resources; - char *typestr = "unknown"; + char *bstr = "unknown"; snprintf(buffer, 127, "jid: <%s>", jid); scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); @@ -877,10 +879,19 @@ scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); } - if (type == ROSTER_TYPE_USER) typestr = "user"; - else if (type == ROSTER_TYPE_ROOM) typestr = "chatroom"; - else if (type == ROSTER_TYPE_AGENT) typestr = "agent"; - snprintf(buffer, 127, "Type: %s", typestr); + if (type == ROSTER_TYPE_USER) bstr = "user"; + else if (type == ROSTER_TYPE_ROOM) bstr = "chatroom"; + else if (type == ROSTER_TYPE_AGENT) bstr = "agent"; + snprintf(buffer, 127, "Type: %s", bstr); + scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); + + if (esub == sub_both) bstr = "both"; + else if (esub & sub_from) bstr = "from"; + else if (esub & sub_to) bstr = "to"; + else bstr = "none"; + snprintf(buffer, 64, "Subscription: %s", bstr); + if (esub & sub_pending) + strcat(buffer, " (pending)"); scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); resources = buddy_getresources(bud);