summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/lispref/ChangeLog5
-rw-r--r--doc/lispref/customize.texi5
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/custom.el7
4 files changed, 17 insertions, 5 deletions
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 <lekktu@gmail.com>
+
+ * customize.texi (Variable Definitions): Recommend avoiding
+ destructive modification of the value argument of :set (bug#16755).
+
2014-03-18 Stefan Monnier <monnier@iro.umontreal.ca>
* 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 <lekktu@gmail.com>
+
+ * custom.el (defcustom): Doc fix: recommend avoiding destructive
+ modification of the value argument of :set (bug#16755).
+
2014-03-18 Stefan Monnier <monnier@iro.umontreal.ca>
* 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