Bugfix: Correctly return to initial state after prev/next/back_and_forth (Thanks Brian)

Fixes: #552
This commit is contained in:
Michael Stapelberg 2011-11-10 18:42:24 +00:00
parent 62f0a9e21d
commit bebd2fceb6
2 changed files with 28 additions and 3 deletions

View File

@ -74,9 +74,9 @@ EOL (\r?\n)
/* the next/prev/back_and_forth tokens are here to recognize them *before*
* handling strings ('workspace' command) */
next { return TOK_NEXT; }
prev { return TOK_PREV; }
back_and_forth { return TOK_BACK_AND_FORTH; }
next { BEGIN(INITIAL); return TOK_NEXT; }
prev { BEGIN(INITIAL); return TOK_PREV; }
back_and_forth { BEGIN(INITIAL); return TOK_BACK_AND_FORTH; }
<WANT_STRING>\"[^\"]+\" {
BEGIN(INITIAL);

View File

@ -0,0 +1,25 @@
#!perl
# vim:ts=4:sw=4:expandtab
#
# The command "move workspace prev; workspace prev" will lead to an error.
# This regression is present in 7f9b65f6a752e454c492447be4e21e2ee8faf8fd
use i3test;
my $i3 = i3(get_socket_path());
# Open one workspace to move the con to
my $old = fresh_workspace;
my $keep_open_con = open_empty_con($i3);
# Get a workspace and open a container
my $tmp = fresh_workspace;
my $con = open_empty_con($i3);
is(@{get_ws_content($tmp)}, 1, 'one container');
is(@{get_ws_content($old)}, 1, 'one container on old ws');
cmd 'move workspace prev; workspace prev';
is(@{get_ws_content($old)}, 2, 'container moved away');
done_testing;