From 4cd18449d2927304e02607a7130572d5329c274e Mon Sep 17 00:00:00 2001 From: taiyu Date: Fri, 4 Sep 2015 16:57:03 -0700 Subject: better handling of commands during config --- sway/config.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'sway/config.c') diff --git a/sway/config.c b/sway/config.c index 2d7e241d..9cc5addd 100644 --- a/sway/config.c +++ b/sway/config.c @@ -218,18 +218,22 @@ bool read_config(FILE *file, bool is_active) { // Any command which would require wlc to be initialized // should be queued for later execution list_t *args = split_string(line, " "); - if (!is_active && ( - strcmp("exec", args->items[0]) == 0 || - strcmp("exec_always", args->items[0]) == 0 )) { - sway_log(L_DEBUG, "Deferring command %s", line); - - char *cmd = malloc(strlen(line) + 1); - strcpy(cmd, line); - list_add(temp_config->cmd_queue, cmd); - } else if (!temp_depth && !handle_command(temp_config, line)) { - sway_log(L_DEBUG, "Config load failed for line %s", line); - success = false; - temp_config->failed = true; + struct cmd_handler *handler; + if ((handler = find_handler(args->items[0]))) { + if (handler->config_type > 0) { + sway_log(L_ERROR, "Invalid command during config ``%s''", line); + } else if (handler->config_type < 0 && !is_active) { + sway_log(L_DEBUG, "Deferring command ``%s''", line); + char *cmd = malloc(strlen(line) + 1); + strcpy(cmd, line); + list_add(temp_config->cmd_queue, cmd); + } else if (!temp_depth && !handle_command(temp_config, line)) { + sway_log(L_DEBUG, "Config load failed for line ``%s''", line); + success = false; + temp_config->failed = true; + } + } else { + sway_log(L_ERROR, "Invalid command %s",args->items[0]); } free_flat_list(args); -- cgit v1.2.3 From c5d0b5d4372a9443e07386b9dc47bd1681bbf699 Mon Sep 17 00:00:00 2001 From: taiyu Date: Fri, 4 Sep 2015 17:02:02 -0700 Subject: style --- sway/config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sway/config.c') diff --git a/sway/config.c b/sway/config.c index 9cc5addd..cbaab11e 100644 --- a/sway/config.c +++ b/sway/config.c @@ -233,7 +233,7 @@ bool read_config(FILE *file, bool is_active) { temp_config->failed = true; } } else { - sway_log(L_ERROR, "Invalid command %s",args->items[0]); + sway_log(L_ERROR, "Invalid command ``%s''", line); } free_flat_list(args); -- cgit v1.2.3 From afa6747145fe0ddc284ae115df937cd18ad4f3ff Mon Sep 17 00:00:00 2001 From: taiyu Date: Fri, 4 Sep 2015 17:09:07 -0700 Subject: enum for command type --- sway/config.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'sway/config.c') diff --git a/sway/config.c b/sway/config.c index cbaab11e..90f6529a 100644 --- a/sway/config.c +++ b/sway/config.c @@ -220,9 +220,9 @@ bool read_config(FILE *file, bool is_active) { list_t *args = split_string(line, " "); struct cmd_handler *handler; if ((handler = find_handler(args->items[0]))) { - if (handler->config_type > 0) { + if (handler->config_type == CMD_KEYBIND) { sway_log(L_ERROR, "Invalid command during config ``%s''", line); - } else if (handler->config_type < 0 && !is_active) { + } else if (handler->config_type == CMD_COMPOSITOR_READY && !is_active) { sway_log(L_DEBUG, "Deferring command ``%s''", line); char *cmd = malloc(strlen(line) + 1); strcpy(cmd, line); -- cgit v1.2.3