diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/profanity.c | 12 | ||||
-rw-r--r-- | src/profanity.h | 3 | ||||
-rw-r--r-- | src/ui/core.c | 10 | ||||
-rw-r--r-- | src/ui/ui.h | 3 | ||||
-rw-r--r-- | src/xmpp/roster.c | 5 |
5 files changed, 27 insertions, 6 deletions
diff --git a/src/profanity.c b/src/profanity.c index 7042b7b5..d67cd6a9 100644 --- a/src/profanity.c +++ b/src/profanity.c @@ -149,10 +149,18 @@ prof_handle_duck_result(const char * const result) } void -prof_handle_already_in_group(const char * const barejid, +prof_handle_already_in_group(const char * const contact, const char * const group) { - ui_contact_already_in_group(barejid, group); + ui_contact_already_in_group(contact, group); + ui_current_page_off(); +} + +void +prof_handle_not_in_group(const char * const contact, + const char * const group) +{ + ui_contact_not_in_group(contact, group); ui_current_page_off(); } diff --git a/src/profanity.h b/src/profanity.h index 7254c2de..d7e37870 100644 --- a/src/profanity.h +++ b/src/profanity.h @@ -82,6 +82,7 @@ void prof_handle_duck_help(const char * const result); void prof_handle_duck_result(const char * const result); void prof_handle_roster_add(const char * const barejid, const char * const name); void prof_handle_roster_remove(const char * const barejid); -void prof_handle_already_in_group(const char * const barejid, const char * const group); +void prof_handle_already_in_group(const char * const contact, const char * const group); +void prof_handle_not_in_group(const char * const contact, const char * const group); #endif diff --git a/src/ui/core.c b/src/ui/core.c index 86518bf7..8f04a375 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -456,9 +456,15 @@ ui_roster_remove(const char * const barejid) } void -ui_contact_already_in_group(const char * const barejid, const char * const group) +ui_contact_already_in_group(const char * const contact, const char * const group) { - cons_show("%s already in group %s", barejid, group); + cons_show("%s already in group %s", contact, group); +} + +void +ui_contact_not_in_group(const char * const contact, const char * const group) +{ + cons_show("%s is not currently in group %s", contact, group); } void diff --git a/src/ui/ui.h b/src/ui/ui.h index f8a6ff2d..65880b2a 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -114,7 +114,8 @@ void ui_room_member_presence(const char * const room, const char * const nick, const char * const show, const char * const status); void ui_roster_add(const char * const barejid, const char * const name); void ui_roster_remove(const char * const barejid); -void ui_contact_already_in_group(const char * const barejid, const char * const group); +void ui_contact_already_in_group(const char * const contact, const char * const group); +void ui_contact_not_in_group(const char * const contact, const char * const group); // contact status functions void ui_status_room(const char * const contact); diff --git a/src/xmpp/roster.c b/src/xmpp/roster.c index f29ac09b..262ad0b1 100644 --- a/src/xmpp/roster.c +++ b/src/xmpp/roster.c @@ -326,6 +326,11 @@ roster_remove_from_group(const char * const group, const char * const barejid) if (contact != NULL) { if (!p_contact_in_group(contact, group)) { + if (p_contact_name(contact) != NULL) { + prof_handle_not_in_group(p_contact_name(contact), group); + } else { + prof_handle_not_in_group(p_contact_barejid(contact), group); + } return; } |