andy@CSVAX.CALTECH.EDU (Andy Fyfe) (06/19/89)
[running on a sun3, sunos3.5, in a sunview window] If you try the following: After the line "old_sigwinch = signal(...);" in 'readline.c' you add the following test: if (old_sigwinch == rl_handle_sigwinch) abort(); then start bash, and hit "break", bash will abort. The trouble is that rl_handle_sigwinch will call old_sigwinch if it's not null (or SIG_IGN). And it happily recurses (though I haven't yet found a way of reproducing this reliably). In the function "rl_set_signals", we have the following: old_int = (Function *)signal (SIGINT, rl_signal_handler); if (old_int == (Function *)SIG_IGN) signal (old_int, SIG_IGN); Clearly the final signal is *wrong*.