aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorKaroly Lorentey2004-12-08 22:20:27 +0000
committerKaroly Lorentey2004-12-08 22:20:27 +0000
commitfad2f6858075f49c4c8fd16f0535c287e3f14ac3 (patch)
tree843a2ffe6caea6201877e3d2f1b6b954f47344b5 /src/eval.c
parent856dd47583918edd7987c13334703d3e7492d8f4 (diff)
parentb11e88237593ff7556d8535305e8f342e6b61d66 (diff)
downloademacs-fad2f6858075f49c4c8fd16f0535c287e3f14ac3.tar.gz
emacs-fad2f6858075f49c4c8fd16f0535c287e3f14ac3.zip
Merged in changes from CVS trunk.
Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-714 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-271
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/eval.c b/src/eval.c
index adff3e8670c..4a63b022fd6 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -573,7 +573,7 @@ optional argument, and making the `interactive' spec specify non-nil
573unconditionally for that argument. (`p' is a good way to do this.) */) 573unconditionally for that argument. (`p' is a good way to do this.) */)
574 () 574 ()
575{ 575{
576 return (INTERACTIVE && interactive_p (1)) ? Qt : Qnil; 576 return interactive_p (1) ? Qt : Qnil;
577} 577}
578 578
579 579
@@ -595,7 +595,8 @@ interactive_p (exclude_subrs_p)
595 /* If this isn't a byte-compiled function, there may be a frame at 595 /* If this isn't a byte-compiled function, there may be a frame at
596 the top for Finteractive_p. If so, skip it. */ 596 the top for Finteractive_p. If so, skip it. */
597 fun = Findirect_function (*btp->function); 597 fun = Findirect_function (*btp->function);
598 if (SUBRP (fun) && XSUBR (fun) == &Sinteractive_p) 598 if (SUBRP (fun) && (XSUBR (fun) == &Sinteractive_p
599 || XSUBR (fun) == &Scalled_interactively_p))
599 btp = btp->next; 600 btp = btp->next;
600 601
601 /* If we're running an Emacs 18-style byte-compiled function, there 602 /* If we're running an Emacs 18-style byte-compiled function, there
@@ -786,6 +787,21 @@ usage: (defvar SYMBOL &optional INITVALUE DOCSTRING) */)
786 { 787 {
787 if (NILP (tem)) 788 if (NILP (tem))
788 Fset_default (sym, Feval (Fcar (tail))); 789 Fset_default (sym, Feval (Fcar (tail)));
790 else
791 { /* Check if there is really a global binding rather than just a let
792 binding that shadows the global unboundness of the var. */
793 volatile struct specbinding *pdl = specpdl_ptr;
794 while (--pdl >= specpdl)
795 {
796 if (EQ (pdl->symbol, sym) && !pdl->func
797 && EQ (pdl->old_value, Qunbound))
798 {
799 message_with_string ("Warning: defvar ignored because %s is let-bound",
800 SYMBOL_NAME (sym), 1);
801 break;
802 }
803 }
804 }
789 tail = Fcdr (tail); 805 tail = Fcdr (tail);
790 tem = Fcar (tail); 806 tem = Fcar (tail);
791 if (!NILP (tem)) 807 if (!NILP (tem))
@@ -1158,9 +1174,10 @@ unwind_to_catch (catch, value)
1158 /* Save the value in the tag. */ 1174 /* Save the value in the tag. */
1159 catch->val = value; 1175 catch->val = value;
1160 1176
1161 /* Restore the polling-suppression count. */ 1177 /* Restore certain special C variables. */
1162 set_poll_suppress_count (catch->poll_suppress_count); 1178 set_poll_suppress_count (catch->poll_suppress_count);
1163 interrupt_input_blocked = catch->interrupt_input_blocked; 1179 interrupt_input_blocked = catch->interrupt_input_blocked;
1180 handling_signal = 0;
1164 1181
1165 do 1182 do
1166 { 1183 {