From 222f0d44fcda494dca4d5278493a3082068743de Mon Sep 17 00:00:00 2001
From: Mikkel Oscar Lyderik <mikkeloscar@gmail.com>
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(-)

(limited to 'sway')

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