From f2475f97b728ad7b4237b40600f3cb786c8fbce7 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Mon, 6 Feb 2012 20:48:07 +0800 Subject: [PATCH] * lisp/custom.el (defcustom): Another doc fix. --- lisp/custom.el | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/lisp/custom.el b/lisp/custom.el index a879c7f76a0..2d880d23955 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -198,14 +198,14 @@ set to nil, as the value is no longer rogue." (run-hooks 'custom-define-hook) symbol) -(defmacro defcustom (symbol value doc &rest args) - "Declare SYMBOL as a customizable variable that defaults to VALUE. +(defmacro defcustom (symbol standard doc &rest args) + "Declare SYMBOL as a customizable variable. SYMBOL is the variable name; it should not be quoted. -VALUE is an expression specifying the variable's standard value. -This expression should not be quoted. It is evaluated once by +STANDARD is an expression specifying the variable's standard +value. It should not be quoted. It is evaluated once by `defcustom', and the value is assigned to SYMBOL if the variable -is unbound. The expression may also be re-evaluated by Customize -whenever it needs to get the variable's standard value. +is unbound. The expression itself is also stored, so that +Customize can re-evaluate it later to get the standard value. DOC is the variable documentation. The remaining arguments should have the form @@ -324,14 +324,15 @@ for more information." `(custom-declare-variable ',symbol ,(if lexical-binding ;FIXME: This is not reliable, but is all we have. - ;; The `default' arg should be an expression that evaluates to - ;; the value to use. The use of `eval' for it is spread over - ;; many different places and hence difficult to eliminate, yet - ;; we want to make sure that the `value' expression is checked by the - ;; byte-compiler, and that lexical-binding is obeyed, so quote the - ;; expression with `lambda' rather than with `quote'. - `(list (lambda () ,value)) - `',value) + ;; The STANDARD arg should be an expression that evaluates to + ;; the standard value. The use of `eval' for it is spread + ;; over many different places and hence difficult to + ;; eliminate, yet we want to make sure that the `standard' + ;; expression is checked by the byte-compiler, and that + ;; lexical-binding is obeyed, so quote the expression with + ;; `lambda' rather than with `quote'. + `(list (lambda () ,standard)) + `',standard) ,doc ,@args)) -- 2.11.4.GIT