emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r107113: Updates to Macros and Custom


From: Chong Yidong
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r107113: Updates to Macros and Customization chapters of Lisp manual.
Date: Sun, 05 Feb 2012 14:44:47 +0800
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 107113
committer: Chong Yidong <address@hidden>
branch nick: trunk
timestamp: Sun 2012-02-05 14:44:47 +0800
message:
  Updates to Macros and Customization chapters of Lisp manual.
  
  * doc/lispref/customize.texi (Common Keywords): Minor clarifications.
  Document custom-unlispify-remove-prefixes.
  (Variable Definitions): Backquotes in defcustom seem to work fine
  now.  Various other copyedits.
  
  * doc/lispref/macros.texi (Expansion): Minor clarification.
  (Backquote): Move node to eval.texi.
  (Defining Macros): Move an example from Backquote node.
  (Argument Evaluation): No need to mention Pascal.
  (Indenting Macros): Add xref to Defining Macros.
  
  * doc/lispref/eval.texi (Backquote): Move from macros.texi.
  
  * lisp/custom.el (defcustom): Doc fix.
modified:
  admin/FOR-RELEASE
  doc/lispref/ChangeLog
  doc/lispref/customize.texi
  doc/lispref/elisp.texi
  doc/lispref/eval.texi
  doc/lispref/macros.texi
  doc/lispref/vol1.texi
  doc/lispref/vol2.texi
  lisp/ChangeLog
  lisp/custom.el
=== modified file 'admin/FOR-RELEASE'
--- a/admin/FOR-RELEASE 2012-02-04 14:56:32 +0000
+++ b/admin/FOR-RELEASE 2012-02-05 06:44:47 +0000
@@ -208,7 +208,7 @@
 lists.texi        cyd
 loading.texi      
 locals.texi       
-macros.texi       
+macros.texi       cyd
 maps.texi         
 markers.texi      
 minibuf.texi      

=== modified file 'doc/lispref/ChangeLog'
--- a/doc/lispref/ChangeLog     2012-02-05 03:37:19 +0000
+++ b/doc/lispref/ChangeLog     2012-02-05 06:44:47 +0000
@@ -1,3 +1,18 @@
+2012-02-05  Chong Yidong  <address@hidden>
+
+       * customize.texi (Common Keywords): Minor clarifications.
+       Document custom-unlispify-remove-prefixes.
+       (Variable Definitions): Backquotes in defcustom seem to work fine
+       now.  Various other copyedits.
+
+       * eval.texi (Backquote): Move from macros.texi.
+
+       * macros.texi (Expansion): Minor clarification.
+       (Backquote): Move node to eval.texi.
+       (Defining Macros): Move an example from Backquote node.
+       (Argument Evaluation): No need to mention Pascal.
+       (Indenting Macros): Add xref to Defining Macros.
+
 2012-02-05  Glenn Morris  <address@hidden>
 
        * debugging.texi (Error Debugging): Mention debug-on-event default.

=== modified file 'doc/lispref/customize.texi'
--- a/doc/lispref/customize.texi        2012-01-24 16:08:00 +0000
+++ b/doc/lispref/customize.texi        2012-02-05 06:44:47 +0000
@@ -24,9 +24,10 @@
 @section Common Item Keywords
 
 @cindex customization keywords
-  All kinds of customization declarations (for variables and groups, and
-for faces) accept keyword arguments for specifying various information.
-This section describes some keywords that apply to all kinds.
+  The customization declarations that we will describe in the next few
+sections (@code{defcustom}, @code{defgroup}, etc.) all accept keyword
+arguments for specifying various information.  This section describes
+keywords that apply to all types of customization declarations.
 
   All of these keywords, except @code{:tag}, can be used more than once
 in a given item.  Each use of the keyword has an independent effect.
@@ -108,8 +109,7 @@
 for example, @code{(info-link :tag "foo" "(emacs)Top")} makes a link to
 the Emacs manual which appears in the buffer as @samp{foo}.
 
