aboutsummaryrefslogtreecommitdiff
path: root/sway/config.c
diff options
context:
space:
mode:
authorS. Christoffer Eliesen <christoffer@eliesen.no>2015-10-22 14:14:13 +0200
committerS. Christoffer Eliesen <christoffer@eliesen.no>2015-10-22 23:36:24 +0200
commitaf30a1b67c22aa54dad4e1a0ee3aacb537c4ab92 (patch)
tree013c1860550bb3c190095fd0633c08aca16838d1 /sway/config.c
parent544c6c412a3e432cb88a4454d0ccfab2856fac8c (diff)
ipc,commands,config: Replace cmd_status enum with cmd_results struct.
In i3 the ipc reply will contain a human readable error message, and this patch replicates that behaviour. However, that error message is also useful for logging, which this patch takes advantage of. E.g. instead of logging errors directly in commands.c/checkargs, it is fed back to the caller which eventually ends up logging everything with maximum context available (config.c/read_config). So instead of logging e.g. "Error on line 'exit'" it will now log: "Error on line 'exit': Can't execute from config."
Diffstat (limited to 'sway/config.c')
-rw-r--r--sway/config.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sway/config.c b/sway/config.c
index 67f8284c..7e0b22f9 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -234,10 +234,11 @@ bool read_config(FILE *file, bool is_active) {
while (!feof(file)) {
line = read_line(file);
line = strip_comments(line);
- switch(config_command(line)) {
+ struct cmd_results *res = config_command(line);
+ switch(res->status) {
case CMD_FAILURE:
case CMD_INVALID:
- sway_log(L_ERROR, "Error on line '%s'", line);
+ sway_log(L_ERROR, "Error on line '%s': %s", line, res->error);
success = false;
break;
@@ -270,6 +271,7 @@ bool read_config(FILE *file, bool is_active) {
default:;
}
free(line);
+ free(res);
}
if (is_active) {