aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman2002-11-21 17:33:01 +0000
committerRichard M. Stallman2002-11-21 17:33:01 +0000
commit4402a9ed6feee505862cd472bdc64be18b52f459 (patch)
tree53588401f169226bfd7ad34f34e15995d7455e17
parent23fc67ead93a5f10eb73ea0c80382638b9ba6745 (diff)
downloademacs-4402a9ed6feee505862cd472bdc64be18b52f459.tar.gz
emacs-4402a9ed6feee505862cd472bdc64be18b52f459.zip
(interactive_p): Skip any number of bytecode
and subr frames, in any order.
-rw-r--r--src/eval.c16
1 files changed, 7 insertions, 9 deletions
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)
595 btp = btp->next; 595 btp = btp->next;
596 596
597 /* If we're running an Emacs 18-style byte-compiled function, there 597 /* If we're running an Emacs 18-style byte-compiled function, there
598 may be a frame for Fbytecode. Now, given the strictest 598 may be a frame for Fbytecode at the top level. In any version of
599 definition, this function isn't really being called 599 Emacs there can be Fbytecode frames for subexpressions evaluated
600 interactively, but because that's the way Emacs 18 always builds 600 inside catch and condition-case. Skip past them.
601 byte-compiled functions, we'll accept it for now. */
602 if (EQ (*btp->function, Qbytecode))
603 btp = btp->next;
604 601
605 /* If this isn't a byte-compiled function, then we may now be 602 If this isn't a byte-compiled function, then we may now be
606 looking at several frames for special forms. Skip past them. */ 603 looking at several frames for special forms. Skip past them. */
607 while (btp && 604 while (btp
608 btp->nargs == UNEVALLED) 605 && (EQ (*btp->function, Qbytecode)
606 || btp->nargs == UNEVALLED))
609 btp = btp->next; 607 btp = btp->next;
610 608
611 /* btp now points at the frame of the innermost function that isn't 609 /* btp now points at the frame of the innermost function that isn't