summaryrefslogtreecommitdiffstats
path: root/sway/commands.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/commands.c')
-rw-r--r--sway/commands.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/sway/commands.c b/sway/commands.c
index f6326038..9f6e5032 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -169,15 +169,18 @@ static struct cmd_results *cmd_assign(int argc, char **argv) {
169 169
170 char *criteria = *argv++; 170 char *criteria = *argv++;
171 171
172 if (strncmp(*argv, "→", 1) == 0) { 172 if (strncmp(*argv, "→", strlen("→")) == 0) {
173 if (argc < 3) {
174 return cmd_results_new(CMD_INVALID, "assign", "Missing workspace");
175 }
173 argv++; 176 argv++;
174 } 177 }
175 178
176 char *movecmd = "move container to workspace "; 179 char *movecmd = "move container to workspace ";
177 int arglen = strlen(*argv); 180 int arglen = strlen(movecmd) + strlen(*argv) + 1;
178 char *cmdlist = calloc(1, sizeof(movecmd) + arglen); 181 char *cmdlist = calloc(1, arglen);
179 182
180 sprintf(cmdlist, "%s%s", movecmd, *argv); 183 snprintf(cmdlist, arglen, "%s%s", movecmd, *argv);
181 184
182 struct criteria *crit = malloc(sizeof(struct criteria)); 185 struct criteria *crit = malloc(sizeof(struct criteria));
183 crit->crit_raw = strdup(criteria); 186 crit->crit_raw = strdup(criteria);