1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-06-23 21:45:30 +00:00

Always show output in console for /info command

This commit is contained in:
James Booth 2013-01-21 23:48:57 +00:00
parent dd6dfd9408
commit 134da4d001
3 changed files with 37 additions and 53 deletions

View File

@ -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);
}

View File

@ -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

View File

@ -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);
_win_show_info(console->win, pcontact);
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.", 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);
}
}
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);
} else {
win_current_show("No such participant \"%s\" in room.", jid->resourcepart);
status_bar_new(0);
}
}