aboutsummaryrefslogtreecommitdiffstats
path: root/sway/commands/rename.c
diff options
context:
space:
mode:
authorLibravatar Ian Fan <ianfan0@gmail.com>2018-08-12 00:32:13 +0100
committerLibravatar Ian Fan <ianfan0@gmail.com>2018-08-18 17:25:06 +0100
commite81cc8a5754386d9484b84cf97ab2f8755c35294 (patch)
treea3a9f64d0e179b07f94e2fff1484f5099f440432 /sway/commands/rename.c
parentcommands: handle quoted exec command (diff)
downloadsway-e81cc8a5754386d9484b84cf97ab2f8755c35294.tar.gz
sway-e81cc8a5754386d9484b84cf97ab2f8755c35294.tar.zst
sway-e81cc8a5754386d9484b84cf97ab2f8755c35294.zip
commands: saner workspace number handling
Diffstat (limited to 'sway/commands/rename.c')
-rw-r--r--sway/commands/rename.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sway/commands/rename.c b/sway/commands/rename.c
index c69bbdac..21d2aa64 100644
--- a/sway/commands/rename.c
+++ b/sway/commands/rename.c
@@ -1,4 +1,5 @@
1#define _XOPEN_SOURCE 500 1#define _XOPEN_SOURCE 500
2#include <ctype.h>
2#include <string.h> 3#include <string.h>
3#include <strings.h> 4#include <strings.h>
4#include "log.h" 5#include "log.h"
@@ -34,6 +35,10 @@ struct cmd_results *cmd_rename(int argc, char **argv) {
34 } 35 }
35 } else if (strcasecmp(argv[1], "number") == 0) { 36 } else if (strcasecmp(argv[1], "number") == 0) {
36 // 'rename workspace number x to new_name' 37 // 'rename workspace number x to new_name'
38 if (!isdigit(argv[2][0])) {
39 return cmd_results_new(CMD_INVALID, "rename",
40 "Invalid workspace number '%s'", argv[2]);
41 }
37 workspace = workspace_by_number(argv[2]); 42 workspace = workspace_by_number(argv[2]);
38 while (argn < argc && strcasecmp(argv[argn], "to") != 0) { 43 while (argn < argc && strcasecmp(argv[argn], "to") != 0) {
39 ++argn; 44 ++argn;
@@ -67,7 +72,8 @@ struct cmd_results *cmd_rename(int argc, char **argv) {
67 strcasecmp(new_name, "next_on_output") == 0 || 72 strcasecmp(new_name, "next_on_output") == 0 ||
68 strcasecmp(new_name, "prev_on_output") == 0 || 73 strcasecmp(new_name, "prev_on_output") == 0 ||
69 strcasecmp(new_name, "back_and_forth") == 0 || 74 strcasecmp(new_name, "back_and_forth") == 0 ||
70 strcasecmp(new_name, "current") == 0) { 75 strcasecmp(new_name, "current") == 0 ||
76 strcasecmp(new_name, "number") == 0) {
71 free(new_name); 77 free(new_name);
72 return cmd_results_new(CMD_INVALID, "rename", 78 return cmd_results_new(CMD_INVALID, "rename",
73 "Cannot use special workspace name '%s'", argv[argn]); 79 "Cannot use special workspace name '%s'", argv[argn]);