Mercurial > hg
comparison mcabber/src/commands.c @ 208:8b08f34922c5
[/trunk] Changeset 220 by mikael
* jabglue: add jb_updatebuddy()
* commands: add /rename command
* documentation: small changes and updates
author | mikael |
---|---|
date | Sat, 07 May 2005 20:09:15 +0000 |
parents | 766167c0c57f |
children | f64818ba3503 |
comparison
equal
deleted
inserted
replaced
207:41fafa0ecfd8 | 208:8b08f34922c5 |
---|---|
39 void do_group(char *arg); | 39 void do_group(char *arg); |
40 void do_say(char *arg); | 40 void do_say(char *arg); |
41 void do_buffer(char *arg); | 41 void do_buffer(char *arg); |
42 void do_clear(char *arg); | 42 void do_clear(char *arg); |
43 void do_info(char *arg); | 43 void do_info(char *arg); |
44 void do_rename(char *arg); | |
44 | 45 |
45 // Global variable for the commands list | 46 // Global variable for the commands list |
46 static GSList *Commands; | 47 static GSList *Commands; |
47 | 48 |
48 | 49 |
75 cmd_add("help", "Display some help", COMPL_CMD, 0, NULL); | 76 cmd_add("help", "Display some help", COMPL_CMD, 0, NULL); |
76 cmd_add("info", "Show basic infos on current buddy", 0, 0, &do_info); | 77 cmd_add("info", "Show basic infos on current buddy", 0, 0, &do_info); |
77 //cmd_add("move"); | 78 //cmd_add("move"); |
78 //cmd_add("nick"); | 79 //cmd_add("nick"); |
79 cmd_add("quit", "Exit the software", 0, 0, NULL); | 80 cmd_add("quit", "Exit the software", 0, 0, NULL); |
80 //cmd_add("rename"); | 81 cmd_add("rename", "Rename the current buddy", 0, 0, &do_rename); |
81 //cmd_add("request_auth"); | 82 //cmd_add("request_auth"); |
82 cmd_add("roster", "Manipulate the roster/buddylist", COMPL_ROSTER, 0, | 83 cmd_add("roster", "Manipulate the roster/buddylist", COMPL_ROSTER, 0, |
83 &do_roster); | 84 &do_roster); |
84 cmd_add("say", "Say something to the selected buddy", 0, 0, &do_say); | 85 cmd_add("say", "Say something to the selected buddy", 0, 0, &do_say); |
85 //cmd_add("search"); | 86 //cmd_add("search"); |
421 } | 422 } |
422 | 423 |
423 g_free(buffer); | 424 g_free(buffer); |
424 } | 425 } |
425 | 426 |
427 void do_rename(char *arg) | |
428 { | |
429 gpointer bud; | |
430 const char *jid, *group; | |
431 guint type; | |
432 char *newname, *p; | |
433 | |
434 if (!arg || (*arg == 0)) { | |
435 scr_LogPrint("Missing parameter"); | |
436 return; | |
437 } | |
438 | |
439 if (!current_buddy) return; | |
440 bud = BUDDATA(current_buddy); | |
441 | |
442 jid = buddy_getjid(bud); | |
443 group = buddy_getgroupname(bud); | |
444 type = buddy_gettype(bud); | |
445 | |
446 if (type & ROSTER_TYPE_GROUP) { | |
447 scr_LogPrint("You can't rename groups"); | |
448 return; | |
449 } | |
450 | |
451 newname = g_strdup(arg); | |
452 // Remove trailing space | |
453 for (p = newname; *p; p++) ; | |
454 while (p > newname && *p == ' ') *p = 0; | |
455 | |
456 buddy_setname(bud, newname); | |
457 jb_updatebuddy(jid, newname, group); | |
458 | |
459 g_free(newname); | |
460 update_roster = TRUE; | |
461 } | |
462 |