aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorM Stoeckl <code@mstoeckl.com>2019-01-10 08:27:52 -0500
committerM Stoeckl <code@mstoeckl.com>2019-01-14 07:58:02 -0500
commit6d392150a72ecc3b69fcfb48865f625e2c7b79d6 (patch)
treed475f79c414825f4f3eb6ab0e2d2e28d929f7e71
parent64ef9366733d6d332a24897f72eba90ba2adca1e (diff)
Remove 'input' field of IPC command return json
This field is not in i3 and provides imprecise and redundant information. (Specifically, when swaymsg is given a list of commands, the IPC return array already indicates precisely which number command failed; knowing the name of the command is not useful when multiple commands of the same type are provided.)
-rw-r--r--include/sway/commands.h3
-rw-r--r--sway/commands.c20
-rw-r--r--sway/config.c10
3 files changed, 11 insertions, 22 deletions
diff --git a/include/sway/commands.h b/include/sway/commands.h
index 5d45d78b..757cc817 100644
--- a/include/sway/commands.h
+++ b/include/sway/commands.h
@@ -31,7 +31,6 @@ enum cmd_status {
*/
struct cmd_results {
enum cmd_status status;
- char *input;
/**
* Human friendly error message, or NULL on success
*/
@@ -63,7 +62,7 @@ list_t *execute_command(char *command, struct sway_seat *seat,
*
* Do not use this under normal conditions.
*/
-struct cmd_results *config_command(char *command);
+struct cmd_results *config_command(char *command, char **new_block);
/**
* Parse and handle a sub command
*/
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);
}