diff options
| author | Karoly Lorentey | 2004-12-08 22:20:27 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2004-12-08 22:20:27 +0000 |
| commit | fad2f6858075f49c4c8fd16f0535c287e3f14ac3 (patch) | |
| tree | 843a2ffe6caea6201877e3d2f1b6b954f47344b5 /src/eval.c | |
| parent | 856dd47583918edd7987c13334703d3e7492d8f4 (diff) | |
| parent | b11e88237593ff7556d8535305e8f342e6b61d66 (diff) | |
| download | emacs-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.c | 23 |
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 | |||
| 573 | unconditionally for that argument. (`p' is a good way to do this.) */) | 573 | unconditionally 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 | { |