diff --git a/src/main/lkt.c b/src/main/lkt.c
index 4a6d84ef6ec3c9af7c94853b96847a0f231fcb4d..b641966f4583542d291a29f3f315a9cd1bda9d5f 100644
--- a/src/main/lkt.c
+++ b/src/main/lkt.c
@@ -17,7 +17,7 @@
 
 #define LKT_KEY_VALUE_SEP ": \n\t\0"
 
-#define ___HANDLE_STATUS(buffer, ok)                                                                                   \
+#define HANDLE_STATUS(buffer, ok)                                                                                      \
     if (STR_NMATCH(buffer, "OK", 2)) {                                                                                 \
         ok;                                                                                                            \
     } else if (STR_NMATCH(buffer, "ACK", 3))                                                                           \
@@ -25,15 +25,6 @@
 
 /* Type definition. */
 
-typedef struct {
-    const char *host;       /* Serveur host, may be resolved.               */
-    const char *port;       /* Serveur port.                                */
-    const char *pwd;        /* The password for the user.                   */
-    const char *row_format; /* The row format.                              */
-    const char **argv;      /* Pointer to the argv from the main function.  */
-    int argc;               /* Argument count of the args.                  */
-} args_t;
-
 #define ROW_FORMAT_ONELINE "oneline"
 #define ROW_FORMAT_PRETTY  "pretty"
 #define ROW_FORMAT_AUTO    "auto"
@@ -138,7 +129,7 @@ setup_row_printer(void)
 /* Communication functions and fonction that interact with lektor stuff. */
 
 PRIVATE_FUNCTION void
-___concat_strings(char *const res, size_t len, const char **tab, size_t count)
+concat_strings(char *const res, size_t len, const char **tab, size_t count)
 {
     size_t i;
     for (i = 0; i < count - 1; ++i) {
@@ -195,7 +186,7 @@ lkt_get_query_type(struct cmd_args *args, char *const regex, size_t regex_len)
 #define ___explicit_with_concat_strings(matches, uri)                                                                  \
     if (STR_MATCH(matches, args->argv[0])) {                                                                           \
         strncat(regex, uri, regex_len - 1);                                                                            \
-        ___concat_strings(regex, regex_len, args->argv + 1, args->argc - 1);                                           \
+        concat_strings(regex, regex_len, args->argv + 1, args->argc - 1);                                              \
         return 0;                                                                                                      \
     }
 #define ___explicit_with_snprintf(matches, uri)                                                                        \
@@ -204,15 +195,16 @@ lkt_get_query_type(struct cmd_args *args, char *const regex, size_t regex_len)
         return 0;                                                                                                      \
     }
 
-        ___explicit_with_concat_strings("author", "author://");     /* Type ?== author */
-        ___explicit_with_concat_strings("plt", "playlist://");      /* Type ?== playlist */
+        // clang-format off
+        ___explicit_with_concat_strings("author",   "author://");   /* Type ?== author   */
+        ___explicit_with_concat_strings("plt",      "playlist://"); /* Type ?== playlist */
         ___explicit_with_concat_strings("playlist", "playlist://"); /* Type ?== playlist */
-
-        ___explicit_with_snprintf("cat", "category://");      /* Type ?== category */
-        ___explicit_with_snprintf("category", "category://"); /* Type ?== category */
-        ___explicit_with_snprintf("lang", "lang://");         /* Type ?== lang */
-        ___explicit_with_snprintf("language", "lang://");     /* Type ?== lang */
-        ___explicit_with_snprintf("type", "type://");         /* Type ?== type */
+        ___explicit_with_snprintf("cat",            "category://"); /* Type ?== category */
+        ___explicit_with_snprintf("category",       "category://"); /* Type ?== category */
+        ___explicit_with_snprintf("lang",           "lang://");     /* Type ?== lang     */
+        ___explicit_with_snprintf("language",       "lang://");     /* Type ?== lang     */
+        ___explicit_with_snprintf("type",           "type://");     /* Type ?== type     */
+        // clang-format on
 
 #undef ___explicit_with_snprintf
 #undef ___explicit_concat_strings
@@ -221,7 +213,7 @@ lkt_get_query_type(struct cmd_args *args, char *const regex, size_t regex_len)
     /* If 'query' is specified, skip it */
     int index = STR_MATCH("query", args->argv[0]) ? 1 : 0;
     strncat(regex, "query://%", regex_len - 1);
-    ___concat_strings(regex, regex_len, args->argv + index, args->argc - index);
+    concat_strings(regex, regex_len, args->argv + index, args->argc - index);
     strncat(regex, "%", regex_len - 1);
     return 0;
 }
@@ -241,7 +233,7 @@ read_socket(FILE *sock, char *buff, size_t max_len)
 }
 
 PRIVATE_FUNCTION EXIT_FUNCTION
