# HG changeset patch # User Mikael Berthe # Date 1136593901 -3600 # Node ID c2d50b97ced493619e97c4eee05971b72a3d7904 # Parent 3ad6675caaf1284a00522916c02c3ae9d2c75e06 MUC: /room {leave,nick,topic} can only be used when inside a room diff -r 3ad6675caaf1 -r c2d50b97ced4 mcabber/src/commands.c --- a/mcabber/src/commands.c Sat Jan 07 01:15:04 2006 +0100 +++ b/mcabber/src/commands.c Sat Jan 07 01:31:41 2006 +0100 @@ -1476,8 +1476,15 @@ static void room_leave(gpointer bud, char *arg) { gchar *roomid, *utf8_nickname; + const char *nickname; - utf8_nickname = to_utf8(buddy_getnickname(bud)); + nickname = buddy_getnickname(bud); + if (!nickname) { + scr_LogPrint(LPRINT_NORMAL, "You are not in this room"); + return; + } + + utf8_nickname = to_utf8(nickname); roomid = g_strdup_printf("%s/%s", buddy_getjid(bud), utf8_nickname); jb_setstatus(offline, roomid, arg); g_free(utf8_nickname); @@ -1486,6 +1493,11 @@ static void room_nick(gpointer bud, char *arg) { + if (!buddy_getinsideroom(bud)) { + scr_LogPrint(LPRINT_NORMAL, "You are not in this room"); + return; + } + if (!arg || !*arg) { const char *nick = buddy_getnickname(bud); if (nick) @@ -1544,6 +1556,11 @@ { gchar *msg; + if (!buddy_getinsideroom(bud)) { + scr_LogPrint(LPRINT_NORMAL, "You are not in this room"); + return; + } + // If no parameter is given, display the current topic if (!*arg) { const char *topic = buddy_gettopic(bud);