Fix 'rename workspace to tosomething'

This patch fixes the issue #2802 (https://github.com/i3/i3/issues/2802).

1). Revise the state machine for the 'rename workspace' command.
    These scenarios are considered:
    a). 'rename workspace to to bla'
        state transitions: RENAME -> RENAME_WORKSPACE -> RENAME_WORKSPACE_LIKELY_TO -> RENAME_WORKSPACE_LIKELY_TO_NEW_NAME
    b). 'rename workspace to tosomething'
        state transitions: RENAME -> RENAME_WORKSPACE -> RENAME_WORKSPACE_LIKELY_TO
    c). 'rename workspace to to'
        state transitions: RENAME -> RENAME_WORKSPACE -> RENAME_WORKSPACE_LIKELY_TO
    d). 'rename workspace to bla'
        state transitions: RENAME -> RENAME_WORKSPACE -> RENAME_WORKSPACE_LIKELY_TO
    e). 'rename workspace bla to foo'
        state transitions: RENAME -> RENAME_WORKSPACE -> RENAME_WORKSPACE_TO -> RENAME_WORKSPACE_TO_NEW_NAME

2). Add a test case in 117-workspace.t for the scenario b.
This commit is contained in:
hwangcc23
2017-06-11 23:48:55 +08:00
parent d3901fe92e
commit cc4be41674
2 changed files with 18 additions and 8 deletions

View File

@ -274,24 +274,28 @@ state RENAME:
-> RENAME_WORKSPACE
state RENAME_WORKSPACE:
old_name = 'to'
'to'
-> RENAME_WORKSPACE_LIKELY_TO
old_name = word
-> RENAME_WORKSPACE_TO
state RENAME_WORKSPACE_LIKELY_TO:
'to'
-> RENAME_WORKSPACE_NEW_NAME
'to '
-> RENAME_WORKSPACE_LIKELY_TO_NEW_NAME
new_name = word
-> call cmd_rename_workspace(NULL, $new_name)
state RENAME_WORKSPACE_TO:
'to'
-> RENAME_WORKSPACE_NEW_NAME
state RENAME_WORKSPACE_NEW_NAME:
state RENAME_WORKSPACE_LIKELY_TO_NEW_NAME:
new_name = string
-> call cmd_rename_workspace("to", $new_name)
end
-> call cmd_rename_workspace(NULL, "to")
state RENAME_WORKSPACE_TO:
'to'
-> RENAME_WORKSPACE_TO_NEW_NAME
state RENAME_WORKSPACE_TO_NEW_NAME:
new_name = string
-> call cmd_rename_workspace($old_name, $new_name)