aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2005-07-26 16:28:44 +0000
committerStefan Monnier2005-07-26 16:28:44 +0000
commit1c9916a1f9dc944ee733f5c77db39013123da8da (patch)
treebe7363eeed845d8e48e03f98d9e3385d8e64fe3f /src
parenta34ed813d1c8fa8305c07dbcb14492c041131c88 (diff)
downloademacs-1c9916a1f9dc944ee733f5c77db39013123da8da.tar.gz
emacs-1c9916a1f9dc944ee733f5c77db39013123da8da.zip
(Fdefvar): Allow (defvar enable-multibyte-characters).
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog6
-rw-r--r--src/eval.c24
2 files changed, 17 insertions, 13 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index ec3ecb56660..e352ada73a3 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
12005-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * eval.c (Fdefvar): Allow (defvar enable-multibyte-characters).
4
12005-07-25 Jason Rumney <jasonr@gnu.org> 52005-07-25 Jason Rumney <jasonr@gnu.org>
2 6
3 * w32menu.c (w32_menu_display_help): Suppress tooltip when 7 * w32menu.c (w32_menu_display_help): Suppress tooltip when
@@ -22,7 +26,7 @@
22 (Fgarbage_collect, init_alloc_once): Compute gc_relative_threshold 26 (Fgarbage_collect, init_alloc_once): Compute gc_relative_threshold
23 instead of gc_cons_combined_threshold. 27 instead of gc_cons_combined_threshold.
24 28
25 * lisp.h (gc_cons_threshold, gc_relative_threshold): Declared. 29 * lisp.h (gc_cons_threshold, gc_relative_threshold): Declare.
26 (gc_cons_combined_threshold): Declaration deleted. 30 (gc_cons_combined_threshold): Declaration deleted.
27 31
282005-07-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 322005-07-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff --git a/src/eval.c b/src/eval.c
index d118a30804c..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