diff options
| author | Richard M. Stallman | 2005-07-09 03:42:43 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 2005-07-09 03:42:43 +0000 |
| commit | ed6cefb42c8847289ff83bf43b5370d878c93697 (patch) | |
| tree | 4e73f6aad5f8150113543a97e380fc230e9f558b /src | |
| parent | b2d2748d7a32e7ac0ba22228deaeb615b809f012 (diff) | |
| download | emacs-ed6cefb42c8847289ff83bf43b5370d878c93697.tar.gz emacs-ed6cefb42c8847289ff83bf43b5370d878c93697.zip | |
(Fdefvar): Allow defvaring a constant to itself quoted.
Diffstat (limited to 'src')
| -rw-r--r-- | src/eval.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/eval.c b/src/eval.c index f625258229e..45effae295c 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -807,8 +807,16 @@ usage: (defvar SYMBOL &optional INITVALUE DOCSTRING) */) | |||
| 807 | 807 | ||
| 808 | sym = Fcar (args); | 808 | sym = Fcar (args); |
| 809 | if (SYMBOL_CONSTANT_P (sym)) | 809 | if (SYMBOL_CONSTANT_P (sym)) |
| 810 | error ("Constant symbol `%s' specified in defvar", | 810 | { |
| 811 | SDATA (SYMBOL_NAME (sym))); | 811 | /* For updward compatibility, allow (defvar :foo (quote :foo)). */ |
| 812 | tem = Fcar (Fcdr (args)); | ||
| 813 | if (! (CONSP (tem) | ||
| 814 | && EQ (XCAR (tem), Qquote) | ||
| 815 | && CONSP (XCDR (tem)) | ||
| 816 | && EQ (XCAR (XCDR (tem)), sym))) | ||
| 817 | error ("Constant symbol `%s' specified in defvar", | ||
| 818 | SDATA (SYMBOL_NAME (sym))); | ||
| 819 | } | ||
| 812 | 820 | ||
| 813 | tail = Fcdr (args); | 821 | tail = Fcdr (args); |
| 814 | if (!NILP (Fcdr (Fcdr (tail)))) | 822 | if (!NILP (Fcdr (Fcdr (tail)))) |