1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-18 03:51:48 -07:00

(interactive_p): Skip any number of bytecode

and subr frames, in any order.
This commit is contained in:
Richard M. Stallman 2002-11-21 17:33:01 +00:00
parent 23fc67ead9
commit 4402a9ed6f

View file

@ -595,17 +595,15 @@ interactive_p (exclude_subrs_p)
btp = btp->next;
/* If we're running an Emacs 18-style byte-compiled function, there
may be a frame for Fbytecode. Now, given the strictest
definition, this function isn't really being called
interactively, but because that's the way Emacs 18 always builds
byte-compiled functions, we'll accept it for now. */
if (EQ (*btp->function, Qbytecode))
btp = btp->next;
may be a frame for Fbytecode at the top level. In any version of
Emacs there can be Fbytecode frames for subexpressions evaluated
inside catch and condition-case. Skip past them.
/* If this isn't a byte-compiled function, then we may now be
If this isn't a byte-compiled function, then we may now be
looking at several frames for special forms. Skip past them. */
while (btp &&
btp->nargs == UNEVALLED)
while (btp
&& (EQ (*btp->function, Qbytecode)
|| btp->nargs == UNEVALLED))
btp = btp->next;
/* btp now points at the frame of the innermost function that isn't