Filipus Klutiero<chealer@gmail.com> writes:
Section 11.8.3 "Packages providing a terminal emulator" contains:
To be an x-terminal-emulator, a program must:
Support the command-line option -e command, which creates a new
terminal window[94
<http://www.debian.org/doc/debian-policy/footnotes.html#f94>]
and runs the specified command, interpreting the entirety of the
rest of the command line as a command to pass straight to exec,
in the manner that xterm does.
However, as pointed out by Hendrik Sattler in #563352, xterm does *not*
simply pass its -e option straight to exec, at least nowadays. The
following command exemplifies:
$ xterm -e 'echo TEST&& sleep 3'
This works as intended, so xterm does not just support simple commands,
but also pipelines.
[...]
By the way, as Hendrik wrote, it would be best to specify how
x-terminal-emulator should behave, rather than to say the behavior
should be the same as xterm's. Also, the term "command" is ambiguous.
I think there are a couple of different ways we could go with this. One
is to fully specify xterm's behavior (including the fallback to the shell)
and require that everything else satisfy that, but from the referenced bug
it doesn't look like other upstreams want to do that. The other is to be
clearer that the default is to call exec but to allow the fallback that
xterm does. I think the latter makes more sense.
How about something like:
Support the command-line option "-e<command>", which creates a new
terminal window and runs the specified command.<command> may be
multiple arguments, all of which are part of the command. All
arguments are passed directly to exec, bypassing the shell. (xterm's
behavior of falling back on using the shell if -e had a single
argument and exec failed is permissible but not required.)