about summary refs log tree commit diff stats
path: root/src/command/command.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/command/command.c')
-rw-r--r--src/command/command.c39
1 files changed, 20 insertions, 19 deletions
diff --git a/src/command/command.c b/src/command/command.c
index f73a8aee..776dd533 100644
--- a/src/command/command.c
+++ b/src/command/command.c
@@ -1751,7 +1751,6 @@ cmd_execute_alias(const char * const inp, gboolean *ran)
 gboolean
 cmd_execute_default(const char * inp)
 {
-    win_type_t win_type = ui_current_win_type();
     jabber_conn_status_t status = jabber_get_connection_status();
 
     // handle escaped commands - treat as normal message
@@ -1765,14 +1764,15 @@ cmd_execute_default(const char * inp)
         return TRUE;
     }
 
+    win_type_t win_type = ui_current_win_type();
     switch (win_type)
     {
         case WIN_MUC:
             if (status != JABBER_CONNECTED) {
                 ui_current_print_line("You are not currently connected.");
             } else {
-                ProfWin
-                message_send_groupchat(inp, recipient);
+                ProfMucWin *mucwin = wins_get_current_muc();
+                message_send_groupchat(mucwin->roomjid, inp);
             }
             break;
 
@@ -1780,63 +1780,63 @@ cmd_execute_default(const char * inp)
             if (status != JABBER_CONNECTED) {
                 ui_current_print_line("You are not currently connected.");
             } else {
-                GString *send_recipient = g_string_new(recipient);
                 ProfWin *current = wins_get_current();
                 ProfChatWin *chatwin = (ProfChatWin*)current;
+                GString *send_recipient = g_string_new(chatwin->barejid);
                 if (current && win_has_chat_resource(current)) {
                     g_string_append(send_recipient, "/");
                     g_string_append(send_recipient, chatwin->resource);
                 }
 
 #ifdef HAVE_LIBOTR
-                prof_otrpolicy_t policy = otr_get_policy(recipient);
-                if (policy == PROF_OTRPOLICY_ALWAYS && !otr_is_secure(recipient)) {
+                prof_otrpolicy_t policy = otr_get_policy(chatwin->barejid);
+                if (policy == PROF_OTRPOLICY_ALWAYS && !otr_is_secure(chatwin->barejid)) {
                     cons_show_error("Failed to send message. Please check OTR policy");
                     return TRUE;
                 }
-                if (otr_is_secure(recipient)) {
-                    char *encrypted = otr_encrypt_message(recipient, inp);
+                if (otr_is_secure(chatwin->barejid)) {
+                    char *encrypted = otr_encrypt_message(chatwin->barejid, inp);
                     if (encrypted != NULL) {
-                        message_send(encrypted, recipient);
+                        message_send_chat(chatwin->barejid, encrypted);
                         otr_free_message(encrypted);
                         if (prefs_get_boolean(PREF_CHLOG)) {
                             const char *jid = jabber_get_fulljid();
                             Jid *jidp = jid_create(jid);
                             char *pref_otr_log = prefs_get_string(PREF_OTR_LOG);
                             if (strcmp(pref_otr_log, "on") == 0) {
-                                chat_log_chat(jidp->barejid, recipient, inp, PROF_OUT_LOG, NULL);
+                                chat_log_chat(jidp->barejid, chatwin->barejid, inp, PROF_OUT_LOG, NULL);
                             } else if (strcmp(pref_otr_log, "redact") == 0) {
-                                chat_log_chat(jidp->barejid, recipient, "[redacted]", PROF_OUT_LOG, NULL);
+                                chat_log_chat(jidp->barejid, chatwin->barejid, "[redacted]", PROF_OUT_LOG, NULL);
                             }
                             prefs_free_string(pref_otr_log);
                             jid_destroy(jidp);
                         }
 
-                        ui_outgoing_msg("me", recipient, inp);
+                        ui_outgoing_chat_msg("me", chatwin->barejid, inp);
                     } else {
                         cons_show_error("Failed to send message.");
                     }
                 } else {
-                    message_send(inp, send_recipient->str);
+                    message_send_chat(send_recipient->str, inp);
                     if (prefs_get_boolean(PREF_CHLOG)) {
                         const char *jid = jabber_get_fulljid();
                         Jid *jidp = jid_create(jid);
-                        chat_log_chat(jidp->barejid, recipient, inp, PROF_OUT_LOG, NULL);
+                        chat_log_chat(jidp->barejid, chatwin->barejid, inp, PROF_OUT_LOG, NULL);
                         jid_destroy(jidp);
                     }
 
-                    ui_outgoing_msg("me", recipient, inp);
+                    ui_outgoing_chat_msg("me", chatwin->barejid, inp);
                 }
 #else
                 message_send(inp, send_recipient->str);
                 if (prefs_get_boolean(PREF_CHLOG)) {
                     const char *jid = jabber_get_fulljid();
                     Jid *jidp = jid_create(jid);
-                    chat_log_chat(jidp->barejid, recipient, inp, PROF_OUT_LOG, NULL);
+                    chat_log_chat(jidp->barejid, chatwin->barejid, inp, PROF_OUT_LOG, NULL);
                     jid_destroy(jidp);
                 }
 
-                ui_outgoing_msg("me", recipient, inp);
+                ui_outgoing_chat_msg("me", chatwin->barejid, inp);
 #endif
                 g_string_free(send_recipient, TRUE);
             }
@@ -1846,8 +1846,9 @@ cmd_execute_default(const char * inp)
             if (status != JABBER_CONNECTED) {
                 ui_current_print_line("You are not currently connected.");
             } else {
-                message_send(inp, recipient);
-                ui_outgoing_msg("me", recipient, inp);
+                ProfPrivateWin *privatewin = wins_get_current_private();
+                message_send_private(privatewin->fulljid, inp);
+                ui_outgoing_private_msg("me", privatewin->fulljid, inp);
             }
             break;