Mercurial > emacs
diff src/eval.c @ 90054:f2ebccfa87d4
Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-74
Merge from emacs--cvs-trunk--0
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-709
Update from CVS: src/indent.c (Fvertical_motion): Fix last change.
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-710
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-715
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-716
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-74
Update from CVS
| author | Miles Bader <miles@gnu.org> |
|---|---|
| date | Wed, 08 Dec 2004 05:02:30 +0000 |
| parents | cb7f41387eb3 d118146048e5 |
| children | fb79180b618d |
line wrap: on
line diff
--- a/src/eval.c Mon Dec 06 12:38:25 2004 +0000 +++ b/src/eval.c Wed Dec 08 05:02:30 2004 +0000 @@ -204,7 +204,7 @@ specpdl_size = 50; specpdl = (struct specbinding *) xmalloc (specpdl_size * sizeof (struct specbinding)); specpdl_ptr = specpdl; - max_specpdl_size = 600; + max_specpdl_size = 1000; max_lisp_eval_depth = 300; Vrun_hooks = Qnil; @@ -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 @@ -786,6 +787,21 @@ { if (NILP (tem)) Fset_default (sym, Feval (Fcar (tail))); + else + { /* Check if there is really a global binding rather than just a let + binding that shadows the global unboundness of the var. */ + volatile struct specbinding *pdl = specpdl_ptr; + while (--pdl >= specpdl) + { + if (EQ (pdl->symbol, sym) && !pdl->func + && EQ (pdl->old_value, Qunbound)) + { + message_with_string ("Warning: defvar ignored because %s is let-bound", + SYMBOL_NAME (sym), 1); + break; + } + } + } tail = Fcdr (tail); tem = Fcar (tail); if (!NILP (tem)) @@ -1158,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 {
