From 134da4d001d1e6fa65b9affb36a85ef7881e97f4 Mon Sep 17 00:00:00 2001 From: James Booth Date: Mon, 21 Jan 2013 23:48:57 +0000 Subject: Always show output in console for /info command --- src/command.c | 36 ++++++++++++++++++++++++++++++------ src/ui.h | 5 ++--- src/windows.c | 49 +++++-------------------------------------------- 3 files changed, 37 insertions(+), 53 deletions(-) (limited to 'src') 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 #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); } } -- cgit 1.4.1-2-gfad0