# HG changeset patch # User Stefan Monnier # Date 1122395324 0 # Node ID 8cbdc86a4f5598a940177ecf78bad07404973acb # Parent a975a8beec7f0967290ed35e5d5fbf6cffbc6557 (Fdefvar): Allow (defvar enable-multibyte-characters). diff -r a975a8beec7f -r 8cbdc86a4f55 src/ChangeLog --- a/src/ChangeLog Tue Jul 26 16:07:55 2005 +0000 +++ b/src/ChangeLog Tue Jul 26 16:28:44 2005 +0000 @@ -1,3 +1,7 @@ +2005-07-26 Stefan Monnier + + * eval.c (Fdefvar): Allow (defvar enable-multibyte-characters). + 2005-07-25 Jason Rumney * w32menu.c (w32_menu_display_help): Suppress tooltip when @@ -22,7 +26,7 @@ (Fgarbage_collect, init_alloc_once): Compute gc_relative_threshold instead of gc_cons_combined_threshold. - * lisp.h (gc_cons_threshold, gc_relative_threshold): Declared. + * lisp.h (gc_cons_threshold, gc_relative_threshold): Declare. (gc_cons_combined_threshold): Declaration deleted. 2005-07-23 YAMAMOTO Mitsuharu diff -r a975a8beec7f -r 8cbdc86a4f55 src/eval.c --- 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