Mercurial > hg
changeset 1033:056364952b0d
[BP-7f216b904315] Fix a potential double UTF-8 encoding
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Thu, 16 Nov 2006 20:40:43 +0100 |
parents | 71e950ddf078 |
children | 29723c79addc |
files | mcabber/src/commands.c |
diffstat | 1 files changed, 10 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/src/commands.c Thu Nov 16 19:31:03 2006 +0100 +++ b/mcabber/src/commands.c Thu Nov 16 20:40:43 2006 +0100 @@ -1497,7 +1497,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 *tmpnick = NULL; char *pass_utf8; @@ -1506,6 +1507,8 @@ nick = *(paramlst+1); pass = *(paramlst+2); + if (!roomname) + nick = NULL; if (!nick) pass = NULL; @@ -1517,13 +1520,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, @@ -1552,16 +1558,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(tmpnick); g_free(pass_utf8); buddylist_build();