diff --git a/cmd.c b/cmd.c index f02aa625..119b685a 100644 --- a/cmd.c +++ b/cmd.c @@ -682,6 +682,9 @@ cmd_list_print(const struct cmd_list *cmdlist, int escaped) struct cmd *cmd, *next; char *buf, *this; size_t len; + const char *separator; + const char *single_separator = escaped ? " \\; " : " ; "; + const char *double_separator = escaped ? " \\;\\; " : " ;; "; len = 1; buf = xcalloc(1, len); @@ -696,17 +699,11 @@ cmd_list_print(const struct cmd_list *cmdlist, int escaped) next = TAILQ_NEXT(cmd, qentry); if (next != NULL) { - if (cmd->group != next->group) { - if (escaped) - strlcat(buf, " \\;\\; ", len); - else - strlcat(buf, " ;; ", len); - } else { - if (escaped) - strlcat(buf, " \\; ", len); - else - strlcat(buf, " ; ", len); - } + if (cmd->group != next->group) + separator = double_separator; + else + separator = single_separator; + strlcat(buf, separator, len); } free(this);