It is partially my fault because I am blocking the delivery of SIGHUPs to processes within a shell -- I'm intercepting SIGHUP in a trap handler in bash, so bash can get a chance to do some stuff for me on closing -- and it doesn't seem to be resending it on properly to slrn.
This bug will also be biting people who deliberately block the delivery of SIGHUPs to children because they don't like the concept of programs dying just because their terminal disappears, *if those apps don't need that terminal to operate* -- eg, all X apps. It'd probably be better to fix all those apps to just ignore SIGHUP, but that's a lot more work than just fixing those apps that don't exit properly when reading an EOF from the terminal. So a way to reproduce this is to just setup a trap in bash: trap 'trap - HUP; dostuff; kill -HUP $$' HUP ssh localhost, run slrn then kill -9 the ssh process. In slrn.c:1653, there is a suspicious test: if ((key == NULL) || (key->type == 0)) If I attach gdb to a looping slrn process, it comes back with key == NULL because it's reading an EOF from the terminal. If key == NULL, it returns, and reads another key from the terminal... Should obviously be checking for EOF there, however, making sure that that differs from any CTRL-D keybindings in slang. Hmmm... -- Tim Connors -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]