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