-An item can have more than one external link; however, most items have
-none at all.
+You can use this keyword more than once, to add multiple links.
 
 @item :load @var{file}
 @kindex address@hidden, customization keyword}
@@ -136,14 +136,13 @@
 @kindex address@hidden, customization keyword}
 This keyword specifies that the item was first introduced in
 @var{package} version @var{version}, or that its meaning or default
-value was changed in that version.  The value of @var{package} is a
-symbol and @var{version} is a string.
-
-This keyword takes priority over @code{:version}.
-
address@hidden should be the official name of the package, such as MH-E
-or Gnus.  If the package @var{package} is released as part of Emacs,
address@hidden and @var{version} should appear in the value of
+value was changed in that version.  This keyword takes priority over
address@hidden:version}.
+
address@hidden should be the official name of the package, as a symbol
+(e.g.@: @code{MH-E}).  @var{version} should be a string.  If the
+package @var{package} is released as part of Emacs, @var{package} and
address@hidden should appear in the value of
 @code{customize-package-emacs-version-alist}.
 @end table
 
@@ -226,41 +225,31 @@
 @table @code
 @item :prefix @var{prefix}
 @kindex address@hidden, @code{defgroup} keyword}
-If the name of an item in the group starts with @var{prefix}, then the
-tag for that item is constructed (by default) by omitting @var{prefix}.
-
-One group can have any number of prefixes.
+If the name of an item in the group starts with @var{prefix}, and the
+customizable variable @code{custom-unlispify-remove-prefixes} is
address@hidden, the item's tag will omit @var{prefix}.  A group can
+have any number of prefixes.
 @end table
 @end defmac
 
-  The prefix-discarding feature is currently turned off, which means
-that @code{:prefix} currently has no effect.  We did this because we
-found that discarding the specified prefixes often led to confusing
-names for options.  This happened because the people who wrote the
address@hidden definitions for various groups added @code{:prefix}
-keywords whenever they make logical sense---that is, whenever the
-variables in the library have a common prefix.
-
-  In order to obtain good results with @code{:prefix}, it would be
-necessary to check the specific effects of discarding a particular
-prefix, given the specific items in a group and their names and
-documentation.  If the resulting text is not clear, then @code{:prefix}
-should not be used in that case.
-
-  It should be possible to recheck all the customization groups, delete
-the @code{:prefix} specifications which give unclear results, and then
-turn this feature back on, if someone would like to do the work.
address@hidden custom-unlispify-remove-prefixes
+If this variable is address@hidden, the prefixes specified by a
+group's @code{:prefix} keyword are omitted from tag names, whenever
+the user customizes the group.
+
+The default value is @code{nil}, i.e.@: the prefix-discarding feature
+is disabled.  This is because discarding prefixes often leads to
+confusing names for options and faces.
address@hidden defopt
 
 @node Variable Definitions
 @section Defining Customization Variables
 @cindex define customization options
 @cindex customization variables, how to define
 
