diff src/eval.c @ 90201:fbb2bea03df9

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-69 Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 474-484) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 88-91) - Merge from emacs--cvs-trunk--0 - Update FSF's address in GPL notices - Update from CVS
author Miles Bader <miles@gnu.org>
date Thu, 14 Jul 2005 08:02:00 +0000
parents f9a65d7ebd29 66b8e5d68b93
children 187d6a1f84f7
line wrap: on
line diff
--- a/src/eval.c	Thu Jul 07 12:43:14 2005 +0000
+++ b/src/eval.c	Thu Jul 14 08:02:00 2005 +0000
@@ -807,8 +807,16 @@
 
   sym = Fcar (args);
   if (SYMBOL_CONSTANT_P (sym))
-    error ("Constant symbol `%s' specified in defvar",
-           SDATA (SYMBOL_NAME (sym)));
+    {
+      /* For updward compatibility, allow (defvar :foo (quote :foo)).  */
+      tem = Fcar (Fcdr (args));
+      if (! (CONSP (tem)
+	     && EQ (XCAR (tem), Qquote)
+	     && CONSP (XCDR (tem))
+	     && EQ (XCAR (XCDR (tem)), sym)))
+	error ("Constant symbol `%s' specified in defvar",
+	       SDATA (SYMBOL_NAME (sym)));
+    }
 
   tail = Fcdr (args);
   if (!NILP (Fcdr (Fcdr (tail))))
@@ -2085,7 +2093,7 @@
     return form;
 
   QUIT;
-  if (consing_since_gc > gc_cons_threshold)
+  if (consing_since_gc > gc_cons_combined_threshold)
     {
       GCPRO1 (form);
       Fgarbage_collect ();
@@ -2785,7 +2793,7 @@
   register int i;
 
   QUIT;
-  if (consing_since_gc > gc_cons_threshold)
+  if (consing_since_gc > gc_cons_combined_threshold)
     Fgarbage_collect ();
 
   if (++lisp_eval_depth > max_lisp_eval_depth)