# HG changeset patch # User Richard M. Stallman # Date 1102030613 0 # Node ID 5bc7de720277221162940e531f17317a555d7325 # Parent 947c0bab2dd92740a525cfd9c9a730f8301e1b4d (Fcalled_interactively_p): Don't check INTERACTIVE. (interactive_p): Skip Scalled_interactively_p frames like Sinteractive_p frames. diff -r 947c0bab2dd9 -r 5bc7de720277 src/eval.c --- a/src/eval.c Thu Dec 02 23:35:42 2004 +0000 +++ b/src/eval.c Thu Dec 02 23:36:53 2004 +0000 @@ -573,7 +573,7 @@ unconditionally for that argument. (`p' is a good way to do this.) */) () { - return (INTERACTIVE && interactive_p (1)) ? Qt : Qnil; + return interactive_p (1) ? Qt : Qnil; } @@ -595,7 +595,8 @@ /* If this isn't a byte-compiled function, there may be a frame at the top for Finteractive_p. If so, skip it. */ fun = Findirect_function (*btp->function); - if (SUBRP (fun) && XSUBR (fun) == &Sinteractive_p) + if (SUBRP (fun) && (XSUBR (fun) == &Sinteractive_p + || XSUBR (fun) == &Scalled_interactively_p)) btp = btp->next; /* If we're running an Emacs 18-style byte-compiled function, there @@ -1173,9 +1174,10 @@ /* Save the value in the tag. */ catch->val = value; - /* Restore the polling-suppression count. */ + /* Restore certain special C variables. */ set_poll_suppress_count (catch->poll_suppress_count); interrupt_input_blocked = catch->interrupt_input_blocked; + handling_signal = 0; do {