-  Use @code{defcustom} to declare user-customizable variables.
-
 @defmac defcustom option standard doc [keyword address@hidden
-This macro declares @var{option} as a customizable @dfn{user option}.
-You should not quote @var{option}.
+This macro declares @var{option} as a user option (i.e.@: a
+customizable variable).  You should not quote @var{option}.
 
 The argument @var{standard} is an expression that specifies the
 standard value for @var{option}.  Evaluating the @code{defcustom} form
@@ -275,31 +264,25 @@
 The expression @var{standard} can be evaluated at various other times,
 too---whenever the customization facility needs to know @var{option}'s
 standard value.  So be sure to use an expression which is harmless to
-evaluate at any time.  We recommend avoiding backquotes in
address@hidden, because they are not expanded when editing the value,
-so list values will appear to have the wrong structure.
+evaluate at any time.
 
 The argument @var{doc} specifies the documentation string for the
 variable.
 
 Every @code{defcustom} should specify @code{:group} at least once.
 
-If you specify the @code{:set} keyword, to make the variable take other
-special actions when set through the customization buffer, the
-variable's documentation string should tell the user specifically how
-to do the same job in hand-written Lisp code.
-
 When you evaluate a @code{defcustom} form with @kbd{C-M-x} in Emacs Lisp
 mode (@code{eval-defun}), a special feature of @code{eval-defun}
 arranges to set the variable unconditionally, without testing whether
 its value is void.  (The same feature applies to @code{defvar}.)
 @xref{Defining Variables}.
 
-If you put a @code{defcustom} in a file that is preloaded at dump time
-(@pxref{Building Emacs}), and the standard value installed for the
-variable at that time might not be correct, use
+If you put a @code{defcustom} in a pre-loaded Emacs Lisp file
+(@pxref{Building Emacs}), the standard value installed at dump time
+might be incorrect, e.g.@: because another variable that it depends on
+has not been assigned the right value yet.  In that case, use
 @code{custom-reevaluate-setting}, described below, to re-evaluate the
-standard value during or after Emacs startup.
+standard value after Emacs starts up.
 @end defmac
 
   @code{defcustom} accepts the following additional keywords:
@@ -330,6 +313,9 @@
 the option as a Lisp variable).  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.
+
 @item :get @var{getfunction}
 @kindex address@hidden, @code{defcustom} keyword}
 Specify @var{getfunction} as the way to extract the value of this
@@ -341,7 +327,7 @@
 You have to really understand the workings of Custom to use
 @code{:get} correctly.  It is meant for values that are treated in
 Custom as variables but are not actually stored in Lisp variables.  It
-is almost surely a mistake to specify @code{getfunction} for a value
+is almost surely a mistake to specify @var{getfunction} for a value
 that really is stored in a Lisp variable.
 
 @item :initialize @var{function}
@@ -380,16 +366,15 @@
 These functions behave like @code{custom-initialize-set}
 (@code{custom-initialize-default}, respectively), but catch errors.
 If an error occurs during initialization, they set the variable to
address@hidden using @code{set-default}, and throw no error.
address@hidden using @code{set-default}, and signal no error.
 
-These two functions are only meant for options defined in pre-loaded
-files, where some variables or functions used to compute the option's
-value may not yet be defined.  The option normally gets updated in
address@hidden, ignoring the previously computed value.  Because of
-this typical usage, the value which these two functions compute
-normally only matters when, after startup, one unsets the option's
-value and then reevaluates the defcustom.  By that time, the necessary
-variables and functions will be defined, so there will not be an error.
+These functions are meant for options defined in pre-loaded files,
+where the @var{standard} expression may signal an error because some
+required variable or function is not yet defined.  The value normally
+gets updated in @file{startup.el}, ignoring the value computed by
address@hidden  After startup, if one unsets the value and
+reevaluates the @code{defcustom}, the @var{standard} expression can be
+evaluated without error.
 @end table
 
 @item :risky @var{value}
@@ -457,18 +442,16 @@
 
 @defun custom-reevaluate-setting symbol
 This function re-evaluates the standard value of @var{symbol}, which
