From: Richard M. Stallman Date: Thu, 21 Nov 2002 17:33:01 +0000 (+0000) Subject: (interactive_p): Skip any number of bytecode X-Git-Tag: ttn-vms-21-2-B4~12311 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4402a9ed6feee505862cd472bdc64be18b52f459;p=emacs.git (interactive_p): Skip any number of bytecode and subr frames, in any order. --- diff --git a/src/eval.c b/src/eval.c index 856ec8f4a48..d59a3cd9eb9 100644 --- a/src/eval.c +++ b/src/eval.c @@ -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