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