about summary refs log tree commit diff stats
path: root/src/command
diff options
context:
space:
mode:
authorMichael Vetter <jubalh@iodoru.org>2020-05-24 17:17:20 +0200
committerMichael Vetter <jubalh@iodoru.org>2020-05-24 17:55:08 +0200
commitf121554088a6bffd2721b94c46a40d8ec61e0b46 (patch)
tree3f641f76d7c35dedb6930cd56023056335b12f9c /src/command
parentca3972b3ca85a8ba50da46e679832dcedfadcce7 (diff)
downloadprofani-tty-f121554088a6bffd2721b94c46a40d8ec61e0b46.tar.gz
List ignored bookmarks
`/bookmarl ignore` lists the ignored bookmarks.

Regards https://github.com/profanity-im/profanity/issues/1115
Diffstat (limited to 'src/command')
-rw-r--r--src/command/cmd_defs.c7
-rw-r--r--src/command/cmd_funcs.c25
-rw-r--r--src/command/cmd_funcs.h1
3 files changed, 31 insertions, 2 deletions
diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c
index 485c8324..d8a06bf2 100644
--- a/src/command/cmd_defs.c
+++ b/src/command/cmd_defs.c
@@ -795,7 +795,9 @@ static struct cmd_t command_defs[] =
 
     { "/bookmark",
         parse_args, 0, 8, NULL,
-        CMD_NOSUBFUNCS
+        CMD_SUBFUNCS(
+            { "ignore", cmd_bookmark_ignore }
+            )
         CMD_MAINFUNC(cmd_bookmark)
         CMD_TAGS(
             CMD_TAG_GROUPCHAT)
@@ -806,7 +808,8 @@ static struct cmd_t command_defs[] =
             "/bookmark update <room> [nick <nick>] [password <password>] [name <roomname>] autojoin on|off]",
             "/bookmark remove [<room>]",
             "/bookmark join <room>",
-            "/bookmark invites on|off")
+            "/bookmark invites on|off",
+            "/bookmark ignore")
         CMD_DESC(
             "Manage bookmarks and join bookmarked rooms. "
             "In a chat room, no arguments will bookmark the current room, setting autojoin to \"on\".")
diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c
index 8e02a822..171a3e52 100644
--- a/src/command/cmd_funcs.c
+++ b/src/command/cmd_funcs.c
@@ -68,6 +68,7 @@
 #include "tools/autocomplete.h"
 #include "tools/parser.h"
 #include "tools/tinyurl.h"
+#include "tools/bookmark_ignore.h"
 #include "plugins/plugins.h"
 #include "ui/ui.h"
 #include "ui/window_list.h"
@@ -4767,6 +4768,30 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args)
 }
 
 gboolean
+cmd_bookmark_ignore(ProfWin *window, const char *const command, gchar **args)
+{
+    jabber_conn_status_t conn_status = connection_get_status();
+
+    if (conn_status != JABBER_CONNECTED) {
+        cons_show("You are not currently connected.");
+        cons_alert();
+        return TRUE;
+    }
+
+    // `/bookmark ignore` lists them
+    if (args[1] == NULL) {
+        gsize len;
+        gchar **list = bookmark_ignore_list(&len);
+        cons_show_bookmarks_ignore(list, len);
+        g_strfreev(list);
+        return TRUE;
+    }
+
+    cons_bad_cmd_usage(command);
+    return TRUE;
+}
+
+gboolean
 cmd_disco(ProfWin *window, const char *const command, gchar **args)
 {
     jabber_conn_status_t conn_status = connection_get_status();
diff --git a/src/command/cmd_funcs.h b/src/command/cmd_funcs.h
index b87cc22f..d0d37efa 100644
--- a/src/command/cmd_funcs.h
+++ b/src/command/cmd_funcs.h
@@ -115,6 +115,7 @@ gboolean cmd_reconnect(ProfWin *window, const char *const command, gchar **args)
 gboolean cmd_room(ProfWin *window, const char *const command, gchar **args);
 gboolean cmd_rooms(ProfWin *window, const char *const command, gchar **args);
 gboolean cmd_bookmark(ProfWin *window, const char *const command, gchar **args);
+gboolean cmd_bookmark_ignore(ProfWin *window, const char *const command, gchar **args);
 gboolean cmd_roster(ProfWin *window, const char *const command, gchar **args);
 gboolean cmd_software(ProfWin *window, const char *const command, gchar **args);
 gboolean cmd_splash(ProfWin *window, const char *const command, gchar **args);