From 2f858a1adaef17241ca6fda973f2b867b25e1971 Mon Sep 17 00:00:00 2001 From: Brian Ashworth Date: Wed, 20 Nov 2019 22:10:03 -0500 Subject: input_cmd_xkb_file: allow shell path expansion This allows for shell path expansion for input_cmd_xkb_file. The logic has been extracted from output_cmd_background --- sway/commands/output/background.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) (limited to 'sway/commands/output') diff --git a/sway/commands/output/background.c b/sway/commands/output/background.c index 054fb707..68ee9fe1 100644 --- a/sway/commands/output/background.c +++ b/sway/commands/output/background.c @@ -4,7 +4,6 @@ #include #include #include -#include #include #include "sway/commands.h" #include "sway/config.h" @@ -79,26 +78,15 @@ struct cmd_results *output_cmd_background(int argc, char **argv) { return cmd_results_new(CMD_INVALID, "Missing background file"); } - wordexp_t p = {0}; char *src = join_args(argv, j); - while (strstr(src, " ")) { - src = realloc(src, strlen(src) + 2); - char *ptr = strstr(src, " ") + 1; - memmove(ptr + 1, ptr, strlen(ptr) + 1); - *ptr = '\\'; - } - if (wordexp(src, &p, 0) != 0 || p.we_wordv[0] == NULL) { + if (!expand_path(&src)) { struct cmd_results *cmd_res = cmd_results_new(CMD_INVALID, "Invalid syntax (%s)", src); free(src); - wordfree(&p); return cmd_res; } - free(src); - src = join_args(p.we_wordv, p.we_wordc); - wordfree(&p); if (!src) { - sway_log(SWAY_ERROR, "Failed to duplicate string"); + sway_log(SWAY_ERROR, "Failed to allocate expanded path"); return cmd_results_new(CMD_FAILURE, "Unable to allocate resource"); } -- cgit v1.2.3-54-g00ecf