Mercurial > emacs
changeset 48492:8faa4c711a1a
(interactive_p): Skip any number of bytecode
and subr frames, in any order.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 21 Nov 2002 17:33:01 +0000 |
parents | 5d690a3537aa |
children | 4c14ea08ea5d |
files | src/eval.c |
diffstat | 1 files changed, 8 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/src/eval.c Thu Nov 21 17:31:51 2002 +0000 +++ b/src/eval.c Thu Nov 21 17:33:01 2002 +0000 @@ -595,17 +595,15 @@ 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; - - /* If this isn't a byte-compiled function, then we may now be + 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 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