From 677919b0097d469d028acde14d13bb364faef02e Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Sun, 23 May 2021 19:06:24 +0200
Subject: [PATCH] CMD: The idle and noidle commands are now 'simple' commands

---
 inc/lektor/commands.h |  6 +++---
 src/base/commands.c   | 30 +++++++++++++++---------------
 src/net/listen.c      |  6 +++---
 3 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/inc/lektor/commands.h b/inc/lektor/commands.h
index 440d6b10..ca399213 100644
--- a/inc/lektor/commands.h
+++ b/inc/lektor/commands.h
@@ -78,13 +78,13 @@ bool command_plt_list  (struct lkt_state *srv, size_t, char *args[LKT_MESSAGE_AR
 bool command_plt_ctx   (struct lkt_state *srv, size_t, char *args[LKT_MESSAGE_ARGS_MAX], int cont);
 
 /* The help */
-bool command_help(struct lkt_state *srv, size_t c, char *args[LKT_MESSAGE_ARGS_MAX]);
+bool command_help(struct lkt_state *srv, size_t c, char *[LKT_MESSAGE_ARGS_MAX]);
 
 /* Respond to the idle command */
-bool command_idle(struct lkt_state *srv, size_t c, struct lkt_command *cmd);
+bool command_idle(struct lkt_state *srv, size_t c, char *[LKT_MESSAGE_ARGS_MAX]);
 
 /* Cancel the call to the `idle` command. */
-bool command_noidle(struct lkt_state *srv, size_t c);
+bool command_noidle(struct lkt_state *srv, size_t c, char *[LKT_MESSAGE_ARGS_MAX]);
 
 /* Find and send karas in the db that match the search expression */
 bool command_find(struct lkt_state *srv, size_t c, char *cmd_args[LKT_MESSAGE_ARGS_MAX],
diff --git a/src/base/commands.c b/src/base/commands.c
index 99ee54ff..1a911e8c 100644
--- a/src/base/commands.c
+++ b/src/base/commands.c
@@ -536,35 +536,35 @@ command_help(struct lkt_state *srv, size_t c, char UNUSED *args[LKT_MESSAGE_ARGS
 }
 
 bool
-command_idle(struct lkt_state *srv, size_t c, struct lkt_command *cmd)
+command_idle(struct lkt_state *srv, size_t c, char *args[LKT_MESSAGE_ARGS_MAX])
 {
     bool once;
     size_t i;
 
-    for (once = false, i = 0; cmd->args[i]; ++i, once |= true) {
-        if (STR_MATCH(cmd->args[i], "database"))
+    for (once = false, i = 0; args[i]; ++i, once |= true) {
+        if (STR_MATCH(args[i], "database"))
             lkt_client_add_mask(srv, c, MPD_IDLE_DATABASE);
-        else if (STR_MATCH(cmd->args[i], "update"))
+        else if (STR_MATCH(args[i], "update"))
             lkt_client_add_mask(srv, c, MPD_IDLE_UPDATE);
-        else if (STR_MATCH(cmd->args[i], "stored_playlist"))
+        else if (STR_MATCH(args[i], "stored_playlist"))
             lkt_client_add_mask(srv, c, MPD_IDLE_STORED_PLAYLIST);
-        else if (STR_MATCH(cmd->args[i], "playlist"))
+        else if (STR_MATCH(args[i], "playlist"))
             lkt_client_add_mask(srv, c, MPD_IDLE_PLAYLIST);
-        else if (STR_MATCH(cmd->args[i], "player"))
+        else if (STR_MATCH(args[i], "player"))
             lkt_client_add_mask(srv, c, MPD_IDLE_PLAYER);
-        else if (STR_MATCH(cmd->args[i], "mixer"))
+        else if (STR_MATCH(args[i], "mixer"))
             lkt_client_add_mask(srv, c, MPD_IDLE_MIXER);
-        else if (STR_MATCH(cmd->args[i], "output"))
+        else if (STR_MATCH(args[i], "output"))
             lkt_client_add_mask(srv, c, MPD_IDLE_OUTPUT);
-        else if (STR_MATCH(cmd->args[i], "options"))
+        else if (STR_MATCH(args[i], "options"))
             lkt_client_add_mask(srv, c, MPD_IDLE_OPTIONS);
-        else if (STR_MATCH(cmd->args[i], "partition"))
+        else if (STR_MATCH(args[i], "partition"))
             lkt_client_add_mask(srv, c, MPD_IDLE_PARTITION);
-        else if (STR_MATCH(cmd->args[i], "sticker"))
+        else if (STR_MATCH(args[i], "sticker"))
             lkt_client_add_mask(srv, c, MPD_IDLE_STICKER);
-        else if (STR_MATCH(cmd->args[i], "subscription"))
+        else if (STR_MATCH(args[i], "subscription"))
             lkt_client_add_mask(srv, c, MPD_IDLE_SUBSCRIPTION);
-        else if (STR_MATCH(cmd->args[i], "message"))
+        else if (STR_MATCH(args[i], "message"))
             lkt_client_add_mask(srv, c, MPD_IDLE_MESSAGE);
         else
             lkt_client_add_mask(srv, c, MPD_IDLE_ALL);
@@ -579,7 +579,7 @@ command_idle(struct lkt_state *srv, size_t c, struct lkt_command *cmd)
 }
 
 inline bool
-command_noidle(struct lkt_state *srv, size_t c)
+command_noidle(struct lkt_state *srv, size_t c, char UNUSED *args[LKT_MESSAGE_ARGS_MAX])
 {
     lkt_client_clear_mask(srv, c);
     return true;
diff --git a/src/net/listen.c b/src/net/listen.c
index 269692a3..355201a6 100644
--- a/src/net/listen.c
+++ b/src/net/listen.c
@@ -537,7 +537,7 @@ handle_simple_command(struct lkt_state *srv, size_t c, struct lkt_command cmd)
             err = !command_password(srv, c, cmd.args);
 
         else if (STR_MATCH(cmd.name, "idle")) {
-            err = !command_idle(srv, c, &cmd);
+            err = !command_idle(srv, c, cmd.args);
             goto end_no_send_status;
         } else if (STR_MATCH(cmd.name, "search") || STR_MATCH(cmd.name, "find") || STR_MATCH(cmd.name, "list") ||
                    STR_MATCH(cmd.name, "listall") || STR_MATCH(cmd.name, "listallinfo") ||
@@ -551,10 +551,10 @@ handle_simple_command(struct lkt_state *srv, size_t c, struct lkt_command cmd)
     default:
         /* commands available only in idle mode */
         if (STR_MATCH(cmd.name, "idle")) {
-            err = !command_idle(srv, c, &cmd);
+            err = !command_idle(srv, c, cmd.args);
             goto end_no_send_status;
         } else if (STR_MATCH(cmd.name, "noidle"))
-            err = !command_noidle(srv, c);
+            err = !command_noidle(srv, c, NULL);
         else
             err = 2;
 
-- 
GitLab