about summary refs log tree commit diff stats
path: root/src/command
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2015-04-21 22:08:00 +0100
committerJames Booth <boothj5@gmail.com>2015-04-21 22:08:00 +0100
commitebca38e22483ec7054596a8ecf0bdccd85e76e0a (patch)
treed3ef709e8ea666361f8754c558657f739c905a42 /src/command
parent65c0a87f970ebfb1bb2c11280562c3bd1ba2a26d (diff)
parent53f2a4a35c287b755eff7e723928f56c9bf220d2 (diff)
downloadprofani-tty-ebca38e22483ec7054596a8ecf0bdccd85e76e0a.tar.gz
Merge branch 'master' into pgp
Diffstat (limited to 'src/command')
-rw-r--r--src/command/commands.c88
1 files changed, 40 insertions, 48 deletions
diff --git a/src/command/commands.c b/src/command/commands.c
index 172c93b0..d6750c68 100644
--- a/src/command/commands.c
+++ b/src/command/commands.c
@@ -84,8 +84,6 @@ extern GHashTable *commands;
 gboolean
 cmd_execute_default(const char * inp)
 {
-    jabber_conn_status_t status = jabber_get_connection_status();
-
     // handle escaped commands - treat as normal message
     if (g_str_has_prefix(inp, "//")) {
         inp++;
@@ -97,46 +95,40 @@ 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 {
-                ProfMucWin *mucwin = wins_get_current_muc();
-                message_send_groupchat(mucwin->roomjid, inp);
-            }
-            break;
-
-        case WIN_CHAT:
-            if (status != JABBER_CONNECTED) {
-                ui_current_print_line("You are not currently connected.");
-            } else {
-                ProfWin *current = wins_get_current();
-                ProfChatWin *chatwin = (ProfChatWin*)current;
-                assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK);
-                client_msg_send(chatwin->barejid, inp);
-            }
-            break;
-
-        case WIN_PRIVATE:
-            if (status != JABBER_CONNECTED) {
-                ui_current_print_line("You are not currently connected.");
-            } else {
-                ProfPrivateWin *privatewin = wins_get_current_private();
-                message_send_private(privatewin->fulljid, inp);
-                ui_outgoing_private_msg(privatewin->fulljid, inp);
-            }
-            break;
+    // handle non commands in non chat windows
+    ProfWin *current = wins_get_current();
+    if (current->type != WIN_CHAT && current->type != WIN_MUC && current->type != WIN_PRIVATE) {
+        cons_show("Unknown command: %s", inp);
+        return TRUE;
+    }
 
-        case WIN_CONSOLE:
-        case WIN_XML:
-            cons_show("Unknown command: %s", inp);
-            break;
+    jabber_conn_status_t status = jabber_get_connection_status();
+    if (status != JABBER_CONNECTED) {
+        ui_current_print_line("You are not currently connected.");
+        return TRUE;
+    }
 
-        default:
-            break;
+    switch (current->type) {
+    case WIN_CHAT:
+    {
+        ProfChatWin *chatwin = wins_get_current_chat();
+        client_send_msg(chatwin->barejid, inp);
+        break;
+    }
+    case WIN_PRIVATE:
+    {
+        ProfPrivateWin *privatewin = wins_get_current_private();
+        client_send_priv_msg(privatewin->fulljid, inp);
+        break;
+    }
+    case WIN_MUC:
+    {
+        ProfMucWin *mucwin = wins_get_current_muc();
+        client_send_muc_msg(mucwin->roomjid, inp);
+        break;
+    }
+    default:
+        break;
     }
 
     return TRUE;
@@ -1333,6 +1325,7 @@ cmd_msg(gchar **args, struct cmd_help_t help)
         return TRUE;
     }
 
+    // send private message when in MUC room
     if (win_type == WIN_MUC) {
         ProfMucWin *mucwin = wins_get_current_muc();
         if (muc_roster_contains_nick(mucwin->roomjid, usr)) {
@@ -1340,9 +1333,8 @@ cmd_msg(gchar **args, struct cmd_help_t help)
             g_string_append(full_jid, "/");
             g_string_append(full_jid, usr);
 
-            if (msg != NULL) {
-                message_send_private(full_jid->str, msg);
-                ui_outgoing_private_msg(full_jid->str, msg);
+            if (msg) {
+                client_send_priv_msg(full_jid->str, msg);
             } else {
                 ui_new_private_win(full_jid->str);
             }
@@ -1355,6 +1347,7 @@ cmd_msg(gchar **args, struct cmd_help_t help)
 
         return TRUE;
 
+    // send chat message
     } else {
         char *barejid = roster_barejid_from_name(usr);
         if (barejid == NULL) {
@@ -1362,7 +1355,7 @@ cmd_msg(gchar **args, struct cmd_help_t help)
         }
 
         if (msg) {
-            client_msg_send(barejid, msg);
+            client_send_msg(barejid, msg);
             return TRUE;
         } else {
             ui_new_chat_win(barejid);
@@ -3170,20 +3163,19 @@ cmd_tiny(gchar **args, struct cmd_help_t help)
     case WIN_CHAT:
     {
         ProfChatWin *chatwin = wins_get_current_chat();
-        client_msg_send(chatwin->barejid, tiny);
+        client_send_msg(chatwin->barejid, tiny);
         break;
     }
     case WIN_PRIVATE:
     {
         ProfPrivateWin *privatewin = wins_get_current_private();
-        message_send_private(privatewin->fulljid, tiny);
-        ui_outgoing_private_msg(privatewin->fulljid, tiny);
+        client_send_priv_msg(privatewin->fulljid, tiny);
         break;
     }
     case WIN_MUC:
     {
         ProfMucWin *mucwin = wins_get_current_muc();
-        message_send_groupchat(mucwin->roomjid, tiny);
+        client_send_muc_msg(mucwin->roomjid, tiny);
         break;
     }
     default: