diff src/eval.c @ 64638:8cbdc86a4f55

(Fdefvar): Allow (defvar enable-multibyte-characters).
author Stefan Monnier <monnier@iro.umontreal.ca>
date Tue, 26 Jul 2005 16:28:44 +0000
parents 9e774d6510f1
children a0d1312ede66 890cc78a5a24
line wrap: on
line diff
--- a/src/eval.c	Tue Jul 26 16:07:55 2005 +0000
+++ b/src/eval.c	Tue Jul 26 16:28:44 2005 +0000
@@ -807,18 +807,6 @@
   register Lisp_Object sym, tem, tail;
 
   sym = Fcar (args);
-  if (SYMBOL_CONSTANT_P (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))))
     error ("Too many arguments");
@@ -826,6 +814,18 @@
   tem = Fdefault_boundp (sym);
   if (!NILP (tail))
     {
+      if (SYMBOL_CONSTANT_P (sym))
+	{
+	  /* For upward compatibility, allow (defvar :foo (quote :foo)).  */
+	  Lisp_Object tem = Fcar (tail);
+	  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)));
+	}
+
       if (NILP (tem))
 	Fset_default (sym, Feval (Fcar (tail)));
       else