# HG changeset patch # User Myhailo Danylenko # Date 1270501662 -7200 # Node ID ad1f7e7c2745a5aadc4f4baa3e18dc37fc655227 # Parent 94936b487b6fa22c2203a476554eb66a593e233d Fix bug in /say_to introduced in changeset 5492b87ba9d0 diff -r 94936b487b6f -r ad1f7e7c2745 mcabber/mcabber/commands.c --- a/mcabber/mcabber/commands.c Mon Apr 05 22:30:02 2010 +0200 +++ b/mcabber/mcabber/commands.c Mon Apr 05 23:07:42 2010 +0200 @@ -1498,7 +1498,6 @@ char *file = NULL; LmMessageSubType msg_type = LM_MESSAGE_SUB_TYPE_NOT_SET; bool quiet = FALSE; - bool expandfjid = FALSE; if (!xmpp_is_online()) { scr_LogPrint(LPRINT_NORMAL, "You are not connected."); @@ -1527,6 +1526,7 @@ free_arg_lst(oldparamlst); if (!*paramlst) { scr_LogPrint(LPRINT_NORMAL, "Wrong usage."); + free_arg_lst(paramlst); return; } file = g_strdup(*paramlst); @@ -1540,31 +1540,23 @@ if (!*paramlst) { scr_LogPrint(LPRINT_NORMAL, "Wrong usage."); + free_arg_lst(paramlst); return; } fjid = *paramlst; msg = *(paramlst+1); - if (!strncmp(fjid, "." JID_RESOURCE_SEPARATORSTR, 2)) - expandfjid = TRUE; - - if (expandfjid || !strcmp(fjid, ".")) { - const gchar *res = fjid+2; - fjid = NULL; - // Send the message to the current buddy - if (current_buddy) - fjid = (char*)buddy_getjid(BUDDATA(current_buddy)); - if (!fjid) { - scr_LogPrint(LPRINT_NORMAL, "Please specify a Jabber ID."); - free_arg_lst(paramlst); - return; - } - if (expandfjid && *res) { - char *res_utf8 = to_utf8(res); - fjid = g_strdup_printf("%s%c%s", fjid, JID_RESOURCE_SEPARATOR, res_utf8); + if (fjid[0] == '.') { + const gchar *cjid = (current_buddy ? CURRENT_JID : NULL); + if (fjid[1] == '\0') { + fjid = g_strdup(cjid); + } else if (fjid[1] == JID_RESOURCE_SEPARATOR) { + char *res_utf8 = to_utf8(fjid+2); + fjid = g_strdup_printf("%s%c%s", cjid, JID_RESOURCE_SEPARATOR, res_utf8); g_free(res_utf8); - } + } else + fjid = to_utf8(fjid); } else fjid = to_utf8(fjid);