-___exit_with_status(FILE *sock, char *buff)
+exit_with_status(FILE *sock, char *buff)
 {
     read_socket(sock, buff, 2);
     FAIL_IF(buff[0] != 'O' && buff[1] != 'K', "ACK");
@@ -343,10 +335,7 @@ PRIVATE_FUNCTION void
 send_cmd_with_uri(FILE *sock, char *cmd, int argc, const char **argv)
 {
     char buf[LKT_MESSAGE_MAX];
-    struct cmd_args args = {
-        .argc = argc,
-        .argv = argv,
-    };
+    struct cmd_args args = CMD_ARGS_FROM(argc, argv);
 
     memset(buf, 0, LKT_MESSAGE_MAX * sizeof(char));
     FAIL_IF(lkt_get_query_type(&args, buf, LKT_MESSAGE_MAX), "Query is invalid");
@@ -356,13 +345,14 @@ send_cmd_with_uri(FILE *sock, char *cmd, int argc, const char **argv)
 /* Functions implementing options. */
 
 #define just_send_two_args(func, cmd)                                                                                  \
-    EXIT_FUNCTION func(struct cmd_args *args)                                                                          \
+    EXIT_FUNCTION                                                                                                      \
+    func(struct cmd_args *args)                                                                                        \
     {                                                                                                                  \
         FAIL_IF(args->argc != 2, "Need two arguments");                                                                \
         FILE *sock = lkt_connect();                                                                                    \
         char buff[2];                                                                                                  \
         write_socket(sock, cmd " %s %s\n", args->argv[0], args->argv[1]);                                              \
-        ___exit_with_status(sock, buff);                                                                               \
+        exit_with_status(sock, buff);                                                                                  \
     }
 // clang-format off
 just_send_two_args(queue_swap__,   "swap");
@@ -371,13 +361,14 @@ just_send_two_args(queue_swapid__, "swapid");
 #undef just_send_two_args
 
 #define just_send_one_arg(func, cmd)                                                                                   \
-    EXIT_FUNCTION func(struct cmd_args *args)                                                                          \
+    EXIT_FUNCTION                                                                                                      \
+    func(struct cmd_args *args)                                                                                        \
     {                                                                                                                  \
         FAIL_IF(args->argc != 1, "Invalid argument");                                                                  \
         FILE *sock = lkt_connect();                                                                                    \
         char buff[2];                                                                                                  \
         write_socket(sock, cmd " %s\n", args->argv[0]);                                                                \
-        ___exit_with_status(sock, buff);                                                                               \
+        exit_with_status(sock, buff);                                                                                  \
     }
 // clang-format off
 just_send_one_arg(stickers_create__,  "sticker __create");
@@ -389,7 +380,8 @@ just_send_one_arg(queue_dump__,       "__dump");
 #undef just_send_one_arg
 
 #define just_send(func, msg) /* Just send a simple string functions */                                                 \
-    EXIT_FUNCTION func(struct cmd_args *args)                                                                          \
+    EXIT_FUNCTION                                                                                                      \
+    func(struct cmd_args *args)                                                                                        \
     {                                                                                                                  \
         FAIL_IF(args->argc, "This command takes no arguments");                                                        \
         lkt_send_and_exit(msg, sizeof(msg));                                                                           \
@@ -494,7 +486,7 @@ queue_replace__(struct cmd_args *args)
             break;
         }
 
-        ___HANDLE_STATUS(buff, { break; });
+        HANDLE_STATUS(buff, { break; });
     }
 
     fclose(sock);
@@ -505,7 +497,7 @@ queue_replace__(struct cmd_args *args)
     if (play)
         write_socket(sock, "play\n");
     write_socket(sock, "command_list_end\n");
-    ___exit_with_status(sock, buff);
+    exit_with_status(sock, buff);
 }
 
 EXIT_FUNCTION
@@ -572,7 +564,7 @@ ping__(struct cmd_args *args)
 }
 
 PRIVATE_FUNCTION EXIT_FUNCTION
-___read_kara_and_exit(FILE *sock)
+read_kara_and_exit(FILE *sock)
 {
     char *mem = NULL;
     char buff[LKT_MESSAGE_MAX];
@@ -606,18 +598,17 @@ ___read_kara_and_exit(FILE *sock)
         ___assign_mdt(category);
 
         /* At this point every key has been parsed. */
-        ___HANDLE_STATUS(buff, { goto ok; });
+        HANDLE_STATUS(buff, { break; });
     }
 
 #undef ___assign_mdt
 
-ok:
     if (language[0])
         printf("%s - %s / %s - %s - %s [%s]\n", category, language, source, type, title, author);
     else if (category[0])
         printf("%s / %s - %s - %s [%s]\n", category, source, type, title, author);
     else
