# HG changeset patch # User Mikael Berthe # Date 1133616334 -3600 # Node ID d63e6cbdc297eeaf0019b87501af6ee1a2aad94d # Parent 29806b0fe8302f80ec736cd2d2cb3d961b45b249 Add "/room ban" diff -r 29806b0fe830 -r d63e6cbdc297 mcabber/src/commands.c --- a/mcabber/src/commands.c Sat Dec 03 13:48:27 2005 +0100 +++ b/mcabber/src/commands.c Sat Dec 03 14:25:34 2005 +0100 @@ -156,6 +156,7 @@ compl_add_category_word(COMPL_MULTILINE, "verbatim"); // Room category + compl_add_category_word(COMPL_ROOM, "ban"); compl_add_category_word(COMPL_ROOM, "invite"); compl_add_category_word(COMPL_ROOM, "join"); compl_add_category_word(COMPL_ROOM, "kick"); @@ -1244,13 +1245,36 @@ free_arg_lst(paramlst); } +// The expected argument is a Jabber id +static void room_ban(gpointer bud, char *arg) +{ + char **paramlst; + gchar *jid; + const char *roomid = buddy_getjid(bud); + + paramlst = split_arg(arg, 2, 1); // jid, [reason] + jid = *paramlst; + arg = *(paramlst+1); + + if (!jid || !*jid) { + scr_LogPrint(LPRINT_NORMAL, "Missing parameter (Jabber id)"); + free_arg_lst(paramlst); + return; + } + + jb_room_kickban(roomid, jid, NULL, 2, arg); + + free_arg_lst(paramlst); +} + +// The expected argument is a nickname static void room_kick(gpointer bud, char *arg) { char **paramlst; gchar *nick; const char *roomid = buddy_getjid(bud); - paramlst = split_arg(arg, 2, 1); // nickname, reason + paramlst = split_arg(arg, 2, 1); // nickname, [reason] nick = *paramlst; arg = *(paramlst+1); @@ -1395,6 +1419,9 @@ } else if (!strcasecmp(subcmd, "invite")) { if ((arg = check_room_subcommand(arg, TRUE, bud)) != NULL) room_invite(bud, arg); + } else if (!strcasecmp(subcmd, "ban")) { + if ((arg = check_room_subcommand(arg, TRUE, bud)) != NULL) + room_ban(bud, arg); } else if (!strcasecmp(subcmd, "kick")) { if ((arg = check_room_subcommand(arg, TRUE, bud)) != NULL) room_kick(bud, arg);