Now on revision 107496. ------------------------------------------------------------ revno: 107496 committer: Chong Yidong branch nick: trunk timestamp: Sun 2012-03-04 14:55:06 +0800 message: * cus-start.el: Make x-select-enable-clipboard-manager customizable. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-03-04 02:45:04 +0000 +++ lisp/ChangeLog 2012-03-04 06:55:06 +0000 @@ -1,3 +1,8 @@ +2012-03-04 Chong Yidong + + * cus-start.el: Make x-select-enable-clipboard-manager + customizable. + 2012-03-04 Glenn Morris * abbrev.el (copy-abbrev-table, abbrev-table-p) === modified file 'lisp/cus-start.el' --- lisp/cus-start.el 2012-02-07 03:31:29 +0000 +++ lisp/cus-start.el 2012-03-04 06:55:06 +0000 @@ -460,6 +460,8 @@ (x-use-underline-position-properties display boolean "22.1") (x-underline-at-descent-line display boolean "22.1") (x-stretch-cursor display boolean "21.1") + ;; xselect.c + (x-select-enable-clipboard-manager killing boolean "24.1") ;; xsettings.c (font-use-system-font font-selection boolean "23.2"))) this symbol group type standard version native-p rest prop propval ------------------------------------------------------------ revno: 107495 committer: Chong Yidong branch nick: trunk timestamp: Sun 2012-03-04 14:50:18 +0800 message: Update Frames chapter of Lisp manager. Document clipboard manager. * doc/emacs/killing.texi (Clipboard): Document clipboard manager. * doc/lispref/windows.texi (Basic Windows, Coordinates and Windows) (Coordinates and Windows): * display.texi (Refresh Screen, Line Height, Face Attributes) (Overlay Arrow, Beeping, Glyphless Chars): Likewise. * doc/lispref/frames.texi (Frames): Remove little-used "terminal frame" and "window frame" terminology. (Frame Parameters, Font and Color Parameters, Initial Parameters) (Size and Position, Visibility of Frames): Callers changed. (Frames): Clarify which terminals in framep are graphical. (Initial Parameters): --geometry is not the only option which adds to initial-frame-alist. (Position Parameters): Note that icon-left and icon-top are for old window managers only. (Size Parameters): Sizes are in characters even on graphical displays. (Management Parameters): Note that window-id and outer-window-id can't really be changed, and that auto-raise isn't always obeyed. (Cursor Parameters): Document cursor-type explicitly. (Size and Position): The aliases set-screen-height and set-screen-width have been deleted. (Visibility of Frames): Mention "minimization". * doc/lispref/os.texi (Startup Summary): Minor clarifications. (Startup Summary, Suspending Emacs): Standardize on "text terminal" terminology. diff: === modified file 'admin/FOR-RELEASE' --- admin/FOR-RELEASE 2012-03-04 02:45:04 +0000 +++ admin/FOR-RELEASE 2012-03-04 06:50:18 +0000 @@ -197,7 +197,7 @@ errors.texi rgm eval.texi cyd files.texi cyd -frames.texi +frames.texi cyd functions.texi cyd hash.texi cyd help.texi cyd === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-02-29 08:31:30 +0000 +++ doc/emacs/ChangeLog 2012-03-04 06:50:18 +0000 @@ -1,3 +1,7 @@ +2012-03-04 Chong Yidong + + * killing.texi (Clipboard): Document clipboard manager. + 2012-02-29 Glenn Morris * ack.texi (Acknowledgments): Use @Tex{} in more places. === modified file 'doc/emacs/killing.texi' --- doc/emacs/killing.texi 2012-01-19 07:21:25 +0000 +++ doc/emacs/killing.texi 2012-03-04 06:50:18 +0000 @@ -490,6 +490,17 @@ To prevent kill and yank commands from accessing the clipboard, change the variable @code{x-select-enable-clipboard} to @code{nil}. +@cindex clipboard manager +@vindex x-select-enable-clipboard-manager + Many X desktop environments support a feature called the +@dfn{clipboard manager}. If you exit Emacs while it is the current +``owner'' of the clipboard data, and there is a clipboard manager +running, Emacs transfers the clipboard data to the clipboard manager +so that it is not lost. In some circumstances, this may cause a delay +when exiting Emacs; if you wish to prevent Emacs from transferring +data to the clipboard manager, change the variable +@code{x-select-enable-clipboard-manager} to @code{nil}. + @vindex x-select-enable-primary @findex clipboard-kill-region @findex clipboard-kill-ring-save === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-03-04 02:45:04 +0000 +++ doc/lispref/ChangeLog 2012-03-04 06:50:18 +0000 @@ -1,3 +1,32 @@ +2012-03-04 Chong Yidong + + * frames.texi (Frames): Remove little-used "terminal frame" and + "window frame" terminology. + (Frame Parameters, Font and Color Parameters, Initial Parameters) + (Size and Position, Visibility of Frames): Callers changed. + (Frames): Clarify which terminals in framep are graphical. + (Initial Parameters): --geometry is not the only option which adds + to initial-frame-alist. + (Position Parameters): Note that icon-left and icon-top are for + old window managers only. + (Size Parameters): Sizes are in characters even on graphical + displays. + (Management Parameters): Note that window-id and outer-window-id + can't really be changed, and that auto-raise isn't always obeyed. + (Cursor Parameters): Document cursor-type explicitly. + (Size and Position): The aliases set-screen-height and + set-screen-width have been deleted. + (Visibility of Frames): Mention "minimization". + + * os.texi (Startup Summary): Minor clarifications. + (Startup Summary, Suspending Emacs): Standardize on "text + terminal" terminology. + + * windows.texi (Basic Windows, Coordinates and Windows) + (Coordinates and Windows): + * display.texi (Refresh Screen, Line Height, Face Attributes) + (Overlay Arrow, Beeping, Glyphless Chars): Likewise. + 2012-03-04 Glenn Morris * abbrevs.texi: Small copyedits throughout. === modified file 'doc/lispref/anti.texi' --- doc/lispref/anti.texi 2012-02-28 08:17:21 +0000 +++ doc/lispref/anti.texi 2012-03-04 06:50:18 +0000 @@ -93,9 +93,9 @@ @item Display terminals are no longer represented using a ``terminal'' data type; this is not necessary, because we have removed the ability to -display on graphical and text-only terminals simultaneously. For the -same reason, the @code{window-system} variable is no longer -frame-local, and the @code{window-system} function has been removed. +display on graphical and text terminals simultaneously. For the same +reason, the @code{window-system} variable is no longer frame-local, +and the @code{window-system} function has been removed. @item The functions @code{list-system-processes} and === modified file 'doc/lispref/display.texi' --- doc/lispref/display.texi 2012-02-28 08:17:21 +0000 +++ doc/lispref/display.texi 2012-03-04 06:50:18 +0000 @@ -62,7 +62,7 @@ immediately, but the requested redisplay does happen eventually---after all the input has been processed. - On text-only terminals, suspending and resuming Emacs normally also + On text terminals, suspending and resuming Emacs normally also refreshes the screen. Some terminal emulators record separate contents for display-oriented programs such as Emacs and for ordinary sequential display. If you are using such a terminal, you might want @@ -1809,7 +1809,7 @@ numeric height value specifies the line spacing, rather than the line height. - On text-only terminals, the line spacing cannot be altered. + On text terminals, the line spacing cannot be altered. @node Faces @section Faces @@ -2058,7 +2058,7 @@ Font weight---one of the symbols (from densest to faintest) @code{ultra-bold}, @code{extra-bold}, @code{bold}, @code{semi-bold}, @code{normal}, @code{semi-light}, @code{light}, @code{extra-light}, or -@code{ultra-light}. On text-only terminals that support +@code{ultra-light}. On text terminals which support variable-brightness text, any weight greater than normal is displayed as extra bright, and any weight less than normal is displayed as half-bright. @@ -2066,8 +2066,8 @@ @item :slant Font slant---one of the symbols @code{italic}, @code{oblique}, @code{normal}, @code{reverse-italic}, or @code{reverse-oblique}. On -text-only terminals that support variable-brightness text, slanted -text is displayed as half-bright. +text terminals that support variable-brightness text, slanted text is +displayed as half-bright. @item :foreground Foreground color, a string. The value can be a system-defined color @@ -3649,9 +3649,9 @@ Each variable on this list can have properties @code{overlay-arrow-string} and @code{overlay-arrow-bitmap} that -specify an overlay arrow string (for text-only terminals) or fringe -bitmap (for graphical terminals) to display at the corresponding -overlay arrow position. If either property is not set, the default +specify an overlay arrow string (for text terminals) or fringe bitmap +(for graphical terminals) to display at the corresponding overlay +arrow position. If either property is not set, the default @code{overlay-arrow-string} or @code{overlay-arrow} fringe indicator is used. @@ -6043,8 +6043,8 @@ @defopt visible-bell This variable determines whether Emacs should flash the screen to -represent a bell. Non-@code{nil} means yes, @code{nil} means no. This -is effective on graphical displays, and on text-only terminals +represent a bell. Non-@code{nil} means yes, @code{nil} means no. +This is effective on graphical displays, and on text terminals provided the terminal's Termcap entry defines the visible bell capability (@samp{vb}). @end defopt @@ -6340,7 +6340,7 @@ they appear in a buffer, but in some special way (e.g. as a box containing a hexadecimal code). These include characters that cannot be displayed with any available font (on a graphical display), or that -cannot be encoded by the terminal's coding system (on a text-only +cannot be encoded by the terminal's coding system (on a text terminal). Specific characters can also be defined to be glyphless. @defvar glyphless-char-display @@ -6355,7 +6355,7 @@ @item @code{thin-space} Display a thin space, 1-pixel wide on graphical displays, or -1-character wide on text-only terminals. +1-character wide on text terminals. @item @code{empty-box} Display an empty box. @@ -6374,7 +6374,7 @@ An entry can also be a cons cell @code{(@var{graphical} . @var{text})}, where @var{graphical} and @var{text} are the display -methods on graphical displays and text-only terminals respectively. +methods on graphical displays and text terminals respectively. The char-table has one extra slot, which determines how to display any character that cannot be displayed with any available font, or cannot === modified file 'doc/lispref/elisp.texi' --- doc/lispref/elisp.texi 2012-03-04 02:45:04 +0000 +++ doc/lispref/elisp.texi 2012-03-04 06:50:18 +0000 @@ -972,7 +972,7 @@ * Window System Selections::Transferring text to and from other X clients. * Drag and Drop:: Internals of Drag-and-Drop implementation. * Color Names:: Getting the definitions of color names. -* Text Terminal Colors:: Defining colors for text-only terminals. +* Text Terminal Colors:: Defining colors for text terminals. * Resources:: Getting resource values from the server. * Display Feature Testing:: Determining the features of a terminal. === modified file 'doc/lispref/frames.texi' --- doc/lispref/frames.texi 2012-02-28 04:01:56 +0000 +++ doc/lispref/frames.texi 2012-03-04 06:50:18 +0000 @@ -23,26 +23,25 @@ more Emacs frames. In Emacs Lisp, a @dfn{terminal object} is a Lisp object that represents a terminal. @xref{Terminal Type}. -@cindex terminal frame -@cindex window frame - There are two classes of terminals: text-only terminals and -graphical terminals. Text-only terminals are non-graphics-capable -display devices, including ``terminal emulators'' such as xterm. On -text-only terminals, each frame occupies the entire terminal screen; -although you can create additional frames and switch between them, -only one frame can be shown at any given time. We refer to frames on -text-only terminals as @dfn{terminal frames}. Graphical terminals, on -the other hand, are graphics-capable windowing systems, such as the X -Window System. On a graphical terminal, Emacs can display multiple -frames simultaneously. We refer to such frames as @dfn{window -frames}. +@cindex text terminal +@cindex graphical terminal +@cindex graphical display + There are two classes of terminals: @dfn{text terminals} and +@dfn{graphical terminals}. Text terminals are non-graphics-capable +displays, including @command{xterm} and other terminal emulators. On +a text terminal, each Emacs frame occupies the terminal's entire +screen; although you can create additional frames and switch between +them, the terminal only shows one frame at a time. Graphical +terminals, on the other hand, are managed by graphical display systems +such as the X Window System, which allow Emacs to show multiple frames +simultaneously on the same display. On GNU and Unix systems, you can create additional frames on any available terminal, within a single Emacs session, regardless of -whether Emacs was started on a text-only or graphical terminal. Emacs -can display on both graphical and text-only terminals simultaneously. -This comes in handy, for instance, when you connect to the same -session from several remote locations. @xref{Multiple Terminals}. +whether Emacs was started on a text or graphical terminal. Emacs can +display on both graphical and text terminals simultaneously. This +comes in handy, for instance, when you connect to the same session +from several remote locations. @xref{Multiple Terminals}. @defun framep object This predicate returns a non-@code{nil} value if @var{object} is a @@ -50,14 +49,15 @@ kind of display the frame uses: @table @code +@item t +The frame is displayed on a text terminal. @item x -The frame is displayed in an X window. -@item t -A terminal frame on a character display. +The frame is displayed on an X graphical terminal. @item w32 -The frame is displayed on MS-Windows 9X/NT. +The frame is displayed on a MS-Windows graphical terminal. @item ns -The frame is displayed on a GNUstep or Macintosh Cocoa display. +The frame is displayed on a GNUstep or Macintosh Cocoa graphical +terminal. @item pc The frame is displayed on an MS-DOS terminal. @end table @@ -71,10 +71,10 @@ @defun terminal-live-p object This predicate returns a non-@code{nil} value if @var{object} is a -terminal that is alive (i.e.@: was not deleted), and @code{nil} -otherwise. For live terminals, the return value indicates what kind -of frames are displayed on that terminal; the list of possible values -is the same as for @code{framep} above. +terminal that is live (i.e.@: not deleted), and @code{nil} otherwise. +For live terminals, the return value indicates what kind of frames are +displayed on that terminal; the list of possible values is the same as +for @code{framep} above. @end defun @menu @@ -99,7 +99,7 @@ * Window System Selections:: Transferring text to and from other X clients. * Drag and Drop:: Internals of Drag-and-Drop implementation. * Color Names:: Getting the definitions of color names. -* Text Terminal Colors:: Defining colors for text-only terminals. +* Text Terminal Colors:: Defining colors for text terminals. * Resources:: Getting resource values from the server. * Display Feature Testing:: Determining the features of a terminal. @end menu @@ -118,7 +118,7 @@ @code{terminal} parameter in @var{alist}, the new frame is created on that terminal. Otherwise, if you specify the @code{window-system} frame parameter in @var{alist}, that determines whether the frame -should be displayed on a text-only or graphical terminal. +should be displayed on a text terminal or a graphical terminal. @xref{Window Systems}. If neither is specified, the new frame is created in the same terminal as the selected frame. @@ -163,15 +163,15 @@ @cindex multiple X displays @cindex displays, multiple - Emacs represents each terminal, whether graphical or text-only, as a -@dfn{terminal object} data type (@pxref{Terminal Type}). On GNU and -Unix systems, Emacs can use multiple terminals simultaneously in each -session. On other systems, it can only use a single terminal. Each -terminal object has the following attributes: + Emacs represents each terminal as a @dfn{terminal object} data type +(@pxref{Terminal Type}). On GNU and Unix systems, Emacs can use +multiple terminals simultaneously in each session. On other systems, +it can only use a single terminal. Each terminal object has the +following attributes: @itemize @bullet @item -The name of the device used by the terminal (e.g., @samp{:0.0} or +The name of the device used by the terminal (e.g.@: @samp{:0.0} or @file{/dev/tty}). @item @@ -180,7 +180,7 @@ @item The kind of display associated with the terminal. This is the symbol -returned by the function @code{terminal-live-p} (i.e., @code{x}, +returned by the function @code{terminal-live-p} (i.e.@: @code{x}, @code{t}, @code{w32}, @code{ns}, or @code{pc}). @xref{Frames}. @item @@ -189,7 +189,7 @@ There is no primitive for creating terminal objects. Emacs creates them as needed, such as when you call @code{make-frame-on-display} -(which is described below). +(described below). @defun terminal-name &optional terminal This function returns the file name of the device used by @@ -199,7 +199,7 @@ @end defun @defun terminal-list -This function returns a list of all terminal objects currently in use. +This function returns a list of all live terminal objects. @end defun @defun get-device-terminal device @@ -248,15 +248,15 @@ On GNU and Unix systems, each X display is a separate graphical terminal. When Emacs is started from within the X window system, it -uses the X display chosen with the @code{DISPLAY} environment -variable, or with the @samp{--display} option. @xref{Initial -Options,,, emacs, The GNU Emacs Manual}. Emacs can connect to other X -displays via the command @code{make-frame-on-display}. Each X display -has its own selected frame and its own minibuffer windows; however, -only one of those frames is ``@emph{the} selected frame'' at any given -moment (@pxref{Input Focus}). Emacs can even connect to other -text-only terminals, by interacting with the @command{emacsclient} -program. @xref{Emacs Server,,, emacs, The GNU Emacs Manual}. +uses the X display specified by the @env{DISPLAY} environment +variable, or by the @samp{--display} option (@pxref{Initial Options,,, +emacs, The GNU Emacs Manual}). Emacs can connect to other X displays +via the command @code{make-frame-on-display}. Each X display has its +own selected frame and its own minibuffer windows; however, only one +of those frames is ``@emph{the} selected frame'' at any given moment +(@pxref{Input Focus}). Emacs can even connect to other text +terminals, by interacting with the @command{emacsclient} program. +@xref{Emacs Server,,, emacs, The GNU Emacs Manual}. A single X server can handle more than one display. Each X display has a three-part name, @samp{@var{host}:@var{server}.@var{screen}}. @@ -267,8 +267,8 @@ single keyboard. On some ``multi-monitor'' setups, a single X display outputs to more -than one monitor. Currently, there is no way for Emacs to distinguish -between the different physical monitors. +than one physical monitor. Currently, there is no way for Emacs to +distinguish between the different physical monitors. @deffn Command make-frame-on-display display &optional parameters This function creates and returns a new frame on @var{display}, taking @@ -277,8 +277,8 @@ Before creating the frame, this function ensures that Emacs is ``set up'' to display graphics. For instance, if Emacs has not processed X -resources (e.g., if it was started on a text-only terminal), it does -so at this time. In all other respects, this function behaves like +resources (e.g.@: if it was started on a text terminal), it does so at +this time. In all other respects, this function behaves like @code{make-frame} (@pxref{Creating Frames}). @end deffn @@ -324,15 +324,15 @@ Just what parameters a frame has depends on what display mechanism it uses. - Frame parameters exist mostly for the sake of window systems. A -terminal frame has a few parameters, mostly for compatibility's sake; -only the @code{height}, @code{width}, @code{name}, @code{title}, -@code{menu-bar-lines}, @code{buffer-list} and @code{buffer-predicate} -parameters do something special. If the terminal supports colors, the -parameters @code{foreground-color}, @code{background-color}, -@code{background-mode} and @code{display-type} are also meaningful. -If the terminal supports frame transparency, the parameter -@code{alpha} is also meaningful. + Frame parameters exist mostly for the sake of graphical displays. +Most frame parameters have no effect when applied to a frame on a text +terminal; only the @code{height}, @code{width}, @code{name}, +@code{title}, @code{menu-bar-lines}, @code{buffer-list} and +@code{buffer-predicate} parameters do something special. If the +terminal supports colors, the parameters @code{foreground-color}, +@code{background-color}, @code{background-mode} and +@code{display-type} are also meaningful. If the terminal supports +frame transparency, the parameter @code{alpha} is also meaningful. @menu * Parameter Access:: How to change a frame's parameters. @@ -386,12 +386,13 @@ @node Initial Parameters @subsection Initial Frame Parameters -You can specify the parameters for the initial startup frame -by setting @code{initial-frame-alist} in your init file (@pxref{Init File}). +You can specify the parameters for the initial startup frame by +setting @code{initial-frame-alist} in your init file (@pxref{Init +File}). @defopt initial-frame-alist -This variable's value is an alist of parameter values used when creating -the initial window frame. You can set this variable to specify the +This variable's value is an alist of parameter values used when +creating the initial frame. You can set this variable to specify the appearance of the initial frame without altering subsequent frames. Each element has the form: @@ -443,11 +444,13 @@ default parameters by supplying their own parameters. @xref{Definition of special-display-frame-alist}. -If you use options that specify window appearance when you invoke Emacs, -they take effect by adding elements to @code{default-frame-alist}. One -exception is @samp{-geometry}, which adds the specified position to -@code{initial-frame-alist} instead. @xref{Emacs Invocation,, Command -Line Arguments for Emacs Invocation, emacs, The GNU Emacs Manual}. +If you invoke Emacs with command-line options that specify frame +appearance, those options take effect by adding elements to either +@code{initial-frame-alist} or @code{default-frame-alist}. Options +which affect just the initial frame, such as @samp{-geometry} and +@samp{--maximized}, add to @code{initial-frame-alist}; the others add +to @code{default-frame-alist}. @pxref{Emacs Invocation,, Command Line +Arguments for Emacs Invocation, emacs, The GNU Emacs Manual}. @node Window Frame Parameters @subsection Window Frame Parameters @@ -458,8 +461,8 @@ meanings on some or all kinds of terminals. Of these, @code{name}, @code{title}, @code{height}, @code{width}, @code{buffer-list} and @code{buffer-predicate} provide meaningful information in terminal -frames, and @code{tty-color-mode} is meaningful @emph{only} in -terminal frames. +frames, and @code{tty-color-mode} is meaningful only for frames on +text terminals. @menu * Basic Parameters:: Parameters that are fundamental. @@ -523,7 +526,7 @@ @cindex window position on display Position parameters' values are normally measured in pixels, but on -text-only terminals they count characters or lines instead. +text terminals they count characters or lines instead. @table @code @vindex left, a frame parameter @@ -560,19 +563,17 @@ @vindex icon-left, a frame parameter @item icon-left -The screen position of the left edge @emph{of the frame's icon}, in -pixels, counting from the left edge of the screen. This takes effect if -and when the frame is iconified. - -If you specify a value for this parameter, then you must also specify -a value for @code{icon-top} and vice versa. The window manager may -ignore these two parameters. +The screen position of the left edge of the frame's icon, in pixels, +counting from the left edge of the screen. This takes effect when the +frame is iconified, if the window manager supports this feature. If +you specify a value for this parameter, then you must also specify a +value for @code{icon-top} and vice versa. @vindex icon-top, a frame parameter @item icon-top -The screen position of the top edge @emph{of the frame's icon}, in -pixels, counting from the top edge of the screen. This takes effect if -and when the frame is iconified. +The screen position of the top edge of the frame's icon, in pixels, +counting from the top edge of the screen. This takes effect when the +frame is iconified, if the window manager supports this feature. @vindex user-position, a frame parameter @item user-position @@ -600,8 +601,9 @@ @subsubsection Size Parameters @cindex window size on display - Size parameters' values are normally measured in pixels, but on -text-only terminals they count characters or lines instead. + Frame parameters specify frame sizes in character units. On +graphical displays, the @code{default} face determines the actual +pixel sizes of these character units (@pxref{Face Attributes}). @table @code @vindex height, a frame parameter @@ -756,8 +758,9 @@ @subsubsection Window Management Parameters @cindex window manager interaction, and frame parameters - These frame parameters, meaningful only on window system displays, -interact with the window manager. + The following frame parameters control various aspects of the +frame's interaction with the window manager. They have no effect on +text terminals. @table @code @vindex visibility, a frame parameter @@ -768,11 +771,13 @@ @vindex auto-raise, a frame parameter @item auto-raise -Whether selecting the frame raises it (non-@code{nil} means yes). +If non-@code{nil}, Emacs automatically raises the frame when it is +selected. Some window managers do not allow this. @vindex auto-lower, a frame parameter @item auto-lower -Whether deselecting the frame lowers it (non-@code{nil} means yes). +If non-@code{nil}, Emacs automatically lowers the frame when it is +deselected. Some window managers do not allow this. @vindex icon-type, a frame parameter @item icon-type @@ -788,12 +793,15 @@ @vindex window-id, a frame parameter @item window-id -The number of the window-system window used by the frame -to contain the actual Emacs windows. +The ID number which the graphical display uses for this frame. Emacs +assigns this parameter when the frame is created; changing the +parameter has no effect on the actual ID number. @vindex outer-window-id, a frame parameter @item outer-window-id -The number of the outermost window-system window used for the whole frame. +The ID number of the outermost window-system window in which the frame +exists. As with @code{window-id}, changing this parameter has no +actual effect. @vindex wait-for-wm, a frame parameter @item wait-for-wm @@ -848,9 +856,26 @@ @end table @vindex cursor-type -The buffer-local variable @code{cursor-type} overrides the value of -the @code{cursor-type} frame parameter, but if it is @code{t}, that -means to use the cursor specified for the frame. +The @code{cursor-type} frame parameter may be overridden by the +variables @code{cursor-type} and +@code{cursor-in-non-selected-windows}: + +@defvar cursor-type +This buffer-local variable controls how the cursor looks in a selected +window showing the buffer. If its value is @code{t}, that means to +use the cursor specified by the @code{cursor-type} frame parameter. +Otherwise, the value should be one of the cursor types listed above, +and it overrides the @code{cursor-type} frame parameter. +@end defvar + +@defopt cursor-in-non-selected-windows +This buffer-local variable controls how the cursor looks in a window +that is not selected. It supports the same values as the +@code{cursor-type} frame parameter; also, @code{nil} means don't +display a cursor in nonselected windows, and @code{t} (the default) +means use a standard modification of the usual cursor type (solid box +becomes hollow box, and bar becomes a narrower bar). +@end defopt @defopt blink-cursor-alist This variable specifies how to blink the cursor. Each element has the @@ -866,15 +891,6 @@ @code{cursor-type} frame parameter. @end defopt -@defopt cursor-in-non-selected-windows -This variable controls how the cursor looks in a window that is not -selected. It supports the same values as the @code{cursor-type} frame -parameter; also, @code{nil} means don't display a cursor in -nonselected windows, and @code{t} (the default) means use a standard -modification of the usual cursor type (solid box becomes hollow box, -and bar becomes a narrower bar). -@end defopt - @node Font and Color Parameters @subsubsection Font and Color Parameters @cindex font and color, frame parameters @@ -903,7 +919,7 @@ @cindex standard colors for character terminals This parameter overrides the terminal's color support as given by the system's terminal capabilities database in that this parameter's value -specifies the color mode to use in terminal frames. The value can be +specifies the color mode to use on a text terminal. The value can be either a symbol or a number. A number specifies the number of colors to use (and, indirectly, what commands to issue to produce each color). For example, @code{(tty-color-mode . 8)} specifies use of the @@ -1047,17 +1063,17 @@ @defunx frame-pixel-width &optional frame These functions return the height and width of the main display area of @var{frame}, measured in pixels. If you don't supply @var{frame}, -they use the selected frame. For a text-only terminal, the results are -in characters rather than pixels. +they use the selected frame. For a text terminal, the results are in +characters rather than pixels. -These values include the internal borders, and windows' scroll bars and -fringes (which belong to individual windows, not to the frame itself). -The exact value of the heights depends on the window-system and toolkit -in use. With Gtk+, the height does not include any tool bar or menu -bar. With the Motif or Lucid toolkits, it includes the tool bar but -not the menu bar. In a graphical version with no toolkit, it includes -both the tool bar and menu bar. For a text-only terminal, the result -includes the menu bar. +These values include the internal borders, and windows' scroll bars +and fringes (which belong to individual windows, not to the frame +itself). The exact value of the heights depends on the window-system +and toolkit in use. With Gtk+, the height does not include any tool +bar or menu bar. With the Motif or Lucid toolkits, it includes the +tool bar but not the menu bar. In a graphical version with no +toolkit, it includes both the tool bar and menu bar. For a text +terminal, the result includes the menu bar. @end defun @defun frame-char-height &optional frame @@ -1084,13 +1100,13 @@ If @var{pretend} is non-@code{nil}, then Emacs displays @var{lines} lines of output in @var{frame}, but does not change its value for the -actual height of the frame. This is only useful for a terminal frame. +actual height of the frame. This is only useful on text terminals. Using a smaller height than the terminal actually implements may be useful to reproduce behavior observed on a smaller screen, or if the terminal malfunctions when using its whole screen. Setting the frame height ``for real'' does not always work, because knowing the correct -actual size may be necessary for correct cursor positioning on a -terminal frame. +actual size may be necessary for correct cursor positioning on +text terminals. @end defun @defun set-frame-width frame width &optional pretend @@ -1099,13 +1115,6 @@ @code{set-frame-height}. @end defun -@findex set-screen-height -@findex set-screen-width - The older functions @code{set-screen-height} and -@code{set-screen-width} were used to specify the height and width of the -screen, in Emacs versions that did not support multiple frames. They -are semi-obsolete, but still work; they apply to the selected frame. - @node Geometry @subsection Geometry @@ -1230,9 +1239,10 @@ @section Deleting Frames @cindex deleting frames -Frames remain potentially visible until you explicitly @dfn{delete} -them. A deleted frame cannot appear on the screen, but continues to -exist as a Lisp object until there are no references to it. + A @dfn{live frame} is one that has not been deleted. When a frame +is deleted, it is removed from its terminal display, although it may +continue to exist as a Lisp object until there are no more references +to it. @deffn Command delete-frame &optional frame force @vindex delete-frame-functions @@ -1263,25 +1273,25 @@ @cindex frames, scanning all @defun frame-list -The function @code{frame-list} returns a list of all the live frames, -i.e.@: those that have not been deleted. It is analogous to -@code{buffer-list} for buffers, and includes frames on all terminals. -The list that you get is newly created, so modifying the list doesn't -have any effect on the internals of Emacs. +This function returns a list of all the live frames, i.e.@: those that +have not been deleted. It is analogous to @code{buffer-list} for +buffers, and includes frames on all terminals. The list that you get +is newly created, so modifying the list doesn't have any effect on the +internals of Emacs. @end defun @defun visible-frame-list This function returns a list of just the currently visible frames. -@xref{Visibility of Frames}. (Terminal frames always count as -``visible,'' even though only the selected one is actually displayed.) +@xref{Visibility of Frames}. Frames on text terminals always count as +``visible'', even though only the selected one is actually displayed. @end defun @defun next-frame &optional frame minibuf -The function @code{next-frame} lets you cycle conveniently through all -the frames on the current display from an arbitrary starting point. It -returns the ``next'' frame after @var{frame} in the cycle. If -@var{frame} is omitted or @code{nil}, it defaults to the selected frame -(@pxref{Input Focus}). +This function lets you cycle conveniently through all the frames on +the current display from an arbitrary starting point. It returns the +``next'' frame after @var{frame} in the cycle. If @var{frame} is +omitted or @code{nil}, it defaults to the selected frame (@pxref{Input +Focus}). The second argument, @var{minibuf}, says which frames to consider: @@ -1369,20 +1379,20 @@ concept of focus; rather, it escapes from the window manager's control until that control is somehow reasserted. -When using a text-only terminal, only one frame can be displayed at a -time on the terminal, so after a call to @code{select-frame}, the next +When using a text terminal, only one frame can be displayed at a time +on the terminal, so after a call to @code{select-frame}, the next redisplay actually displays the newly selected frame. This frame remains selected until a subsequent call to @code{select-frame}. Each -terminal frame has a number which appears in the mode line before the -buffer name (@pxref{Mode Line Variables}). +frame on a text terminal has a number which appears in the mode line +before the buffer name (@pxref{Mode Line Variables}). @defun select-frame-set-input-focus frame &optional norecord This function selects @var{frame}, raises it (should it happen to be obscured by other frames) and tries to give it the X server's focus. -On a text-only terminal, the next redisplay displays the new frame on -the entire terminal screen. The optional argument @var{norecord} has -the same meaning as for @code{select-frame} (see below). The return -value of this function is not significant. +On a text terminal, the next redisplay displays the new frame on the +entire terminal screen. The optional argument @var{norecord} has the +same meaning as for @code{select-frame} (see below). The return value +of this function is not significant. @end defun @defun select-frame frame &optional norecord @@ -1466,20 +1476,34 @@ @cindex visible frame @cindex invisible frame @cindex iconified frame +@cindex minimized frame @cindex frame visibility -A window frame may be @dfn{visible}, @dfn{invisible}, or -@dfn{iconified}. If it is visible, you can see its contents, unless -other windows cover it. If it is iconified, the frame's contents do -not appear on the screen, but an icon does. (Note: because of the -way in which some window managers implement the concept of multiple -workspaces, or desktops, all frames on other workspaces may appear to -Emacs to be iconified.) If the frame is invisible, it doesn't show on -the screen, not even as an icon. +A frame on a graphical display may be @dfn{visible}, @dfn{invisible}, +or @dfn{iconified}. If it is visible, its contents are displayed in +the usual manner. If it is iconified, its contents are not displayed, +but there is a little icon somewhere to bring the frame back into view +(some window managers refer to this state as @dfn{minimized} rather +than @dfn{iconified}, but from Emacs' point of view they are the same +thing). If a frame is invisible, it is not displayed at all. -Visibility is meaningless for terminal frames, since only the selected + Visibility is meaningless on text terminals, since only the selected one is actually displayed in any case. +@defun frame-visible-p frame +This function returns the visibility status of frame @var{frame}. The +value is @code{t} if @var{frame} is visible, @code{nil} if it is +invisible, and @code{icon} if it is iconified. + +On a text terminal, all frames are considered visible, whether they +are currently being displayed or not. +@end defun + +@deffn Command iconify-frame &optional frame +This function iconifies frame @var{frame}. If you omit @var{frame}, it +iconifies the selected frame. +@end deffn + @deffn Command make-frame-visible &optional frame This function makes frame @var{frame} visible. If you omit @var{frame}, it makes the selected frame visible. This does not raise @@ -1495,29 +1519,12 @@ @var{frame} invisible if all other frames are invisible.. @end deffn -@deffn Command iconify-frame &optional frame -This function iconifies frame @var{frame}. If you omit @var{frame}, it -iconifies the selected frame. -@end deffn - -@defun frame-visible-p frame -This returns the visibility status of frame @var{frame}. The value is -@code{t} if @var{frame} is visible, @code{nil} if it is invisible, and -@code{icon} if it is iconified. - -On a text-only terminal, all frames are considered visible, whether -they are currently being displayed or not, and this function returns -@code{t} for all frames. -@end defun - The visibility status of a frame is also available as a frame parameter. You can read or change it as such. @xref{Management -Parameters}. - - The user can iconify and deiconify frames with the window manager. -This happens below the level at which Emacs can exert any control, but -Emacs does provide events that you can use to keep track of such -changes. @xref{Misc Events}. +Parameters}. The user can also iconify and deiconify frames with the +window manager. This happens below the level at which Emacs can exert +any control, but Emacs does provide events that you can use to keep +track of such changes. @xref{Misc Events}. @node Raising and Lowering @section Raising and Lowering Frames @@ -2110,10 +2117,10 @@ @node Text Terminal Colors @section Text Terminal Colors -@cindex colors on text-only terminals +@cindex colors on text terminals - Text-only terminals usually support only a small number of colors, -and the computer uses small integers to select colors on the terminal. + Text terminals usually support only a small number of colors, and +the computer uses small integers to select colors on the terminal. This means that the computer cannot reliably tell what the selected color looks like; instead, you have to inform your application which small integers correspond to which colors. However, Emacs does know @@ -2127,10 +2134,10 @@ These functions accept a display (either a frame or the name of a terminal) as an optional argument. We hope in the future to make -Emacs support different colors on different text-only terminals; then -this argument will specify which terminal to operate on (the default -being the selected frame's terminal; @pxref{Input Focus}). At -present, though, the @var{frame} argument has no effect. +Emacs support different colors on different text terminals; then this +argument will specify which terminal to operate on (the default being +the selected frame's terminal; @pxref{Input Focus}). At present, +though, the @var{frame} argument has no effect. @defun tty-color-define name number &optional rgb frame This function associates the color name @var{name} with @@ -2144,12 +2151,12 @@ @end defun @defun tty-color-clear &optional frame -This function clears the table of defined colors for a text-only terminal. +This function clears the table of defined colors for a text terminal. @end defun @defun tty-color-alist &optional frame -This function returns an alist recording the known colors supported by a -text-only terminal. +This function returns an alist recording the known colors supported by +a text terminal. Each element has the form @code{(@var{name} @var{number} . @var{rgb})} or @code{(@var{name} @var{number})}. Here, @var{name} is the color @@ -2265,8 +2272,8 @@ @defun display-graphic-p &optional display This function returns @code{t} if @var{display} is a graphic display capable of displaying several frames and several different fonts at -once. This is true for displays that use a window system such as X, and -false for text-only terminals. +once. This is true for displays that use a window system such as X, +and false for text terminals. @end defun @defun display-mouse-p &optional display === modified file 'doc/lispref/os.texi' --- doc/lispref/os.texi 2012-01-19 07:21:25 +0000 +++ doc/lispref/os.texi 2012-03-04 06:50:18 +0000 @@ -101,8 +101,8 @@ It runs the normal hook @code{before-init-hook}. @item -It initializes the window frame and faces, if appropriate, and turns -on the menu bar and tool bar, if the initial frame needs them. +It initializes the initial frame's faces, and turns on the menu bar +and tool bar if needed. @item It loads the library @file{site-start}, if it exists. This is not @@ -144,7 +144,7 @@ @code{initial-major-mode}. @item -If started on a text-only terminal, it loads the terminal-specific +If started on a text terminal, it loads the terminal-specific Lisp library, which is specified by the variable @code{term-file-prefix} (@pxref{Terminal-Specific}). This is not done in @code{--batch} mode, nor if @code{term-file-prefix} is @code{nil}. @@ -600,7 +600,7 @@ @subsection Suspending Emacs @cindex suspending Emacs - On text-only terminals, it is possible to @dfn{suspend Emacs}, which + On text terminals, it is possible to @dfn{suspend Emacs}, which means stopping Emacs temporarily and returning control to its superior process, which is usually the shell. This allows you to resume editing later in the same Emacs process, with the same buffers, the @@ -740,10 +740,10 @@ @deffn Command suspend-frame This command @dfn{suspends} a frame. For GUI frames, it calls -@code{iconify-frame} (@pxref{Visibility of Frames}); for text-only -frames, it calls either @code{suspend-emacs} or @code{suspend-tty}, -depending on whether the frame is displayed on the controlling -terminal device or not. +@code{iconify-frame} (@pxref{Visibility of Frames}); for frames on +text terminals, it calls either @code{suspend-emacs} or +@code{suspend-tty}, depending on whether the frame is displayed on the +controlling terminal device or not. @end deffn @node System Environment === modified file 'doc/lispref/vol1.texi' --- doc/lispref/vol1.texi 2012-03-04 02:45:04 +0000 +++ doc/lispref/vol1.texi 2012-03-04 06:50:18 +0000 @@ -994,7 +994,7 @@ * Window System Selections::Transferring text to and from other X clients. * Drag and Drop:: Internals of Drag-and-Drop implementation. * Color Names:: Getting the definitions of color names. -* Text Terminal Colors:: Defining colors for text-only terminals. +* Text Terminal Colors:: Defining colors for text terminals. * Resources:: Getting resource values from the server. * Display Feature Testing:: Determining the features of a terminal. === modified file 'doc/lispref/vol2.texi' --- doc/lispref/vol2.texi 2012-03-04 02:45:04 +0000 +++ doc/lispref/vol2.texi 2012-03-04 06:50:18 +0000 @@ -993,7 +993,7 @@ * Window System Selections::Transferring text to and from other X clients. * Drag and Drop:: Internals of Drag-and-Drop implementation. * Color Names:: Getting the definitions of color names. -* Text Terminal Colors:: Defining colors for text-only terminals. +* Text Terminal Colors:: Defining colors for text terminals. * Resources:: Getting resource values from the server. * Display Feature Testing:: Determining the features of a terminal. === modified file 'doc/lispref/windows.texi' --- doc/lispref/windows.texi 2012-01-29 01:50:40 +0000 +++ doc/lispref/windows.texi 2012-03-04 06:50:18 +0000 @@ -68,7 +68,7 @@ graphical desktop environments and window systems, such as the X Window System. When Emacs is run on X, each of its graphical X windows is an Emacs frame (containing one or more Emacs windows). -When Emacs is run on a text-only terminal, the frame fills the entire +When Emacs is run on a text terminal, the frame fills the entire terminal screen. @cindex tiled windows @@ -2964,8 +2964,8 @@ Note that these are the actual outer edges of the window, including any header line, mode line, scroll bar, fringes, and display margins. -On a text-only terminal, if the window has a neighbor on its right, -its right edge includes the separator line between the window and its +On a text terminal, if the window has a neighbor on its right, its +right edge includes the separator line between the window and its neighbor. @end defun @@ -3046,8 +3046,8 @@ The following functions return window positions in pixels, rather than character units. Though mostly useful on graphical displays, -they can also be called on text-only terminals, where the screen area -of each text character is taken to be ``one pixel''. +they can also be called on text terminals, where the screen area of +each text character is taken to be ``one pixel''. @defun window-pixel-edges &optional window This function returns a list of pixel coordinates for the edges of === modified file 'etc/NEWS' --- etc/NEWS 2012-03-03 02:45:21 +0000 +++ etc/NEWS 2012-03-04 06:50:18 +0000 @@ -542,7 +542,6 @@ *** mouse-2 is now bound to `mouse-yank-primary'. This pastes from the primary selection, ignoring the kill-ring. Previously, mouse-2 was bound to `mouse-yank-at-click'. - +++ *** `x-select-enable-clipboard' now defaults to t on all platforms. +++ @@ -569,7 +568,7 @@ +++ *** Support for X cut buffers has been removed. - ++++ *** X clipboard managers are now supported. To inhibit this, change `x-select-enable-clipboard-manager' to nil. @@ -1118,7 +1117,9 @@ mldrag-drag-mode-line (mouse-drag-mode-line), mldrag-drag-vertical-line (mouse-drag-vertical-line), iswitchb-default-keybindings (iswitchb-mode), char-bytes (== 1), -isearch-return-char (isearch-printing-char), make-local-hook (not needed) +isearch-return-char (isearch-printing-char), make-local-hook (not needed), +set-screen-height (set-frame-height), set-screen-width (set-frame-width) + +++ ** The following obsolete (mostly since at least 21.1) variables and varaliases ------------------------------------------------------------ revno: 107494 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-03-03 18:45:04 -0800 message: Checked lispref/abbrevs.texi * doc/lispref/abbrevs.texi: Small copyedits throughout. (Abbrev Mode): Remove this section, folding it into the top-level. (Abbrev Tables): Don't mention irrelevant return values. (Abbrev Expansion): Add cross-ref for wrapper hooks. (Standard Abbrev Tables): Emacs Lisp mode now has its own table. (Abbrev Table Properties): Update nil :regexp description. * lisp/abbrev.el (copy-abbrev-table, abbrev-table-p) (abbrev-minor-mode-table-alist, define-abbrev, abbrev-insert) (expand-abbrev, define-abbrev-table): Doc fixes. * admin/FOR-RELEASE: Related markup. diff: === modified file 'admin/FOR-RELEASE' --- admin/FOR-RELEASE 2012-03-03 22:13:28 +0000 +++ admin/FOR-RELEASE 2012-03-04 02:45:04 +0000 @@ -180,7 +180,7 @@ ** Check the Lisp manual. -abbrevs.texi +abbrevs.texi rgm advice.texi cyd anti.texi back.texi === modified file 'doc/emacs/abbrevs.texi' --- doc/emacs/abbrevs.texi 2012-01-19 07:21:25 +0000 +++ doc/emacs/abbrevs.texi 2012-03-04 02:45:04 +0000 @@ -60,7 +60,8 @@ mode-specific definitions for different major modes. A mode-specific definition for the current major mode overrides a global definition. - You can define abbrevs interactively during the editing session. You + You can define abbrevs interactively during the editing session, +irrespective of whether Abbrev mode is enabled. You can also save lists of abbrev definitions in files for use in later sessions. Some users keep extensive lists of abbrevs that they load in every session. === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-03-03 22:13:28 +0000 +++ doc/lispref/ChangeLog 2012-03-04 02:45:04 +0000 @@ -1,3 +1,12 @@ +2012-03-04 Glenn Morris + + * abbrevs.texi: Small copyedits throughout. + (Abbrev Mode): Remove this section, folding it into the top-level. + (Abbrev Tables): Don't mention irrelevant return values. + (Abbrev Expansion): Add cross-ref for wrapper hooks. + (Standard Abbrev Tables): Emacs Lisp mode now has its own table. + (Abbrev Table Properties): Update nil :regexp description. + 2012-03-03 Glenn Morris * internals.texi: Change @appendix section commands to @section. === modified file 'doc/lispref/abbrevs.texi' --- doc/lispref/abbrevs.texi 2012-01-19 07:21:25 +0000 +++ doc/lispref/abbrevs.texi 2012-03-04 02:45:04 +0000 @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1994, 1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1994, 1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/abbrevs @node Abbrevs, Processes, Syntax Tables, Top @@ -37,14 +37,15 @@ Because the symbols used for abbrevs are not interned in the usual obarray, they will never appear as the result of reading a Lisp expression; in fact, normally they are never used except by the code -that handles abbrevs. Therefore, it is safe to use them in an -extremely nonstandard way. +that handles abbrevs. Therefore, it is safe to use them in a +nonstandard way. - For the user-level commands for abbrevs, see @ref{Abbrevs,, Abbrev -Mode, emacs, The GNU Emacs Manual}. + If the minor mode Abbrev mode is enabled, the buffer-local variable +@code{abbrev-mode} is non-@code{nil}, and abbrevs are automatically +expanded in the buffer. For the user-level commands for abbrevs, see +@ref{Abbrevs,, Abbrev Mode, emacs, The GNU Emacs Manual}. @menu -* Abbrev Mode:: Setting up Emacs for abbreviation. * Tables: Abbrev Tables. Creating and working with abbrev tables. * Defining Abbrevs:: Specifying abbreviations and their expansions. * Files: Abbrev Files. Saving abbrevs in files. @@ -56,22 +57,7 @@ Which properties have which effect. @end menu -@node Abbrev Mode, Abbrev Tables, Abbrevs, Abbrevs -@comment node-name, next, previous, up -@section Setting Up Abbrev Mode - - Abbrev mode is a minor mode controlled by the variable -@code{abbrev-mode}. - -@defopt abbrev-mode -If this variable is non-@code{nil}, abbrevs are automatically expanded -in the buffer. If the value is @code{nil}, abbrevs may be defined, -but they are not expanded automatically. - -This variable automatically becomes buffer-local when set in any fashion. -@end defopt - -@node Abbrev Tables, Defining Abbrevs, Abbrev Mode, Abbrevs +@node Abbrev Tables, Defining Abbrevs, Abbrevs, Abbrevs @section Abbrev Tables This section describes how to create and manipulate abbrev tables. @@ -90,14 +76,15 @@ @defun clear-abbrev-table abbrev-table This function undefines all the abbrevs in @var{abbrev-table}, leaving -it empty. It always returns @code{nil}. +it empty. +@c Don't see why this needs saying. +@c It always returns @code{nil}. @end defun @defun copy-abbrev-table abbrev-table This function returns a copy of @var{abbrev-table}---a new abbrev -table containing the same abbrev definitions. There is one difference -between the contents of @var{abbrev-table} and the returned copy: all -abbrevs in the latter have their property lists set to @code{nil}. +table containing the same abbrev definitions. It does @emph{not} copy +any property lists; only the names, values, and functions. @end defun @defun define-abbrev-table tabname definitions &optional docstring &rest props @@ -106,8 +93,7 @@ abbrevs in the table according to @var{definitions}, a list of elements of the form @code{(@var{abbrevname} @var{expansion} [@var{hook}] [@var{props}...])}. These elements are passed as -arguments to @code{define-abbrev}. The return value is always -@code{nil}. +arguments to @code{define-abbrev}. @c The return value is always @code{nil}. The optional string @var{docstring} is the documentation string of the variable @var{tabname}. The property list @var{props} is applied to @@ -115,7 +101,7 @@ If this function is called more than once for the same @var{tabname}, subsequent calls add the definitions in @var{definitions} to -@var{tabname}, rather than overriding the entire original contents. +@var{tabname}, rather than overwriting the entire original contents. (A subsequent call only overrides abbrevs explicitly redefined or undefined in @var{definitions}.) @end defun @@ -128,7 +114,7 @@ @defun insert-abbrev-table-description name &optional human This function inserts before point a description of the abbrev table named @var{name}. The argument @var{name} is a symbol whose value is an -abbrev table. The return value is always @code{nil}. +abbrev table. @c The return value is always @code{nil}. If @var{human} is non-@code{nil}, the description is human-oriented. System abbrevs are listed and identified as such. Otherwise the @@ -146,7 +132,7 @@ abbrev in an abbrev table. When a major mode defines a system abbrev, it should call -@code{define-abbrev} and specify a @code{t} for the @code{:system} +@code{define-abbrev} and specify @code{t} for the @code{:system} property. Be aware that any saved non-``system'' abbrevs are restored at startup, i.e. before some major modes are loaded. Therefore, major modes should not assume that their abbrev tables are empty when they @@ -177,12 +163,12 @@ to insert the self-inserting input character that triggered the expansion. If @var{hook} returns non-@code{nil} in this case, that inhibits insertion of the character. By contrast, if @var{hook} -returns @code{nil}, @code{expand-abbrev} also returns @code{nil}, as -if expansion had not really occurred. +returns @code{nil}, @code{expand-abbrev} (or @code{abbrev-insert}) +also returns @code{nil}, as if expansion had not really occurred. Normally, @code{define-abbrev} sets the variable @code{abbrevs-changed} to @code{t}, if it actually changes the abbrev. -(This is so that some commands will offer to save the abbrevs.) It +This is so that some commands will offer to save the abbrevs. It does not do this for a system abbrev, since those aren't saved anyway. @end defun @@ -202,7 +188,8 @@ abbrev tables with the same contents. Therefore, you can load the file with @code{load} (@pxref{How Programs Do Loading}). However, the function @code{quietly-read-abbrev-file} is provided as a more -convenient interface. +convenient interface. Emacs automatically calls this function at +startup. User-level facilities such as @code{save-some-buffers} can save abbrevs in a file automatically, under the control of variables @@ -216,17 +203,18 @@ This function reads abbrev definitions from a file named @var{filename}, previously written with @code{write-abbrev-file}. If @var{filename} is omitted or @code{nil}, the file specified in @code{abbrev-file-name} is -used. @code{save-abbrevs} is set to @code{t} so that changes will be -saved. +used. -This function does not display any messages. It returns @code{nil}. +As the name implies, this function does not display any messages. +@c It returns @code{nil}. @end defun @defopt save-abbrevs A non-@code{nil} value for @code{save-abbrevs} means that Emacs should -offer the user to save abbrevs when files are saved. If the value is -@code{silently}, Emacs saves the abbrevs without asking the user. -@code{abbrev-file-name} specifies the file to save the abbrevs in. +offer to save abbrevs (if any have changed) when files are saved. If +the value is @code{silently}, Emacs saves the abbrevs without asking +the user. @code{abbrev-file-name} specifies the file to save the +abbrevs in. @end defopt @defvar abbrevs-changed @@ -254,7 +242,7 @@ @defun abbrev-symbol abbrev &optional table This function returns the symbol representing the abbrev named -@var{abbrev}. The value returned is @code{nil} if that abbrev is not +@var{abbrev}. It returns @code{nil} if that abbrev is not defined. The optional second argument @var{table} is the abbrev table in which to look it up. If @var{table} is @code{nil}, this function tries first the current buffer's local abbrev table, and second the @@ -263,8 +251,8 @@ @defun abbrev-expansion abbrev &optional table This function returns the string that @var{abbrev} would expand into (as -defined by the abbrev tables used for the current buffer). If -@var{abbrev} is not a valid abbrev, the function returns @code{nil}. +defined by the abbrev tables used for the current buffer). It returns +@code{nil} if @var{abbrev} is not a valid abbrev. The optional argument @var{table} specifies the abbrev table to use, as in @code{abbrev-symbol}. @end defun @@ -274,7 +262,7 @@ follow an abbrev, this command does nothing. The command returns the abbrev symbol if it did expansion, @code{nil} otherwise. -If the abbrev symbol has a hook function which is a symbol whose +If the abbrev symbol has a hook function that is a symbol whose @code{no-self-insert} property is non-@code{nil}, and if the hook function returns @code{nil} as its value, then @code{expand-abbrev} returns @code{nil} even though expansion did occur. @@ -346,14 +334,14 @@ @end defvar @defvar abbrev-expand-functions -This is a special hook run @emph{around} the @code{expand-abbrev} -function. Each function on this hook is called with a single -argument: a function that performs the normal abbrev expansion. The -hook function can hence do anything it wants before and after -performing the expansion. It can also choose not to call its -argument, thus overriding the default behavior; or it may even call it -several times. The function should return the abbrev symbol if -expansion took place. +This is a wrapper hook (@pxref{Running Hooks}) run around the +@code{expand-abbrev} function. Each function on this hook is called +with a single argument: a function that performs the normal abbrev +expansion. The hook function can hence do anything it wants before +and after performing the expansion. It can also choose not to call +its argument, thus overriding the default behavior; or it may even +call it several times. The function should return the abbrev symbol +if expansion took place. @end defvar The following sample code shows a simple use of @@ -361,8 +349,7 @@ mode for editing certain files in which lines that start with @samp{#} are comments. You want to use Text mode abbrevs for those lines. The regular local abbrev table, @code{foo-mode-abbrev-table} is -appropriate for all other lines. Then you can put the following code -in your @file{.emacs} file. @xref{Standard Abbrev Tables}, for the +appropriate for all other lines. @xref{Standard Abbrev Tables}, for the definitions of @code{local-abbrev-table} and @code{text-mode-abbrev-table}. @smallexample @@ -419,14 +406,16 @@ @end defvar @defvar lisp-mode-abbrev-table -This is the local abbrev table used in Lisp mode and Emacs Lisp mode. +This is the local abbrev table used in Lisp mode. It is the parent +of the local abbrev table used in Emacs Lisp mode. @xref{Abbrev Table +Properties}. @end defvar @node Abbrev Properties, Abbrev Table Properties, Standard Abbrev Tables, Abbrevs @section Abbrev Properties Abbrevs have properties, some of which influence the way they work. -You can provide them as arguments to @code{define-abbrev} and you can +You can provide them as arguments to @code{define-abbrev}, and manipulate them with the following functions: @defun abbrev-put abbrev prop val @@ -467,8 +456,7 @@ Like abbrevs, abbrev tables have properties, some of which influence the way they work. You can provide them as arguments to -@code{define-abbrev-table} and you can manipulate them with the -functions: +@code{define-abbrev-table}, and manipulate them with the functions: @defun abbrev-table-put table prop val Set the property @var{prop} of abbrev table @var{table} to value @var{val}. @@ -484,8 +472,8 @@ @table @code @item :enable-function This is like the @code{:enable-function} abbrev property except that -it applies to all abbrevs in the table and is used even before trying -to find the abbrev before point so it can dynamically modify the +it applies to all abbrevs in the table. It is used before even trying +to find the abbrev before point, so it can dynamically modify the abbrev table. @item :case-fixed @@ -494,15 +482,16 @@ @item :regexp If non-@code{nil}, this property is a regular expression that -indicates how to extract the name of the abbrev before point before +indicates how to extract the name of the abbrev before point, before looking it up in the table. When the regular expression matches before point, the abbrev name is expected to be in submatch 1. -If this property is @code{nil}, @code{expand-function} defaults to -@code{"\\<\\(\\w+\\)\\W"}. This property allows the use of abbrevs -whose name contains characters of non-word syntax. +If this property is @code{nil}, the default is to use +@code{backward-word} and @code{forward-word} to find the name. This +property allows the use of abbrevs whose name contains characters of +non-word syntax. @item :parents -This property holds the list of tables from which to inherit +This property holds a list of tables from which to inherit other abbrevs. @item :abbrev-table-modiff === modified file 'doc/lispref/elisp.texi' --- doc/lispref/elisp.texi 2012-03-02 02:54:47 +0000 +++ doc/lispref/elisp.texi 2012-03-04 02:45:04 +0000 @@ -1186,7 +1186,6 @@ Abbrevs and Abbrev Expansion -* Abbrev Mode:: Setting up Emacs for abbreviation. * Abbrev Tables:: Creating and working with abbrev tables. * Defining Abbrevs:: Specifying abbreviations and their expansions. * Abbrev Files:: Saving abbrevs in files. === modified file 'doc/lispref/vol1.texi' --- doc/lispref/vol1.texi 2012-03-02 02:54:47 +0000 +++ doc/lispref/vol1.texi 2012-03-04 02:45:04 +0000 @@ -1208,7 +1208,6 @@ Abbrevs and Abbrev Expansion -* Abbrev Mode:: Setting up Emacs for abbreviation. * Abbrev Tables:: Creating and working with abbrev tables. * Defining Abbrevs:: Specifying abbreviations and their expansions. * Abbrev Files:: Saving abbrevs in files. === modified file 'doc/lispref/vol2.texi' --- doc/lispref/vol2.texi 2012-03-02 02:54:47 +0000 +++ doc/lispref/vol2.texi 2012-03-04 02:45:04 +0000 @@ -1207,7 +1207,6 @@ Abbrevs and Abbrev Expansion -* Abbrev Mode:: Setting up Emacs for abbreviation. * Abbrev Tables:: Creating and working with abbrev tables. * Defining Abbrevs:: Specifying abbreviations and their expansions. * Abbrev Files:: Saving abbrevs in files. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-03-04 00:15:34 +0000 +++ lisp/ChangeLog 2012-03-04 02:45:04 +0000 @@ -1,3 +1,9 @@ +2012-03-04 Glenn Morris + + * abbrev.el (copy-abbrev-table, abbrev-table-p) + (abbrev-minor-mode-table-alist, define-abbrev, abbrev-insert) + (expand-abbrev, define-abbrev-table): Doc fixes. + 2012-03-03 Lars Magne Ingebrigtsen * mail/emacsbug.el (report-emacs-bug-hook): Look at the value of === modified file 'lisp/abbrev.el' --- lisp/abbrev.el 2012-02-29 15:05:42 +0000 +++ lisp/abbrev.el 2012-03-04 02:45:04 +0000 @@ -1,6 +1,6 @@ ;;; abbrev.el --- abbrev mode commands for Emacs -*- lexical-binding: t -*- -;; Copyright (C) 1985-1987, 1992, 2001-2012 Free Software Foundation, Inc. +;; Copyright (C) 1985-1987, 1992, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: abbrev convenience @@ -81,7 +81,8 @@ (clear-abbrev-table (symbol-value tablesym)))) (defun copy-abbrev-table (table) - "Make a new abbrev-table with the same abbrevs as TABLE." + "Make a new abbrev-table with the same abbrevs as TABLE. +Does not copy property lists." (let ((new-table (make-abbrev-table))) (mapatoms (lambda (symbol) @@ -447,6 +448,7 @@ table)) (defun abbrev-table-p (object) + "Return non-nil if OBJECT is an abbrev table." (and (vectorp object) (numberp (abbrev-table-get object :abbrev-table-modiff)))) @@ -472,7 +474,8 @@ (defvar abbrev-minor-mode-table-alist nil "Alist of abbrev tables to use for minor modes. Each element looks like (VARIABLE . ABBREV-TABLE); -ABBREV-TABLE is active whenever VARIABLE's value is non-nil.") +ABBREV-TABLE is active whenever VARIABLE's value is non-nil. +ABBREV-TABLE can also be a list of abbrev tables.") (defvar fundamental-mode-abbrev-table (let ((table (make-abbrev-table))) @@ -548,6 +551,12 @@ special one, which does not expand in the usual way but only runs HOOK. +If HOOK is a non-nil symbol with a non-nil `no-self-insert' property, +it can control whether the character that triggered abbrev expansion +is inserted. If such a HOOK returns non-nil, the character is not +inserted. If such a HOOK returns nil, then so does `abbrev-insert' +\(and `expand-abbrev'), as if no abbrev expansion had taken place. + PROPS is a property list. The following properties are special: - `:count': the value for the abbrev's usage-count, which is incremented each time the abbrev is used (the default is zero). @@ -746,7 +755,9 @@ If non-nil, WORDSTART is the place where to insert the abbrev. If WORDEND is non-nil, the abbrev replaces the previous text between WORDSTART and WORDEND. -Return ABBREV if the expansion should be considered as having taken place." +Return ABBREV if the expansion should be considered as having taken place. +The return value can be influenced by a `no-self-insert' property; +see `define-abbrev' for details." (unless name (setq name (symbol-name abbrev))) (unless wordstart (setq wordstart (point))) (unless wordend (setq wordend wordstart)) @@ -811,7 +822,8 @@ (defun expand-abbrev () "Expand the abbrev before point, if there is an abbrev there. Effective when explicitly called even when `abbrev-mode' is nil. -Returns the abbrev symbol, if expansion took place." +Returns the abbrev symbol, if expansion took place. (The actual +return value is that of `abbrev-insert'.)" (interactive) (run-hooks 'pre-abbrev-expand-hook) (with-wrapper-hook abbrev-expand-functions () @@ -934,9 +946,11 @@ abbreviations. - `:case-fixed' non-nil means that abbreviations are looked up without case-folding, and the expansion is not capitalized/upcased. -- `:regexp' describes the form of abbrevs. It defaults to \\=\\<\\(\\w+\\)\\W* which - means that an abbrev can only be a single word. The submatch 1 is treated - as the potential name of an abbrev. +- `:regexp' is a regular expression that specifies how to extract the + name of the abbrev before point. The submatch 1 is treated + as the potential name of an abbrev. If :regexp is nil, the default + behavior uses `backward-word' and `forward-word' to extract the name + of the abbrev, which can therefore only be a single word. - `:enable-function' can be set to a function of no argument which returns non-nil if and only if the abbrevs in this table should be used for this instance of `expand-abbrev'." ------------------------------------------------------------ revno: 107493 author: Lars Magne Ingebrigtsen committer: Katsumi Yamaoka branch nick: trunk timestamp: Sun 2012-03-04 00:15:34 +0000 message: net/tls.el (open-tls-stream): Don't set the dont-query-on-exit flag. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-03-03 14:43:03 +0000 +++ lisp/ChangeLog 2012-03-04 00:15:34 +0000 @@ -5,6 +5,10 @@ when doing the prompting for `sendmail-query-once' before sending in Message buffers (bug#10897). + * net/tls.el (open-tls-stream): Don't set the dont-query-on-exit flag. + This is inconsistent with all the other stream functions, which leave + the setting up to the higher levels (if so wanted) (bug#10931). + 2012-03-02 Alan Mackenzie Depessimize the handling of very large macros. === modified file 'lisp/net/tls.el' --- lisp/net/tls.el 2012-01-19 07:21:25 +0000 +++ lisp/net/tls.el 2012-03-04 00:15:34 +0000 @@ -237,10 +237,6 @@ (setq process (start-process name buffer shell-file-name shell-command-switch formatted-cmd)) - (funcall (if (fboundp 'set-process-query-on-exit-flag) - 'set-process-query-on-exit-flag - 'process-kill-without-query) - process nil) (while (and process (memq (process-status process) '(open run)) (progn ------------------------------------------------------------ revno: 107492 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-03-03 14:13:28 -0800 message: Checked lispref/internals.texi, somewhat * doc/lispref/internals.texi: (Writing Emacs Primitives): Update Fcoordinates_in_window_p and For example definitions. Give examples of things with non-nil interactive args. Mention eval_sub. Remove old info about strings and GCPRO. Mention cus-start.el. (Buffer Internals, Window Internals, Process Internals): Misc small updates and fixes for fields. * admin/FOR-RELEASE: Related markup. diff: === modified file 'admin/FOR-RELEASE' --- admin/FOR-RELEASE 2012-03-03 01:29:55 +0000 +++ admin/FOR-RELEASE 2012-03-03 22:13:28 +0000 @@ -203,7 +203,8 @@ help.texi cyd hooks.texi rgm index.texi -internals.texi +internals.texi rgm (I don't know much about this, so it would be + good if someone else could at least look at the FIXME? comments.) intro.texi cyd keymaps.texi cyd lists.texi cyd === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-03-03 04:18:09 +0000 +++ doc/lispref/ChangeLog 2012-03-03 22:13:28 +0000 @@ -5,6 +5,12 @@ Replace deleted eval-at-startup with custom-initialize-delay. (Pure Storage): Small changes. (Memory Usage): Copyedit. + (Writing Emacs Primitives): Update Fcoordinates_in_window_p and For + example definitions. Give examples of things with non-nil + interactive args. Mention eval_sub. Remove old info about + strings and GCPRO. Mention cus-start.el. + (Buffer Internals, Window Internals, Process Internals): + Misc small updates and fixes for fields. * tips.texi: Copyedits. (Coding Conventions): Mention autoloads. === modified file 'doc/lispref/internals.texi' --- doc/lispref/internals.texi 2012-03-03 04:18:09 +0000 +++ doc/lispref/internals.texi 2012-03-03 22:13:28 +0000 @@ -538,7 +538,7 @@ @group while (CONSP (args)) @{ - val = Feval (XCAR (args)); + val = eval_sub (XCAR (args)); if (!NILP (val)) break; args = XCDR (args); @@ -603,6 +603,8 @@ called interactively. A value of @code{""} indicates a function that should receive no arguments when called interactively. If the value begins with a @samp{(}, the string is evaluated as a Lisp form. +For examples of the last two forms, see @code{widen} and +@code{narrow-to-region} in @file{editfns.c}. @item doc This is the documentation string. It uses C comment syntax rather @@ -641,19 +643,22 @@ ``protect'' a variable from garbage collection---to inform the garbage collector that it must look in that variable and regard its contents as an accessible object. GC protection is necessary whenever you call -@code{Feval} or anything that can directly or indirectly call -@code{Feval}. At such a time, any Lisp object that this function may -refer to again must be protected somehow. +@code{eval_sub} (or @code{Feval}) either directly or indirectly. +At such a time, any Lisp object that this function may refer to again +must be protected somehow. It suffices to ensure that at least one pointer to each object is GC-protected; that way, the object cannot be recycled, so all pointers to it remain valid. Thus, a particular local variable can do without protection if it is certain that the object it points to will be -preserved by some other pointer (such as another local variable which -has a @code{GCPRO})@footnote{Formerly, strings were a special -exception; in older Emacs versions, every local variable that might -point to a string needed a @code{GCPRO}.}. Otherwise, the local -variable needs a @code{GCPRO}. +preserved by some other pointer (such as another local variable that +has a @code{GCPRO}). +@ignore +@footnote{Formerly, strings were a special exception; in older Emacs +versions, every local variable that might point to a string needed a +@code{GCPRO}.}. +@end ignore +Otherwise, the local variable needs a @code{GCPRO}. The macro @code{GCPRO1} protects just one local variable. If you want to protect two variables, use @code{GCPRO2} instead; repeating @@ -682,6 +687,7 @@ read-only (on certain operating systems) as a result of dumping Emacs. @xref{Pure Storage}. +@c FIXME is this still true? I don't think so... Do not use static variables within functions---place all static variables at top level in the file. This is necessary because Emacs on some operating systems defines the keyword @code{static} as a null @@ -696,12 +702,11 @@ this: @example -defsubr (&@var{subr-structure-name}); +defsubr (&@var{sname}); @end example @noindent -Here @var{subr-structure-name} is the name you used as the third -argument to @code{DEFUN}. +Here @var{sname} is the name you used as the third argument to @code{DEFUN}. If you add a new primitive to a file that already has Lisp primitives defined in it, find the function (near the end of the file) named @@ -726,6 +731,11 @@ defined with @code{DEFVAR_BOOL} are automatically added to the list @code{byte-boolean-vars} used by the byte compiler. +@cindex defining customization variables in C + If you want to make a Lisp variables that is defined in C behave +like one declared with @code{defcustom}, add an appropriate entry to +@file{cus-start.el}. + @cindex @code{staticpro}, protection from GC If you define a file-scope C variable of type @code{Lisp_Object}, you must protect it from garbage-collection by calling @code{staticpro} @@ -742,48 +752,53 @@ @smallexample @group DEFUN ("coordinates-in-window-p", Fcoordinates_in_window_p, - Scoordinates_in_window_p, 2, 2, - "xSpecify coordinate pair: \nXExpression which evals to window: ", - "Return non-nil if COORDINATES is in WINDOW.\n\ -COORDINATES is a cons of the form (X . Y), X and Y being distances\n\ -... + Scoordinates_in_window_p, 2, 2, 0, + doc: /* Return non-nil if COORDINATES are in WINDOW. + ... @end group @group -If they are on the border between WINDOW and its right sibling,\n\ - `vertical-line' is returned.") - (coordinates, window) - register Lisp_Object coordinates, window; + or `right-margin' is returned. */) + (register Lisp_Object coordinates, Lisp_Object window) @{ + struct window *w; + struct frame *f; int x, y; -@end group - -@group - CHECK_LIVE_WINDOW (window, 0); - CHECK_CONS (coordinates, 1); - x = XINT (Fcar (coordinates)); - y = XINT (Fcdr (coordinates)); -@end group - -@group - switch (coordinates_in_window (XWINDOW (window), &x, &y)) + Lisp_Object lx, ly; +@end group + +@group + CHECK_LIVE_WINDOW (window); + w = XWINDOW (window); + f = XFRAME (w->frame); + CHECK_CONS (coordinates); + lx = Fcar (coordinates); + ly = Fcdr (coordinates); + CHECK_NUMBER_OR_FLOAT (lx); + CHECK_NUMBER_OR_FLOAT (ly); + x = FRAME_PIXEL_X_FROM_CANON_X (f, lx) + FRAME_INTERNAL_BORDER_WIDTH(f); + y = FRAME_PIXEL_Y_FROM_CANON_Y (f, ly) + FRAME_INTERNAL_BORDER_WIDTH(f); +@end group + +@group + switch (coordinates_in_window (w, x, y)) @{ - case 0: /* NOT in window at all. */ + case ON_NOTHING: /* NOT in window at all. */ return Qnil; @end group -@group - case 1: /* In text part of window. */ - return Fcons (make_number (x), make_number (y)); -@end group + ... @group - case 2: /* In mode line of window. */ + case ON_MODE_LINE: /* In mode line of window. */ return Qmode_line; @end group + ... + @group - case 3: /* On right border of window. */ - return Qvertical_line; + case ON_SCROLL_BAR: /* On scroll-bar of window. */ + /* Historically we are supposed to return nil in this case. */ + return Qnil; @end group @group @@ -814,7 +829,7 @@ functions. If you define a function which is side-effect free, update the code -in @file{byte-opt.el} which binds @code{side-effect-free-fns} and +in @file{byte-opt.el} that binds @code{side-effect-free-fns} and @code{side-effect-and-error-free-fns} so that the compiler optimizer knows about it. @@ -822,6 +837,7 @@ @section Object Internals @cindex object internals +@c FIXME Is this still true? Does --with-wide-int affect anything? GNU Emacs Lisp manipulates many different types of data. The actual data are stored in a heap and the only access that programs have to it is through pointers. Each pointer is 32 bits wide on 32-bit machines, @@ -850,11 +866,11 @@ @cindex internals, of buffer @cindex buffer internals - Two structures are used to represent buffers in C. The -@code{buffer_text} structure contains fields describing the text of a -buffer; the @code{buffer} structure holds other fields. In the case -of indirect buffers, two or more @code{buffer} structures reference -the same @code{buffer_text} structure. + Two structures (see @file{buffer.h}) are used to represent buffers +in C. The @code{buffer_text} structure contains fields describing the +text of a buffer; the @code{buffer} structure holds other fields. In +the case of indirect buffers, two or more @code{buffer} structures +reference the same @code{buffer_text} structure. Here are some of the fields in @code{struct buffer_text}: @@ -912,8 +928,9 @@ Some of the fields of @code{struct buffer} are: @table @code -@item next -Points to the next buffer, in the chain of all buffers (including +@item header +A @code{struct vectorlike_header} structure where @code{header.next} +points to the next buffer, in the chain of all buffers (including killed buffers). This chain is used only for garbage collection, in order to collect killed buffers properly. Note that vectors, and most kinds of objects allocated as vectors, are all on one chain, but @@ -987,6 +1004,8 @@ and @code{overlays_after} is sorted in order of increasing beginning position. +@c FIXME? the following are now all Lisp_Object BUFFER_INTERNAL_FIELD (foo). + @item name A Lisp string that names the buffer. It is guaranteed to be unique. @xref{Buffer Names}. @@ -1009,6 +1028,7 @@ @item undo_list @itemx backed_up @itemx auto_save_file_name +@itemx auto_save_file_format @itemx read_only @itemx file_format @itemx file_truename @@ -1075,15 +1095,15 @@ @itemx truncate_lines @itemx word_wrap @itemx ctl_arrow +@itemx bidi_display_reordering +@itemx bidi_paragraph_direction @itemx selective_display @itemx selective_display_ellipses @itemx overwrite_mode @itemx abbrev_mode -@itemx display_table @itemx mark_active @itemx enable_multibyte_characters @itemx buffer_file_coding_system -@itemx auto_save_file_format @itemx cache_long_line_scans @itemx point_before_scroll @itemx left_fringe_width @@ -1113,7 +1133,8 @@ @cindex internals, of window @cindex window internals - Windows have the following accessible fields: + The fields of a window (for a complete list, see the definition of +@code{struct window} in @file{window.h}) include: @table @code @item frame @@ -1137,7 +1158,8 @@ These fields contain the window's leftmost child and its topmost child respectively. @code{hchild} is used if the window is subdivided horizontally by child windows, and @code{vchild} if it is subdivided -vertically. +vertically. In a live window, only one of @code{hchild}, @code{vchild}, +and @code{buffer} (q.v.) is non-@code{nil}. @item next @itemx prev @@ -1214,11 +1236,19 @@ @item vertical_scroll_bar This window's vertical scroll bar. -@item left_margin_width -@itemx right_margin_width +@item left_margin_cols +@itemx right_margin_cols The widths of the left and right margins in this window. A value of -@code{nil} means to use the buffer's value of @code{left-margin-width} -or @code{right-margin-width}. +@code{nil} means no margin. + +@item left_fringe_width +@itemx right_fringe_width +The widths of the left and right fringes in this window. A value of +@code{nil} or @code{t} means use the values of the frame. + +@item fringes_outside_margins +A non-@code{nil} value means the fringes outside the display margins; +othersize they are between the margin and the text. @item window_end_pos This is computed as @code{z} minus the buffer position of the last glyph @@ -1234,7 +1264,7 @@ @item window_end_valid This field is set to a non-@code{nil} value if @code{window_end_pos} is truly -valid. This is @code{nil} if nontrivial redisplay is preempted since in that +valid. This is @code{nil} if nontrivial redisplay is pre-empted, since in that case the display that @code{window_end_pos} was computed for did not get onto the screen. @@ -1248,13 +1278,19 @@ A structure describing where the cursor of this window physically is. @item phys_cursor_type -The type of cursor that was last displayed on this window. +@c FIXME What is this? +@c itemx phys_cursor_ascent +@itemx phys_cursor_height +@itemx phys_cursor_width +The type, height, and width of the cursor that was last displayed on +this window. @item phys_cursor_on_p This field is non-zero if the cursor is physically on. @item cursor_off_p -Non-zero means the cursor in this window is logically on. +Non-zero means the cursor in this window is logically off. This is +used for blinking the cursor. @item last_cursor_off_p This field contains the value of @code{cursor_off_p} as of the time of @@ -1285,7 +1321,8 @@ @item base_line_pos The position in the buffer for which the line number is known, or -@code{nil} meaning none is known. +@code{nil} meaning none is known. If it is a buffer, don't display +the line number as long as the window shows that buffer. @item region_showing If the region (or part of it) is highlighted in this window, this field @@ -1297,10 +1334,8 @@ if column numbers are not being displayed. @item current_matrix -A glyph matrix describing the current display of this window. - -@item desired_matrix -A glyph matrix describing the desired display of this window. +@itemx desired_matrix +Glyph matrices describing the current and desired display of this window. @end table @node Process Internals @@ -1308,7 +1343,8 @@ @cindex internals, of process @cindex process internals - The fields of a process are: + The fields of a process (for a complete list, see the definition of +@code{struct Lisp_Process} in @file{process.h}) include: @table @code @item name @@ -1320,21 +1356,24 @@ process is running or @code{t} if the process is stopped. @item filter -A function used to accept output from the process instead of a buffer, -or @code{nil}. +If non-@code{nil}, a function used to accept output from the process +instead of a buffer. @item sentinel -A function called whenever the process receives a signal, or @code{nil}. +If non-@code{nil}, a function called whenever the state of the process +changes. @item buffer The associated buffer of the process. @item pid An integer, the operating system's process @acronym{ID}. +Pseudo-processes such as network or serial connections use a value of 0. @item childp -A flag, non-@code{nil} if this is really a child process. -It is @code{nil} for a network or serial connection. +A flag, @code{t} if this is really a child process. For a network or +serial connection, it is a plist based on the arguments to +@code{make-network-process} or @code{make-serial-process}. @item mark A marker indicating the position of the end of the last output from this @@ -1345,10 +1384,8 @@ If this is non-zero, killing Emacs while this process is still running does not ask for confirmation about killing the process. -@item raw_status_low -@itemx raw_status_high -These two fields record 16 bits each of the process status returned by -the @code{wait} system call. +@item raw_status +The raw process status, as returned by the @code{wait} system call. @item status The process status, as @code{process-status} should return it. @@ -1369,11 +1406,6 @@ @item outfd The file descriptor for output to the process. -@item subtty -The file descriptor for the terminal that the subprocess is using. (On -some systems, there is no need to record this, so the value is -@code{nil}.) - @item tty_name The name of the terminal that the subprocess is using, or @code{nil} if it is using pipes. @@ -1393,15 +1425,14 @@ @item encoding_buf A working buffer for encoding. -@item encoding_carryover -Size of carryover in encoding. - @item inherit_coding_system_flag Flag to set @code{coding-system} of the process buffer from the coding system used to decode process output. @item type Symbol indicating the type of process: @code{real}, @code{network}, -@code{serial} +@code{serial}. @end table + +@c FIXME Mention src/globals.h somewhere in this file? ------------------------------------------------------------ revno: 107491 fixes bug(s): http://debbugs.gnu.org/10897 committer: Lars Magne Ingebrigtsen branch nick: trunk timestamp: Sat 2012-03-03 15:43:03 +0100 message: Further `sendmail-query-once' cleanups for sending bug reports * mail/emacsbug.el (report-emacs-bug-hook): Look at the value of `message-default-send-mail-function' and not `send-mail-function' when doing the prompting for `sendmail-query-once' before sending in Message buffers. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-03-02 22:16:21 +0000 +++ lisp/ChangeLog 2012-03-03 14:43:03 +0000 @@ -1,3 +1,10 @@ +2012-03-03 Lars Magne Ingebrigtsen + + * mail/emacsbug.el (report-emacs-bug-hook): Look at the value of + `message-default-send-mail-function' and not `send-mail-function' + when doing the prompting for `sendmail-query-once' before sending + in Message buffers (bug#10897). + 2012-03-02 Alan Mackenzie Depessimize the handling of very large macros. === modified file 'lisp/mail/emacsbug.el' --- lisp/mail/emacsbug.el 2012-02-10 18:16:19 +0000 +++ lisp/mail/emacsbug.el 2012-03-03 14:43:03 +0000 @@ -394,7 +394,11 @@ ;; Query the user for the SMTP method, so that we can skip ;; questions about From header validity if the user is going to ;; use mailclient, anyway. - (when (eq send-mail-function 'sendmail-query-once) + (when (or (and (derived-mode-p 'message-mode) + (eq (message-default-send-mail-function) + 'sendmail-query-once)) + (and (not (derived-mode-p 'message-mode)) + (eq send-mail-function 'sendmail-query-once))) (sendmail-query-user-about-smtp) (when (derived-mode-p 'message-mode) (setq message-send-mail-function (message-default-send-mail-function)))) ------------------------------------------------------------ revno: 107490 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-03-02 20:18:09 -0800 message: lispref/internals.texi Memory Usage tiny change * doc/lispref/internals.texi: (Memory Usage): Copyedit. * src/alloc.c (misc-objects-consed): Doc fix. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-03-03 03:59:22 +0000 +++ doc/lispref/ChangeLog 2012-03-03 04:18:09 +0000 @@ -4,6 +4,7 @@ (Building Emacs): Say less about CANNOT_DUMP platforms. Replace deleted eval-at-startup with custom-initialize-delay. (Pure Storage): Small changes. + (Memory Usage): Copyedit. * tips.texi: Copyedits. (Coding Conventions): Mention autoloads. === modified file 'doc/lispref/internals.texi' --- doc/lispref/internals.texi 2012-03-03 03:59:22 +0000 +++ doc/lispref/internals.texi 2012-03-03 04:18:09 +0000 @@ -456,7 +456,7 @@ These functions and variables give information about the total amount of memory allocation that Emacs has done, broken down by data type. Note the difference between these and the values returned by -@code{(garbage-collect)}; those count objects that currently exist, but +@code{garbage-collect}; those count objects that currently exist, but these count the number or size of all allocations, including those for objects that have since been freed. === modified file 'src/ChangeLog' --- src/ChangeLog 2012-03-03 03:59:22 +0000 +++ src/ChangeLog 2012-03-03 04:18:09 +0000 @@ -1,6 +1,6 @@ 2012-03-03 Glenn Morris - * alloc.c (Fgarbage_collect): Doc fix. + * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes. 2012-03-02 Eli Zaretskii === modified file 'src/alloc.c' --- src/alloc.c 2012-03-03 03:59:22 +0000 +++ src/alloc.c 2012-03-03 04:18:09 +0000 @@ -6446,7 +6446,9 @@ doc: /* Number of string characters that have been consed so far. */); DEFVAR_INT ("misc-objects-consed", misc_objects_consed, - doc: /* Number of miscellaneous objects that have been consed so far. */); + doc: /* Number of miscellaneous objects that have been consed so far. +These include markers and overlays, plus certain objects not visible +to users. */); DEFVAR_INT ("intervals-consed", intervals_consed, doc: /* Number of intervals that have been consed so far. */);