Mercurial > hg
diff mcabber/src/commands.c @ 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 | db019a5f874f |
children | 467fec046a9b |
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)