pkgsrc-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: perl bug? weird ctrl-z behaviour when piping from tin through perl
On 2009/09/09 19:35, Thomas Klausner wrote:
> Sometimes I pipe articles in tin(1) through a perl script that parses
> the output, does something and pipes it into less; when I quit less
> I'm back in tin and everything is fine.
>
> However, when I press ctrl-z (happens more often than I'd think) the
> terminal ends up in a strange state. The output is
> Stopped. Type 'fg' to restart tin
> but I have no shell:
> ls
> (nothing)
> entering "fg" doesn't take me back to tin. Killing the perl and/or
> less processes doesn't help either, nor does pressing 'q' (as command
> for less or tin).
>
> A tin developer analysed the behaviour of tin for me:
>
> before popen(), tin does (feed.c:feed_articles() ~ line 616)
> reset_shell_mode(3ncurses);
> endwin(3ncurses);
>
> and after pclose() (feed.c:feed_articles() ~ line 855)
> reset_prog_mode(3ncurses);
> set_keypad_on(3ncurses);
>
> SIGTSTP causes (signal.c:handle_suspend())
> set_keypad_off(3ncurses);
> set_xclick_off(3ncurses);
> reset_shell_mode(3ncurses);
> kill(0, SIGSTOP);
> reset_prog_mode(3ncurses);
> set_keypad_on(3ncurses);
> set_xclick_on(3ncurses);
>
> The developer claims that the double reset_shell_mode shouldn't hurt
> and that this looks ok (I think so as well).
>
> He reduced my test case to
> cat|less
> and pressing ^Z, which works nicely, however piping through
> perl -ne 'print $_;'|less
> and pressing ^Z confuses perl. This looks like a perl problem.
>
> Can someone shed more light on this?
> Thomas
I don't have any light to shed, just a suggestion of a (better?) place to
ask the question. Try posting a question to <http://perlmonks.org> under
"Seekers of Perl Wisdom" (you can do this without registering on their
site). There are many folks there who know the guts of Perl and/or would
take this as an interesting problem.
Mark
Home |
Main Index |
Thread Index |
Old Index