On Fri, Feb 20, 2015 at 3:30 PM, Chet Ramey <[email protected]> wrote: > On 2/20/15 9:20 AM, Ulf Magnusson wrote: >> On Fri, Feb 20, 2015 at 3:27 AM, Chet Ramey <[email protected]> wrote: >>> On 2/18/15 9:43 PM, Ulf Magnusson wrote: >>> >>>> Re. rl_change_environment, there's this in the source: >>>> >>>> /* If this is non-zero, readline will set LINES and COLUMNS in the >>>> environment when it handles SIGWINCH. */ >>>> int rl_change_environment = 1; >>>> >>>> However, afaics readline does not update LINES and COLUMNS in the >>>> SIGWINCH handler, at least not in the non-bash case. Is there some >>>> motivation for this (besides being a bit tricky due to putenv/setenv not >>>> being >>>> async-signal-safe)? The comment seems a little misleading either way. :) >>> >>> It does. The SIGWINCH handler just sets a flag (_rl_caught_signal) and, as >>> a side effect, calls any application-specific SIGWINCH handler to allow it >>> to do the same. When readline does its signal handling via the >>> RL_CHECK_SIGNALS macro, it notices that it caught SIGWINCH and calls >>> _rl_signal_handler with SIGWINCH as the argument. _rl_signal_handler >>> calls rl_resize_terminal, which calls _rl_get_screen_size, which eventually >>> calls sh_set_lines_and_columns. >>> >> >> Hmm... it's odd that ncurses doesn't pick up the updated LINES and COLUMNS >> variables then. It also forwards the signal in its SIGWINCH handler. > > I thought you said you had forced readline to not catch signals; if > readline doesn't install signal handlers none of this is relevant. >
That was later. I'm thinking of what caused the original problem. Should have been clearer. /Ulf _______________________________________________ Bug-readline mailing list [email protected] https://lists.gnu.org/mailman/listinfo/bug-readline
