about summary refs log tree commit diff stats
path: root/src/command
diff options
context:
space:
mode:
authorJohn Hernandez <129467592+H3rnand3zzz@users.noreply.github.com>2023-04-13 15:23:45 +0200
committerJohn Hernandez <129467592+H3rnand3zzz@users.noreply.github.com>2023-04-13 16:41:21 +0200
commit5b8b9074a294e32cbec5f64f61d867dbf0ca1d51 (patch)
treefdcf6666c4c3aef3fe63043b6bcb52e3cd6caeb8 /src/command
parent766dc76e337c96e71edc698a8ee292014293c44f (diff)
downloadprofani-tty-5b8b9074a294e32cbec5f64f61d867dbf0ca1d51.tar.gz
Add nickname support for /roster remove
Add support of name/nickname instead of only JID for `/roster remove` command.

Add tests for it as well.
Diffstat (limited to 'src/command')
-rw-r--r--src/command/cmd_ac.c2
-rw-r--r--src/command/cmd_defs.c2
-rw-r--r--src/command/cmd_funcs.c13
3 files changed, 10 insertions, 7 deletions
diff --git a/src/command/cmd_ac.c b/src/command/cmd_ac.c
index 3561449e..5678dbff 100644
--- a/src/command/cmd_ac.c
+++ b/src/command/cmd_ac.c
@@ -2292,7 +2292,7 @@ _roster_autocomplete(ProfWin* window, const char* const input, gboolean previous
         if (result) {
             return result;
         }
-        result = autocomplete_param_with_func(input, "/roster remove", roster_barejid_autocomplete, previous, NULL);
+        result = autocomplete_param_with_func(input, "/roster remove", roster_contact_autocomplete, previous, NULL);
         if (result) {
             return result;
         }
diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c
index 12ebf4a1..fe993e39 100644
--- a/src/command/cmd_defs.c
+++ b/src/command/cmd_defs.c
@@ -290,7 +290,7 @@ static const struct cmd_t command_defs[] = {
               "/roster size <percent>",
               "/roster wrap on|off",
               "/roster add <jid> [<nick>]",
-              "/roster remove <jid>",
+              "/roster remove <contact>",
               "/roster remove_all contacts",
               "/roster nick <jid> <nick>",
               "/roster clearnick <jid>",
diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c
index f6736156..7c533a45 100644
--- a/src/command/cmd_funcs.c
+++ b/src/command/cmd_funcs.c
@@ -2922,14 +2922,17 @@ cmd_roster(ProfWin* window, const char* const command, gchar** args)
             cons_show("You are not currently connected.");
             return TRUE;
         }
-        char* jid = args[1];
-        if (jid == NULL) {
+        char* usr = args[1];
+        if (usr == NULL) {
             cons_bad_cmd_usage(command);
-        } else {
-            roster_send_remove(jid);
+            return TRUE;
         }
+        char* barejid = roster_barejid_from_name(usr);
+        if (barejid == NULL) {
+            barejid = usr;
+        }
+        roster_send_remove(barejid);
         return TRUE;
-
     } else if (strcmp(args[0], "remove_all") == 0) {
         if (g_strcmp0(args[1], "contacts") != 0) {
             cons_bad_cmd_usage(command);