Mercurial > ~mikael > mcabber > hg
comparison mcabber/src/commands.c @ 191:24e6bcb589b0
[/trunk] Changeset 203 by mikael
* Add /info command.
author | mikael |
---|---|
date | Fri, 06 May 2005 15:31:37 +0000 |
parents | 4ce9ff808baa |
children | e01bf6d9b4b8 |
comparison
equal
deleted
inserted
replaced
190:9c2023d60986 | 191:24e6bcb589b0 |
---|---|
25 #include "jabglue.h" | 25 #include "jabglue.h" |
26 #include "roster.h" | 26 #include "roster.h" |
27 #include "screen.h" | 27 #include "screen.h" |
28 #include "compl.h" | 28 #include "compl.h" |
29 #include "hooks.h" | 29 #include "hooks.h" |
30 #include "hbuf.h" | |
30 #include "utf8.h" | 31 #include "utf8.h" |
31 #include "utils.h" | 32 #include "utils.h" |
32 | 33 |
33 // Commands callbacks | 34 // Commands callbacks |
34 void do_roster(char *arg); | 35 void do_roster(char *arg); |
36 void do_add(char *arg); | 37 void do_add(char *arg); |
37 void do_group(char *arg); | 38 void do_group(char *arg); |
38 void do_say(char *arg); | 39 void do_say(char *arg); |
39 void do_buffer(char *arg); | 40 void do_buffer(char *arg); |
40 void do_clear(char *arg); | 41 void do_clear(char *arg); |
42 void do_info(char *arg); | |
41 | 43 |
42 // Global variable for the commands list | 44 // Global variable for the commands list |
43 static GSList *Commands; | 45 static GSList *Commands; |
44 | 46 |
45 | 47 |
68 COMPL_BUFFER, 0, &do_buffer); | 70 COMPL_BUFFER, 0, &do_buffer); |
69 cmd_add("clear", "Clear the dialog window", 0, 0, &do_clear); | 71 cmd_add("clear", "Clear the dialog window", 0, 0, &do_clear); |
70 //cmd_add("del"); | 72 //cmd_add("del"); |
71 cmd_add("group", "Change group display settings", COMPL_GROUP, 0, &do_group); | 73 cmd_add("group", "Change group display settings", COMPL_GROUP, 0, &do_group); |
72 cmd_add("help", "Display some help", COMPL_CMD, 0, NULL); | 74 cmd_add("help", "Display some help", COMPL_CMD, 0, NULL); |
73 //cmd_add("info"); | 75 cmd_add("info", "Show basic infos on current buddy", 0, 0, &do_info); |
74 //cmd_add("move"); | 76 //cmd_add("move"); |
75 //cmd_add("nick"); | 77 //cmd_add("nick"); |
76 cmd_add("quit", "Exit the software", 0, 0, NULL); | 78 cmd_add("quit", "Exit the software", 0, 0, NULL); |
77 //cmd_add("rename"); | 79 //cmd_add("rename"); |
78 //cmd_add("request_auth"); | 80 //cmd_add("request_auth"); |
359 void do_clear(char *arg) // Alias for "/buffer clear" | 361 void do_clear(char *arg) // Alias for "/buffer clear" |
360 { | 362 { |
361 do_buffer("clear"); | 363 do_buffer("clear"); |
362 } | 364 } |
363 | 365 |
366 void do_info(char *arg) | |
367 { | |
368 gpointer bud; | |
369 const char *jid, *name; | |
370 guint type; | |
371 enum imstatus status; | |
372 char *buffer; | |
373 | |
374 if (!current_buddy) return; | |
375 bud = BUDDATA(current_buddy); | |
376 | |
377 jid = buddy_getjid(bud); | |
378 name = buddy_getname(bud); | |
379 type = buddy_gettype(bud); | |
380 status = buddy_getstatus(bud); | |
381 | |
382 buffer = g_new(char, 128); | |
383 | |
384 if (jid) { | |
385 char *typestr = "unknown"; | |
386 | |
387 snprintf(buffer, 127, "jid: <%s>", jid); | |
388 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | |
389 if (name) { | |
390 snprintf(buffer, 127, "Name: %s", name); | |
391 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | |
392 } | |
393 | |
394 if (type == ROSTER_TYPE_USER) typestr = "user"; | |
395 else if (type == ROSTER_TYPE_AGENT) typestr = "agent"; | |
396 | |
397 snprintf(buffer, 127, "Type: %s", typestr); | |
398 scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_INFO); | |
399 } else { | |
400 if (name) scr_LogPrint("Name: %s", name); | |
401 scr_LogPrint("Type: %s", | |
402 ((type == ROSTER_TYPE_GROUP) ? "group" : "unknown")); | |
403 } | |
404 | |
405 g_free(buffer); | |
406 } | |
407 |