diff options
Diffstat (limited to 'sway')
-rw-r--r-- | sway/commands.c | 20 | ||||
-rw-r--r-- | sway/config.c | 10 |
2 files changed, 10 insertions, 20 deletions
diff --git a/sway/commands.c b/sway/commands.c index 1d190e0b..9fae6a35 100644 --- a/sway/commands.c +++ b/sway/commands.c @@ -316,7 +316,7 @@ cleanup: // be chained together) // 4) execute_command handles all state internally while config_command has // some state handled outside (notably the block mode, in read_config) -struct cmd_results *config_command(char *exec) { +struct cmd_results *config_command(char *exec, char **new_block) { struct cmd_results *results = NULL; int argc; char **argv = split_args(exec, &argc); @@ -329,9 +329,8 @@ struct cmd_results *config_command(char *exec) { // Check for the start of a block if (argc > 1 && strcmp(argv[argc - 1], "{") == 0) { - char *block = join_args(argv, argc - 1); - results = cmd_results_new(CMD_BLOCK, block, NULL); - free(block); + *new_block = join_args(argv, argc - 1); + results = cmd_results_new(CMD_BLOCK, NULL, NULL); goto cleanup; } @@ -509,11 +508,7 @@ struct cmd_results *cmd_results_new(enum cmd_status status, return NULL; } results->status = status; - if (input) { - results->input = strdup(input); // input is the command name - } else { - results->input = NULL; - } + // NOTE: `input` argument is unused, remove if (format) { char *error = malloc(256); va_list args; @@ -530,9 +525,6 @@ struct cmd_results *cmd_results_new(enum cmd_status status, } void free_cmd_results(struct cmd_results *results) { - if (results->input) { - free(results->input); - } if (results->error) { free(results->error); } @@ -552,10 +544,6 @@ char *cmd_results_to_json(list_t *res_list) { json_object_object_add( root, "error", json_object_new_string(results->error)); } - if (results->input) { - json_object_object_add( - root, "input", json_object_new_string(results->input)); - } json_object_array_add(result_array, root); } const char *json = json_object_to_json_string(result_array); diff --git a/sway/config.c b/sway/config.c index 18fee404..d5d36306 100644 --- a/sway/config.c +++ b/sway/config.c @@ -710,11 +710,12 @@ bool read_config(FILE *file, struct sway_config *config, config->current_config_line_number = line_number; config->current_config_line = line; struct cmd_results *res; + char *new_block = NULL; if (block && strcmp(block, "<commands>") == 0) { // Special case res = config_commands_command(expanded); } else { - res = config_command(expanded); + res = config_command(expanded, &new_block); } switch(res->status) { case CMD_FAILURE: @@ -740,9 +741,9 @@ bool read_config(FILE *file, struct sway_config *config, break; case CMD_BLOCK: - wlr_log(WLR_DEBUG, "Entering block '%s'", res->input); - list_insert(stack, 0, strdup(res->input)); - if (strcmp(res->input, "bar") == 0) { + wlr_log(WLR_DEBUG, "Entering block '%s'", new_block); + list_insert(stack, 0, strdup(new_block)); + if (strcmp(new_block, "bar") == 0) { config->current_bar = NULL; } break; @@ -764,6 +765,7 @@ bool read_config(FILE *file, struct sway_config *config, sizeof(config->handler_context)); default:; } + free(new_block); free(expanded); free_cmd_results(res); } |