-        exit(EXIT_FAILURE);
+        abort();
     exit(EXIT_SUCCESS);
 }
 
@@ -629,7 +620,7 @@ queue_id__(struct cmd_args *args)
     safe_snprintf(probe_id__, LKT_LINE_MAX, "playlistid %ld\n", strtol(args->argv[0], NULL, 0));
     FILE *sock = lkt_connect();
     write_socket(sock, probe_id__);
-    ___read_kara_and_exit(sock);
+    read_kara_and_exit(sock);
 }
 
 EXIT_FUNCTION
@@ -639,7 +630,7 @@ current__(struct cmd_args *args)
     static const char current_song__[] = "currentsong\n";
     FILE *sock                         = lkt_connect();
     write_socket(sock, current_song__);
-    ___read_kara_and_exit(sock);
+    read_kara_and_exit(sock);
 }
 
 EXIT_FUNCTION
@@ -665,7 +656,7 @@ queue_pop__(struct cmd_args *args)
         assign_int("song", song);
 
         /* At this point every key has been parsed. */
-        ___HANDLE_STATUS(buff, { break; });
+        HANDLE_STATUS(buff, { break; });
     }
 #undef assign_int
     song += 1; /* Needs the +1, see status command */
@@ -675,7 +666,7 @@ queue_pop__(struct cmd_args *args)
     if (!song)
         exit(EXIT_FAILURE);
     write_socket(sock, "next\ndelete %d\n", song);
-    ___exit_with_status(sock, buff);
+    exit_with_status(sock, buff);
 }
 
 EXIT_FUNCTION
@@ -743,7 +734,7 @@ status__(struct cmd_args *args)
         assign_int("elapsed", time_pos) assign_int("duration", time_duration) assign_int("song", song_index);
         assign_int("playlistlength", plt_len);
 
-        ___HANDLE_STATUS(buff, { break; });
+        HANDLE_STATUS(buff, { break; });
     }
 
     /* Get lektor's stats */
@@ -754,7 +745,7 @@ status__(struct cmd_args *args)
 
         assign_int("__is_updating", is_updating) assign_int("db_update", update_ts);
         assign_two_int("__update_progress", update_tick, update_count);
-        ___HANDLE_STATUS(buff, { break; });
+        HANDLE_STATUS(buff, { break; });
     }
 
     /* End of communication */
@@ -807,7 +798,7 @@ queue_remove__(struct cmd_args *args)
     sscanf(args->argv[0], "%d", &dumy);
     if (dumy != 0) {
         write_socket(sock, cmd__, dumy);
-        ___exit_with_status(sock, buff);
+        exit_with_status(sock, buff);
     }
 
     LOG_FATAL("Invalid argument");
@@ -826,7 +817,7 @@ queue_delete__(struct cmd_args *args)
     sscanf(args->argv[0], "%d", &dumy);
     if (dumy != 0) {
         write_socket(sock, cmd_id__, dumy);
-        ___exit_with_status(sock, buff);
+        exit_with_status(sock, buff);
     }
 
     LOG_FATAL("Invalid argument");
@@ -839,7 +830,7 @@ queue_add__(struct cmd_args *args)
     FAIL_IF(args->argc < 1, "Invalid arguments");
     FILE *sock = lkt_connect();
     send_cmd_with_uri(sock, "add", args->argc, args->argv);
-    ___exit_with_status(sock, buff);
+    exit_with_status(sock, buff);
 }
 
 EXIT_FUNCTION
@@ -849,7 +840,7 @@ queue_insert__(struct cmd_args *args)
     FAIL_IF(args->argc < 1, "Invalid arguments");
     FILE *sock = lkt_connect();
     send_cmd_with_uri(sock, "__insert", args->argc, args->argv);
-    ___exit_with_status(sock, buff);
+    exit_with_status(sock, buff);
 }
 
 EXIT_FUNCTION
@@ -866,7 +857,7 @@ queue_seek__(struct cmd_args *args)
 
     FILE *sock = lkt_connect();
     write_socket(sock, "playid %ld\n", id);
-    ___exit_with_status(sock, buf);
+    exit_with_status(sock, buf);
 }
 
 EXIT_FUNCTION
@@ -910,7 +901,7 @@ redo:
             }
         }
 
-        ___HANDLE_STATUS(buff, { exit(EXIT_SUCCESS); });
+        HANDLE_STATUS(buff, { exit(EXIT_SUCCESS); });
         row_print(buff);
     }
 }
@@ -951,7 +942,7 @@ queue_list__(struct cmd_args *args)
         assign_int("song", song_index);
 
         /* At this point every key has been parsed. */
-        ___HANDLE_STATUS(buff, { break; });
+        HANDLE_STATUS(buff, { break; });
     }
 #undef assign_int
     fclose(sock);
