diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-04-03 15:58:12 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-03 15:58:12 -0400 |
commit | 1a5785b0c32c8b534f3461f3557f26369a9bae8a (patch) | |
tree | c3e2582ef238caf3c9a80957009513d7be35afde /sway/tree/workspace.c | |
parent | Fix #1709 (diff) | |
parent | Fix name generation for workspace number <name> (diff) | |
download | sway-1a5785b0c32c8b534f3461f3557f26369a9bae8a.tar.gz sway-1a5785b0c32c8b534f3461f3557f26369a9bae8a.tar.zst sway-1a5785b0c32c8b534f3461f3557f26369a9bae8a.zip |
Merge pull request #1712 from RedSoxFan/workspace-number-names
Fix name generation from workspace number commands
Diffstat (limited to 'sway/tree/workspace.c')
-rw-r--r-- | sway/tree/workspace.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/sway/tree/workspace.c b/sway/tree/workspace.c index 74330884..8077de2e 100644 --- a/sway/tree/workspace.c +++ b/sway/tree/workspace.c | |||
@@ -87,6 +87,24 @@ char *workspace_next_name(const char *output_name) { | |||
87 | continue; | 87 | continue; |
88 | } | 88 | } |
89 | 89 | ||
90 | // If the command is workspace number <name>, isolate the name | ||
91 | if (strncmp(_target, "number ", strlen("number ")) == 0) { | ||
92 | size_t length = strlen(_target) - strlen("number ") + 1; | ||
93 | char *temp = malloc(length); | ||
94 | strncpy(temp, _target + strlen("number "), length - 1); | ||
95 | temp[length - 1] = '\0'; | ||
96 | free(_target); | ||
97 | _target = temp; | ||
98 | wlr_log(L_DEBUG, "Isolated name from workspace number: '%s'", _target); | ||
99 | |||
100 | // Make sure the workspace number doesn't already exist | ||
101 | if (workspace_by_number(_target)) { | ||
102 | free(_target); | ||
103 | free(dup); | ||
104 | continue; | ||
105 | } | ||
106 | } | ||
107 | |||
90 | // Make sure that the workspace doesn't already exist | 108 | // Make sure that the workspace doesn't already exist |
91 | if (workspace_by_name(_target)) { | 109 | if (workspace_by_name(_target)) { |
92 | free(_target); | 110 | free(_target); |