diff options
| author | Paul Buetow <paul@buetow.org> | 2026-07-20 15:56:16 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-07-20 15:56:16 +0300 |
| commit | 74f60c99446ad592b13119da8c79ccd19256b715 (patch) | |
| tree | 8ae35e8c732053641087a8016981f45674788f90 /src/loader/backends | |
| parent | 0b9dc4eec752d6d48aab696d06b33f4782e9db4f (diff) | |
opener: shell-argv command parsing with %f as one safe arg (hu0)
_expand_command now parses the command template with g_shell_parse_argv
FIRST, then substitutes %f into the already-parsed argv elements, so %f is
always exactly one argv value regardless of spaces or shell metacharacters
in the path. Previously it split on literal spaces, breaking quoted commands
like sh -c '...' and mis-splitting paths with spaces.
opener_launch propagates parse errors (returns FALSE, sets GError) instead
of launching malformed argv. A non-local GFile (no path) is now rejected
with G_IO_ERROR_NOT_SUPPORTED rather than producing an argv with an
embedded NULL.
Tests: quoted, quoted-with-%f, escaped spaces, option flags, weird
filename (quoted + unquoted), malformed (unclosed quote), empty command,
direct argv-shape regression (one argv value), and no-local-path rejection.
Diffstat (limited to 'src/loader/backends')
0 files changed, 0 insertions, 0 deletions
