diff options
| author | Stefan Monnier | 2005-07-26 16:28:44 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2005-07-26 16:28:44 +0000 |
| commit | 1c9916a1f9dc944ee733f5c77db39013123da8da (patch) | |
| tree | be7363eeed845d8e48e03f98d9e3385d8e64fe3f /src/eval.c | |
| parent | a34ed813d1c8fa8305c07dbcb14492c041131c88 (diff) | |
| download | emacs-1c9916a1f9dc944ee733f5c77db39013123da8da.tar.gz emacs-1c9916a1f9dc944ee733f5c77db39013123da8da.zip | |
(Fdefvar): Allow (defvar enable-multibyte-characters).
Diffstat (limited to 'src/eval.c')
| -rw-r--r-- | src/eval.c | 24 |
1 files changed, 12 insertions, 12 deletions
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 |