Fix command parser: resizing tiling windows
i3 would accept an invalid resize command like 'resize shrink width 10 px or' without specifying the ppt value, and then crash. This patch fixes the parser specification.
This commit is contained in:
parent
8fe17407ff
commit
bf1699e967
@ -209,11 +209,11 @@ state RESIZE_TILING:
|
||||
-> call cmd_resize($way, $direction, $resize_px, "10")
|
||||
|
||||
state RESIZE_TILING_OR:
|
||||
'ppt'
|
||||
->
|
||||
resize_ppt = word
|
||||
->
|
||||
end
|
||||
-> RESIZE_TILING_FINAL
|
||||
|
||||
state RESIZE_TILING_FINAL:
|
||||
'ppt', end
|
||||
-> call cmd_resize($way, $direction, $resize_px, $resize_ppt)
|
||||
|
||||
# rename workspace <name> to <name>
|
||||
|
@ -171,4 +171,19 @@ is(parser_calls('workspace "foo \"bar"'),
|
||||
'cmd_workspace_name(foo "bar)',
|
||||
'Command with escaped double quotes ok');
|
||||
|
||||
################################################################################
|
||||
# 4: Verify that resize commands with a "px or ppt"-construction are parsed
|
||||
# correctly
|
||||
################################################################################
|
||||
|
||||
is(parser_calls("resize shrink width 10 px or"),
|
||||
"ERROR: Expected one of these tokens: <word>\n" .
|
||||
"ERROR: Your command: resize shrink width 10 px or\n" .
|
||||
"ERROR: ",
|
||||
"error for resize command with incomplete 'or'-construction ok");
|
||||
|
||||
is(parser_calls("resize grow left 10 px or 20 ppt"),
|
||||
"cmd_resize(grow, left, 10, 20)",
|
||||
"resize command with 'or'-construction ok");
|
||||
|
||||
done_testing;
|
||||
|
Loading…
Reference in New Issue
Block a user