mcabber/src/commands.c
changeset 565 89c347b3e4c1
parent 558 db019a5f874f
child 566 467fec046a9b
--- a/mcabber/src/commands.c	Fri Dec 02 23:18:00 2005 +0100
+++ b/mcabber/src/commands.c	Fri Dec 02 23:31:46 2005 +0100
@@ -1203,7 +1203,7 @@
     return;
   }
 
-  if (!nick) {
+  if (!nick || !*nick) {
     scr_LogPrint(LPRINT_NORMAL, "Missing parameter (nickname)");
     free_arg_lst(paramlst);
     return;
@@ -1261,11 +1261,18 @@
 
 static void room_nick(gpointer bud, char *arg)
 {
-  gchar *cmd;
-
-  cmd = g_strdup_printf("%s %s", buddy_getjid(bud), arg);
-  room_join(bud, cmd);
-  g_free(cmd);
+  if (!arg || !*arg) {
+    const char *nick = buddy_getnickname(bud);
+    if (nick)
+      scr_LogPrint(LPRINT_NORMAL, "Your nickname is: %s", nick);
+    else
+      scr_LogPrint(LPRINT_NORMAL, "You have no nickname");
+  } else {
+    gchar *cmd;
+    cmd = g_strdup_printf("%s %s", buddy_getjid(bud), arg);
+    room_join(bud, cmd);
+    g_free(cmd);
+  }
 }
 
 static void room_privmsg(gpointer bud, char *arg)
@@ -1375,7 +1382,7 @@
     if ((arg = check_room_subcommand(arg, FALSE, bud)) != NULL)
       room_names(bud, arg);
   } else if (!strcasecmp(subcmd, "nick"))  {
-    if ((arg = check_room_subcommand(arg, TRUE, bud)) != NULL)
+    if ((arg = check_room_subcommand(arg, FALSE, bud)) != NULL)
       room_nick(bud, arg);
   } else if (!strcasecmp(subcmd, "privmsg"))  {
     if ((arg = check_room_subcommand(arg, TRUE, bud)) != NULL)