about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/command/commands.c18
-rw-r--r--src/profanity.c16
-rw-r--r--src/profanity.h2
-rw-r--r--src/roster_list.c30
-rw-r--r--src/roster_list.h2
5 files changed, 14 insertions, 54 deletions
diff --git a/src/command/commands.c b/src/command/commands.c
index 57a6b151..e6588c11 100644
--- a/src/command/commands.c
+++ b/src/command/commands.c
@@ -1009,8 +1009,13 @@ cmd_group(gchar **args, struct cmd_help_t help)
             return TRUE;
         }
 
-        roster_add_to_group(group, pcontact);
-        roster_send_add_to_group(group, pcontact);
+        if (p_contact_in_group(pcontact, group)) {
+            const char *display_name = p_contact_name_or_jid(pcontact);
+            ui_contact_already_in_group(display_name, group);
+            ui_current_page_off();
+        } else {
+            roster_send_add_to_group(group, pcontact);
+        }
 
         return TRUE;
     }
@@ -1036,8 +1041,13 @@ cmd_group(gchar **args, struct cmd_help_t help)
             return TRUE;
         }
 
-        roster_remove_from_group(group, pcontact);
-        roster_send_remove_from_group(group, pcontact);
+        if (!p_contact_in_group(pcontact, group)) {
+            const char *display_name = p_contact_name_or_jid(pcontact);
+            ui_contact_not_in_group(display_name, group);
+            ui_current_page_off();
+        } else {
+            roster_send_remove_from_group(group, pcontact);
+        }
 
         return TRUE;
     }
diff --git a/src/profanity.c b/src/profanity.c
index 3ee032fd..9178d056 100644
--- a/src/profanity.c
+++ b/src/profanity.c
@@ -118,22 +118,6 @@ prof_run(const int disable_tls, char *log_level, char *account_name)
 }
 
 void
-prof_handle_already_in_group(const char * const contact,
-    const char * const 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();
-}
-
-void
 prof_handle_roster_add(const char * const barejid, const char * const name)
 {
     ui_roster_add(barejid, name);
diff --git a/src/profanity.h b/src/profanity.h
index a448c436..5e826fc4 100644
--- a/src/profanity.h
+++ b/src/profanity.h
@@ -31,7 +31,5 @@ void prof_run(const int disable_tls, char *log_level, char *account_name);
 void prof_handle_idle(void);
 void prof_handle_activity(void);
 void prof_handle_roster_add(const char * const barejid, const char * const name);
-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/roster_list.c b/src/roster_list.c
index 62d99323..7945101a 100644
--- a/src/roster_list.c
+++ b/src/roster_list.c
@@ -334,36 +334,6 @@ roster_get_group(const char * const group)
     return result;
 }
 
-void
-roster_add_to_group(const char * const group, PContact contact)
-{
-    assert(contact != NULL);
-
-    if (p_contact_in_group(contact, group)) {
-        if (p_contact_name(contact) != NULL) {
-            prof_handle_already_in_group(p_contact_name(contact), group);
-        } else {
-            prof_handle_already_in_group(p_contact_barejid(contact), group);
-        }
-        return;
-    }
-}
-
-void
-roster_remove_from_group(const char * const group, PContact contact)
-{
-    assert(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;
-    }
-}
-
 GSList *
 roster_get_groups(void)
 {
diff --git a/src/roster_list.h b/src/roster_list.h
index 8fe2b5bd..a7198e5c 100644
--- a/src/roster_list.h
+++ b/src/roster_list.h
@@ -50,8 +50,6 @@ char * roster_find_contact(char *search_str);
 char * roster_find_resource(char *search_str);
 GSList * roster_get_group(const char * const group);
 GSList * roster_get_groups(void);
-void roster_add_to_group(const char * const group, PContact contact);
-void roster_remove_from_group(const char * const group, PContact contact);
 char * roster_find_group(char *search_str);
 char * roster_find_jid(char *search_str);