From: Stefan Monnier Date: Fri, 16 Sep 2011 14:14:48 +0000 (-0400) Subject: * src/eval.c (Fquote): Document its non-consing behavior. X-Git-Tag: emacs-pretest-24.0.90~104^2~24 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=91a15bc634398fbf5092d4116022d45bc2ec3784;p=emacs.git * src/eval.c (Fquote): Document its non-consing behavior. Fixes: debbugs:9482 --- diff --git a/src/ChangeLog b/src/ChangeLog index cf75c28c385..9ce2629d442 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2011-09-16 Stefan Monnier + + * eval.c (Fquote): Document its non-consing behavior (bug#9482). + 2011-09-16 Eli Zaretskii * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see diff --git a/src/eval.c b/src/eval.c index 57a273cd4aa..32b9d366fc3 100644 --- a/src/eval.c +++ b/src/eval.c @@ -475,6 +475,14 @@ usage: (setq [SYM VAL]...) */) DEFUN ("quote", Fquote, Squote, 1, UNEVALLED, 0, doc: /* Return the argument, without evaluating it. `(quote x)' yields `x'. +Warning: `quote' does not construct its return value, but just returns +the value that was pre-constructed by the Lisp reader (see info node +`(elisp)Printed Representation'). +This means that '(a . b) is not identical to (cons 'a 'b): the former +does not cons. Quoting should be reserved for constants that will +never be modified by side-effects, unless you like self-modifying code. +See the common pitfall in info node `(elisp)Rearrangement' for an example +of unexpected results when a quoted object is modified. usage: (quote ARG) */) (Lisp_Object args) {