-should be a user option declared via @code{defcustom}.  (If the
+should be a user option declared via @code{defcustom}.  If the
 variable was customized, this function re-evaluates the saved value
-instead.)  This is useful for customizable options that are defined
-before their value could be computed correctly, such as variables
-defined in packages that are loaded at dump time, but depend on the
-run-time information.  For example, the value could be a file whose
-precise name depends on the hierarchy of files when Emacs runs, or a
-name of a program that needs to be searched at run time.
+instead.  Then it sets the user option to that value (using the
+option's @code{:set} property if that is defined).
 
-A good place to put calls to this function is in the function
address@hidden that is run during startup (@pxref{Startup Summary})
-or in the various hooks it calls.
+This is useful for customizable options that are defined before their
+value could be computed correctly.  For example, during startup Emacs
+calls this function for some user options that were defined in
+pre-loaded Emacs Lisp files, but whose initial values depend on
+information available only at run-time.
 @end defun
 
 @defun custom-variable-p arg

=== modified file 'doc/lispref/elisp.texi'
--- a/doc/lispref/elisp.texi    2012-02-04 14:56:32 +0000
+++ b/doc/lispref/elisp.texi    2012-02-05 06:44:47 +0000
@@ -374,6 +374,7 @@
 * Forms::                   How various sorts of objects are evaluated.
 * Quoting::                 Avoiding evaluation (to put constants in
                               the program).
+* Backquote::               Easier construction of list structure.
 * Eval::                    How to invoke the Lisp interpreter explicitly.
 
 Kinds of Forms
@@ -482,7 +483,6 @@
 * Expansion::               How, when and why macros are expanded.
 * Compiling Macros::        How macros are expanded by the compiler.
 * Defining Macros::         How to write a macro definition.
-* Backquote::               Easier construction of list structure.
 * Problems with Macros::    Don't evaluate the macro arguments too many times.
                               Don't hide the user's variables.
 * Indenting Macros::        Specifying how to indent macro calls.

=== modified file 'doc/lispref/eval.texi'
--- a/doc/lispref/eval.texi     2012-01-31 06:51:33 +0000
+++ b/doc/lispref/eval.texi     2012-02-05 06:44:47 +0000
@@ -23,6 +23,7 @@
 * Intro Eval::  Evaluation in the scheme of things.
 * Forms::       How various sorts of objects are evaluated.
 * Quoting::     Avoiding evaluation (to put constants in the program).
+* Backquote::   Easier construction of list structure.
 * Eval::        How to invoke the Lisp interpreter explicitly.
 @end menu
 
@@ -579,6 +580,96 @@
 to be compiled, and @samp{`} (@pxref{Backquote}), which is used to quote
 only part of a list, while computing and substituting other parts.
 
address@hidden Backquote
address@hidden Backquote
address@hidden backquote (list substitution)
address@hidden ` (list substitution)
address@hidden `
+
+  @dfn{Backquote constructs} allow you to quote a list, but
+selectively evaluate elements of that list.  In the simplest case, it
+is identical to the special form @code{quote}
address@hidden
address@hidden iftex
address@hidden
+(described in the previous section; @pxref{Quoting}).
address@hidden ifnottex
+For example, these two forms yield identical results:
+
address@hidden
address@hidden
+`(a list of (+ 2 3) elements)
+     @result{} (a list of (+ 2 3) elements)
address@hidden group
address@hidden
+'(a list of (+ 2 3) elements)
+     @result{} (a list of (+ 2 3) elements)
address@hidden group
address@hidden example
+
address@hidden , @r{(with backquote)}
+  The special marker @samp{,} inside of the argument to backquote
+indicates a value that isn't constant.  The Emacs Lisp evaluator
+evaluates the argument of @samp{,}, and puts the value in the list
+structure:
+
address@hidden
address@hidden
+`(a list of ,(+ 2 3) elements)
+     @result{} (a list of 5 elements)
address@hidden group
address@hidden example
+
address@hidden
+Substitution with @samp{,} is allowed at deeper levels of the list
+structure also.  For example:
+
address@hidden
address@hidden
+`(1 2 (3 ,(+ 4 5)))
+     @result{} (1 2 (3 9))
address@hidden group
address@hidden example
+
address@hidden ,@@ @r{(with backquote)}
address@hidden splicing (with backquote)
+  You can also @dfn{splice} an evaluated value into the resulting list,
+using the special marker @samp{,@@}.  The elements of the spliced list
+become elements at the same level as the other elements of the resulting
+list.  The equivalent code without using @samp{`} is often unreadable.
+Here are some examples:
+
address@hidden
address@hidden
+(setq some-list '(2 3))
+     @result{} (2 3)
address@hidden group
address@hidden
+(cons 1 (append some-list '(4) some-list))
+     @result{} (1 2 3 4 2 3)
address@hidden group
address@hidden
+`(1 ,@@some-list 4 ,@@some-list)
+     @result{} (1 2 3 4 2 3)
address@hidden group
+
address@hidden
+(setq list '(hack foo bar))
+     @result{} (hack foo bar)
address@hidden group
address@hidden
+(cons 'use
+  (cons 'the
+    (cons 'words (append (cdr list) '(as elements)))))
+     @result{} (use the words foo bar as elements)
address@hidden group
address@hidden
+`(use the words ,@@(cdr list) as elements)
+     @result{} (use the words foo bar as elements)
address@hidden group
address@hidden example
+
+
 @node Eval
 @section Eval
 

=== modified file 'doc/lispref/macros.texi'
--- a/doc/lispref/macros.texi   2012-01-26 00:02:02 +0000
+++ b/doc/lispref/macros.texi   2012-02-05 06:44:47 +0000
@@ -27,7 +27,6 @@
 * Expansion::               How, when and why macros are expanded.
 * Compiling Macros::        How macros are expanded by the compiler.
 * Defining Macros::         How to write a macro definition.
-* Backquote::               Easier construction of list structure.
 * Problems with Macros::    Don't evaluate the macro arguments too many times.
                               Don't hide the user's variables.
 * Indenting Macros::        Specifying how to indent macro calls.
@@ -78,10 +77,9 @@
 case of a @code{&rest} argument.  And the macro body executes and
 returns its value just as a function body does.
 
-  The second crucial difference between macros and functions is that the
-value returned by the macro body is not the value of the macro call.
-Instead, it is an alternate expression for computing that value, also
-known as the @dfn{expansion} of the macro.  The Lisp interpreter
+  The second crucial difference between macros and functions is that
+the value returned by the macro body is an alternate Lisp expression,
+also known as the @dfn{expansion} of the macro.  The Lisp interpreter
 proceeds to evaluate the expansion as soon as it comes back from the
 macro.
 
@@ -221,7 +219,26 @@
 called interactively.
 @end defspec
 
-  The body of the macro definition can include a @code{declare} form,
+  Macros often need to construct large list structures from a mixture
+of constants and nonconstant parts.  To make this easier, use the
address@hidden syntax (@pxref{Backquote}).  For example:
+
address@hidden
address@hidden
address@hidden
+(defmacro t-becomes-nil (variable)
+  `(if (eq ,variable t)
+       (setq ,variable nil)))
address@hidden group
+
address@hidden
+(t-becomes-nil foo)
+     @equiv{} (if (eq foo t) (setq foo nil))
address@hidden group
address@hidden example
address@hidden example
+
+  The body of a macro definition can include a @code{declare} form,
 which can specify how @key{TAB} should indent macro calls, and how to
 step through them for Edebug.
 
@@ -259,107 +276,11 @@
 has no effect on how the macro expands, on what the macro means in the
 program.  It only affects the secondary features listed above.
 
address@hidden Backquote
address@hidden Backquote
address@hidden backquote (list substitution)
address@hidden ` (list substitution)
address@hidden `
-
-  Macros often need to construct large list structures from a mixture of
-constants and nonconstant parts.  To make this easier, use the @samp{`}
-syntax (usually called @dfn{backquote}).
-
-  Backquote allows you to quote a list, but selectively evaluate
-elements of that list.  In the simplest case, it is identical to the
-special form @code{quote} (@pxref{Quoting}).  For example, these
-two forms yield identical results:
-
address@hidden
address@hidden
-`(a list of (+ 2 3) elements)
-     @result{} (a list of (+ 2 3) elements)
address@hidden group
address@hidden
-'(a list of (+ 2 3) elements)
-     @result{} (a list of (+ 2 3) elements)
address@hidden group
address@hidden example
-
address@hidden , @r{(with backquote)}
-The special marker @samp{,} inside of the argument to backquote
-indicates a value that isn't constant.  Backquote evaluates the
-argument of @samp{,} and puts the value in the list structure:
-
address@hidden
address@hidden
-(list 'a 'list 'of (+ 2 3) 'elements)
-     @result{} (a list of 5 elements)
address@hidden group
address@hidden
-`(a list of ,(+ 2 3) elements)
-     @result{} (a list of 5 elements)
address@hidden group
address@hidden example
-
-  Substitution with @samp{,} is allowed at deeper levels of the list
-structure also.  For example:
-
address@hidden
address@hidden
-(defmacro t-becomes-nil (variable)
-  `(if (eq ,variable t)
-       (setq ,variable nil)))
address@hidden group
-
address@hidden
-(t-becomes-nil foo)
-     @equiv{} (if (eq foo t) (setq foo nil))
address@hidden group
address@hidden example
-
address@hidden ,@@ @r{(with backquote)}
address@hidden splicing (with backquote)
-  You can also @dfn{splice} an evaluated value into the resulting list,
-using the special marker @samp{,@@}.  The elements of the spliced list
-become elements at the same level as the other elements of the resulting
-list.  The equivalent code without using @samp{`} is often unreadable.
-Here are some examples:
-
address@hidden
address@hidden
-(setq some-list '(2 3))
-     @result{} (2 3)
address@hidden group
address@hidden
-(cons 1 (append some-list '(4) some-list))
-     @result{} (1 2 3 4 2 3)
address@hidden group
address@hidden
-`(1 ,@@some-list 4 ,@@some-list)
-     @result{} (1 2 3 4 2 3)
address@hidden group
-
address@hidden
-(setq list '(hack foo bar))
-     @result{} (hack foo bar)
address@hidden group
address@hidden
-(cons 'use
-  (cons 'the
-    (cons 'words (append (cdr list) '(as elements)))))
-     @result{} (use the words foo bar as elements)
address@hidden group
address@hidden
-`(use the words ,@@(cdr list) as elements)
-     @result{} (use the words foo bar as elements)
address@hidden group
address@hidden example
-
 @node Problems with Macros
 @section Common Problems Using Macros
 
-  The basic facts of macro expansion have counterintuitive consequences.
-This section describes some important consequences that can lead to
+  Macro expansion can have counterintuitive consequences.  This
+section describes some important consequences that can lead to
 trouble, and rules to follow to avoid trouble.
 
 @menu
@@ -407,9 +328,8 @@
 
   When defining a macro you must pay attention to the number of times
 the arguments will be evaluated when the expansion is executed.  The
-following macro (used to facilitate iteration) illustrates the problem.
-This macro allows us to write a simple ``for'' loop such as one might
-find in Pascal.
+following macro (used to facilitate iteration) illustrates the
+problem.  This macro allows us to write a ``for'' loop construct.
 
 @findex for
 @smallexample
@@ -683,9 +603,9 @@
 @node Indenting Macros
 @section Indenting Macros
 
-  You can use the @code{declare} form in the macro definition to
-specify how to @key{TAB} should indent calls to the macro.  You
-write it like this:
+  Within a macro definition, you can use the @code{declare} form
+(@pxref{Defining Macros}) to specify how to @key{TAB} should indent
+calls to the macro.  An indentation specifiction is written like this:
 
 @example
 (declare (indent @var{indent-spec}))
@@ -715,6 +635,7 @@
 @var{symbol} should be a function name; that function is called to
 calculate the indentation of a line within this expression.  The
 function receives two arguments:
+
 @table @asis
 @item @var{state}
 The value returned by @code{parse-partial-sexp} (a Lisp primitive for
@@ -723,6 +644,7 @@
 @item @var{pos}
 The position at which the line being indented begins.
 @end table
+
 @noindent
 It should return either a number, which is the number of columns of
 indentation for that line, or a list whose car is such a number.  The

=== modified file 'doc/lispref/vol1.texi'
--- a/doc/lispref/vol1.texi     2012-02-04 14:56:32 +0000
+++ b/doc/lispref/vol1.texi     2012-02-05 06:44:47 +0000
@@ -390,6 +390,7 @@
 * Forms::                   How various sorts of objects are evaluated.
 * Quoting::                 Avoiding evaluation (to put constants in
                               the program).
+* Backquote::               Easier construction of list structure.
 * Eval::                    How to invoke the Lisp interpreter explicitly.
 
 Kinds of Forms
@@ -501,7 +502,6 @@
 * Expansion::               How, when and why macros are expanded.
 * Compiling Macros::        How macros are expanded by the compiler.
 * Defining Macros::         How to write a macro definition.
-* Backquote::               Easier construction of list structure.
 * Problems with Macros::    Don't evaluate the macro arguments too many times.
                               Don't hide the user's variables.
 * Indenting Macros::        Specifying how to indent macro calls.

=== modified file 'doc/lispref/vol2.texi'
--- a/doc/lispref/vol2.texi     2012-02-04 14:56:32 +0000
+++ b/doc/lispref/vol2.texi     2012-02-05 06:44:47 +0000
@@ -389,6 +389,7 @@
 * Forms::                   How various sorts of objects are evaluated.
 * Quoting::                 Avoiding evaluation (to put constants in
                               the program).
+* Backquote::               Easier construction of list structure.
 * Eval::                    How to invoke the Lisp interpreter explicitly.
 
 Kinds of Forms
@@ -500,7 +501,6 @@
 * Expansion::               How, when and why macros are expanded.
 * Compiling Macros::        How macros are expanded by the compiler.
 * Defining Macros::         How to write a macro definition.
-* Backquote::               Easier construction of list structure.
 * Problems with Macros::    Don't evaluate the macro arguments too many times.
                               Don't hide the user's variables.
 * Indenting Macros::        Specifying how to indent macro calls.

=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2012-02-05 02:27:35 +0000
+++ b/lisp/ChangeLog    2012-02-05 06:44:47 +0000
@@ -1,3 +1,7 @@
+2012-02-05  Chong Yidong  <address@hidden>
+
+       * custom.el (defcustom): Doc fix.
+
 2012-02-05  Glenn Morris  <address@hidden>
 
        * font-lock.el (lisp-font-lock-keywords-2): Add with-wrapper-hook.

=== modified file 'lisp/custom.el'
--- a/lisp/custom.el    2012-01-29 10:01:20 +0000
+++ b/lisp/custom.el    2012-02-05 06:44:47 +0000
@@ -229,6 +229,9 @@
        VALUE should be a feature symbol.  If you save a value
        for this option, then when your `.emacs' file loads the value,
        it does (require VALUE) first.
+:set-after VARIABLES
+       Specifies that SYMBOL should be set after the list of variables
+        VARIABLES when both have been customized.
 :risky Set SYMBOL's `risky-local-variable' property to VALUE.
 :safe  Set SYMBOL's `safe-local-variable' property to VALUE.
         See Info node `(elisp) File Local Variables'.
@@ -300,9 +303,6 @@
         Load file FILE (a string) before displaying this customization
         item.  Loading is done with `load', and only if the file is
         not already loaded.
-:set-after VARIABLES
-       Specifies that SYMBOL should be set after the list of variables
-        VARIABLES when both have been customized.
 
 If SYMBOL has a local binding, then this form affects the local
 binding.  This is normally not what you want.  Thus, if you need


reply via email to

[Prev in Thread] Current Thread [Next in Thread]