There is an annoying difference between Pike 8.0 and 8.1. If you start hilfe Pike 8.0 will exit as soon as you press ctrl-C. In 8.1 Pike doesn't exist until it get one more key press. Why is that?
For me 8.1 exits right away on Ctrl-C, however the shell prompt appears on the same line as the Hilfe prompt. Perhaps the issue is with the tty handling of the shell you are using? (I'm using tcsh.)
Does it differ between 8.0 and 8.1 for you? I'm running default configured Ubuntu bash.
I only had 8.1. And it turns out that 8.1 was a bit out of date. After updating to HEAD I could reproduce the behaviour you describe. A bisect shows that the change happened with this commit:
commit c0b9c747362c7624548a1892753c923e1c7426e4 Author: Arne Goedeke el@laramies.com Date: Thu Nov 10 16:21:04 2016 +0100
Stdio.File: simplified read()
I will look at what went wrong there.
Also, the mailing list export seems to be broken.
Ok, so the problem is that my 'simpler' version of do_read gave up the interpreter lock earlier and aquired it later. This unfortunately also meant that signal handling only happened outside of the loop. The 'extra' character after CTRL+C terminated the read-loop which then triggered the signal handling. Will fix.
pike-devel@lists.lysator.liu.se