From 222f0d44fcda494dca4d5278493a3082068743de Mon Sep 17 00:00:00 2001 From: Mikkel Oscar Lyderik Date: Mon, 11 Jan 2016 03:13:36 +0100 Subject: Strip quotes from workspace name. Fix #444 This is a temporary fix, the real fix is to store the commands as a formatted argv array, so they don't have to be reformatted all over the place. --- sway/commands.c | 8 ++++++-- sway/workspace.c | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/sway/commands.c b/sway/commands.c index 0025fcb1..d5ffb519 100644 --- a/sway/commands.c +++ b/sway/commands.c @@ -717,11 +717,14 @@ static struct cmd_results *cmd_move(int argc, char **argv) { return cmd_results_new(CMD_FAILURE, "move", "Can only move containers and views."); } - const char *ws_name = argv[3]; + char *ws_name = strdup(argv[3]); + strip_quotes(ws_name); swayc_t *ws; if (argc == 5 && strcasecmp(ws_name, "number") == 0) { // move "container to workspace number x" - ws_name = argv[4]; + free(ws_name); + ws_name = strdup(argv[4]); + strip_quotes(ws_name); ws = workspace_by_number(ws_name); } else { ws = workspace_by_name(ws_name); @@ -730,6 +733,7 @@ static struct cmd_results *cmd_move(int argc, char **argv) { if (ws == NULL) { ws = workspace_create(ws_name); } + free(ws_name); move_container_to(view, get_focused_container(ws)); } else if (strcasecmp(argv[1], "to") == 0 && strcasecmp(argv[2], "output") == 0) { // move container to output x diff --git a/sway/workspace.c b/sway/workspace.c index f7523b79..ad989de9 100644 --- a/sway/workspace.c +++ b/sway/workspace.c @@ -50,6 +50,7 @@ char *workspace_next_name(void) { if (strcmp("workspace", cmd) == 0 && name) { sway_log(L_DEBUG, "Got valid workspace command for target: '%s'", name); char *_target = strdup(name); + strip_quotes(_target); while (isspace(*_target)) _target++; -- cgit v1.2.3-54-g00ecf