diff options
author | Brian Ashworth <bosrsf04@gmail.com> | 2018-09-18 21:44:40 -0400 |
---|---|---|
committer | Brian Ashworth <bosrsf04@gmail.com> | 2018-09-28 23:12:24 -0400 |
commit | 0a0cf4540ab57ba4af6fb547fd5c1a1df61fb8cf (patch) | |
tree | 0b32b31a765eca48ce7739de7f4b602e7c71be57 | |
parent | af45ee2d8be0d36436d3714f8b6e71cbc4115098 (diff) | |
download | sway-0a0cf4540ab57ba4af6fb547fd5c1a1df61fb8cf.tar.xz |
Fix quote handling for commands
Quotes are now stripped for all arguments and stripped before anything is unescaped
-rw-r--r-- | sway/commands.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/sway/commands.c b/sway/commands.c index bff230f7..03761c52 100644 --- a/sway/commands.c +++ b/sway/commands.c @@ -391,14 +391,12 @@ struct cmd_results *config_command(char *exec) { // Var replacement, for all but first argument of set // TODO commands for (i = handler->handle == cmd_set ? 2 : 1; i < argc; ++i) { + if (*argv[i] == '\"' || *argv[i] == '\'') { + strip_quotes(argv[i]); + } argv[i] = do_var_replacement(argv[i]); unescape_string(argv[i]); } - // Strip quotes for first argument. - // TODO This part needs to be handled much better - if (argc>1 && (*argv[1] == '\"' || *argv[1] == '\'')) { - strip_quotes(argv[1]); - } if (handler->handle) { results = handler->handle(argc-1, argv+1); } else { @@ -422,11 +420,6 @@ struct cmd_results *config_subcommand(char **argv, int argc, char *input = argv[0] ? argv[0] : "(empty)"; return cmd_results_new(CMD_INVALID, input, "Unknown/invalid command"); } - // Strip quotes for first argument. - // TODO This part needs to be handled much better - if (argc > 1 && (*argv[1] == '\"' || *argv[1] == '\'')) { - strip_quotes(argv[1]); - } if (handler->handle) { return handler->handle(argc - 1, argv + 1); } |