# HG changeset patch # User mikael # Date 1115393497 0 # Node ID 24e6bcb589b037498420558831aaf7477dc3a505 # Parent 9c2023d60986ad24221dc7f60630dcf5df60d22f [/trunk] Changeset 203 by mikael * Add /info command. diff -r 9c2023d60986 -r 24e6bcb589b0 mcabber/src/commands.c --- a/mcabber/src/commands.c Fri May 06 15:10:16 2005 +0000 +++ b/mcabber/src/commands.c Fri May 06 15:31:37 2005 +0000 @@ -27,6 +27,7 @@ #include "screen.h" #include "compl.h" #include "hooks.h" +#include "hbuf.h" #include "utf8.h" #include "utils.h" @@ -38,6 +39,7 @@ void do_say(char *arg); void do_buffer(char *arg); void do_clear(char *arg); +void do_info(char *arg); // Global variable for the commands list static GSList *Commands; @@ -70,7 +72,7 @@ //cmd_add("del"); cmd_add("group", "Change group display settings", COMPL_GROUP, 0, &do_group); cmd_add("help", "Display some help", COMPL_CMD, 0, NULL); - //cmd_add("info"); + cmd_add("info", "Show basic infos on current buddy", 0, 0, &do_info); //cmd_add("move"); //cmd_add("nick"); cmd_add("quit", "Exit the software", 0, 0, NULL); @@ -361,3 +363,45 @@ do_buffer("clear"); } +void do_info(char *arg) +{ + gpointer bud; + const char *jid, *name; + guint type; + enum imstatus status; + char *buffer; + + if (!current_buddy) return; + bud = BUDDATA(current_buddy); + + jid = buddy_getjid(bud); + name = buddy_getname(bud); + type = buddy_gettype(bud); + status = buddy_getstatus(bud); + + buffer = g_new(char, 128); + + if (jid) { + char *typestr = "unknown"; + + snprintf(buffer, 127, "jid: <%s>", jid); + scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); + if (name) { + snprintf(buffer, 127, "Name: %s", name); + scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); + } + + if (type == ROSTER_TYPE_USER) typestr = "user"; + else if (type == ROSTER_TYPE_AGENT) typestr = "agent"; + + snprintf(buffer, 127, "Type: %s", typestr); + scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); + } else { + if (name) scr_LogPrint("Name: %s", name); + scr_LogPrint("Type: %s", + ((type == ROSTER_TYPE_GROUP) ? "group" : "unknown")); + } + + g_free(buffer); +} +