diff options
author | Richard M. Stallman <[email protected]> | 2005-07-09 03:42:43 +0000 |
---|---|---|
committer | Richard M. Stallman <[email protected]> | 2005-07-09 03:42:43 +0000 |
commit | ed6cefb42c8847289ff83bf43b5370d878c93697 (patch) | |
tree | 4e73f6aad5f8150113543a97e380fc230e9f558b | |
parent | b2d2748d7a32e7ac0ba22228deaeb615b809f012 (diff) |
(Fdefvar): Allow defvaring a constant to itself quoted.
-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 f625258229..45effae295 100644 --- a/src/eval.c +++ b/src/eval.c @@ -807,8 +807,16 @@ usage: (defvar SYMBOL &optional INITVALUE DOCSTRING) */) sym = Fcar (args); if (SYMBOL_CONSTANT_P (sym)) - error ("Constant symbol `%s' specified in defvar", - SDATA (SYMBOL_NAME (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)))) |