Implement a localopts and etc. bypass..
commit1b0f9e979b5262007f22b4dd248c7ecbbd0b3081
authorSteffen (Daode) Nurpmeso <sdaoden@users.sf.net>
Sat, 22 Feb 2014 20:19:17 +0000 (22 21:19 +0100)
committerSteffen (Daode) Nurpmeso <sdaoden@users.sf.net>
Sat, 22 Feb 2014 22:25:13 +0000 (22 23:25 +0100)
treecbc7b16ba98089bbc81c16ace04bf8b9932bd0fe
parent381ff465361e2703c3a1536ab85975b3ba2434e8
Implement a localopts and etc. bypass..

I once saw a crash after interrupting a macro like grazy that
performs multiple account switches and performs downloads from
within either account.  I've done that several times in a row
because the network was so weak, until finally anything was fine.
The behaviour of S-nail was then odd once we were there, and
i called `set' and it looked all fine except that one value that
should be there was missing.  I'd `var-inspect'ed the value and
it was not there.  Then i called `set' to set it, and that caused
the crash.

I really don't know what happened, but i think it was because
acmava.c:_localopts was set and then we jumped away, later
re-entering due to account changes and macro execution.
Note that the var_clear_allow_undefined setting was always
affected by this problem.

So, until either there are no more jumps at all, or there is
a signal manager that must be peaked from within executing code to
actually invoke signal actions at defined points, implement yet
another temporary restore facility to overcome a general design
flaw of this codebase.
acmava.c
extern.h
lex.c
nail.h