1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-25 10:47:00 +00:00

Merge from emacs-23; up to 2010-06-16T23:27:20Z!jay.p.belanger@gmail.com.

This commit is contained in:
Glenn Morris 2011-07-05 19:42:10 -07:00
commit 322b7dab59
8 changed files with 128 additions and 119 deletions

View File

@ -1,3 +1,13 @@
2011-07-06 Chong Yidong <cyd@stupidchicken.com>
* customize.texi (Composite Types): Move alist and plist to here
from Simple Types (Bug#7545).
* elisp.texi (Top): Update menu description.
* display.texi (Face Attributes): Document negative line widths
(Bug#6113).
2011-07-03 Tobias C. Rittweiler <tcr@freebits.de> (tiny change)
* searching.texi (Match Data): Note that match data can be

View File

@ -513,8 +513,7 @@ equivalent to @code{(string)}.
Introduction, widget, The Emacs Widget Library}, for details.
@menu
* Simple Types:: Simple customization types: sexp, integer, number,
string, file, directory, alist.
* Simple Types:: Simple customization types: sexp, integer, etc.
* Composite Types:: Build new types from other types or data.
* Splicing into Lists:: Splice elements into list with @code{:inline}.
* Type Keywords:: Keyword-argument pairs in a customization type.
@ -577,22 +576,103 @@ You can use the @code{:options} keyword in a hook variable's
@code{defcustom} to specify a list of functions recommended for use in
the hook; see @ref{Variable Definitions}.
@item alist
The value must be a list of cons-cells, the @sc{car} of each cell
representing a key, and the @sc{cdr} of the same cell representing an
associated value. The user can add and delete key/value pairs, and
edit both the key and the value of each pair.
@item symbol
The value must be a symbol. It appears in the customization buffer as
the name of the symbol.
You can specify the key and value types like this:
@item function
The value must be either a lambda expression or a function name. When
it is a function name, you can do completion with @kbd{M-@key{TAB}}.
@smallexample
(alist :key-type @var{key-type} :value-type @var{value-type})
@end smallexample
@item variable
The value must be a variable name, and you can do completion with
@kbd{M-@key{TAB}}.
@item face
The value must be a symbol which is a face name, and you can do
completion with @kbd{M-@key{TAB}}.
@item boolean
The value is boolean---either @code{nil} or @code{t}. Note that by
using @code{choice} and @code{const} together (see the next section),
you can specify that the value must be @code{nil} or @code{t}, but also
specify the text to describe each value in a way that fits the specific
meaning of the alternative.
@item coding-system
The value must be a coding-system name, and you can do completion with
@kbd{M-@key{TAB}}.
@item color
The value must be a valid color name, and you can do completion with
@kbd{M-@key{TAB}}. A sample is provided.
@end table
@node Composite Types
@subsection Composite Types
@cindex composite types (customization)
When none of the simple types is appropriate, you can use composite
types, which build new types from other types or from specified data.
The specified types or data are called the @dfn{arguments} of the
composite type. The composite type normally looks like this:
@example
(@var{constructor} @var{arguments}@dots{})
@end example
@noindent
where @var{key-type} and @var{value-type} are customization type
specifications. The default key type is @code{sexp}, and the default
value type is @code{sexp}.
but you can also add keyword-value pairs before the arguments, like
this:
@example
(@var{constructor} @r{@{}@var{keyword} @var{value}@r{@}}@dots{} @var{arguments}@dots{})
@end example
Here is a table of constructors and how to use them to write
composite types:
@table @code
@item (cons @var{car-type} @var{cdr-type})
The value must be a cons cell, its @sc{car} must fit @var{car-type}, and
its @sc{cdr} must fit @var{cdr-type}. For example, @code{(cons string
symbol)} is a customization type which matches values such as
@code{("foo" . foo)}.
In the customization buffer, the @sc{car} and the @sc{cdr} are
displayed and edited separately, each according to the type
that you specify for it.
@item (list @var{element-types}@dots{})
The value must be a list with exactly as many elements as the
@var{element-types} given; and each element must fit the
corresponding @var{element-type}.
For example, @code{(list integer string function)} describes a list of
three elements; the first element must be an integer, the second a
string, and the third a function.
In the customization buffer, each element is displayed and edited
separately, according to the type specified for it.
@item (group @var{element-types}@dots{})
This works like @code{list} except for the formatting
of text in the Custom buffer. @code{list} labels each
element value with its tag; @code{group} does not.
@item (vector @var{element-types}@dots{})
Like @code{list} except that the value must be a vector instead of a
list. The elements work the same as in @code{list}.
@item (alist :key-type @var{key-type} :value-type @var{value-type})
The value must be a list of cons-cells, the @sc{car} of each cell
representing a key of customization type @var{key-type}, and the
@sc{cdr} of the same cell representing a value of customization type
@var{value-type}. The user can add and delete key/value pairs, and
edit both the key and the value of each pair.
If omitted, @var{key-type} and @var{value-type} default to
@code{sexp}.
The user can add any key matching the specified key type, but you can
give some keys a preferential treatment by specifying them with the
@ -687,105 +767,11 @@ and the VALUE is a list of that person's pets."
:type '(alist :value-type (repeat string)))
@end smallexample
@item plist
The @code{plist} custom type is similar to the @code{alist} (see above),
except that the information is stored as a property list, i.e. a list of
this form:
@smallexample
(@var{key} @var{value} @var{key} @var{value} @var{key} @var{value} @dots{})
@end smallexample
The default @code{:key-type} for @code{plist} is @code{symbol},
rather than @code{sexp}.
@item symbol
The value must be a symbol. It appears in the customization buffer as
the name of the symbol.
@item function
The value must be either a lambda expression or a function name. When
it is a function name, you can do completion with @kbd{M-@key{TAB}}.
@item variable
The value must be a variable name, and you can do completion with
@kbd{M-@key{TAB}}.
@item face
The value must be a symbol which is a face name, and you can do
completion with @kbd{M-@key{TAB}}.
@item boolean
The value is boolean---either @code{nil} or @code{t}. Note that by
using @code{choice} and @code{const} together (see the next section),
you can specify that the value must be @code{nil} or @code{t}, but also
specify the text to describe each value in a way that fits the specific
meaning of the alternative.
@item coding-system
The value must be a coding-system name, and you can do completion with
@kbd{M-@key{TAB}}.
@item color
The value must be a valid color name, and you can do completion with
@kbd{M-@key{TAB}}. A sample is provided.
@end table
@node Composite Types
@subsection Composite Types
@cindex composite types (customization)
When none of the simple types is appropriate, you can use composite
types, which build new types from other types or from specified data.
The specified types or data are called the @dfn{arguments} of the
composite type. The composite type normally looks like this:
@example
(@var{constructor} @var{arguments}@dots{})
@end example
@noindent
but you can also add keyword-value pairs before the arguments, like
this:
@example
(@var{constructor} @r{@{}@var{keyword} @var{value}@r{@}}@dots{} @var{arguments}@dots{})
@end example
Here is a table of constructors and how to use them to write
composite types:
@table @code
@item (cons @var{car-type} @var{cdr-type})
The value must be a cons cell, its @sc{car} must fit @var{car-type}, and
its @sc{cdr} must fit @var{cdr-type}. For example, @code{(cons string
symbol)} is a customization type which matches values such as
@code{("foo" . foo)}.
In the customization buffer, the @sc{car} and the @sc{cdr} are
displayed and edited separately, each according to the type
that you specify for it.
@item (list @var{element-types}@dots{})
The value must be a list with exactly as many elements as the
@var{element-types} given; and each element must fit the
corresponding @var{element-type}.
For example, @code{(list integer string function)} describes a list of
three elements; the first element must be an integer, the second a
string, and the third a function.
In the customization buffer, each element is displayed and edited
separately, according to the type specified for it.
@item (group @var{element-types}@dots{})
This works like @code{list} except for the formatting
of text in the Custom buffer. @code{list} labels each
element value with its tag; @code{group} does not.
@item (vector @var{element-types}@dots{})
Like @code{list} except that the value must be a vector instead of a
list. The elements work the same as in @code{list}.
@item (plist :key-type @var{key-type} :value-type @var{value-type})
This customization type is similar to @code{alist} (see above), except
that (i) the information is stored as a property list,
(@pxref{Property Lists}), and (ii) @var{key-type}, if omitted,
defaults to @code{symbol} rather than @code{sexp}.
@item (choice @var{alternative-types}@dots{})
The value must fit at least one of @var{alternative-types}.

View File

@ -2092,7 +2092,10 @@ Draw a box with lines of width 1, in color @var{color}.
@item @code{(:line-width @var{width} :color @var{color} :style @var{style})}
This way you can explicitly specify all aspects of the box. The value
@var{width} specifies the width of the lines to draw; it defaults to 1.
@var{width} specifies the width of the lines to draw; it defaults to
1. A negative width @var{-n} means to draw a line of width @var{n}
that occupies the space of the underlying text, thus avoiding any
increase in the character height or width.
The value @var{color} specifies the color to draw with. The default is
the foreground color of the face for simple boxes, and the background

View File

@ -508,8 +508,7 @@ Writing Customization Definitions
Customization Types
* Simple Types:: Simple customization types: sexp, integer, number,
string, file, directory, alist.
* Simple Types:: Simple customization types: sexp, integer, etc.
* Composite Types:: Build new types from other types or data.
* Splicing into Lists:: Splice elements into list with @code{:inline}.
* Type Keywords:: Keyword-argument pairs in a customization type.

View File

@ -1,3 +1,13 @@
2011-07-06 Markus Heiser <markus.heiser@darmarit.de> (tiny change)
* progmodes/gud.el (gud-pdb-marker-regexp): Accept \r char (Bug#5653).
2011-07-06 Chong Yidong <cyd@stupidchicken.com>
* window.el (special-display-popup-frame): Doc fix (Bug#8853).
* info.el (Info-directory-toc-nodes): Minor doc fix (Bug#8833).
2011-07-05 Chong Yidong <cyd@stupidchicken.com>
* button.el (button): Inherit from link face. Suggested by Dan

View File

@ -2092,7 +2092,7 @@ If SAME-FILE is non-nil, do not move to a different Info file."
))
(defun Info-directory-toc-nodes (filename)
"Directory-specific implementation of `Info-directory-toc-nodes'."
"Directory-specific implementation of `Info-toc-nodes'."
`(,filename
("Top" nil nil nil)))

View File

@ -1581,7 +1581,8 @@ and source-file directory for your debugger."
;; Last group is for return value, e.g. "> test.py(2)foo()->None"
;; Either file or function name may be omitted: "> <string>(0)?()"
(defvar gud-pdb-marker-regexp
"^> \\([-a-zA-Z0-9_/.:\\]*\\|<string>\\)(\\([0-9]+\\))\\([a-zA-Z0-9_]*\\|\\?\\|<module>\\)()\\(->[^\n]*\\)?\n")
"^> \\([-a-zA-Z0-9_/.:\\]*\\|<string>\\)(\\([0-9]+\\))\\([a-zA-Z0-9_]*\\|\\?\\|<module>\\)()\\(->[^\n\r]*\\)?[\n\r]")
(defvar gud-pdb-marker-regexp-file-group 1)
(defvar gud-pdb-marker-regexp-line-group 2)
(defvar gud-pdb-marker-regexp-fnname-group 3)

View File

@ -6108,7 +6108,7 @@ BUFFER in a window on the selected frame.
If ARGS is a list whose car is a symbol, use (car ARGS) as a
function to do the work. Pass it BUFFER as first argument,
and (cdr ARGS) as second."
and (cdr ARGS) as the rest of the arguments."
(if (and args (symbolp (car args)))
(apply (car args) buffer (cdr args))
(let ((window (get-buffer-window buffer 0)))