C****Y BSD signal handling! Try improve ^C stability..
commit1c342dd50433eb3543715246f71b6c541772bc6d
authorSteffen (Daode) Nurpmeso <steffen@sdaoden.eu>
Sat, 11 Mar 2017 14:53:20 +0000 (11 15:53 +0100)
committerSteffen (Daode) Nurpmeso <steffen@sdaoden.eu>
Thu, 13 Apr 2017 21:07:00 +0000 (13 23:07 +0200)
treeef2296c2ec065166224930ebe35bcfa5603de1a1
parent4b7c72f5f590b4fc816c620127061628cf7a209d
C****Y BSD signal handling!  Try improve ^C stability..

It is all my fault.  I should have sat back and think about it,
then deal with the BSD SA_RESTART signal handling that is used
by blocking all signals and search those places in the code where
we have to deal with them, and use as-local-as-possible condomes.
If i would have done this back in 2013, we would look better today

So let's reorder things a little bit, and extend the
hold_all_sigs() ranges around lot of our management code, which
significantly reduces crashes while running an endless loop via
`xcall'.  Of course it doesn't help at all, since we potentially
leave external libraries in undefined state, and... sigh... let's
just do this now.  It improves the things a little bit.

While here, move data to a new n_go_data context carrier, which we
manage as part of our evaluation context handler, and which will
grow over time.  Like this, memory.c and colour.c do not longer
need to special treat internal data, but simply use that of the
current context.  Especially colour is still bad since it should
be object based, not forming a real stack, but it is a step.
32 files changed:
accmacvar.c
attachment.c
auxlily.c
cmd-cnd.c
cmd-folder.c
cmd-headers.c
cmd-message.c
cmd-misc.c
cmd-tab.h
collect.c
colour.c
edit.c
go.c [moved from lex-input.c with 52% similarity]
head.c
ignore.c
main.c
memory.c
mk-mk.in
nail.1
nail.h
nailfuns.h
nam-a-grp.c
popen.c
send.c
sendout.c
shexp.c
signal.c
socket.c
spam.c
strings.c
tty.c
urlcrecry.c