diff options
author | Drew DeVault <sir@cmpwn.com> | 2017-11-22 21:39:35 -0500 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2017-11-22 21:39:35 -0500 |
commit | b379b400718c05ce6cd43550b78704a2938a47c0 (patch) | |
tree | 76e5f4eacd86b12ac79c98448b0c6cc1cb459809 /sway/commands.c | |
parent | Wire up IPC server (diff) | |
download | sway-b379b400718c05ce6cd43550b78704a2938a47c0.tar.gz sway-b379b400718c05ce6cd43550b78704a2938a47c0.tar.zst sway-b379b400718c05ce6cd43550b78704a2938a47c0.zip |
Invoke command handlers once parsed
Diffstat (limited to 'sway/commands.c')
-rw-r--r-- | sway/commands.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sway/commands.c b/sway/commands.c index f8c2fd99..94a45253 100644 --- a/sway/commands.c +++ b/sway/commands.c | |||
@@ -177,6 +177,16 @@ struct cmd_results *handle_command(char *_exec) { | |||
177 | free_argv(argc, argv); | 177 | free_argv(argc, argv); |
178 | goto cleanup; | 178 | goto cleanup; |
179 | } | 179 | } |
180 | struct cmd_results *res = handler->handle(argc-1, argv+1); | ||
181 | if (res->status != CMD_SUCCESS) { | ||
182 | free_argv(argc, argv); | ||
183 | if (results) { | ||
184 | free_cmd_results(results); | ||
185 | } | ||
186 | results = res; | ||
187 | goto cleanup; | ||
188 | } | ||
189 | free_cmd_results(res); | ||
180 | free_argv(argc, argv); | 190 | free_argv(argc, argv); |
181 | } while(cmdlist); | 191 | } while(cmdlist); |
182 | } while(head); | 192 | } while(head); |