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.
This commit is contained in:
Mikkel Oscar Lyderik 2016-01-11 03:13:36 +01:00
parent 46992d6060
commit 222f0d44fc
2 changed files with 7 additions and 2 deletions

View File

@ -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."); 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; swayc_t *ws;
if (argc == 5 && strcasecmp(ws_name, "number") == 0) { if (argc == 5 && strcasecmp(ws_name, "number") == 0) {
// move "container to workspace number x" // 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); ws = workspace_by_number(ws_name);
} else { } else {
ws = workspace_by_name(ws_name); ws = workspace_by_name(ws_name);
@ -730,6 +733,7 @@ static struct cmd_results *cmd_move(int argc, char **argv) {
if (ws == NULL) { if (ws == NULL) {
ws = workspace_create(ws_name); ws = workspace_create(ws_name);
} }
free(ws_name);
move_container_to(view, get_focused_container(ws)); move_container_to(view, get_focused_container(ws));
} else if (strcasecmp(argv[1], "to") == 0 && strcasecmp(argv[2], "output") == 0) { } else if (strcasecmp(argv[1], "to") == 0 && strcasecmp(argv[2], "output") == 0) {
// move container to output x // move container to output x

View File

@ -50,6 +50,7 @@ char *workspace_next_name(void) {
if (strcmp("workspace", cmd) == 0 && name) { if (strcmp("workspace", cmd) == 0 && name) {
sway_log(L_DEBUG, "Got valid workspace command for target: '%s'", name); sway_log(L_DEBUG, "Got valid workspace command for target: '%s'", name);
char *_target = strdup(name); char *_target = strdup(name);
strip_quotes(_target);
while (isspace(*_target)) while (isspace(*_target))
_target++; _target++;