@@ -975,15 +966,12 @@ plt_add__(struct cmd_args *args)
     FAIL_IF(args->argc < 2, "Invalid argument, need at least three arguments: plt add <plt> <query>");
 
     char regex[LKT_MESSAGE_MAX];
-    struct cmd_args args_regex = {
-        .argc = args->argc - 1,
-        .argv = args->argv + 1,
-    };
+    struct cmd_args args_regex = CMD_ARGS_NEXT(*args);
 
     FAIL_IF(lkt_get_query_type(&args_regex, regex, LKT_MESSAGE_MAX), "Query is invalid");
     FILE *sock = lkt_connect();
     write_socket(sock, "playlistadd %s %s\n", args->argv[0], regex);
-    ___exit_with_status(sock, buff);
+    exit_with_status(sock, buff);
 }
 
 EXIT_FUNCTION
@@ -996,7 +984,7 @@ plt_delete__(struct cmd_args *args)
     snprintf(cmd, 128 - 1, "playlistdelete %s", args->argv[0]);
     cmd[127] = '\0';
     send_cmd_with_uri(sock, cmd, args->argc - 1, &args->argv[1]);
-    ___exit_with_status(sock, buff);
+    exit_with_status(sock, buff);
 }
 
 EXIT_FUNCTION
@@ -1025,7 +1013,7 @@ stickers_get__(struct cmd_args *args)
     FOR_EVER {
         memset(buff, 0, LKT_MESSAGE_MAX * sizeof(char));
         read_socket(sock, buff, LKT_MESSAGE_MAX - 1);
-        ___HANDLE_STATUS(buff, { exit(EXIT_SUCCESS); });
+        HANDLE_STATUS(buff, { exit(EXIT_SUCCESS); });
         fprintf(stdout, "%s", buff);
     }
 }
@@ -1037,7 +1025,7 @@ stickers_set__(struct cmd_args *args)
     FILE *sock = lkt_connect();
     char buff[2];
     write_socket(sock, "sticker set %s %s %s %s\n", args->argv[0], args->argv[1], args->argv[2], args->argv[3]);
-    ___exit_with_status(sock, buff);
+    exit_with_status(sock, buff);
 }
 
 EXIT_FUNCTION
@@ -1051,7 +1039,7 @@ stickers_delete__(struct cmd_args *args)
         write_socket(sock = lkt_connect(), "sticker delete %s %s %s", args->argv[0], args->argv[1], args->argv[2]);
     else
         LOG_FATAL("Invalid argument");
-    ___exit_with_status(sock, buff);
+    exit_with_status(sock, buff);
 }
 
 /* Search functions. */
@@ -1077,7 +1065,7 @@ redo:
             goto redo;
         }
 
-        ___HANDLE_STATUS(buff, { exit(EXIT_SUCCESS); });
+        HANDLE_STATUS(buff, { exit(EXIT_SUCCESS); });
 
         if (STR_NMATCH(buff, "name: ", strlen("name: "))) {
             char *real_line = buff + sizeof("name: ") - sizeof(char);
@@ -1129,7 +1117,7 @@ redo:
             goto redo;
         }
 
-        ___HANDLE_STATUS(buff, { exit(EXIT_SUCCESS); });
+        HANDLE_STATUS(buff, { exit(EXIT_SUCCESS); });
         row_print(buff);
     }
 }
@@ -1147,7 +1135,7 @@ search_get__(struct cmd_args *args)
     FOR_EVER {
         memset(buff, 0, LKT_MESSAGE_MAX * sizeof(char));
         read_socket(sock, buff, LKT_MESSAGE_MAX - 1);
-        ___HANDLE_STATUS(buff, { exit(EXIT_SUCCESS); });
+        HANDLE_STATUS(buff, { exit(EXIT_SUCCESS); });
         sink = write(1, buff, strlen(buff));
     }
 }
@@ -1164,10 +1152,7 @@ search_plt__(struct cmd_args *args)
     char regex[LKT_MESSAGE_MAX];
     int continuation           = 0;
     FILE *sock                 = NULL;
-    struct cmd_args args_regex = {
-        .argc = args->argc - 1,
-        .argv = args->argv + 1,
-    };
+    struct cmd_args args_regex = CMD_ARGS_NEXT(*args);
 
     FAIL_IF(args->argc < 2, "Invalid number of arguments");
     FAIL_IF(lkt_get_query_type(&args_regex, regex, LKT_MESSAGE_MAX), "Query is invalid");
@@ -1186,7 +1171,7 @@ redo:
             goto redo;
         }
 
-        ___HANDLE_STATUS(buff, { exit(EXIT_SUCCESS); });
+        HANDLE_STATUS(buff, { exit(EXIT_SUCCESS); });
         row_print(buff);
     }
 }