diff options
Diffstat (limited to 'doc/lispref')
-rw-r--r-- | doc/lispref/control.texi | 9 | ||||
-rw-r--r-- | doc/lispref/display.texi | 26 | ||||
-rw-r--r-- | doc/lispref/edebug.texi | 10 | ||||
-rw-r--r-- | doc/lispref/elisp.texi | 1 | ||||
-rw-r--r-- | doc/lispref/frames.texi | 5 | ||||
-rw-r--r-- | doc/lispref/keymaps.texi | 2 | ||||
-rw-r--r-- | doc/lispref/modes.texi | 64 | ||||
-rw-r--r-- | doc/lispref/objects.texi | 2 | ||||
-rw-r--r-- | doc/lispref/processes.texi | 7 |
9 files changed, 72 insertions, 54 deletions
diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi index 3388102f694..22b665bc931 100644 --- a/doc/lispref/control.texi +++ b/doc/lispref/control.texi @@ -2012,7 +2012,8 @@ that can be handled). This special form establishes the error handlers @var{handlers} around the execution of @var{protected-form}. If @var{protected-form} executes without error, the value it returns becomes the value of the -@code{condition-case} form; in this case, the @code{condition-case} has +@code{condition-case} form (in the absence of a success handler; see below). +In this case, the @code{condition-case} has no effect. The @code{condition-case} form makes a difference when an error occurs during @var{protected-form}. @@ -2062,6 +2063,12 @@ error description. If @var{var} is @code{nil}, that means no variable is bound. Then the error symbol and associated data are not available to the handler. +@cindex success handler +As a special case, one of the @var{handlers} can be a list of the +form @code{(:success @var{body}@dots{})}, where @var{body} is executed +with @var{var} (if non-@code{nil}) bound to the return value of +@var{protected-form} when that expression terminates without error. + @cindex rethrow a signal Sometimes it is necessary to re-throw a signal caught by @code{condition-case}, for some outer-level handler to catch. Here's diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 68d7e827d26..228c940cc8b 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -1965,9 +1965,18 @@ Tables}). The width of a tab character is usually @code{tab-width} (@pxref{Usual Display}). @end defun -@defun string-width string +@defun string-width string &optional from to This function returns the width in columns of the string @var{string}, if it were displayed in the current buffer and the selected window. +Optional arguments @var{from} and @var{to} specify the substring of +@var{string} to consider, and are interpreted as in @code{substring} +(@pxref{Creating Strings}). + +The return value is an approximation: it only considers the values +returned by @code{char-width} for the constituent characters, always +takes a tab character as taking @code{tab-width} columns, ignores +display properties and fonts, etc. For these reasons, we recommend +using @code{window-text-pixel-size}, described below, instead. @end defun @defun truncate-string-to-width string width &optional start-column padding ellipsis ellipsis-text-property @@ -4752,6 +4761,7 @@ window on a minibuffer-less frame. @node Display Property @section The @code{display} Property @cindex display specification +@cindex display property @kindex display @r{(text property)} The @code{display} text property (or overlay property) is used to @@ -5289,6 +5299,16 @@ where @var{props} is a property list of alternating keyword symbols and values, including at least the pair @code{:type @var{type}} that specifies the image type. + Image descriptors which define image dimensions, @code{:width}, +@code{:height}, @code{:max-width} and @code{:max-height}, may take +either an integer, which represents the dimension in pixels, or a pair +@code{(@var{value} . em)}, where @var{value} is the dimension's +length in @dfn{ems}@footnote{In typography an em is a distance +equivalent to the height of the type. For example when using 12 point +type 1 em is equal to 12 points. Its use ensures distances and type +remain proportional.}. One em is equivalent to the height of the font +and @var{value} may be an integer or a float. + The following is a list of properties that are meaningful for all image types (there are also properties which are meaningful only for certain image types, as documented in the following subsections): @@ -5758,13 +5778,13 @@ properties: @item :foreground @var{foreground} @var{foreground}, if non-@code{nil}, should be a string specifying a color, which is used as the image's foreground color. If the value is -@code{nil}, it defaults to the faces's foreground color. +@code{nil}, it defaults to the current face's foreground color. @item :background @var{background} @var{background}, if non-@code{nil}, should be a string specifying a color, which is used as the image's background color if the image supports transparency. If the value is @code{nil}, it defaults to the -faces's background color. +current face's background color. @item :css @var{css} @var{css}, if non-@code{nil}, should be a string specifying the CSS to diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi index 8942f55affb..323130f2378 100644 --- a/doc/lispref/edebug.texi +++ b/doc/lispref/edebug.texi @@ -1510,11 +1510,11 @@ form specifications (that is, @code{form}, @code{body}, @code{def-form}, and must be in the form itself rather than at a higher level. Backtracking is also disabled after successfully matching a quoted -symbol or string specification, since this usually indicates a -recognized construct. But if you have a set of alternative constructs that -all begin with the same symbol, you can usually work around this -constraint by factoring the symbol out of the alternatives, e.g., -@code{["foo" &or [first case] [second case] ...]}. +symbol, string specification, or @code{&define} keyword, since this +usually indicates a recognized construct. But if you have a set of +alternative constructs that all begin with the same symbol, you can +usually work around this constraint by factoring the symbol out of the +alternatives, e.g., @code{["foo" &or [first case] [second case] ...]}. Most needs are satisfied by these two ways that backtracking is automatically disabled, but occasionally it is useful to explicitly diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index dade8555187..be0c835b035 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi @@ -531,6 +531,7 @@ Scoping Rules for Variable Bindings * Dynamic Binding Tips:: Avoiding problems with dynamic binding. * Lexical Binding:: A different type of local variable binding. * Using Lexical Binding:: How to enable lexical binding. +* Converting to Lexical Binding:: Convert existing code to lexical binding. Buffer-Local Variables diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index cd2ff8f3b31..a9d20c543da 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi @@ -2628,7 +2628,7 @@ When Emacs gets one of these commands, it generates a @code{delete-frame} event, whose normal definition is a command that calls the function @code{delete-frame}. @xref{Misc Events}. -@deffn Command delete-other-frames &optional frame +@deffn Command delete-other-frames &optional frame iconify This command deletes all frames on @var{frame}'s terminal, except @var{frame}. If @var{frame} uses another frame's minibuffer, that minibuffer frame is left untouched. The argument @var{frame} must @@ -2639,6 +2639,9 @@ this command works by calling @code{delete-frame} with @var{force} This function does not delete any of @var{frame}'s child frames (@pxref{Child Frames}). If @var{frame} is a child frame, it deletes @var{frame}'s siblings only. + +With the prefix argument @var{iconify}, the frames are iconified rather +than deleted. @end deffn diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi index dabf985018f..cbc94d8c1b3 100644 --- a/doc/lispref/keymaps.texi +++ b/doc/lispref/keymaps.texi @@ -1686,7 +1686,7 @@ presence of such a binding can still prevent translation from taking place. For example, let us return to our VT100 example above and add a binding for @kbd{C-c @key{ESC}} to the global map; now when the user hits @kbd{C-c @key{PF1}} Emacs will fail to decode @kbd{C-c @key{ESC} O P} into @kbd{C-c -@key{PF1}} because it will stop reading keys right after @kbd{C-x @key{ESC}}, +@key{PF1}} because it will stop reading keys right after @kbd{C-c @key{ESC}}, leaving @kbd{O P} for later. This is in case the user really hit @kbd{C-c @key{ESC}}, in which case Emacs should not sit there waiting for the next key to decide whether the user really pressed @kbd{@key{ESC}} or @kbd{@key{PF1}}. diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index 6cf4dd21c19..88f2f14c092 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi @@ -1660,7 +1660,7 @@ reserved for users. @xref{Key Binding Conventions}. The macro @code{define-minor-mode} offers a convenient way of implementing a mode in one self-contained definition. -@defmac define-minor-mode mode doc [init-value [lighter [keymap]]] keyword-args@dots{} body@dots{} +@defmac define-minor-mode mode doc keyword-args@dots{} body@dots{} This macro defines a new minor mode whose name is @var{mode} (a symbol). It defines a command named @var{mode} to toggle the minor mode, with @var{doc} as its documentation string. @@ -1675,41 +1675,12 @@ If @var{doc} is @code{nil}, the macro supplies a default documentation string explaining the above. By default, it also defines a variable named @var{mode}, which is set to -@code{t} or @code{nil} by enabling or disabling the mode. The variable -is initialized to @var{init-value}. Except in unusual circumstances -(see below), this value must be @code{nil}. +@code{t} or @code{nil} by enabling or disabling the mode. -The string @var{lighter} says what to display in the mode line -when the mode is enabled; if it is @code{nil}, the mode is not displayed -in the mode line. - -The optional argument @var{keymap} specifies the keymap for the minor -mode. If non-@code{nil}, it should be a variable name (whose value is -a keymap), a keymap, or an alist of the form - -@example -(@var{key-sequence} . @var{definition}) -@end example - -@noindent -where each @var{key-sequence} and @var{definition} are arguments -suitable for passing to @code{define-key} (@pxref{Changing Key -Bindings}). If @var{keymap} is a keymap or an alist, this also -defines the variable @code{@var{mode}-map}. - -The above three arguments @var{init-value}, @var{lighter}, and -@var{keymap} can be (partially) omitted when @var{keyword-args} are -used. The @var{keyword-args} consist of keywords followed by +The @var{keyword-args} consist of keywords followed by corresponding values. A few keywords have special meanings: @table @code -@item :group @var{group} -Custom group name to use in all generated @code{defcustom} forms. -Defaults to @var{mode} without the possible trailing @samp{-mode}. -@strong{Warning:} don't use this default group name unless you have -written a @code{defgroup} to define that group properly. @xref{Group -Definitions}. - @item :global @var{global} If non-@code{nil}, this specifies that the minor mode should be global rather than buffer-local. It defaults to @code{nil}. @@ -1719,19 +1690,34 @@ One of the effects of making a minor mode global is that the through the Customize interface turns the mode on and off, and its value can be saved for future Emacs sessions (@pxref{Saving Customizations,,, emacs, The GNU Emacs Manual}. For the saved -variable to work, you should ensure that the @code{define-minor-mode} -form is evaluated each time Emacs starts; for packages that are not -part of Emacs, the easiest way to do this is to specify a -@code{:require} keyword. +variable to work, you should ensure that the minor mode function +is available each time Emacs starts; usually this is done by +marking the @code{define-minor-mode} form as autoloaded. @item :init-value @var{init-value} -This is equivalent to specifying @var{init-value} positionally. +This is the value to which the @var{mode} variable is initialized. +Except in unusual circumstances (see below), this value must be +@code{nil}. @item :lighter @var{lighter} -This is equivalent to specifying @var{lighter} positionally. +The string @var{lighter} says what to display in the mode line +when the mode is enabled; if it is @code{nil}, the mode is not displayed +in the mode line. @item :keymap @var{keymap} -This is equivalent to specifying @var{keymap} positionally. +The optional argument @var{keymap} specifies the keymap for the minor +mode. If non-@code{nil}, it should be a variable name (whose value is +a keymap), a keymap, or an alist of the form + +@example +(@var{key-sequence} . @var{definition}) +@end example + +@noindent +where each @var{key-sequence} and @var{definition} are arguments +suitable for passing to @code{define-key} (@pxref{Changing Key +Bindings}). If @var{keymap} is a keymap or an alist, this also +defines the variable @code{@var{mode}-map}. @item :variable @var{place} This replaces the default variable @var{mode}, used to store the state diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi index 0d0caebd1f7..d8091f1b4b1 100644 --- a/doc/lispref/objects.texi +++ b/doc/lispref/objects.texi @@ -2411,7 +2411,7 @@ that is evaluated. For example: @noindent Although the list @code{(0.5)} was mutable when it was created, it should not -have been changed via @code{setcar} because it given to @code{eval}. The +have been changed via @code{setcar} because it was given to @code{eval}. The reverse does not occur: an object that should not be changed never becomes mutable afterwards. diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi index b3246494a20..0dfdac71479 100644 --- a/doc/lispref/processes.texi +++ b/doc/lispref/processes.texi @@ -1325,7 +1325,7 @@ the numeric ID of the foreground process group of @var{process}; it returns @code{nil} if Emacs can be certain that this is not so. The value is @code{t} if Emacs cannot tell whether this is true. This function signals an error if @var{process} is a network, serial, or -pipe connection, or is the subprocess is not active. +pipe connection, or if the subprocess is not active. @end defun @node Signals to Processes @@ -3410,8 +3410,9 @@ Unsigned integer in little endian order, with @var{bitlen} bits. @item str @var{len} String of bytes of length @var{len}. -@item strz @var{len} -Zero-terminated string of bytes, in a fixed-size field with length @var{len}. +@item strz &optional @var{len} +Zero-terminated string of bytes, can be of arbitrary length or in a fixed-size +field with length @var{len}. @item vec @var{len} [@var{type}] Vector of @var{len} elements. The type of the elements is given by |