about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2013-01-21 23:48:57 +0000
committerJames Booth <boothj5@gmail.com>2013-01-21 23:48:57 +0000
commit134da4d001d1e6fa65b9affb36a85ef7881e97f4 (patch)
treefa37ac73f70bb4b759a522fe5210655e5b2bf0cc
parentdd6dfd94080d57860e5450a896b5101d6764875a (diff)
downloadprofani-tty-134da4d001d1e6fa65b9affb36a85ef7881e97f4.tar.gz
Always show output in console for /info command
-rw-r--r--src/command.c36
-rw-r--r--src/ui.h5
-rw-r--r--src/windows.c49
3 files changed, 37 insertions, 53 deletions
diff --git a/src/command.c b/src/command.c
index a2398874..6cf8e55f 100644
--- a/src/command.c
+++ b/src/command.c
@@ -1727,25 +1727,49 @@ _cmd_info(gchar **args, struct cmd_help_t help)
     } else {
         if (win_current_is_groupchat()) {
             if (usr != NULL) {
-                win_room_show_info(usr);
+                PContact pcontact = muc_get_participant(win_current_get_recipient(), usr);
+                if (pcontact != NULL) {
+                    cons_show_info(pcontact);
+                } else {
+                    cons_show("No such participant \"%s\" in room.", usr);
+                }
             } else {
-                win_current_show("You must specify a nickname.");
+                cons_show("No nickname supplied to /info in chat room.");
             }
+
         } else if (win_current_is_chat()) {
             if (usr != NULL) {
-                win_current_show("No parameter required when in chat.");
+                cons_show("No parameter required for /info in chat.");
             } else {
-                win_show_info();
+                PContact pcontact = contact_list_get_contact(win_current_get_recipient());
+                if (pcontact != NULL) {
+                    cons_show_info(pcontact);
+                } else {
+                    cons_show("No such contact \"%s\" in roster.", win_current_get_recipient());
+                }
             }
+
         } else if (win_current_is_private()) {
             if (usr != NULL) {
                 win_current_show("No parameter required when in chat.");
             } else {
-                win_private_show_info();
+                Jid *jid = jid_create(win_current_get_recipient());
+                PContact pcontact = muc_get_participant(jid->barejid, jid->resourcepart);
+                if (pcontact != NULL) {
+                    cons_show_info(pcontact);
+                } else {
+                    cons_show("No such participant \"%s\" in room.", jid->resourcepart);
+                }
+                jid_destroy(jid);
             }
         } else {
             if (usr != NULL) {
-                cons_show_info(usr);
+                PContact pcontact = contact_list_get_contact(usr);
+                if (pcontact != NULL) {
+                    cons_show_info(pcontact);
+                } else {
+                    cons_show("No such contact \"%s\" in roster.", usr);
+                }
             } else {
                 cons_show("Usage: %s", help.usage);
             }
diff --git a/src/ui.h b/src/ui.h
index 1f8b81d5..2342be3b 100644
--- a/src/ui.h
+++ b/src/ui.h
@@ -35,6 +35,7 @@
 #include <ncurses.h>
 #endif
 
+#include "contact.h"
 #include "jabber.h"
 #include "jid.h"
 
@@ -136,8 +137,6 @@ void win_room_show_status(const char * const contact);
 void win_room_show_info(const char * const contact);
 void win_show_status(void);
 void win_private_show_status(void);
-void win_show_info(void);
-void win_private_show_info(void);
 
 // console window actions
 void cons_about(void);
@@ -164,7 +163,7 @@ void cons_show_contacts(GSList * list);
 void cons_check_version(gboolean not_available_msg);
 void cons_show_wins(void);
 void cons_show_status(const char * const contact);
-void cons_show_info(const char * const contact);
+void cons_show_info(PContact pcontact);
 void cons_show_themes(GSList *themes);
 
 // status bar actions
diff --git a/src/windows.c b/src/windows.c
index f281be24..74507e06 100644
--- a/src/windows.c
+++ b/src/windows.c
@@ -1159,53 +1159,14 @@ cons_show_wins(void)
 }
 
 void
-win_room_show_info(const char * const contact)
+cons_show_info(PContact pcontact)
 {
-    PContact pcontact = muc_get_participant(win_current_get_recipient(), contact);
-
-    if (pcontact != NULL) {
-        _win_show_info(current->win, pcontact);
-    } else {
-        win_current_show("No such participant \"%s\" in room.", contact);
-    }
-
-}
-
-void
-cons_show_info(const char * const contact)
-{
-    PContact pcontact = contact_list_get_contact(contact);
-
-    if (pcontact != NULL) {
-        _win_show_info(console->win, pcontact);
-    } else {
-        cons_show("No such contact \"%s\" in roster.", contact);
-    }
-}
+    _win_show_info(console->win, pcontact);
 
-void
-win_show_info(void)
-{
-    PContact pcontact = contact_list_get_contact(win_current_get_recipient());
-
-    if (pcontact != NULL) {
-        _win_show_info(current->win, pcontact);
-    } else {
-        win_current_show("No such contact \"%s\" in roster.", win_current_get_recipient());
-    }
-}
-
-void
-win_private_show_info(void)
-{
-    Jid *jid = jid_create(win_current_get_recipient());
-
-    PContact pcontact = muc_get_participant(jid->barejid, jid->resourcepart);
-
-    if (pcontact != NULL) {
-        _win_show_info(current->win, pcontact);
+    if (current_index == 0) {
+        dirty = TRUE;
     } else {
-        win_current_show("No such participant \"%s\" in room.", jid->resourcepart);
+        status_bar_new(0);
     }
 }