Allow workspace renames which change case

fixes #2211
This commit is contained in:
Michael Stapelberg 2016-02-15 08:34:03 +01:00
parent e91fa09569
commit f63701ed09
2 changed files with 8 additions and 1 deletions

View File

@ -1909,7 +1909,9 @@ void cmd_rename_workspace(I3_CMD, const char *old_name, const char *new_name) {
GREP_FIRST(check_dest, output_get_content(output), GREP_FIRST(check_dest, output_get_content(output),
!strcasecmp(child->name, new_name)); !strcasecmp(child->name, new_name));
if (check_dest != NULL) { /* If check_dest == workspace, the user might be changing the case of the
* workspace, or it might just be a no-op. */
if (check_dest != NULL && check_dest != workspace) {
yerror("New workspace \"%s\" already exists", new_name); yerror("New workspace \"%s\" already exists", new_name);
return; return;
} }

View File

@ -288,5 +288,10 @@ ok(!$result->[0]->{success}, 'renaming workspace to an already existing one fail
$result = cmd 'rename workspace notexistant to bleh'; $result = cmd 'rename workspace notexistant to bleh';
ok(!$result->[0]->{success}, 'renaming workspace which does not exist failed'); ok(!$result->[0]->{success}, 'renaming workspace which does not exist failed');
# 8: change case
ok(!workspace_exists('11: BAR'), 'workspace 11: BAR does not exist yet');
$result = cmd 'rename workspace "11: bar" to "11: BAR"';
ok($result->[0]->{success}, 'renaming workspace from 11: bar to 11: BAR worked');
ok(workspace_exists('11: BAR'), 'workspace 11: BAR now exists');
done_testing; done_testing;