changeset 565:89c347b3e4c1

MUC: Make "/room nick" display the current nickname
author Mikael Berthe <mikael@lilotux.net>
date Fri, 02 Dec 2005 23:31:46 +0100
parents 95d6297a9654
children 467fec046a9b
files mcabber/src/commands.c
diffstat 1 files changed, 14 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- 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)