aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorMiles Bader2005-07-29 01:54:54 +0000
committerMiles Bader2005-07-29 01:54:54 +0000
commit58b646fafc27ea5fb93fa95d5ff84187d689d315 (patch)
tree361704f8149dccf6d1578bea3b89da11ced846f7 /src/eval.c
parentffc3bd5c6c5ce65d4390c3523e4527c701a0ed95 (diff)
parentd44e3b453c528446579182d82284abbfd80f8b7d (diff)
downloademacs-58b646fafc27ea5fb93fa95d5ff84187d689d315.tar.gz
emacs-58b646fafc27ea5fb93fa95d5ff84187d689d315.zip
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-74
Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 493-503) - Update from CVS - Update from CVS: lisp/startup.el (command-line): Fix typo. - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 95-98) - Update from CVS
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c30
1 files changed, 16 insertions, 14 deletions
diff --git a/src/eval.c b/src/eval.c
index 26d1ce967a7..56fe670f1b1 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -807,18 +807,6 @@ usage: (defvar SYMBOL &optional INITVALUE DOCSTRING) */)
807 register Lisp_Object sym, tem, tail; 807 register Lisp_Object sym, tem, tail;
808 808
809 sym = Fcar (args); 809 sym = Fcar (args);
810 if (SYMBOL_CONSTANT_P (sym))
811 {
812 /* For updward compatibility, allow (defvar :foo (quote :foo)). */
813 tem = Fcar (Fcdr (args));
814 if (! (CONSP (tem)
815 && EQ (XCAR (tem), Qquote)
816 && CONSP (XCDR (tem))
817 && EQ (XCAR (XCDR (tem)), sym)))
818 error ("Constant symbol `%s' specified in defvar",
819 SDATA (SYMBOL_NAME (sym)));
820 }
821
822 tail = Fcdr (args); 810 tail = Fcdr (args);
823 if (!NILP (Fcdr (Fcdr (tail)))) 811 if (!NILP (Fcdr (Fcdr (tail))))
824 error ("Too many arguments"); 812 error ("Too many arguments");
@@ -826,6 +814,18 @@ usage: (defvar SYMBOL &optional INITVALUE DOCSTRING) */)
826 tem = Fdefault_boundp (sym); 814 tem = Fdefault_boundp (sym);
827 if (!NILP (tail)) 815 if (!NILP (tail))
828 { 816 {
817 if (SYMBOL_CONSTANT_P (sym))
818 {
819 /* For upward compatibility, allow (defvar :foo (quote :foo)). */
820 Lisp_Object tem = Fcar (tail);
821 if (! (CONSP (tem)
822 && EQ (XCAR (tem), Qquote)
823 && CONSP (XCDR (tem))
824 && EQ (XCAR (XCDR (tem)), sym)))
825 error ("Constant symbol `%s' specified in defvar",
826 SDATA (SYMBOL_NAME (sym)));
827 }
828
829 if (NILP (tem)) 829 if (NILP (tem))
830 Fset_default (sym, Feval (Fcar (tail))); 830 Fset_default (sym, Feval (Fcar (tail)));
831 else 831 else
@@ -2094,7 +2094,8 @@ DEFUN ("eval", Feval, Seval, 1, 1, 0,
2094 return form; 2094 return form;
2095 2095
2096 QUIT; 2096 QUIT;
2097 if (consing_since_gc > gc_cons_combined_threshold) 2097 if (consing_since_gc > gc_cons_threshold
2098 && consing_since_gc > gc_relative_threshold)
2098 { 2099 {
2099 GCPRO1 (form); 2100 GCPRO1 (form);
2100 Fgarbage_collect (); 2101 Fgarbage_collect ();
@@ -2794,7 +2795,8 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */)
2794 register int i; 2795 register int i;
2795 2796
2796 QUIT; 2797 QUIT;
2797 if (consing_since_gc > gc_cons_combined_threshold) 2798 if (consing_since_gc > gc_cons_threshold
2799 && consing_since_gc > gc_relative_threshold)
2798 Fgarbage_collect (); 2800 Fgarbage_collect ();
2799 2801
2800 if (++lisp_eval_depth > max_lisp_eval_depth) 2802 if (++lisp_eval_depth > max_lisp_eval_depth)