Bug#510051: Control keys do not work when aylet is started via xargs
>>>>> Krystian Wlosek <kwlosek@gmail.com> writes:
> tags 510051 wontfix thanks
>> Use command similar to the following to reproduce:
>> echo "AgentX.ay AgentX2.ay" |xargs aylet
JFTR, using xargs(1) with an interactive program doesn’t seem
like a very clever idea, for with the number of passed command
arguments being sufficiently large, xargs(1) may choose to
(or even have to) invoke the command specified several times in
a row, each time giving it a portion of the arguments’ list.
The real solution to this issue would be to add support for the
conventional --files-from= option. (And also --null.)
> aylet reads keys codes from standard input, stdin is connected to
> proper terminal (tty). xargs replace this stdin by own pipe not
> connected with terminal, so aylet doesn't receive any control keys.
I’d argue that should such a condition be detected (via
isatty ()), aylet(1) should just re-open its terminal, as in:
/* call ctermid () to get the tty filename */
int tty_fd
= open (tty, O_RDONLY);
/* check for errors */
int rv
= dup2 (tty_fd, STDIN_FILENO);
/* check for errors */
Given that this issue has such a trivial fix, I see no reason
not to implement it.
--
FSF associate member #7257
Reply to: