aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman2005-07-09 03:42:43 +0000
committerRichard M. Stallman2005-07-09 03:42:43 +0000
commited6cefb42c8847289ff83bf43b5370d878c93697 (patch)
tree4e73f6aad5f8150113543a97e380fc230e9f558b /src
parentb2d2748d7a32e7ac0ba22228deaeb615b809f012 (diff)
downloademacs-ed6cefb42c8847289ff83bf43b5370d878c93697.tar.gz
emacs-ed6cefb42c8847289ff83bf43b5370d878c93697.zip
(Fdefvar): Allow defvaring a constant to itself quoted.
Diffstat (limited to 'src')
-rw-r--r--src/eval.c12
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))))