action: do not expand env vars in Exec action

...<command> argument (but still resolve tilde).

This makes it easier to write sh -c '' constructs without turning labwc
into a shell parser in order to expand environment variables, whilst
respecting single quotes and escaped characters as well as ignoring
subshells syntax like $(foo) and backticks.

Also, fix bug where buffer length+alloc get out-of-sync
This commit is contained in:
Johan Malm 2023-09-21 23:09:05 +01:00 committed by Johan Malm
parent c6c1f8e04b
commit 881d788bee
6 changed files with 44 additions and 12 deletions

View file

@ -19,6 +19,7 @@ Actions are used in menus and keyboard/mouse bindings.
Execute command. Note that in the interest of backward compatibility,
labwc supports <execute> as an alternative to <command> even though
openbox documentation states that it is deprecated.
Note: Tilde (~) is expanded in the command before passing to execvp()
*<action name="Exit" />*
Exit labwc.

View file

@ -32,6 +32,8 @@ variables accordingly. It is recommended to specify keyboard layout settings and
cursor size/theme here; see environment variable section below for details. Note
that the environment file is treated differently by openbox where it is simply
sourced prior to running openbox.
Note: Tilde (~) and environment variables in the value are expanded, but
subshell syntax and apostrophes are ignored.
The *menu.xml* file defines the context/root-menus and is described in
labwc-menu(5).