From: Juanma Barranquero Date: Tue, 18 Mar 2014 23:31:17 +0000 (+0100) Subject: Recommend not modifying :set's value arg in defcustom (bug#16755). X-Git-Tag: emacs-24.3.90~151 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6b88e570d87bbf8e3e36f6cb25a3791d047e8c35;p=emacs.git Recommend not modifying :set's value arg in defcustom (bug#16755). * doc/lispref/customize.texi (Variable Definitions): * lisp/custom.el (defcustom): Recommend avoiding destructive modification of the value argument of :set. --- diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 723bd1188c6..2749a521c9a 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,8 @@ +2014-03-18 Juanma Barranquero + + * customize.texi (Variable Definitions): Recommend avoiding + destructive modification of the value argument of :set (bug#16755). + 2014-03-18 Stefan Monnier * modes.texi (Auto-Indentation): Mention electric-indent variables. diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi index 094beef01ec..0c6497fb4ef 100644 --- a/doc/lispref/customize.texi +++ b/doc/lispref/customize.texi @@ -353,8 +353,9 @@ option when using the Customize interface. The function @var{setfunction} should take two arguments, a symbol (the option name) and the new value, and should do whatever is necessary to update the value properly for this option (which may not mean simply setting -the option as a Lisp variable). The default for @var{setfunction} is -@code{set-default}. +the option as a Lisp variable); preferably, though, it should not +modify its value argument destructively. The default for +@var{setfunction} is @code{set-default}. If you specify this keyword, the variable's documentation string should describe how to do the same job in hand-written Lisp code. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 70b557ad36b..4308d4085fa 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2014-03-18 Juanma Barranquero + + * custom.el (defcustom): Doc fix: recommend avoiding destructive + modification of the value argument of :set (bug#16755). + 2014-03-18 Stefan Monnier * simple.el (newline-and-indent): Do autofill (bug#17031). diff --git a/lisp/custom.el b/lisp/custom.el index 09431c454ec..c30ad7cb213 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -232,9 +232,10 @@ The following keywords are meaningful: given in the `defcustom' call. The default is `custom-initialize-reset'. :set VALUE should be a function to set the value of the symbol - when using the Customize user interface. - It takes two arguments, the symbol to set and the value to - give it. The default choice of function is `set-default'. + when using the Customize user interface. It takes two arguments, + the symbol to set and the value to give it. The function should + not modify its value argument destructively. The default choice + of function is `set-default'. :get VALUE should be a function to extract the value of symbol. The function takes one argument, a symbol, and should return the current value for that symbol. The default choice of function