Mercurial > hg
changeset 1012:7f216b904315
Fix a potential double UTF-8 encoding
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sun, 12 Nov 2006 15:39:56 +0100 |
parents | b5bcc223cf51 |
children | f1a9ca2348e5 |
files | mcabber/src/commands.c |
diffstat | 1 files changed, 10 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/src/commands.c Sun Nov 12 13:11:07 2006 +0100 +++ b/mcabber/src/commands.c Sun Nov 12 15:39:56 2006 +0100 @@ -1568,7 +1568,8 @@ static void room_join(gpointer bud, char *arg) { char **paramlst; - char *roomname, *nick, *pass, *roomname_tmp; + char *roomname, *nick, *pass; + char *roomname_tmp = NULL; char *pass_utf8; paramlst = split_arg(arg, 3, 0); // roomid, nickname, password @@ -1576,6 +1577,8 @@ nick = *(paramlst+1); pass = *(paramlst+2); + if (!roomname) + nick = NULL; if (!nick) pass = NULL; @@ -1587,13 +1590,16 @@ free_arg_lst(paramlst); return; } - if (!roomname) - nick = NULL; roomname = (char*)buddy_getjid(bud); } else if (strchr(roomname, '/')) { scr_LogPrint(LPRINT_NORMAL, "Invalid room name."); free_arg_lst(paramlst); return; + } else { + // The room id has been specified. Let's convert it and use it. + roomname_tmp = to_utf8(roomname); + mc_strtolower(roomname_tmp); + roomname = roomname_tmp; } // If no nickname is provided with the /join command, @@ -1612,16 +1618,11 @@ pass_utf8 = to_utf8(pass); - roomname_tmp = g_strdup(roomname); - mc_strtolower(roomname_tmp); - roomname = to_utf8(roomname_tmp); - g_free(roomname_tmp); - jb_room_join(roomname, nick, pass_utf8); scr_LogPrint(LPRINT_LOGNORM, "Sent a join request to <%s>...", roomname); - g_free(roomname); + g_free(roomname_tmp); g_free(nick); g_free(pass_utf8); buddylist_build();