Sdosfns.o Fint86 Call specific MS-DOS interrupt number INTERRUPT with REGISTERS. Return the updated REGISTER vector. INTERRUPT should be an integer in the range 0 to 255. REGISTERS should be a vector produced by `dos-make-register' and `dos-set-register-value'. (fn INTERRUPT REGISTERS)Fmsdos-memget Read DOS memory at offset ADDRESS into VECTOR. Return the updated VECTOR. (fn ADDRESS VECTOR)Fmsdos-memput Write DOS memory at offset ADDRESS from VECTOR. (fn ADDRESS VECTOR)Fmsdos-set-keyboard Set keyboard layout according to COUNTRY-CODE. If the optional argument ALLKEYS is non-nil, the keyboard is mapped for all keys; otherwise it is only used when the ALT key is pressed. The current keyboard layout is available in dos-keyboard-code. (fn COUNTRY-CODE &optional ALLKEYS)Fmsdos-mouse-p Report whether a mouse is present. (fn)Fmsdos-mouse-init Initialize and enable mouse if available. (fn)Fmsdos-mouse-enable Enable mouse if available. (fn)Fmsdos-mouse-disable Disable mouse if available. (fn)Finsert-startup-screen Insert copy of screen contents prior to starting Emacs. Return nil if startup screen is not available. (fn)Ffile-system-info SKIP: real doc in fileio.c. (fn FILENAME)Vdos-country-code The country code returned by Dos when Emacs was started. Usually this is the international telephone prefix.Vdos-codepage The codepage active when Emacs was started. The following are known: 437 United States 850 Multilingual (Latin I) 852 Slavic (Latin II) 857 Turkish 860 Portugal 861 Iceland 863 Canada (French) 865 Norway/DenmarkVdos-timezone-offset The current timezone offset to UTC in minutes. Implicitly modified when the TZ variable is changed.Vdos-version The (MAJOR . MINOR) Dos version (subject to modification with setver).Vdos-windows-version The (MAJOR . MINOR) Windows version for DOS session on MS-Windows.Vdos-display-scancodes Whether DOS raw keyboard events are displayed as you type. When non-nil, the keyboard scan-codes are displayed at the bottom right corner of the display (typically at the end of the mode line). The output format is: scan code:char code*modifiers.Vdos-hyper-key If set to 1, use right ALT key as hyper key. If set to 2, use right CTRL key as hyper key.Vdos-super-key If set to 1, use right ALT key as super key. If set to 2, use right CTRL key as super key.Vdos-keypad-mode Controls what key code is returned by a key in the numeric keypad. The `numlock ON' action is only taken if no modifier keys are pressed. The value is an integer constructed by adding the following bits together: 0x00 Digit key returns digit (if numlock ON) 0x01 Digit key returns kp-digit (if numlock ON) 0x02 Digit key returns M-digit (if numlock ON) 0x03 Digit key returns edit key (if numlock ON) 0x00 Grey key returns char (if numlock ON) 0x04 Grey key returns kp-key (if numlock ON) 0x00 Digit key returns digit (if numlock OFF) 0x10 Digit key returns kp-digit (if numlock OFF) 0x20 Digit key returns M-digit (if numlock OFF) 0x30 Digit key returns edit key (if numlock OFF) 0x00 Grey key returns char (if numlock OFF) 0x40 Grey key returns kp-key (if numlock OFF) 0x200 ALT-0..ALT-9 in top-row produces shifted codes.Vdos-keyboard-layout Contains the country code for the current keyboard layout. Use msdos-set-keyboard to select another keyboard layout.Vdos-decimal-point The character to produce when kp-decimal key is pressed. If non-zero, this variable contains the character to be returned when the decimal point key in the numeric keypad is pressed when Num Lock is on. If zero, the decimal point key returns the country code specific value.Smsdos.o Fmsdos-set-mouse-buttons Set the number of mouse buttons to use by Emacs. This is useful with mice that report the number of buttons inconsistently, e.g., if the number of buttons is reported as 3, but Emacs only sees 2 of them. This happens with wheeled mice on Windows 9X, for example. (fn NBUTTONS)Fmsdos-remember-default-colors Remember the screen colors of the current frame. (fn FRAME)Frecent-doskeys Return vector of last 100 keyboard input values seen in dos_rawgetc. Each input key receives two values in this vector: first the ASCII code, and then the scan code. (fn)Fmsdos-long-file-names Return non-nil if long file names are supported on MS-DOS. (fn)Fmsdos-downcase-filename Convert alphabetic characters in FILENAME to lower case and return that. When long filenames are supported, doesn't change FILENAME. If FILENAME is not a string, returns nil. The argument object is never altered--the value is a copy. (fn FILENAME)Vdos-unsupported-char-glyph Glyph to display instead of chars not supported by current codepage. This variable is used only by MS-DOS terminals.Sxterm.o Vx-use-underline-position-properties Non-nil means make use of UNDERLINE_POSITION font properties. A value of nil means ignore them. If you encounter fonts with bogus UNDERLINE_POSITION font properties, set this to nil. You can also use `underline-minimum-offset' to override the font's UNDERLINE_POSITION for small font display sizes.Vx-underline-at-descent-line Non-nil means to draw the underline at the same place as the descent line. (If `line-spacing' is in effect, that moves the underline lower by that many pixels.) A value of nil means to draw the underline according to the value of the variable `x-use-underline-position-properties', which is usually at the baseline level. The default value is nil.Vx-mouse-click-focus-ignore-position Non-nil means that a mouse click to focus a frame does not move point. This variable is used only when the window manager requires that you click on a frame to select it (give it focus). In that case, a value of nil, means that the selected window and cursor position changes to reflect the mouse click position, while a non-nil value means that the selected window or cursor position is preserved. This option works by ignoring button press events for a given amount of time after a frame might've been focused. If it does not work for you, try increasing the value of `x-mouse-click-focus-ignore-time'.Vx-mouse-click-focus-ignore-time Number of milliseconds for which to ignore buttons after focus change. This variable only takes effect if `x-mouse-click-focus-ignore-position' is non-nil, and should be adjusted if the default value does not work for whatever reason.Vx-toolkit-scroll-bars Which toolkit scroll bars Emacs uses, if any. A value of nil means Emacs doesn't use toolkit scroll bars. With the X Window system, the value is a symbol describing the X toolkit. Possible values are: gtk, motif, xaw, or xaw3d. With MS Windows, Haiku windowing or Nextstep, the value is t.Vx-ctrl-keysym Which keys Emacs uses for the ctrl modifier. This should be one of the symbols `ctrl', `alt', `hyper', `meta', `super'. For example, `ctrl' means use the Ctrl_L and Ctrl_R keysyms. The default is nil, which is the same as `ctrl'.Vx-alt-keysym Which keys Emacs uses for the alt modifier. This should be one of the symbols `ctrl', `alt', `hyper', `meta', `super'. For example, `alt' means use the Alt_L and Alt_R keysyms. The default is nil, which is the same as `alt'.Vx-hyper-keysym Which keys Emacs uses for the hyper modifier. This should be one of the symbols `ctrl', `alt', `hyper', `meta', `super'. For example, `hyper' means use the Hyper_L and Hyper_R keysyms. The default is nil, which is the same as `hyper'.Vx-meta-keysym Which keys Emacs uses for the meta modifier. This should be one of the symbols `ctrl', `alt', `hyper', `meta', `super'. For example, `meta' means use the Meta_L and Meta_R keysyms. The default is nil, which is the same as `meta'.Vx-super-keysym Which keys Emacs uses for the super modifier. This should be one of the symbols `ctrl', `alt', `hyper', `meta', `super'. For example, `super' means use the Super_L and Super_R keysyms. The default is nil, which is the same as `super'.Vx-wait-for-event-timeout How long to wait for X events. Emacs will wait up to this many seconds to receive X events after making changes which affect the state of the graphical interface. Under some window managers this can take an indefinite amount of time, so it is important to limit the wait. If set to a non-float value, there will be no wait at all.Vx-keysym-table Hash table of character codes indexed by X keysym codes.Vx-frame-normalize-before-maximize Non-nil means normalize frame before maximizing. If this variable is t, Emacs first asks the window manager to give the frame its normal size, and only then the final state, whenever changing from a full-height, full-width or full-both state to the maximized one or when changing from the maximized to the full-height or full-width state. Set this variable only if your window manager cannot handle the transition between the various maximization states.Vx-gtk-use-window-move Non-nil means rely on gtk_window_move to set frame positions. If this variable is t (the default), the GTK build uses the function gtk_window_move to set or store frame positions and disables some time consuming frame position adjustments. In newer versions of GTK, Emacs always uses gtk_window_move and ignores the value of this variable.Vx-scroll-event-delta-factor A scale to apply to pixel deltas reported in scroll events. This option is only effective when Emacs is built with XInput 2 support.Vx-gtk-use-native-input Non-nil means to use GTK for input method support. This provides better support for some modern input methods, and is only effective when Emacs is built with GTK.Vx-set-frame-visibility-more-laxly Non-nil means set frame visibility more laxly. If this is nil, Emacs is more strict when marking a frame as visible. Since this may cause problems on some window managers, this variable can be also set as follows: The value `focus-in' means to mark a frame as visible also when a FocusIn event is received for it on GTK builds. The value `expose' means to mark a frame as visible also when an Expose event is received for it on any X build. The value `t' means to mark a frame as visible in either of these two cases. Note that any non-nil setting may cause invisible frames get erroneously reported as iconified.Vx-input-grab-touch-events Non-nil means to actively grab touch events. This means touch sequences that started on an Emacs frame will reliably continue to receive updates even if the finger moves off the frame, but may cause crashes with some window managers and/or external programs.Vx-dnd-fix-motif-leave Work around Motif bug during drag-and-drop. When non-nil, Emacs will send a motion event containing impossible coordinates to a Motif drop receiver when the mouse moves outside it during a drag-and-drop session, to work around broken implementations of Motif.Vx-dnd-disable-motif-drag Disable the Motif drag protocol during DND. This reduces network usage, but also means you can no longer scroll around inside the Motif window underneath the cursor during drag-and-drop.Vx-dnd-movement-function Function called upon mouse movement on a frame during drag-and-drop. It should either be nil, or accept two arguments FRAME and POSITION, where FRAME is the frame the mouse is on top of, and POSITION is a mouse position list.Vx-dnd-wheel-function Function called upon wheel movement on a frame during drag-and-drop. It should either be nil, or accept four arguments POSITION, BUTTON, STATE and TIME, where POSITION is a mouse position list describing where the wheel moved, BUTTON is the wheel button that was pressed, STATE is the X modifier state at the time of the wheel movement, and TIME is the X server time at which the wheel moved.Vx-dnd-unsupported-drop-function Function called when trying to drop on an unsupported window. This function is called whenever the user tries to drop something on a window that does not support either the XDND or Motif protocols for drag-and-drop. It should return a non-nil value if the drop was handled by the function, and nil if it was not. It should accept several arguments TARGETS, X, Y, ACTION, WINDOW-ID, FRAME, TIME and LOCAL-SELECTION, where TARGETS is the list of targets that was passed to `x-begin-drag', WINDOW-ID is the numeric XID of the window that is being dropped on, X and Y are the root window-relative coordinates where the drop happened, ACTION is the action that was passed to `x-begin-drag', FRAME is the frame which initiated the drag-and-drop operation, TIME is the X server time when the drop happened, and LOCAL-SELECTION is the contents of the `XdndSelection' when `x-begin-drag' was run; its contents can be retrieved by calling the function `x-get-local-selection'. If a symbol is returned, then it will be used as the return value of `x-begin-drag'.Vx-color-cache-bucket-size Max number of buckets allowed per display in the internal color cache. Values less than 1 mean 128. This option is for debugging only.Vx-dnd-targets-list List of drag-and-drop targets. This variable contains the list of drag-and-drop selection targets during a drag-and-drop operation, in the same format as the TARGET argument to `x-begin-drag'.Vx-dnd-native-test-function Function that determines return value of drag-and-drop on Emacs frames. If the value is a function, `x-begin-drag' will call it with two arguments, POS and ACTION, where POS is a mouse position list that specifies the location of the drop, and ACTION is the action specified by the caller of `x-begin-drag'. The function should return a symbol describing what to return from `x-begin-drag' if the drop happens on an Emacs frame. If the value is nil, or the function returns a value that is not a symbol, a drop on an Emacs frame will be canceled.Vx-dnd-preserve-selection-data Preserve selection data after `x-begin-drag' returns. This lets you inspect the contents of `XdndSelection' after a drag-and-drop operation, which is useful when writing tests for drag-and-drop code.Vx-dnd-disable-motif-protocol Disable the Motif drag-and-drop protocols. When non-nil, `x-begin-drag' will not drop onto any window that only supports the Motif drag-and-drop protocols.Vx-dnd-use-unsupported-drop Enable the emulation of drag-and-drop based on the primary selection. When nil, do not use the primary selection and synthetic mouse clicks to emulate the drag-and-drop of `STRING', `UTF8_STRING', `COMPOUND_TEXT' or `TEXT'.Vx-fast-protocol-requests Whether or not X protocol-related functions should wait for errors. When this is nil, functions such as `x-delete-window-property', `x-change-window-property' and `x-send-client-message' will wait for a reply from the X server, and signal any errors that occurred while executing the protocol request. Otherwise, errors will be silently ignored without waiting, which is generally faster.Vx-auto-preserve-selections Whether or not to transfer selection ownership when deleting a frame. When non-nil, deleting a frame that is currently the owner of a selection will cause its ownership to be transferred to another frame on the same display. In addition, when this variable is a list, only preserve the selections whose names are contained within.Vx-input-coding-system Coding system used for input from X input methods. If a symbol and non-nil, this is the coding system that will be used to decode input from X input methods. It does not affect input from GTK native input methods enabled through `x-gtk-use-native-input'.Vx-input-coding-function Function used to determine the coding system used by input methods. It should accept a single argument, a string describing the locale of the input method, and return a coding system that can decode keyboard input generated by said input method.Vx-fast-selection-list List of selections for which `x-selection-exists-p' should be fast. List of selection names as atoms that will be monitored by Emacs for ownership changes when the X server supports the XFIXES extension. The result of the monitoring is then used by `x-selection-exists-p' to avoid a server round trip, which is important as it is called while updating the tool bar. The value of this variable is only read upon connection setup.Vx-allow-focus-stealing How to bypass window manager focus stealing prevention. Some window managers prevent `x-focus-frame' from activating the given frame when Emacs is in the background, which is especially prone to cause problems when the Emacs server wants to activate itself. In addition, when an old-fashioned (pre-EWMH) window manager is being run and `x-no-window-manager' is nil, the X server will not let Emacs focus itself if another program was focused after the last time Emacs obtained the input focus. This variable specifies the strategy used to activate frames when that is the case, and has several valid values (any other value means to not bypass window manager focus stealing prevention): - The symbol `imitate-pager', which means to pretend that Emacs is a pager. - The symbol `newer-time', which means to fetch the current time from the X server and use it to activate the frame. - The symbol `raise-and-focus', which means to raise the window and focus it manually.Vx-use-fast-mouse-position How to make `mouse-position' faster. `mouse-position' and `mouse-pixel-position' default to querying the X server for the window under the mouse pointer. This results in accurate results, but is also very slow when the X connection has moderate to high latency. Setting this variable to a non-nil value makes Emacs query only for the position of the pointer, which is usually faster. Doing so improves the performance of dragging to select text over slow X connections. If that is still too slow, setting this variable to the symbol `really-fast' will make Emacs return only cached values.Sxfns.o Fx-wm-set-size-hint Send the size hints for frame FRAME to the window manager. If FRAME is omitted or nil, use the selected frame. Signal error if FRAME is not an X frame. (fn &optional FRAME)Fx-create-frame Make a new X window, which is called a "frame" in Emacs terms. Return an Emacs frame object. PARMS is an alist of frame parameters. If the parameters specify that the frame should not have a minibuffer, and do not specify a specific minibuffer window to use, then `default-minibuffer-frame' must be a frame whose minibuffer can be shared by the new frame. This function is an internal primitive--use `make-frame' instead. (fn PARMS)Fxw-color-defined-p Internal function called by `color-defined-p'. (Note that the Nextstep version of this function ignores FRAME.) (fn COLOR &optional FRAME)Fxw-color-values Internal function called by `color-values'. (Note that the Nextstep version of this function ignores FRAME.) (fn COLOR &optional FRAME)Fxw-display-color-p Internal function called by `display-color-p'. (fn &optional TERMINAL)Fx-display-grayscale-p Return t if the X display supports shades of gray. Note that color displays do support shades of gray. The optional argument TERMINAL specifies which display to ask about. TERMINAL should be a terminal object, a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. (fn &optional TERMINAL)Fx-display-pixel-width Return the width in pixels of the X display TERMINAL. The optional argument TERMINAL specifies which display to ask about. TERMINAL should be a terminal object, a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. (On MS Windows, this function does not accept terminal objects.) On "multi-monitor" setups this refers to the pixel width for all physical monitors associated with TERMINAL. To get information for each physical monitor, use `display-monitor-attributes-list'. (fn &optional TERMINAL)Fx-display-pixel-height Return the height in pixels of the X display TERMINAL. The optional argument TERMINAL specifies which display to ask about. TERMINAL should be a terminal object, a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. (On MS Windows, this function does not accept terminal objects.) On "multi-monitor" setups this refers to the pixel height for all physical monitors associated with TERMINAL. To get information for each physical monitor, use `display-monitor-attributes-list'. (fn &optional TERMINAL)Fx-display-planes Return the number of bitplanes of the X display TERMINAL. The optional argument TERMINAL specifies which display to ask about. TERMINAL should be a terminal object, a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. (On MS Windows, this function does not accept terminal objects.) (fn &optional TERMINAL)Fx-display-color-cells Return the number of color cells of the X display TERMINAL. The optional argument TERMINAL specifies which display to ask about. TERMINAL should be a terminal object, a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. (On MS Windows, this function does not accept terminal objects.) (fn &optional TERMINAL)Fx-server-max-request-size Return the maximum request size of the X server of display TERMINAL. The optional argument TERMINAL specifies which display to ask about. TERMINAL should be a terminal object, a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. On MS Windows, this function just returns 1. On Nextstep, this function just returns nil. (fn &optional TERMINAL)Fx-server-vendor Return the "vendor ID" string of the GUI software on TERMINAL. (Labeling every distributor as a "vendor" embodies the false assumption that operating systems cannot be developed and distributed noncommercially.) The optional argument TERMINAL specifies which display to ask about. For GNU and Unix systems, this queries the X server software. For MS Windows and Nextstep the result is hard-coded. TERMINAL should be a terminal object, a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. (fn &optional TERMINAL)Fx-server-version Return the version numbers of the GUI software on TERMINAL. The value is a list of three integers specifying the version of the GUI software in use. For GNU and Unix system, the first 2 numbers are the version of the X Protocol used on TERMINAL and the 3rd number is the distributor-specific release number. For MS Windows, the 3 numbers report the OS major and minor version and build number. For Nextstep, the first 2 numbers are hard-coded and the 3rd represents the OS version. For Haiku, all 3 numbers are hard-coded. See also the function `x-server-vendor'. The optional argument TERMINAL specifies which display to ask about. TERMINAL should be a terminal object, a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. (fn &optional TERMINAL)Fx-server-input-extension-version Return the version of the X Input Extension supported by TERMINAL. The value is nil if TERMINAL's X server doesn't support the X Input Extension extension, or if Emacs doesn't support the version present on that server. Otherwise, the return value is a list of the major and minor versions of the X Input Extension extension running on that server. (fn &optional TERMINAL)Fx-display-screens Return the number of screens on the X server of display TERMINAL. The optional argument TERMINAL specifies which display to ask about. TERMINAL should be a terminal object, a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. On MS Windows, this function just returns 1. On Nextstep, "screen" is in X terminology, not that of Nextstep. For the number of physical monitors, use `(length (display-monitor-attributes-list TERMINAL))' instead. (fn &optional TERMINAL)Fx-display-mm-height Return the height in millimeters of the X display TERMINAL. The optional argument TERMINAL specifies which display to ask about. TERMINAL should be a terminal object, a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. (On MS Windows, this function does not accept terminal objects.) On "multi-monitor" setups this refers to the height in millimeters for all physical monitors associated with TERMINAL. To get information for each physical monitor, use `display-monitor-attributes-list'. (fn &optional TERMINAL)Fx-display-mm-width Return the width in millimeters of the X display TERMINAL. The optional argument TERMINAL specifies which display to ask about. TERMINAL should be a terminal object, a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. (On MS Windows, this function does not accept terminal objects.) On "multi-monitor" setups this refers to the width in millimeters for all physical monitors associated with TERMINAL. To get information for each physical monitor, use `display-monitor-attributes-list'. (fn &optional TERMINAL)Fx-display-backing-store Return an indication of whether X display TERMINAL does backing store. The optional argument TERMINAL specifies which display to ask about. TERMINAL should be a terminal object, a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. The value may be `always', `when-mapped', or `not-useful'. On Nextstep, the value may be `buffered', `retained', or `non-retained'. On MS Windows, this returns nothing useful. (fn &optional TERMINAL)Fx-display-visual-class Return the visual class of the X display TERMINAL. The value is one of the symbols `static-gray', `gray-scale', `static-color', `pseudo-color', `true-color', or `direct-color'. (On MS Windows, the second and last result above are not possible.) The optional argument TERMINAL specifies which display to ask about. TERMINAL should a terminal object, a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. (On MS Windows, this function does not accept terminal objects.) (fn &optional TERMINAL)Fx-display-save-under Return t if the X display TERMINAL supports the save-under feature. The optional argument TERMINAL specifies which display to ask about. TERMINAL should be a terminal object, a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. On MS Windows, this just returns nil. (fn &optional TERMINAL)Fx-display-monitor-attributes-list Return a list of physical monitor attributes on the X display TERMINAL. The optional argument TERMINAL specifies which display to ask about. TERMINAL should be a terminal object, a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. In addition to the standard attribute keys listed in `display-monitor-attributes-list', the following keys are contained in the attributes: source -- String describing the source from which multi-monitor information is obtained, one of "Gdk", "XRandR 1.5", "XRandr", "Xinerama", or "fallback" Internal use only, use `display-monitor-attributes-list' instead. (fn &optional TERMINAL)Fx-frame-geometry Return geometric attributes of FRAME. FRAME must be a live frame and defaults to the selected one. The return value is an association list of the attributes listed below. All height and width values are in pixels. `outer-position' is a cons of the outer left and top edges of FRAME relative to the origin - the position (0, 0) - of FRAME's display. `outer-size' is a cons of the outer width and height of FRAME. The outer size includes the title bar and the external borders as well as any menu and/or tool bar of frame. For a child frame the value includes FRAME's X borders, if any. `external-border-size' is a cons of the horizontal and vertical width of FRAME's external borders as supplied by the window manager. `title-bar-size' is a cons of the width and height of the title bar of FRAME as supplied by the window manager. If both of them are zero, FRAME has no title bar. If only the width is zero, Emacs was not able to retrieve the width information. `menu-bar-external', if non-nil, means the menu bar is external (never included in the inner edges of FRAME). `menu-bar-size' is a cons of the width and height of the menu bar of FRAME. `tool-bar-external', if non-nil, means the tool bar is external (never included in the inner edges of FRAME). `tool-bar-position' tells on which side the tool bar on FRAME is and can be one of `left', `top', `right' or `bottom'. If this is nil, FRAME has no tool bar. `tool-bar-size' is a cons of the width and height of the tool bar of FRAME. `internal-border-width' is the width of the internal border of FRAME. `outer-border-width' is the width of the X border of FRAME. The X border is usually shown only for frames without window manager decorations, such as child and tooltip frames. (fn &optional FRAME)Fx-frame-edges Return edge coordinates of FRAME. FRAME must be a live frame and defaults to the selected one. The return value is a list of the form (LEFT, TOP, RIGHT, BOTTOM). All values are in pixels relative to the origin - the position (0, 0) - of FRAME's display. If optional argument TYPE is the symbol `outer-edges', return the outer edges of FRAME. The outer edges comprise the decorations of the window manager (like the title bar or external borders) as well as any external menu or tool bar of FRAME. If optional argument TYPE is the symbol `native-edges' or nil, return the native edges of FRAME. The native edges exclude the decorations of the window manager and any external menu or tool bar of FRAME. If TYPE is the symbol `inner-edges', return the inner edges of FRAME. These edges exclude title bar, any borders, menu bar or tool bar of FRAME. (fn &optional FRAME TYPE)Fx-frame-list-z-order Return list of Emacs' frames, in Z (stacking) order. The optional argument TERMINAL specifies which display to ask about. TERMINAL should be either a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. Return nil if TERMINAL contains no Emacs frame. As a special case, if TERMINAL is non-nil and specifies a live frame, return the child frames of that frame in Z (stacking) order. Frames are listed from topmost (first) to bottommost (last). (fn &optional TERMINAL)Fx-frame-restack Restack FRAME1 below FRAME2. This means that if both frames are visible and the display areas of these frames overlap, FRAME2 (partially) obscures FRAME1. If optional third argument ABOVE is non-nil, restack FRAME1 above FRAME2. This means that if both frames are visible and the display areas of these frames overlap, FRAME1 (partially) obscures FRAME2. This may be thought of as an atomic action performed in two steps: The first step removes FRAME1's window-step window from the display. The second step reinserts FRAME1's window below (above if ABOVE is true) that of FRAME2. Hence the position of FRAME2 in its display's Z (stacking) order relative to all other frames excluding FRAME1 remains unaltered. Some window managers may refuse to restack windows. (fn FRAME1 FRAME2 &optional ABOVE)Fx-mouse-absolute-pixel-position Return absolute position of mouse cursor in pixels. The position is returned as a cons cell (X . Y) of the coordinates of the mouse cursor position in pixels relative to a position (0, 0) of the selected frame's display. (fn)Fx-set-mouse-absolute-pixel-position Move mouse pointer to absolute pixel position (X, Y). The coordinates X and Y are interpreted in pixels relative to a position (0, 0) of the selected frame's display. (fn X Y)Fx-begin-drag Begin dragging contents on FRAME, with targets TARGETS. TARGETS is a list of strings, which defines the X selection targets that will be available to the drop target. Block until the mouse buttons are released, then return the action chosen by the target, or `nil' if the drop was not accepted by the drop target. Dragging starts when the mouse is pressed on FRAME, and the contents of the selection `XdndSelection' will be sent to the X window underneath the mouse pointer (the drop target) when the mouse button is released. ACTION is a symbol which tells the target what it should do, and can be one of the following: - `XdndActionCopy', which means to copy the contents from the drag source (FRAME) to the drop target. - `XdndActionMove', which means to first take the contents of `XdndSelection', and to delete whatever was saved into that selection afterwards. `XdndActionPrivate' is also a valid return value, and means that the drop target chose to perform an unspecified or unknown action. The source is also expected to cooperate with the target to perform the action chosen by the target. For example, callers should delete the buffer text that was dragged if `XdndActionMove' is returned. There are also some other valid values of ACTION that depend on details of both the drop target's implementation details and that of Emacs. For that reason, they are not mentioned here. Consult "Drag-and-Drop Protocol for the X Window System" for more details: https://freedesktop.org/wiki/Specifications/XDND/. If RETURN-FRAME is non-nil, this function will return the frame if the mouse pointer moves onto an Emacs frame, after first moving out of FRAME. (This is not guaranteed to work on some systems.) If RETURN-FRAME is the symbol `now', any frame underneath the mouse pointer will be returned immediately. If ACTION is a list and not nil, its elements are assumed to be a cons of (ITEM . STRING), where ITEM is the name of an action, and STRING is a string describing ITEM to the user. The drop target is expected to prompt the user to choose between any of the actions in the list. If ACTION is not specified or nil, `XdndActionCopy' is used instead. If ALLOW-CURRENT-FRAME is not specified or nil, then the drop target is allowed to be FRAME. Otherwise, no action will be taken if the mouse buttons are released on top of FRAME. If FOLLOW-TOOLTIP is non-nil, any tooltip currently being displayed will be moved to follow the mouse pointer while the drag is in progress. Note that this does not work with system tooltips (tooltips created when `use-system-tooltips' is non-nil). This function will sometimes return immediately if no mouse buttons are currently held down. It should only be called when it is known that mouse buttons are being held down, such as immediately after a `down-mouse-1' (or similar) event. (fn TARGETS &optional ACTION FRAME RETURN-FRAME ALLOW-CURRENT-FRAME FOLLOW-TOOLTIP)Fx-open-connection Open a connection to a display server. DISPLAY is the name of the display to connect to. Optional second arg XRM-STRING is a string of resources in xrdb format. If the optional third arg MUST-SUCCEED is non-nil, terminate Emacs if we can't open the connection. (In the Nextstep version, the last two arguments are currently ignored.) (fn DISPLAY &optional XRM-STRING MUST-SUCCEED)Fx-close-connection Close the connection to TERMINAL's X server. For TERMINAL, specify a terminal object, a frame or a display name (a string). If TERMINAL is nil, that stands for the selected frame's terminal. (On MS Windows, this function does not accept terminal objects.) (fn TERMINAL)Fx-display-list Return the list of display names that Emacs has connections to. (fn)Fx-synchronize If ON is non-nil, report X errors as soon as the erring request is made. This function has an effect only on X Windows. With MS Windows, it is defined but does nothing. If ON is nil, allow buffering of requests. Turning on synchronization prohibits the Xlib routines from buffering requests and seriously degrades performance, but makes debugging much easier. The optional second argument TERMINAL specifies which display to act on. TERMINAL should be a terminal object, a frame or a display name (a string). If TERMINAL is omitted or nil, that stands for the selected frame's display. (fn ON &optional TERMINAL)Fx-change-window-property Change window property PROP to VALUE on the X window of FRAME. PROP must be a string. VALUE may be a string or a list of conses, numbers and/or strings. If an element in the list is a string, it is converted to an atom and the value of the atom is used. If an element is a cons, it is converted to a 32 bit number where the car is the 16 top bits and the cdr is the lower 16 bits. FRAME nil or omitted means use the selected frame. If TYPE is given and non-nil, it is the name of the type of VALUE. If TYPE is not given or nil, the type is STRING. FORMAT gives the size in bits of each element if VALUE is a list. It must be one of 8, 16 or 32. If VALUE is a string or FORMAT is nil or not given, FORMAT defaults to 8. If OUTER-P is non-nil, the property is changed for the outer X window of FRAME. Default is to change on the edit X window. If WINDOW-ID is non-nil, change the property of that window instead of FRAME's X window; the number 0 denotes the root window. This argument is separate from FRAME because window IDs are not unique across X displays or screens on the same display, so FRAME provides context for the window ID. If VALUE is a string and FORMAT is 32, then the format of VALUE is system-specific. VALUE must contain unsigned integer data in native endian-ness in multiples of the size of the C type 'long': the low 32 bits of each such number are used as the value of each element of the property. Wait for the request to complete and signal any error, unless `x-fast-protocol-requests' is non-nil, in which case errors will be silently ignored. (fn PROP VALUE &optional FRAME TYPE FORMAT OUTER-P WINDOW-ID)Fx-delete-window-property Remove window property PROP from X window of FRAME. FRAME nil or omitted means use the selected frame. If WINDOW-ID is non-nil, remove property from that window instead of FRAME's X window; the number 0 denotes the root window. This argument is separate from FRAME because window IDs are not unique across X displays or screens on the same display, so FRAME provides context for the window ID. Value is PROP. Wait for the request to complete and signal any error, unless `x-fast-protocol-requests' is non-nil, in which case errors will be silently ignored. (fn PROP &optional FRAME WINDOW-ID)Fx-window-property Value is the value of window property PROP on FRAME. If FRAME is nil or omitted, use the selected frame. On X Windows, the following optional arguments are also accepted: If TYPE is nil or omitted, get the property as a string. Otherwise TYPE is the name of the atom that denotes the expected type. If TYPE is the string "AnyPropertyType", decode and return the data regardless of what the type really is. The format of the data returned is the same as a selection conversion to the given type. For example, if `x-get-selection-internal' returns an integer when the selection data is a given type, `x-window-property' will do the same for that type. If WINDOW-ID is non-nil, get the property of that window instead of FRAME's X window; the number 0 denotes the root window. This argument is separate from FRAME because window IDs are not unique across X displays, so FRAME provides context for the window ID. If DELETE-P is non-nil, delete the property after retrieving it. If VECTOR-RET-P is non-nil, return a vector of values instead of a string. X allows an arbitrary number of properties to be set on any window. However, properties are most often set by the window manager or other programs on the root window or FRAME's X window in order to communicate information to Emacs and other programs. Most of these properties are specified as part of the Extended Window Manager Hints and the Inter-Client Communication Conventions Manual, which are located here: https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html and https://x.org/releases/X11R7.6/doc/xorg-docs/specs/ICCCM/icccm.html Return value is nil if FRAME doesn't have a property with name PROP or if PROP has no value of TYPE (always a string in the MS Windows case). (fn PROP &optional FRAME TYPE WINDOW-ID DELETE-P VECTOR-RET-P)Fx-window-property-attributes Retrieve metadata about window property PROP on FRAME. If FRAME is nil or omitted, use the selected frame. If WINDOW-ID is non-nil, get the property of that window instead of FRAME's X window; the number 0 denotes the root window. This argument is separate from FRAME because window IDs are not unique across X displays or screens on the same display, so FRAME provides context for the window ID. Return value is nil if FRAME doesn't have a property named PROP. Otherwise, the return value is a vector with the following fields: 0. The property type, as an integer. The symbolic name of the type can be obtained with `x-get-atom-name'. 1. The format of each element; one of 8, 16, or 32. 2. The length of the property, in number of elements. (fn PROP &optional FRAME WINDOW-ID)Fx-translate-coordinates Translate coordinates from FRAME. Translate the given coordinates SOURCE-X and SOURCE-Y from SOURCE-WINDOW's coordinate space to that of DEST-WINDOW, on FRAME. If SOURCE-X and SOURCE-Y are nil, use 0 instead. FRAME can either be a terminal or a frame. If nil, it defaults to the selected frame. SOURCE-WINDOW must be an X window ID, 0 (which means to use the root window), or nil, which means to use FRAME's inner window. DEST-WINDOW must be another X window ID, or nil (which means to use the root window). Return a list of (X Y CHILD) if the given coordinates are on the same screen, or nil otherwise, where X and Y are the coordinates in DEST-WINDOW's coordinate space, and CHILD is the window ID of any mapped child in DEST-WINDOW at those coordinates, or nil if there is no such window. If REQUIRE-CHILD is nil, avoid fetching CHILD if it would result in an avoidable request to the X server, thereby improving performance when the X connection is over a slow network. Otherwise, always obtain the mapped child window from the X server. (fn FRAME &optional SOURCE-WINDOW DEST-WINDOW SOURCE-X SOURCE-Y REQUIRE-CHILD)Fx-show-tip Show STRING in a "tooltip" window on frame FRAME. A tooltip window is a small X window displaying a string. This is an internal function; Lisp code should call `tooltip-show'. FRAME nil or omitted means use the selected frame. PARMS is an optional list of frame parameters which can be used to change the tooltip's appearance. Automatically hide the tooltip after TIMEOUT seconds. TIMEOUT nil means use the default timeout from the `x-show-tooltip-timeout' variable. If the list of frame parameters PARMS contains a `left' parameter, display the tooltip at that x-position. If the list of frame parameters PARMS contains no `left' but a `right' parameter, display the tooltip right-adjusted at that x-position. Otherwise display it at the x-position of the mouse, with offset DX added (default is 5 if DX isn't specified). Likewise for the y-position: If a `top' frame parameter is specified, it determines the position of the upper edge of the tooltip window. If a `bottom' parameter but no `top' frame parameter is specified, it determines the position of the lower edge of the tooltip window. Otherwise display the tooltip window at the y-position of the mouse, with offset DY added (default is -10). A tooltip's maximum size is specified by `x-max-tooltip-size'. Text larger than the specified size is clipped. (fn STRING &optional FRAME PARMS TIMEOUT DX DY)Fx-hide-tip Hide the current tooltip window, if there is any. Value is t if tooltip was open, nil otherwise. (fn)Fx-double-buffered-p Return t if FRAME is being double buffered. (fn &optional FRAME)Fx-uses-old-gtk-dialog Return t if the old Gtk+ file selection dialog is used. (fn)Fx-file-dialog SKIP: real doc in USE_GTK definition in xfns.c. (fn PROMPT DIR &optional DEFAULT-FILENAME MUSTMATCH ONLY-DIR-P)Fx-file-dialog Read file name, prompting with PROMPT in directory DIR. Use a file selection dialog. Select DEFAULT-FILENAME in the dialog's file selection box, if specified. If MUSTMATCH is non-nil, the returned file or directory must exist. This function is defined only on NS, Haiku, MS Windows, and X Windows with the Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored. Otherwise, if ONLY-DIR-P is non-nil, the user can select only directories. On MS Windows 7 and later, the file selection dialog "remembers" the last directory where the user selected a file, and will open that directory instead of DIR on subsequent invocations of this function with the same value of DIR as in previous invocations; this is standard MS Windows behavior. (fn PROMPT DIR &optional DEFAULT-FILENAME MUSTMATCH ONLY-DIR-P)Fx-select-font Read a font using a GTK dialog. Return either a font spec (for GTK versions >= 3.2) or a string containing a GTK-style font name. FRAME is the frame on which to pop up the font chooser. If omitted or nil, it defaults to the selected frame. (fn &optional FRAME IGNORED)Fx-backspace-delete-keys-p Check if both Backspace and Delete keys are on the keyboard of FRAME. FRAME nil means use the selected frame. Value is t if we know that both keys are present, and are mapped to the usual X keysyms. Value is `lambda' if we cannot determine if both keys are present and mapped to the usual X keysyms. (fn &optional FRAME)Fx-get-modifier-masks Return the X modifier masks corresponding to keyboard modifiers. The optional second argument TERMINAL specifies which display to fetch modifier masks from. TERMINAL should be a terminal object, a frame or a display name (a string). If TERMINAL is omitted or nil, that stands for the selected frame's display. Return a list of (HYPER SUPER ALT SHIFT-LOCK META), each element being a number describing the modifier mask for the corresponding Emacs modifier. (fn &optional TERMINAL)Fx-export-frames Return image data of FRAMES in TYPE format. FRAMES should be nil (the selected frame), a frame, or a list of frames (each of which corresponds to one page). Each frame should be visible. Optional arg TYPE should be either `pdf' (default), `png', `postscript', or `svg'. Supported types are determined by the compile-time configuration of cairo. Note: Text drawn with the `x' font backend is shown with hollow boxes unless TYPE is `png'. (fn &optional FRAMES TYPE)Fx-page-setup-dialog Pop up a page setup dialog. The current page setup can be obtained using `x-get-page-setup'. (fn)Fx-get-page-setup Return the value of the current page setup. The return value is an alist containing the following keys: orientation: page orientation (symbol `portrait', `landscape', `reverse-portrait', or `reverse-landscape'). width, height: page width/height in points not including margins. left-margin, right-margin, top-margin, bottom-margin: print margins, which is the parts of the page that the printer cannot print on, in points. The paper width can be obtained as the sum of width, left-margin, and right-margin values if the page orientation is `portrait' or `reverse-portrait'. Otherwise, it is the sum of width, top-margin, and bottom-margin values. Likewise, the paper height is the sum of height, top-margin, and bottom-margin values if the page orientation is `portrait' or `reverse-portrait'. Otherwise, it is the sum of height, left-margin, and right-margin values. (fn)Fx-print-frames-dialog Pop up a print dialog to print the current contents of FRAMES. FRAMES should be nil (the selected frame), a frame, or a list of frames (each of which corresponds to one page). Each frame should be visible. Note: Text drawn with the `x' font backend is shown with hollow boxes. (fn &optional FRAMES)Fx-gtk-debug Toggle interactive GTK debugging. (fn ENABLE)Fx-display-set-last-user-time Set the last user time of TERMINAL to TIME-OBJECT. TIME-OBJECT is the X server time, in milliseconds, of the last user interaction. This is the timestamp that `x-get-selection-internal' will use by default to fetch selection data. The optional second argument TERMINAL specifies which display to act on. TERMINAL should be a terminal object, a frame or a display name (a string). If TERMINAL is omitted or nil, that stands for the selected frame's display. (fn TIME-OBJECT &optional TERMINAL)Fx-internal-focus-input-context Focus and set the client window of all focused frames' GTK input context. If FOCUS is nil, focus out and remove the client window instead. This should be called from a variable watcher for `x-gtk-use-native-input'. (fn FOCUS)Vx-pointer-shape The shape of the pointer when over text. Changing the value does not affect existing frames unless you set the mouse color.Vx-nontext-pointer-shape The shape of the pointer when not over text. This variable takes effect when you create a new frame or when you set the mouse color.Vx-hourglass-pointer-shape The shape of the pointer when Emacs is busy. This variable takes effect when you create a new frame or when you set the mouse color.Vx-mode-pointer-shape The shape of the pointer when over the mode line. This variable takes effect when you create a new frame or when you set the mouse color.Vx-sensitive-text-pointer-shape The shape of the pointer when over mouse-sensitive text. This variable takes effect when you create a new frame or when you set the mouse color.Vx-window-horizontal-drag-cursor Pointer shape to use for indicating a window can be dragged horizontally. This variable takes effect when you create a new frame or when you set the mouse color.Vx-window-vertical-drag-cursor Pointer shape to use for indicating a window can be dragged vertically. This variable takes effect when you create a new frame or when you set the mouse color.Vx-window-left-edge-cursor Pointer shape indicating a left x-window edge can be dragged. This variable takes effect when you create a new frame or when you set the mouse color.Vx-window-top-left-corner-cursor Pointer shape indicating a top left x-window corner can be dragged. This variable takes effect when you create a new frame or when you set the mouse color.Vx-window-top-edge-cursor Pointer shape indicating a top x-window edge can be dragged. This variable takes effect when you create a new frame or when you set the mouse color.Vx-window-top-right-corner-cursor Pointer shape indicating a top right x-window corner can be dragged. This variable takes effect when you create a new frame or when you set the mouse color.Vx-window-right-edge-cursor Pointer shape indicating a right x-window edge can be dragged. This variable takes effect when you create a new frame or when you set the mouse color.Vx-window-bottom-right-corner-cursor Pointer shape indicating a bottom right x-window corner can be dragged. This variable takes effect when you create a new frame or when you set the mouse color.Vx-window-bottom-edge-cursor Pointer shape indicating a bottom x-window edge can be dragged. This variable takes effect when you create a new frame or when you set the mouse color.Vx-window-bottom-left-corner-cursor Pointer shape indicating a bottom left x-window corner can be dragged. This variable takes effect when you create a new frame or when you set the mouse color.Vx-cursor-fore-pixel A string indicating the foreground color of the cursor box.Vx-max-tooltip-size Maximum size for tooltips. Value is a pair (COLUMNS . ROWS). Text larger than this is clipped.Vx-no-window-manager Non-nil if no X window manager is in use. Emacs doesn't try to figure this out; this is always nil unless you set it to something else.Vx-pixel-size-width-font-regexp Regexp matching a font name whose width is the same as `PIXEL_SIZE'. Since Emacs gets the width of a font matching this regexp from the PIXEL_SIZE field of the name, the font-finding mechanism gets faster for such a font. This is especially effective for large fonts such as Chinese, Japanese, and Korean.Vx-gtk-use-old-file-dialog Non-nil means prompt with the old GTK file selection dialog. If nil or if the file selection dialog is not available, the new GTK file chooser is used instead. To turn off all file dialogs set the variable `use-file-dialog'.Vx-gtk-show-hidden-files If non-nil, the GTK file chooser will by default show hidden files. Note that this is just the default, there is a toggle button on the file chooser to show or not show hidden files on a case by case basis.Vx-gtk-file-dialog-help-text If non-nil, the GTK file chooser will show additional help text. If more space for files in the file chooser dialog is wanted, set this to nil to turn the additional text off.Vx-gtk-resize-child-frames If non-nil, resize child frames specially with GTK builds. If this is nil, resize child frames like any other frames. This is the default and usually works with most desktops. Some desktop environments (GNOME shell in particular when using the mutter window manager), however, may refuse to resize a child frame when Emacs is built with GTK3. For those environments, the two settings below are provided. If this equals the symbol `hide', Emacs temporarily hides the child frame during resizing. This approach seems to work reliably, may however induce some flicker when the frame is made visible again. If this equals the symbol `resize-mode', Emacs uses GTK's resize mode to always trigger an immediate resize of the child frame. This method is deprecated by GTK and may not work in future versions of that toolkit. It also may freeze Emacs when used with other desktop environments. It avoids, however, the unpleasant flicker induced by the hiding approach. This variable is considered a temporary workaround and will be hopefully eliminated in future versions of Emacs.Vmotif-version-string Version info for LessTif/Motif.Vgtk-version-string Version info for GTK+.Vcairo-version-string Version info for cairo.Sxmenu.o Fx-menu-bar-open-internal SKIP: real doc in USE_GTK definition in xmenu.c. (fn &optional FRAME)Fx-menu-bar-open-internal Start key navigation of the menu bar in FRAME. This initially opens the first menu bar item and you can then navigate with the arrow keys, select a menu entry with the return key or cancel with the escape key. If FRAME has no menu bar this function does nothing. If FRAME is nil or not given, use the selected frame. (fn &optional FRAME)Fmenu-or-popup-active-p Return t if a menu or popup dialog is active. (On MS Windows, this refers to the selected frame.) (fn)Sxselect.o Fx-own-selection-internal Assert an X selection of type SELECTION and value VALUE. SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. (Those are literal upper-case symbol names, since that's what X expects.) VALUE is typically a string, or a cons of two markers, but may be anything that the functions on `selection-converter-alist' know about. FRAME should be a frame that should own the selection. If omitted or nil, it defaults to the selected frame. On Nextstep, FRAME is unused. (fn SELECTION VALUE &optional FRAME)Fx-get-selection-internal Return text selected from some X window. SELECTION-SYMBOL is typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. (Those are literal upper-case symbol names, since that's what X expects.) TARGET-TYPE is the type of data desired, typically `STRING'. TIME-STAMP is the time to use in the XConvertSelection call for foreign selections. If omitted, defaults to the time for the last event. TERMINAL should be a terminal object or a frame specifying the X server to query. If omitted or nil, that stands for the selected frame's display, or the first available X display. On Nextstep, TIME-STAMP and TERMINAL are unused. (fn SELECTION-SYMBOL TARGET-TYPE &optional TIME-STAMP TERMINAL)Fx-disown-selection-internal If we own the selection SELECTION, disown it. Disowning it means there is no such selection. Sets the last-change time for the selection to TIME-OBJECT (by default the time of the last event). TERMINAL should be a terminal object or a frame specifying the X server to query. If omitted or nil, that stands for the selected frame's display, or the first available X display. On Nextstep, the TIME-OBJECT and TERMINAL arguments are unused. On MS-DOS, all this does is return non-nil if we own the selection. (fn SELECTION &optional TIME-OBJECT TERMINAL)Fx-selection-owner-p Whether the current Emacs process owns the given X Selection. The arg should be the name of the selection in question, typically one of the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. (Those are literal upper-case symbol names, since that's what X expects.) For convenience, the symbol nil is the same as `PRIMARY', and t is the same as `SECONDARY'. TERMINAL should be a terminal object or a frame specifying the X server to query. If omitted or nil, that stands for the selected frame's display, or the first available X display. On Nextstep, TERMINAL is unused. (fn &optional SELECTION TERMINAL)Fx-selection-exists-p Whether there is an owner for the given X selection. SELECTION should be the name of the selection in question, typically one of the symbols `PRIMARY', `SECONDARY', `CLIPBOARD', or `CLIPBOARD_MANAGER' (X expects these literal upper-case names.) The symbol nil is the same as `PRIMARY', and t is the same as `SECONDARY'. TERMINAL should be a terminal object or a frame specifying the X server to query. If omitted or nil, that stands for the selected frame's display, or the first available X display. On Nextstep, TERMINAL is unused. (fn &optional SELECTION TERMINAL)Fx-get-local-selection Run selection converters for VALUE, and return the result. TARGET is the selection target that is used to find a suitable converter. VALUE is a list of 4 values NAME, SELECTION-VALUE, TIMESTAMP and FRAME. NAME is the name of the selection that will be passed to selection converters, SELECTION-VALUE is the value of the selection used by the converter, TIMESTAMP is not meaningful (but must be a number that fits in an X timestamp), and FRAME is the frame describing the terminal for which the selection converter will be run. (fn &optional VALUE TARGET)Fx-get-atom-name Return the X atom name for VALUE as a string. VALUE may be a number or a cons where the car is the upper 16 bits and the cdr is the lower 16 bits of a 32 bit value. Use the display for FRAME or the current frame if FRAME is not given or nil. If the value is 0 or the atom is not known, return the empty string. (fn VALUE &optional FRAME)Fx-register-dnd-atom Request that dnd events are made for ClientMessages with ATOM. ATOM can be a symbol or a string. The ATOM is interned on the display that FRAME is on. If FRAME is nil, the selected frame is used. (fn ATOM &optional FRAME)Fx-send-client-message Send a client message of MESSAGE-TYPE to window DEST on DISPLAY. For DISPLAY, specify either a frame or a display name (a string). If DISPLAY is nil, that stands for the selected frame's display. DEST may be a number, in which case it is a Window id. The value 0 may be used to send to the root window of the DISPLAY. If DEST is a cons, it is converted to a 32 bit number with the high 16 bits from the car and the lower 16 bit from the cdr. That number is then used as a window id. If DEST is a frame the event is sent to the outer window of that frame. A value of nil means the currently selected frame. If DEST is the string "PointerWindow" the event is sent to the window that contains the pointer. If DEST is the string "InputFocus" the event is sent to the window that has the input focus. FROM is the frame sending the event. Use nil for currently selected frame. MESSAGE-TYPE is the name of an Atom as a string. FORMAT must be one of 8, 16 or 32 and determines the size of the values in bits. VALUES is a list of numbers, cons and/or strings containing the values to send. If a value is a string, it is converted to an Atom and the value of the Atom is sent. If a value is a cons, it is converted to a 32 bit number with the high 16 bits from the car and the lower 16 bit from the cdr. If more values than fits into the event is given, the excessive values are ignored. Wait for the event to be sent and signal any error, unless `x-fast-protocol-requests' is non-nil, in which case errors will be silently ignored. (fn DISPLAY DEST FROM MESSAGE-TYPE FORMAT VALUES)Vselection-converter-alist An alist associating X Windows selection-types with functions. These functions are called to convert the selection, with three args: the name of the selection (typically `PRIMARY', `SECONDARY', or `CLIPBOARD'); a desired type to which the selection should be converted; and the local selection value (whatever was given to `x-own-selection-internal'). On X Windows, the function can also be a cons of (PREDICATE . FUNCTION), where PREDICATE determines whether or not the selection type will appear in the list of selection types available to other programs, and FUNCTION is the function which is actually called. PREDICATE is called with the same arguments as FUNCTION, and should return a non-nil value if the data type is to appear in that list. The function should return the value to send to the X server (typically a string). A return value of nil means that the conversion could not be done. A return value which is the symbol `NULL' means that a side-effect was executed, and there is no meaningful selection value.Vx-lost-selection-functions A list of functions to be called when Emacs loses an X selection. (This happens when some other X client makes its own selection or when a Lisp program explicitly clears the selection.) The functions are called with one argument, the selection type (a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD').Vx-sent-selection-functions A list of functions to be called when Emacs answers a selection request. The functions are called with three arguments: - the selection name (typically `PRIMARY', `SECONDARY', or `CLIPBOARD'); - the selection-type which Emacs was asked to convert the selection into before sending (for example, `STRING' or `LENGTH'); - a flag indicating success or failure for responding to the request. We might have failed (and declined the request) for any number of reasons, including being asked for a selection that we no longer own, or being asked to convert into a type that we don't know about or that is inappropriate. This hook doesn't let you change the behavior of Emacs's selection replies, it merely informs you that they have happened.Vx-select-enable-clipboard-manager Whether to enable X clipboard manager support. If non-nil, then whenever Emacs is killed or an Emacs frame is deleted while owning the X clipboard, the clipboard contents are saved to the clipboard manager if one is present.Vx-selection-timeout Number of milliseconds to wait for a selection reply. If the selection owner doesn't reply in this time, we give up. A value of 0 means wait as long as necessary. This is initialized from the "*selectionTimeout" resource.Vx-treat-local-requests-remotely Whether to treat local selection requests as remote ones. If non-nil, selection converters for string types (`STRING', `UTF8_STRING', `COMPOUND_TEXT', etc) will encode the strings, even when Emacs itself is converting the selection.Vx-selection-alias-alist List of selections to alias to another. It should be an alist of a selection name to another. When a selection request arrives for the first selection, Emacs will respond as if the request was meant for the other. Note that this does not affect setting or owning selections.Sxrdb.o Sxsmfns.o Fhandle-save-session Handle the save_yourself event from a session manager. A session manager can tell Emacs that the window system is shutting down by sending Emacs a save_yourself message. Emacs executes this function when such an event occurs. This function then executes `emacs-session-save'. After that, this function informs the session manager that it can continue or abort shutting down the window system depending on the return value from `emacs-session-save' If the return value is non-nil the session manager is told to abort the window system shutdown. Do not call this function yourself. (fn EVENT)Vx-session-id The session id Emacs got from the session manager for this session. Changing the value does not change the session id used by Emacs. The value is nil if no session manager is running. See also `x-session-previous-id', `emacs-save-session-functions', `emacs-session-save' and `emacs-session-restore'.Vx-session-previous-id The previous session id Emacs got from session manager. If Emacs is running on a window system that has a session manager, the session manager gives Emacs a session id. It is feasible for Emacs Lisp code to use the session id to save configuration in, for example, a file with a file name based on the session id. If Emacs is running when the window system is shut down, the session manager remembers that Emacs was running and saves the session id Emacs had. When the window system is started again, the session manager restarts Emacs and hands Emacs the session id it had the last time it was running. This is now the previous session id and the value of this variable. If configuration was saved in a file as stated above, the previous session id shall be used to reconstruct the file name. The session id Emacs has while it is running is in the variable `x-session-id'. The value of this variable and `x-session-id' may be the same, depending on how the session manager works. See also `emacs-save-session-functions', `emacs-session-save' and `emacs-session-restore'.Sfringe.o Fdestroy-fringe-bitmap Destroy fringe bitmap BITMAP. If BITMAP overrides a standard fringe bitmap, the original bitmap is restored. (fn BITMAP)Fdefine-fringe-bitmap Define fringe bitmap BITMAP from BITS of size HEIGHT x WIDTH. BITMAP is a symbol identifying the new fringe bitmap. BITS is either a string or a vector of integers. HEIGHT is height of bitmap. If HEIGHT is nil, use length of BITS. WIDTH must be an integer from 1 to 16, or nil which defaults to 8. An error is signaled if WIDTH is outside this range. Optional fifth arg ALIGN may be one of `top', `center', or `bottom', indicating the positioning of the bitmap relative to the rows where it is used; the default is to center the bitmap. Fifth arg may also be a list (ALIGN PERIODIC) where PERIODIC non-nil specifies that the bitmap should be repeated. If BITMAP already exists, the existing definition is replaced. (fn BITMAP BITS &optional HEIGHT WIDTH ALIGN)Fset-fringe-bitmap-face Set face for fringe bitmap BITMAP to FACE. FACE is merged with the `fringe' face, so normally FACE should specify only the foreground color. If FACE is nil, reset face to default fringe face. (fn BITMAP &optional FACE)Ffringe-bitmaps-at-pos Return fringe bitmaps of row containing position POS in window WINDOW. If WINDOW is nil, use selected window. If POS is nil, use value of point in that window. Return value is a list (LEFT RIGHT OV), where LEFT is the symbol for the bitmap in the left fringe (or nil if no bitmap), RIGHT is similar for the right fringe, and OV is non-nil if there is an overlay arrow in the left fringe. Return nil if POS is not visible in WINDOW. (fn &optional POS WINDOW)Voverflow-newline-into-fringe Non-nil means that newline may flow into the right fringe. This means that display lines that are exactly as wide as the window (not counting the final newline) will occupy only one screen line, by showing (or hiding) the final newline in the right fringe; when point is at the final newline, the cursor is shown in the right fringe. If nil, also continue lines which are exactly as wide as the window.Vfringe-bitmaps List of fringe bitmap symbols.Simage.o Fimage-size Return the size of image SPEC as pair (WIDTH . HEIGHT). PIXELS non-nil means return the size in pixels, otherwise return the size in canonical character units. FRAME is the frame on which the image will be displayed. FRAME nil or omitted means use the selected frame. Calling this function will result in the image being stored in the image cache. If this is not desirable, call `image-flush' after calling this function. (fn SPEC &optional PIXELS FRAME)Fimage-mask-p Return t if image SPEC has a mask bitmap. FRAME is the frame on which the image will be displayed. FRAME nil or omitted means use the selected frame. (fn SPEC &optional FRAME)Fimage-metadata Return metadata for image SPEC. FRAME is the frame on which the image will be displayed. FRAME nil or omitted means use the selected frame. (fn SPEC &optional FRAME)Fclear-image-cache Clear the image cache. FILTER nil or a frame means clear all images in the selected frame. FILTER t means clear the image caches of all frames. Anything else means clear only those images that refer to FILTER, which is then usually a filename. This function also clears the image animation cache. If ANIMATION-CACHE is non-nil, only the image spec `eq' with ANIMATION-CACHE is removed, and other image cache entries are not evicted. (fn &optional FILTER ANIMATION-CACHE)Fimage-flush Flush the image with specification SPEC on frame FRAME. This removes the image from the Emacs image cache. If SPEC specifies an image file, the next redisplay of this image will read from the current contents of that file. FRAME nil or omitted means use the selected frame. FRAME t means refresh the image on all frames. (fn SPEC &optional FRAME)Fimagemagick-types Return a list of image types supported by ImageMagick. Each entry in this list is a symbol named after an ImageMagick format tag. See the ImageMagick manual for a list of ImageMagick formats and their descriptions (https://www.imagemagick.org/script/formats.php). You can also try the shell command: `identify -list format'. Note that ImageMagick recognizes many file-types that Emacs does not recognize as images, such as C. See `imagemagick-enabled-types' and `imagemagick-types-inhibit'. (fn)Fimagep Value is non-nil if SPEC is a valid image specification. (fn SPEC)Flookup-image (fn SPEC)Fimage-transforms-p Test whether FRAME supports image transformation. Return list of capabilities if FRAME supports native transforms, nil otherwise. FRAME defaults to the selected frame. The list of capabilities can include one or more of the following: - the symbol `scale' if FRAME supports image scaling - the symbol `rotate90' if FRAME supports image rotation only by angles that are integral multiples of 90 degrees. (fn &optional FRAME)Fimage-cache-size Return the size of the image cache. (fn)Finit-image-library Initialize image library implementing image type TYPE. Return t if TYPE is a supported image type. If image libraries are loaded dynamically (currently the case only on MS-Windows), load the library for TYPE if it is not yet loaded, using the library file(s) specified by `dynamic-library-alist'. (fn TYPE)Vimage-types List of potentially supported image types. Each element of the list is a symbol for an image type, like `jpeg' or `png'. To check whether it is really supported, use `image-type-available-p'.Vmax-image-size Maximum size of images. Emacs will not load an image into memory if its pixel width or pixel height exceeds this limit. If the value is an integer, it directly specifies the maximum image height and width, measured in pixels. If it is a floating point number, it specifies the maximum image height and width as a ratio to the frame height and width. If the value is non-numeric, there is no explicit limit on the size of images.Vcross-disabled-images Non-nil means always draw a cross over disabled images. Disabled images are those having a `:conversion disabled' property. A cross is always drawn on black & white displays.Vx-bitmap-file-path List of directories to search for window system bitmap files.Vimage-cache-eviction-delay Maximum time after which images are removed from the cache. When an image has not been displayed this many seconds, Emacs automatically removes it from the image cache. If the cache contains a large number of images, the actual eviction time may be shorter. The value can also be nil, meaning the cache is never cleared. The function `clear-image-cache' disregards this variable.Vimagemagick-render-type Integer indicating which ImageMagick rendering method to use. The options are: 0 -- the default method (pixel pushing) 1 -- a newer method ("MagickExportImagePixels") that may perform better (speed etc) in some cases, but has not been as thoroughly tested with Emacs as the default method. This method requires ImageMagick version 6.4.6 (approximately) or later.Sfontset.o Fquery-fontset Return the name of a fontset that matches PATTERN. The value is nil if there is no matching fontset. PATTERN can contain `*' or `?' as a wildcard just as X font name matching algorithm allows. If REGEXPP is non-nil, PATTERN is a regular expression. (fn PATTERN &optional REGEXPP)Fset-fontset-font Modify FONTSET to use font specification in FONT-SPEC for displaying CHARACTERS. FONTSET should be a fontset name (a string); or nil, meaning the fontset of FRAME; or t, meaning the default fontset. CHARACTERS may be a single character to use FONT-SPEC for. CHARACTERS may be a cons (FROM . TO), where FROM and TO are characters. In that case, use FONT-SPEC for all the characters in the range between FROM and TO (inclusive). CHARACTERS may be a script symbol. In that case, use FONT-SPEC for all the characters that belong to the script. See the variable `script-representative-chars' for the list of known scripts, and see the variable `char-script-table' for the script of any specific character. CHARACTERS may be a charset symbol. In that case, use FONT-SPEC for all the characters in the charset. See `list-character-sets' and `list-charset-chars' for the list of character sets and their characters. CHARACTERS may be nil. In that case, use FONT-SPEC for any character for which no font-spec is specified in FONTSET. FONT-SPEC may one of these: * A font-spec object made by the function `font-spec' (which see). * A cons (FAMILY . REGISTRY), where FAMILY is a font family name and REGISTRY is a font registry name. FAMILY may contain foundry name, and REGISTRY may contain encoding name. * A font name string. * nil, which explicitly specifies that there's no font for CHARACTERS. Optional 4th argument FRAME is a frame whose fontset should be modified; it is used if FONTSET is nil. If FONTSET is nil and FRAME is omitted or nil, that stands for the fontset of the selected frame. Optional 5th argument ADD, if non-nil, specifies how to add FONT-SPEC to the previously set font specifications for CHARACTERS. If it is `prepend', FONT-SPEC is prepended to the existing font specifications. If it is `append', FONT-SPEC is appended. By default, FONT-SPEC overwrites the previous settings. For reliable results, this function should be called before any of CHARACTERS were displayed in the current Emacs session. In particular, if some of CHARACTERS are displayed using character compositions, those compositions will be cached after they are first produced, and the cached values include the font used for displaying the composed characters -- calling this function will not affect the font recorded in the cache of compositions, thus they will continue to be shown using the fonts from before the call. (fn FONTSET CHARACTERS FONT-SPEC &optional FRAME ADD)Fnew-fontset Create a new fontset NAME from font information in FONTLIST. FONTLIST is an alist of scripts vs the corresponding font specification list. Each element of FONTLIST has the form (SCRIPT FONT-SPEC ...), where a character of SCRIPT is displayed by a font that matches one of FONT-SPEC. SCRIPT is a symbol that appears in the first extra slot of the char-table `char-script-table'. FONT-SPEC is a vector, a cons, or a string. See the documentation of `set-fontset-font' for the meaning. (fn NAME FONTLIST)Ffontset-info Return information about a fontset FONTSET on frame FRAME. FONTSET is a fontset name string, nil for the fontset of FRAME, or t for the default fontset. FRAME nil means the selected frame. The value is a char-table whose elements have this form: ((FONT OPENED-FONT ...) ...) FONT is a name of font specified for a range of characters. OPENED-FONT is a name of a font actually opened. The char-table has one extra slot. If FONTSET is not the default fontset, the value the extra slot is a char-table containing the information about the derived fonts from the default fontset. The format is the same as above. (fn FONTSET &optional FRAME)Ffontset-font Return a font name pattern for character CH in fontset NAME. If NAME is t, find a pattern in the default fontset. If NAME is nil, find a pattern in the fontset of the selected frame. The value has the form (FAMILY . REGISTRY), where FAMILY is a font family name and REGISTRY is a font registry name. This is actually the first font name pattern for CH in the fontset or in the default fontset. If the 2nd optional arg ALL is non-nil, return a list of all font name patterns. (fn NAME CH &optional ALL)Ffontset-list Return a list of all defined fontset names. (fn)Ffontset-list-all Return a brief summary of all fontsets for debug use. (fn)Vfont-encoding-charset-alist Alist of charsets vs the charsets to determine the preferred font encoding. Each element looks like (CHARSET . ENCODING-CHARSET), where ENCODING-CHARSET is a charset registered in the variable `font-encoding-alist' as ENCODING. When a text has a property `charset' and the value is CHARSET, a font whose encoding corresponds to ENCODING-CHARSET is preferred.Vuse-default-ascent Char table of characters whose ascent values should be ignored. If an entry for a character is non-nil, the ascent value of the glyph is assumed to be specified by _MULE_DEFAULT_ASCENT property of a font. This affects how a composite character which contains such a character is displayed on screen.Vuse-default-font-for-symbols If non-nil, use the default face's font for symbols and punctuation. By default, Emacs will try to use the default face's font for displaying symbol and punctuation characters, disregarding the fontsets, if the default font can display the character. Set this to nil to make Emacs honor the fontsets instead.Vignore-relative-composition Char table of characters which are not composed relatively. If an entry for a character is non-nil, a composition sequence which contains that character is displayed so that the glyph of that character is put without considering an ascent and descent value of a previous character.Valternate-fontname-alist Alist of fontname vs list of the alternate fontnames. When a specified font name is not found, the corresponding alternate fontnames (if any) are tried instead.Vfontset-alias-alist Alist of fontset names vs the aliases.Vvertical-centering-font-regexp Regexp matching font names that require vertical centering on display. When a character is displayed with such fonts, the character is displayed at the vertical center of lines.Votf-script-alist Alist of OpenType script tags vs the corresponding script names.Sdbusbind.o Fdbus--init-bus Establish the connection to D-Bus BUS. This function is dbus internal. You almost certainly want to use `dbus-init-bus'. BUS can be either the symbol `:system' or the symbol `:session', or it can be a string denoting the address of the corresponding bus. For the system and session buses, this function is called when loading `dbus.el', there is no need to call it again. A special case is BUS being the symbol `:system-private' or `:session-private'. These symbols still denote the system or session bus, but using a private connection. They should not be used outside dbus.el. The function returns a number, which counts the connections this Emacs session has established to the BUS under the same unique name (see `dbus-get-unique-name'). It depends on the libraries Emacs is linked with, and on the environment Emacs is running. For example, if Emacs is linked with the gtk toolkit, and it runs in a GTK-aware environment like Gnome, another connection might already be established. When PRIVATE is non-nil, a new connection is established instead of reusing an existing one. It results in a new unique name at the bus. This can be used, if it is necessary to distinguish from another connection used in the same Emacs process, like the one established by GTK+. It should be used with care for at least the `:system' and `:session' buses, because other Emacs Lisp packages might already use this connection to those buses. (fn BUS &optional PRIVATE)Fdbus-get-unique-name Return the unique name of Emacs registered at D-Bus BUS. (fn BUS)Fdbus-message-internal Send a D-Bus message. This is an internal function, it shall not be used outside dbus.el. The following usages are expected: `dbus-call-method', `dbus-call-method-asynchronously': (dbus-message-internal dbus-message-type-method-call BUS SERVICE PATH INTERFACE METHOD HANDLER &optional :timeout TIMEOUT &rest ARGS) `dbus-send-signal': (dbus-message-internal dbus-message-type-signal BUS SERVICE PATH INTERFACE SIGNAL &rest ARGS) `dbus-method-return-internal': (dbus-message-internal dbus-message-type-method-return BUS SERVICE SERIAL &rest ARGS) `dbus-method-error-internal': (dbus-message-internal dbus-message-type-error BUS SERVICE SERIAL ERROR-NAME &rest ARGS) `dbus-check-arguments': (does not send a message) (dbus-message-internal dbus-message-type-invalid BUS SERVICE &rest ARGS) (fn &rest REST)Vdbus-compiled-version The version of D-Bus Emacs is compiled against.Vdbus-runtime-version The version of D-Bus Emacs runs with.Vdbus-message-type-invalid This value is never a valid message type.Vdbus-message-type-method-call Message type of a method call message.Vdbus-message-type-method-return Message type of a method return message.Vdbus-message-type-error Message type of an error reply message.Vdbus-message-type-signal Message type of a signal message.Vdbus-registered-objects-table Hash table of registered functions for D-Bus. There are two different uses of the hash table: for accessing registered interfaces properties, targeted by signals, method calls or monitors, and for calling handlers in case of non-blocking method call returns. In the first case, the key in the hash table is the list (TYPE BUS [INTERFACE MEMBER]). TYPE is one of the Lisp symbols `:method', `:signal', `:property' or `:monitor'. BUS is either a Lisp symbol, `:system', `:session', `:system-private' or `:session-private', or a string denoting the bus address. INTERFACE is a string which denotes a D-Bus interface, and MEMBER, also a string, is either a method, a signal or a property INTERFACE is offering. All arguments can be nil. The value in the hash table is a list of quadruple lists ((UNAME SERVICE PATH OBJECT [RULE]) ...). SERVICE is the service name as registered, UNAME is the corresponding unique name. In case of registered methods, properties and monitors, UNAME is nil. PATH is the object path of the sending object. All of them can be nil, which means a wildcard then. OBJECT is either the handler to be called when a D-Bus message, which matches the key criteria, arrives (TYPE `:method', `:signal' and `:monitor'), or a list (ACCESS EMITS-SIGNAL VALUE) for TYPE `:property'. For entries of type `:signal' or `:monitor', there is also a fifth element RULE, which keeps the match string the signal or monitor is registered with. In the second case, the key in the hash table is the list (:serial BUS SERIAL). BUS is either a Lisp symbol, `:system' or `:session', or a string denoting the bus address. SERIAL is the serial number of the non-blocking method call, a reply is expected. Both arguments must not be nil. The value in the hash table is HANDLER, the function to be called when the D-Bus reply message arrives.Vdbus-debug If non-nil, debug messages of D-Bus bindings are raised.Scygw32.o Fcygwin-convert-file-name-to-windows Convert a Cygwin file name FILE to a Windows-style file name. If ABSOLUTE-P is non-nil, return an absolute file name. For the reverse operation, see `cygwin-convert-file-name-from-windows'. (fn FILE &optional ABSOLUTE-P)Fcygwin-convert-file-name-from-windows Convert a Windows-style file name FILE to a Cygwin file name. If ABSOLUTE-P is non-nil, return an absolute file name. For the reverse operation, see `cygwin-convert-file-name-to-windows'. (fn FILE &optional ABSOLUTE-P)Snsterm.o Vns-input-font The font specified in the last NS event.Vns-input-fontsize The fontsize specified in the last NS event.Vns-input-line The line specified in the last NS event.Vns-input-spi-name The service name specified in the last NS event.Vns-input-spi-arg The service argument specified in the last NS event.Vns-input-file The file specified in the last NS event.Vns-working-text String for visualizing working composition sequence.Vns-alternate-modifier This variable describes the behavior of the alternate or option key. Either SYMBOL, describing the behavior for any event, or (:ordinary SYMBOL :function SYMBOL :mouse SYMBOL), describing behavior separately for ordinary keys, function keys, and mouse events. Each SYMBOL is `control', `meta', `alt', `super', `hyper' or `none'. If `none', the key is ignored by Emacs and retains its standard meaning.Vns-right-alternate-modifier This variable describes the behavior of the right alternate or option key. Either SYMBOL, describing the behavior for any event, or (:ordinary SYMBOL :function SYMBOL :mouse SYMBOL), describing behavior separately for ordinary keys, function keys, and mouse events. It can also be `left' to use the value of `ns-alternate-modifier' instead. Each SYMBOL is `control', `meta', `alt', `super', `hyper' or `none'. If `none', the key is ignored by Emacs and retains its standard meaning.Vns-command-modifier This variable describes the behavior of the command key. Either SYMBOL, describing the behavior for any event, or (:ordinary SYMBOL :function SYMBOL :mouse SYMBOL), describing behavior separately for ordinary keys, function keys, and mouse events. Each SYMBOL is `control', `meta', `alt', `super', `hyper' or `none'. If `none', the key is ignored by Emacs and retains its standard meaning.Vns-right-command-modifier This variable describes the behavior of the right command key. Either SYMBOL, describing the behavior for any event, or (:ordinary SYMBOL :function SYMBOL :mouse SYMBOL), describing behavior separately for ordinary keys, function keys, and mouse events. It can also be `left' to use the value of `ns-command-modifier' instead. Each SYMBOL is `control', `meta', `alt', `super', `hyper' or `none'. If `none', the key is ignored by Emacs and retains its standard meaning.Vns-control-modifier This variable describes the behavior of the control key. Either SYMBOL, describing the behavior for any event, or (:ordinary SYMBOL :function SYMBOL :mouse SYMBOL), describing behavior separately for ordinary keys, function keys, and mouse events. Each SYMBOL is `control', `meta', `alt', `super', `hyper' or `none'. If `none', the key is ignored by Emacs and retains its standard meaning.Vns-right-control-modifier This variable describes the behavior of the right control key. Either SYMBOL, describing the behavior for any event, or (:ordinary SYMBOL :function SYMBOL :mouse SYMBOL), describing behavior separately for ordinary keys, function keys, and mouse events. It can also be `left' to use the value of `ns-control-modifier' instead. Each SYMBOL is `control', `meta', `alt', `super', `hyper' or `none'. If `none', the key is ignored by Emacs and retains its standard meaning.Vns-function-modifier This variable describes the behavior of the function (fn) key. Either SYMBOL, describing the behavior for any event, or (:ordinary SYMBOL :function SYMBOL :mouse SYMBOL), describing behavior separately for ordinary keys, function keys, and mouse events. Each SYMBOL is `control', `meta', `alt', `super', `hyper' or `none'. If `none', the key is ignored by Emacs and retains its standard meaning.Vns-antialias-text Non-nil (the default) means to render text antialiased.Vns-use-thin-smoothing Non-nil turns on a font smoothing method that produces thinner strokes.Vns-confirm-quit Whether to confirm application quit using dialog.Vns-auto-hide-menu-bar Non-nil means that the menu bar is hidden, but appears when the mouse is near. Only works on Mac OS X.Vns-use-native-fullscreen Non-nil means to use native fullscreen on Mac OS X 10.7 and later. Nil means use fullscreen the old (< 10.7) way. The old way works better with multiple monitors, but lacks tool bar. This variable is ignored on Mac OS X < 10.7. Default is t.Vns-use-fullscreen-animation Non-nil means use animation on non-native fullscreen. For native fullscreen, this does nothing. Default is nil.Vns-use-srgb-colorspace Non-nil means to use sRGB colorspace on Mac OS X 10.7 and later. Note that this does not apply to images. This variable is ignored on Mac OS X < 10.7 and GNUstep.Vns-use-mwheel-acceleration Non-nil means use macOS's standard mouse wheel acceleration. This variable is ignored on macOS < 10.7 and GNUstep. Default is t.Vns-mwheel-line-height The number of pixels touchpad scrolling considers one line. Nil or a non-number means use the default frame line height. This variable is ignored on macOS < 10.7 and GNUstep. Default is nil.Vns-use-mwheel-momentum Non-nil means mouse wheel scrolling uses momentum. This variable is ignored on macOS < 10.7 and GNUstep. Default is t.Vx-toolkit-scroll-bars SKIP: real doc in xterm.c.Vx-use-underline-position-properties SKIP: real doc in xterm.c.Vx-underline-at-descent-line SKIP: real doc in xterm.c.Vns-scroll-event-delta-factor A factor to apply to pixel deltas reported in scroll events. This is only effective for pixel deltas generated from touch pads or mice with smooth scrolling capability.Vns-drag-motion-function Function called when another program drags items over Emacs. It is called with three arguments FRAME, X, and Y, whenever the user moves the mouse over an Emacs frame as part of a drag-and-drop operation. FRAME is the frame the mouse is on top of, and X and Y are the frame-relative positions of the mouse in the X and Y axes respectively.Snsfns.o Fx-create-frame SKIP: real doc in xfns.c. (fn PARMS)Fns-frame-list-z-order Return list of Emacs' frames, in Z (stacking) order. If TERMINAL is non-nil and specifies a live frame, return the child frames of that frame in Z (stacking) order. Frames are listed from topmost (first) to bottommost (last). (fn &optional TERMINAL)Fns-frame-restack Restack FRAME1 below FRAME2. This means that if both frames are visible and the display areas of these frames overlap, FRAME2 (partially) obscures FRAME1. If optional third argument ABOVE is non-nil, restack FRAME1 above FRAME2. This means that if both frames are visible and the display areas of these frames overlap, FRAME1 (partially) obscures FRAME2. Some window managers may refuse to restack windows. (fn FRAME1 FRAME2 &optional ABOVE)Fx-select-font Read a font using a Nextstep dialog. Return a font specification describing the selected font. FRAME is the frame on which to pop up the font chooser. If omitted or nil, it defaults to the selected frame. (fn &optional FRAME IGNORED)Fns-popup-color-panel Pop up the color panel. (fn &optional FRAME)Fns-read-file-name Use a graphical panel to read a file name, using prompt PROMPT. Optional arg DIR, if non-nil, supplies a default directory. Optional arg MUSTMATCH, if non-nil, means the returned file or directory must exist. Optional arg INIT, if non-nil, provides a default file name to use. Optional arg DIR-ONLY-P, if non-nil, means choose only directories. (fn PROMPT &optional DIR MUSTMATCH INIT DIR-ONLY-P)Fns-get-resource Return the value of the property NAME of OWNER from the defaults database. If OWNER is nil, Emacs is assumed. (fn OWNER NAME)Fns-set-resource Set property NAME of OWNER to VALUE, from the defaults database. If OWNER is nil, Emacs is assumed. If VALUE is nil, the default is removed. (fn OWNER NAME VALUE)Fx-server-max-request-size SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-server-vendor SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-server-version SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-display-screens SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-display-mm-height SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-display-mm-width SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-display-backing-store SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-display-visual-class SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-display-save-under SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-open-connection SKIP: real doc in xfns.c. (fn DISPLAY &optional RESOURCE-STRING MUST-SUCCEED)Fx-close-connection SKIP: real doc in xfns.c. (fn TERMINAL)Fx-display-list SKIP: real doc in xfns.c. (fn)Fns-hide-others Hides all applications other than Emacs. (fn)Fns-hide-emacs If ON is non-nil, the entire Emacs application is hidden. Otherwise if Emacs is hidden, it is unhidden. If ON is equal to `activate', Emacs is unhidden and becomes the active application. If ON is equal to `activate-front', Emacs is unhidden and becomes the active application, but only the selected frame is layered in front of the windows of other applications. (fn ON)Fns-emacs-info-panel Shows the `Info' or `About' panel for Emacs. (fn)Fns-font-name Determine font PostScript or family name for font NAME. NAME should be a string containing either the font name or an XLFD font descriptor. If string contains `fontset' and not `fontset-startup', it is left alone. (fn NAME)Fns-list-colors Return a list of all available colors. The optional argument FRAME is currently ignored. (fn &optional FRAME)Fns-list-services List available Nextstep services by querying NSApp. (fn)Fns-perform-service Perform Nextstep SERVICE on SEND. SEND should be either a string or nil. The return value is the result of the service, as string, or nil if there was no result. (fn SERVICE SEND)Fns-do-applescript Execute AppleScript SCRIPT and return the result. If compilation and execution are successful, the resulting script value is returned as a string, a number or, in the case of other constructs, t. In case the execution fails, an error is signaled. (fn SCRIPT)Fsystem-move-file-to-trash Move file or directory named FILENAME to the recycle bin. (fn FILENAME)Fxw-color-defined-p SKIP: real doc in xfns.c. (fn COLOR &optional FRAME)Fxw-color-values SKIP: real doc in xfns.c. (fn COLOR &optional FRAME)Fxw-display-color-p SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-display-grayscale-p SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-display-pixel-width SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-display-pixel-height SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fns-display-monitor-attributes-list Return a list of physical monitor attributes on the X display TERMINAL. The optional argument TERMINAL specifies which display to ask about. TERMINAL should be a terminal object, a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. In addition to the standard attribute keys listed in `display-monitor-attributes-list', the following keys are contained in the attributes: source -- String describing the source from which multi-monitor information is obtained, "NS" is always the source." Internal use only, use `display-monitor-attributes-list' instead. (fn &optional TERMINAL)Fx-display-planes SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-display-color-cells SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-show-tip SKIP: real doc in xfns.c. (fn STRING &optional FRAME PARMS TIMEOUT DX DY)Fx-hide-tip SKIP: real doc in xfns.c. (fn)Fns-frame-geometry Return geometric attributes of FRAME. FRAME must be a live frame and defaults to the selected one. The return value is an association list of the attributes listed below. All height and width values are in pixels. `outer-position' is a cons of the outer left and top edges of FRAME relative to the origin - the position (0, 0) - of FRAME's display. `outer-size' is a cons of the outer width and height of FRAME. The outer size includes the title bar and the external borders as well as any menu and/or tool bar of frame. `external-border-size' is a cons of the horizontal and vertical width of FRAME's external borders as supplied by the window manager. `title-bar-size' is a cons of the width and height of the title bar of FRAME as supplied by the window manager. If both of them are zero, FRAME has no title bar. If only the width is zero, Emacs was not able to retrieve the width information. `menu-bar-external', if non-nil, means the menu bar is external (never included in the inner edges of FRAME). `menu-bar-size' is a cons of the width and height of the menu bar of FRAME. `tool-bar-external', if non-nil, means the tool bar is external (never included in the inner edges of FRAME). `tool-bar-position' tells on which side the tool bar on FRAME is and can be one of `left', `top', `right' or `bottom'. If this is nil, FRAME has no tool bar. `tool-bar-size' is a cons of the width and height of the tool bar of FRAME. `internal-border-width' is the width of the internal border of FRAME. (fn &optional FRAME)Fns-frame-edges Return edge coordinates of FRAME. FRAME must be a live frame and defaults to the selected one. The return value is a list of the form (LEFT, TOP, RIGHT, BOTTOM). All values are in pixels relative to the origin - the position (0, 0) - of FRAME's display. If optional argument TYPE is the symbol `outer-edges', return the outer edges of FRAME. The outer edges comprise the decorations of the window manager (like the title bar or external borders) as well as any external menu or tool bar of FRAME. If optional argument TYPE is the symbol `native-edges' or nil, return the native edges of FRAME. The native edges exclude the decorations of the window manager and any external menu or tool bar of FRAME. If TYPE is the symbol `inner-edges', return the inner edges of FRAME. These edges exclude title bar, any borders, menu bar or tool bar of FRAME. (fn &optional FRAME TYPE)Fns-set-mouse-absolute-pixel-position Move mouse pointer to absolute pixel position (X, Y). The coordinates X and Y are interpreted in pixels relative to a position (0, 0) of the selected frame's display. (fn X Y)Fns-mouse-absolute-pixel-position Return absolute position of mouse cursor in pixels. The position is returned as a cons cell (X . Y) of the coordinates of the mouse cursor position in pixels relative to a position (0, 0) of the selected frame's terminal. (fn)Fns-show-character-palette Show the macOS character palette. (fn)Vns-icon-type-alist Alist of elements (REGEXP . IMAGE) for images of icons associated to frames. If the title of a frame matches REGEXP, then IMAGE.tiff is selected as the image of the icon representing the frame when it's miniaturized. If an element is t, then Emacs tries to select an icon based on the filetype of the visited file. The images have to be installed in a folder called English.lproj in the Emacs folder. You have to restart Emacs after installing new icons. Example: Install an icon Gnus.tiff and execute the following code (setq ns-icon-type-alist (append ns-icon-type-alist \='(("^\\*\\(Group\\*$\\|Summary \\|Article\\*$\\)" . "Gnus")))) When you miniaturize a Group, Summary or Article frame, Gnus.tiff will be used as the image of the icon representing the frame.Vns-version-string Toolkit version for NS Windowing.Vns-use-proxy-icon When non-nil display a proxy icon in the titlebar. The proxy icon can be used to drag the file associated with the current buffer to other applications, a printer, the desktop, etc., in the same way you can from Finder. Note that you might have to disable `tool-bar-mode' to see the proxy icon. The default value is t.Vx-max-tooltip-size SKIP: real doc in xfns.c.Snsmenu.o Fns-reset-menu Cause the NS menu to be re-calculated. (fn)Fmenu-or-popup-active-p SKIP: real doc in xmenu.c. (fn)Snsselect.o Fns-own-selection-internal Assert an X selection of type SELECTION and value VALUE. SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. (Those are literal upper-case symbol names, since that's what X expects.) VALUE is typically a string, or a cons of two markers, but may be anything that the functions on `selection-converter-alist' know about. (fn SELECTION VALUE)Fns-disown-selection-internal If we own the selection SELECTION, disown it. Disowning it means there is no such selection. (fn SELECTION)Fns-selection-exists-p Whether there is an owner for the given X selection. SELECTION should be the name of the selection in question, typically one of the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. (X expects these literal upper-case names.) The symbol nil is the same as `PRIMARY', and t is the same as `SECONDARY'. (fn &optional SELECTION)Fns-selection-owner-p Whether the current Emacs process owns the given X Selection. The arg should be the name of the selection in question, typically one of the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. (Those are literal upper-case symbol names, since that's what X expects.) For convenience, the symbol nil is the same as `PRIMARY', and t is the same as `SECONDARY'. (fn &optional SELECTION)Fns-get-selection Return text selected from some X window. SELECTION-SYMBOL is typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. (Those are literal upper-case symbol names, since that's what X expects.) TARGET-TYPE is the type of data desired, typically `STRING'. (fn SELECTION-NAME TARGET-TYPE)Fns-begin-drag Begin a drag-and-drop operation on FRAME. FRAME must be a window system frame. PBOARD is an alist of (TYPE . DATA), where TYPE is one of the following data types that determine the meaning of DATA: - `string' means DATA should be a string describing text that will be dragged to another program. - `file' means DATA should be a file URL that will be dragged to another program. DATA may also be a list of file names; that means each file in the list will be dragged to another program. ACTION is the action that will be taken by the drop target towards the data inside PBOARD. Return the action that the drop target actually chose to perform, or nil if no action was performed (either because there was no drop target, or the drop was rejected). If RETURN-FRAME is the symbol `now', also return any frame that mouse moves into during the drag-and-drop operation, whilst simultaneously canceling it. Any other non-nil value means to do the same, but to wait for the mouse to leave FRAME first. If ALLOW-SAME-FRAME is nil, dropping on FRAME will result in the drop being ignored. FOLLOW-TOOLTIP means the same thing it does in `x-begin-drag'. (fn FRAME PBOARD ACTION &optional RETURN-FRAME ALLOW-SAME-FRAME FOLLOW-TOOLTIP)Vns-sent-selection-hooks A list of functions to be called when Emacs answers a selection request. The functions are called with four arguments: - the selection name (typically `PRIMARY', `SECONDARY', or `CLIPBOARD'); - the selection-type which Emacs was asked to convert the selection into before sending (for example, `STRING' or `LENGTH'); - a flag indicating success or failure for responding to the request. We might have failed (and declined the request) for any number of reasons, including being asked for a selection that we no longer own, or being asked to convert into a type that we don't know about or that is inappropriate. This hook doesn't let you change the behavior of Emacs's selection replies, it merely informs you that they have happened.Snsimage.o Snsfont.o Vns-reg-to-script Internal map of font registry to Unicode script.Smacfont.o Snsxwidget.o Sw32.o Sw32console.o Fset-screen-color Set screen foreground and background colors. Arguments should be indices between 0 and 15, see w32console.el. (fn FOREGROUND BACKGROUND)Fget-screen-color Get color indices of the current screen foreground and background. The colors are returned as a list of 2 indices (FOREGROUND BACKGROUND). See w32console.el and `tty-defined-color-alist' for mapping of indices to colors. (fn)Fset-cursor-size Set cursor size. (fn SIZE)Vw32-use-full-screen-buffer Non-nil means make terminal frames use the full screen buffer dimensions. This is desirable when running Emacs over telnet. A value of nil means use the current console window dimensions; this may be preferable when working directly at the console with a large scroll-back buffer.Sw32cygwinx.o Fw32-battery-status Get power status information from Windows system. The following %-sequences are provided: %L AC line status (verbose) %B Battery status (verbose) %b Battery status, empty means high, `-' means low, `!' means critical, and `+' means charging %p Battery load percentage %s Remaining time (to charge or discharge) in seconds %m Remaining time (to charge or discharge) in minutes %h Remaining time (to charge or discharge) in hours %t Remaining time (to charge or discharge) in the form `h:min' (fn)Sw32fns.o Fw32-define-rgb-color Convert RGB numbers to a Windows color reference and associate with NAME. This adds or updates a named color to `w32-color-map', making it available for use. The original entry's RGB ref is returned, or nil if the entry is new. (fn RED GREEN BLUE NAME)Fx-create-frame SKIP: real doc in xfns.c. (fn PARAMETERS)Fxw-color-defined-p SKIP: real doc in xfns.c. (fn COLOR &optional FRAME)Fxw-color-values SKIP: real doc in xfns.c. (fn COLOR &optional FRAME)Fxw-display-color-p SKIP: real doc in xfns.c. (fn &optional DISPLAY)Fx-display-grayscale-p SKIP: real doc in xfns.c. (fn &optional DISPLAY)Fx-display-pixel-width SKIP: real doc in xfns.c. (fn &optional DISPLAY)Fx-display-pixel-height SKIP: real doc in xfns.c. (fn &optional DISPLAY)Fx-display-planes SKIP: real doc in xfns.c. (fn &optional DISPLAY)Fx-display-color-cells SKIP: real doc in xfns.c. (fn &optional DISPLAY)Fx-server-max-request-size SKIP: real doc in xfns.c. (fn &optional DISPLAY)Fx-server-vendor SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-server-version SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-display-screens SKIP: real doc in xfns.c. (fn &optional DISPLAY)Fx-display-mm-height SKIP: real doc in xfns.c. (fn &optional DISPLAY)Fx-display-mm-width SKIP: real doc in xfns.c. (fn &optional DISPLAY)Fx-display-backing-store SKIP: real doc in xfns.c. (fn &optional DISPLAY)Fx-display-visual-class SKIP: real doc in xfns.c. (fn &optional DISPLAY)Fx-display-save-under SKIP: real doc in xfns.c. (fn &optional DISPLAY)Fw32-display-monitor-attributes-list Return a list of physical monitor attributes on the W32 display DISPLAY. The optional argument DISPLAY specifies which display to ask about. DISPLAY should be either a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. Internal use only, use `display-monitor-attributes-list' instead. (fn &optional DISPLAY)Fset-message-beep Set the sound generated when the bell is rung. SOUND is `asterisk', `exclamation', `hand', `question', `ok', or `silent' to use the corresponding system sound for the bell. The `silent' sound prevents Emacs from making any sound at all. SOUND is nil to use the normal beep. (fn SOUND)Fx-open-connection SKIP: real doc in xfns.c. (fn DISPLAY &optional XRM-STRING MUST-SUCCEED)Fx-close-connection SKIP: real doc in xfns.c. (fn DISPLAY)Fx-display-list SKIP: real doc in xfns.c. (fn)Fx-synchronize SKIP: real doc in xfns.c. (fn ON &optional DISPLAY)Fx-change-window-property SKIP: real doc in xfns.c. (fn PROP VALUE &optional FRAME TYPE FORMAT OUTER-P)Fx-delete-window-property SKIP: real doc in xfns.c. (fn PROP &optional FRAME)Fx-window-property SKIP: real doc in xfns.c. (fn PROP &optional FRAME TYPE SOURCE DELETE-P VECTOR-RET-P)Fx-show-tip SKIP: real doc in xfns.c. (fn STRING &optional FRAME PARMS TIMEOUT DX DY)Fx-hide-tip SKIP: real doc in xfns.c. (fn)Fx-file-dialog SKIP: real doc in xfns.c. (fn PROMPT DIR &optional DEFAULT-FILENAME MUSTMATCH ONLY-DIR-P)Fsystem-move-file-to-trash Move file or directory named FILENAME to the recycle bin. (fn FILENAME)Fw32-send-sys-command Send frame a Windows WM_SYSCOMMAND message of type COMMAND. Some useful values for COMMAND are #xf030 to maximize frame (#xf020 to minimize), #xf120 to restore frame to original size, and #xf100 to activate the menubar for keyboard access. #xf140 activates the screen saver if defined. If optional parameter FRAME is not specified, use selected frame. (fn COMMAND &optional FRAME)Fw32-shell-execute Get Windows to perform OPERATION on DOCUMENT. This is a wrapper around the ShellExecute system function, which invokes the application registered to handle OPERATION for DOCUMENT. OPERATION is either nil or a string that names a supported operation. What operations can be used depends on the particular DOCUMENT and its handler application, but typically it is one of the following common operations: "open" - open DOCUMENT, which could be a file, a directory, or an executable program (application). If it is an application, that application is launched in the current buffer's default directory. Otherwise, the application associated with DOCUMENT is launched in the buffer's default directory. "opennew" - like "open", but instruct the application to open DOCUMENT in a new window. "openas" - open the "Open With" dialog for DOCUMENT. "print" - print DOCUMENT, which must be a file. "printto" - print DOCUMENT, which must be a file, to a specified printer. The printer should be provided in PARAMETERS, see below. "explore" - start the Windows Explorer on DOCUMENT. "edit" - launch an editor and open DOCUMENT for editing; which editor is launched depends on the association for the specified DOCUMENT. "find" - initiate search starting from DOCUMENT, which must specify a directory. "delete" - move DOCUMENT, a file or a directory, to Recycle Bin. "copy" - copy DOCUMENT, which must be a file or a directory, into the clipboard. "cut" - move DOCUMENT, a file or a directory, into the clipboard. "paste" - paste the file whose name is in the clipboard into DOCUMENT, which must be a directory. "pastelink" - create a shortcut in DOCUMENT (which must be a directory) the file or directory whose name is in the clipboard. "runas" - run DOCUMENT, which must be an executable file, with elevated privileges (a.k.a. "as Administrator"). "properties" - open the property sheet dialog for DOCUMENT. nil - invoke the default OPERATION, or "open" if default is not defined or unavailable. DOCUMENT is typically the name of a document file or a URL, but can also be an executable program to run, or a directory to open in the Windows Explorer. If it is a file or a directory, it must be a local one; this function does not support remote file names. If DOCUMENT is an executable program, the optional third arg PARAMETERS can be a string containing command line parameters, separated by blanks, that will be passed to the program. Some values of OPERATION also require parameters (e.g., "printto" requires the printer address). Otherwise, PARAMETERS should be nil or unspecified. Note that double quote characters in PARAMETERS must each be enclosed in 2 additional quotes, as in """. Optional fourth argument SHOW-FLAG can be used to control how the application will be displayed when it is invoked. If SHOW-FLAG is nil or unspecified, the application is displayed as if SHOW-FLAG of 10 was specified, otherwise it is an integer between 0 and 11 representing a ShowWindow flag: 0 - start hidden 1 - start as normal-size window 3 - start in a maximized window 6 - start in a minimized window 10 - start as the application itself specifies; this is the default. (fn OPERATION DOCUMENT &optional PARAMETERS SHOW-FLAG)Fw32-register-hot-key Register KEY as a hot-key combination. Certain key combinations like Alt-Tab and Win-R are reserved for system use on Windows, and therefore are normally intercepted by the system. These key combinations can be used in Emacs by registering them as hot-keys, except for Win-L which always locks the computer. On Windows 98 and ME, KEY must be a one element key definition in vector form that would be acceptable to `define-key' (e.g. [A-tab] for Alt-Tab). The meta modifier is interpreted as Alt if `w32-alt-is-meta' is t, and hyper is always interpreted as the Windows modifier keys. The return value is the hotkey-id if registered, otherwise nil. On Windows versions since NT, KEY can also be specified as just a modifier key, [M-], [s-] or [H-], to indicate that all combinations of the respective modifier key should be processed by Emacs instead of the operating system. The super and hyper modifiers are interpreted according to the current values of `w32-lwindow-modifier' and `w32-rwindow-modifier'. For instance, setting `w32-lwindow-modifier' to `super' and then calling `(w32-register-hot-key [s-])' grabs all combinations of the left Windows key to Emacs as keys with the Super modifier, but leaves the right Windows key free for the operating system keyboard shortcuts. The return value is t if the call affected any key combinations, otherwise nil. (fn KEY)Fw32-unregister-hot-key Unregister KEY as a hot-key combination. (fn KEY)Fw32-registered-hot-keys Return list of registered hot-key IDs. (fn)Fw32-reconstruct-hot-key Convert hot-key ID to a lisp key combination. (fn ID)Fw32-toggle-lock-key Toggle the state of the lock key KEY. KEY can be `capslock', `kp-numlock', or `scroll'. If the optional parameter NEW-STATE is a number, then the state of KEY is set to off if the low bit of NEW-STATE is zero, otherwise on. If NEW-STATE is omitted or nil, the function toggles the state, Value is the new state of the key, or nil if the function failed to change the state. (fn KEY &optional NEW-STATE)Fw32-window-exists-p Return non-nil if a window exists with the specified CLASS and NAME. This is a direct interface to the Windows API FindWindow function. (fn CLASS NAME)Fw32-frame-geometry Return geometric attributes of FRAME. FRAME must be a live frame and defaults to the selected one. The return value is an association list of the attributes listed below. All height and width values are in pixels. `outer-position' is a cons of the outer left and top edges of FRAME relative to the origin - the position (0, 0) - of FRAME's display. `outer-size' is a cons of the outer width and height of FRAME. The outer size includes the title bar and the external borders as well as any menu and/or tool bar of frame. `external-border-size' is a cons of the horizontal and vertical width of FRAME's external borders as supplied by the window manager. `title-bar-size' is a cons of the width and height of the title bar of FRAME as supplied by the window manager. If both of them are zero, FRAME has no title bar. If only the width is zero, Emacs was not able to retrieve the width information. `menu-bar-external', if non-nil, means the menu bar is external (never included in the inner edges of FRAME). `menu-bar-size' is a cons of the width and height of the menu bar of FRAME. `tab-bar-size' is a cons of the width and height of the tab bar of FRAME. `tool-bar-external', if non-nil, means the tool bar is external (never included in the inner edges of FRAME). `tool-bar-position' tells on which side the tool bar on FRAME is and can be one of `left', `top', `right' or `bottom'. If this is nil, FRAME has no tool bar. `tool-bar-size' is a cons of the width and height of the tool bar of FRAME. `internal-border-width' is the width of the internal border of FRAME. (fn &optional FRAME)Fw32-frame-edges Return edge coordinates of FRAME. FRAME must be a live frame and defaults to the selected one. The return value is a list of the form (LEFT, TOP, RIGHT, BOTTOM). All values are in pixels relative to the origin - the position (0, 0) - of FRAME's display. If optional argument TYPE is the symbol `outer-edges', return the outer edges of FRAME. The outer edges comprise the decorations of the window manager (like the title bar or external borders) as well as any external menu or tool bar of FRAME. If optional argument TYPE is the symbol `native-edges' or nil, return the native edges of FRAME. The native edges exclude the decorations of the window manager and any external menu or tool bar of FRAME. If TYPE is the symbol `inner-edges', return the inner edges of FRAME. These edges exclude title bar, any borders, menu bar or tool bar of FRAME. (fn &optional FRAME TYPE)Fw32-frame-list-z-order Return list of Emacs' frames, in Z (stacking) order. The optional argument DISPLAY specifies which display to ask about. DISPLAY should be either a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. As a special case, if DISPLAY is non-nil and specifies a live frame, return the child frames of that frame in Z (stacking) order. Frames are listed from topmost (first) to bottommost (last). (fn &optional DISPLAY)Fw32-frame-restack Restack FRAME1 below FRAME2. This means that if both frames are visible and the display areas of these frames overlap, FRAME2 (partially) obscures FRAME1. If optional third argument ABOVE is non-nil, restack FRAME1 above FRAME2. This means that if both frames are visible and the display areas of these frames overlap, FRAME1 (partially) obscures FRAME2. This may be thought of as an atomic action performed in two steps: The first step removes FRAME1's window-system window from the display. The second step reinserts FRAME1's window below (above if ABOVE is true) that of FRAME2. Hence the position of FRAME2 in its display's Z (stacking) order relative to all other frames excluding FRAME1 remains unaltered. Some window managers may refuse to restack windows. (fn FRAME1 FRAME2 &optional ABOVE)Fw32-mouse-absolute-pixel-position Return absolute position of mouse cursor in pixels. The position is returned as a cons cell (X . Y) of the coordinates of the mouse cursor position in pixels relative to a position (0, 0) of the selected frame's display. (fn)Fw32-set-mouse-absolute-pixel-position Move mouse pointer to absolute pixel position (X, Y). The coordinates X and Y are interpreted in pixels relative to a position (0, 0) of the selected frame's display. (fn X Y)Ffile-system-info SKIP: Real doc in fileio.c. (fn FILENAME)Fdefault-printer-name Return the name of Windows default printer device. (fn)Fw32--menu-bar-in-use Return non-nil when a menu-bar menu is being used. Internal use only. (fn)Fw32-notification-notify Display an MS-Windows tray notification as specified by PARAMS. Value is the integer unique ID of the notification that can be used to remove the notification using `w32-notification-close', which see. If the function fails, the return value is nil. Tray notifications, a.k.a. "taskbar messages", are messages that inform the user about events unrelated to the current user activity, such as a significant system event, by briefly displaying informative text in a balloon from an icon in the notification area of the taskbar. Parameters in PARAMS are specified as keyword/value pairs. All the parameters are optional, but if no parameters are specified, the function will do nothing and return nil. The following parameters are supported: :icon ICON -- Display ICON in the system tray. If ICON is a string, it should specify a file name from which to load the icon; the specified file should be a .ico Windows icon file. If ICON is not a string, or if this parameter is not specified, the standard Emacs icon will be used. :tip TIP -- Use TIP as the tooltip for the notification. If TIP is a string, this is the text of a tooltip that will be shown when the mouse pointer hovers over the tray icon added by the notification. If TIP is not a string, or if this parameter is not specified, the default tooltip text is "Emacs notification". The tooltip text can be up to 127 characters long (63 on Windows versions before W2K). Longer strings will be truncated. :level LEVEL -- Notification severity level, one of `info', `warning', or `error'. If given, the value determines the icon displayed to the left of the notification title, but only if the `:title' parameter (see below) is also specified and is a string. :title TITLE -- The title of the notification. If TITLE is a string, it is displayed in a larger font immediately above the body text. The title text can be up to 63 characters long; longer text will be truncated. :body BODY -- The body of the notification. If BODY is a string, it specifies the text of the notification message. Use embedded newlines to control how the text is broken into lines. The body text can be up to 255 characters long, and will be truncated if it's longer. Note that versions of Windows before W2K support only `:icon' and `:tip'. You can pass the other parameters, but they will be ignored on those old systems. There can be at most one active notification at any given time. An active notification must be removed by calling `w32-notification-close' before a new one can be shown. (fn &rest PARAMS)Fw32-notification-close Remove the MS-Windows tray notification specified by its ID. (fn ID)Fw32-get-ime-open-status Return non-nil if IME is active, otherwise return nil. IME, the MS-Windows Input Method Editor, can be active or inactive. This function returns non-nil if the IME is active, otherwise nil. (fn)Fw32-set-ime-open-status Open or close the IME according to STATUS. This function activates the IME, the MS-Windows Input Method Editor, if STATUS is non-nil, otherwise it deactivates the IME. (fn STATUS)Fw32-read-registry Return the value stored in MS-Windows Registry under ROOT/KEY/NAME. ROOT is a symbol, one of `HKCR', `HKCU', `HKLM', `HKU', or `HKCC'. It can also be nil, which means try `HKCU', and if that fails, try `HKLM'. KEY and NAME must be strings, and NAME must not include slashes. KEY can use either forward- or back-slashes. To access the default value of KEY (if it is defined), use NAME that is an empty string. If the named KEY or its subkey called NAME don't exist, or cannot be accessed by the current user, the function returns nil. Otherwise, the return value depends on the type of the data stored in Registry: If the data type is REG_NONE, the function returns t. If the data type is REG_DWORD or REG_QWORD, the function returns its integer value. If the value is too large for a fixnum, the function returns a bignum. If the data type is REG_BINARY, the function returns a vector whose elements are individual bytes of the value. If the data type is REG_SZ, the function returns a string. If the data type is REG_EXPAND_SZ, the function returns a string with all the %..% references to environment variables replaced by the values of those variables. If the expansion fails, or some variables are not defined in the environment, some or all of the environment variables will remain unexpanded. If the data type is REG_MULTI_SZ, the function returns a list whose elements are the individual strings. Note that this function doesn't know whether a string value is a file name, so file names will be returned with backslashes, which may need to be converted to forward slashes by the caller. (fn ROOT KEY NAME)Fw32-set-wallpaper Set the desktop wallpaper image to IMAGE-FILE. (fn IMAGE-FILE)Vw32-color-map An array of color name mappings for Windows.Vw32-pass-alt-to-system Non-nil if Alt key presses are passed on to Windows. When non-nil, for example, Alt pressed and released and then space will open the System menu. When nil, Emacs processes the Alt key events, and then silently swallows them.Vw32-alt-is-meta Non-nil if the Alt key is to be considered the same as the META key. When nil, Emacs will translate the Alt key to the ALT modifier, not to META.Vw32-quit-key If non-zero, the virtual key code for an alternative quit key.Vw32-pass-lwindow-to-system If non-nil, the left "Windows" key is passed on to Windows. When non-nil, the Start menu is opened by tapping the key. If you set this to nil, the left "Windows" key is processed by Emacs according to the value of `w32-lwindow-modifier', which see. Note that some combinations of the left "Windows" key with other keys are caught by Windows at low level. For example, -r pops up the Windows Run dialog, - pops up the "System Properties" dialog, etc. On Windows 10, no "Windows" key combinations are normally handed to applications. To enable Emacs to process "Windows" key combinations, use the function `w32-register-hot-key'. For Windows 98/ME, see the doc string of `w32-phantom-key-code'.Vw32-pass-rwindow-to-system If non-nil, the right "Windows" key is passed on to Windows. When non-nil, the Start menu is opened by tapping the key. If you set this to nil, the right "Windows" key is processed by Emacs according to the value of `w32-rwindow-modifier', which see. Note that some combinations of the right "Windows" key with other keys are caught by Windows at low level. For example, -r pops up the Windows Run dialog, - pops up the "System Properties" dialog, etc. On Windows 10, no "Windows" key combinations are normally handed to applications. To enable Emacs to process "Windows" key combinations, use the function `w32-register-hot-key'. For Windows 98/ME, see the doc string of `w32-phantom-key-code'.Vw32-phantom-key-code Virtual key code used to generate "phantom" key presses. Value is a number between 0 and 255. Phantom key presses are generated in order to stop the system from acting on "Windows" key events when `w32-pass-lwindow-to-system' or `w32-pass-rwindow-to-system' is nil. This variable is only used on Windows 98 and ME. For other Windows versions, see the documentation of the `w32-register-hot-key' function.Vw32-enable-num-lock If non-nil, the Num Lock key acts normally. Set to nil to handle Num Lock as the `kp-numlock' key.Vw32-enable-caps-lock If non-nil, the Caps Lock key acts normally. Set to nil to handle Caps Lock as the `capslock' key.Vw32-scroll-lock-modifier Modifier to use for the Scroll Lock ON state. The value can be hyper, super, meta, alt, control or shift for the respective modifier, or nil to handle Scroll Lock as the `scroll' key. Any other value will cause the Scroll Lock key to be ignored by Emacs, and it will have the same effect as in other applications.Vw32-lwindow-modifier Modifier to use for the left "Windows" key. The value can be hyper, super, meta, alt, control or shift for the respective modifier, or nil to appear as the `lwindow' key. Any other value will cause the key to be ignored. Also see the documentation of the `w32-register-hot-key' function.Vw32-rwindow-modifier Modifier to use for the right "Windows" key. The value can be hyper, super, meta, alt, control or shift for the respective modifier, or nil to appear as the `rwindow' key. Any other value will cause the key to be ignored. Also see the documentation of the `w32-register-hot-key' function.Vw32-apps-modifier Modifier to use for the "Apps" key. The value can be hyper, super, meta, alt, control or shift for the respective modifier, or nil to appear as the `apps' key. Any other value will cause the key to be ignored.Vw32-enable-synthesized-fonts Non-nil enables selection of artificially italicized and bold fonts.Vw32-enable-palette Non-nil enables Windows palette management to map colors exactly.Vw32-mouse-button-tolerance Analogue of double click interval for faking middle mouse events. The value is the minimum time in milliseconds that must elapse between left and right button down events before they are considered distinct events. If both mouse buttons are depressed within this interval, a middle mouse button down event is generated instead.Vw32-mouse-move-interval Minimum interval between mouse move events. The value is the minimum time in milliseconds that must elapse between successive mouse move (or scroll bar drag) events before they are reported as lisp events.Vw32-pass-extra-mouse-buttons-to-system If non-nil, the fourth and fifth mouse buttons are passed to Windows. Recent versions of Windows support mice with up to five buttons. Since most applications don't support these extra buttons, most mouse drivers will allow you to map them to functions at the system level. If this variable is non-nil, Emacs will pass them on, allowing the system to handle them.Vw32-pass-multimedia-buttons-to-system If non-nil, media buttons are passed to Windows. Some modern keyboards contain buttons for controlling media players, web browsers and other applications. Generally these buttons are handled on a system wide basis, but by setting this to nil they are made available to Emacs for binding. Depending on your keyboard, additional keys that may be available are: browser-back, browser-forward, browser-refresh, browser-stop, browser-search, browser-favorites, browser-home, mail, mail-reply, mail-forward, mail-send, app-1, app-2, help, find, new, open, close, save, print, undo, redo, copy, cut, paste, spell-check, correction-list, toggle-dictate-command, media-next, media-previous, media-stop, media-play-pause, media-select, media-play, media-pause, media-record, media-fast-forward, media-rewind, media-channel-up, media-channel-down, volume-mute, volume-up, volume-down, mic-volume-mute, mic-volume-down, mic-volume-up, mic-toggle, bass-down, bass-boost, bass-up, treble-down, treble-upVx-pointer-shape SKIP: real doc in xfns.c.Vx-hourglass-pointer-shape SKIP: real doc in xfns.c.Vx-sensitive-text-pointer-shape SKIP: real doc in xfns.c.Vx-window-horizontal-drag-cursor SKIP: real doc in xfns.c.Vx-window-vertical-drag-cursor SKIP: real doc in xfns.c.Vx-cursor-fore-pixel SKIP: real doc in xfns.c.Vx-max-tooltip-size SKIP: real doc in xfns.c.Vx-no-window-manager SKIP: real doc in xfns.c.Vx-pixel-size-width-font-regexp SKIP: real doc in xfns.c.Vw32-strict-painting Non-nil means use strict rules for repainting frames. Set this to nil to get the old behavior for repainting; this should only be necessary if the default setting causes problems.Vw32-use-fallback-wm-chars-method Non-nil means use old method of processing character keys. This is intended only for debugging of the new processing method. Default is nil. This variable has effect only on NT family of systems, not on Windows 9X.Vw32-disable-new-uniscribe-apis Non-nil means don't use new Uniscribe APIs. The new APIs are used to access OTF features supported by fonts. This is intended only for debugging of the new Uniscribe-related code. Default is nil. This variable has effect only on Windows Vista and later.Vw32-tooltip-extra-pixels Number of pixels added after tooltip text. On Windows some fonts may cause the last character of a tooltip be truncated or wrapped around to the next line. Adding some extra space at the end of the toooltip works around this problem. This variable specifies the number of pixels that shall be added. The default value t means to add the width of one canonical character of the tip frame.Vw32-disable-abort-dialog Non-nil means don't display the abort dialog when aborting.Vw32-ignore-modifiers-on-IME-input Whether to ignore modifier keys when processing input with IME. Some MS-Windows input methods use modifier keys such as Ctrl or Alt to input characters, in which case applying the modifiers will change the input. The default value of this variable is therefore t, to ignore modifier keys when IME input is received.Vw32-ansi-code-page The ANSI code page used by the system.Vw32-multibyte-code-page The current multibyte code page used by the system. A value of zero indicates that the single-byte code page is in use, see `w32-ansi-code-page'.Vw32-disable-double-buffering Completely disable double buffering. This variable is used for debugging, and takes precedence over any value of the `inhibit-double-buffering' frame parameter.Sw32heap.o Sw32inevt.o Sw32notify.o Fw32notify-add-watch Add a watch for filesystem events pertaining to FILE. This arranges for filesystem events pertaining to FILE to be reported to Emacs. Use `w32notify-rm-watch' to cancel the watch. Value is a descriptor for the added watch. If the file cannot be watched for some reason, this function signals a `file-error' error. FILTER is a list of conditions for reporting an event. It can include the following symbols: `file-name' -- report file creation, deletion, or renaming `directory-name' -- report directory creation, deletion, or renaming `attributes' -- report changes in attributes `size' -- report changes in file-size `last-write-time' -- report changes in last-write time `last-access-time' -- report changes in last-access time `creation-time' -- report changes in creation time `security-desc' -- report changes in security descriptor If FILE is a directory, and FILTER includes `subtree', then all the subdirectories will also be watched and changes in them reported. When any event happens that satisfies the conditions specified by FILTER, Emacs will call the CALLBACK function passing it a single argument EVENT, which is of the form (DESCRIPTOR ACTION FILE) DESCRIPTOR is the same object as the one returned by this function. ACTION is the description of the event. It could be any one of the following: `added' -- FILE was added `removed' -- FILE was deleted `modified' -- FILE's contents or its attributes were modified `renamed-from' -- a file was renamed whose old name was FILE `renamed-to' -- a file was renamed and its new name is FILE FILE is the name of the file whose event is being reported. Note that some networked filesystems, such as Samba-mounted Unix volumes, might not send notifications about file changes. In these cases, this function will return a valid descriptor, but notifications will never come in. Volumes shared from remote Windows machines do generate notifications correctly, though. (fn FILE FILTER CALLBACK)Fw32notify-rm-watch Remove an existing watch specified by its WATCH-DESCRIPTOR. WATCH-DESCRIPTOR should be an object returned by `w32notify-add-watch'. (fn WATCH-DESCRIPTOR)Fw32notify-valid-p Check a watch specified by its WATCH-DESCRIPTOR for validity. WATCH-DESCRIPTOR should be an object returned by `w32notify-add-watch'. A watch can become invalid if the directory it watches is deleted, or if the watcher thread exits abnormally for any other reason. Removing the watch by calling `w32notify-rm-watch' also makes it invalid. (fn WATCH-DESCRIPTOR)Sw32menu.o Fmenu-or-popup-active-p SKIP: real doc in xmenu.c. (fn)Sw32proc.o Fw32-has-winsock Test for presence of the Windows socket library `winsock'. Returns non-nil if winsock support is present, nil otherwise. If the optional argument LOAD-NOW is non-nil, the winsock library is also loaded immediately if not already loaded. If winsock is loaded, the winsock local hostname is returned (since this may be different from the value of `system-name' and should supplant it), otherwise t is returned to indicate winsock support is present. (fn &optional LOAD-NOW)Fw32-unload-winsock Unload the Windows socket library `winsock' if loaded. This is provided to allow dial-up socket connections to be disconnected when no longer needed. Returns nil without unloading winsock if any socket connections still exist. (fn)Fw32-short-file-name Return the short file name version (8.3) of the full path of FILENAME. If FILENAME does not exist, return nil. All path elements in FILENAME are converted to their short names. (fn FILENAME)Fw32-long-file-name Return the long file name version of the full path of FILENAME. If FILENAME does not exist, return nil. All path elements in FILENAME are converted to their long names. (fn FILENAME)Fw32-set-process-priority Set the priority of PROCESS to PRIORITY. If PROCESS is nil, the priority of Emacs is changed, otherwise the priority of the process whose pid is PROCESS is changed. PRIORITY should be one of the symbols high, normal, or low; any other symbol will be interpreted as normal. If successful, the return value is t, otherwise nil. (fn PROCESS PRIORITY)Fw32-application-type Return the type of an MS-Windows PROGRAM. Knowing the type of an executable could be useful for formatting file names passed to it or for quoting its command-line arguments. PROGRAM should specify an executable file, including the extension. The value is one of the following: `dos' -- a DOS .com program or some other non-PE executable `cygwin' -- a Cygwin program that depends on Cygwin DLL `msys' -- an MSYS 1.x or MSYS2 program `w32-native' -- a native Windows application `unknown' -- a file that doesn't exist, or cannot be open, or whose name is not encodable in the current ANSI codepage. Note that for .bat and .cmd batch files the function returns the type of their command interpreter, as specified by the "COMSPEC" environment variable. This function returns `unknown' for programs whose file names include characters not supported by the current ANSI codepage, as such programs cannot be invoked by Emacs anyway. (fn PROGRAM)Fw32-get-locale-info Return information about the Windows locale LCID. By default, return a three letter locale code which encodes the default language as the first two characters, and the country or regional variant as the third letter. For example, ENU refers to `English (United States)', while ENC means `English (Canadian)'. If the optional argument LONGFORM is t, the long form of the locale name is returned, e.g. `English (United States)' instead; if LONGFORM is a number, it is interpreted as an LCTYPE constant and the corresponding locale information is returned. If LCID (a 16-bit number) is not a valid locale, the result is nil. (fn LCID &optional LONGFORM)Fw32-get-current-locale-id Return Windows locale id for current locale setting. This is a numerical value; use `w32-get-locale-info' to convert to a human-readable form. (fn)Fw32-get-valid-locale-ids Return list of all valid Windows locale ids. Each id is a numerical value; use `w32-get-locale-info' to convert to a human-readable form. (fn)Fw32-get-default-locale-id Return Windows locale id for default locale setting. By default, the system default locale setting is returned; if the optional parameter USERP is non-nil, the user default locale setting is returned. This is a numerical value; use `w32-get-locale-info' to convert to a human-readable form. (fn &optional USERP)Fw32-set-current-locale Make Windows locale LCID be the current locale setting for Emacs. If successful, the new locale id is returned, otherwise nil. (fn LCID)Fw32-get-valid-codepages Return list of all valid Windows codepages. (fn)Fw32-get-console-codepage Return current Windows codepage for console input. (fn)Fw32-set-console-codepage Make Windows codepage CP be the codepage for Emacs tty keyboard input. This codepage setting affects keyboard input in tty mode. If successful, the new CP is returned, otherwise nil. (fn CP)Fw32-get-console-output-codepage Return current Windows codepage for console output. (fn)Fw32-set-console-output-codepage Make Windows codepage CP be the codepage for Emacs console output. This codepage setting affects display in tty mode. If successful, the new CP is returned, otherwise nil. (fn CP)Fw32-get-codepage-charset Return charset ID corresponding to codepage CP. Returns nil if the codepage is not valid or its charset ID could not be determined. Note that this function is only guaranteed to work with ANSI codepages; most console codepages are not supported and will yield nil. (fn CP)Fw32-get-valid-keyboard-layouts Return list of Windows keyboard languages and layouts. The return value is a list of pairs of language id and layout id. (fn)Fw32-get-keyboard-layout Return current Windows keyboard language and layout. The return value is the cons of the language id and the layout id. (fn)Fw32-set-keyboard-layout Make LAYOUT be the current keyboard layout for Emacs. The keyboard layout setting affects interpretation of keyboard input. If successful, the new layout id is returned, otherwise nil. (fn LAYOUT)Vw32-quote-process-args Non-nil enables quoting of process arguments to ensure correct parsing. Because Windows does not directly pass argv arrays to child processes, programs have to reconstruct the argv array by parsing the command line string. For an argument to contain a space, it must be enclosed in double quotes or it will be parsed as multiple arguments. If the value is a character, that character will be used to escape any quote characters that appear, otherwise a suitable escape character will be chosen based on the type of the program.Vw32-start-process-show-window When nil, new child processes hide their windows. When non-nil, they show their window in the method of their choice. This variable doesn't affect GUI applications, which will never be hidden.Vw32-start-process-share-console When nil, new child processes are given a new console. When non-nil, they share the Emacs console; this has the limitation of allowing only one DOS subprocess to run at a time (whether started directly or indirectly by Emacs), and preventing Emacs from cleanly terminating the subprocess group, but may allow Emacs to interrupt a subprocess that doesn't otherwise respond to interrupts from Emacs.Vw32-start-process-inherit-error-mode When nil, new child processes revert to the default error mode. When non-nil, they inherit their error mode setting from Emacs, which stops them blocking when trying to access unmounted drives etc.Vw32-pipe-read-delay Forced delay before reading subprocess output. This may need to be done to improve the buffering of subprocess output, by avoiding the inefficiency of frequently reading small amounts of data. Typically needed only with DOS programs on Windows 9X; set to 50 if throughput with such programs is slow. If positive, the value is the number of milliseconds to sleep before signaling that output from a subprocess is ready to be read. If negative, the value is the number of time slices to wait (effectively boosting the priority of the child process temporarily). A value of zero disables waiting entirely.Vw32-pipe-buffer-size Size of buffer for pipes created to communicate with subprocesses. The size is in bytes, and must be non-negative. The default is zero, which lets the OS use its default size, usually 4KB (4096 bytes). Any negative value means to use the default value of zero.Vw32-downcase-file-names Non-nil means convert all-upper case file names to lower case. This applies when performing completions and file name expansion. Note that the value of this setting also affects remote file names, so you probably don't want to set to non-nil if you use case-sensitive filesystems via ange-ftp.Vw32-generate-fake-inodes Non-nil means attempt to fake realistic inode values. This works by hashing the truename of files, and should detect aliasing between long and short (8.3 DOS) names, but can have false positives because of hash collisions. Note that determining the truename of a file can be slow.Vw32-get-true-file-attributes Non-nil means determine accurate file attributes in `file-attributes'. This option controls whether to issue additional system calls to determine accurate link counts, file type, and ownership information. It is more useful for files on NTFS volumes, where hard links and file security are supported, than on volumes of the FAT family. Without these system calls, link count will always be reported as 1 and file ownership will be attributed to the current user. The default value `local' means only issue these system calls for files on local fixed drives. A value of nil means never issue them. Any other non-nil value means do this even on remote and removable drives where the performance impact may be noticeable even on modern hardware.Vw32-collate-ignore-punctuation Non-nil causes string collation functions ignore punctuation on MS-Windows. On Posix platforms, `string-collate-lessp' and `string-collate-equalp' ignore punctuation characters when they compare strings, if the locale's codeset is UTF-8, as in "en_US.UTF-8". Binding this option to a non-nil value will achieve a similar effect on MS-Windows, where locales with UTF-8 codeset are not supported. Note that setting this to non-nil will also ignore blanks and symbols in the strings. So do NOT use this option when comparing file names for equality, only when you need to sort them.Sw32reg.o Sw32select.o Fw32-set-clipboard-data This sets the clipboard data to the given text. (fn STRING &optional IGNORED)Fw32-get-clipboard-data This gets the clipboard data in text format. (fn &optional IGNORED)Fw32-selection-exists-p Whether there is an owner for the given X selection. SELECTION should be the name of the selection in question, typically one of the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. (X expects these literal upper-case names.) The symbol nil is the same as `PRIMARY', and t is the same as `SECONDARY'. TERMINAL should be a terminal object or a frame specifying the X server to query. If omitted or nil, that stands for the selected frame's display, or the first available X display. (fn &optional SELECTION TERMINAL)Fw32-selection-targets Return a vector of data formats available in the specified SELECTION. SELECTION should be the name of the selection in question, typically one of the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. The symbol nil is the same as `PRIMARY', and t is the same as `SECONDARY'. TERMINAL should be a terminal object or a frame specifying the X server to query. If omitted or nil, that stands for the selected frame's display, or the first available X display. This function currently ignores TERMINAL, and only returns non-nil for `CLIPBOARD'. The return value is a vector of symbols, each symbol representing a data format that is currently available in the clipboard. (fn &optional SELECTION TERMINAL)Vselection-coding-system SKIP: real doc in select.el.Vnext-selection-coding-system SKIP: real doc in select.el.Sw32term.o Vx-wait-for-event-timeout SKIP: real doc in xterm.c.Vw32-num-mouse-buttons Number of physical mouse buttons.Vw32-swap-mouse-buttons Swap the mapping of middle and right mouse buttons. When nil, middle button is mouse-2 and right button is mouse-3.Vw32-grab-focus-on-raise Raised frame grabs input focus. When t, `raise-frame' grabs input focus as well. This fits well with the normal Windows click-to-focus policy, but might not be desirable when using a point-to-focus policy.Vw32-capslock-is-shiftlock Apply CapsLock state to non character input keys. When nil, CapsLock only affects normal character input keys.Vw32-recognize-altgr Recognize right-alt and left-ctrl as AltGr. When nil, the right-alt and left-ctrl key combination is interpreted normally.Vw32-use-visible-system-caret Flag to make the system caret visible. When this is non-nil, Emacs will indicate the position of point by using the system caret instead of drawing its own cursor. Some screen reader software does not track the system cursor properly when it is invisible, and gets confused by Emacs drawing its own cursor, so this variable is initialized to t when Emacs detects that screen reader software is running as it starts up. When this variable is set, other variables affecting the appearance of the cursor have no effect.Vx-use-underline-position-properties SKIP: real doc in xterm.c.Vx-underline-at-descent-line SKIP: real doc in xterm.c.Vx-toolkit-scroll-bars SKIP: real doc in xterm.c.Vw32-unicode-filenames Non-nil means use Unicode APIs when passing file names to the OS. A value of nil means file names passed to the OS APIs and returned from those APIs are encoded/decoded using the ANSI codepage specified by `file-name-coding-system'. This variable is set to non-nil by default when Emacs runs on Windows systems of the NT family, including W2K, XP, Vista, Windows 7 and Windows 8. It is set to nil on Windows 9X.Vw32-use-native-image-API Non-nil means use the native MS-Windows image API to display images. A value of nil means displaying images other than PBM and XBM requires optional supporting libraries to be installed. The native image API library used is GDI+ via GDIPLUS.DLL. This library is available only since W2K, therefore this variable is unconditionally set to nil on older systems.Vw32-yes-no-dialog-show-cancel If non-nil, show Cancel button in MS-Windows GUI Yes/No dialogs.Vw32-add-wrapped-menu-bar-lines Non-nil means frame resizing accounts for wrapped menu bar lines. A value of nil means frame resizing does not add the height of wrapped menu bar lines when sending a frame resize request to the Windows API. This usually means that the resulting frame height is off by the number of wrapped menu bar lines. If this is non-nil, Emacs adds the height of wrapped menu bar lines when sending frame resize requests to the Windows API.Sw32xfns.o Sw16select.o Fw16-set-clipboard-data This sets the clipboard data to the given text. (fn STRING &optional FRAME)Fw16-get-clipboard-data This gets the clipboard data in text format. (fn &optional FRAME)Fw16-selection-exists-p Whether there is an owner for the given X selection. SELECTION should be the name of the selection in question, typically one of the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. (X expects these literal upper-case names.) The symbol nil is the same as `PRIMARY', and t is the same as `SECONDARY'. TERMINAL should be a terminal object or a frame specifying the X server to query. If omitted or nil, that stands for the selected frame's display, or the first available X display. (fn &optional SELECTION TERMINAL)Vselection-coding-system SKIP: real doc in select.el.Vnext-selection-coding-system SKIP: real doc in select.el.Swidget.o Sxfont.o Sftfont.o Sxftfont.o Vxft-font-ascent-descent-override Non-nil means override the ascent and descent values for Xft font driver. This is needed with some fonts to correct vertical overlap of glyphs.Vxft-color-font-whitelist List of "color" font families that don't actually have color glyphs. Some fonts (such as Source Code Pro) are reported as color fonts, but do not actually have glyphs with colors that can cause Xft crashes. The font families in this list will not be ignored when `xft-ignore-color-fonts' is non-nil.Sgtkutil.o Sxsettings.o Ffont-get-system-normal-font Get the system default application font. The font is returned as either a font-spec or font name. (fn)Ffont-get-system-font Get the system default fixed width font. The font is returned as either a font-spec or font name. (fn)Ftool-bar-get-system-style Get the system tool bar style. If no system tool bar style is known, return `tool-bar-style' if set to a known style. Otherwise return image. (fn)Vfont-use-system-font Non-nil means to apply the system defined font dynamically. When this is non-nil and the system defined fixed width font changes, we update frames dynamically. If this variable is nil, Emacs ignores system font changes.Vxft-settings Font settings applied to Xft.Sxgselect.o Stermcap.o Shbfont.o Shaikuterm.o Vhaiku-initialized Non-nil if the Haiku terminal backend has been initialized.Vx-use-underline-position-properties SKIP: real doc in xterm.c.Vx-underline-at-descent-line SKIP: real doc in xterm.c.Vx-toolkit-scroll-bars SKIP: real doc in xterm.c.Vhaiku-debug-on-fatal-error If non-nil, Emacs will launch the system debugger upon a fatal error.Vhaiku-meta-keysym Which key Emacs uses as the meta modifier. This is either one of the symbols `shift', `control', `command', and `option', or nil, in which case it is treated as `command'. Setting it to any other value is equivalent to `command'.Vhaiku-control-keysym Which key Emacs uses as the control modifier. This is either one of the symbols `shift', `control', `command', and `option', or nil, in which case it is treated as `control'. Setting it to any other value is equivalent to `control'.Vhaiku-super-keysym Which key Emacs uses as the super modifier. This is either one of the symbols `shift', `control', `command', and `option', or nil, in which case it is treated as `option'. Setting it to any other value is equivalent to `option'.Vhaiku-shift-keysym Which key Emacs uses as the shift modifier. This is either one of the symbols `shift', `control', `command', and `option', or nil, in which case it is treated as `shift'. Setting it to any other value is equivalent to `shift'.Shaikufns.o Fhaiku-set-mouse-absolute-pixel-position Move mouse pointer to a pixel position at (X, Y). The coordinates X and Y are interpreted to start from the top-left corner of the screen. (fn X Y)Fhaiku-mouse-absolute-pixel-position Return absolute position of mouse cursor in pixels. The position is returned as a cons cell (X . Y) of the coordinates of the mouse cursor position in pixels relative to a position (0, 0) of the selected frame's display. (fn)Fxw-display-color-p SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fxw-color-defined-p SKIP: real doc in xfns.c. (fn COLOR &optional FRAME)Fxw-color-values SKIP: real doc in xfns.c. (fn COLOR &optional FRAME)Fx-display-grayscale-p SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-open-connection SKIP: real doc in xfns.c. (fn DISPLAY &optional RESOURCE-STRING MUST-SUCCEED)Fx-display-pixel-width SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-display-pixel-height SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-display-mm-height SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-display-mm-width SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-create-frame SKIP: real doc in xfns.c. (fn PARMS)Fx-display-visual-class SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-show-tip SKIP: real doc in xfns.c. (fn STRING &optional FRAME PARMS TIMEOUT DX DY)Fx-hide-tip SKIP: real doc in xfns.c. (fn)Fx-close-connection SKIP: real doc in xfns.c. (fn TERMINAL)Fx-display-list SKIP: real doc in xfns.c. (fn)Fx-server-vendor SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-server-version SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-display-screens SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fhaiku-get-version-string Return a string describing the current Haiku version. (fn)Fx-display-color-cells SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-display-planes SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fx-double-buffered-p SKIP: real doc in xfns.c. (fn &optional FRAME)Fx-display-backing-store SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fhaiku-frame-geometry Return geometric attributes of FRAME. FRAME must be a live frame and defaults to the selected one. The return value is an association list of the attributes listed below. All height and width values are in pixels. `outer-position' is a cons of the outer left and top edges of FRAME relative to the origin - the position (0, 0) - of FRAME's display. `outer-size' is a cons of the outer width and height of FRAME. The outer size includes the title bar and the external borders as well as any menu and/or tool bar of frame. `external-border-size' is a cons of the horizontal and vertical width of FRAME's external borders as supplied by the window manager. `title-bar-size' is a cons of the width and height of the title bar of FRAME as supplied by the window manager. If both of them are zero, FRAME has no title bar. If only the width is zero, Emacs was not able to retrieve the width information. `menu-bar-external', if non-nil, means the menu bar is external (never included in the inner edges of FRAME). `menu-bar-size' is a cons of the width and height of the menu bar of FRAME. `tool-bar-external', if non-nil, means the tool bar is external (never included in the inner edges of FRAME). `tool-bar-position' tells on which side the tool bar on FRAME is and can be one of `left', `top', `right' or `bottom'. If this is nil, FRAME has no tool bar. `tool-bar-size' is a cons of the width and height of the tool bar of FRAME. `internal-border-width' is the width of the internal border of FRAME. (fn &optional FRAME)Fhaiku-frame-edges Return edge coordinates of FRAME. FRAME must be a live frame and defaults to the selected one. The return value is a list of the form (LEFT, TOP, RIGHT, BOTTOM). All values are in pixels relative to the origin - the position (0, 0) - of FRAME's display. If optional argument TYPE is the symbol `outer-edges', return the outer edges of FRAME. The outer edges comprise the decorations of the window manager (like the title bar or external borders) as well as any external menu or tool bar of FRAME. If optional argument TYPE is the symbol `native-edges' or nil, return the native edges of FRAME. The native edges exclude the decorations of the window manager and any external menu or tool bar of FRAME. If TYPE is the symbol `inner-edges', return the inner edges of FRAME. These edges exclude title bar, any borders, menu bar or tool bar of FRAME. (fn &optional FRAME TYPE)Fhaiku-read-file-name Use a graphical panel to read a file name, using prompt PROMPT. Optional arg FRAME specifies a frame on which to display the file panel. If it is nil, the current frame is used instead. The frame being used will be brought to the front of the display after the file panel is closed. Optional arg DIR, if non-nil, supplies a default directory. Optional arg MUSTMATCH, if non-nil, means the returned file or directory must exist. Optional arg DIR_ONLY_P, if non-nil, means choose only directories. Optional arg SAVE_TEXT, if non-nil, specifies some text to show in the entry field. (fn PROMPT &optional FRAME DIR MUSTMATCH DIR-ONLY-P SAVE-TEXT)Fhaiku-put-resource Place STRING by the key RESOURCE in the resource database. It can later be retrieved with `x-get-resource'. (fn RESOURCE STRING)Fhaiku-frame-list-z-order Return list of Emacs' frames, in Z (stacking) order. If TERMINAL is non-nil and specifies a live frame, return the child frames of that frame in Z (stacking) order. As it is impossible to reliably determine the frame stacking order on Haiku, the selected frame is always the first element of the returned list, while the rest are not guaranteed to be in any particular order. Frames are listed from topmost (first) to bottommost (last). (fn &optional TERMINAL)Fx-display-save-under SKIP: real doc in xfns.c. (fn &optional TERMINAL)Fhaiku-frame-restack Restack FRAME1 below FRAME2. This means that if both frames are visible and the display areas of these frames overlap, FRAME2 (partially) obscures FRAME1. If optional third argument ABOVE is non-nil, restack FRAME1 above FRAME2. This means that if both frames are visible and the display areas of these frames overlap, FRAME1 (partially) obscures FRAME2. Some window managers may refuse to restack windows. (fn FRAME1 FRAME2 &optional ABOVE)Fhaiku-save-session-reply Reply to a `save-session' event. QUIT-REPLY means whether or not all files were saved and program termination should proceed. Calls to this function must be balanced by the amount of `save-session' events received. This is done automatically, so do not call this function yourself. (fn QUIT-REPLY)Fhaiku-display-monitor-attributes-list Return a list of physical monitor attributes on the display TERMINAL. The optional argument TERMINAL specifies which display to ask about. TERMINAL should be a terminal object, a frame or a display name (a string). If omitted or nil, that stands for the selected frame's display. Internal use only, use `display-monitor-attributes-list' instead. (fn &optional TERMINAL)Vx-max-tooltip-size SKIP: real doc in xfns.c.Vx-cursor-fore-pixel SKIP: real doc in xfns.c.Vx-pointer-shape SKIP: real doc in xfns.c.Vx-hourglass-pointer-shape SKIP: real doc in xfns.c.Vx-sensitive-text-pointer-shape SKIP: real doc in xfns.c.Vhaiku-allowed-ui-colors Vector of UI colors that Emacs can look up from the system. If this is set up incorrectly, Emacs can crash when encountering an invalid color.Vcairo-version-string Version info for cairo.Shaikumenu.o Fmenu-or-popup-active-p SKIP: real doc in xmenu.c. (fn)Fhaiku-menu-bar-open Show and start key navigation of the menu bar in FRAME. This initially opens the first menu bar item and you can then navigate with the arrow keys, select a menu entry with the return key, or cancel with the escape key. If FRAME is nil or not given, use the selected frame. If FRAME has no menu bar, a pop-up is displayed at the position of the last non-menu event instead. (fn &optional FRAME)Shaikufont.o Fx-select-font Read a font using a native dialog. Return a font spec describing the font chosen by the user. FRAME is the frame on which to pop up the font chooser. If omitted or nil, it defaults to the selected frame. If EXCLUDE-PROPORTIONAL is non-nil, exclude proportional fonts in the font selection dialog. (fn &optional FRAME EXCLUDE-PROPORTIONAL)Ffont-get-system-normal-font SKIP: real doc in xsettings.c. (fn)Ffont-get-system-font SKIP: real doc in xsettings.c. (fn)Vfont-use-system-font SKIP: real doc in xsettings.c.Sdispnew.o Fdump-redisplay-history Dump redisplay history to stderr. (fn)Fredraw-frame Clear frame FRAME and output again what is supposed to appear on it. If FRAME is omitted or nil, the selected frame is used. (fn &optional FRAME)Fredraw-display Clear and redisplay all visible frames. (fn)Fdisplay--update-for-mouse-movement Handle mouse movement detected by Lisp code. This function should be called when Lisp code detects the mouse has moved, even if `track-mouse' is nil. This handles updates that do not rely on input events such as updating display for mouse-face properties or updating the help echo text. (fn MOUSE-X MOUSE-Y)Fopen-termscript Start writing all terminal output to FILE as well as the terminal. FILE = nil means just close any termscript file currently open. (fn FILE)Fsend-string-to-terminal Send STRING to the terminal without alteration. Control characters in STRING will have terminal-dependent effects. Optional parameter TERMINAL specifies the tty terminal device to use. It may be a terminal object, a frame, or nil for the terminal used by the currently selected frame. In batch mode, STRING is sent to stdout when TERMINAL is nil. (fn STRING &optional TERMINAL)Fding Beep, or flash the screen. Also, unless an argument is given, terminate any keyboard macro currently executing. (fn &optional ARG)Fsleep-for Pause, without updating display, for SECONDS seconds. SECONDS may be a floating-point value, meaning that you can wait for a fraction of a second. Optional second arg MILLISECONDS specifies an additional wait period, in milliseconds; this is for backwards compatibility. (Not all operating systems support waiting for a fraction of a second.) (fn SECONDS &optional MILLISECONDS)Fredisplay Perform redisplay. Optional arg FORCE, if non-nil, prevents redisplay from being preempted by arriving input, even if `redisplay-dont-pause' is nil. If `redisplay-dont-pause' is non-nil (the default), redisplay is never preempted by arriving input, so FORCE does nothing. Return t if redisplay was performed, nil if redisplay was preempted immediately by pending input. (fn &optional FORCE)Fframe-or-buffer-changed-p Return non-nil if the frame and buffer state appears to have changed. VARIABLE is a variable name whose value is either nil or a state vector that will be updated to contain all frames and buffers, aside from buffers whose names start with space, along with the buffers' read-only and modified flags. This allows a fast check to see whether buffer menus might need to be recomputed. If this function returns non-nil, it updates the internal vector to reflect the current state. If VARIABLE is nil, an internal variable is used. Users should not pass nil for VARIABLE. (fn &optional VARIABLE)Finternal-show-cursor Set the cursor-visibility flag of WINDOW to SHOW. WINDOW nil means use the selected window. SHOW non-nil means show a cursor in WINDOW in the next redisplay. SHOW nil means don't show a cursor. (fn WINDOW SHOW)Finternal-show-cursor-p Value is non-nil if next redisplay will display a cursor in WINDOW. WINDOW nil or omitted means report on the selected window. (fn &optional WINDOW)Vbaud-rate The output baud rate of the terminal. On most systems, changing this value will affect the amount of padding and the other strategic decisions made during redisplay.Vinverse-video Non-nil means invert the entire frame display. This means everything is in inverse video which otherwise would not be.Vvisible-bell Non-nil means try to flash the frame to represent a bell. See also `ring-bell-function'.Vno-redraw-on-reenter Non-nil means no need to redraw entire frame after suspending. A non-nil value is useful if the terminal can automatically preserve Emacs's frame display when you reenter Emacs. It is up to you to set this variable if your terminal can do that.Vinitial-window-system Name of the window system that Emacs uses for the first frame. The value is a symbol: nil for a termcap frame (a character-only terminal), `x' for an Emacs frame that is really an X window, `w32' for an Emacs frame that is a window on MS-Windows display, `ns' for an Emacs frame on a GNUstep or Macintosh Cocoa display, `pc' for a direct-write MS-DOS frame. `pgtk' for an Emacs frame using pure GTK facilities. `haiku' for an Emacs frame running in Haiku. Use of this variable as a boolean is deprecated. Instead, use `display-graphic-p' or any of the other `display-*-p' predicates which report frame's specific UI-related capabilities.Vwindow-system Name of window system through which the selected frame is displayed. The value is a symbol: nil for a termcap frame (a character-only terminal), `x' for an Emacs frame that is really an X window, `w32' for an Emacs frame that is a window on MS-Windows display, `ns' for an Emacs frame on a GNUstep or Macintosh Cocoa display, `pc' for a direct-write MS-DOS frame. `pgtk' for an Emacs frame using pure GTK facilities. `haiku' for an Emacs frame running in Haiku. Use of this variable as a boolean is deprecated. Instead, use `display-graphic-p' or any of the other `display-*-p' predicates which report frame's specific UI-related capabilities.Vcursor-in-echo-area Non-nil means put cursor in minibuffer, at end of any message there.Vglyph-table Table defining how to output a glyph code to the frame. If not nil, this is a vector indexed by glyph code to define the glyph. Each element can be: integer: a glyph code which this glyph is an alias for. string: output this glyph using that string (not impl. in X windows). nil: this glyph mod 524288 is the code of a character to output, and this glyph / 524288 is the face number (see `face-id') to use while outputting it.Vstandard-display-table Display table to use for buffers that specify none. It is also used for standard output and error streams. See `buffer-display-table' for more information.Vredisplay-dont-pause Nil means display update is paused when input is detected.Vx-show-tooltip-timeout The default timeout (in seconds) for `x-show-tip'.Vtab-bar-position Specify on which side from the tool bar the tab bar shall be. Possible values are t (below the tool bar), nil (above the tool bar). This option affects only builds where the tool bar is not external.Sframe.o Fframep Return non-nil if OBJECT is a frame. Value is: t for a termcap frame (a character-only terminal), `x' for an Emacs frame that is really an X window, `w32' for an Emacs frame that is a window on MS-Windows display, `ns' for an Emacs frame on a GNUstep or Macintosh Cocoa display, `pc' for a direct-write MS-DOS frame, `pgtk' for an Emacs frame running on pure GTK. `haiku' for an Emacs frame running in Haiku. See also `frame-live-p'. (fn OBJECT)Fframe-live-p Return non-nil if OBJECT is a frame which has not been deleted. Value is nil if OBJECT is not a live frame. If object is a live frame, the return value indicates what sort of terminal device it is displayed on. See the documentation of `framep' for possible return values. (fn OBJECT)Fwindow-system The name of the window system that FRAME is displaying through. The value is a symbol: nil for a termcap frame (a character-only terminal), `x' for an Emacs frame that is really an X window, `w32' for an Emacs frame that is a window on MS-Windows display, `ns' for an Emacs frame on a GNUstep or Macintosh Cocoa display, `pc' for a direct-write MS-DOS frame. `pgtk' for an Emacs frame using pure GTK facilities. `haiku' for an Emacs frame running in Haiku. FRAME defaults to the currently selected frame. Use of this function as a predicate is deprecated. Instead, use `display-graphic-p' or any of the other `display-*-p' predicates which report frame's specific UI-related capabilities. (fn &optional FRAME)Fframe-windows-min-size SKIP: real doc in window.el. (fn FRAME HORIZONTAL IGNORE PIXELWISE)Fmake-terminal-frame Create an additional terminal frame, possibly on another terminal. This function takes one argument, an alist specifying frame parameters. You can create multiple frames on a single text terminal, but only one of them (the selected terminal frame) is actually displayed. In practice, generally you don't need to specify any parameters, except when you want to create a new frame on another terminal. In that case, the `tty' parameter specifies the device file to open, and the `tty-type' parameter specifies the terminal type. Example: (make-terminal-frame \='((tty . "/dev/pts/5") (tty-type . "xterm"))) Note that changing the size of one terminal frame automatically affects all frames on the same terminal device. (fn PARMS)Fselect-frame Select FRAME. Subsequent editing commands apply to its selected window. Optional argument NORECORD means to neither change the order of recently selected windows nor the buffer list. The selection of FRAME lasts until the next time the user does something to select a different frame, or until the next time this function is called. If you are using a window system, the previously selected frame may be restored as the selected frame when returning to the command loop, because it still may have the window system's input focus. On a text terminal, the next redisplay will display FRAME. This function returns FRAME, or nil if FRAME has been deleted. (fn FRAME &optional NORECORD)Fhandle-switch-frame Handle a switch-frame event EVENT. Switch-frame events are usually bound to this function. A switch-frame event is an event Emacs sends itself to indicate that input is arriving in a new frame. It does not necessarily represent user-visible input focus. (fn EVENT)Fselected-frame Return the frame that is now selected. (fn)Fold-selected-frame Return the old selected FRAME. FRAME must be a live frame and defaults to the selected one. The return value is the frame selected the last time window change functions were run. (fn)Fframe-list Return a list of all live frames. The return value does not include any tooltip frame. (fn)Fframe-parent Return the parent frame of FRAME. The parent frame of FRAME is the Emacs frame whose window-system window is the parent window of FRAME's window-system window. When such a frame exists, FRAME is considered a child frame of that frame. Return nil if FRAME has no parent frame. This means that FRAME's window-system window is either a "top-level" window (a window whose parent window is the window-system's root window) or an embedded window (a window whose parent window is owned by some other application). (fn &optional FRAME)Fframe-ancestor-p Return non-nil if ANCESTOR is an ancestor of DESCENDANT. ANCESTOR is an ancestor of DESCENDANT when it is either DESCENDANT's parent frame or it is an ancestor of DESCENDANT's parent frame. Both, ANCESTOR and DESCENDANT must be live frames and default to the selected frame. (fn ANCESTOR DESCENDANT)Fnext-frame Return the next frame in the frame list after FRAME. Only frames on the same terminal as FRAME are included in the list of candidate frames. If omitted, FRAME defaults to the selected frame. If MINIFRAME is nil (the default), include all frames except minibuffer-only frames. If MINIFRAME is a window, include only its own frame and any frame now using that window as the minibuffer. If MINIFRAME is `visible', include only visible frames. If MINIFRAME is 0, include only visible and iconified frames. If MINIFRAME is any other value, include all frames. (fn &optional FRAME MINIFRAME)Fprevious-frame Return the previous frame in the frame list before FRAME. It considers only frames on the same terminal as FRAME. By default, skip minibuffer-only frames. If omitted, FRAME defaults to the selected frame. If optional argument MINIFRAME is nil, exclude minibuffer-only frames. If MINIFRAME is a window, include only its own frame and any frame now using that window as the minibuffer. If MINIFRAME is `visible', include all visible frames. If MINIFRAME is 0, include all visible and iconified frames. Otherwise, include all frames. (fn &optional FRAME MINIFRAME)Flast-nonminibuffer-frame Return last non-minibuffer frame selected. (fn)Fdelete-frame Delete FRAME, eliminating it from use. FRAME must be a live frame and defaults to the selected one. When `undelete-frame-mode' is enabled, the 16 most recently deleted frames can be undeleted with `undelete-frame', which see. A frame may not be deleted if its minibuffer serves as surrogate minibuffer for another frame. Normally, you may not delete a frame if all other frames are invisible, but if the second optional argument FORCE is non-nil, you may do so. This function runs `delete-frame-functions' before actually deleting the frame, unless the frame is a tooltip. The functions are run with one argument, the frame to be deleted. (fn &optional FRAME FORCE)Fmouse-position Return a list (FRAME X . Y) giving the current mouse frame and position. The position is given in canonical character cells, where (0, 0) is the upper-left corner of the frame, X is the horizontal offset, and Y is the vertical offset, measured in units of the frame's default character size. If Emacs is running on a mouseless terminal or hasn't been programmed to read the mouse position, it returns the selected frame for FRAME and nil for X and Y. FRAME might be nil if `track-mouse' is set to `drag-source'. This means there is no frame under the mouse. If `mouse-position-function' is non-nil, `mouse-position' calls it, passing the normal return value to that function as an argument, and returns whatever that function returns. (fn)Fmouse-pixel-position Return a list (FRAME X . Y) giving the current mouse frame and position. The position is given in pixel units, where (0, 0) is the upper-left corner of the frame, X is the horizontal offset, and Y is the vertical offset. FRAME might be nil if `track-mouse' is set to `drag-source'. This means there is no frame under the mouse. If Emacs is running on a mouseless terminal or hasn't been programmed to read the mouse position, it returns the selected frame for FRAME and nil for X and Y. (fn)Fset-mouse-position Move the mouse pointer to the center of character cell (X,Y) in FRAME. Coordinates are relative to the frame, not a window, so the coordinates of the top left character in the frame may be nonzero due to left-hand scroll bars or the menu bar. The position is given in canonical character cells, where (0, 0) is the upper-left corner of the frame, X is the horizontal offset, and Y is the vertical offset, measured in units of the frame's default character size. This function is a no-op for an X frame that is not visible. If you have just created a frame, you must wait for it to become visible before calling this function on it, like this. (while (not (frame-visible-p frame)) (sleep-for .5)) (fn FRAME X Y)Fset-mouse-pixel-position Move the mouse pointer to pixel position (X,Y) in FRAME. The position is given in pixels, where (0, 0) is the upper-left corner of the frame, X is the horizontal offset, and Y is the vertical offset. Note, this is a no-op for an X frame that is not visible. If you have just created a frame, you must wait for it to become visible before calling this function on it, like this. (while (not (frame-visible-p frame)) (sleep-for .5)) (fn FRAME X Y)Fmake-frame-visible Make the frame FRAME visible (assuming it is an X window). If omitted, FRAME defaults to the currently selected frame. (fn &optional FRAME)Fmake-frame-invisible Make the frame FRAME invisible. If omitted, FRAME defaults to the currently selected frame. On graphical displays, invisible frames are not updated and are usually not displayed at all, even in a window system's "taskbar". Normally you may not make FRAME invisible if all other frames are invisible, but if the second optional argument FORCE is non-nil, you may do so. This function has no effect on text terminal frames. Such frames are always considered visible, whether or not they are currently being displayed in the terminal. (fn &optional FRAME FORCE)Ficonify-frame Make the frame FRAME into an icon. If omitted, FRAME defaults to the currently selected frame. If FRAME is a child frame, consult the variable `iconify-child-frame' for how to proceed. (fn &optional FRAME)Fframe-visible-p Return t if FRAME is "visible" (actually in use for display). Return the symbol `icon' if FRAME is iconified or "minimized". Return nil if FRAME was made invisible, via `make-frame-invisible'. On graphical displays, invisible frames are not updated and are usually not displayed at all, even in a window system's "taskbar". If FRAME is a text terminal frame, this always returns t. Such frames are always considered visible, whether or not they are currently being displayed on the terminal. (fn FRAME)Fvisible-frame-list Return a list of all frames now "visible" (being updated). (fn)Fraise-frame Bring FRAME to the front, so it occludes any frames it overlaps. If FRAME is invisible or iconified, make it visible. If you don't specify a frame, the selected frame is used. If Emacs is displaying on an ordinary terminal or some other device which doesn't support multiple overlapping frames, this function selects FRAME. (fn &optional FRAME)Flower-frame Send FRAME to the back, so it is occluded by any frames that overlap it. If you don't specify a frame, the selected frame is used. If Emacs is displaying on an ordinary terminal or some other device which doesn't support multiple overlapping frames, this function does nothing. (fn &optional FRAME)Fredirect-frame-focus Arrange for keystrokes typed at FRAME to be sent to FOCUS-FRAME. In other words, switch-frame events caused by events in FRAME will request a switch to FOCUS-FRAME, and `last-event-frame' will be FOCUS-FRAME after reading an event typed at FRAME. If FOCUS-FRAME is nil, any existing redirection is canceled, and the frame again receives its own keystrokes. Focus redirection is useful for temporarily redirecting keystrokes to a surrogate minibuffer frame when a frame doesn't have its own minibuffer window. A frame's focus redirection can be changed by `select-frame'. If frame FOO is selected, and then a different frame BAR is selected, any frames redirecting their focus to FOO are shifted to redirect their focus to BAR. This allows focus redirection to work properly when the user switches from one frame to another using `select-window'. This means that a frame whose focus is redirected to itself is treated differently from a frame whose focus is redirected to nil; the former is affected by `select-frame', while the latter is not. The redirection lasts until `redirect-frame-focus' is called to change it. (fn FRAME &optional FOCUS-FRAME)Fframe-focus Return the frame to which FRAME's keystrokes are currently being sent. If FRAME is omitted or nil, the selected frame is used. Return nil if FRAME's focus is not redirected. See `redirect-frame-focus'. (fn &optional FRAME)Fx-focus-frame Set the input focus to FRAME. FRAME nil means use the selected frame. Optional argument NOACTIVATE means do not activate FRAME. If there is no window system support, this function does nothing. (fn FRAME &optional NOACTIVATE)Fframe-after-make-frame Mark FRAME as made. FRAME nil means use the selected frame. Second argument MADE non-nil means functions on `window-configuration-change-hook' are called whenever the window configuration of FRAME changes. MADE nil means these functions are not called. This function is currently called by `make-frame' only and should be otherwise used with utter care to avoid that running functions on `window-configuration-change-hook' is impeded forever. (fn FRAME MADE)Fframe-parameters Return the parameters-alist of frame FRAME. It is a list of elements of the form (PARM . VALUE), where PARM is a symbol. The meaningful PARMs depend on the kind of frame. If FRAME is omitted or nil, return information on the currently selected frame. (fn &optional FRAME)Fframe-parameter Return FRAME's value for parameter PARAMETER. If FRAME is nil, describe the currently selected frame. (fn FRAME PARAMETER)Fmodify-frame-parameters Modify FRAME according to new values of its parameters in ALIST. If FRAME is nil, it defaults to the selected frame. ALIST is an alist of parameters to change and their new values. Each element of ALIST has the form (PARM . VALUE), where PARM is a symbol. Which PARMs are meaningful depends on the kind of frame. The meaningful parameters are acted upon, i.e. the frame is changed according to their new values, and are also stored in the frame's parameter list so that `frame-parameters' will return them. PARMs that are not meaningful are still stored in the frame's parameter list, but are otherwise ignored. (fn FRAME ALIST)Fframe-char-height Height in pixels of a line in the font in frame FRAME. If FRAME is omitted or nil, the selected frame is used. For a terminal frame, the value is always 1. (fn &optional FRAME)Fframe-char-width Width in pixels of characters in the font in frame FRAME. If FRAME is omitted or nil, the selected frame is used. On a graphical screen, the width is the standard width of the default font. For a terminal screen, the value is always 1. (fn &optional FRAME)Fframe-native-width Return FRAME's native width in pixels. For a terminal frame, the result really gives the width in characters. If FRAME is omitted or nil, the selected frame is used. If you're interested only in the width of the text portion of the frame, see `frame-text-width' instead. (fn &optional FRAME)Fframe-native-height Return FRAME's native height in pixels. If FRAME is omitted or nil, the selected frame is used. The exact value of the result depends on the window-system and toolkit in use: In the Gtk+ and NS versions, it includes only any window (including the minibuffer or echo area), mode line, and header line. It does not include the tool bar or menu bar. With other graphical versions, it may also include the tool bar and the menu bar. If you're interested only in the height of the text portion of the frame, see `frame-text-height' instead. For a text terminal, it includes the menu bar. In this case, the result is really in characters rather than pixels (i.e., is identical to `frame-height'). (fn &optional FRAME)Ftool-bar-pixel-width Return width in pixels of FRAME's tool bar. The result is greater than zero only when the tool bar is on the left or right side of FRAME. If FRAME is omitted or nil, the selected frame is used. (fn &optional FRAME)Fframe-text-cols Return width in columns of FRAME's text area. (fn &optional FRAME)Fframe-text-lines Return height in lines of FRAME's text area. (fn &optional FRAME)Fframe-total-cols Return number of total columns of FRAME. (fn &optional FRAME)Fframe-total-lines Return number of total lines of FRAME. (fn &optional FRAME)Fframe-text-width Return text area width of FRAME in pixels. (fn &optional FRAME)Fframe-text-height Return text area height of FRAME in pixels. (fn &optional FRAME)Fframe-scroll-bar-width Return scroll bar width of FRAME in pixels. (fn &optional FRAME)Fframe-scroll-bar-height Return scroll bar height of FRAME in pixels. (fn &optional FRAME)Fframe-fringe-width Return fringe width of FRAME in pixels. (fn &optional FRAME)Fframe-child-frame-border-width Return width of FRAME's child-frame border in pixels. If FRAME's `child-frame-border-width' parameter is nil, return FRAME's internal border width instead. (fn &optional FRAME)Fframe-internal-border-width Return width of FRAME's internal border in pixels. (fn &optional FRAME)Fframe-right-divider-width Return width (in pixels) of vertical window dividers on FRAME. (fn &optional FRAME)Fframe-bottom-divider-width Return width (in pixels) of horizontal window dividers on FRAME. (fn &optional FRAME)Fset-frame-height Set text height of frame FRAME to HEIGHT lines. Optional third arg PRETEND non-nil means that redisplay should use HEIGHT lines but that the idea of the actual height of the frame should not be changed. Optional fourth argument PIXELWISE non-nil means that FRAME should be HEIGHT pixels high. Note: When `frame-resize-pixelwise' is nil, some window managers may refuse to honor a HEIGHT that is not an integer multiple of the default frame font height. When called interactively, HEIGHT is the numeric prefix and the currently selected frame will be set to this height. If FRAME is nil, it defaults to the selected frame. (fn FRAME HEIGHT &optional PRETEND PIXELWISE)Fset-frame-width Set text width of frame FRAME to WIDTH columns. Optional third arg PRETEND non-nil means that redisplay should use WIDTH columns but that the idea of the actual width of the frame should not be changed. Optional fourth argument PIXELWISE non-nil means that FRAME should be WIDTH pixels wide. Note: When `frame-resize-pixelwise' is nil, some window managers may refuse to honor a WIDTH that is not an integer multiple of the default frame font width. When called interactively, WIDTH is the numeric prefix and the currently selected frame will be set to this width. If FRAME is nil, it defaults to the selected frame. (fn FRAME WIDTH &optional PRETEND PIXELWISE)Fset-frame-size Set text size of FRAME to WIDTH by HEIGHT, measured in characters. Optional argument PIXELWISE non-nil means to measure in pixels. Note: When `frame-resize-pixelwise' is nil, some window managers may refuse to honor a WIDTH that is not an integer multiple of the default frame font width or a HEIGHT that is not an integer multiple of the default frame font height. If FRAME is nil, it defaults to the selected frame. (fn FRAME WIDTH HEIGHT &optional PIXELWISE)Fframe-position Return top left corner of FRAME in pixels. FRAME must be a live frame and defaults to the selected one. The return value is a cons (x, y) of the coordinates of the top left corner of FRAME's outer frame, in pixels relative to an origin (0, 0) of FRAME's display. Note that the values returned are not guaranteed to be accurate: The values depend on the underlying window system, and some systems add a constant offset to the values. (fn &optional FRAME)Fset-frame-position Set position of FRAME to (X, Y). FRAME must be a live frame and defaults to the selected one. X and Y, if positive, specify the coordinate of the left and top edge of FRAME's outer frame in pixels relative to an origin (0, 0) of FRAME's display. If any of X or Y is negative, it specifies the coordinates of the right or bottom edge of the outer frame of FRAME relative to the right or bottom edge of FRAME's display. (fn FRAME X Y)Fframe-window-state-change Return t if FRAME's window state change flag is set, nil otherwise. FRAME must be a live frame and defaults to the selected one. If FRAME's window state change flag is set, the default values of `window-state-change-functions' and `window-state-change-hook' will be run during next redisplay, regardless of whether a window state change actually occurred on FRAME or not. After that, the value of this flag is reset. (fn &optional FRAME)Fset-frame-window-state-change Set FRAME's window state change flag according to ARG. Set FRAME's window state change flag if ARG is non-nil, reset it otherwise. If FRAME's window state change flag is set, the default values of `window-state-change-functions' and `window-state-change-hook' will be run during next redisplay, regardless of whether a window state change actually occurred on FRAME or not. After that, the value of FRAME's window state change flag is reset. (fn &optional FRAME ARG)Fframe-scale-factor Return FRAMEs scale factor. If FRAME is omitted or nil, the selected frame is used. The scale factor is the amount by which a logical pixel size must be multiplied to find the real number of pixels. (fn &optional FRAME)Fx-get-resource Return the value of ATTRIBUTE, of class CLASS, from the X defaults database. This uses `INSTANCE.ATTRIBUTE' as the key and `Emacs.CLASS' as the class, where INSTANCE is the name under which Emacs was invoked, or the name specified by the `-name' or `-rn' command-line arguments. The optional arguments COMPONENT and SUBCLASS add to the key and the class, respectively. You must specify both of them or neither. If you specify them, the key is `INSTANCE.COMPONENT.ATTRIBUTE' and the class is `Emacs.CLASS.SUBCLASS'. (fn ATTRIBUTE CLASS &optional COMPONENT SUBCLASS)Fx-parse-geometry Parse a display geometry string STRING. Returns an alist of the form ((top . TOP), (left . LEFT) ... ). The properties returned may include `top', `left', `height', and `width'. For X, the value of `left' or `top' may be an integer, or a list (+ N) meaning N pixels relative to top/left corner, or a list (- N) meaning -N pixels relative to bottom/right corner. On Nextstep, this just calls `ns-parse-geometry'. (fn STRING)Fframe-pointer-visible-p Return t if the mouse pointer displayed on FRAME is visible. Otherwise it returns nil. FRAME omitted or nil means the selected frame. This is useful when `make-pointer-invisible' is set. (fn &optional FRAME)Fframe--set-was-invisible Set FRAME's was-invisible flag if WAS-INVISIBLE is non-nil. This function is for internal use only. (fn FRAME WAS-INVISIBLE)Freconsider-frame-fonts Recreate FRAME's default font using updated font parameters. Signal an error if FRAME is not a window system frame. This should be called after a `config-changed' event is received, signaling that the parameters (such as pixel density) used by the system to open fonts have changed. (fn FRAME)Vx-resource-name The name Emacs uses to look up X resources. `x-get-resource' uses this as the first component of the instance name when requesting resource values. Emacs initially sets `x-resource-name' to the name under which Emacs was invoked, or to the value specified with the `-name' or `-rn' switches, if present. It may be useful to bind this variable locally around a call to `x-get-resource'. See also the variable `x-resource-class'.Vx-resource-class The class Emacs uses to look up X resources. `x-get-resource' uses this as the first component of the instance class when requesting resource values. Emacs initially sets `x-resource-class' to "Emacs". Setting this variable permanently is not a reasonable thing to do, but binding this variable locally around a call to `x-get-resource' is a reasonable practice. See also the variable `x-resource-name'.Vframe-alpha-lower-limit The lower limit of the frame opacity (alpha transparency). The value should range from 0 (invisible) to 100 (completely opaque). You can also use a floating number between 0.0 and 1.0.Vdefault-frame-alist Alist of default values of frame parameters for frame creation. These may be set in your init file, like this: (setq default-frame-alist \='((width . 80) (height . 55) (menu-bar-lines . 1))) These override values given in window system configuration data, including X Windows' defaults database. Note that many display-related modes (like `scroll-bar-mode' or `menu-bar-mode') alter `default-frame-alist', so if you set this variable directly, you may be overriding other settings unintentionally. Instead it's often better to use `modify-all-frames-parameters' or push new elements to the front of this alist. For values specific to the first Emacs frame, see `initial-frame-alist'. For window-system specific values, see `window-system-default-frame-alist'. For values specific to the separate minibuffer frame, see `minibuffer-frame-alist'. Setting this variable does not affect existing frames, only new ones.Vdefault-frame-scroll-bars Default position of vertical scroll bars on this window-system.Vscroll-bar-adjust-thumb-portion Adjust scroll bars for overscrolling for Gtk+, Motif and Haiku. Non-nil means adjust the thumb in the scroll bar so it can be dragged downwards even if the end of the buffer is shown (i.e. overscrolling). Set to nil if you want the thumb to be at the bottom when the end of the buffer is shown. Also, the thumb fills the whole scroll bar when the entire buffer is visible. In this case you can not overscroll.Vterminal-frame The initial frame-object, which represents Emacs's stdout.Vmouse-position-function If non-nil, function to transform normal value of `mouse-position'. `mouse-position' and `mouse-pixel-position' call this function, passing their usual return value as argument, and return whatever this function returns. This abnormal hook exists for the benefit of packages like `xt-mouse.el' which need to do mouse handling at the Lisp level.Vmouse-highlight If non-nil, clickable text is highlighted when mouse is over it. If the value is an integer, highlighting is shown only after moving the mouse, while keyboard input turns off the highlight even when the mouse is over the clickable text. However, the mouse shape still indicates when the mouse is over clickable text.Vmake-pointer-invisible If non-nil, make mouse pointer invisible while typing. The pointer becomes visible again when the mouse is moved. When using this, you might also want to disable highlighting of clickable text. See `mouse-highlight'.Vmove-frame-functions Functions run after a frame was moved. The functions are run with one arg, the frame that moved.Vdelete-frame-functions Functions run before deleting a frame. The functions are run with one arg, the frame to be deleted. See `delete-frame'. Note that functions in this list may be called just before the frame is actually deleted, or some time later (or even both when an earlier function in `delete-frame-functions' (indirectly) calls `delete-frame' recursively).Vafter-delete-frame-functions Functions run after deleting a frame. The functions are run with one arg, the frame that was deleted and which is now dead.Vmenu-bar-mode Non-nil if Menu-Bar mode is enabled. See the command `menu-bar-mode' for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `menu-bar-mode'.Vtab-bar-mode Non-nil if Tab-Bar mode is enabled. See the command `tab-bar-mode' for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `tab-bar-mode'.Vtool-bar-mode Non-nil if Tool-Bar mode is enabled. See the command `tool-bar-mode' for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `tool-bar-mode'.Vdefault-minibuffer-frame Minibuffer-less frames by default use this frame's minibuffer. Emacs consults this variable only when creating a minibuffer-less frame and no explicit minibuffer window has been specified for that frame via the `minibuffer' frame parameter. Once such a frame has been created, setting this variable does not change that frame's previous association. This variable is local to the current terminal and cannot be buffer-local.Vresize-mini-frames Non-nil means resize minibuffer-only frames automatically. If this is nil, do not resize minibuffer-only frames automatically. If this is a function, call that function with the minibuffer-only frame that shall be resized as sole argument. The buffer of the root window of that frame is the buffer whose text will be eventually shown in the minibuffer window. Any other non-nil value means to resize minibuffer-only frames by calling `fit-mini-frame-to-buffer'.Vfocus-follows-mouse Non-nil if window system changes focus when you move the mouse. You should set this variable to tell Emacs how your window manager handles focus, since there is no way in general for Emacs to find out automatically. There are three meaningful values: - The default nil should be used when your window manager follows a "click-to-focus" policy where you have to click the mouse inside of a frame in order for that frame to get focus. - The value t should be used when your window manager has the focus automatically follow the position of the mouse pointer but a window that gains focus is not raised automatically. - The value `auto-raise' should be used when your window manager has the focus automatically follow the position of the mouse pointer and a window that gains focus is raised automatically. If this option is non-nil, Emacs moves the mouse pointer to the frame selected by `select-frame-set-input-focus'. This function is used by a number of commands like, for example, `other-frame' and `pop-to-buffer'. If this option is nil and your focus follows mouse window manager does not autonomously move the mouse pointer to the newly selected frame, the previously selected window manager window might get reselected instead immediately. The distinction between the values t and `auto-raise' is not needed for "normal" frames because the window manager takes care of raising them. Setting this to `auto-raise' will, however, override the standard behavior of a window manager that does not automatically raise the frame that gets focus. Setting this to `auto-raise' is also necessary to automatically raise child frames which are usually left alone by the window manager. Note that this option does not distinguish "sloppy" focus (where the frame that previously had focus retains focus as long as the mouse pointer does not move into another window manager window) from "strict" focus (where a frame immediately loses focus when it's left by the mouse pointer). In order to extend a "focus follows mouse" policy to individual Emacs windows, customize the variable `mouse-autoselect-window'.Vframe-resize-pixelwise Non-nil means resize frames pixelwise. If this option is nil, resizing a frame rounds its sizes to the frame's current values of `frame-char-height' and `frame-char-width'. If this is non-nil, no rounding occurs, hence frame sizes can increase/decrease by one pixel. With some window managers you may have to set this to non-nil in order to set the size of a frame in pixels, to maximize frames or to make them fullscreen. To resize your initial frame pixelwise, set this option to a non-nil value in your init file.Vframe-inhibit-implied-resize Whether frames should be resized implicitly. If this option is nil, setting font, menu bar, tool bar, tab bar, internal borders, fringes or scroll bars of a specific frame may resize the frame in order to preserve the number of columns or lines it displays. If this option is t, no such resizing is done. Note that the size of fullscreen and maximized frames, the height of fullheight frames and the width of fullwidth frames never change implicitly. The value of this option can be also a list of frame parameters. In this case, resizing is inhibited when changing a parameter that appears in that list. The parameters currently handled by this option include `font', `font-backend', `internal-border-width', `menu-bar-lines', `tool-bar-lines' and `tab-bar-lines'. Changing any of the parameters `scroll-bar-width', `scroll-bar-height', `vertical-scroll-bars', `horizontal-scroll-bars', `left-fringe' and `right-fringe' is handled as if the frame contained just one live window. This means, for example, that removing vertical scroll bars on a frame containing several side by side windows will shrink the frame width by the width of one scroll bar provided this option is nil and keep it unchanged if this option is either t or a list containing `vertical-scroll-bars'. In GTK+ and NS that use the external tool bar, the default value is \='(tab-bar-lines) which means that adding/removing a tab bar does not change the frame height. On all other types of GUI frames, the default value is \='(tab-bar-lines tool-bar-lines) which means that adding/removing a tool bar or tab bar does not change the frame height. Otherwise it's t which means the frame size never changes implicitly when there's no window system support. Note that when a frame is not large enough to accommodate a change of any of the parameters listed above, Emacs may try to enlarge the frame even if this option is non-nil.Vframe-size-history History of frame size adjustments. If non-nil, list recording frame size adjustment. Adjustments are recorded only if the first element of this list is a positive number. Adding an adjustment decrements that number by one. The remaining elements are the adjustments. Each adjustment is a list of four elements `frame', `function', `sizes' and `more'. `frame' is the affected frame and `function' the invoking function. `sizes' is usually a list of four elements `old-width', `old-height', `new-width' and `new-height' representing the old and new sizes recorded/requested by `function'. `more' is a list with additional information. The function `frame--size-history' displays the value of this variable in a more readable form.Vtooltip-reuse-hidden-frame Non-nil means reuse hidden tooltip frames. When this is nil, delete a tooltip frame when hiding the associated tooltip. When this is non-nil, make the tooltip frame invisible only, so it can be reused when the next tooltip is shown. Setting this to non-nil may drastically reduce the consing overhead incurred by creating new tooltip frames. However, a value of non-nil means also that intermittent changes of faces or `default-frame-alist' are not applied when showing a tooltip in a reused frame. This variable is effective only with the X toolkit (and there only when Gtk+ tooltips are not used) and on Windows.Vuse-system-tooltips Use the toolkit to display tooltips. This option is only meaningful when Emacs is built with GTK+ or Haiku windowing support, and results in tooltips that look like those displayed by other GTK+ or Haiku programs, but will not be able to display text properties inside tooltip text.Viconify-child-frame How to handle iconification of child frames. This variable tells Emacs how to proceed when it is asked to iconify a child frame. If it is nil, `iconify-frame' will do nothing when invoked on a child frame. If it is `iconify-top-level', Emacs will try to iconify the top level frame associated with this child frame instead. If it is `make-invisible', Emacs will try to make this child frame invisible instead. Any other value means to try iconifying the child frame. Since such an attempt is not honored by all window managers and may even lead to making the child frame unresponsive to user actions, the default is to iconify the top level frame instead.Vframe-internal-parameters Frame parameters specific to every frame.Sscroll.o Sxdisp.o Fset-buffer-redisplay Mark the current buffer for redisplay. This function may be passed to `add-variable-watcher'. (fn SYMBOL NEWVAL OP WHERE)Fline-pixel-height Return height in pixels of text line in the selected window. Value is the height in pixels of the line at point. (fn)Fget-display-property Get the value of the `display' property PROP at POSITION. If OBJECT, this should be a buffer or string where the property is fetched from. If omitted, OBJECT defaults to the current buffer. If PROPERTIES, look for value of PROP in PROPERTIES instead of the properties at POSITION. (fn POSITION PROP &optional OBJECT PROPERTIES)Fwindow-text-pixel-size Return the size of the text of WINDOW's buffer in pixels. WINDOW must be a live window and defaults to the selected one. The return value is a cons of the maximum pixel-width of any text line and the pixel-height of all the text lines in the accessible portion of buffer text. If FROM is a cons cell, the return value includes, in addition to the dimensions, also a third element that provides the buffer position from which measuring of the text dimensions was actually started. This function exists to allow Lisp programs to adjust the dimensions of WINDOW to the buffer text it needs to display. The optional argument FROM, if non-nil, specifies the first text position to consider, and defaults to the minimum accessible position of the buffer. If FROM is a cons, its car specifies a buffer position, and its cdr specifies the vertical offset in pixels from that position to the first screen line to be measured. If FROM is t, it stands for the minimum accessible position that starts a non-empty line. TO, if non-nil, specifies the last text position and defaults to the maximum accessible position of the buffer. If TO is t, it stands for the maximum accessible position that ends a non-empty line. The optional argument X-LIMIT, if non-nil, specifies the maximum X coordinate beyond which the text should be ignored. It is therefore also the maximum width that the function can return. X-LIMIT nil or omitted means to use the pixel-width of WINDOW's body. This default means text of truncated lines wider than the window will be ignored; specify a non-nil value for X-LIMIT if lines are truncated and you need to account for the truncated text. Use nil for X-LIMIT if you want to know how high WINDOW should become in order to fit all of its buffer's text with the width of WINDOW unaltered. Use the maximum width WINDOW may assume if you intend to change WINDOW's width. Use t for the maximum possible value. Since calculating the width of long lines can take some time, it's always a good idea to make this argument as small as possible; in particular, if the buffer contains long lines that shall be truncated anyway. The optional argument Y-LIMIT, if non-nil, specifies the maximum Y coordinate beyond which the text is to be ignored; it is therefore also the maximum height that the function can return (excluding the height of the mode- or header-line, if any). Y-LIMIT nil or omitted means consider all of the accessible portion of buffer text up to the position specified by TO. Since calculating the text height of a large buffer can take some time, it makes sense to specify this argument if the size of the buffer is large or unknown. Optional argument MODE-LINES nil or omitted means do not include the height of the mode-, tab- or header-line of WINDOW in the return value. If it is the symbol `mode-line', `tab-line' or `header-line', include only the height of that line, if present, in the return value. If t, include the height of any of these, if present, in the return value. IGNORE-LINE-AT-END, if non-nil, means to not add the height of the screen line that includes TO to the returned height of the text. (fn &optional WINDOW FROM TO X-LIMIT Y-LIMIT MODE-LINES IGNORE-LINE-AT-END)Fbuffer-text-pixel-size Return size of whole text of BUFFER-OR-NAME in WINDOW. BUFFER-OR-NAME must specify a live buffer or the name of a live buffer and defaults to the current buffer. WINDOW must be a live window and defaults to the selected one. The return value is a cons of the maximum pixel-width of any text line and the pixel-height of all the text lines of the buffer specified by BUFFER-OR-NAME. The optional arguments X-LIMIT and Y-LIMIT have the same meaning as with `window-text-pixel-size'. Do not use this function if the buffer specified by BUFFER-OR-NAME is already displayed in WINDOW. `window-text-pixel-size' is cheaper in that case because it does not have to temporarily show that buffer in WINDOW. (fn &optional BUFFER-OR-NAME WINDOW X-LIMIT Y-LIMIT)Fdisplay--line-is-continued-p Return non-nil if the current screen line is continued on display. (fn)Ftab-bar-height Return the number of lines occupied by the tab bar of FRAME. If FRAME is nil or omitted, use the selected frame. Optional argument PIXELWISE non-nil means return the height of the tab bar in pixels. (fn &optional FRAME PIXELWISE)Ftool-bar-height Return the number of lines occupied by the tool bar of FRAME. If FRAME is nil or omitted, use the selected frame. Optional argument PIXELWISE non-nil means return the height of the tool bar in pixels. (fn &optional FRAME PIXELWISE)Flong-line-optimizations-p Return non-nil if long-line optimizations are in effect in current buffer. See `long-line-threshold' and `large-hscroll-threshold' for what these optimizations mean and when they are in effect. (fn)Fdump-glyph-matrix Dump the current matrix of the selected window to stderr. Shows contents of glyph row structures. With non-nil parameter GLYPHS, dump glyphs as well. If GLYPHS is 1 show glyphs in short form, otherwise show glyphs in long form. Interactively, no argument means show glyphs in short form; with numeric argument, its value is passed as the GLYPHS flag. (fn &optional GLYPHS)Fdump-frame-glyph-matrix Dump the current glyph matrix of the selected frame to stderr. Only text-mode frames have frame glyph matrices. (fn)Fdump-glyph-row Dump glyph row ROW to stderr. Interactively, ROW is the prefix numeric argument and defaults to the row which displays point. Optional argument GLYPHS 0 means don't dump glyphs. GLYPHS 1 means dump glyphs in short form. GLYPHS > 1 or omitted means dump glyphs in long form. (fn ROW &optional GLYPHS)Fdump-tab-bar-row Dump glyph row ROW of the tab-bar of the current frame to stderr. Interactively, ROW is the prefix numeric argument and defaults to zero. GLYPHS 0 means don't dump glyphs. GLYPHS 1 means dump glyphs in short form. GLYPHS > 1 or omitted means dump glyphs in long form. If there's no tab-bar, or if the tab-bar is not drawn by Emacs, do nothing. (fn ROW &optional GLYPHS)Fdump-tool-bar-row Dump glyph row ROW of the tool-bar of the current frame to stderr. Interactively, ROW is the prefix numeric argument and defaults to zero. GLYPHS 0 means don't dump glyphs. GLYPHS 1 means dump glyphs in short form. GLYPHS > 1 or omitted means dump glyphs in long form. If there's no tool-bar, or if the tool-bar is not drawn by Emacs, do nothing. (fn ROW &optional GLYPHS)Ftrace-redisplay Toggle tracing of redisplay. With ARG, turn tracing on if and only if ARG is positive. (fn &optional ARG)Ftrace-to-stderr Like `format', but print result to stderr. (fn STRING &rest OBJECTS)Fcurrent-bidi-paragraph-direction Return paragraph direction at point in BUFFER. Value is either `left-to-right' or `right-to-left'. If BUFFER is omitted or nil, it defaults to the current buffer. Paragraph direction determines how the text in the paragraph is displayed. In left-to-right paragraphs, text begins at the left margin of the window and the reading direction is generally left to right. In right-to-left paragraphs, text begins at the right margin and is read from right to left. See also `bidi-paragraph-direction'. (fn &optional BUFFER)Fbidi-find-overridden-directionality Return position between FROM and TO where directionality was overridden. This function returns the first character position in the specified region of OBJECT where characters have their bidirectional properties affected in a way that might make its text look confusingly on display. For example, characters whose `bidi-class' property is `L', could be forced to display as `R' by a directional override, and likewise characters whose `bidi-class' is `R' or `AL' that are forced to display as `L'. If no such character is found, the function returns nil. OBJECT is a Lisp string or buffer to search for overridden directionality, and defaults to the current buffer if nil. OBJECT can also be a window, in which case the function will search the buffer displayed in that window. Passing the window instead of a buffer is preferable when the buffer is displayed in some window, because this function will then be able to correctly account for window-specific overlays, which can affect the results. Optional argument BASE-DIR specifies the base paragraph directory of the text. It should be a symbol, either `left-to-right' or `right-to-left', and defaults to `left-to-right'. Strong directional characters `L', `R', and `AL' can have their intrinsic directionality overridden by directional override control characters RLO (u+202E) and LRO (u+202D). They can also have their directionality affected by other formatting control characters: LRE (u+202A), RLE (u+202B), LRI (u+2066), and RLI (u+2067). See the function `get-char-code-property' for a way to inquire about the `bidi-class' property of a character. Characters whose intrinsic directionality is weak or neutral, such as numbers or punctuation characters, can be forced to display in a very different place with respect of its surrounding characters, so as to make the surrounding text confuse the user regarding what the text says. Also see the `highlight-confusing-reorderings' function, which can be useful in similar circumstances as this function. (fn FROM TO OBJECT &optional BASE-DIR)Fmove-point-visually Move point in the visual order in the specified DIRECTION. DIRECTION can be 1, meaning move to the right, or -1, which moves to the left. Value is the new character position of point. (fn DIRECTION)Fbidi-resolved-levels Return the resolved bidirectional levels of characters at VPOS. The resolved levels are produced by the Emacs bidi reordering engine that implements the UBA, the Unicode Bidirectional Algorithm. Please read the Unicode Standard Annex 9 (UAX#9) for background information about these levels. VPOS is the zero-based number of the current window's screen line for which to produce the resolved levels. If VPOS is nil or omitted, it defaults to the screen line of point. If the window displays a header line, VPOS of zero will report on the header line, and first line of text in the window will have VPOS of 1. Value is an array of resolved levels, indexed by glyph number. Glyphs are numbered from zero starting from the beginning of the screen line, i.e. the left edge of the window for left-to-right lines and from the right edge for right-to-left lines. The resolved levels are produced only for the window's text area; text in display margins is not included. If the selected window's display is not up-to-date, or if the specified screen line does not display text, this function returns nil. It is highly recommended to bind this function to some simple key, like F8, in order to avoid these problems. This function exists mainly for testing the correctness of the Emacs UBA implementation, in particular with the test suite. (fn &optional VPOS)Fformat-mode-line Format a string out of a mode line format specification. First arg FORMAT specifies the mode line format (see `mode-line-format' for details) to use. By default, the format is evaluated for the currently selected window. Optional second arg FACE specifies the face property to put on all characters for which no face is specified. The value nil means the default face. The value t means whatever face the window's mode line currently uses (either `mode-line' or `mode-line-inactive', depending on whether the window is the selected window or not). An integer value means the value string has no text properties. Optional third and fourth args WINDOW and BUFFER specify the window and buffer to use as the context for the formatting (defaults are the selected window and the WINDOW's buffer). (fn FORMAT &optional FACE WINDOW BUFFER)Finvisible-p Non-nil if text properties at POS cause text there to be currently invisible. POS should be a marker or a buffer position; the value of the `invisible' property at that position in the current buffer is examined. POS can also be the actual value of the `invisible' text or overlay property of the text of interest, in which case the value itself is examined. The non-nil value returned can be t for currently invisible text that is entirely hidden on display, or some other non-nil, non-t value if the text is replaced by an ellipsis. Note that whether text with `invisible' property is actually hidden on display may depend on `buffer-invisibility-spec', which see. (fn POS)Flookup-image-map Lookup in image map MAP coordinates X and Y. An image map is an alist where each element has the format (AREA ID PLIST). An AREA is specified as either a rectangle, a circle, or a polygon: A rectangle is a cons (rect . ((x0 . y0) . (x1 . y1))) specifying the pixel coordinates of the upper left and bottom right corners. A circle is a cons (circle . ((x0 . y0) . r)) specifying the center and the radius of the circle; r may be a float or integer. A polygon is a cons (poly . [x0 y0 x1 y1 ...]) where each pair in the vector describes one corner in the polygon. Returns the alist element for the first matching AREA in MAP. (fn MAP X Y)Vscroll-minibuffer-conservatively Non-nil means scroll conservatively in minibuffer windows. When the value is nil, scrolling in minibuffer windows obeys the settings of `scroll-conservatively'.Vinhibit-message Non-nil means calls to `message' are not displayed. They are still logged to the *Messages* buffer. Do NOT set this globally to a non-nil value, as doing that will disable messages everywhere, including in I-search and other places where they are necessary. This variable is intended to be let-bound around code that needs to disable messages temporarily.Vmessages-buffer-name The name of the buffer where messages are logged. This is normally "*Messages*", but can be rebound by packages that wish to redirect messages to a different buffer. (If the buffer doesn't exist, it will be created and put into `messages-buffer-mode'.)Vx-stretch-cursor Non-nil means draw block cursor as wide as the glyph under it. For example, if a block cursor is over a tab, it will be drawn as wide as that tab on the display.Vshow-trailing-whitespace Non-nil means highlight trailing whitespace. The face used for trailing whitespace is `trailing-whitespace'.Vmode-line-compact Non-nil means that mode lines should be compact. This means that repeating spaces will be replaced with a single space. If this variable is `long', only mode lines that are wider than the currently selected window are compressed.Vnobreak-char-display Control highlighting of non-ASCII space and hyphen chars. If the value is t, Emacs highlights non-ASCII chars which have the same appearance as an ASCII space or hyphen, using the `nobreak-space' or `nobreak-hyphen' face respectively. All of the non-ASCII characters in the Unicode horizontal whitespace character class, as well as U+00AD (soft hyphen), U+2010 (hyphen), and U+2011 (non-breaking hyphen) are affected. Any other non-nil value means to display these characters as an escape glyph followed by an ordinary space or hyphen. A value of nil means no special handling of these characters.Vnobreak-char-ascii-display Control display of non-ASCII space and hyphen chars. If the value of this variable is nil, the default, Emacs displays non-ASCII chars which have the same appearance as an ASCII space or hyphen as themselves, with the `nobreak-space' or `nobreak-hyphen' face, respectively. If the value is t, these characters are displayed as their ASCII counterparts: whitespace characters as ASCII space, hyphen characters as ASCII hyphen (a.k.a. "dash"), using the `nobreak-space' or the `nobreak-hyphen' face. This variable has effect only if `nobreak-char-display' is t; otherwise it is ignored. All of the non-ASCII characters in the Unicode horizontal whitespace character class, as well as U+00AD (soft hyphen), U+2010 (hyphen), and U+2011 (non-breaking hyphen) are affected.Vvoid-text-area-pointer The pointer shape to show in void text areas. A value of nil means to show the text pointer. Other options are `arrow', `text', `hand', `vdrag', `hdrag', `nhdrag', `modeline', and `hourglass'.Vinhibit-redisplay Non-nil means don't actually do any redisplay. This is used for internal purposes.Vglobal-mode-string String (or mode line construct) included (normally) in `mode-line-misc-info'.Voverlay-arrow-position Marker for where to display an arrow on top of the buffer text. This must be the beginning of a line in order to work. See also `overlay-arrow-string'.Voverlay-arrow-string String to display as an arrow in text-mode frames. See also `overlay-arrow-position'.Voverlay-arrow-variable-list List of variables (symbols) which hold markers for overlay arrows. The symbols on this list are examined during redisplay to determine where to display overlay arrows. See also `overlay-arrow-string'.Vscroll-step The number of lines to try scrolling a window by when point moves out. If that fails to bring point back on frame, point is centered instead. If this is zero, point is always centered after it moves off frame. If you want scrolling to always be a line at a time, you should set `scroll-conservatively' to a large value rather than set this to 1.Vscroll-conservatively Scroll up to this many lines, to bring point back on screen. If point moves off-screen, redisplay will scroll by up to `scroll-conservatively' lines in order to bring point just barely onto the screen again. If that cannot be done, then redisplay recenters point as usual. If the value is greater than 100, redisplay will never recenter point, but will always scroll just enough text to bring point into view, even if you move far away. A value of zero means always recenter point if it moves off screen.Vscroll-margin Number of lines of margin at the top and bottom of a window. Trigger automatic scrolling whenever point gets within this many lines of the top or bottom of the window (see info node `Auto Scrolling').Vmaximum-scroll-margin Maximum effective value of `scroll-margin'. Given as a fraction of the current window's lines. The value should be a floating point number between 0.0 and 0.5. The effective maximum is limited to (/ (1- window-lines) 2). Non-float values for this variable are ignored and the default 0.25 is used instead.Vdisplay-pixels-per-inch Pixels per inch value for non-window system displays. Value is a number or a cons (WIDTH-DPI . HEIGHT-DPI).Vdebug-end-pos Don't ask.Vtruncate-partial-width-windows Non-nil means truncate lines in windows narrower than the frame. For an integer value, truncate lines in each window narrower than the full frame width, provided the total window width in column units is less than that integer; otherwise, respect the value of `truncate-lines'. The total width of the window is as returned by `window-total-width', it includes the fringes, the continuation and truncation glyphs, the display margins (if any), and the scroll bar For any other non-nil value, truncate lines in all windows that do not span the full frame width. A value of nil means to respect the value of `truncate-lines'. If `word-wrap' is enabled, you might want to reduce the value of this. Don't set this to a non-nil value when `visual-line-mode' is turned on, as it could produce confusing results.Vword-wrap-by-category Non-nil means also wrap after characters of a certain category. Normally when `word-wrap' is on, Emacs only breaks lines after whitespace characters. When this option is turned on, Emacs also breaks lines after characters that have the "|" category (defined in characters.el). This is useful for allowing breaking after CJK characters and improves the word-wrapping for CJK text mixed with Latin text. If this variable is set using Customize, Emacs automatically loads kinsoku.el. When kinsoku.el is loaded, Emacs respects kinsoku rules when breaking lines. That means characters with the ">" category don't appear at the beginning of a line (e.g., FULLWIDTH COMMA), and characters with the "<" category don't appear at the end of a line (e.g., LEFT DOUBLE ANGLE BRACKET).Vline-number-display-limit Maximum buffer size for which line number should be displayed. If the buffer is bigger than this, the line number does not appear in the mode line. A value of nil means no limit.Vline-number-display-limit-width Maximum line width (in characters) for line number display. If the average length of the lines near point is bigger than this, then the line number may be omitted from the mode line.Vhighlight-nonselected-windows Non-nil means highlight active region even in nonselected windows. When nil (the default), the active region is only highlighted when the window is selected.Vmultiple-frames Non-nil if more than one frame is visible on this display. Minibuffer-only frames don't count, but iconified frames do. This variable is not guaranteed to be accurate except while processing `frame-title-format' and `icon-title-format'.Vframe-title-format Template for displaying the title bar of visible frames. (Assuming the window manager supports this feature.) This variable has the same structure as `mode-line-format', except that the %c, %C, and %l constructs are ignored. It is used only on frames for which no explicit name has been set (see `modify-frame-parameters').Vicon-title-format Template for displaying the title bar of an iconified frame. (Assuming the window manager supports this feature.) If the value is a string, it should have the same structure as `mode-line-format' (which see), and is used only on frames for which no explicit name has been set (see `modify-frame-parameters'). If the value is t, that means use `frame-title-format' for iconified frames.Vmessage-log-max Maximum number of lines to keep in the message log buffer. If nil, disable message logging. If t, log messages but don't truncate the buffer when it becomes large.Vwindow-scroll-functions List of functions to call before redisplaying a window with scrolling. Each function is called with two arguments, the window and its new display-start position. These functions are called whenever the `window-start' marker is modified, either to point into another buffer (e.g. via `set-window-buffer') or another place in the same buffer. When each function is called, the `window-start' marker of its window argument has been already set to the new value, and the buffer which that window will display is set to be the current buffer. Note that the value of `window-end' is not valid when these functions are called. Warning: Do not use this feature to alter the way the window is scrolled. It is not designed for that, and such use probably won't work.Vmouse-autoselect-window Non-nil means autoselect window with mouse pointer. If nil, do not autoselect windows. A positive number means delay autoselection by that many seconds: a window is autoselected only after the mouse has remained in that window for the duration of the delay. A negative number has a similar effect, but causes windows to be autoselected only after the mouse has stopped moving. (Because of the way Emacs compares mouse events, you will occasionally wait twice that time before the window gets selected.) Any other value means to autoselect window instantaneously when the mouse pointer enters it. Autoselection selects the minibuffer only if it is active, and never unselects the minibuffer if it is active. If you want to use the mouse to autoselect a window on another frame, make sure that (1) your window manager has focus follow the mouse and (2) the value of the option `focus-follows-mouse' matches the policy of your window manager.Vauto-resize-tab-bars Non-nil means automatically resize tab-bars. This dynamically changes the tab-bar's height to the minimum height that is needed to make all tab-bar items visible. If value is `grow-only', the tab-bar's height is only increased automatically; to decrease the tab-bar height, use \[recenter], after setting `recenter-redisplay' to the value of t.Vauto-raise-tab-bar-buttons Non-nil means raise tab-bar buttons when the mouse moves over them.Vauto-resize-tool-bars Non-nil means automatically resize tool-bars. This dynamically changes the tool-bar's height to the minimum height that is needed to make all tool-bar items visible. If value is `grow-only', the tool-bar's height is only increased automatically; to decrease the tool-bar height, use \[recenter], after setting `recenter-redisplay' to the value of t.Vauto-raise-tool-bar-buttons Non-nil means raise tool-bar buttons when the mouse moves over them.Vmake-cursor-line-fully-visible Whether to scroll the window if the cursor line is not fully visible. If the value is non-nil, Emacs scrolls or recenters the window to make the cursor line fully visible. The value could also be a function, which is called with a single argument, the window to be scrolled, and should return non-nil if the partially-visible cursor requires scrolling the window, nil if it's okay to leave the cursor partially-visible.Vmake-window-start-visible Whether to ensure `window-start' position is never invisible.Vtab-bar-border Border below tab-bar in pixels. If an integer, use it as the height of the border. If it is one of `internal-border-width' or `border-width', use the value of the corresponding frame parameter. Otherwise, no border is added below the tab-bar.Vtab-bar-button-margin Margin around tab-bar buttons in pixels. If an integer, use that for both horizontal and vertical margins. Otherwise, value should be a pair of integers `(HORZ . VERT)' with HORZ specifying the horizontal margin, and VERT specifying the vertical margin.Vtab-bar-button-relief Relief thickness of tab-bar buttons.Vtool-bar-border Border below tool-bar in pixels. If an integer, use it as the height of the border. If it is one of `internal-border-width' or `border-width', use the value of the corresponding frame parameter. Otherwise, no border is added below the tool-bar.Vtool-bar-button-margin Margin around tool-bar buttons in pixels. If an integer, use that for both horizontal and vertical margins. Otherwise, value should be a pair of integers `(HORZ . VERT)' with HORZ specifying the horizontal margin, and VERT specifying the vertical margin.Vtool-bar-button-relief Relief thickness of tool-bar buttons.Vtool-bar-style Tool bar style to use. It can be one of image - show images only text - show text only both - show both, text below image both-horiz - show text to the right of the image text-image-horiz - show text to the left of the image any other - use system default or image if no system default. This variable only affects the GTK+ toolkit version of Emacs.Vtool-bar-max-label-size Maximum number of characters a label can have to be shown. The tool bar style must also show labels for this to have any effect, see `tool-bar-style'.Vfontification-functions List of functions to call to fontify regions of text. Each function is called with one argument POS. Functions must fontify a region starting at POS in the current buffer, and give fontified regions the property `fontified' with a non-nil value. Note that, when `long-line-optimizations-p' is non-nil in the buffer, these functions are called as if they were in a `with-restriction' form, with a `long-line-optimizations-in-fontification-functions' label and with the buffer narrowed to a portion around POS whose size is specified by `long-line-optimizations-region-size'.Vunibyte-display-via-language-environment Non-nil means display unibyte text according to language environment. Specifically, this means that raw bytes in the range 160-255 decimal are displayed by converting them to the equivalent multibyte characters according to the current language environment. As a result, they are displayed according to the current fontset. Note that this variable affects only how these bytes are displayed, but does not change the fact they are interpreted as raw bytes.Vmax-mini-window-height Maximum height for resizing mini-windows (the minibuffer and the echo area). If a float, it specifies the maximum height in units of the mini-window frame's height. If an integer, it specifies the maximum height in units of the mini-window frame's default font's height.Vresize-mini-windows How to resize mini-windows (the minibuffer and the echo area). A value of nil means don't automatically resize mini-windows. A value of t means resize them to fit the text displayed in them. A value of `grow-only', the default, means let mini-windows grow only; they return to their normal size when the minibuffer is closed, or the echo area becomes empty. This variable does not affect resizing of the minibuffer window of minibuffer-only frames. These are handled by `resize-mini-frames' only.Vblink-cursor-alist Alist specifying how to blink the cursor off. Each element has the form (ON-STATE . OFF-STATE). Whenever the `cursor-type' frame-parameter or variable equals ON-STATE, comparing using `equal', Emacs uses OFF-STATE to specify how to blink it off. ON-STATE and OFF-STATE are values for the `cursor-type' frame parameter. If a frame's ON-STATE has no entry in this list, the frame's other specifications determine how to blink the cursor off.Vauto-hscroll-mode Allow or disallow automatic horizontal scrolling of windows. The value `current-line' means the line displaying point in each window is automatically scrolled horizontally to make point visible. Any other non-nil value means all the lines in a window are automatically scrolled horizontally to make point visible.Vhscroll-margin How many columns away from the window edge point is allowed to get before automatic hscrolling will horizontally scroll the window.Vhscroll-step How many columns to scroll the window when point gets too close to the edge. When point is less than `hscroll-margin' columns from the window edge, automatic hscrolling will scroll the window by the amount of columns determined by this variable. If its value is a positive integer, scroll that many columns. If it's a positive floating-point number, it specifies the fraction of the window's width to scroll. If it's nil or zero, point will be centered horizontally after the scroll. Any other value, including negative numbers, are treated as if the value were zero. Automatic hscrolling always moves point outside the scroll margin, so if point was more than scroll step columns inside the margin, the window will scroll more than the value given by the scroll step. Note that the lower bound for automatic hscrolling specified by `scroll-left' and `scroll-right' overrides this variable's effect.Vmessage-truncate-lines If non-nil, messages are truncated when displaying the echo area. Bind this around calls to `message' to let it take effect.Vmenu-bar-update-hook Normal hook run to update the menu bar definitions. Redisplay runs this hook before it redisplays the menu bar. This is used to update menus such as Buffers, whose contents depend on various data.Vmenu-updating-frame Frame for which we are updating a menu. The enable predicate for a menu binding should check this variable.Vinhibit-menubar-update Non-nil means don't update menu bars. Internal use only.Vwrap-prefix Prefix prepended to all continuation lines at display time. The value may be a string, an image, or a stretch-glyph; it is interpreted in the same way as the value of a `display' text property. This variable is overridden by any `wrap-prefix' text or overlay property. To add a prefix to non-continuation lines, use `line-prefix'.Vline-prefix Prefix prepended to all non-continuation lines at display time. The value may be a string, an image, or a stretch-glyph; it is interpreted in the same way as the value of a `display' text property. This variable is overridden by any `line-prefix' text or overlay property. To add a prefix to continuation lines, use `wrap-prefix'.Vdisplay-line-numbers Non-nil means display line numbers. If the value is t, display the absolute number of each line of a buffer shown in a window. Absolute line numbers count from the beginning of the current narrowing, or from buffer beginning. The variable `display-line-numbers-offset', if non-zero, is a signed offset added to each absolute line number; it also forces line numbers to be counted from the beginning of the buffer, as if `display-line-numbers-widen' were non-nil. It has no effect when line numbers are not absolute. If the value is `relative', display for each line not containing the window's point its relative number instead, i.e. the number of the line relative to the line showing the window's point. In either case, line numbers are displayed at the beginning of each non-continuation line that displays buffer text, i.e. after each newline character that comes from the buffer. The value `visual' is like `relative' but counts screen lines instead of buffer lines. In practice this means that continuation lines count as well when calculating the relative number of a line. Lisp programs can disable display of a line number of a particular buffer line by putting the `display-line-numbers-disable' text property or overlay property on the first visible character of that line.Vdisplay-line-numbers-width Minimum width of space reserved for line number display. A positive number means reserve that many columns for line numbers, even if the actual number needs less space. The default value of nil means compute the space dynamically. Any other value is treated as nil.Vdisplay-line-numbers-current-absolute Non-nil means display absolute number of current line. This variable has effect only when `display-line-numbers' is either `relative' or `visual'.Vdisplay-line-numbers-widen Non-nil means display line numbers disregarding any narrowing.Vdisplay-line-numbers-offset A signed integer added to each absolute line number. When this variable is non-zero, line numbers are always counted from the beginning of the buffer even if `display-line-numbers-widen' is nil. It has no effect when set to 0, or when line numbers are not absolute.Vdisplay-fill-column-indicator Non-nil means display the fill column indicator. If you set this non-nil, make sure `display-fill-column-indicator-character' is also non-nil. See Info node `Displaying Boundaries' for details.Vdisplay-fill-column-indicator-column Column for indicator when `display-fill-column-indicator' is non-nil. The default value is t which means that the indicator will use the `fill-column' variable. If it is set to an integer the indicator will be drawn in that column. See Info node `Displaying Boundaries' for details.Vdisplay-fill-column-indicator-character Character to draw the indicator when `display-fill-column-indicator' is non-nil. A good candidate is U+2502, and an alternative is (ascii 124) if the font of `fill-column-indicator' face does not support Unicode characters. See Info node `Displaying Boundaries' for details.Vdisplay-line-numbers-major-tick If an integer N > 0, highlight line number of every Nth line. The line number is shown with the `line-number-major-tick' face. Otherwise, no special highlighting is done every Nth line. Note that major ticks take precedence over minor ticks.Vdisplay-line-numbers-minor-tick If an integer N > 0, highlight line number of every Nth line. The line number is shown with the `line-number-minor-tick' face. Otherwise, no special highlighting is done every Nth line. Note that major ticks take precedence over minor ticks.Vinhibit-eval-during-redisplay Non-nil means don't eval Lisp during redisplay.Vinhibit-free-realized-faces Non-nil means don't free realized faces. Internal use only.Vinhibit-bidi-mirroring Non-nil means don't mirror characters even when bidi context requires that. Intended for use during debugging and for testing bidi display; see biditest.el in the test suite.Vbidi-inhibit-bpa Non-nil means inhibit the Bidirectional Parentheses Algorithm. Disabling the BPA makes redisplay faster, but might produce incorrect display reordering of bidirectional text with embedded parentheses and other bracket characters whose `paired-bracket' Unicode property is non-nil, see `get-char-code-property'.Vinhibit-try-window-id Inhibit try_window_id display optimization.Vinhibit-try-window-reusing Inhibit try_window_reusing display optimization.Vinhibit-try-cursor-movement Inhibit try_cursor_movement display optimization.Voverline-margin Space between overline and text, in pixels. The default value is 2: the height of the overline (1 pixel) plus 1 pixel margin to the character height.Vunderline-minimum-offset Minimum distance between baseline and underline. This can improve legibility of underlined text at small font sizes, particularly when using variable `x-use-underline-position-properties' with fonts that specify an UNDERLINE_POSITION relatively close to the baseline. The default value is 1.Vdisplay-hourglass Non-nil means show an hourglass pointer, when Emacs is busy. This feature only works when on a window system that can change cursor shapes.Vhourglass-delay Seconds to wait before displaying an hourglass pointer when Emacs is busy.Vpre-redisplay-function Function run just before redisplay. It is called with one argument, which is the set of windows that are to be redisplayed. This set can be nil (meaning, only the selected window), or t (meaning all windows).Vglyphless-char-display Char-table defining glyphless characters. Each element, if non-nil, should be one of the following: an ASCII acronym string: display this string in a box `hex-code': display the hexadecimal code of a character in a box `empty-box': display as an empty box `thin-space': display as 1-pixel width space `zero-width': don't display Any other value is interpreted as `empty-box'. An element may also be a cons cell (GRAPHICAL . TEXT), which specifies the display method for graphical terminals and text terminals respectively. GRAPHICAL and TEXT should each have one of the values listed above. The char-table has one extra slot to control the display of characters for which no font is found on graphical terminals, and characters that cannot be displayed by text-mode terminals. Its value should be an ASCII acronym string, `hex-code', `empty-box', or `thin-space'. It could also be a cons cell of any two of these, to specify separate values for graphical and text terminals. The default is `empty-box'. With the obvious exception of `zero-width', all the other representations are displayed using the face `glyphless-char'. If a character has a non-nil entry in an active display table, the display table takes effect; in this case, Emacs does not consult `glyphless-char-display' at all.Vdebug-on-message If non-nil, debug if a message matching this regexp is displayed.Vset-message-function If non-nil, function to handle display of echo-area messages. The function is called with one argument that is the text of a message. If this function returns nil, the message is displayed in the echo area as usual. If the function returns a string, the returned string is displayed in the echo area. If this function returns any other non-nil value, this means that the message was already handled, and the original message text will not be displayed in the echo area. Also see `clear-message-function' (which can be used to clear the message displayed by this function), and `command-error-function' (which controls how error messages are displayed).Vclear-message-function If non-nil, function to clear echo-area messages. Usually this function is called when the next input event arrives. It is expected to clear the message displayed by its counterpart function specified by `set-message-function'. The function is called without arguments. If this function returns a value that isn't `dont-clear-message', the message is cleared from the echo area as usual. If this function returns `dont-clear-message', this means that the message was already handled, and the original message text will not be cleared from the echo area.Vredisplay--all-windows-cause Code of the cause for redisplaying all windows. Internal use only.Vredisplay--mode-lines-cause Code of the cause for redisplaying mode lines. Internal use only.Vredisplay--inhibit-bidi Non-nil means it is not safe to attempt bidi reordering for display.Vdisplay-raw-bytes-as-hex Non-nil means display raw bytes in hexadecimal format. The default is to use octal format (\200) whereas hexadecimal (\x80) may be more familiar to users.Vmouse-fine-grained-tracking Non-nil for pixel-wise mouse-movement. When nil, mouse-movement events will not be generated as long as the mouse stays within the extent of a single glyph (except for images).Vtab-bar--dragging-in-progress Non-nil when maybe dragging tab bar item.Vredisplay-skip-initial-frame Non-nil means skip redisplay of the initial frame. The initial frame is the text-mode frame used by Emacs internally during the early stages of startup. That frame is not displayed anywhere, so skipping it is best except in special circumstances such as running redisplay tests in batch mode.Vredisplay-skip-fontification-on-input Skip `fontification_functions` when there is input pending. If non-nil and there was input pending at the beginning of the command, the `fontification_functions` hook is not run. This usually does not affect the display because redisplay is completely skipped anyway if input was pending, but it can make scrolling smoother by avoiding unnecessary fontification. It is similar to `fast-but-imprecise-scrolling' with similar tradeoffs, but with the advantage that it should only affect the behavior when Emacs has trouble keeping up with the incoming input rate.Vredisplay-adhoc-scroll-in-resize-mini-windows If nil always use normal scrolling in minibuffer windows. Otherwise, use custom-tailored code after resizing minibuffer windows to try and display the most important part of the minibuffer.Vcomposition-break-at-point If non-nil, prevent auto-composition of characters around point. This makes it easier to edit character sequences that are composed on display.Vmax-redisplay-ticks Maximum number of redisplay ticks before aborting redisplay of a window. This allows to abort the display of a window if the amount of low-level redisplay operations exceeds the value of this variable. When display of a window is aborted due to this reason, the buffer shown in that window will not have its windows redisplayed until the buffer is modified or until you type \[recenter-top-bottom] with one of its windows selected. You can also decide to kill the buffer and visit it in some other way, like under `so-long-mode' or literally. The default value is zero, which disables this feature. The recommended non-zero value is between 100000 and 1000000, depending on your patience and the speed of your system.Smenu.o Fmenu-bar-menu-at-x-y Return the menu-bar menu on FRAME at pixel coordinates X, Y. X and Y are frame-relative pixel coordinates, assumed to define a location within the menu bar. If FRAME is nil or omitted, it defaults to the selected frame. Value is the symbol of the menu at X/Y, or nil if the specified coordinates are not within the FRAME's menu bar. The symbol can be used to look up the menu like this: (lookup-key MAP [menu-bar SYMBOL]) where MAP is either the current global map or the current local map, since menu-bar items come from both. This function can return non-nil only on a text-terminal frame or on an X frame that doesn't use any GUI toolkit. Otherwise, Emacs does not manage the menu bar and cannot convert coordinates into menu items. (fn X Y &optional FRAME)Fx-popup-menu Pop up a deck-of-cards menu and return user's selection. POSITION is a position specification. This is either a mouse button event or a list ((XOFFSET YOFFSET) WINDOW) where XOFFSET and YOFFSET are positions in pixels from the top left corner of WINDOW. (WINDOW may be a window or a frame object.) This controls the position of the top left of the menu as a whole. If POSITION is t, it means to use the current mouse position. MENU is a specifier for a menu. For the simplest case, MENU is a keymap. The menu items come from key bindings that have a menu string as well as a definition; actually, the "definition" in such a key binding looks like (STRING . REAL-DEFINITION). To give the menu a title, put a string into the keymap as a top-level element. If REAL-DEFINITION is nil, that puts a nonselectable string in the menu. Otherwise, REAL-DEFINITION should be a valid key binding definition. You can also use a list of keymaps as MENU. Then each keymap makes a separate pane. When MENU is a keymap or a list of keymaps, the return value is the list of events corresponding to the user's choice. Note that `x-popup-menu' does not actually execute the command bound to that sequence of events. Alternatively, you can specify a menu of multiple panes with a list of the form (TITLE PANE1 PANE2...), where each pane is a list of form (TITLE ITEM1 ITEM2...). Each ITEM is normally a cons cell (STRING . VALUE); but a string can appear as an item--that makes a nonselectable line in the menu. With this form of menu, the return value is VALUE from the chosen item. If POSITION is nil, don't display the menu at all, just precalculate the cached information about equivalent key sequences. If the user gets rid of the menu without making a valid choice, for instance by clicking the mouse away from a valid choice or by typing keyboard input, then this normally results in a quit and `x-popup-menu' does not return. But if POSITION is a mouse button event (indicating that the user invoked the menu with the mouse) then no quit occurs and `x-popup-menu' returns nil. (fn POSITION MENU)Fx-popup-dialog Pop up a dialog box and return user's selection. POSITION specifies which frame to use. This is normally a mouse button event or a window or frame. If POSITION is t, it means to use the frame the mouse is on. The dialog box appears in the middle of the specified frame. CONTENTS specifies the alternatives to display in the dialog box. It is a list of the form (DIALOG ITEM1 ITEM2...). Each ITEM is a cons cell (STRING . VALUE). The return value is VALUE from the chosen item. An ITEM may also be just a string--that makes a nonselectable item. An ITEM may also be nil--that means to put all preceding items on the left of the dialog box and all following items on the right. (By default, approximately half appear on each side.) If HEADER is non-nil, the frame title for the box is "Information", otherwise it is "Question". If the user gets rid of the dialog box without making a valid choice, for instance using the window manager, then this produces a quit and `x-popup-dialog' does not return. (fn POSITION CONTENTS &optional HEADER)Vx-pre-popup-menu-hook Hook run before `x-popup-menu' displays a popup menu. It is only run before the menu is really going to be displayed. It won't be run if `x-popup-menu' fails or returns for some other reason (such as the keymap is invalid).Swindow.o Fwindowp Return t if OBJECT is a window and nil otherwise. (fn OBJECT)Fwindow-valid-p Return t if OBJECT is a valid window and nil otherwise. A valid window is either a window that displays a buffer or an internal window. Windows that have been deleted are not valid. (fn OBJECT)Fwindow-live-p Return t if OBJECT is a live window and nil otherwise. A live window is a window that displays a buffer. Internal windows and deleted windows are not live. (fn OBJECT)Fwindow-frame Return the frame that window WINDOW is on. WINDOW must be a valid window and defaults to the selected one. (fn &optional WINDOW)Fframe-root-window Return the root window of FRAME-OR-WINDOW. If omitted, FRAME-OR-WINDOW defaults to the currently selected frame. With a frame argument, return that frame's root window. With a window argument, return the root window of that window's frame. (fn &optional FRAME-OR-WINDOW)Fminibuffer-window Return the minibuffer window for frame FRAME. If FRAME is omitted or nil, it defaults to the selected frame. (fn &optional FRAME)Fwindow-minibuffer-p Return t if WINDOW is a minibuffer window. WINDOW must be a valid window and defaults to the selected one. (fn &optional WINDOW)Fframe-first-window Return the topmost, leftmost live window on FRAME-OR-WINDOW. If omitted, FRAME-OR-WINDOW defaults to the currently selected frame. Else if FRAME-OR-WINDOW denotes a valid window, return the first window of that window's frame. If FRAME-OR-WINDOW denotes a live frame, return the first window of that frame. (fn &optional FRAME-OR-WINDOW)Fframe-selected-window Return the selected window of FRAME-OR-WINDOW. If omitted, FRAME-OR-WINDOW defaults to the currently selected frame. Else if FRAME-OR-WINDOW denotes a valid window, return the selected window of that window's frame. If FRAME-OR-WINDOW denotes a live frame, return the selected window of that frame. (fn &optional FRAME-OR-WINDOW)Fframe-old-selected-window Return old selected window of FRAME. FRAME must be a live frame and defaults to the selected one. The return value is the window selected on FRAME the last time window change functions were run for FRAME. (fn &optional FRAME)Fset-frame-selected-window Set selected window of FRAME to WINDOW. FRAME must be a live frame and defaults to the selected one. If FRAME is the selected frame, this makes WINDOW the selected window. Optional argument NORECORD non-nil means to neither change the order of recently selected windows nor the buffer list. WINDOW must denote a live window. Return WINDOW. (fn FRAME WINDOW &optional NORECORD)Fselected-window Return the selected window. The selected window is the window in which the standard cursor for selected windows appears and to which many commands apply. Also see `old-selected-window' and `minibuffer-selected-window'. (fn)Fold-selected-window Return the old selected window. The return value is the window selected the last time window change functions were run. (fn)Fselect-window Select WINDOW which must be a live window. Also make WINDOW's frame the selected frame and WINDOW that frame's selected window. In addition, make WINDOW's buffer current and set its buffer's value of `point' to the value of WINDOW's `window-point'. Return WINDOW. Optional second arg NORECORD non-nil means do not put this buffer at the front of the buffer list and do not make this window the most recently selected one. Also, do not mark WINDOW for redisplay unless NORECORD equals the special symbol `mark-for-redisplay'. Run `buffer-list-update-hook' unless NORECORD is non-nil. Note that applications and internal routines often select a window temporarily for various purposes; mostly, to simplify coding. As a rule, such selections should not be recorded and therefore will not pollute `buffer-list-update-hook'. Selections that "really count" are those causing a visible change in the next redisplay of WINDOW's frame and should always be recorded. So if you think of running a function each time a window gets selected, put it on `buffer-list-update-hook' or `window-selection-change-functions'. Also note that the main editor command loop sets the current buffer to the buffer of the selected window before each command. (fn WINDOW &optional NORECORD)Fwindow-buffer Return the buffer displayed in window WINDOW. If WINDOW is omitted or nil, it defaults to the selected window. Return nil for an internal window or a deleted window. (fn &optional WINDOW)Fwindow-old-buffer Return the old buffer displayed by WINDOW. WINDOW must be a live window and defaults to the selected one. The return value is the buffer shown in WINDOW at the last time window change functions were run. It is nil if WINDOW was created after that. It is t if WINDOW has been restored from a window configuration after that. (fn &optional WINDOW)Fwindow-parent Return the parent window of window WINDOW. WINDOW must be a valid window and defaults to the selected one. Return nil for a window with no parent (e.g. a root window). (fn &optional WINDOW)Fwindow-top-child Return the topmost child window of window WINDOW. WINDOW must be a valid window and defaults to the selected one. Return nil if WINDOW is a live window (live windows have no children). Return nil if WINDOW is an internal window whose children form a horizontal combination. (fn &optional WINDOW)Fwindow-left-child Return the leftmost child window of window WINDOW. WINDOW must be a valid window and defaults to the selected one. Return nil if WINDOW is a live window (live windows have no children). Return nil if WINDOW is an internal window whose children form a vertical combination. (fn &optional WINDOW)Fwindow-next-sibling Return the next sibling window of window WINDOW. WINDOW must be a valid window and defaults to the selected one. Return nil if WINDOW has no next sibling. (fn &optional WINDOW)Fwindow-prev-sibling Return the previous sibling window of window WINDOW. WINDOW must be a valid window and defaults to the selected one. Return nil if WINDOW has no previous sibling. (fn &optional WINDOW)Fwindow-combination-limit Return combination limit of window WINDOW. WINDOW must be a valid window used in horizontal or vertical combination. If the return value is nil, child windows of WINDOW can be recombined with WINDOW's siblings. A return value of t means that child windows of WINDOW are never (re-)combined with WINDOW's siblings. (fn WINDOW)Fset-window-combination-limit Set combination limit of window WINDOW to LIMIT; return LIMIT. WINDOW must be a valid window used in horizontal or vertical combination. If LIMIT is nil, child windows of WINDOW can be recombined with WINDOW's siblings. LIMIT t means that child windows of WINDOW are never (re-)combined with WINDOW's siblings. Other values are reserved for future use. (fn WINDOW LIMIT)Fwindow-use-time Return the use time of window WINDOW. WINDOW must specify a live window and defaults to the selected one. The window with the highest use time is usually the one most recently selected by calling `select-window' with NORECORD nil. The window with the lowest use time is usually the least recently selected one chosen in such a way. Note that the use time of a window can be also changed by calling `window-bump-use-time' for that window. (fn &optional WINDOW)Fwindow-bump-use-time Mark WINDOW as second most recently used. WINDOW must specify a live window. If WINDOW is not selected and the selected window has the highest use time of all windows, set the use time of WINDOW to that of the selected window, increase the use time of the selected window by one and return the new use time of WINDOW. Otherwise, do nothing and return nil. (fn &optional WINDOW)Fwindow-pixel-width Return the width of window WINDOW in pixels. WINDOW must be a valid window and defaults to the selected one. The return value includes the fringes and margins of WINDOW as well as any vertical dividers or scroll bars belonging to WINDOW. If WINDOW is an internal window, its pixel width is the width of the screen areas spanned by its children. (fn &optional WINDOW)Fwindow-pixel-height Return the height of window WINDOW in pixels. WINDOW must be a valid window and defaults to the selected one. The return value includes the mode line and header line and the bottom divider, if any. If WINDOW is an internal window, its pixel height is the height of the screen areas spanned by its children. (fn &optional WINDOW)Fwindow-old-pixel-width Return old total pixel width of WINDOW. WINDOW must be a valid window and defaults to the selected one. The return value is the total pixel width of WINDOW after the last time window change functions found WINDOW live on its frame. It is zero if WINDOW was created after that. (fn &optional WINDOW)Fwindow-old-pixel-height Return old total pixel height of WINDOW. WINDOW must be a valid window and defaults to the selected one. The return value is the total pixel height of WINDOW after the last time window change functions found WINDOW live on its frame. It is zero if WINDOW was created after that. (fn &optional WINDOW)Fwindow-total-height Return the height of window WINDOW in lines. WINDOW must be a valid window and defaults to the selected one. The return value includes the heights of WINDOW's mode and header line and its bottom divider, if any. If WINDOW is an internal window, the total height is the height of the screen areas spanned by its children. If WINDOW's pixel height is not an integral multiple of its frame's character height, the number of lines occupied by WINDOW is rounded internally. This is done in a way such that, if WINDOW is a parent window, the sum of the total heights of all its children internally equals the total height of WINDOW. If the optional argument ROUND is `ceiling', return the smallest integer larger than WINDOW's pixel height divided by the character height of WINDOW's frame. ROUND `floor' means to return the largest integer smaller than WINDOW's pixel height divided by the character height of WINDOW's frame. Any other value of ROUND means to return the internal total height of WINDOW. (fn &optional WINDOW ROUND)Fwindow-total-width Return the total width of window WINDOW in columns. WINDOW must be a valid window and defaults to the selected one. The return value includes the widths of WINDOW's fringes, margins, scroll bars and its right divider, if any. If WINDOW is an internal window, the total width is the width of the screen areas spanned by its children. If WINDOW's pixel width is not an integral multiple of its frame's character width, the number of lines occupied by WINDOW is rounded internally. This is done in a way such that, if WINDOW is a parent window, the sum of the total widths of all its children internally equals the total width of WINDOW. If the optional argument ROUND is `ceiling', return the smallest integer larger than WINDOW's pixel width divided by the character width of WINDOW's frame. ROUND `floor' means to return the largest integer smaller than WINDOW's pixel width divided by the character width of WINDOW's frame. Any other value of ROUND means to return the internal total width of WINDOW. (fn &optional WINDOW ROUND)Fwindow-new-total Return the new total size of window WINDOW. WINDOW must be a valid window and defaults to the selected one. The new total size of WINDOW is the value set by the last call of `set-window-new-total' for WINDOW. If it is valid, it will be shortly installed as WINDOW's total height (see `window-total-height') or total width (see `window-total-width'). (fn &optional WINDOW)Fwindow-normal-size Return the normal height of window WINDOW. WINDOW must be a valid window and defaults to the selected one. If HORIZONTAL is non-nil, return the normal width of WINDOW. The normal height of a frame's root window or a window that is horizontally combined (a window that has a left or right sibling) is 1.0. The normal height of a window that is vertically combined (has a sibling above or below) is the fraction of the window's height with respect to its parent. The sum of the normal heights of all windows in a vertical combination equals 1.0. Similarly, the normal width of a frame's root window or a window that is vertically combined equals 1.0. The normal width of a window that is horizontally combined is the fraction of the window's width with respect to its parent. The sum of the normal widths of all windows in a horizontal combination equals 1.0. The normal sizes of windows are used to restore the proportional sizes of windows after they have been shrunk to their minimum sizes; for example when a frame is temporarily made very small and afterwards gets re-enlarged to its previous size. (fn &optional WINDOW HORIZONTAL)Fwindow-new-normal Return new normal size of window WINDOW. WINDOW must be a valid window and defaults to the selected one. The new normal size of WINDOW is the value set by the last call of `set-window-new-normal' for WINDOW. If valid, it will be shortly installed as WINDOW's normal size (see `window-normal-size'). (fn &optional WINDOW)Fwindow-new-pixel Return new pixel size of window WINDOW. WINDOW must be a valid window and defaults to the selected one. The new pixel size of WINDOW is the value set by the last call of `set-window-new-pixel' for WINDOW. If it is valid, it will be shortly installed as WINDOW's pixel height (see `window-pixel-height') or pixel width (see `window-pixel-width'). (fn &optional WINDOW)Fwindow-pixel-left Return left pixel edge of window WINDOW. WINDOW must be a valid window and defaults to the selected one. (fn &optional WINDOW)Fwindow-pixel-top Return top pixel edge of window WINDOW. WINDOW must be a valid window and defaults to the selected one. (fn &optional WINDOW)Fwindow-left-column Return left column of window WINDOW. This is the distance, in columns, between the left edge of WINDOW and the left edge of the frame's window area. For instance, the return value is 0 if there is no window to the left of WINDOW. WINDOW must be a valid window and defaults to the selected one. (fn &optional WINDOW)Fwindow-top-line Return top line of window WINDOW. This is the distance, in lines, between the top of WINDOW and the top of the frame's window area. For instance, the return value is 0 if there is no window above WINDOW. WINDOW must be a valid window and defaults to the selected one. (fn &optional WINDOW)Fwindow-body-width Return the width of WINDOW's text area. WINDOW must be a live window and defaults to the selected one. The return value does not include any vertical dividers, fringes or marginal areas, or scroll bars. The optional argument PIXELWISE defines the units to use for the width. If nil, return the largest integer smaller than WINDOW's pixel width in units of the character width of WINDOW's frame. If PIXELWISE is `remap' and the default face is remapped (see `face-remapping-alist'), use the remapped face to determine the character width. For any other non-nil value, return the width in pixels. Note that the returned value includes the column reserved for the continuation glyph. Also see `window-max-chars-per-line'. (fn &optional WINDOW PIXELWISE)Fwindow-body-height Return the height of WINDOW's text area. WINDOW must be a live window and defaults to the selected one. The return value does not include the mode line or header line or any horizontal divider. The optional argument PIXELWISE defines the units to use for the height. If nil, return the largest integer smaller than WINDOW's pixel height in units of the character height of WINDOW's frame. If PIXELWISE is `remap' and the default face is remapped (see `face-remapping-alist'), use the remapped face to determine the character height. For any other non-nil value, return the height in pixels. (fn &optional WINDOW PIXELWISE)Fwindow-old-body-pixel-width Return old width of WINDOW's text area in pixels. WINDOW must be a live window and defaults to the selected one. The return value is the pixel width of WINDOW's text area after the last time window change functions found WINDOW live on its frame. It is zero if WINDOW was created after that. (fn &optional WINDOW)Fwindow-old-body-pixel-height Return old height of WINDOW's text area in pixels. WINDOW must be a live window and defaults to the selected one. The return value is the pixel height of WINDOW's text area after the last time window change functions found WINDOW live on its frame. It is zero if WINDOW was created after that. (fn &optional WINDOW)Fwindow-mode-line-height Return the height in pixels of WINDOW's mode-line. WINDOW must be a live window and defaults to the selected one. (fn &optional WINDOW)Fwindow-header-line-height Return the height in pixels of WINDOW's header-line. WINDOW must be a live window and defaults to the selected one. (fn &optional WINDOW)Fwindow-tab-line-height Return the height in pixels of WINDOW's tab-line. WINDOW must be a live window and defaults to the selected one. (fn &optional WINDOW)Fwindow-right-divider-width Return the width in pixels of WINDOW's right divider. WINDOW must be a live window and defaults to the selected one. (fn &optional WINDOW)Fwindow-bottom-divider-width Return the width in pixels of WINDOW's bottom divider. WINDOW must be a live window and defaults to the selected one. (fn &optional WINDOW)Fwindow-scroll-bar-width Return the width in pixels of WINDOW's vertical scrollbar. WINDOW must be a live window and defaults to the selected one. (fn &optional WINDOW)Fwindow-scroll-bar-height Return the height in pixels of WINDOW's horizontal scrollbar. WINDOW must be a live window and defaults to the selected one. (fn &optional WINDOW)Fwindow-hscroll Return the number of columns by which WINDOW is scrolled from left margin. WINDOW must be a live window and defaults to the selected one. (fn &optional WINDOW)Fset-window-hscroll Set number of columns WINDOW is scrolled from left margin to NCOL. WINDOW must be a live window and defaults to the selected one. Clip the number to a reasonable value if out of range. Return the new number. NCOL should be zero or positive. Note that if `auto-hscroll-mode' is non-nil, you cannot scroll the window so that the location of point moves off-window. (fn WINDOW NCOL)Fcoordinates-in-window-p Return non-nil if COORDINATES are in WINDOW. WINDOW must be a live window and defaults to the selected one. COORDINATES is a cons of the form (X . Y), X and Y being distances measured in characters from the upper-left corner of the frame. (0 . 0) denotes the character in the upper left corner of the frame. If COORDINATES are in the text portion of WINDOW, the coordinates relative to the window are returned. If they are in the bottom divider of WINDOW, `bottom-divider' is returned. If they are in the right divider of WINDOW, `right-divider' is returned. If they are in the mode line of WINDOW, `mode-line' is returned. If they are in the header line of WINDOW, `header-line' is returned. If they are in the tab line of WINDOW, `tab-line' is returned. If they are in the left fringe of WINDOW, `left-fringe' is returned. If they are in the right fringe of WINDOW, `right-fringe' is returned. If they are on the border between WINDOW and its right sibling, `vertical-line' is returned. If they are in the windows's left or right marginal areas, `left-margin' or `right-margin' is returned. (fn COORDINATES WINDOW)Fwindow-at Return window containing coordinates X and Y on FRAME. FRAME must be a live frame and defaults to the selected one. X and Y are measured in units of canonical columns and rows. The top left corner of the frame is considered to be column 0, row 0. Tool-bar and tab-bar pseudo-windows are ignored by this function: if the specified coordinates are in any of these two windows, this function returns nil. (fn X Y &optional FRAME)Fwindow-point Return current value of point in WINDOW. WINDOW must be a live window and defaults to the selected one. For a nonselected window, this is the value point would have if that window were selected. Note that, when WINDOW is selected, the value returned is the same as that returned by `point' for WINDOW's buffer. It would be more strictly correct to return the top-level value of `point', outside of any `save-excursion' forms. But that is hard to define. (fn &optional WINDOW)Fwindow-old-point Return old value of point in WINDOW. WINDOW must be a live window and defaults to the selected one. (fn &optional WINDOW)Fwindow-start Return position at which display currently starts in WINDOW. WINDOW must be a live window and defaults to the selected one. This is updated by redisplay or by calling `set-window-start'. (fn &optional WINDOW)Fwindow-end Return position at which display currently ends in WINDOW. This is the position after the final character in WINDOW. WINDOW must be a live window and defaults to the selected one. This is updated by redisplay, when it runs to completion. Simply changing the buffer text or setting `window-start' does not update this value. Return nil if there is no recorded value. (This can happen if the last redisplay of WINDOW was preempted, and did not finish.) If UPDATE is non-nil, compute the up-to-date position if it isn't already recorded. (fn &optional WINDOW UPDATE)Fset-window-point Make point value in WINDOW be at position POS in WINDOW's buffer. WINDOW must be a live window and defaults to the selected one. Return POS. (fn WINDOW POS)Fset-window-start Make display in WINDOW start at position POS in WINDOW's buffer. WINDOW must be a live window and defaults to the selected one. Return POS. Optional third arg NOFORCE non-nil prevents next redisplay from moving point if displaying the window at POS makes point invisible; redisplay will then choose the WINDOW's start position by itself in that case, i.e. it will disregard POS if adhering to it will make point not visible in the window. For reliable setting of WINDOW start position, make sure point is at a position that will be visible when that start is in effect, otherwise there's a chance POS will be disregarded, e.g., if point winds up in a partially-visible line. The setting of the WINDOW's start position takes effect during the next redisplay cycle, not immediately. If NOFORCE is nil or omitted, forcing the display of WINDOW to start at POS cancels any setting of WINDOW's vertical scroll ("vscroll") amount set by `set-window-vscroll' and by scrolling functions. (fn WINDOW POS &optional NOFORCE)Fpos-visible-in-window-p Return non-nil if position POS is currently on the frame in WINDOW. WINDOW must be a live window and defaults to the selected one. Return nil if that position is scrolled vertically out of view. If a character is only partially visible, nil is returned, unless the optional argument PARTIALLY is non-nil. If POS is only out of view because of horizontal scrolling, return non-nil. If POS is t, it specifies either the first position displayed on the last visible screen line in WINDOW, or the end-of-buffer position, whichever comes first. POS defaults to point in WINDOW; WINDOW defaults to the selected window. If POS is visible, return t if PARTIALLY is nil; if PARTIALLY is non-nil, the return value is a list of 2 or 6 elements (X Y [RTOP RBOT ROWH VPOS]), where X and Y are the pixel coordinates relative to the top left corner of the window. The remaining elements are omitted if the character after POS is fully visible; otherwise, RTOP and RBOT are the number of pixels off-window at the top and bottom of the screen line ("row") containing POS, ROWH is the visible height of that row, and VPOS is the row number (zero-based). (fn &optional POS WINDOW PARTIALLY)Fwindow-line-height Return height in pixels of text line LINE in window WINDOW. WINDOW must be a live window and defaults to the selected one. Return height of current line if LINE is omitted or nil. Return height of header or mode line if LINE is `header-line' or `mode-line'. Otherwise, LINE is a text line number starting from 0. A negative number counts from the end of the window. Value is a list (HEIGHT VPOS YPOS OFFBOT), where HEIGHT is the height in pixels of the visible part of the line, VPOS and YPOS are the vertical position in lines and pixels of the line, relative to the top of the first text line, and OFFBOT is the number of off-window pixels at the bottom of the text line. If there are off-window pixels at the top of the (first) text line, YPOS is negative. Return nil if window display is not up-to-date. In that case, use `pos-visible-in-window-p' to obtain the information. (fn &optional LINE WINDOW)Fwindow-lines-pixel-dimensions Return pixel dimensions of WINDOW's lines. The return value is a list of the x- and y-coordinates of the lower right corner of the last character of each line. Return nil if the current glyph matrix of WINDOW is not up-to-date. Optional argument WINDOW specifies the window whose lines' dimensions shall be returned. Nil or omitted means to return the dimensions for the selected window. FIRST, if non-nil, specifies the index of the first line whose dimensions shall be returned. If FIRST is nil and BODY is non-nil, start with the first text line of WINDOW. Otherwise, start with the first line of WINDOW. LAST, if non-nil, specifies the last line whose dimensions shall be returned. If LAST is nil and BODY is non-nil, the last line is the last line of the body (text area) of WINDOW. Otherwise, last is the last line of WINDOW. INVERSE, if nil, means that the y-pixel value returned for a specific line specifies the distance in pixels from the left edge (body edge if BODY is non-nil) of WINDOW to the right edge of the last glyph of that line. INVERSE non-nil means that the y-pixel value returned for a specific line specifies the distance in pixels from the right edge of the last glyph of that line to the right edge (body edge if BODY is non-nil) of WINDOW. LEFT non-nil means to return the x- and y-coordinates of the lower left corner of the leftmost character on each line. This is the value that should be used for buffers that mostly display text from right to left. If LEFT is non-nil and INVERSE is nil, this means that the y-pixel value returned for a specific line specifies the distance in pixels from the left edge of the last (leftmost) glyph of that line to the right edge (body edge if BODY is non-nil) of WINDOW. If LEFT and INVERSE are both non-nil, the y-pixel value returned for a specific line specifies the distance in pixels from the left edge (body edge if BODY is non-nil) of WINDOW to the left edge of the last (leftmost) glyph of that line. Normally, the value of this function is not available while Emacs is busy, for example, when processing a command. It should be retrievable though when run from an idle timer with a delay of zero seconds. (fn &optional WINDOW FIRST LAST BODY INVERSE LEFT)Fwindow-dedicated-p Return non-nil when WINDOW is dedicated to its buffer. More precisely, return the value assigned by the last call of `set-window-dedicated-p' for WINDOW. Return nil if that function was never called with WINDOW as its argument, or the value set by that function was internally reset since its last call. WINDOW must be a live window and defaults to the selected one. When a window is dedicated to its buffer, `display-buffer' will refrain from displaying another buffer in it. `get-lru-window' and `get-largest-window' treat dedicated windows specially. `delete-windows-on', `replace-buffer-in-windows', `quit-window' and `kill-buffer' can delete a dedicated window and the containing frame. Functions like `set-window-buffer' may change the buffer displayed by a window, unless that window is "strongly" dedicated to its buffer, that is the value returned by `window-dedicated-p' is t. (fn &optional WINDOW)Fset-window-dedicated-p Mark WINDOW as dedicated according to FLAG. WINDOW must be a live window and defaults to the selected one. FLAG non-nil means mark WINDOW as dedicated to its buffer. FLAG nil means mark WINDOW as non-dedicated. Return FLAG. When a window is dedicated to its buffer, `display-buffer' will refrain from displaying another buffer in it. `get-lru-window' and `get-largest-window' treat dedicated windows specially. `delete-windows-on', `replace-buffer-in-windows', `quit-window', `quit-restore-window' and `kill-buffer' can delete a dedicated window and the containing frame. As a special case, if FLAG is t, mark WINDOW as "strongly" dedicated to its buffer. Functions like `set-window-buffer' may change the buffer displayed by a window, unless that window is strongly dedicated to its buffer. If and when `set-window-buffer' displays another buffer in a window, it also makes sure that the window is no more dedicated. (fn WINDOW FLAG)Fwindow-prev-buffers Return buffers previously shown in WINDOW. WINDOW must be a live window and defaults to the selected one. The return value is a list of elements (BUFFER WINDOW-START POS), where BUFFER is a buffer, WINDOW-START is the start position of the window for that buffer, and POS is a window-specific point value. (fn &optional WINDOW)Fset-window-prev-buffers Set WINDOW's previous buffers to PREV-BUFFERS. WINDOW must be a live window and defaults to the selected one. PREV-BUFFERS should be a list of elements (BUFFER WINDOW-START POS), where BUFFER is a buffer, WINDOW-START is the start position of the window for that buffer, and POS is a window-specific point value. (fn WINDOW PREV-BUFFERS)Fwindow-next-buffers Return list of buffers recently re-shown in WINDOW. WINDOW must be a live window and defaults to the selected one. (fn &optional WINDOW)Fset-window-next-buffers Set WINDOW's next buffers to NEXT-BUFFERS. WINDOW must be a live window and defaults to the selected one. NEXT-BUFFERS should be a list of buffers. (fn WINDOW NEXT-BUFFERS)Fwindow-parameters Return the parameters of WINDOW and their values. WINDOW must be a valid window and defaults to the selected one. The return value is a list of elements of the form (PARAMETER . VALUE). (fn &optional WINDOW)Fwindow-parameter Return WINDOW's value for PARAMETER. WINDOW can be any window and defaults to the selected one. (fn WINDOW PARAMETER)Fset-window-parameter Set WINDOW's value of PARAMETER to VALUE. WINDOW can be any window and defaults to the selected one. Return VALUE. (fn WINDOW PARAMETER VALUE)Fwindow-display-table Return the display-table that WINDOW is using. WINDOW must be a live window and defaults to the selected one. (fn &optional WINDOW)Fset-window-display-table Set WINDOW's display-table to TABLE. WINDOW must be a live window and defaults to the selected one. (fn WINDOW TABLE)Fnext-window Return live window after WINDOW in the cyclic ordering of windows. WINDOW must be a live window and defaults to the selected one. The optional arguments MINIBUF and ALL-FRAMES specify the set of windows to consider. MINIBUF nil or omitted means consider the minibuffer window only if the minibuffer is active. MINIBUF t means consider the minibuffer window even if the minibuffer is not active. Any other value means do not consider the minibuffer window even if the minibuffer is active. ALL-FRAMES nil or omitted means consider all windows on WINDOW's frame, plus the minibuffer window if specified by the MINIBUF argument. If the minibuffer counts, consider all windows on all frames that share that minibuffer too. The following non-nil values of ALL-FRAMES have special meanings: - t means consider all windows on all existing frames. - `visible' means consider all windows on all visible frames. - 0 (the number zero) means consider all windows on all visible and iconified frames. - A frame means consider all windows on that frame only. Anything else means consider all windows on WINDOW's frame and no others. If you use consistent values for MINIBUF and ALL-FRAMES, you can use `next-window' to iterate through the entire cycle of acceptable windows, eventually ending up back at the window you started with. `previous-window' traverses the same cycle, in the reverse order. (fn &optional WINDOW MINIBUF ALL-FRAMES)Fprevious-window Return live window before WINDOW in the cyclic ordering of windows. WINDOW must be a live window and defaults to the selected one. The optional arguments MINIBUF and ALL-FRAMES specify the set of windows to consider. MINIBUF nil or omitted means consider the minibuffer window only if the minibuffer is active. MINIBUF t means consider the minibuffer window even if the minibuffer is not active. Any other value means do not consider the minibuffer window even if the minibuffer is active. ALL-FRAMES nil or omitted means consider all windows on WINDOW's frame, plus the minibuffer window if specified by the MINIBUF argument. If the minibuffer counts, consider all windows on all frames that share that minibuffer too. The following non-nil values of ALL-FRAMES have special meanings: - t means consider all windows on all existing frames. - `visible' means consider all windows on all visible frames. - 0 (the number zero) means consider all windows on all visible and iconified frames. - A frame means consider all windows on that frame only. Anything else means consider all windows on WINDOW's frame and no others. If you use consistent values for MINIBUF and ALL-FRAMES, you can use `previous-window' to iterate through the entire cycle of acceptable windows, eventually ending up back at the window you started with. `next-window' traverses the same cycle, in the reverse order. (fn &optional WINDOW MINIBUF ALL-FRAMES)Fwindow-list Return a list of windows on FRAME, starting with WINDOW. FRAME nil or omitted means use the selected frame. WINDOW nil or omitted means use the window selected within FRAME. MINIBUF t means include the minibuffer window, even if it isn't active. MINIBUF nil or omitted means include the minibuffer window only if it's active. MINIBUF neither nil nor t means never include the minibuffer window. (fn &optional FRAME MINIBUF WINDOW)Fwindow-list-1 Return a list of all live windows. WINDOW specifies the first window to list and defaults to the selected window. Optional argument MINIBUF nil or omitted means consider the minibuffer window only if the minibuffer is active. MINIBUF t means consider the minibuffer window even if the minibuffer is not active. Any other value means do not consider the minibuffer window even if the minibuffer is active. Optional argument ALL-FRAMES nil or omitted means consider all windows on WINDOW's frame, plus the minibuffer window if specified by the MINIBUF argument. If the minibuffer counts, consider all windows on all frames that share that minibuffer too. The following non-nil values of ALL-FRAMES have special meanings: - t means consider all windows on all existing frames. - `visible' means consider all windows on all visible frames. - 0 (the number zero) means consider all windows on all visible and iconified frames. - A frame means consider all windows on that frame only. Anything else means consider all windows on WINDOW's frame and no others. If WINDOW is not on the list of windows returned, some other window will be listed first but no error is signaled. (fn &optional WINDOW MINIBUF ALL-FRAMES)Fget-buffer-window Return a window currently displaying BUFFER-OR-NAME, or nil if none. BUFFER-OR-NAME may be a buffer or a buffer name and defaults to the current buffer. The optional argument ALL-FRAMES specifies the frames to consider: - t means consider all windows on all existing frames. - `visible' means consider all windows on all visible frames. - 0 (the number zero) means consider all windows on all visible and iconified frames. - A frame means consider all windows on that frame only. Any other value of ALL-FRAMES means consider all windows on the selected frame and no others. (fn &optional BUFFER-OR-NAME ALL-FRAMES)Fdelete-other-windows-internal Make WINDOW fill its frame. Only the frame WINDOW is on is affected. WINDOW must be a valid window and defaults to the selected one. Optional argument ROOT, if non-nil, must specify an internal window such that WINDOW is in its window subtree. If this is the case, replace ROOT by WINDOW and leave alone any windows not part of ROOT's subtree. When WINDOW is live try to reduce display jumps by keeping the text previously visible in WINDOW in the same place on the frame. Doing this depends on the value of (window-start WINDOW), so if calling this function in a program gives strange scrolling, make sure the window-start value is reasonable when this function is called. (fn &optional WINDOW ROOT)Frun-window-configuration-change-hook Run `window-configuration-change-hook' for FRAME. If FRAME is omitted or nil, it defaults to the selected frame. This function should not be needed any more and will be therefore considered obsolete. (fn &optional FRAME)Frun-window-scroll-functions Run `window-scroll-functions' for WINDOW. If WINDOW is omitted or nil, it defaults to the selected window. This function is called by `split-window' for the new window, after it has established the size of the new window. (fn &optional WINDOW)Fset-window-buffer Make WINDOW display BUFFER-OR-NAME. WINDOW must be a live window and defaults to the selected one. BUFFER-OR-NAME must be a buffer or the name of an existing buffer. Optional third argument KEEP-MARGINS non-nil means that WINDOW's current display margins, fringe widths, and scroll bar settings are preserved; the default is to reset these from the local settings for BUFFER-OR-NAME or the frame defaults. Return nil. This function throws an error when WINDOW is strongly dedicated to its buffer (that is `window-dedicated-p' returns t for WINDOW) and does not already display BUFFER-OR-NAME. This function runs `window-scroll-functions' before running `window-configuration-change-hook'. (fn WINDOW BUFFER-OR-NAME &optional KEEP-MARGINS)Fforce-window-update Force all windows to be updated on next redisplay. If optional arg OBJECT is a window, force redisplay of that window only. If OBJECT is a buffer or buffer name, force redisplay of all windows displaying that buffer. (fn &optional OBJECT)Fset-window-new-pixel Set new pixel size of WINDOW to SIZE. WINDOW must be a valid window and defaults to the selected one. Return SIZE. Optional argument ADD non-nil means add SIZE to the new pixel size of WINDOW and return the sum. The new pixel size of WINDOW, if valid, will be shortly installed as WINDOW's pixel height (see `window-pixel-height') or pixel width (see `window-pixel-width'). Note: This function does not operate on any child windows of WINDOW. (fn WINDOW SIZE &optional ADD)Fset-window-new-total Set new total size of WINDOW to SIZE. WINDOW must be a valid window and defaults to the selected one. Return SIZE. Optional argument ADD non-nil means add SIZE to the new total size of WINDOW and return the sum. The new total size of WINDOW, if valid, will be shortly installed as WINDOW's total height (see `window-total-height') or total width (see `window-total-width'). Note: This function does not operate on any child windows of WINDOW. (fn WINDOW SIZE &optional ADD)Fset-window-new-normal Set new normal size of WINDOW to SIZE. WINDOW must be a valid window and defaults to the selected one. Return SIZE. The new normal size of WINDOW, if valid, will be shortly installed as WINDOW's normal size (see `window-normal-size'). Note: This function does not operate on any child windows of WINDOW. (fn WINDOW &optional SIZE)Fwindow-resize-apply Apply requested size values for window-tree of FRAME. If FRAME is omitted or nil, it defaults to the selected frame. Optional argument HORIZONTAL omitted or nil means apply requested height values. HORIZONTAL non-nil means apply requested width values. The requested size values are those set by `set-window-new-pixel' and `set-window-new-normal'. This function checks whether the requested values sum up to a valid window layout, recursively assigns the new sizes of all child windows and calculates and assigns the new start positions of these windows. Return t if the requested values have been applied correctly, nil otherwise. Note: This function does not check any of `window-fixed-size-p', `window-min-height' or `window-min-width'. All these checks have to be applied on the Elisp level. (fn &optional FRAME HORIZONTAL)Fwindow-resize-apply-total Apply requested total size values for window-tree of FRAME. If FRAME is omitted or nil, it defaults to the selected frame. This function does not assign pixel or normal size values. You should have run `window-resize-apply' before running this. Optional argument HORIZONTAL omitted or nil means apply requested height values. HORIZONTAL non-nil means apply requested width values. (fn &optional FRAME HORIZONTAL)Fsplit-window-internal Split window OLD. Second argument PIXEL-SIZE specifies the number of pixels of the new window. It must be a positive integer. Third argument SIDE nil (or `below') specifies that the new window shall be located below WINDOW. SIDE `above' means the new window shall be located above WINDOW. In both cases PIXEL-SIZE specifies the pixel height of the new window including space reserved for the mode and/or header/tab line. SIDE t (or `right') specifies that the new window shall be located on the right side of WINDOW. SIDE `left' means the new window shall be located on the left of WINDOW. In both cases PIXEL-SIZE specifies the width of the new window including space reserved for fringes and the scrollbar or a divider column. Fourth argument NORMAL-SIZE specifies the normal size of the new window according to the SIDE argument. The new pixel and normal sizes of all involved windows must have been set correctly. See the code of `split-window' for how this is done. (fn OLD PIXEL-SIZE SIDE NORMAL-SIZE)Fdelete-window-internal Remove WINDOW from its frame. WINDOW defaults to the selected window. Return nil. Signal an error when WINDOW is the only window on its frame. (fn WINDOW)Fresize-mini-window-internal Resize mini window WINDOW. (fn WINDOW)Fscroll-up Scroll text of selected window upward ARG lines. If ARG is omitted or nil, scroll upward by a near full screen. A near full screen is `next-screen-context-lines' less than a full screen. Negative ARG means scroll downward. If ARG is the atom `-', scroll downward by nearly full screen. When calling from a program, supply as argument a number, nil, or `-'. (fn &optional ARG)Fscroll-down Scroll text of selected window down ARG lines. If ARG is omitted or nil, scroll down by a near full screen. A near full screen is `next-screen-context-lines' less than a full screen. Negative ARG means scroll upward. If ARG is the atom `-', scroll upward by nearly full screen. When calling from a program, supply as argument a number, nil, or `-'. (fn &optional ARG)Fother-window-for-scrolling Return "the other" window for "other window scroll" commands. If in the minibuffer, and `minibuffer-scroll-window' is non-nil, it specifies the window to use. Otherwise, if `other-window-scroll-buffer' is a buffer, a window showing that buffer is the window to use, popping it up if necessary. Otherwise, if `other-window-scroll-default' is a function, call it, and the window it returns is the window to use. Finally, the function looks for a neighboring window on the selected frame, followed by windows on all the visible frames on the current terminal. (fn)Fscroll-left Scroll selected window display ARG columns left. Default for ARG is window width minus 2. Value is the total amount of leftward horizontal scrolling in effect after the change. If SET-MINIMUM is non-nil, the new scroll amount becomes the lower bound for automatic scrolling, i.e. automatic scrolling will not scroll a window to a column less than the value returned by this function. This happens in an interactive call. (fn &optional ARG SET-MINIMUM)Fscroll-right Scroll selected window display ARG columns right. Default for ARG is window width minus 2. Value is the total amount of leftward horizontal scrolling in effect after the change. If SET-MINIMUM is non-nil, the new scroll amount becomes the lower bound for automatic scrolling, i.e. automatic scrolling will not scroll a window to a column less than the value returned by this function. This happens in an interactive call. (fn &optional ARG SET-MINIMUM)Fminibuffer-selected-window Return window selected just before minibuffer window was selected. Return nil if the selected window is not a minibuffer window. (fn)Frecenter Center point in selected window and maybe redisplay frame. With a numeric prefix argument ARG, recenter putting point on screen line ARG relative to the selected window. If ARG is negative, it counts up from the bottom of the window. (ARG should be less than the height of the window.) If ARG is omitted or nil, then recenter with point on the middle line of the selected window; if REDISPLAY & `recenter-redisplay' are non-nil, also erase the entire frame and redraw it (when `auto-resize-tool-bars' is set to `grow-only', this resets the tool-bar's height to the minimum height needed); if `recenter-redisplay' has the special value `tty', then only tty frames are redrawn. Interactively, REDISPLAY is always non-nil. Just C-u as prefix means put point in the center of the window and redisplay normally--don't erase and redraw the frame. (fn &optional ARG REDISPLAY)Fwindow-text-width Return the width in columns of the text display area of WINDOW. WINDOW must be a live window and defaults to the selected one. The returned width does not include dividers, scrollbars, margins, fringes, nor any partial-width columns at the right of the text area. Optional argument PIXELWISE non-nil, means to return the width in pixels. (fn &optional WINDOW PIXELWISE)Fwindow-text-height Return the height in lines of the text display area of WINDOW. WINDOW must be a live window and defaults to the selected one. The returned height does not include dividers, the mode line, any header line, nor any partial-height lines at the bottom of the text area. Optional argument PIXELWISE non-nil, means to return the height in pixels. (fn &optional WINDOW PIXELWISE)Fmove-to-window-line Position point relative to window. ARG nil means position point at center of window. Else, ARG specifies vertical position within the window; zero means top of window, negative means relative to bottom of window, -1 meaning the last fully visible display line of the window. Value is the screen line of the window point moved to, counting from the top of the window. (fn ARG)Fwindow-configuration-p Return t if OBJECT is a window-configuration object. (fn OBJECT)Fwindow-configuration-frame Return the frame that CONFIG, a window-configuration object, is about. (fn CONFIG)Fset-window-configuration Set the configuration of windows and buffers as specified by CONFIGURATION. CONFIGURATION must be a value previously returned by `current-window-configuration' (which see). Normally, this function selects the frame of the CONFIGURATION, but if DONT-SET-FRAME is non-nil, it leaves selected the frame which was current at the start of the function. If DONT-SET-MINIWINDOW is non-nil, the mini-window of the frame doesn't get set to the corresponding element of CONFIGURATION. If CONFIGURATION was made from a frame that is now deleted, only frame-independent values can be restored. In this case, the return value is nil. Otherwise the value is t. (fn CONFIGURATION &optional DONT-SET-FRAME DONT-SET-MINIWINDOW)Fcurrent-window-configuration Return an object representing the current window configuration of FRAME. If FRAME is nil or omitted, use the selected frame. This describes the number of windows, their sizes and current buffers, and for each displayed buffer, where display starts, and the position of point. An exception is made for point in the current buffer: its value is -not- saved. This also records the currently selected frame, and FRAME's focus redirection (see `redirect-frame-focus'). The variable `window-persistent-parameters' specifies which window parameters are saved by this function. (fn &optional FRAME)Fset-window-margins Set width of marginal areas of window WINDOW. WINDOW must be a live window and defaults to the selected one. Second arg LEFT-WIDTH specifies the number of character cells to reserve for the left marginal area. Optional third arg RIGHT-WIDTH does the same for the right marginal area. A nil width parameter means no margin. Leave margins unchanged if WINDOW is not large enough to accommodate margins of the desired width. Return t if any margin was actually changed and nil otherwise. The margins specified by calling this function may be later overridden by invoking `set-window-buffer' for the same WINDOW, with its KEEP-MARGINS argument nil or omitted. (fn WINDOW LEFT-WIDTH &optional RIGHT-WIDTH)Fwindow-margins Get width of marginal areas of window WINDOW. WINDOW must be a live window and defaults to the selected one. Value is a cons of the form (LEFT-WIDTH . RIGHT-WIDTH). If a marginal area does not exist, its width will be returned as nil. (fn &optional WINDOW)Fset-window-fringes Set fringes of specified WINDOW. WINDOW must specify a live window and defaults to the selected one. Second arg LEFT-WIDTH specifies the number of pixels to reserve for the left fringe. Optional third arg RIGHT-WIDTH specifies the right fringe width. If a fringe width arg is nil, that means to use the frame's default fringe width. Default fringe widths can be set with the command `set-fringe-style'. If optional fourth arg OUTSIDE-MARGINS is non-nil, draw the fringes outside of the display margins. By default, fringes are drawn between display marginal areas and the text area. Optional fifth argument PERSISTENT non-nil means that fringe settings for WINDOW are persistent, i.e., remain unchanged when another buffer is shown in WINDOW. PERSISTENT nil means that fringes are reset from buffer local values when `set-window-buffer' is called on WINDOW with the argument KEEP-MARGINS nil. Leave fringes unchanged if WINDOW is not large enough to accommodate fringes of the desired width. Return t if any fringe was actually changed and nil otherwise. (fn WINDOW LEFT-WIDTH &optional RIGHT-WIDTH OUTSIDE-MARGINS PERSISTENT)Fwindow-fringes Return fringe settings for specified WINDOW. WINDOW must be a live window and defaults to the selected one. Value is a list of the form (LEFT-WIDTH RIGHT-WIDTH OUTSIDE-MARGINS PERSISTENT), see `set-window-fringes'. (fn &optional WINDOW)Fset-window-scroll-bars Set width and type of scroll bars of specified WINDOW. WINDOW must specify a live window and defaults to the selected one. Second argument WIDTH specifies the pixel width for the vertical scroll bar. If WIDTH is nil, use the scroll bar width of WINDOW's frame. Third argument VERTICAL-TYPE specifies the type of the vertical scroll bar: left, right, nil or t where nil means to not display a vertical scroll bar on WINDOW and t means to use WINDOW frame's vertical scroll bar type. Fourth argument HEIGHT specifies the pixel height for the horizontal scroll bar. If HEIGHT is nil, use the scroll bar height of WINDOW's frame. Fifth argument HORIZONTAL-TYPE specifies the type of the horizontal scroll bar: bottom, nil, or t where nil means to not display a horizontal scroll bar on WINDOW and t means to use WINDOW frame's horizontal scroll bar type. If WINDOW is a mini window, t effectively behaves like nil. HORIZONTAL-TYPE must equal bottom in order to show a scroll bar for mini windows. Optional sixth argument PERSISTENT non-nil means that scroll bar settings for WINDOW are persistent, i.e., remain unchanged when another buffer is shown in WINDOW. PERSISTENT nil means that scroll bars are reset from buffer local values when `set-window-buffer' is called on WINDOW with the argument KEEP-MARGINS nil. If WINDOW is not large enough to accommodate a scroll bar of the desired dimension, leave the corresponding scroll bar unchanged. Return t if scroll bars were actually changed and nil otherwise. (fn WINDOW &optional WIDTH VERTICAL-TYPE HEIGHT HORIZONTAL-TYPE PERSISTENT)Fwindow-scroll-bars Get width and type of scroll bars of window WINDOW. WINDOW must be a live window and defaults to the selected one. Value is a list of the form (WIDTH COLUMNS VERTICAL-TYPE HEIGHT LINES HORIZONTAL-TYPE PERSISTENT). WIDTH reports the pixel width of the vertical scroll bar; COLUMNS is the equivalent number of columns. Similarly, HEIGHT and LINES are the height of the horizontal scroll bar in pixels and the equivalent number of lines. VERTICAL-TYPE reports the type of the vertical scroll bar, either left, right, nil, or t. HORIZONTAL-TYPE reports the type of the horizontal scroll bar, either bottom, nil or t. PERSISTENT reports the value specified by the last successful call to `set-window-scroll-bars', or nil if there was none. If WIDTH or HEIGHT is nil or VERTICAL-TYPE or HORIZONTAL-TYPE is t, WINDOW is using the corresponding value specified for the frame. (fn &optional WINDOW)Fwindow-vscroll Return the amount by which WINDOW is scrolled vertically. This takes effect when displaying tall lines or images. If WINDOW is omitted or nil, it defaults to the selected window. Normally, value is a multiple of the canonical character height of WINDOW; optional second arg PIXELS-P means value is measured in pixels. (fn &optional WINDOW PIXELS-P)Fset-window-vscroll Set amount by which WINDOW should be scrolled vertically to VSCROLL. This takes effect when displaying tall lines or images. WINDOW nil means use the selected window. Normally, VSCROLL is a non-negative multiple of the canonical character height of WINDOW; optional third arg PIXELS-P non-nil means that VSCROLL is in pixels. If PIXELS-P is nil, VSCROLL may have to be rounded so that it corresponds to an integral number of pixels. The return value is the result of this rounding. If PIXELS-P is non-nil, the return value is VSCROLL. PRESERVE-VSCROLL-P makes setting the start of WINDOW preserve the vscroll if its start is "frozen" due to a resized mini-window. (fn WINDOW VSCROLL &optional PIXELS-P PRESERVE-VSCROLL-P)Fwindow-configuration-equal-p Say whether two window configurations have the same window layout. This function ignores details such as the values of point and scrolling positions. (fn X Y)Vtemp-buffer-show-function Non-nil means call as function to display a help buffer. The function is called with one argument, the buffer to be displayed. Used by `with-output-to-temp-buffer'. If this function is used, then it must do the entire job of showing the buffer; `temp-buffer-show-hook' is not run unless this function runs it.Vminibuffer-scroll-window Non-nil means it is the window that C-M-v in minibuffer should scroll.Vmode-line-in-non-selected-windows Non-nil means to use `mode-line-inactive' face in non-selected windows. If the minibuffer is active, the `minibuffer-scroll-window' mode line is displayed in the `mode-line' face.Vother-window-scroll-buffer If this is a live buffer, \[scroll-other-window] should scroll its window.Vother-window-scroll-default Function that provides the window to scroll by \[scroll-other-window]. The function `other-window-for-scrolling' first tries to use `minibuffer-scroll-window' and `other-window-scroll-buffer'. But when both are nil, then by default it uses a neighboring window. This variable is intended to get another default instead of `next-window'.Vauto-window-vscroll Non-nil means to automatically adjust `window-vscroll' to view tall lines.Vnext-screen-context-lines Number of lines of continuity when scrolling by screenfuls.Vscroll-preserve-screen-position Controls if scroll commands move point to keep its screen position unchanged. A value of nil means point does not keep its screen position except at the scroll margin or window boundary respectively. A value of t means point keeps its screen position if the scroll command moved it vertically out of the window, e.g. when scrolling by full screens. If point is within `next-screen-context-lines' lines from the edges of the window, point will typically not keep its screen position when doing commands like `scroll-up-command'/`scroll-down-command' and the like. Any other value means point always keeps its screen position. Scroll commands should have the `scroll-command' property on their symbols to be controlled by this variable.Vwindow-point-insertion-type Insertion type of marker to use for `window-point'. See `marker-insertion-type' for the meaning of the possible values.Vwindow-buffer-change-functions Functions called during redisplay when window buffers have changed. The value should be a list of functions that take one argument. Functions specified buffer-locally are called for each window showing the corresponding buffer if and only if that window has been added or changed its buffer since the last redisplay. In this case the window is passed as argument. Functions specified by the default value are called for each frame if at least one window on that frame has been added, deleted or changed its buffer since the last redisplay. In this case the frame is passed as argument.Vwindow-size-change-functions Functions called during redisplay when window sizes have changed. The value should be a list of functions that take one argument. Functions specified buffer-locally are called for each window showing the corresponding buffer if and only if that window has been added or changed its buffer or its total or body size since the last redisplay. In this case the window is passed as argument. Functions specified by the default value are called for each frame if at least one window on that frame has been added or changed its buffer or its total or body size since the last redisplay. In this case the frame is passed as argument. For instance, to hide the title bar when the frame is maximized, you can add `frame-hide-title-bar-when-maximized' to this variable.Vwindow-selection-change-functions Functions called during redisplay when the selected window has changed. The value should be a list of functions that take one argument. Functions specified buffer-locally are called for each window showing the corresponding buffer if and only if that window has been selected or deselected since the last redisplay. In this case the window is passed as argument. Functions specified by the default value are called for each frame if the frame's selected window has changed since the last redisplay. In this case the frame is passed as argument.Vwindow-state-change-functions Functions called during redisplay when the window state changed. The value should be a list of functions that take one argument. Functions specified buffer-locally are called for each window showing the corresponding buffer if and only if that window has been added, resized, changed its buffer or has been (de-)selected since the last redisplay. In this case the window is passed as argument. Functions specified by the default value are called for each frame if at least one window on that frame has been added, deleted, changed its buffer or its total or body size or the frame has been (de-)selected, its selected window has changed or the window state change flag has been set for this frame since the last redisplay. In this case the frame is passed as argument.Vwindow-state-change-hook Functions called during redisplay when the window state changed. The value should be a list of functions that take no argument. This hook is called during redisplay when at least one window has been added, deleted, (de-)selected, changed its buffer or its total or body size or the window state change flag has been set for at least one frame. This hook is called after all other window change functions have been run and should be used only if a function should react to changes that happened on at least two frames since last redisplay or the function intends to change the window configuration.Vwindow-configuration-change-hook Functions called during redisplay when window configuration has changed. The value should be a list of functions that take no argument. Functions specified buffer-locally are called for each window showing the corresponding buffer if at least one window on that frame has been added, deleted or changed its buffer or its total or body size since the last redisplay. Each call is performed with the window showing the buffer temporarily selected. Functions specified by the default value are called for each frame if at least one window on that frame has been added, deleted or changed its buffer or its total or body size since the last redisplay. Each call is performed with the frame temporarily selected.Vrecenter-redisplay Non-nil means `recenter' redraws entire frame. If this option is non-nil, then the `recenter' command with a nil argument will redraw the entire frame; the special value `tty' causes the frame to be redrawn only if it is a tty frame.Vwindow-combination-resize If t, resize window combinations proportionally. If this variable is nil, splitting a window gets the entire screen space for displaying the new window from the window to split. Deleting and resizing a window preferably resizes one adjacent window only. If this variable is t, splitting a window tries to get the space proportionally from all windows in the same combination. This also allows splitting a window that is otherwise too small or of fixed size. Resizing and deleting a window proportionally resize all windows in the same combination. Other values are reserved for future use. A specific split operation may ignore the value of this variable if it is affected by a non-nil value of `window-combination-limit'.Vwindow-combination-limit If non-nil, splitting a window makes a new parent window. The following values are recognized: nil means splitting a window will create a new parent window only if the window has no parent window or the window shall become part of a combination orthogonal to the one it is part of. `window-size' means that splitting a window for displaying a buffer makes a new parent window provided `display-buffer' is supposed to explicitly set the window's size due to the presence of a `window-height' or `window-width' entry in the alist used by `display-buffer'. Otherwise, this value is handled like nil. `temp-buffer-resize' means that splitting a window for displaying a temporary buffer via `with-temp-buffer-window' makes a new parent window only if `temp-buffer-resize-mode' is enabled. Otherwise, this value is handled like nil. `temp-buffer' means that splitting a window for displaying a temporary buffer via `with-temp-buffer-window' always makes a new parent window. Otherwise, this value is handled like nil. `display-buffer' means that splitting a window for displaying a buffer always makes a new parent window. Since temporary buffers are displayed by the function `display-buffer', this value is stronger than `temp-buffer'. Splitting a window for other purpose makes a new parent window only if needed. t means that splitting a window always creates a new parent window. If all splits behave this way, each frame's window tree is a binary tree and every window but the frame's root window has exactly one sibling. The default value is `window-size'. Other values are reserved for future use.Vwindow-persistent-parameters Alist of persistent window parameters. This alist specifies which window parameters shall get saved by `current-window-configuration' and `window-state-get' and subsequently restored to their previous values by `set-window-configuration' and `window-state-put'. The car of each entry of this alist is the symbol specifying the parameter. The cdr is one of the following: nil means the parameter is neither saved by `window-state-get' nor by `current-window-configuration'. t means the parameter is saved by `current-window-configuration' and, provided its WRITABLE argument is nil, by `window-state-get'. The symbol `writable' means the parameter is saved unconditionally by both `current-window-configuration' and `window-state-get'. Do not use this value for parameters without read syntax (like windows or frames). Parameters not saved by `current-window-configuration' or `window-state-get' are left alone by `set-window-configuration' respectively are not installed by `window-state-put'.Vwindow-resize-pixelwise Non-nil means resize windows pixelwise. This currently affects the functions: `split-window', `maximize-window', `minimize-window', `fit-window-to-buffer' and `fit-frame-to-buffer', and all functions that symmetrically resize a parent window. Note that when a frame's pixel size is not a multiple of the frame's character size, at least one window may get resized pixelwise even if this option is nil.Vfast-but-imprecise-scrolling When non-nil, accelerate scrolling operations. This comes into play when scrolling rapidly over previously unfontified buffer regions. Only those portions of the buffer which are actually going to be displayed get fontified. Note that this optimization can cause the portion of the buffer displayed after a scrolling operation to be somewhat inaccurate.Scharset.o Fcharsetp Return non-nil if and only if OBJECT is a charset. (fn OBJECT)Fmap-charset-chars Call FUNCTION for all characters in CHARSET. Optional 3rd argument ARG is an additional argument to be passed to FUNCTION, see below. Optional 4th and 5th arguments FROM-CODE and TO-CODE specify the range of code points (in CHARSET) of target characters on which to map the FUNCTION. Note that these are not character codes, but code points of CHARSET; for the difference see `decode-char' and `list-charset-chars'. If FROM-CODE is nil or imitted, it stands for the first code point of CHARSET; if TO-CODE is nil or omitted, it stands for the last code point of CHARSET. FUNCTION will be called with two arguments: RANGE and ARG. RANGE is a cons (FROM . TO), where FROM and TO specify a range of characters that belong to CHARSET on which FUNCTION should do its job. FROM and TO are Emacs character codes, unlike FROM-CODE and TO-CODE, which are CHARSET code points. (fn FUNCTION CHARSET &optional ARG FROM-CODE TO-CODE)Fdefine-charset-internal For internal use only. (fn ...)Fdefine-charset-alias Define ALIAS as an alias for charset CHARSET. (fn ALIAS CHARSET)Fcharset-plist Return the property list of CHARSET. (fn CHARSET)Fset-charset-plist Set CHARSET's property list to PLIST. (fn CHARSET PLIST)Funify-charset Unify characters of CHARSET with Unicode. This means reading the relevant file and installing the table defined by CHARSET's `:unify-map' property. Optional second arg UNIFY-MAP is a file name string or a vector. It has the same meaning as the `:unify-map' attribute in the function `define-charset' (which see). Optional third argument DEUNIFY, if non-nil, means to de-unify CHARSET. (fn CHARSET &optional UNIFY-MAP DEUNIFY)Fget-unused-iso-final-char Return an unused ISO final char for a charset of DIMENSION and CHARS. DIMENSION is the number of bytes to represent a character: 1 or 2. CHARS is the number of characters in a dimension: 94 or 96. This final char is for private use, thus the range is `0' (48) .. `?' (63). If there's no unused final char for the specified kind of charset, return nil. (fn DIMENSION CHARS)Fdeclare-equiv-charset Declare an equivalent charset for ISO-2022 decoding. On decoding by an ISO-2022 base coding system, when a charset specified by DIMENSION, CHARS, and FINAL-CHAR is designated, behave as if CHARSET is designated instead. (fn DIMENSION CHARS FINAL-CHAR CHARSET)Ffind-charset-region Return a list of charsets in the region between BEG and END. BEG and END are buffer positions. Optional arg TABLE if non-nil is a translation table to look up. If the current buffer is unibyte, the returned list may contain only `ascii', `eight-bit-control', and `eight-bit-graphic'. (fn BEG END &optional TABLE)Ffind-charset-string Return a list of charsets in STR. Optional arg TABLE if non-nil is a translation table to look up. If STR is unibyte, the returned list may contain only `ascii', `eight-bit-control', and `eight-bit-graphic'. (fn STR &optional TABLE)Fdecode-char Decode the pair of CHARSET and CODE-POINT into a character. Return nil if CODE-POINT is not valid in CHARSET. CODE-POINT may be a cons (HIGHER-16-BIT-VALUE . LOWER-16-BIT-VALUE), although this usage is obsolescent. (fn CHARSET CODE-POINT)Fencode-char Encode the character CH into a code-point of CHARSET. Return the encoded code-point as an integer, or nil if CHARSET doesn't support CH. (fn CH CHARSET)Fmake-char Return a character of CHARSET whose position codes are CODEn. CODE1 through CODE4 are optional, but if you don't supply sufficient position codes, it is assumed that the minimum code in each dimension is specified. (fn CHARSET &optional CODE1 CODE2 CODE3 CODE4)Fsplit-char Return list of charset and one to four position-codes of CH. The charset is decided by the current priority order of charsets. A position-code is a byte value of each dimension of the code-point of CH in the charset. (fn CH)Fchar-charset Return the charset of highest priority that contains CH. ASCII characters are an exception: for them, this function always returns `ascii'. If optional 2nd arg RESTRICTION is non-nil, it is a list of charsets from which to find the charset. It may also be a coding system. In that case, find the charset from what supported by that coding system. (fn CH &optional RESTRICTION)Fcharset-after Return charset of a character in the current buffer at position POS. If POS is nil, it defaults to the current point. If POS is out of range, the value is nil. (fn &optional POS)Fiso-charset Return charset of ISO's specification DIMENSION, CHARS, and FINAL-CHAR. ISO 2022's designation sequence (escape sequence) distinguishes charsets by their DIMENSION, CHARS, and FINAL-CHAR, whereas Emacs distinguishes them by charset symbol. See the documentation of the function `charset-info' for the meanings of DIMENSION, CHARS, and FINAL-CHAR. (fn DIMENSION CHARS FINAL-CHAR)Fclear-charset-maps Internal use only. Clear temporary charset mapping tables. It should be called only from temacs invoked for dumping. (fn)Fcharset-priority-list Return the list of charsets ordered by priority. HIGHESTP non-nil means just return the highest priority one. (fn &optional HIGHESTP)Fset-charset-priority Assign higher priority to the charsets given as arguments. (fn &rest charsets)Fcharset-id-internal Internal use only. Return charset identification number of CHARSET. (fn &optional CHARSET)Fsort-charsets Sort charset list CHARSETS by a priority of each charset. Return the sorted list. CHARSETS is modified by side effects. See also `charset-priority-list' and `set-charset-priority'. (fn CHARSETS)Vcharset-map-path List of directories to search for charset map files.Vinhibit-load-charset-map Inhibit loading of charset maps. Used when dumping Emacs.Vcharset-list List of all charsets ever defined.Vcurrent-iso639-language ISO639 language mnemonic symbol for the current language environment. If the current language environment is for multiple languages (e.g. "Latin-1"), the value may be a list of mnemonics.Scoding.o Fcoding-system-p Return t if OBJECT is nil or a coding-system. See the documentation of `define-coding-system' for information about coding-system objects. (fn OBJECT)Fread-non-nil-coding-system Read a coding system from the minibuffer, prompting with string PROMPT. (fn PROMPT)Fread-coding-system Read a coding system from the minibuffer, prompting with string PROMPT. If the user enters null input, return second argument DEFAULT-CODING-SYSTEM. Ignores case when completing coding systems (all Emacs coding systems are lower-case). (fn PROMPT &optional DEFAULT-CODING-SYSTEM)Fcheck-coding-system Check validity of CODING-SYSTEM. If valid, return CODING-SYSTEM, else signal a `coding-system-error' error. It is valid if it is nil or a symbol defined as a coding system by the function `define-coding-system'. (fn CODING-SYSTEM)Fdetect-coding-region Detect coding system of the text in the region between START and END. Return a list of possible coding systems ordered by priority. The coding systems to try and their priorities follows what the function `coding-system-priority-list' (which see) returns. If only ASCII characters are found (except for such ISO-2022 control characters as ESC), it returns a list of single element `undecided' or its subsidiary coding system according to a detected end-of-line format. If optional argument HIGHEST is non-nil, return the coding system of highest priority. (fn START END &optional HIGHEST)Fdetect-coding-string Detect coding system of the text in STRING. Return a list of possible coding systems ordered by priority. The coding systems to try and their priorities follows what the function `coding-system-priority-list' (which see) returns. If only ASCII characters are found (except for such ISO-2022 control characters as ESC), it returns a list of single element `undecided' or its subsidiary coding system according to a detected end-of-line format. If optional argument HIGHEST is non-nil, return the coding system of highest priority. (fn STRING &optional HIGHEST)Ffind-coding-systems-region-internal Internal use only. (fn START END &optional EXCLUDE)Funencodable-char-position Return position of first un-encodable character in a region. START and END specify the region and CODING-SYSTEM specifies the encoding to check. Return nil if CODING-SYSTEM does encode the region. If optional 4th argument COUNT is non-nil, it specifies at most how many un-encodable characters to search. In this case, the value is a list of positions. If optional 5th argument STRING is non-nil, it is a string to search for un-encodable characters. In that case, START and END are indexes to the string and treated as in `substring'. (fn START END CODING-SYSTEM &optional COUNT STRING)Fcheck-coding-systems-region Check if text between START and END is encodable by CODING-SYSTEM-LIST. START and END are buffer positions specifying the region. CODING-SYSTEM-LIST is a list of coding systems to check. If all coding systems in CODING-SYSTEM-LIST can encode the region, the function returns nil. If some of the coding systems cannot encode the whole region, value is an alist, each element of which has the form (CODING-SYSTEM POS1 POS2 ...), which means that CODING-SYSTEM cannot encode the text at buffer positions POS1, POS2, ... START may be a string. In that case, check if the string is encodable, and the value contains character indices into the string instead of buffer positions. END is ignored in this case. If the current buffer (or START if it is a string) is unibyte, the value is nil. (fn START END CODING-SYSTEM-LIST)Fdecode-coding-region Decode the current region using the specified coding system. Interactively, prompt for the coding system to decode the region, and replace the region with the decoded text. "Decoding" means transforming bytes into readable text (characters). If, for instance, you have a region that contains data that represents the two bytes #xc2 #xa9, after calling this function with the utf-8 coding system, the region will contain the single character ?\N{COPYRIGHT SIGN}. When called from a program, takes four arguments: START, END, CODING-SYSTEM, and DESTINATION. START and END are buffer positions. Optional 4th arguments DESTINATION specifies where the decoded text goes. If nil, the region between START and END is replaced by the decoded text. If buffer, the decoded text is inserted in that buffer after point (point does not move). If that buffer is unibyte, it receives the individual bytes of the internal representation of the decoded text. In those cases, the length of the decoded text is returned. If DESTINATION is t, the decoded text is returned. This function sets `last-coding-system-used' to the precise coding system used (which may be different from CODING-SYSTEM if CODING-SYSTEM is not fully specified.) (fn START END CODING-SYSTEM &optional DESTINATION)Fencode-coding-region Encode the current region using th specified coding system. Interactively, prompt for the coding system to encode the region, and replace the region with the bytes that are the result of the encoding. What's meant by "encoding" is transforming textual data (characters) into bytes. If, for instance, you have a region that contains the single character ?\N{COPYRIGHT SIGN}, after calling this function with the utf-8 coding system, the data in the region will represent the two bytes #xc2 #xa9. When called from a program, takes four arguments: START, END, CODING-SYSTEM and DESTINATION. START and END are buffer positions. Optional 4th argument DESTINATION specifies where the encoded text goes. If nil, the region between START and END is replaced by the encoded text. If buffer, the encoded text is inserted in that buffer after point (point does not move). In those cases, the length of the encoded text is returned. If DESTINATION is t, the encoded text is returned. This function sets `last-coding-system-used' to the precise coding system used (which may be different from CODING-SYSTEM if CODING-SYSTEM is not fully specified.) (fn START END CODING-SYSTEM &optional DESTINATION)Finternal-encode-string-utf-8 Internal use only. (fn STRING BUFFER NOCOPY HANDLE-8-BIT HANDLE-OVER-UNI ENCODE-METHOD COUNT)Finternal-decode-string-utf-8 Internal use only. (fn STRING BUFFER NOCOPY HANDLE-8-BIT HANDLE-OVER-UNI DECODE-METHOD COUNT)Fdecode-coding-string Decode STRING which is encoded in CODING-SYSTEM, and return the result. Optional third arg NOCOPY non-nil means it is OK to return STRING itself if the decoding operation is trivial. Optional fourth arg BUFFER non-nil means that the decoded text is inserted in that buffer after point (point does not move). In this case, the return value is the length of the decoded text. If that buffer is unibyte, it receives the individual bytes of the internal representation of the decoded text. This function sets `last-coding-system-used' to the precise coding system used (which may be different from CODING-SYSTEM if CODING-SYSTEM is not fully specified.) The function does not change the match data. (fn STRING CODING-SYSTEM &optional NOCOPY BUFFER)Fencode-coding-string Encode STRING to CODING-SYSTEM, and return the result. Optional third arg NOCOPY non-nil means it is OK to return STRING itself if the encoding operation is trivial. Optional fourth arg BUFFER non-nil means that the encoded text is inserted in that buffer after point (point does not move). In this case, the return value is the length of the encoded text. This function sets `last-coding-system-used' to the precise coding system used (which may be different from CODING-SYSTEM if CODING-SYSTEM is not fully specified.) The function does not change the match data. (fn STRING CODING-SYSTEM &optional NOCOPY BUFFER)Fdecode-sjis-char Decode a Japanese character which has CODE in shift_jis encoding. Return the corresponding character. (fn CODE)Fencode-sjis-char Encode a Japanese character CH to shift_jis encoding. Return the corresponding code in SJIS. (fn CH)Fdecode-big5-char Decode a Big5 character which has CODE in BIG5 coding system. Return the corresponding character. (fn CODE)Fencode-big5-char Encode the Big5 character CH to BIG5 coding system. Return the corresponding character code in Big5. (fn CH)Fset-terminal-coding-system-internal Internal use only. (fn CODING-SYSTEM &optional TERMINAL)Fset-safe-terminal-coding-system-internal Internal use only. (fn CODING-SYSTEM)Fterminal-coding-system Return coding system specified for terminal output on the given terminal. TERMINAL may be a terminal object, a frame, or nil for the selected frame's terminal device. (fn &optional TERMINAL)Fset-keyboard-coding-system-internal Internal use only. (fn CODING-SYSTEM &optional TERMINAL)Fkeyboard-coding-system Return coding system specified for decoding keyboard input. (fn &optional TERMINAL)Ffind-operation-coding-system Choose a coding system for an operation based on the target name. The value names a pair of coding systems: (DECODING-SYSTEM . ENCODING-SYSTEM). DECODING-SYSTEM is the coding system to use for decoding (in case OPERATION does decoding), and ENCODING-SYSTEM is the coding system for encoding (in case OPERATION does encoding). The first argument OPERATION specifies an I/O primitive: For file I/O, `insert-file-contents' or `write-region'. For process I/O, `call-process', `call-process-region', or `start-process'. For network I/O, `open-network-stream'. The remaining arguments should be the same arguments that were passed to the primitive. Depending on which primitive, one of those arguments is selected as the TARGET. For example, if OPERATION does file I/O, whichever argument specifies the file name is TARGET. TARGET has a meaning which depends on OPERATION: For file I/O, TARGET is a file name (except for the special case below). For process I/O, TARGET is a process name. For network I/O, TARGET is a service name or a port number. This function looks up what is specified for TARGET in `file-coding-system-alist', `process-coding-system-alist', or `network-coding-system-alist' depending on OPERATION. They may specify a coding system, a cons of coding systems, or a function symbol to call. In the last case, we call the function with one argument, which is a list of all the arguments given to this function. If the function can't decide a coding system, it can return `undecided' so that the normal code-detection is performed. If OPERATION is `insert-file-contents', the argument corresponding to TARGET may be a cons (FILENAME . BUFFER). In that case, FILENAME is a file name to look up, and BUFFER is a buffer that contains the file's contents (not yet decoded). If `file-coding-system-alist' specifies a function to call for FILENAME, that function should examine the contents of BUFFER instead of reading the file. (fn OPERATION ARGUMENTS...)Fset-coding-system-priority Assign higher priority to the coding systems given as arguments. If multiple coding systems belong to the same category, all but the first one are ignored. (fn &rest coding-systems)Fcoding-system-priority-list Return a list of coding systems ordered by their priorities. The list contains a subset of coding systems; i.e. coding systems assigned to each coding category (see `coding-category-list'). HIGHESTP non-nil means just return the highest priority one. (fn &optional HIGHESTP)Fdefine-coding-system-internal For internal use only. (fn ...)Fcoding-system-put Change value of CODING-SYSTEM's property PROP to VAL. The following properties, if set by this function, override the values of the corresponding attributes set by `define-coding-system': `:mnemonic', `:default-char', `:ascii-compatible-p' `:decode-translation-table', `:encode-translation-table', `:post-read-conversion', `:pre-write-conversion' See `define-coding-system' for the description of these properties. See `coding-system-get' and `coding-system-plist' for accessing the property list of a coding-system. (fn CODING-SYSTEM PROP VAL)Fdefine-coding-system-alias Define ALIAS as an alias for CODING-SYSTEM. (fn ALIAS CODING-SYSTEM)Fcoding-system-base Return the base of CODING-SYSTEM. Any alias or subsidiary coding system is not a base coding system. (fn CODING-SYSTEM)Fcoding-system-plist Return the property list of CODING-SYSTEM. (fn CODING-SYSTEM)Fcoding-system-aliases Return the list of aliases of CODING-SYSTEM. (fn CODING-SYSTEM)Fcoding-system-eol-type Return eol-type of CODING-SYSTEM. An eol-type is an integer 0, 1, 2, or a vector of coding systems. Integer values 0, 1, and 2 indicate a format of end-of-line; LF, CRLF, and CR respectively. A vector value indicates that a format of end-of-line should be detected automatically. Nth element of the vector is the subsidiary coding system whose eol-type is N. (fn CODING-SYSTEM)Vcoding-system-list List of coding systems. Do not alter the value of this variable manually. This variable should be updated by the functions `define-coding-system' and `define-coding-system-alias'.Vcoding-system-alist Alist of coding system names. Each element is one element list of coding system name. This variable is given to `completing-read' as COLLECTION argument. Do not alter the value of this variable manually. This variable should be updated by `define-coding-system-alias'.Vcoding-category-list List of coding-categories (symbols) ordered by priority. On detecting a coding system, Emacs tries code detection algorithms associated with each coding-category one by one in this order. When one algorithm agrees with a byte sequence of source text, the coding system bound to the corresponding coding-category is selected. Don't modify this variable directly, but use `set-coding-system-priority'.Vcoding-system-for-read Specify the coding system for read operations. It is useful to bind this variable with `let', but do not set it globally. If the value is a coding system, it is used for decoding on read operation. If not, an appropriate element is used from one of the coding system alists. There are three such tables: `file-coding-system-alist', `process-coding-system-alist', and `network-coding-system-alist'.Vcoding-system-for-write Specify the coding system for write operations. Programs bind this variable with `let', but you should not set it globally. If the value is a coding system, it is used for encoding of output, when writing it to a file and when sending it to a file or subprocess. If this does not specify a coding system, an appropriate element is used from one of the coding system alists. There are three such tables: `file-coding-system-alist', `process-coding-system-alist', and `network-coding-system-alist'. For output to files, if the above procedure does not specify a coding system, the value of `buffer-file-coding-system' is used.Vlast-coding-system-used Coding system used in the latest file or process I/O.Vlast-code-conversion-error Error status of the last code conversion. When an error was detected in the last code conversion, this variable is set to one of the following symbols. `insufficient-source' `inconsistent-eol' `invalid-source' `interrupted' `insufficient-memory' When no error was detected, the value doesn't change. So, to check the error status of a code conversion by this variable, you must explicitly set this variable to nil before performing code conversion.Vinhibit-eol-conversion Non-nil means always inhibit code conversion of end-of-line format. See info node `Coding Systems' and info node `Text and Binary' concerning such conversion.Vinherit-process-coding-system Non-nil means process buffer inherits coding system of process output. Bind it to t if the process output is to be treated as if it were a file read from some filesystem.Vfile-coding-system-alist Alist to decide a coding system to use for a file I/O operation. The format is ((PATTERN . VAL) ...), where PATTERN is a regular expression matching a file name, VAL is a coding system, a cons of coding systems, or a function symbol. If VAL is a coding system, it is used for both decoding and encoding the file contents. If VAL is a cons of coding systems, the car part is used for decoding, and the cdr part is used for encoding. If VAL is a function symbol, the function must return a coding system or a cons of coding systems which are used as above. The function is called with an argument that is a list of the arguments with which `find-operation-coding-system' was called. If the function can't decide a coding system, it can return `undecided' so that the normal code-detection is performed. See also the function `find-operation-coding-system' and the variable `auto-coding-alist'.Vprocess-coding-system-alist Alist to decide a coding system to use for a process I/O operation. The format is ((PATTERN . VAL) ...), where PATTERN is a regular expression matching a program name, VAL is a coding system, a cons of coding systems, or a function symbol. If VAL is a coding system, it is used for both decoding what received from the program and encoding what sent to the program. If VAL is a cons of coding systems, the car part is used for decoding, and the cdr part is used for encoding. If VAL is a function symbol, the function must return a coding system or a cons of coding systems which are used as above. See also the function `find-operation-coding-system'.Vnetwork-coding-system-alist Alist to decide a coding system to use for a network I/O operation. The format is ((PATTERN . VAL) ...), where PATTERN is a regular expression matching a network service name or is a port number to connect to, VAL is a coding system, a cons of coding systems, or a function symbol. If VAL is a coding system, it is used for both decoding what received from the network stream and encoding what sent to the network stream. If VAL is a cons of coding systems, the car part is used for decoding, and the cdr part is used for encoding. If VAL is a function symbol, the function must return a coding system or a cons of coding systems which are used as above. See also the function `find-operation-coding-system'.Vlocale-coding-system Coding system to use with system messages. Potentially also used for decoding keyboard input on X Windows, and is used for encoding standard output and error streams.Veol-mnemonic-unix String displayed in mode line for UNIX-like (LF) end-of-line format.Veol-mnemonic-dos String displayed in mode line for DOS-like (CRLF) end-of-line format.Veol-mnemonic-mac String displayed in mode line for MAC-like (CR) end-of-line format.Veol-mnemonic-undecided String displayed in mode line when end-of-line format is not yet determined.Venable-character-translation Non-nil enables character translation while encoding and decoding.Vstandard-translation-table-for-decode Table for translating characters while decoding.Vstandard-translation-table-for-encode Table for translating characters while encoding.Vcharset-revision-table Alist of charsets vs revision numbers. While encoding, if a charset (car part of an element) is found, designate it with the escape sequence identifying revision (cdr part of the element).Vdefault-process-coding-system Cons of coding systems used for process I/O by default. The car part is used for decoding a process output, the cdr part is used for encoding a text to be sent to a process.Vlatin-extra-code-table Table of extra Latin codes in the range 128..159 (inclusive). This is a vector of length 256. If Nth element is non-nil, the existence of code N in a file (or output of subprocess) doesn't prevent it to be detected as a coding system of ISO 2022 variant which has a flag `accept-latin-extra-code' t (e.g. iso-latin-1) on reading a file or reading output of a subprocess. Only 128th through 159th elements have a meaning.Vselect-safe-coding-system-function Function to call to select safe coding system for encoding a text. If set, this function is called to force a user to select a proper coding system which can encode the text in the case that a default coding system used in each operation can't encode the text. The function should take care that the buffer is not modified while the coding system is being selected. The default value is `select-safe-coding-system' (which see).Vcoding-system-require-warning Internal use only. If non-nil, on writing a file, `select-safe-coding-system-function' is called even if `coding-system-for-write' is non-nil. The command `universal-coding-system-argument' binds this variable to t temporarily.Vinhibit-iso-escape-detection If non-nil, Emacs ignores ISO-2022 escape sequences during code detection. When Emacs reads text, it tries to detect how the text is encoded. This code detection is sensitive to escape sequences. If Emacs sees a valid ISO-2022 escape sequence, it assumes the text is encoded in one of the ISO2022 encodings, and decodes text by the corresponding coding system (e.g. `iso-2022-7bit'). However, there may be a case that you want to read escape sequences in a file as is. In such a case, you can set this variable to non-nil. Then the code detection will ignore any escape sequences, and no text is detected as encoded in some ISO-2022 encoding. The result is that all escape sequences become visible in a buffer. The default value is nil, and it is strongly recommended not to change it. That is because many Emacs Lisp source files that contain non-ASCII characters are encoded by the coding system `iso-2022-7bit' in Emacs's distribution, and they won't be decoded correctly on reading if you suppress escape sequence detection. The other way to read escape sequences in a file without decoding is to explicitly specify some coding system that doesn't use ISO-2022 escape sequence (e.g., `latin-1') on reading by \[universal-coding-system-argument].Vinhibit-null-byte-detection If non-nil, Emacs ignores null bytes on code detection. By default, Emacs treats it as binary data, and does not attempt to decode it. The effect is as if you specified `no-conversion' for reading that text. Set this to non-nil when a regular text happens to include null bytes. Examples are Index nodes of Info files and null-byte delimited output from GNU Find and GNU Grep. Emacs will then ignore the null bytes and decode text as usual.Vdisable-ascii-optimization If non-nil, Emacs does not optimize code decoder for ASCII files. Internal use only. Remove after the experimental optimizer becomes stable.Vtranslation-table-for-input Char table for translating self-inserting characters. This is applied to the result of input methods, not their input. See also `keyboard-translate-table'. Use of this variable for character code unification was rendered obsolete in Emacs 23.1 and later, since Unicode is now the basis of internal character representation.Scategory.o Fmake-category-set Return a newly created category-set which contains CATEGORIES. CATEGORIES is a string of category mnemonics. The value is a bool-vector which has t at the indices corresponding to those categories. (fn CATEGORIES)Fdefine-category Define CATEGORY as a category which is described by DOCSTRING. CATEGORY should be an ASCII printing character in the range ` ' to `~'. DOCSTRING is the documentation string of the category. The first line should be a terse text (preferably less than 16 characters), and the rest lines should be the full description. The category is defined only in category table TABLE, which defaults to the current buffer's category table. (fn CATEGORY DOCSTRING &optional TABLE)Fcategory-docstring Return the documentation string of CATEGORY, as defined in TABLE. TABLE should be a category table and defaults to the current buffer's category table. (fn CATEGORY &optional TABLE)Fget-unused-category Return a category which is not yet defined in TABLE. If no category remains available, return nil. The optional argument TABLE specifies which category table to modify; it defaults to the current buffer's category table. (fn &optional TABLE)Fcategory-table-p Return t if ARG is a category table. (fn ARG)Fcategory-table Return the current category table. This is the one specified by the current buffer. (fn)Fstandard-category-table Return the standard category table. This is the one used for new buffers. (fn)Fcopy-category-table Construct a new category table and return it. It is a copy of the TABLE, which defaults to the standard category table. (fn &optional TABLE)Fmake-category-table Construct a new and empty category table and return it. (fn)Fset-category-table Specify TABLE as the category table for the current buffer. Return TABLE. (fn TABLE)Fchar-category-set Return the category set of CHAR. (fn CHAR)Fcategory-set-mnemonics Return a string containing mnemonics of the categories in CATEGORY-SET. CATEGORY-SET is a bool-vector, and the categories "in" it are those that are indexes where t occurs in the bool-vector. The return value is a string containing those same categories. (fn CATEGORY-SET)Fmodify-category-entry Modify the category set of CHARACTER by adding CATEGORY to it. The category is changed only for table TABLE, which defaults to the current buffer's category table. CHARACTER can be either a single character or a cons representing the lower and upper ends of an inclusive character range to modify. CATEGORY must be a category name (a character between ` ' and `~'). Use `describe-categories' to see existing category names. If optional fourth argument RESET is non-nil, then delete CATEGORY from the category set instead of adding it. (fn CHARACTER CATEGORY &optional TABLE RESET)Vword-combining-categories List of pair (cons) of categories to determine word boundary. Emacs treats a sequence of word constituent characters as a single word (i.e. finds no word boundary between them) only if they belong to the same script. But, exceptions are allowed in the following cases. (1) The case that characters are in different scripts is controlled by the variable `word-combining-categories'. Emacs finds no word boundary between characters of different scripts if they have categories matching some element of this list. More precisely, if an element of this list is a cons of category CAT1 and CAT2, and a multibyte character C1 which has CAT1 is followed by C2 which has CAT2, there's no word boundary between C1 and C2. For instance, to tell that Han characters followed by Hiragana characters can form a single word, the element `(?C . ?H)' should be in this list. (2) The case that character are in the same script is controlled by the variable `word-separating-categories'. Emacs finds a word boundary between characters of the same script if they have categories matching some element of this list. More precisely, if an element of this list is a cons of category CAT1 and CAT2, and a multibyte character C1 which has CAT1 but not CAT2 is followed by C2 which has CAT2 but not CAT1, there's a word boundary between C1 and C2. For instance, to tell that there's a word boundary between Hiragana and Katakana (both are in the same script `kana'), the element `(?H . ?K)' should be in this list.Vword-separating-categories List of pair (cons) of categories to determine word boundary. See the documentation of the variable `word-combining-categories'.Sccl.o Fccl-program-p Return t if OBJECT is a CCL program name or a compiled CCL program code. See the documentation of `define-ccl-program' for the detail of CCL program. (fn OBJECT)Fccl-execute Execute CCL-PROGRAM with registers initialized by REGISTERS. CCL-PROGRAM is a CCL program name (symbol) or compiled code generated by `ccl-compile' (for backward compatibility. In the latter case, the execution overhead is bigger than in the former). No I/O commands should appear in CCL-PROGRAM. REGISTERS is a vector of [R0 R1 ... R7] where RN is an initial value for the Nth register. As side effect, each element of REGISTERS holds the value of the corresponding register after the execution. See the documentation of `define-ccl-program' for a definition of CCL programs. (fn CCL-PROG REG)Fccl-execute-on-string Execute CCL-PROGRAM with initial STATUS on STRING. CCL-PROGRAM is a symbol registered by `register-ccl-program', or a compiled code generated by `ccl-compile' (for backward compatibility, in this case, the execution is slower). Read buffer is set to STRING, and write buffer is allocated automatically. STATUS is a vector of [R0 R1 ... R7 IC], where R0..R7 are initial values of corresponding registers, IC is the instruction counter specifying from where to start the program. If R0..R7 are nil, they are initialized to 0. If IC is nil, it is initialized to head of the CCL program. If optional 4th arg CONTINUE is non-nil, keep IC on read operation when read buffer is exhausted, else, IC is always set to the end of CCL-PROGRAM on exit. It returns the contents of write buffer as a string, and as side effect, STATUS is updated. If the optional 5th arg UNIBYTE-P is non-nil, the returned string is a unibyte string. By default it is a multibyte string. See the documentation of `define-ccl-program' for the detail of CCL program. (fn CCL-PROGRAM STATUS STRING &optional CONTINUE UNIBYTE-P)Fregister-ccl-program Register CCL program CCL-PROG as NAME in `ccl-program-table'. CCL-PROG should be a compiled CCL program (vector), or nil. If it is nil, just reserve NAME as a CCL program name. Return index number of the registered CCL program. (fn NAME CCL-PROG)Fregister-code-conversion-map Register SYMBOL as code conversion map MAP. Return index number of the registered map. (fn SYMBOL MAP)Vcode-conversion-map-vector Vector of code conversion maps.Vfont-ccl-encoder-alist Alist of fontname patterns vs corresponding CCL program. Each element looks like (REGEXP . CCL-CODE), where CCL-CODE is a compiled CCL program. When a font whose name matches REGEXP is used for displaying a character, CCL-CODE is executed to calculate the code point in the font from the charset number and position code(s) of the character which are set in CCL registers R0, R1, and R2 before the execution. The code point in the font is set in CCL registers R1 and R2 when the execution terminated. If the font is single-byte font, the register R2 is not used.Vtranslation-hash-table-vector Vector containing all translation hash tables ever defined. Comprises pairs (SYMBOL . TABLE) where SYMBOL and TABLE were set up by calls to `define-translation-hash-table'. The vector is indexed by the table id used by CCL.Scharacter.o Fcharacterp Return non-nil if OBJECT is a character. In Emacs Lisp, characters are represented by character codes, which are non-negative integers. The function `max-char' returns the maximum character code. (fn OBJECT)Fmax-char Return the maximum character code. If UNICODE is non-nil, return the maximum character code defined by the Unicode Standard. (fn &optional UNICODE)Funibyte-char-to-multibyte Convert the byte CH to multibyte character. (fn CH)Fmultibyte-char-to-unibyte Convert the multibyte character CH to a byte. If the multibyte character does not represent a byte, return -1. (fn CH)Fchar-width Return width of CHAR in columns when displayed in the current buffer. The width of CHAR is measured by how many columns it will occupy on the screen. This is based on data in `char-width-table', and ignores the actual metrics of the character's glyph as determined by its font. If the display table in effect replaces CHAR on display with something else, the function returns the width of the replacement. Tab is taken to occupy `tab-width' columns. (fn CHAR)Fstring-width Return width of STRING in columns when displayed in the current buffer. Width of STRING is measured by how many columns it will occupy on the screen. Optional arguments FROM and TO specify the substring of STRING to consider, and are interpreted as in `substring'. Width of each character in STRING is generally taken according to `char-width', but character compositions and the display table in effect are taken into consideration. Tabs in STRING are always assumed to occupy `tab-width' columns, although they might take fewer columns depending on the column where they begin on display. The effect of faces and fonts, including fonts used for non-Latin and other unusual characters, such as emoji, is ignored, as are display properties and invisible text. For these reasons, the results are just an approximation, especially on GUI frames; for accurate dimensions of text as it will be displayed, use `string-pixel-width' or `window-text-pixel-size' instead. (fn STRING &optional FROM TO)Fstring Concatenate all the argument characters and make the result a string. (fn &rest CHARACTERS)Funibyte-string Concatenate all the argument bytes and make the result a unibyte string. (fn &rest BYTES)Fchar-resolve-modifiers Resolve modifiers in the character CHAR. The value is a character with modifiers resolved into the character code. Unresolved modifiers are kept in the value. (fn CHAR)Fget-byte Return a byte value of a character at point. Optional 1st arg POSITION, if non-nil, is a position of a character to get a byte value. Optional 2nd arg STRING, if non-nil, is a string of which first character is a target to get a byte value. In this case, POSITION, if non-nil, is an index of a target character in the string. If the current buffer (or STRING) is multibyte, and the target character is not ASCII nor 8-bit character, an error is signaled. (fn &optional POSITION STRING)Vtranslation-table-vector Vector recording all translation tables ever defined. Each element is a pair (SYMBOL . TABLE) relating the table to the symbol naming it. The ID of a translation table is an index into this vector.Vauto-fill-chars A char-table for characters which invoke auto-filling. Such characters have value t in this table.Vchar-width-table A char-table for width (columns) of each character.Vprintable-chars A char-table for each printable character.Vchar-script-table Char table of script symbols. It has one extra slot whose value is a list of script symbols.Vscript-representative-chars Alist of scripts vs the representative characters. Each element is a cons (SCRIPT . CHARS). SCRIPT is a symbol representing a script or a subgroup of a script. CHARS is a list or a vector of characters. If it is a list, all characters in the list are necessary for supporting SCRIPT. If it is a vector, one of the characters in the vector is necessary. This variable is used to find a font for a specific script.Vunicode-category-table Char table of Unicode's "General Category". All Unicode characters have one of the following values (symbol): Lu, Ll, Lt, Lm, Lo, Mn, Mc, Me, Nd, Nl, No, Pc, Pd, Ps, Pe, Pi, Pf, Po, Sm, Sc, Sk, So, Zs, Zl, Zp, Cc, Cf, Cs, Co, Cn See The Unicode Standard for the meaning of those values.Schartab.o Fmake-char-table Return a newly created char-table, with purpose PURPOSE. Each element is initialized to INIT, which defaults to nil. PURPOSE should be a symbol. If it has a `char-table-extra-slots' property, the property's value should be an integer between 0 and 10 that specifies how many extra slots the char-table has. Otherwise, the char-table has no extra slot. (fn PURPOSE &optional INIT)Fchar-table-subtype Return the subtype of char-table CHAR-TABLE. The value is a symbol. (fn CHAR-TABLE)Fchar-table-parent Return the parent char-table of CHAR-TABLE. The value is either nil or another char-table. If CHAR-TABLE holds nil for a given character, then the actual applicable value is inherited from the parent char-table (or from its parents, if necessary). (fn CHAR-TABLE)Fset-char-table-parent Set the parent char-table of CHAR-TABLE to PARENT. Return PARENT. PARENT must be either nil or another char-table. (fn CHAR-TABLE PARENT)Fchar-table-extra-slot Return the value of CHAR-TABLE's extra-slot number N. (fn CHAR-TABLE N)Fset-char-table-extra-slot Set CHAR-TABLE's extra-slot number N to VALUE. (fn CHAR-TABLE N VALUE)Fchar-table-range Return the value in CHAR-TABLE for a range of characters RANGE. RANGE should be nil (for the default value), a cons of character codes (for characters in the range), or a character code. If RANGE is a cons (FROM . TO), the function returns the value for FROM. (fn CHAR-TABLE RANGE)Fset-char-table-range Set the value in CHAR-TABLE for a range of characters RANGE to VALUE. RANGE should be t (for all characters), nil (for the default value), a cons of character codes (for characters in the range), or a character code. Return VALUE. (fn CHAR-TABLE RANGE VALUE)Foptimize-char-table Optimize CHAR-TABLE. TEST is the comparison function used to decide whether two entries are equivalent and can be merged. It defaults to `equal'. (fn CHAR-TABLE &optional TEST)Fmap-char-table Call FUNCTION for each character in CHAR-TABLE that has non-nil value. FUNCTION is called with two arguments, KEY and VALUE. KEY is a character code or a cons of character codes specifying a range of characters that have the same value. VALUE is what (char-table-range CHAR-TABLE KEY) returns. (fn FUNCTION CHAR-TABLE)Funicode-property-table-internal Return a char-table for Unicode character property PROP. Use `get-unicode-property-internal' and `put-unicode-property-internal' instead of `aref' and `aset' to get and put an element value. (fn PROP)Fget-unicode-property-internal Return an element of CHAR-TABLE for character CH. CHAR-TABLE must be what returned by `unicode-property-table-internal'. (fn CHAR-TABLE CH)Fput-unicode-property-internal Set an element of CHAR-TABLE for character CH to VALUE. CHAR-TABLE must be what returned by `unicode-property-table-internal'. (fn CHAR-TABLE CH VALUE)Vchar-code-property-alist Alist of character property name vs char-table containing property values. Internal use only.Sbidi.o Scm.o Sterm.o Ftty-display-color-p Return non-nil if the tty device TERMINAL can display colors. TERMINAL can be a terminal object, a frame, or nil (meaning the selected frame's terminal). This function always returns nil if TERMINAL does not refer to a text terminal. (fn &optional TERMINAL)Ftty-display-color-cells Return the number of colors supported by the tty device TERMINAL. TERMINAL can be a terminal object, a frame, or nil (meaning the selected frame's terminal). This function always returns 0 if TERMINAL does not refer to a text terminal. (fn &optional TERMINAL)Ftty-type Return the type of the tty device that TERMINAL uses. Returns nil if TERMINAL is not on a tty device. TERMINAL can be a terminal object, a frame, or nil (meaning the selected frame's terminal). (fn &optional TERMINAL)Fcontrolling-tty-p Return non-nil if TERMINAL is the controlling tty of the Emacs process. TERMINAL can be a terminal object, a frame, or nil (meaning the selected frame's terminal). This function always returns nil if TERMINAL is not on a tty device. (fn &optional TERMINAL)Ftty-no-underline Declare that the tty used by TERMINAL does not handle underlining. This is used to override the terminfo data, for certain terminals that do not really do underlining, but say that they do. This function has no effect if used on a non-tty terminal. TERMINAL can be a terminal object, a frame or nil (meaning the selected frame's terminal). This function always returns nil if TERMINAL does not refer to a text terminal. (fn &optional TERMINAL)Ftty-top-frame Return the topmost terminal frame on TERMINAL. TERMINAL can be a terminal object, a frame or nil (meaning the selected frame's terminal). This function returns nil if TERMINAL does not refer to a text terminal. Otherwise, it returns the top-most frame on the text terminal. (fn &optional TERMINAL)Fsuspend-tty Suspend the terminal device TTY. The device is restored to its default state, and Emacs ceases all access to the tty device. Frames that use the device are not deleted, but input is not read from them and if they change, their display is not updated. TTY may be a terminal object, a frame, or nil for the terminal device of the currently selected frame. This function runs `suspend-tty-functions' after suspending the device. The functions are run with one arg, the id of the suspended terminal device. `suspend-tty' does nothing if it is called on a device that is already suspended. A suspended tty may be resumed by calling `resume-tty' on it. (fn &optional TTY)Fresume-tty Resume the previously suspended terminal device TTY. The terminal is opened and reinitialized. Frames that are on the suspended terminal are revived. It is an error to resume a terminal while another terminal is active on the same device. This function runs `resume-tty-functions' after resuming the terminal. The functions are run with one arg, the id of the resumed terminal device. `resume-tty' does nothing if it is called on a device that is not suspended. TTY may be a terminal object, a frame, or nil (meaning the selected frame's terminal). (fn &optional TTY)Ftty--set-output-buffer-size Set the output buffer size for a TTY. SIZE zero means use the system's default value. If SIZE is non-zero, this also avoids flushing the output stream. TTY may be a terminal object, a frame, or nil (meaning the selected frame's terminal). This function temporarily suspends and resumes the terminal device. (fn SIZE &optional TTY)Ftty--output-buffer-size Return the output buffer size of TTY. TTY may be a terminal object, a frame, or nil (meaning the selected frame's terminal). A value of zero means TTY uses the system's default value. (fn &optional TTY)Fgpm-mouse-start Open a connection to Gpm. Gpm-mouse can only be activated for one tty at a time. (fn)Fgpm-mouse-stop Close a connection to Gpm. (fn)Vsystem-uses-terminfo Non-nil means the system uses terminfo rather than termcap. This variable can be used by terminal emulator packages.Vsuspend-tty-functions Functions run after suspending a tty. The functions are run with one argument, the terminal object to be suspended. See `suspend-tty'.Vresume-tty-functions Functions run after resuming a tty. The functions are run with one argument, the terminal object that was revived. See `resume-tty'.Vvisible-cursor Non-nil means to make the cursor very visible. This only has an effect when running in a text terminal. What means "very visible" is up to your terminal. It may make the cursor bigger, or it may make it blink, or it may do nothing at all.Vtty-menu-calls-mouse-position-function Non-nil means TTY menu code will call `mouse-position-function'. This should be set if the function in `mouse-position-function' does not trigger redisplay.Sterminal.o Fdelete-terminal Delete TERMINAL by deleting all frames on it and closing the terminal. TERMINAL may be a terminal object, a frame, or nil (meaning the selected frame's terminal). Normally, you may not delete a display if all other displays are suspended, but if the second argument FORCE is non-nil, you may do so. (fn &optional TERMINAL FORCE)Fframe-terminal Return the terminal that FRAME is displayed on. If FRAME is nil, use the selected frame. The terminal device is represented by its integer identifier. (fn &optional FRAME)Fterminal-live-p Return non-nil if OBJECT is a terminal which has not been deleted. Return nil if OBJECT is not a live display terminal. OBJECT may be a terminal object, a frame, or nil (meaning the selected frame's terminal). If OBJECT is a live display terminal, return what sort of output terminal it uses. See the documentation of `framep' for possible return values. (fn OBJECT)Fterminal-list Return a list of all terminal devices. (fn)Fterminal-name Return the name of the terminal device TERMINAL. It is not guaranteed that the returned value is unique among opened devices. TERMINAL may be a terminal object, a frame, or nil (meaning the selected frame's terminal). (fn &optional TERMINAL)Fterminal-parameters Return the parameter-alist of terminal TERMINAL. The value is a list of elements of the form (PARM . VALUE), where PARM is a symbol. TERMINAL can be a terminal object, a frame, or nil (meaning the selected frame's terminal). (fn &optional TERMINAL)Fterminal-parameter Return TERMINAL's value for parameter PARAMETER. TERMINAL can be a terminal object, a frame, or nil (meaning the selected frame's terminal). (fn TERMINAL PARAMETER)Fset-terminal-parameter Set TERMINAL's value for parameter PARAMETER to VALUE. Return the previous value of PARAMETER. TERMINAL can be a terminal object, a frame or nil (meaning the selected frame's terminal). (fn TERMINAL PARAMETER VALUE)Vring-bell-function Non-nil means call this function to ring the bell. The function should accept no arguments.Vdelete-terminal-functions Special hook run when a terminal is deleted. Each function is called with argument, the terminal. This may be called just before actually deleting the terminal, or some time later.Sxfaces.o Fdump-colors Dump currently allocated colors to stderr. (fn)Fclear-face-cache Clear face caches on all frames. Optional THOROUGHLY non-nil means try to free unused fonts, too. (fn &optional THOROUGHLY)Fbitmap-spec-p Value is non-nil if OBJECT is a valid bitmap specification. A bitmap specification is either a string, a file name, or a list (WIDTH HEIGHT DATA) where WIDTH is the pixel width of the bitmap, HEIGHT is its height, and DATA is a string containing the bits of the pixmap. Bits are stored row by row, each row occupies (WIDTH + 7)/8 bytes. (fn OBJECT)Fcolor-values-from-color-spec Parse color SPEC as a numeric color and return (RED GREEN BLUE). This function recognizes the following formats for SPEC: #RGB, where R, G and B are hex numbers of equal length, 1-4 digits each. rgb:R/G/B, where R, G, and B are hex numbers, 1-4 digits each. rgbi:R/G/B, where R, G and B are floating-point numbers in [0,1]. If SPEC is not in one of the above forms, return nil. Each of the 3 integer members of the resulting list, RED, GREEN, and BLUE, is normalized to have its value in [0,65535]. (fn SPEC)Fcolor-gray-p Return non-nil if COLOR is a shade of gray (or white or black). FRAME specifies the frame and thus the display for interpreting COLOR. If FRAME is nil or omitted, use the selected frame. (fn COLOR &optional FRAME)Fcolor-supported-p Return non-nil if COLOR can be displayed on FRAME. BACKGROUND-P non-nil means COLOR is used as a background. Otherwise, this function tells whether it can be used as a foreground. If FRAME is nil or omitted, use the selected frame. COLOR must be a valid color name. (fn COLOR &optional FRAME BACKGROUND-P)Fx-family-fonts Return a list of available fonts of family FAMILY on FRAME. If FAMILY is omitted or nil, list all families. Otherwise, FAMILY must be a string, possibly containing wildcards `?' and `*'. If FRAME is omitted or nil, use the selected frame. Each element of the result is a vector [FAMILY WIDTH POINT-SIZE WEIGHT SLANT FIXED-P FULL REGISTRY-AND-ENCODING]. FAMILY is the font family name. POINT-SIZE is the size of the font in 1/10 pt. WIDTH, WEIGHT, and SLANT are symbols describing the width, weight and slant of the font. These symbols are the same as for face attributes, see `set-face-attribute'. FIXED-P is non-nil if the font is fixed-pitch. FULL is the full name of the font. REGISTRY-AND-ENCODING is a string giving the registry and encoding of the font. The resulting list is sorted according to the current setting of the face font sort order, see `face-font-selection-order'. (fn &optional FAMILY FRAME)Fx-list-fonts Return a list of the names of available fonts matching PATTERN. If optional arguments FACE and FRAME are specified, return only fonts the same size as FACE on FRAME. PATTERN should be a string containing a font name in the XLFD, Fontconfig, or GTK format. A font name given in the XLFD format may contain wildcard characters: the * character matches any substring, and the ? character matches any single character. PATTERN is case-insensitive. The return value is a list of strings, suitable as arguments to `set-face-font'. Fonts Emacs can't use may or may not be excluded even if they match PATTERN and FACE. The optional fourth argument MAXIMUM sets a limit on how many fonts to match. The first MAXIMUM fonts are reported. The optional fifth argument WIDTH, if specified, is a number of columns occupied by a character of a font. In that case, return only fonts the WIDTH times as wide as FACE on FRAME. (fn PATTERN &optional FACE FRAME MAXIMUM WIDTH)Finternal-make-lisp-face Make FACE, a symbol, a Lisp face with all attributes nil. If FACE was not known as a face before, create a new one. If optional argument FRAME is specified, make a frame-local face for that frame. Otherwise operate on the global face definition. Value is a vector of face attributes. (fn FACE &optional FRAME)Finternal-lisp-face-p Return non-nil if FACE names a face. FACE should be a symbol or string. If optional second argument FRAME is non-nil, check for the existence of a frame-local face with name FACE on that frame. Otherwise check for the existence of a global face. (fn FACE &optional FRAME)Finternal-copy-lisp-face Copy face FROM to TO. If FRAME is t, copy the global face definition of FROM. Otherwise, copy the frame-local definition of FROM on FRAME. If NEW-FRAME is a frame, copy that data into the frame-local definition of TO on NEW-FRAME. If NEW-FRAME is nil, FRAME controls where the data is copied to. The value is TO. (fn FROM TO FRAME NEW-FRAME)Finternal-set-lisp-face-attribute Set attribute ATTR of FACE to VALUE. FRAME being a frame means change the face on that frame. FRAME nil means change the face of the selected frame. FRAME t means change the default for new frames. FRAME 0 means change the face on all frames, and change the default for new frames. (fn FACE ATTR VALUE &optional FRAME)Finternal-face-x-get-resource Get the value of X resource RESOURCE, class CLASS. Returned value is for the display of frame FRAME. If FRAME is not specified or nil, use selected frame. This function exists because ordinary `x-get-resource' doesn't take a frame argument. (fn RESOURCE CLASS &optional FRAME)Finternal-set-lisp-face-attribute-from-resource (fn FACE ATTR VALUE &optional FRAME)Fface-attribute-relative-p Check whether a face attribute value is relative. Specifically, this function returns t if the attribute ATTRIBUTE with the value VALUE is relative. A relative value is one that doesn't entirely override whatever is inherited from another face. For most possible attributes, the only relative value that users see is `unspecified'. However, for :height, floating point values are also relative. (fn ATTRIBUTE VALUE)Fmerge-face-attribute Return face ATTRIBUTE VALUE1 merged with VALUE2. If VALUE1 or VALUE2 are absolute (see `face-attribute-relative-p'), then the result will be absolute, otherwise it will be relative. (fn ATTRIBUTE VALUE1 VALUE2)Finternal-get-lisp-face-attribute Return face attribute KEYWORD of face SYMBOL. If SYMBOL does not name a valid Lisp face or KEYWORD isn't a valid face attribute name, signal an error. If the optional argument FRAME is given, report on face SYMBOL in that frame. If FRAME is t, report on the defaults for face SYMBOL (for new frames). If FRAME is omitted or nil, use the selected frame. (fn SYMBOL KEYWORD &optional FRAME)Finternal-lisp-face-attribute-values Return a list of valid discrete values for face attribute ATTR. Value is nil if ATTR doesn't have a discrete set of valid values. (fn ATTR)Finternal-merge-in-global-face Add attributes from frame-default definition of FACE to FACE on FRAME. Default face attributes override any local face attributes. (fn FACE FRAME)Fface-font Return the font name of face FACE, or nil if it is unspecified. The font name is, by default, for ASCII characters. If the optional argument FRAME is given, report on face FACE in that frame. If FRAME is t, report on the defaults for face FACE (for new frames). The font default for a face is either nil, or a list of the form (bold), (italic) or (bold italic). If FRAME is omitted or nil, use the selected frame. If FRAME is anything but t, and the optional third argument CHARACTER is given, return the font name used by FACE for CHARACTER on FRAME. (fn FACE &optional FRAME CHARACTER)Finternal-lisp-face-equal-p True if FACE1 and FACE2 are equal. If the optional argument FRAME is given, report on FACE1 and FACE2 in that frame. If FRAME is t, report on the defaults for FACE1 and FACE2 (for new frames). If FRAME is omitted or nil, use the selected frame. (fn FACE1 FACE2 &optional FRAME)Finternal-lisp-face-empty-p True if FACE has no attribute specified. If the optional argument FRAME is given, report on face FACE in that frame. If FRAME is t, report on the defaults for face FACE (for new frames). If FRAME is omitted or nil, use the selected frame. (fn FACE &optional FRAME)Fframe--face-hash-table Return a hash table of frame-local faces defined on FRAME. For internal use only. (fn &optional FRAME)Fcolor-distance Return an integer distance between COLOR1 and COLOR2 on FRAME. COLOR1 and COLOR2 may be either strings containing the color name, or lists of the form (RED GREEN BLUE), each in the range 0 to 65535 inclusive. If FRAME is unspecified or nil, the current frame is used. If METRIC is specified, it should be a function that accepts two lists of the form (RED GREEN BLUE) aforementioned. Despite the name, this is not a true distance metric as it does not satisfy the triangle inequality. (fn COLOR1 COLOR2 &optional FRAME METRIC)Fface-attributes-as-vector Return a vector of face attributes corresponding to PLIST. (fn PLIST)Fdisplay-supports-face-attributes-p Return non-nil if all the face attributes in ATTRIBUTES are supported. The optional argument DISPLAY can be a display name, a frame, or nil (meaning the selected frame's display). For instance, to check whether the display supports underlining: (display-supports-face-attributes-p \='(:underline t)) The definition of `supported' is somewhat heuristic, but basically means that a face containing all the attributes in ATTRIBUTES, when merged with the default face for display, can be represented in a way that's (1) different in appearance from the default face, and (2) `close in spirit' to what the attributes specify, if not exact. Point (2) implies that a `:weight black' attribute will be satisfied by any display that can display bold, and a `:foreground "yellow"' as long as it can display a yellowish color, but `:slant italic' will _not_ be satisfied by the tty display code's automatic substitution of a `dim' face for italic. (fn ATTRIBUTES &optional DISPLAY)Finternal-set-font-selection-order Set font selection order for face font selection to ORDER. ORDER must be a list of length 4 containing the symbols `:width', `:height', `:weight', and `:slant'. Face attributes appearing first in ORDER are matched first, e.g. if `:height' appears before `:weight' in ORDER, font selection first tries to find a font with a suitable height, and then tries to match the font weight. Value is ORDER. (fn ORDER)Finternal-set-alternative-font-family-alist Define alternative font families to try in face font selection. ALIST is an alist of (FAMILY ALTERNATIVE1 ALTERNATIVE2 ...) entries. Each ALTERNATIVE is tried in order if no fonts of font family FAMILY can be found. Value is ALIST. (fn ALIST)Finternal-set-alternative-font-registry-alist Define alternative font registries to try in face font selection. ALIST is an alist of (REGISTRY ALTERNATIVE1 ALTERNATIVE2 ...) entries. Each ALTERNATIVE is tried in order if no fonts of font registry REGISTRY can be found. Value is ALIST. (fn ALIST)Ftty-suppress-bold-inverse-default-colors Suppress/allow boldness of faces with inverse default colors. SUPPRESS non-nil means suppress it. This affects bold faces on TTYs whose foreground is the default background color of the display and whose background is the default foreground color. For such faces, the bold face attribute is ignored if this variable is non-nil. (fn SUPPRESS)Fx-load-color-file Create an alist of color entries from an external file. The file should define one named RGB color per line like so: R G B name where R,G,B are numbers between 0 and 255 and name is an arbitrary string. (fn FILENAME)Fdump-face (fn &optional N)Fshow-face-resources (fn)Vface-filters-always-match Non-nil means that face filters are always deemed to match. This variable is intended for use only by code that evaluates the "specificity" of a face specification and should be let-bound only for this purpose.Vface--new-frame-defaults Hash table of global face definitions (for internal use only.)Vface-default-stipple Default stipple pattern used on monochrome displays. This stipple pattern is used on monochrome displays instead of shades of gray for a face background color. See `set-face-stipple' for possible values for this variable.Vtty-defined-color-alist An alist of defined terminal colors and their RGB values. See the docstring of `tty-color-alist' for the details.Vscalable-fonts-allowed Allowed scalable fonts. A value of nil means don't allow any scalable fonts. A value of t means allow any scalable font. Otherwise, value must be a list of regular expressions. A font may be scaled if its name matches a regular expression in the list. Note that if value is nil, a scalable font might still be used, if no other font of the appropriate family and registry is available.Vface-ignored-fonts List of ignored fonts. Each element is a regular expression that matches names of fonts to ignore.Vface-remapping-alist Alist of face remappings. Each element is of the form: (FACE . REPLACEMENT), which causes display of the face FACE to use REPLACEMENT instead. REPLACEMENT is a face specification, i.e. one of the following: (1) a face name (2) a property list of attribute/value pairs, or (3) a list in which each element has one of the above forms. List values for REPLACEMENT are merged to form the final face specification, with earlier entries taking precedence, in the same way as with the `face' text property. Face-name remapping cycles are suppressed; recursive references use the underlying face instead of the remapped face. So a remapping of the form: (FACE EXTRA-FACE... FACE) or: (FACE (FACE-ATTR VAL ...) FACE) causes EXTRA-FACE... or (FACE-ATTR VAL ...) to be _merged_ with the existing definition of FACE. Note that this isn't necessary for the default face, since every face inherits from the default face. An entry in the list can also be a filtered face expression of the form: (:filtered FILTER FACE-SPECIFICATION) This construct applies FACE-SPECIFICATION (which can have any of the forms allowed for face specifications generally) only if FILTER matches at the moment Emacs wants to draw text with the combined face. The only filters currently defined are NIL (which always matches) and (:window PARAMETER VALUE), which matches only in the context of a window with a parameter EQ-equal to VALUE. An entry in the face list can also be nil, which does nothing. If `face-remapping-alist' is made buffer-local, the face remapping takes effect only in that buffer. For instance, the mode my-mode could define a face `my-mode-default', and then in the mode setup function, do: (set (make-local-variable \='face-remapping-alist) (copy-tree \='((default my-mode-default)))). You probably want to use the face-remap package included in Emacs instead of manipulating face-remapping-alist directly. Note that many of the functions in that package modify the list destructively, so make sure you set it to a fresh value (for instance, use `copy-tree' as in the example above) before modifying. Because Emacs normally only redraws screen areas when the underlying buffer contents change, you may need to call `redraw-display' after changing this variable for it to take effect.Vface-font-rescale-alist Alist of fonts vs the rescaling factors. Each element is a cons (FONT-PATTERN . RESCALE-RATIO), where FONT-PATTERN is a font-spec or a regular expression matching a font name, and RESCALE-RATIO is a floating point number to specify how much larger (or smaller) font we should use. For instance, if a face requests a font of 10 point, we actually use a font of 10 * RESCALE-RATIO point.Vface-near-same-color-threshold Threshold for using distant-foreground color instead of foreground. The value should be an integer number providing the minimum distance between two colors that will still qualify them to be used as foreground and background. If the value of `color-distance', invoked with a nil METRIC argument, for the foreground and background colors of a face is less than this threshold, the distant-foreground color, if defined, will be used for the face instead of the foreground color. Lisp programs that change the value of this variable should also clear the face cache, see `clear-face-cache'.Vface-font-lax-matched-attributes Whether to match some face attributes in lax manner when realizing faces. If non-nil, some font-related face attributes will be matched in a lax manner when looking for candidate fonts. If the value is t, the default, the search for fonts will not insist on exact match for 3 font attributes: weight, width, and slant. Instead, it will examine the available fonts with various values of these attributes, and select the font that is the closest possible match. (If an exact match is available, it will still be selected, as that is the closest match.) For example, looking for a semi-bold font might select a bold or a medium-weight font if no semi-bold font matching other attributes can be found. This is especially important when the `default' face specifies unusual values for one or more of these 3 attributes, which other installed fonts don't support. The value can also be a list of font-related face attribute symbols; see `set-face-attribute' for the full list of attributes. Then the corresponding face attributes will be treated as "soft" constraints in the manner described above, instead of the default 3 attributes. If the value is nil, candidate fonts might be rejected if the don't have exactly the same values of attributes as the face requests. This variable exists for debugging of the font-selection process, and we advise not to change it otherwise.Semacs.o Finvocation-name Return the program name that was used to run Emacs. Any directory names are omitted. (fn)Finvocation-directory Return the directory name in which the Emacs executable was located. (fn)Fkill-emacs Exit the Emacs job and kill it. If ARG is an integer, return ARG as the exit program code. If ARG is a string, stuff it as keyboard input. Any other value of ARG, or ARG omitted, means return an exit code that indicates successful program termination. If RESTART is non-nil, instead of just exiting at the end, start a new Emacs process, using the same command line arguments as the currently running Emacs process. This function is called upon receipt of the signals SIGTERM or SIGHUP, and upon SIGINT in batch mode. The value of `kill-emacs-hook', if not void, is a list of functions (of no args), all of which are called before Emacs is actually killed. (fn &optional ARG RESTART)Fdump-emacs Dump current state of Emacs into executable file FILENAME. Take symbols from SYMFILE (presumably the file you executed to run Emacs). This is used in the file `loadup.el' when building Emacs. You must run Emacs in batch mode in order to dump it. (fn FILENAME SYMFILE)Fdaemonp Return non-nil if the current emacs process is a daemon. If the daemon was given a name argument, return that name. (fn)Fdaemon-initialized Mark the Emacs daemon as being initialized. This finishes the daemonization process by doing the other half of detaching from the parent process and its tty file descriptors. (fn)Vcommand-line-args Args passed by shell to Emacs, as a list of strings. Many arguments are deleted from the list as they are processed.Vsystem-type The value is a symbol indicating the type of operating system you are using. Special values: `gnu' compiled for a GNU Hurd system. `gnu/linux' compiled for a GNU/Linux system. `gnu/kfreebsd' compiled for a GNU system with a FreeBSD kernel. `darwin' compiled for Darwin (GNU-Darwin, macOS, ...). `ms-dos' compiled as an MS-DOS application. `windows-nt' compiled as a native W32 application. `cygwin' compiled using the Cygwin library. `haiku' compiled for a Haiku system. Anything else (in Emacs 26, the possibilities are: aix, berkeley-unix, hpux, usg-unix-v) indicates some sort of Unix system.Vsystem-configuration Value is string indicating configuration Emacs was built for.Vsystem-configuration-options String containing the configuration options Emacs was built with.Vsystem-configuration-features String listing some of the main features this Emacs was compiled with. An element of the form "FOO" generally means that HAVE_FOO was defined during the build. This is mainly intended for diagnostic purposes in bug reports. Don't rely on it for testing whether a feature you want to use is available.Vnoninteractive Non-nil means Emacs is running without interactive terminal.Vkill-emacs-hook Hook run when `kill-emacs' is called. Since `kill-emacs' may be invoked when the terminal is disconnected (or in other similar situations), functions placed on this hook should not expect to be able to interact with the user. To ask for confirmation, see `kill-emacs-query-functions' instead. Before Emacs 24.1, the hook was not run in batch mode, i.e., if `noninteractive' was non-nil.Vpath-separator String containing the character that separates directories in search paths, such as PATH and other similar environment variables.Vinvocation-name The program name that was used to run Emacs. Any directory names are omitted.Vinvocation-directory The directory in which the Emacs executable was found, to run it. The value is nil if that directory's name is not known.Vinstallation-directory A directory within which to look for the `lib-src' and `etc' directories. In an installed Emacs, this is normally nil. It is non-nil if both `lib-src' (on MS-DOS, `info') and `etc' directories are found within the variable `invocation-directory' or its parent. For example, this is the case when running an uninstalled Emacs executable from its build directory.Vsystem-messages-locale System locale for messages.Vsystem-time-locale System locale for time.Vbefore-init-time Value of `current-time' before Emacs begins initialization.Vafter-init-time Value of `current-time' after loading the init files. This is nil during initialization.Vinhibit-x-resources If non-nil, X resources, Windows Registry settings, and NS defaults are not used.Vemacs-copyright Short copyright string for this version of Emacs.Vemacs-version Version numbers of this version of Emacs. This has the form: MAJOR.MINOR[.MICRO], where MAJOR/MINOR/MICRO are integers. MICRO is only present in unreleased development versions, and is not especially meaningful. Prior to Emacs 26.1, an extra final component .BUILD is present. This is now stored separately in `emacs-build-number'.Vreport-emacs-bug-address Address of mailing list for GNU Emacs bugs.Vdump-mode Non-nil when Emacs is dumping itself.Vdynamic-library-alist Alist of dynamic libraries vs external files implementing them. Each element is a list (LIBRARY FILE...), where the car is a symbol representing a supported external library, and the rest are strings giving alternate filenames for that library. Emacs tries to load the library from the files in the order they appear on the list; if none is loaded, the running session of Emacs won't have access to that library. Note that image types `pbm' and `xbm' do not need entries in this variable because they do not depend on external libraries and are always available. Also note that this is not a generic facility for accessing external libraries; only those already known by Emacs will be loaded.Skeyboard.o Frecursive-edit Invoke the editor command loop recursively. To get out of the recursive edit, a command can throw to `exit' -- for instance (throw \='exit nil). The following values (last argument to `throw') can be used when throwing to \='exit: - t causes `recursive-edit' to quit, so that control returns to the command loop one level up. - A string causes `recursive-edit' to signal an error, printing that string as the error message. - A function causes `recursive-edit' to call that function with no arguments, and then return normally. - Any other value causes `recursive-edit' to return normally to the function that called it. This function is called by the editor initialization to begin editing. (fn)Fcommand-error-default-function Produce default output for unhandled error message. Default value of `command-error-function'. (fn DATA CONTEXT SIGNAL)Ftop-level Exit all recursive editing levels. This also exits all active minibuffers. (fn)Fexit-recursive-edit Exit from the innermost recursive edit or minibuffer. (fn)Fabort-recursive-edit Abort the command that requested this recursive edit or minibuffer input. (fn)Finternal--track-mouse Call BODYFUN with mouse movement events enabled. (fn BODYFUN)Fcurrent-idle-time Return the current length of Emacs idleness, or nil. The value when Emacs is idle is a Lisp timestamp in the style of `current-time'. The value when Emacs is not idle is nil. If the value is a list of four integers (HIGH LOW USEC PSEC), then PSEC is a multiple of the system clock resolution. (fn)Finternal-event-symbol-parse-modifiers Parse the event symbol. For internal use. (fn SYMBOL)Fevent-convert-list Convert the event description list EVENT-DESC to an event type. EVENT-DESC should contain one base event type (a character or symbol) and zero or more modifier names (control, meta, hyper, super, shift, alt, drag, down, double or triple). The base must be last. The return value is an event type (a character or symbol) which has essentially the same base event type and all the specified modifiers. (Some compatibility base types, like symbols that represent a character, are not returned verbatim.) (fn EVENT-DESC)Finternal-handle-focus-in Internally handle focus-in events. This function potentially generates an artificial switch-frame event. (fn EVENT)Fread-key-sequence Read a sequence of keystrokes and return as a string or vector. The sequence is sufficient to specify a non-prefix command in the current local and global maps. First arg PROMPT is a prompt string. If nil, do not prompt specially. Second (optional) arg CONTINUE-ECHO, if non-nil, means this key echos as a continuation of the previous key. The third (optional) arg DONT-DOWNCASE-LAST, if non-nil, means do not convert the last event to lower case. (Normally any upper case event is converted to lower case if the original event is undefined and the lower case equivalent is defined.) A non-nil value is appropriate for reading a key sequence to be defined. A C-g typed while in this function is treated like any other character, and `quit-flag' is not set. If the key sequence starts with a mouse click, then the sequence is read using the keymaps of the buffer of the window clicked in, not the buffer of the selected window as normal. `read-key-sequence' drops unbound button-down events, since you normally only care about the click or drag events which follow them. If a drag or multi-click event is unbound, but the corresponding click event would be bound, `read-key-sequence' turns the event into a click event at the drag's starting position. This means that you don't have to distinguish between click and drag, double, or triple events unless you want to. `read-key-sequence' prefixes mouse events on mode lines, the vertical lines separating windows, and scroll bars with imaginary keys `mode-line', `vertical-line', and `vertical-scroll-bar'. Optional fourth argument CAN-RETURN-SWITCH-FRAME non-nil means that this function will process a switch-frame event if the user switches frames before typing anything. If the user switches frames in the middle of a key sequence, or at the start of the sequence but CAN-RETURN-SWITCH-FRAME is nil, then the event will be put off until after the current key sequence. `read-key-sequence' checks `function-key-map' for function key sequences, where they wouldn't conflict with ordinary bindings. See `function-key-map' for more details. The optional fifth argument CMD-LOOP, if non-nil, means that this key sequence is being read by something that will read commands one after another. It should be nil if the caller will read just one key sequence. (fn PROMPT &optional CONTINUE-ECHO DONT-DOWNCASE-LAST CAN-RETURN-SWITCH-FRAME CMD-LOOP)Fread-key-sequence-vector Like `read-key-sequence' but always return a vector. (fn PROMPT &optional CONTINUE-ECHO DONT-DOWNCASE-LAST CAN-RETURN-SWITCH-FRAME CMD-LOOP)Finput-pending-p Return t if command input is currently available with no wait. Actually, the value is nil only if we can be sure that no input is available; if there is a doubt, the value is t. If CHECK-TIMERS is non-nil, timers that are ready to run will do so. (fn &optional CHECK-TIMERS)Flossage-size Return or set the maximum number of keystrokes to save. If called with a non-nil ARG, set the limit to ARG and return it. Otherwise, return the current limit. The saved keystrokes are shown by `view-lossage'. (fn &optional ARG)Frecent-keys Return vector of last few events, not counting those from keyboard macros. If INCLUDE-CMDS is non-nil, include the commands that were run, represented as pseudo-events of the form (nil . COMMAND). (fn &optional INCLUDE-CMDS)Fthis-command-keys Return the key sequence that invoked this command. However, if the command has called `read-key-sequence', it returns the last key sequence that has been read. The value is a string or a vector. See also `this-command-keys-vector'. (fn)Fset--this-command-keys Set the vector to be returned by `this-command-keys'. The argument KEYS must be a string. Internal use only. (fn KEYS)Fthis-command-keys-vector Return the key sequence that invoked this command, as a vector. However, if the command has called `read-key-sequence', it returns the last key sequence that has been read. See also `this-command-keys'. (fn)Fthis-single-command-keys Return the key sequence that invoked this command. More generally, it returns the last key sequence read, either by the command loop or by `read-key-sequence'. The value is always a vector. (fn)Fthis-single-command-raw-keys Return the raw events that were read for this command. More generally, it returns the last key sequence read, either by the command loop or by `read-key-sequence'. Unlike `this-single-command-keys', this function's value shows the events before all translations (except for input methods). The value is always a vector. (fn)Fclear-this-command-keys Clear out the vector that `this-command-keys' returns. Also clear the record of the last 300 input events, unless optional arg KEEP-RECORD is non-nil. (fn &optional KEEP-RECORD)Frecursion-depth Return the current depth in recursive edits. (fn)Fopen-dribble-file Start writing input events to a dribble file called FILE. Any previously open dribble file will be closed first. If FILE is nil, just close the dribble file, if any. If the file is still open when Emacs exits, it will be closed then. The events written to the file include keyboard and mouse input events, but not events from executing keyboard macros. The events are written to the dribble file immediately without line buffering. Be aware that this records ALL characters you type! This may include sensitive information such as passwords. (fn FILE)Fdiscard-input Discard the contents of the terminal input buffer. Also end any kbd macro being defined. (fn)Fsuspend-emacs Stop Emacs and return to superior process. You can resume later. If `cannot-suspend' is non-nil, or if the system doesn't support job control, run a subshell instead. If optional arg STUFFSTRING is non-nil, its characters are stuffed to be read as terminal input by Emacs's parent, after suspension. Before suspending, run the normal hook `suspend-hook'. After resumption run the normal hook `suspend-resume-hook'. Some operating systems cannot stop the Emacs process and resume it later. On such systems, Emacs starts a subshell instead of suspending. (fn &optional STUFFSTRING)Fset-input-interrupt-mode Set interrupt mode of reading keyboard input. If INTERRUPT is non-nil, Emacs will use input interrupts; otherwise Emacs uses CBREAK mode. See also `current-input-mode'. (fn INTERRUPT)Fset-output-flow-control Enable or disable ^S/^Q flow control for output to TERMINAL. If FLOW is non-nil, flow control is enabled and you cannot use C-s or C-q in key sequences. This setting only has an effect on tty terminals and only when Emacs reads input in CBREAK mode; see `set-input-interrupt-mode'. See also `current-input-mode'. (fn FLOW &optional TERMINAL)Fset-input-meta-mode Enable or disable 8-bit input on TERMINAL. If META is t, Emacs will accept 8-bit input, and interpret the 8th bit as the Meta modifier before it decodes the characters. If META is `encoded', Emacs will interpret the 8th bit of single-byte characters after decoding the characters. If META is nil, Emacs will ignore the top bit, on the assumption it is parity. Otherwise, Emacs will accept and pass through 8-bit input without specially interpreting the top bit. This setting only has an effect on tty terminal devices. Optional parameter TERMINAL specifies the tty terminal device to use. It may be a terminal object, a frame, or nil for the terminal used by the currently selected frame. See also `current-input-mode'. (fn META &optional TERMINAL)Fset-quit-char Specify character used for quitting. QUIT must be an ASCII character. This function only has an effect on the controlling tty of the Emacs process. See also `current-input-mode'. (fn QUIT)Fset-input-mode Set mode of reading keyboard input. First arg INTERRUPT non-nil means use input interrupts; nil means use CBREAK mode. Second arg FLOW non-nil means use ^S/^Q flow control for output to terminal (no effect except in CBREAK mode). Third arg META t means accept 8-bit input (for a Meta key). META nil means ignore the top bit, on the assumption it is parity. META `encoded' means accept 8-bit input and interpret Meta after decoding the input characters. Otherwise, accept 8-bit input and don't use the top bit for Meta. Optional fourth arg QUIT if non-nil specifies character to use for quitting. See also `current-input-mode'. (fn INTERRUPT FLOW META &optional QUIT)Fcurrent-input-mode Return information about the way Emacs currently reads keyboard input. The value is a list of the form (INTERRUPT FLOW META QUIT), where INTERRUPT is non-nil if Emacs is using interrupt-driven input; if nil, Emacs is using CBREAK mode. FLOW is non-nil if Emacs uses ^S/^Q flow control for output to the terminal; this does not apply if Emacs uses interrupt-driven input. META is t if accepting 8-bit unencoded input with 8th bit as Meta flag. META is `encoded' if accepting 8-bit encoded input with 8th bit as Meta flag which has to be interpreted after decoding the input. META is nil if ignoring the top bit of input, on the assumption that it is a parity bit. META is neither t nor nil if accepting 8-bit input and using all 8 bits as the character code. QUIT is the character Emacs currently uses to quit. The elements of this list correspond to the arguments of `set-input-mode'. (fn)Fposn-at-x-y Return position information for pixel coordinates X and Y. By default, X and Y are relative to text area of the selected window. Note that the text area includes the header-line and the tab-line of the window, if any of them are present. Optional third arg FRAME-OR-WINDOW non-nil specifies frame or window. If optional fourth arg WHOLE is non-nil, X is relative to the left edge of the window. The return value is similar to a mouse click position: (WINDOW AREA-OR-POS (X . Y) TIMESTAMP OBJECT POS (COL . ROW) IMAGE (DX . DY) (WIDTH . HEIGHT)) The `posn-' functions access elements of such lists. (fn X Y &optional FRAME-OR-WINDOW WHOLE)Fposn-at-point Return position information for buffer position POS in WINDOW. POS defaults to point in WINDOW; WINDOW defaults to the selected window. If POS is in invisible text or is hidden by `display' properties, this function may report on buffer positions before or after POS. Return nil if POS is not visible in WINDOW. Otherwise, the return value is similar to that returned by `event-start' for a mouse click at the upper left corner of the glyph corresponding to POS: (WINDOW AREA-OR-POS (X . Y) TIMESTAMP OBJECT POS (COL . ROW) IMAGE (DX . DY) (WIDTH . HEIGHT)) The `posn-' functions access elements of such lists. (fn &optional POS WINDOW)Vinternal--top-level-message Message displayed by `normal-top-level'.Vlast-command-event Last input event of a key sequence that called a command. See Info node `(elisp)Command Loop Info'.Vlast-nonmenu-event Last input event in a command, except for mouse menu events. Mouse menus give back keys that don't look like mouse events; this variable holds the actual mouse event that led to the menu, so that you can determine whether the command was run by mouse or not.Vlast-input-event Last input event.Vunread-command-events List of events to be read as the command input. These events are processed first, before actual keyboard input. Events read from this list are not normally added to `this-command-keys', as they will already have been added once as they were read for the first time. An element of the form (t . EVENT) forces EVENT to be added to that list. An element of the form (no-record . EVENT) means process EVENT, but do not record it in the keyboard macros, recent-keys, and the dribble file.Vunread-post-input-method-events List of events to be processed as input by input methods. These events are processed before `unread-command-events' and actual keyboard input, but are not given to `input-method-function'.Vunread-input-method-events List of events to be processed as input by input methods. These events are processed after `unread-command-events', but before actual keyboard input. If there's an active input method, the events are given to `input-method-function'.Vmeta-prefix-char Meta-prefix character code. Meta-foo as command input turns into this character followed by foo.Vlast-command The last command executed. Normally a symbol with a function definition, but can be whatever was found in the keymap, or whatever the variable `this-command' was set to by that command. The value `mode-exit' is special; it means that the previous command read an event that told it to exit, and it did so and unread that event. In other words, the present command is the event that made the previous command exit. The value `kill-region' is special; it means that the previous command was a kill command. `last-command' has a separate binding for each terminal device. See Info node `(elisp)Multiple Terminals'.Vreal-last-command Same as `last-command', but never altered by Lisp code. Taken from the previous value of `real-this-command'.Vlast-repeatable-command Last command that may be repeated. The last command executed that was not bound to an input event. This is the command `repeat' will try to repeat. Taken from a previous value of `real-this-command'.Vthis-command The command now being executed. The command can set this variable; whatever is put here will be in `last-command' during the following command.Vreal-this-command This is like `this-command', except that commands should never modify it.Vcurrent-minibuffer-command This is like `this-command', but bound recursively. Code running from (for instance) a minibuffer hook can check this variable to see what command invoked the current minibuffer.Vthis-command-keys-shift-translated Non-nil if the key sequence activating this command was shift-translated. Shift-translation occurs when there is no binding for the key sequence as entered, but a binding was found by changing an upper-case letter to lower-case, or a shifted function key to an unshifted one.Vthis-original-command The command bound to the current key sequence before remapping. It equals `this-command' if the original command was not remapped through any of the active keymaps. Otherwise, the value of `this-command' is the result of looking up the original command in the active keymaps.Vauto-save-interval Number of input events between auto-saves. Zero means disable autosaving due to number of characters typed.Vauto-save-no-message Non-nil means do not print any message when auto-saving.Vauto-save-timeout Number of seconds idle time before auto-save. Zero or nil means disable auto-saving due to idleness. After auto-saving due to this many seconds of idle time, Emacs also does a garbage collection if that seems to be warranted.Vecho-keystrokes Nonzero means echo unfinished commands after this many seconds of pause. The value may be integer or floating point. If the value is zero, don't echo at all.Vpolling-period Interval between polling for input during Lisp execution. The reason for polling is to make C-g work to stop a running program. Polling is needed only when using X windows and SIGIO does not work. Polling is automatically disabled in all other cases.Vdouble-click-time Maximum time between mouse clicks to make a double-click. Measured in milliseconds. The value nil means disable double-click recognition; t means double-clicks have no time limit and are detected by position only. In Lisp, you might want to use `mouse-double-click-time' instead of reading the value of this variable directly.Vdouble-click-fuzz Maximum mouse movement between clicks to make a double-click. On window-system frames, value is the number of pixels the mouse may have moved horizontally or vertically between two clicks to make a double-click. On non window-system frames, value is interpreted in units of 1/8 characters instead of pixels. This variable is also the threshold for motion of the mouse to count as a drag.Vnum-input-keys Number of complete key sequences read as input so far. This includes key sequences read from keyboard macros. The number is effectively the number of interactive command invocations.Vnum-nonmacro-input-events Number of input events read from the keyboard so far. This does not include events generated by keyboard macros.Vlast-event-frame The frame in which the most recently read event occurred. If the last event came from a keyboard macro, this is set to `macro'.Vlast-event-device The name of the input device of the most recently read event. When the input extension is being used on X, this is the name of the X Input Extension device from which the last event was generated as a string. Otherwise, this is "Virtual core keyboard" for keyboard input events, and "Virtual core pointer" for other events. It is nil if the last event did not come from an input device (i.e. it came from `unread-command-events' instead).Vtty-erase-char The ERASE character as set by the user with stty.Vhelp-char Character to recognize as meaning Help. When it is read, do `(eval help-form)', and display result if it's a string. If the value of `help-form' is nil, this char can be read normally.Vhelp-event-list List of input events to recognize as meaning Help. These work just like the value of `help-char' (see that).Vhelp-form Form to execute when character `help-char' is read. If the form returns a string, that string is displayed. If `help-form' is nil, the help char is not recognized.Vprefix-help-command Command to run when `help-char' character follows a prefix key. This command is used only when there is no actual binding for that character after that prefix key.Vtop-level Form to evaluate when Emacs starts up. Useful to set before you dump a modified Emacs.Vkeyboard-translate-table Translate table for local keyboard input, or nil. If non-nil, the value should be a char-table. Each character read from the keyboard is looked up in this char-table. If the value found there is non-nil, then it is used instead of the actual input character. The value can also be a string or vector, but this is considered obsolete. If it is a string or vector of length N, character codes N and up are left untranslated. In a vector, an element which is nil means "no translation". This is applied to the characters supplied to input methods, not their output. See also `translation-table-for-input'. This variable has a separate binding for each terminal. See Info node `(elisp)Multiple Terminals'.Vcannot-suspend Non-nil means to always spawn a subshell instead of suspending. (Even if the operating system has support for stopping a process.)Vmenu-prompting Non-nil means prompt with menus when appropriate. This is done when reading from a keymap that has a prompt string, for elements that have prompt strings. The menu is displayed on the screen if X menus were enabled at configuration time and the previous event was a mouse click prefix key. Otherwise, menu prompting uses the echo area.Vmenu-prompt-more-char Character to see next line of menu prompt. Type this character while in a menu prompt to rotate around the lines of it.Vextra-keyboard-modifiers A mask of additional modifier keys to use with every keyboard character. Emacs applies the modifiers of the character stored here to each keyboard character it reads. For example, after evaluating the expression (setq extra-keyboard-modifiers ?\C-x) all input characters will have the control modifier applied to them. Note that the character ?\C-@, equivalent to the integer zero, does not count as a control character; rather, it counts as a character with no modifiers; thus, setting `extra-keyboard-modifiers' to zero cancels any modification.Vdeactivate-mark Whether to deactivate the mark after an editing command. The command loop sets this to nil before each command, and tests the value when the command returns. If an editing command sets this non-nil, deactivate the mark after the command returns. Buffer modifications store t in this variable. By default, deactivating the mark will save the contents of the region according to `select-active-regions', unless this is set to the symbol `dont-save'.Vpre-command-hook Normal hook run before each command is executed. If an unhandled error happens in running this hook, the function in which the error occurred is unconditionally removed, since otherwise the error might happen repeatedly and make Emacs nonfunctional. Note that, when `long-line-optimizations-p' is non-nil in the buffer, these functions are called as if they were in a `with-restriction' form, with a `long-line-optimizations-in-command-hooks' label and with the buffer narrowed to a portion around point whose size is specified by `long-line-optimizations-region-size'. See also `post-command-hook'.Vpost-command-hook Normal hook run after each command is executed. If an unhandled error happens in running this hook, the function in which the error occurred is unconditionally removed, since otherwise the error might happen repeatedly and make Emacs nonfunctional. It is a bad idea to use this hook for expensive processing. If unavoidable, wrap your code in `(while-no-input (redisplay) CODE)' to avoid making Emacs unresponsive while the user types. Note that, when `long-line-optimizations-p' is non-nil in the buffer, these functions are called as if they were in a `with-restriction' form, with a `long-line-optimizations-in-command-hooks' label and with the buffer narrowed to a portion around point whose size is specified by `long-line-optimizations-region-size'. See also `pre-command-hook'.Vecho-area-clear-hook Normal hook run when clearing the echo area.Vlucid--menu-grab-keyboard If non-nil, grab keyboard during menu operations. This is only relevant when using the Lucid X toolkit. It can be convenient to disable this for debugging purposes.Vmenu-bar-final-items List of menu bar items to move to the end of the menu bar. The elements of the list are event types that may have menu bar bindings. The order of this list controls the order of the items.Vtab-bar-separator-image-expression Expression evaluating to the image spec for a tab-bar separator. This is used internally by graphical displays that do not render tab-bar separators natively. Otherwise it is unused (e.g. on GTK).Vtool-bar-separator-image-expression Expression evaluating to the image spec for a tool-bar separator. This is used internally by graphical displays that do not render tool-bar separators natively. Otherwise it is unused (e.g. on GTK).Voverriding-terminal-local-map Per-terminal keymap that takes precedence over all other keymaps. This variable is intended to let commands such as `universal-argument' set up a different keymap for reading the next command. `overriding-terminal-local-map' has a separate binding for each terminal device. See Info node `(elisp)Multiple Terminals'.Voverriding-local-map Keymap that replaces (overrides) local keymaps. If this variable is non-nil, Emacs looks up key bindings in this keymap INSTEAD OF `keymap' text properties, `local-map' and `keymap' overlay properties, minor mode maps, and the buffer's local map. Hence, the only active keymaps would be `overriding-terminal-local-map', this keymap, and `global-keymap', in order of precedence.Voverriding-local-map-menu-flag Non-nil means `overriding-local-map' applies to the menu bar. Otherwise, the menu bar continues to reflect the buffer's local map and the minor mode maps regardless of `overriding-local-map'.Vspecial-event-map Keymap defining bindings for special events to execute at low level.Vtrack-mouse Non-nil means generate motion events for mouse motion. The special values `dragging' and `dropping' assert that the mouse cursor retains its appearance during mouse motion. Any non-nil value but `dropping' or `drag-source' asserts that motion events always relate to the frame where the mouse movement started. The value `dropping' asserts that motion events relate to the frame where the mouse cursor is seen when generating the event. If there's no such frame, such motion events relate to the frame where the mouse movement started. The value `drag-source' is like `dropping', but the `posn-window' will be nil in mouse position lists inside mouse movement events if there is no frame directly visible underneath the mouse pointer.Vsystem-key-alist Alist of system-specific X windows key symbols. Each element should have the form (N . SYMBOL) where N is the numeric keysym code (sans the "system-specific" bit 1<<28) and SYMBOL is its name. `system-key-alist' has a separate binding for each terminal device. See Info node `(elisp)Multiple Terminals'.Vlocal-function-key-map Keymap that translates key sequences to key sequences during input. This is used mainly for mapping key sequences into some preferred key events (symbols). The `read-key-sequence' function replaces any subsequence bound by `local-function-key-map' with its binding. More precisely, when the active keymaps have no binding for the current key sequence but `local-function-key-map' binds a suffix of the sequence to a vector or string, `read-key-sequence' replaces the matching suffix with its binding, and continues with the new sequence. If the binding is a function, it is called with one argument (the prompt) and its return value (a key sequence) is used. The events that come from bindings in `local-function-key-map' are not themselves looked up in `local-function-key-map'. For example, suppose `local-function-key-map' binds `ESC O P' to [f1]. Typing `ESC O P' to `read-key-sequence' would return [f1]. Typing `C-x ESC O P' would return [?\C-x f1]. If [f1] were a prefix key, typing `ESC O P x' would return [f1 x]. `local-function-key-map' has a separate binding for each terminal device. See Info node `(elisp)Multiple Terminals'. If you need to define a binding on all terminals, change `function-key-map' instead. Initially, `local-function-key-map' is an empty keymap that has `function-key-map' as its parent on all terminal devices.Vinput-decode-map Keymap that decodes input escape sequences. This is used mainly for mapping ASCII function key sequences into real Emacs function key events (symbols). The `read-key-sequence' function replaces any subsequence bound by `input-decode-map' with its binding. Contrary to `function-key-map', this map applies its rebinding regardless of the presence of an ordinary binding. So it is more like `key-translation-map' except that it applies before `function-key-map' rather than after. If the binding is a function, it is called with one argument (the prompt) and its return value (a key sequence) is used. The events that come from bindings in `input-decode-map' are not themselves looked up in `input-decode-map'.Vfunction-key-map The parent keymap of all `local-function-key-map' instances. Function key definitions that apply to all terminal devices should go here. If a mapping is defined in both the current `local-function-key-map' binding and this variable, then the local definition will take precedence.Vkey-translation-map Keymap of key translations that can override keymaps. This keymap works like `input-decode-map', but comes after `function-key-map'. Another difference is that it is global rather than terminal-local.Vdelayed-warnings-list List of warnings to be displayed after this command. Each element must be a list (TYPE MESSAGE [LEVEL [BUFFER-NAME]]), as per the args of `display-warning' (which see). If this variable is non-nil, `delayed-warnings-hook' will be run immediately after running `post-command-hook'.Vtimer-list List of active absolute time timers in order of increasing time.Vtimer-idle-list List of active idle-time timers in order of increasing time.Vinput-method-function If non-nil, the function that implements the current input method. It's called with one argument, which must be a single-byte character that was just read. Any single-byte character is acceptable, except the DEL character, codepoint 127 decimal, 177 octal. Typically this function uses `read-event' to read additional events. When it does so, it should first bind `input-method-function' to nil so it will not be called recursively. The function should return a list of zero or more events to be used as input. If it wants to put back some events to be reconsidered, separately, by the input method, it can add them to the beginning of `unread-command-events'. The input method function can find in `input-method-previous-message' the previous echo area message. The input method function should refer to the variables `input-method-use-echo-area' and `input-method-exit-on-first-char' for guidance on what to do.Vinput-method-previous-message When `input-method-function' is called, hold the previous echo area message. This variable exists because `read-event' clears the echo area before running the input method. It is nil if there was no message.Vshow-help-function If non-nil, the function that implements the display of help. It's called with one argument, the help string to display.Vdisable-point-adjustment If non-nil, suppress point adjustment after executing a command. After a command is executed, if point moved into a region that has special properties (e.g. composition, display), Emacs adjusts point to the boundary of the region. But when a command leaves this variable at a non-nil value (e.g., with a setq), this point adjustment is suppressed. This variable is set to nil before reading a command, and is checked just after executing the command.Vglobal-disable-point-adjustment If non-nil, always suppress point adjustments. The default value is nil, in which case point adjustments are suppressed only after special commands that leave `disable-point-adjustment' (which see) at a non-nil value.Vminibuffer-message-timeout How long to display an echo-area message when the minibuffer is active. If the value is a number, it should be specified in seconds. If the value is not a number, such messages never time out.Vthrow-on-input If non-nil, any keyboard input throws to this symbol. The value of that variable is passed to `quit-flag' and later causes a peculiar kind of quitting.Vcommand-error-function Function to output error messages. Called with three arguments: - the error data, a list of the form (SIGNALED-CONDITION . SIGNAL-DATA) such as what `condition-case' would bind its variable to, - the context (a string which normally goes at the start of the message), - the Lisp function within which the error was signaled. For instance, to make error messages stand out more in the echo area, you could say something like: (setq command-error-function (lambda (data _ _) (message "%s" (propertize (error-message-string data) \='face \='error)))) Also see `set-message-function' (which controls how non-error messages are displayed).Venable-disabled-menus-and-buttons If non-nil, don't ignore events produced by disabled menu items and tool-bar. Help functions bind this to allow help on disabled menu items and tool-bar buttons.Vselect-active-regions If non-nil, any active region automatically sets the primary selection. This variable only has an effect when Transient Mark mode is enabled. If the value is `only', only temporarily active regions (usually made by mouse-dragging or shift-selection) set the window system's primary selection. If this variable causes the region to be set as the primary selection, `post-select-region-hook' is then run afterwards.Vsaved-region-selection Contents of active region prior to buffer modification. If `select-active-regions' is non-nil, Emacs sets this to the text in the region before modifying the buffer. The next call to the function `deactivate-mark' uses this to set the window selection.Vselection-inhibit-update-commands List of commands which should not update the selection. Normally, if `select-active-regions' is non-nil and the mark remains active after a command (i.e. the mark was not deactivated), the Emacs command loop sets the selection to the text in the region. However, if the command is in this list, the selection is not updated.Vdebug-on-event Enter debugger on this event. When Emacs receives the special event specified by this variable, it will try to break into the debugger as soon as possible instead of processing the event normally through `special-event-map'. Currently, the only supported values for this variable are `sigusr1' and `sigusr2'.Vattempt-stack-overflow-recovery If non-nil, attempt to recover from C stack overflows. This recovery is potentially unsafe and may lead to deadlocks or data corruption, but it usually works and may preserve modified buffers that would otherwise be lost. If nil, treat stack overflow like any other kind of crash or fatal error.Vattempt-orderly-shutdown-on-fatal-signal If non-nil, attempt orderly shutdown on fatal signals. By default this variable is non-nil, and Emacs attempts to perform an orderly shutdown when it catches a fatal signal (e.g., a crash). The orderly shutdown includes an attempt to auto-save your unsaved edits and other useful cleanups. These cleanups are potentially unsafe and may lead to deadlocks or data corruption, but it usually works and may preserve data in modified buffers that would otherwise be lost. If nil, Emacs crashes immediately in response to fatal signals.Vwhile-no-input-ignore-events Ignored events from `while-no-input'. Events in this list do not count as pending input while running `while-no-input' and do not cause any idle timers to get reset when they occur.Vtranslate-upper-case-key-bindings If non-nil, interpret upper case keys as lower case (when applicable). Emacs allows binding both upper and lower case key sequences to commands. However, if there is a lower case key sequence bound to a command, and the user enters an upper case key sequence that is not bound to a command, Emacs will use the lower case binding. Setting this variable to nil inhibits this behavior.Vinput-pending-p-filter-events If non-nil, `input-pending-p' ignores some input events. If this variable is non-nil (the default), `input-pending-p' and other similar functions ignore input events in `while-no-input-ignore-events'. This flag may eventually be removed once this behavior is deemed safe.Vmwheel-coalesce-scroll-events Non-nil means send a wheel event only for scrolling at least one screen line. Otherwise, a wheel event will be sent every time the mouse wheel is moved.Vdisplay-monitors-changed-functions Abnormal hook run when the monitor configuration changes. This can happen if a monitor is rotated, moved, plugged in or removed from a multi-monitor setup, if the primary monitor changes, or if the resolution of a monitor changes. The hook should accept a single argument, which is the terminal on which the monitor configuration changed.Vinhibit--record-char If non-nil, don't record input events. This inhibits recording input events for the purposes of keyboard macros, dribble file, and `recent-keys'. Internal use only.Vrecord-all-keys Non-nil means record all keys you type. When nil, the default, characters typed as part of passwords are not recorded. The non-nil value countermands `inhibit--record-char', which see.Vpost-select-region-hook Abnormal hook run after the region is selected. This usually happens as a result of `select-active-regions'. The hook is called with one argument, the string that was selected.Smacros.o Fstart-kbd-macro Record subsequent keyboard input, defining a keyboard macro. The commands are recorded even as they are executed. Use \[end-kbd-macro] to finish recording and make the macro available. Use \[name-last-kbd-macro] to give it a permanent name. Non-nil arg (prefix arg) means append to last macro defined; this begins by re-executing that macro as if you typed it again. If optional second arg, NO-EXEC, is non-nil, do not re-execute last macro before appending to it. (fn APPEND &optional NO-EXEC)Fend-kbd-macro Finish defining a keyboard macro. The definition was started by \[start-kbd-macro]. The macro is now available for use via \[call-last-kbd-macro], or it can be given a name with \[name-last-kbd-macro] and then invoked under that name. With numeric arg, repeat macro now that many times, counting the definition just completed as the first repetition. An argument of zero means repeat until error. In Lisp, optional second arg LOOPFUNC may be a function that is called prior to each iteration of the macro. Iteration stops if LOOPFUNC returns nil. (fn &optional REPEAT LOOPFUNC)Fcancel-kbd-macro-events Cancel the events added to a keyboard macro for this command. (fn)Fstore-kbd-macro-event Store EVENT into the keyboard macro being defined. (fn EVENT)Fcall-last-kbd-macro Call the last keyboard macro that you defined with \[start-kbd-macro]. A prefix argument serves as a repeat count. Zero means repeat until error. To make a macro permanent so you can call it even after defining others, use \[name-last-kbd-macro]. In Lisp, optional second arg LOOPFUNC may be a function that is called prior to each iteration of the macro. Iteration stops if LOOPFUNC returns nil. (fn &optional PREFIX LOOPFUNC)Fexecute-kbd-macro Execute MACRO as a sequence of events. If MACRO is a string or vector, then the events in it are executed exactly as if they had been input by the user. If MACRO is a symbol, its function definition is used. If that is another symbol, this process repeats. Eventually the result should be a string or vector. If the result is not a symbol, string, or vector, an error is signaled. COUNT is a repeat count, or nil for once, or 0 for infinite loop. Optional third arg LOOPFUNC may be a function that is called prior to each iteration of the macro. Iteration stops if LOOPFUNC returns nil. The buffer shown in the currently selected window will be made the current buffer before the macro is executed. (fn MACRO &optional COUNT LOOPFUNC)Vkbd-macro-termination-hook Normal hook run whenever a keyboard macro terminates. This is run whether the macro ends normally or prematurely due to an error.Vdefining-kbd-macro Non-nil while a keyboard macro is being defined. Don't set this! The value is the symbol `append' while appending to the definition of an existing macro.Vexecuting-kbd-macro Currently executing keyboard macro (string or vector). This is nil when not executing a keyboard macro.Vexecuting-kbd-macro-index Index in currently executing keyboard macro; undefined if none executing.Vlast-kbd-macro Last kbd macro defined, as a string or vector; nil if none defined.Skeymap.o Fmake-keymap Construct and return a new keymap, of the form (keymap CHARTABLE . ALIST). CHARTABLE is a char-table that holds the bindings for all characters without modifiers. All entries in it are initially nil, meaning "command undefined". ALIST is an assoc-list which holds bindings for function keys, mouse events, and any other things that appear in the input stream. Initially, ALIST is nil. The optional arg STRING supplies a menu name for the keymap in case you use it as a menu with `x-popup-menu'. (fn &optional STRING)Fmake-sparse-keymap Construct and return a new sparse keymap. Its car is `keymap' and its cdr is an alist of (CHAR . DEFINITION), which binds the character CHAR to DEFINITION, or (SYMBOL . DEFINITION), which binds the function key or mouse event SYMBOL to DEFINITION. Initially the alist is nil. The optional arg STRING supplies a menu name for the keymap in case you use it as a menu with `x-popup-menu'. (fn &optional STRING)Fkeymapp Return t if OBJECT is a keymap. A keymap is a list (keymap . ALIST), or a symbol whose function definition is itself a keymap. ALIST elements look like (CHAR . DEFN) or (SYMBOL . DEFN); a vector of densely packed bindings for small character codes is also allowed as an element. (fn OBJECT)Fkeymap-prompt Return the prompt-string of a keymap MAP. If non-nil, the prompt is shown in the echo-area when reading a key-sequence to be looked-up in this keymap. (fn MAP)Fkeymap-parent Return the parent keymap of KEYMAP. If KEYMAP has no parent, return nil. (fn KEYMAP)Fset-keymap-parent Modify KEYMAP to set its parent map to PARENT. Return PARENT. PARENT should be nil or another keymap. (fn KEYMAP PARENT)Fmap-keymap-internal Call FUNCTION once for each event binding in KEYMAP. FUNCTION is called with two arguments: the event that is bound, and the definition it is bound to. The event may be a character range. If KEYMAP has a parent, this function returns it without processing it. (fn FUNCTION KEYMAP)Fmap-keymap Call FUNCTION once for each event binding in KEYMAP. FUNCTION is called with two arguments: the event that is bound, and the definition it is bound to. The event may be a character range. If KEYMAP has a parent, the parent's bindings are included as well. This works recursively: if the parent has itself a parent, then the grandparent's bindings are also included and so on. For more information, see Info node `(elisp) Keymaps'. (fn FUNCTION KEYMAP)Fkeymap--get-keyelt Given OBJECT which was found in a slot in a keymap, trace indirect definitions to get the actual definition of that slot. An indirect definition is a list of the form (KEYMAP . INDEX), where KEYMAP is a keymap or a symbol defined as one and INDEX is the object to look up in KEYMAP to yield the definition. Also if OBJECT has a menu string as the first element, remove that. Also remove a menu help string as second element. If AUTOLOAD, load autoloadable keymaps that are referred to with indirection. (fn OBJECT AUTOLOAD)Fcopy-keymap Return a copy of the keymap KEYMAP. Note that this is almost never needed. If you want a keymap that's like another yet with a few changes, you should use keymap inheritance rather than copying. That is, something like: (defvar-keymap foo-map :parent ...) Or, if you need to support Emacs versions older than 29: (let ((map (make-sparse-keymap))) (set-keymap-parent map ) (define-key map ...) ...) After performing `copy-keymap', the copy starts out with the same definitions of KEYMAP, but changing either the copy or KEYMAP does not affect the other. Any key definitions that are subkeymaps are recursively copied. However, a key definition which is a symbol whose definition is a keymap is not copied. (fn KEYMAP)Fdefine-key In KEYMAP, define key sequence KEY as DEF. This is a legacy function; see `keymap-set' for the recommended function to use instead. KEYMAP is a keymap. KEY is a string or a vector of symbols and characters, representing a sequence of keystrokes and events. Non-ASCII characters with codes above 127 (such as ISO Latin-1) can be represented by vectors. Two types of vector have special meanings: [remap COMMAND] remaps any key binding for COMMAND. [t] creates a default definition, which applies to any event with no other definition in KEYMAP. DEF is anything that can be a key's definition: nil (means key is undefined in this keymap), a command (a Lisp function suitable for interactive calling), a string (treated as a keyboard macro), a keymap (to define a prefix key), a symbol (when the key is looked up, the symbol will stand for its function definition, which should at that time be one of the above, or another symbol whose function definition is used, etc.), a cons (STRING . DEFN), meaning that DEFN is the definition (DEFN should be a valid definition in its own right) and STRING is the menu item name (which is used only if the containing keymap has been created with a menu name, see `make-keymap'), or a cons (MAP . CHAR), meaning use definition of CHAR in keymap MAP, or an extended menu item definition. (See info node `(elisp)Extended Menu Items'.) If REMOVE is non-nil, the definition will be removed. This is almost the same as setting the definition to nil, but makes a difference if the KEYMAP has a parent, and KEY is shadowing the same binding in the parent. With REMOVE, subsequent lookups will return the binding in the parent, and with a nil DEF, the lookups will return nil. If KEYMAP is a sparse keymap with a binding for KEY, the existing binding is altered. If there is no binding for KEY, the new pair binding KEY to DEF is added at the front of KEYMAP. (fn KEYMAP KEY DEF &optional REMOVE)Fcommand-remapping Return the remapping for command COMMAND. Returns nil if COMMAND is not remapped (or not a symbol). If the optional argument POSITION is non-nil, it specifies a mouse position as returned by `event-start' and `event-end', and the remapping occurs in the keymaps associated with it. It can also be a number or marker, in which case the keymap properties at the specified buffer position instead of point are used. The KEYMAPS argument is ignored if POSITION is non-nil. If the optional argument KEYMAPS is non-nil, it should be a keymap or list of keymaps to search for command remapping. Otherwise, search for the remapping in all currently active keymaps. (fn COMMAND &optional POSITION KEYMAPS)Flookup-key Look up key sequence KEY in KEYMAP. Return the definition. This is a legacy function; see `keymap-lookup' for the recommended function to use instead. A value of nil means undefined. See doc of `define-key' for kinds of definitions. A number as value means KEY is "too long"; that is, characters or symbols in it except for the last one fail to be a valid sequence of prefix characters in KEYMAP. The number is how many characters at the front of KEY it takes to reach a non-prefix key. KEYMAP can also be a list of keymaps. Normally, `lookup-key' ignores bindings for t, which act as default bindings, used when nothing else in the keymap applies; this makes it usable as a general function for probing keymaps. However, if the third optional argument ACCEPT-DEFAULT is non-nil, `lookup-key' will recognize the default bindings, just as `read-key-sequence' does. (fn KEYMAP KEY &optional ACCEPT-DEFAULT)Fcurrent-active-maps Return a list of the currently active keymaps. OLP if non-nil indicates that we should obey `overriding-local-map' and `overriding-terminal-local-map'. POSITION can specify a click position like in the respective argument of `key-binding'. (fn &optional OLP POSITION)Fkey-binding Return the binding for command KEY in current keymaps. KEY is a string or vector, a sequence of keystrokes. The binding is probably a symbol with a function definition. Normally, `key-binding' ignores bindings for t, which act as default bindings, used when nothing else in the keymap applies; this makes it usable as a general function for probing keymaps. However, if the optional second argument ACCEPT-DEFAULT is non-nil, `key-binding' does recognize the default bindings, just as `read-key-sequence' does. Like the normal command loop, `key-binding' will remap the command resulting from looking up KEY by looking up the command in the current keymaps. However, if the optional third argument NO-REMAP is non-nil, `key-binding' returns the unmapped command. If KEY is a key sequence initiated with the mouse, the used keymaps will depend on the clicked mouse position with regard to the buffer and possible local keymaps on strings. If the optional argument POSITION is non-nil, it specifies a mouse position as returned by `event-start' and `event-end', and the lookup occurs in the keymaps associated with it instead of KEY. It can also be a number or marker, in which case the keymap properties at the specified buffer position instead of point are used. (fn KEY &optional ACCEPT-DEFAULT NO-REMAP POSITION)Fminor-mode-key-binding Find the visible minor mode bindings of KEY. Return an alist of pairs (MODENAME . BINDING), where MODENAME is the symbol which names the minor mode binding KEY, and BINDING is KEY's definition in that mode. In particular, if KEY has no minor-mode bindings, return nil. If the first binding is a non-prefix, all subsequent bindings will be omitted, since they would be ignored. Similarly, the list doesn't include non-prefix bindings that come after prefix bindings. If optional argument ACCEPT-DEFAULT is non-nil, recognize default bindings; see the description of `lookup-key' for more details about this. (fn KEY &optional ACCEPT-DEFAULT)Fuse-global-map Select KEYMAP as the global keymap. (fn KEYMAP)Fuse-local-map Select KEYMAP as the local keymap. If KEYMAP is nil, that means no local keymap. (fn KEYMAP)Fcurrent-local-map Return current buffer's local keymap, or nil if it has none. Normally the local keymap is set by the major mode with `use-local-map'. (fn)Fcurrent-global-map Return the current global keymap. (fn)Fcurrent-minor-mode-maps Return a list of keymaps for the minor modes of the current buffer. (fn)Faccessible-keymaps Find all keymaps accessible via prefix characters from KEYMAP. Returns a list of elements of the form (KEYS . MAP), where the sequence KEYS starting from KEYMAP gets you to MAP. These elements are ordered so that the KEYS increase in length. The first element is ([] . KEYMAP). An optional argument PREFIX, if non-nil, should be a key sequence; then the value includes only maps for prefixes that start with PREFIX. (fn KEYMAP &optional PREFIX)Fkey-description Return a pretty description of key-sequence KEYS. Optional arg PREFIX is the sequence of keys leading up to KEYS. For example, [?\C-x ?l] is converted into the string "C-x l". For an approximate inverse of this, see `kbd'. (fn KEYS &optional PREFIX)Fsingle-key-description Return a pretty description of a character event KEY. Control characters turn into C-whatever, etc. Optional argument NO-ANGLES non-nil means don't put angle brackets around function keys and event symbols. See `text-char-description' for describing character codes. (fn KEY &optional NO-ANGLES)Ftext-char-description Return the description of CHARACTER in standard Emacs notation. CHARACTER must be a valid character code that passes the `characterp' test. Control characters turn into "^char", and characters with Meta and other modifiers signal an error, as they are not valid character codes. This differs from `single-key-description' which accepts character events, and thus doesn't enforce the `characterp' condition, turns control characters into "C-char", and uses the 2**27 bit for Meta. See Info node `(elisp)Describing Characters' for examples. (fn CHARACTER)Fwhere-is-internal Return list of keys that invoke DEFINITION. If KEYMAP is a keymap, search only KEYMAP and the global keymap. If KEYMAP is nil, search all the currently active keymaps, except for `overriding-local-map' (which is ignored). If KEYMAP is a list of keymaps, search only those keymaps. If optional 3rd arg FIRSTONLY is non-nil, return the first key sequence found, rather than a list of all possible key sequences. If FIRSTONLY is the symbol `non-ascii', return the first binding found, no matter what it is. If FIRSTONLY has another non-nil value, prefer bindings that use the modifier key specified in `where-is-preferred-modifier' (or their meta variants) and entirely reject menu bindings. If optional 4th arg NOINDIRECT is non-nil, don't extract the commands inside menu-items. This makes it possible to search for a menu-item itself. The optional 5th arg NO-REMAP alters how command remapping is handled: - If another command OTHER-COMMAND is remapped to DEFINITION, normally search for the bindings of OTHER-COMMAND and include them in the returned list. But if NO-REMAP is non-nil, include the vector [remap OTHER-COMMAND] in the returned list instead, without searching for those other bindings. - If DEFINITION is remapped to OTHER-COMMAND, normally return the bindings for OTHER-COMMAND. But if NO-REMAP is non-nil, return the bindings for DEFINITION instead, ignoring its remapping. Keys that are represented as events that have a `non-key-event' non-nil symbol property are ignored. (fn DEFINITION &optional KEYMAP FIRSTONLY NOINDIRECT NO-REMAP)Fdescribe-buffer-bindings Insert the list of all defined keys and their definitions. The list is inserted in the current buffer, while the bindings are looked up in BUFFER. The optional argument PREFIX, if non-nil, should be a key sequence; then we display only bindings that start with that prefix. The optional argument MENUS, if non-nil, says to mention menu bindings. (Ordinarily these are omitted from the output.) (fn BUFFER &optional PREFIX MENUS)Fdescribe-vector Insert a description of contents of VECTOR. This is text showing the elements of vector matched against indices. DESCRIBER is the output function used; nil means use `princ'. (fn VECTOR &optional DESCRIBER)Fhelp--describe-vector Insert in the current buffer a description of the contents of VECTOR. Call DESCRIBER to insert the description of one value found in VECTOR. PREFIX is a string describing the key which leads to the keymap that this vector is in. If PARTIAL, it means do not mention suppressed commands. SHADOW is a list of keymaps that shadow this map. If it is non-nil, look up the key in those maps and don't mention it if it is defined by any of them. ENTIRE-MAP is the keymap in which this vector appears. If the definition in effect in the whole map does not match the one in this keymap, we ignore this one. (fn VECTOR PREFIX DESCRIBER PARTIAL SHADOW ENTIRE-MAP MENTION-SHADOW)Vminibuffer-local-map Default keymap to use when reading from the minibuffer.Vminor-mode-map-alist Alist of keymaps to use for minor modes. Each element looks like (VARIABLE . KEYMAP); KEYMAP is used to read key sequences and look up bindings if VARIABLE's value is non-nil. If two active keymaps bind the same key, the keymap appearing earlier in the list takes precedence.Vminor-mode-overriding-map-alist Alist of keymaps to use for minor modes, in current major mode. This variable is an alist just like `minor-mode-map-alist', and it is used the same way (and before `minor-mode-map-alist'); however, it is provided for major modes to bind locally.Vemulation-mode-map-alists List of keymap alists to use for emulation modes. It is intended for modes or packages using multiple minor-mode keymaps. Each element is a keymap alist just like `minor-mode-map-alist', or a symbol with a variable binding which is a keymap alist, and it is used the same way. The "active" keymaps in each alist are used before `minor-mode-map-alist' and `minor-mode-overriding-map-alist'.Vwhere-is-preferred-modifier Preferred modifier key to use for `where-is'. When a single binding is requested, `where-is' will return one that uses this modifier key if possible. If nil, or if no such binding exists, bindings using keys without modifiers (or only with meta) will be preferred.Vdescribe-bindings-check-shadowing-in-ranges If non-nil, consider command shadowing when describing ranges of keys. If the value is t, describing bindings of consecutive keys will not report them as a single range if they are shadowed by different minor-mode commands. If the value is `ignore-self-insert', assume that consecutive keys bound to `self-insert-command' are not all shadowed; this speeds up commands such as \[describe-bindings] and \[describe-mode], but could miss some shadowing. Any other non-nil value is treated is t. Beware: setting this non-nil could potentially slow down commands that describe key bindings. That is why the default is nil.Ssysdep.o Fget-internal-run-time Return the current run time used by Emacs. The time is returned as in the style of `current-time'. On systems that can't determine the run time, `get-internal-run-time' does the same thing as `current-time'. (fn)Sbignum.o Sbuffer.o Fbuffer-live-p Return t if OBJECT is a buffer which has not been killed. Value is nil if OBJECT is not a buffer or if it has been killed. (fn OBJECT)Fbuffer-list Return a list of all live buffers. If the optional arg FRAME is a frame, return the buffer list in the proper order for that frame: the buffers shown in FRAME come first, followed by the rest of the buffers. (fn &optional FRAME)Fget-buffer Return the buffer named BUFFER-OR-NAME. BUFFER-OR-NAME must be either a string or a buffer. If BUFFER-OR-NAME is a string and there is no buffer with that name, return nil. If BUFFER-OR-NAME is a buffer, return it as given. (fn BUFFER-OR-NAME)Fget-file-buffer Return the buffer visiting file FILENAME (a string). The buffer's `buffer-file-name' must match exactly the expansion of FILENAME. If there is no such live buffer, return nil. See also `find-buffer-visiting'. (fn FILENAME)Fget-buffer-create Return the buffer specified by BUFFER-OR-NAME, creating a new one if needed. If BUFFER-OR-NAME is a string and a live buffer with that name exists, return that buffer. If no such buffer exists, create a new buffer with that name and return it. If BUFFER-OR-NAME starts with a space, the new buffer does not keep undo information. If optional argument INHIBIT-BUFFER-HOOKS is non-nil, the new buffer does not run the hooks `kill-buffer-hook', `kill-buffer-query-functions', and `buffer-list-update-hook'. This avoids slowing down internal or temporary buffers that are never presented to users or passed on to other applications. If BUFFER-OR-NAME is a buffer instead of a string, return it as given, even if it is dead. The return value is never nil. (fn BUFFER-OR-NAME &optional INHIBIT-BUFFER-HOOKS)Fmake-indirect-buffer Create and return an indirect buffer for buffer BASE-BUFFER, named NAME. BASE-BUFFER should be a live buffer, or the name of an existing buffer. NAME should be a string which is not the name of an existing buffer. Interactively, prompt for BASE-BUFFER (offering the current buffer as the default), and for NAME (offering as default the name of a recently used buffer). Optional argument CLONE non-nil means preserve BASE-BUFFER's state, such as major and minor modes, in the indirect buffer. CLONE nil means the indirect buffer's state is reset to default values. If optional argument INHIBIT-BUFFER-HOOKS is non-nil, the new buffer does not run the hooks `kill-buffer-hook', `kill-buffer-query-functions', and `buffer-list-update-hook'. Interactively, CLONE and INHIBIT-BUFFER-HOOKS are nil. (fn BASE-BUFFER NAME &optional CLONE INHIBIT-BUFFER-HOOKS)Fgenerate-new-buffer-name Return a string that is the name of no existing buffer based on NAME. If there is no live buffer named NAME, then return NAME. Otherwise modify name by appending `', incrementing NUMBER (starting at 2) until an unused name is found, and then return that name. Optional second argument IGNORE specifies a name that is okay to use (if it is in the sequence to be tried) even if a buffer with that name exists. If NAME begins with a space (i.e., a buffer that is not normally visible to users), then if buffer NAME already exists a random number is first appended to NAME, to speed up finding a non-existent buffer. (fn NAME &optional IGNORE)Fbuffer-name Return the name of BUFFER, as a string. BUFFER defaults to the current buffer. Return nil if BUFFER has been killed. (fn &optional BUFFER)Fbuffer-file-name Return name of file BUFFER is visiting, or nil if none. No argument or nil as argument means use the current buffer. (fn &optional BUFFER)Fbuffer-base-buffer Return the base buffer of indirect buffer BUFFER. If BUFFER is not indirect, return nil. BUFFER defaults to the current buffer. (fn &optional BUFFER)Fbuffer-local-value Return the value of VARIABLE in BUFFER. If VARIABLE does not have a buffer-local binding in BUFFER, the value is the default binding of the variable. (fn VARIABLE BUFFER)Fbuffer-local-variables Return an alist of variables that are buffer-local in BUFFER. Most elements look like (SYMBOL . VALUE), describing one variable. For a symbol that is locally unbound, just the symbol appears in the value. Note that storing new VALUEs in these elements doesn't change the variables. No argument or nil as argument means use current buffer as BUFFER. (fn &optional BUFFER)Fbuffer-modified-p Return non-nil if BUFFER was modified since its file was last read or saved. No argument or nil as argument means use current buffer as BUFFER. If BUFFER was autosaved since it was last modified, this function returns the symbol `autosaved'. (fn &optional BUFFER)Fforce-mode-line-update Force redisplay of the current buffer's mode line and header line. With optional non-nil ALL, force redisplay of all mode lines, tab lines and header lines. This function also forces recomputation of the menu bar menus and the frame title. (fn &optional ALL)Fset-buffer-modified-p Mark current buffer as modified or unmodified according to FLAG. A non-nil FLAG means mark the buffer modified. In addition, this function unconditionally forces redisplay of the mode lines of the windows that display the current buffer, and also locks or unlocks the file visited by the buffer, depending on whether the function's argument is non-nil, but only if both `buffer-file-name' and `buffer-file-truename' are non-nil. (fn FLAG)Frestore-buffer-modified-p Like `set-buffer-modified-p', but doesn't redisplay buffer's mode line. A nil FLAG means to mark the buffer as unmodified. A non-nil FLAG means mark the buffer as modified. A special value of `autosaved' will mark the buffer as modified and also as autosaved since it was last modified. This function also locks or unlocks the file visited by the buffer, if both `buffer-file-truename' and `buffer-file-name' are non-nil. It is not ensured that mode lines will be updated to show the modified state of the current buffer. Use with care. (fn FLAG)Fbuffer-modified-tick Return BUFFER's tick counter, incremented for each change in text. Each buffer has a tick counter which is incremented each time the text in that buffer is changed. No argument or nil as argument means use current buffer as BUFFER. (fn &optional BUFFER)Finternal--set-buffer-modified-tick Set BUFFER's tick counter to TICK. No argument or nil as argument means use current buffer as BUFFER. (fn TICK &optional BUFFER)Fbuffer-chars-modified-tick Return BUFFER's character-change tick counter. Each buffer has a character-change tick counter, which is set to the value of the buffer's tick counter (see `buffer-modified-tick'), each time text in that buffer is inserted or deleted. By comparing the values returned by two individual calls of `buffer-chars-modified-tick', you can tell whether a character change occurred in that buffer in between these calls. No argument or nil as argument means use current buffer as BUFFER. (fn &optional BUFFER)Frename-buffer Change current buffer's name to NEWNAME (a string). If second arg UNIQUE is nil or omitted, it is an error if a buffer named NEWNAME already exists. If UNIQUE is non-nil, come up with a new name using `generate-new-buffer-name'. Interactively, you can set UNIQUE with a prefix argument. We return the name we actually gave the buffer. This does not change the name of the visited file (if any). (fn NEWNAME &optional UNIQUE)Fother-buffer Return most recently selected buffer other than BUFFER. Buffers not visible in windows are preferred to visible buffers, unless optional second argument VISIBLE-OK is non-nil. Ignore the argument BUFFER unless it denotes a live buffer. If the optional third argument FRAME specifies a live frame, then use that frame's buffer list instead of the selected frame's buffer list. The buffer is found by scanning the selected or specified frame's buffer list first, followed by the list of all buffers. If no other buffer exists, return the buffer `*scratch*' (creating it if necessary). (fn &optional BUFFER VISIBLE-OK FRAME)Fbuffer-enable-undo Start keeping undo information for buffer BUFFER. No argument or nil as argument means do this for the current buffer. (fn &optional BUFFER)Fkill-buffer Kill the buffer specified by BUFFER-OR-NAME. The argument may be a buffer or the name of an existing buffer. Argument nil or omitted means kill the current buffer. Return t if the buffer is actually killed, nil otherwise. The functions in `kill-buffer-query-functions' are called with the buffer to be killed as the current buffer. If any of them returns nil, the buffer is not killed. The hook `kill-buffer-hook' is run before the buffer is actually killed. The buffer being killed will be current while the hook is running. Functions called by any of these hooks are supposed to not change the current buffer. Neither hook is run for internal or temporary buffers created by `get-buffer-create' or `generate-new-buffer' with argument INHIBIT-BUFFER-HOOKS non-nil. Any processes that have this buffer as the `process-buffer' are killed with SIGHUP. This function calls `replace-buffer-in-windows' for cleaning up all windows currently displaying the buffer to be killed. (fn &optional BUFFER-OR-NAME)Fbury-buffer-internal Move BUFFER to the end of the buffer list. (fn BUFFER)Fset-buffer-major-mode Set an appropriate major mode for BUFFER. For the *scratch* buffer, use `initial-major-mode', otherwise choose a mode according to the default value of `major-mode'. Use this function before selecting the buffer, since it may need to inspect the current buffer's major mode. (fn BUFFER)Fcurrent-buffer Return the current buffer as a Lisp object. (fn)Fset-buffer Make buffer BUFFER-OR-NAME current for editing operations. BUFFER-OR-NAME may be a buffer or the name of an existing buffer. See also `with-current-buffer' when you want to make a buffer current temporarily. This function does not display the buffer, so its effect ends when the current command terminates. Use `switch-to-buffer' or `pop-to-buffer' to switch buffers permanently. The return value is the buffer made current. (fn BUFFER-OR-NAME)Fbarf-if-buffer-read-only Signal a `buffer-read-only' error if the current buffer is read-only. If the text under POSITION (which defaults to point) has the `inhibit-read-only' text property set, the error will not be raised. (fn &optional POSITION)Ferase-buffer Delete the entire contents of the current buffer. Any narrowing restriction in effect (see `narrow-to-region') is removed, so the buffer is truly empty after this. (fn)Fbuffer-swap-text Swap the text between current buffer and BUFFER. Using this function from `save-excursion' might produce surprising results, see Info node `(elisp)Swapping Text'. (fn BUFFER)Fset-buffer-multibyte Set the multibyte flag of the current buffer to FLAG. If FLAG is t, this makes the buffer a multibyte buffer. If FLAG is nil, this makes the buffer a single-byte buffer. In these cases, the buffer contents remain unchanged as a sequence of bytes but the contents viewed as characters do change. If FLAG is `to', this makes the buffer a multibyte buffer by changing all eight-bit bytes to eight-bit characters. If the multibyte flag was really changed, undo information of the current buffer is cleared. (fn FLAG)Fkill-all-local-variables Switch to Fundamental mode by killing current buffer's local variables. Most local variable bindings are eliminated so that the default values become effective once more. Also, the syntax table is set from `standard-syntax-table', the local keymap is set to nil, and the abbrev table from `fundamental-mode-abbrev-table'. This function also forces redisplay of the mode line. Every function to select a new major mode starts by calling this function. As a special exception, local variables whose names have a non-nil `permanent-local' property are not eliminated by this function. If the optional KILL-PERMANENT argument is non-nil, clear out these local variables, too. The first thing this function does is run the normal hook `change-major-mode-hook'. (fn &optional KILL-PERMANENT)Foverlayp Return t if OBJECT is an overlay. (fn OBJECT)Fmake-overlay Create a new overlay with range BEG to END in BUFFER and return it. If omitted, BUFFER defaults to the current buffer. BEG and END may be integers or markers. The fourth arg FRONT-ADVANCE, if non-nil, makes the marker for the front of the overlay advance when text is inserted there (which means the text *is not* included in the overlay). The fifth arg REAR-ADVANCE, if non-nil, makes the marker for the rear of the overlay advance when text is inserted there (which means the text *is* included in the overlay). (fn BEG END &optional BUFFER FRONT-ADVANCE REAR-ADVANCE)Fmove-overlay Set the endpoints of OVERLAY to BEG and END in BUFFER. If BUFFER is omitted, leave OVERLAY in the same buffer it inhabits now. If BUFFER is omitted, and OVERLAY is in no buffer, put it in the current buffer. (fn OVERLAY BEG END &optional BUFFER)Fdelete-overlay Delete the overlay OVERLAY from its buffer. (fn OVERLAY)Fdelete-all-overlays Delete all overlays of BUFFER. BUFFER omitted or nil means delete all overlays of the current buffer. (fn &optional BUFFER)Foverlay-start Return the position at which OVERLAY starts. (fn OVERLAY)Foverlay-end Return the position at which OVERLAY ends. (fn OVERLAY)Foverlay-buffer Return the buffer OVERLAY belongs to. Return nil if OVERLAY has been deleted. (fn OVERLAY)Foverlay-properties Return a list of the properties on OVERLAY. This is a copy of OVERLAY's plist; modifying its conses has no effect on OVERLAY. (fn OVERLAY)Foverlays-at Return a list of the overlays that contain the character at POS. If SORTED is non-nil, then sort them by decreasing priority. Zero-length overlays that start and stop at POS are not included in the return value. Instead use `overlays-in' if those overlays are of interest. (fn POS &optional SORTED)Foverlays-in Return a list of the overlays that overlap the region BEG ... END. Overlap means that at least one character is contained within the overlay and also contained within the specified region. Empty overlays are included in the result if they are located at BEG, between BEG and END, or at END provided END denotes the position at the end of the accessible part of the buffer. The resulting list of overlays is in an arbitrary unpredictable order. (fn BEG END)Fnext-overlay-change Return the next position after POS where an overlay starts or ends. If there are no overlay boundaries from POS to (point-max), the value is (point-max). (fn POS)Fprevious-overlay-change Return the previous position before POS where an overlay starts or ends. If there are no overlay boundaries from (point-min) to POS, the value is (point-min). (fn POS)Foverlay-lists Return a list giving all the overlays of the current buffer. For backward compatibility, the value is actually a list that holds another list; the overlays are in the inner list. The list you get is a copy, so that changing it has no effect. However, the overlays you get are the real objects that the buffer uses. (fn)Foverlay-recenter Recenter the overlays of the current buffer around position POS. That makes overlay lookup faster for positions near POS (but perhaps slower for positions far away from POS). Since Emacs 29.1, this function is a no-op, because the implementation of overlays changed and their lookup is now fast regardless of their position in the buffer. In particular, this function no longer affects the value returned by `overlay-lists'. (fn POS)Foverlay-get Get the property of overlay OVERLAY with property name PROP. (fn OVERLAY PROP)Foverlay-put Set one property of overlay OVERLAY: give property PROP value VALUE. VALUE will be returned. (fn OVERLAY PROP VALUE)Foverlay-tree Get the overlay tree for BUFFER. (fn &optional BUFFER)Vtab-line-format Analogous to `mode-line-format', but controls the tab line. The tab line appears, optionally, at the top of a window; the mode line appears at the bottom.Vheader-line-format Analogous to `mode-line-format', but controls the header line. The header line appears, optionally, at the top of a window; the mode line appears at the bottom. Also see `header-line-indent-mode' if `display-line-numbers-mode' is turned on and header-line text should be aligned with buffer text.Vmode-line-format Template for displaying mode line for a window's buffer. The value may be nil, a string, a symbol or a list. A value of nil means don't display a mode line. For any symbol other than t or nil, the symbol's value is processed as a mode line construct. As a special exception, if that value is a string, the string is processed verbatim, without handling any %-constructs (see below). Also, unless the symbol has a non-nil `risky-local-variable' property, all properties in any strings, as well as all :eval and :propertize forms in the value, are ignored. When the value is processed, the window's buffer is temporarily the current buffer. A list whose car is a string or list is processed by processing each of the list elements recursively, as separate mode line constructs, and concatenating the results. A list of the form `(:eval FORM)' is processed by evaluating FORM and using the result as a mode line construct. Be careful--FORM should not load any files, because that can cause an infinite recursion. A list of the form `(:propertize ELT PROPS...)' is processed by processing ELT as the mode line construct, and adding the text properties PROPS to the result. A list whose car is a symbol is processed by examining the symbol's value, and, if that value is non-nil, processing the cadr of the list recursively; and if that value is nil, processing the caddr of the list recursively. A list whose car is an integer is processed by processing the cadr of the list, and padding (if the number is positive) or truncating (if negative) to the width specified by that number. A string is printed verbatim in the mode line except for %-constructs: %b -- print buffer name. %f -- print visited file name. %F -- print frame name. %* -- print %, * or hyphen. %+ -- print *, % or hyphen. %& is like %*, but ignore read-only-ness. % means buffer is read-only and * means it is modified. For a modified read-only buffer, %* gives % and %+ gives *. %s -- print process status. %l -- print the current line number. %c -- print the current column number (this makes editing slower). Columns are numbered starting from the left margin, and the leftmost column is displayed as zero. To make the column number update correctly in all cases, `column-number-mode' must be non-nil. %C -- Like %c, but the leftmost column is displayed as one. %i -- print the size of the buffer. %I -- like %i, but use k, M, G, etc., to abbreviate. %o -- print percent of window travel through buffer, or Top, Bot or All. %p -- print percent of buffer above top of window, or Top, Bot or All. %P -- print percent of buffer above bottom of window, perhaps plus Top, or print Bottom or All. %q -- print percent of buffer above both the top and the bottom of the window, separated by ‘-’, or ‘All’. %n -- print Narrow if appropriate. %z -- print mnemonics of keyboard, terminal, and buffer coding systems. %Z -- like %z, but including the end-of-line format. %e -- print error message about full memory. %@ -- print @ or hyphen. @ means that default-directory is on a remote machine. %[ -- print one [ for each recursive editing level. %] similar. %% -- print %. %- -- print infinitely many dashes. Decimal digits after the % specify field width to which to pad.Vmajor-mode Symbol for current buffer's major mode. The default value (normally `fundamental-mode') affects new buffers. A value of nil means to use the current buffer's major mode, provided it is not marked as "special".Vlocal-minor-modes Minor modes currently active in the current buffer. This is a list of symbols, or nil if there are no minor modes active.Vmode-name Pretty name of current buffer's major mode. Usually a string, but can use any of the constructs for `mode-line-format', which see. Format with `format-mode-line' to produce a string value.Vlocal-abbrev-table Local (mode-specific) abbrev table of current buffer.Vabbrev-mode Non-nil if Abbrev mode is enabled. Use the command `abbrev-mode' to change this variable.Vcase-fold-search Non-nil if searches and matches should ignore case.Vfill-column Column beyond which automatic line-wrapping should happen. It is used by filling commands, such as `fill-region' and `fill-paragraph', and by `auto-fill-mode', which see. See also `current-fill-column'. Interactively, you can set the buffer local value using \[set-fill-column].Vleft-margin Column for the default `indent-line-function' to indent to. Linefeed indents to this column in Fundamental mode.Vtab-width Distance between tab stops (for display of tab characters), in columns. This controls the width of a TAB character on display. The value should be a positive integer. Note that this variable doesn't necessarily affect the size of the indentation step. However, if the major mode's indentation facility inserts one or more TAB characters, this variable will affect the indentation step as well, even if `indent-tabs-mode' is non-nil.Vctl-arrow Non-nil means display control chars with uparrow `^'. A value of nil means use backslash `\' and octal digits. This variable does not apply to characters whose display is specified in the current display table (if there is one; see `standard-display-table').Venable-multibyte-characters Non-nil means the buffer contents are regarded as multi-byte characters. Otherwise they are regarded as unibyte. This affects the display, file I/O and the behavior of various editing commands. This variable is buffer-local but you cannot set it directly; use the function `set-buffer-multibyte' to change a buffer's representation. To prevent any attempts to set it or make it buffer-local, Emacs will signal an error in those cases. See also Info node `(elisp)Text Representations'.Vbuffer-file-coding-system Coding system to be used for encoding the buffer contents on saving. This variable applies to saving the buffer, and also to `write-region' and other functions that use `write-region'. It does not apply to sending output to subprocesses, however. If this is nil, the buffer is saved without any code conversion unless some coding system is specified in `file-coding-system-alist' for the buffer file. If the text to be saved cannot be encoded as specified by this variable, an alternative encoding is selected by `select-safe-coding-system', which see. The variable `coding-system-for-write', if non-nil, overrides this variable. This variable is never applied to a way of decoding a file while reading it.Vbidi-display-reordering Non-nil means reorder bidirectional text for display in the visual order. Setting this to nil is intended for use in debugging the display code. Don't set to nil in normal sessions, as that is not supported. See also `bidi-paragraph-direction'; setting that non-nil might speed up redisplay.Vbidi-paragraph-start-re If non-nil, a regexp matching a line that starts OR separates paragraphs. The value of nil means to use empty lines as lines that start and separate paragraphs. When Emacs displays bidirectional text, it by default computes the base paragraph direction separately for each paragraph. Setting this variable changes the places where paragraph base direction is recomputed. The regexp is always matched after a newline, so it is best to anchor it by beginning it with a "^". If you change the value of this variable, be sure to change the value of `bidi-paragraph-separate-re' accordingly. For example, to have a single newline behave as a paragraph separator, set both these variables to "^". See also `bidi-paragraph-direction'.Vbidi-paragraph-separate-re If non-nil, a regexp matching a line that separates paragraphs. The value of nil means to use empty lines as paragraph separators. When Emacs displays bidirectional text, it by default computes the base paragraph direction separately for each paragraph. Setting this variable changes the places where paragraph base direction is recomputed. The regexp is always matched after a newline, so it is best to anchor it by beginning it with a "^". If you change the value of this variable, be sure to change the value of `bidi-paragraph-start-re' accordingly. For example, to have a single newline behave as a paragraph separator, set both these variables to "^". See also `bidi-paragraph-direction'.Vbidi-paragraph-direction If non-nil, forces directionality of text paragraphs in the buffer. If this is nil (the default), the direction of each paragraph is determined by the first strong directional character of its text. The values of `right-to-left' and `left-to-right' override that. Any other value is treated as nil. This variable has no effect unless the buffer's value of `bidi-display-reordering' is non-nil.Vtruncate-lines Non-nil means do not display continuation lines. Instead, give each line of text just one screen line. Note that this is overridden by the variable `truncate-partial-width-windows' if that variable is non-nil and this buffer is not full-frame width. Minibuffers set this variable to nil. Don't set this to a non-nil value when `visual-line-mode' is turned on, as it could produce confusing results.Vword-wrap Non-nil means to use word-wrapping for continuation lines. When word-wrapping is on, continuation lines are wrapped at the space or tab character nearest to the right window edge. If nil, continuation lines are wrapped at the right screen edge. This variable has no effect if long lines are truncated (see `truncate-lines' and `truncate-partial-width-windows'). If you use word-wrapping, you might want to reduce the value of `truncate-partial-width-windows', since wrapping can make text readable in narrower windows. Instead of setting this variable directly, most users should use Visual Line mode. Visual Line mode, when enabled, sets `word-wrap' to t, and additionally redefines simple editing commands to act on visual lines rather than logical lines. See the documentation of `visual-line-mode'.Vdefault-directory Name of default directory of current buffer. It should be an absolute directory name; on GNU and Unix systems, these names start with "/" or "~" and end with "/". To interactively change the default directory, use the command `cd'.Vauto-fill-function Function called (if non-nil) to perform auto-fill. It is called after self-inserting any character specified in the `auto-fill-chars' table. NOTE: This variable is not a hook; its value may not be a list of functions.Vbuffer-file-name Name of file visited in current buffer, or nil if not visiting a file. This should be an absolute file name.Vbuffer-file-truename Abbreviated truename of file visited in current buffer, or nil if none. The truename of a file is calculated by `file-truename' and then abbreviated with `abbreviate-file-name'.Vbuffer-auto-save-file-name Name of file for auto-saving current buffer. If it is nil, that means don't auto-save this buffer.Vbuffer-read-only Non-nil if this buffer is read-only.Vbuffer-backed-up Non-nil if this buffer's file has been backed up. Backing up is done before the first time the file is saved.Vbuffer-saved-size Length of current buffer when last read in, saved or auto-saved. 0 initially. -1 means auto-saving turned off until next real save. If you set this to -2, that means don't turn off auto-saving in this buffer if its text size shrinks. If you use `buffer-swap-text' on a buffer, you probably should set this to -2 in that buffer.Vselective-display Non-nil enables selective display. An integer N as value means display only lines that start with less than N columns of space. A value of t means that the character ^M makes itself and all the rest of the line invisible; also, when saving the buffer in a file, save the ^M as a newline. This usage is obsolete; use overlays or text properties instead.Vselective-display-ellipses Non-nil means display ... on previous line when a line is invisible.Voverwrite-mode Non-nil if self-insertion should replace existing text. The value should be one of `overwrite-mode-textual', `overwrite-mode-binary', or nil. If it is `overwrite-mode-textual', self-insertion still inserts at the end of a line, and inserts when point is before a tab, until the tab is filled in. If `overwrite-mode-binary', self-insertion replaces newlines and tabs too.Vbuffer-display-table Display table that controls display of the contents of current buffer. If this variable is nil, the value of `standard-display-table' is used. Each window can have its own, overriding display table, see `set-window-display-table' and `window-display-table'. The display table is a char-table created with `make-display-table'. A char-table is an array indexed by character codes. Normal array primitives `aref' and `aset' can be used to access elements of a char-table. Each of the char-table elements control how to display the corresponding text character: the element at index C in the table says how to display the character whose code is C. Each element should be a vector of characters or nil. The value nil means display the character in the default fashion; otherwise, the characters from the vector are delivered to the screen instead of the original character. For example, (aset buffer-display-table ?X [?Y]) tells Emacs to display a capital Y instead of each X character. In addition, a char-table has six extra slots to control the display of: the end of a truncated screen line (extra-slot 0, a single character); the end of a continued line (extra-slot 1, a single character); the escape character used to display character codes in octal (extra-slot 2, a single character); the character used as an arrow for control characters (extra-slot 3, a single character); the decoration indicating the presence of invisible lines (extra-slot 4, a vector of characters); the character used to draw the border between side-by-side windows (extra-slot 5, a single character). See also the functions `display-table-slot' and `set-display-table-slot'.Vleft-margin-width Width in columns of left marginal area for display of a buffer. A value of nil means no marginal area. Setting this variable does not take effect until a new buffer is displayed in a window. To make the change take effect, call `set-window-buffer'.Vright-margin-width Width in columns of right marginal area for display of a buffer. A value of nil means no marginal area. Setting this variable does not take effect until a new buffer is displayed in a window. To make the change take effect, call `set-window-buffer'.Vleft-fringe-width Width of this buffer's left fringe (in pixels). A value of 0 means no left fringe is shown in this buffer's window. A value of nil means to use the left fringe width from the window's frame. Setting this variable does not take effect until a new buffer is displayed in a window. To make the change take effect, call `set-window-buffer'.Vright-fringe-width Width of this buffer's right fringe (in pixels). A value of 0 means no right fringe is shown in this buffer's window. A value of nil means to use the right fringe width from the window's frame. Setting this variable does not take effect until a new buffer is displayed in a window. To make the change take effect, call `set-window-buffer'.Vfringes-outside-margins Non-nil means to display fringes outside display margins. A value of nil means to display fringes between margins and buffer text. Setting this variable does not take effect until a new buffer is displayed in a window. To make the change take effect, call `set-window-buffer'.Vscroll-bar-width Width of this buffer's vertical scroll bars in pixels. A value of nil means to use the scroll bar width from the window's frame.Vscroll-bar-height Height of this buffer's horizontal scroll bars in pixels. A value of nil means to use the scroll bar height from the window's frame.Vvertical-scroll-bar Position of this buffer's vertical scroll bar. The value takes effect whenever you tell a window to display this buffer; for instance, with `set-window-buffer' or when `display-buffer' displays it. A value of `left' or `right' means put the vertical scroll bar at that side of the window; a value of nil means don't show any vertical scroll bars. A value of t (the default) means do whatever the window's frame specifies.Vhorizontal-scroll-bar Position of this buffer's horizontal scroll bar. The value takes effect whenever you tell a window to display this buffer; for instance, with `set-window-buffer' or when `display-buffer' displays it. A value of `bottom' means put the horizontal scroll bar at the bottom of the window; a value of nil means don't show any horizontal scroll bars. A value of t (the default) means do whatever the window's frame specifies.Vindicate-empty-lines Visually indicate unused ("empty") screen lines after the buffer end. If non-nil, a bitmap is displayed in the left fringe of a window on graphical displays for each screen line that doesn't correspond to any buffer text.Vindicate-buffer-boundaries Visually indicate buffer boundaries and scrolling. If non-nil, the first and last line of the buffer are marked in the fringe of a window on graphical displays with angle bitmaps, or if the window can be scrolled, the top and bottom line of the window are marked with up and down arrow bitmaps. If value is a symbol `left' or `right', both angle and arrow bitmaps are displayed in the left or right fringe, resp. Any other value that doesn't look like an alist means display the angle bitmaps in the left fringe but no arrows. You can exercise more precise control by using an alist as the value. Each alist element (INDICATOR . POSITION) specifies where to show one of the indicators. INDICATOR is one of `top', `bottom', `up', `down', or t, which specifies the default position, and POSITION is one of `left', `right', or nil, meaning do not show this indicator. For example, ((top . left) (t . right)) places the top angle bitmap in left fringe, the bottom angle bitmap in right fringe, and both arrow bitmaps in right fringe. To show just the angle bitmaps in the left fringe, but no arrow bitmaps, use ((top . left) (bottom . left)).Vfringe-indicator-alist Mapping from logical to physical fringe indicator bitmaps. The value is an alist where each element (INDICATOR . BITMAPS) specifies the fringe bitmaps used to display a specific logical fringe indicator. INDICATOR specifies the logical indicator type which is one of the following symbols: `truncation' , `continuation', `overlay-arrow', `top', `bottom', `top-bottom', `up', `down', empty-line', or `unknown'. BITMAPS is a list of symbols (LEFT RIGHT [LEFT1 RIGHT1]) which specifies the actual bitmap shown in the left or right fringe for the logical indicator. LEFT and RIGHT are the bitmaps shown in the left and/or right fringe for the specific indicator. The LEFT1 or RIGHT1 bitmaps are used only for the `bottom' and `top-bottom' indicators when the last (only) line has no final newline. BITMAPS may also be a single symbol which is used in both left and right fringes.Vfringe-cursor-alist Mapping from logical to physical fringe cursor bitmaps. The value is an alist where each element (CURSOR . BITMAP) specifies the fringe bitmaps used to display a specific logical cursor type in the fringe. CURSOR specifies the logical cursor type which is one of the following symbols: `box' , `hollow', `bar', `hbar', or `hollow-small'. The last one is used to show a hollow cursor on narrow lines display lines where the normal hollow cursor will not fit. BITMAP is the corresponding fringe bitmap shown for the logical cursor type.Vscroll-up-aggressively How far to scroll windows upward. If you move point off the bottom, the window scrolls automatically. This variable controls how far it scrolls. The value nil, the default, means scroll to center point. A fraction means scroll to put point that fraction of the window's height from the bottom of the window. When the value is 0.0, point goes at the bottom line, which in the simple case that you moved off with C-f means scrolling just one line. 1.0 means point goes at the top, so that in that simple case, the window scrolls by a full window height. Meaningful values are between 0.0 and 1.0, inclusive.Vscroll-down-aggressively How far to scroll windows downward. If you move point off the top, the window scrolls automatically. This variable controls how far it scrolls. The value nil, the default, means scroll to center point. A fraction means scroll to put point that fraction of the window's height from the top of the window. When the value is 0.0, point goes at the top line, which in the simple case that you moved off with C-b means scrolling just one line. 1.0 means point goes at the bottom, so that in that simple case, the window scrolls by a full window height. Meaningful values are between 0.0 and 1.0, inclusive.Vbefore-change-functions List of functions to call before each text change. Two arguments are passed to each function: the positions of the beginning and end of the range of old text to be changed. (For an insertion, the beginning and end are at the same place.) No information is given about the length of the text after the change. Buffer changes made while executing the `before-change-functions' don't call any before-change or after-change functions. That's because `inhibit-modification-hooks' is temporarily set non-nil. If an unhandled error happens in running these functions, the variable's value remains nil. That prevents the error from happening repeatedly and making Emacs nonfunctional.Vafter-change-functions List of functions to call after each text change. Three arguments are passed to each function: the positions of the beginning and end of the range of changed text, and the length in chars of the pre-change text replaced by that range. (For an insertion, the pre-change length is zero; for a deletion, that length is the number of chars deleted, and the post-change beginning and end are at the same place.) Buffer changes made while executing the `after-change-functions' don't call any before-change or after-change functions. That's because `inhibit-modification-hooks' is temporarily set non-nil. If an unhandled error happens in running these functions, the variable's value remains nil. That prevents the error from happening repeatedly and making Emacs nonfunctional.Vfirst-change-hook A list of functions to call before changing a buffer which is unmodified. The functions are run using the `run-hooks' function.Vbuffer-undo-list List of undo entries in current buffer. Recent changes come first; older changes follow newer. An entry (BEG . END) represents an insertion which begins at position BEG and ends at position END. An entry (TEXT . POSITION) represents the deletion of the string TEXT from (abs POSITION). If POSITION is positive, point was at the front of the text being deleted; if negative, point was at the end. An entry (t . TIMESTAMP), where TIMESTAMP is in the style of `current-time', indicates that the buffer was previously unmodified; TIMESTAMP is the visited file's modification time, as of that time. If the modification time of the most recent save is different, this entry is obsolete. An entry (t . 0) means the buffer was previously unmodified but its time stamp was unknown because it was not associated with a file. An entry (t . -1) is similar, except that it means the buffer's visited file did not exist. An entry (nil PROPERTY VALUE BEG . END) indicates that a text property was modified between BEG and END. PROPERTY is the property name, and VALUE is the old value. An entry (apply FUN-NAME . ARGS) means undo the change with (apply FUN-NAME ARGS). An entry (apply DELTA BEG END FUN-NAME . ARGS) supports selective undo in the active region. BEG and END is the range affected by this entry and DELTA is the number of characters added or deleted in that range by this change. An entry (MARKER . DISTANCE) indicates that the marker MARKER was adjusted in position by the offset DISTANCE (an integer). An entry of the form POSITION indicates that point was at the buffer location given by the integer. Undoing an entry of this form places point at POSITION. Entries with value nil mark undo boundaries. The undo command treats the changes between two undo boundaries as a single step to be undone. If the value of the variable is t, undo information is not recorded.Vmark-active Non-nil means the mark and region are currently active in this buffer.Vcache-long-scans Non-nil means that Emacs should use caches in attempt to speedup buffer scans. There is no reason to set this to nil except for debugging purposes. Normally, the line-motion functions work by scanning the buffer for newlines. Columnar operations (like `move-to-column' and `compute-motion') also work by scanning the buffer, summing character widths as they go. This works well for ordinary text, but if the buffer's lines are very long (say, more than 500 characters), these motion functions will take longer to execute. Emacs may also take longer to update the display. If `cache-long-scans' is non-nil, these motion functions cache the results of their scans, and consult the cache to avoid rescanning regions of the buffer until the text is modified. The caches are most beneficial when they prevent the most searching---that is, when the buffer contains long lines and large regions of characters with the same, fixed screen width. When `cache-long-scans' is non-nil, processing short lines will become slightly slower (because of the overhead of consulting the cache), and the caches will use memory roughly proportional to the number of newlines and characters whose screen width varies. Bidirectional editing also requires buffer scans to find paragraph separators. If you have large paragraphs or no paragraph separators at all, these scans may be slow. If `cache-long-scans' is non-nil, results of these scans are cached. This doesn't help too much if paragraphs are of the reasonable (few thousands of characters) size. The caches require no explicit maintenance; their accuracy is maintained internally by the Emacs primitives. Enabling or disabling the cache should not affect the behavior of any of the motion functions; it should only affect their performance.Vpoint-before-scroll Value of point before the last series of scroll operations, or nil.Vbuffer-file-format List of formats to use when saving this buffer. Formats are defined by `format-alist'. This variable is set when a file is visited.Vbuffer-auto-save-file-format Format in which to write auto-save files. Should be a list of symbols naming formats that are defined in `format-alist'. If it is t, which is the default, auto-save files are written in the same format as a regular save would use.Vbuffer-invisibility-spec Invisibility spec of this buffer. The default is t, which means that text is invisible if it has a non-nil `invisible' property. This variable can also be a list. The list can have two kinds of elements: `ATOM' and `(ATOM . ELLIPSIS)'. A text character is invisible if its `invisible' property is `ATOM', or has an `invisible' property that is a list that contains `ATOM'. If the `(ATOM . ELLIPSIS)' form is used, and `ELLIPSIS' is non-nil, an ellipsis will be displayed after the invisible characters. Setting this variable is very fast, much faster than scanning all the text in the buffer looking for properties to change.Vbuffer-display-count A number incremented each time this buffer is displayed in a window. The function `set-window-buffer' increments it.Vbuffer-display-time Time stamp updated each time this buffer is displayed in a window. The function `set-window-buffer' updates this variable to the value obtained by calling `current-time'. If the buffer has never been shown in a window, the value is nil.Vtransient-mark-mode Non-nil if Transient Mark mode is enabled. See the command `transient-mark-mode' for a description of this minor mode. Non-nil also enables highlighting of the region whenever the mark is active. The region is highlighted with the `region' face. The variable `highlight-nonselected-windows' controls whether to highlight all windows or just the selected window. Lisp programs may give this variable certain special values: - The symbol `lambda' enables Transient Mark mode temporarily. The mode is disabled again after any subsequent action that would normally deactivate the mark (e.g. buffer modification). - The pair (only . OLDVAL) enables Transient Mark mode temporarily. After any subsequent point motion command that is not shift-translated, or any other action that would normally deactivate the mark (e.g. buffer modification), the value of `transient-mark-mode' is set to OLDVAL.Vinhibit-read-only Non-nil means disregard read-only status of buffers or characters. A non-nil value that is a list means disregard `buffer-read-only' status, and disregard a `read-only' text property if the property value is a member of the list. Any other non-nil value means disregard `buffer-read-only' and all `read-only' text properties.Vcursor-type Cursor to use when this buffer is in the selected window. Values are interpreted as follows: t use the cursor specified for the frame nil don't display a cursor box display a filled box cursor (box . SIZE) display a filled box cursor, but make it hollow if cursor is under masked image larger than SIZE pixels in either dimension. hollow display a hollow box cursor bar display a vertical bar cursor with default width (bar . WIDTH) display a vertical bar cursor with width WIDTH hbar display a horizontal bar cursor with default height (hbar . HEIGHT) display a horizontal bar cursor with height HEIGHT ANYTHING ELSE display a hollow box cursor WIDTH and HEIGHT can't exceed the frame's canonical character size. When the buffer is displayed in a non-selected window, the cursor's appearance is instead controlled by the variable `cursor-in-non-selected-windows'.Vline-spacing Additional space to put between lines when displaying a buffer. The space is measured in pixels, and put below lines on graphic displays, see `display-graphic-p'. If value is a floating point number, it specifies the spacing relative to the default frame line height. A value of nil means add no extra space.Vcursor-in-non-selected-windows Non-nil means show a cursor in non-selected windows. If nil, only shows a cursor in the selected window. If t, displays a cursor related to the usual cursor type (a solid box becomes hollow, a bar becomes a narrower bar). You can also specify the cursor type as in the `cursor-type' variable. Use Custom to set this variable and update the display.Vkill-buffer-query-functions List of functions called with no args to query before killing a buffer. The buffer being killed will be current while the functions are running. See `kill-buffer'. If any of them returns nil, the buffer is not killed. Functions run by this hook are supposed to not change the current buffer. This hook is not run for internal or temporary buffers created by `get-buffer-create' or `generate-new-buffer' with argument INHIBIT-BUFFER-HOOKS non-nil.Vchange-major-mode-hook Normal hook run before changing the major mode of a buffer. The function `kill-all-local-variables' runs this before doing anything else.Vbuffer-list-update-hook Hook run when the buffer list changes. Functions (implicitly) running this hook are `get-buffer-create', `make-indirect-buffer', `rename-buffer', `kill-buffer', `bury-buffer' and `select-window'. This hook is not run for internal or temporary buffers created by `get-buffer-create' or `generate-new-buffer' with argument INHIBIT-BUFFER-HOOKS non-nil. Functions run by this hook should avoid calling `select-window' with a nil NORECORD argument since it may lead to infinite recursion.Vkill-buffer-delete-auto-save-files If non-nil, offer to delete any autosave file when killing a buffer. If `delete-auto-save-files' is nil, any autosave deletion is inhibited.Vdelete-auto-save-files Non-nil means delete auto-save file when a buffer is saved. This is the default. If nil, auto-save file deletion is inhibited.Vclone-indirect-buffer-hook Normal hook to run in the new buffer at the end of `make-indirect-buffer'. Since `clone-indirect-buffer' calls `make-indirect-buffer', this hook will run for `clone-indirect-buffer' calls as well.Vlong-line-threshold Line length above which to use redisplay shortcuts. The value should be a positive integer or nil. If the value is an integer, shortcuts in the display code intended to speed up redisplay for long lines will automatically be enabled in buffers which contain one or more lines whose length is above this threshold. If nil, these display shortcuts will always remain disabled. There is no reason to change that value except for debugging purposes.Vlong-line-optimizations-region-size Region size for narrowing in buffers with long lines. This variable has effect only in buffers in which `long-line-optimizations-p' is non-nil. For performance reasons, in such buffers, the `fontification-functions', `pre-command-hook' and `post-command-hook' hooks are executed on a narrowed buffer around point, as if they were called in a `with-restriction' form with a label. This variable specifies the size of the narrowed region around point. To disable that narrowing, set this variable to 0. See also `long-line-optimizations-bol-search-limit'. There is no reason to change that value except for debugging purposes.Vlong-line-optimizations-bol-search-limit Limit for beginning of line search in buffers with long lines. This variable has effect only in buffers in which `long-line-optimizations-p' is non-nil. For performance reasons, in such buffers, the `fontification-functions', `pre-command-hook' and `post-command-hook' hooks are executed on a narrowed buffer around point, as if they were called in a `with-restriction' form with a label. The variable `long-line-optimizations-region-size' specifies the size of the narrowed region around point. This variable, which should be a small integer, specifies the number of characters by which that region can be extended backwards to make it start at the beginning of a line. There is no reason to change that value except for debugging purposes.Vlarge-hscroll-threshold Horizontal scroll of truncated lines above which to use redisplay shortcuts. The value should be a positive integer. Shortcuts in the display code intended to speed up redisplay for long and truncated lines will automatically be enabled when a line's horizontal scroll amount is or about to become larger than the value of this variable. This variable has effect only in buffers which contain one or more lines whose length is above `long-line-threshold', which see. To disable redisplay shortcuts for long truncated line, set this variable to `most-positive-fixnum'. There is no reason to change that value except for debugging purposes.Sfilelock.o Flock-file Check whether FILE was modified since it was visited, and lock it. If user option `create-lockfiles' is nil, this does not create a lock file for FILE, but it still checks whether FILE was modified outside of the current Emacs session, and if so, asks the user whether to modify FILE. (fn FILE)Funlock-file Unlock FILE. (fn FILE)Flock-buffer Lock FILE, if current buffer is modified. FILE defaults to current buffer's visited file, or else nothing is done if current buffer isn't visiting a file. If the option `create-lockfiles' is nil, this does nothing. (fn &optional FILE)Funlock-buffer Unlock the file visited in the current buffer. If the buffer is not modified, this does nothing because the file should not be locked in that case. It also does nothing if the current buffer is not visiting a file, or is not locked. Handles file system errors by calling `display-warning' and continuing as if the error did not occur. (fn)Ffile-locked-p Return a value indicating whether FILENAME is locked. The value is nil if the FILENAME is not locked, t if it is locked by you, else a string saying which user has locked it. (fn FILENAME)Vtemporary-file-directory The directory for writing temporary files.Vcreate-lockfiles Non-nil means use lockfiles to avoid editing collisions. The name of the (per-buffer) lockfile is constructed by prepending ".#" to the name of the file being locked. See also `lock-buffer' and Info node `(emacs)Interlocking'.Sinsdel.o Fcombine-after-change-execute This function is for use internally in the function `combine-after-change-calls'. (fn)Vcombine-after-change-calls Used internally by the function `combine-after-change-calls' macro.Vinhibit-modification-hooks Non-nil means don't run any of the hooks that respond to buffer changes. This affects `before-change-functions' and `after-change-functions', as well as hooks attached to text properties and overlays. Setting this variable non-nil also inhibits file locks and checks whether files are locked by another Emacs session, as well as handling of the active region per `select-active-regions'. To delay change hooks during a series of changes, use `combine-change-calls' or `combine-after-change-calls' instead of binding this variable. See also the info node `(elisp) Change Hooks'.Smarker.o Fmarker-buffer Return the buffer that MARKER points into, or nil if none. Returns nil if MARKER points into a dead buffer. (fn MARKER)Fmarker-position Return the position of MARKER, or nil if it points nowhere. (fn MARKER)Fset-marker Position MARKER before character number POSITION in BUFFER. If BUFFER is omitted or nil, it defaults to the current buffer. If POSITION is nil, makes marker point nowhere so it no longer slows down editing in any buffer. Returns MARKER. (fn MARKER POSITION &optional BUFFER)Fcopy-marker Return a new marker pointing at the same place as MARKER. If argument is a number, makes a new marker pointing at that position in the current buffer. If MARKER is not specified, the new marker does not point anywhere. The optional argument TYPE specifies the insertion type of the new marker; see `marker-insertion-type'. (fn &optional MARKER TYPE)Fmarker-insertion-type Return insertion type of MARKER: t if it stays after inserted text. The value nil means the marker stays before text inserted there. (fn MARKER)Fset-marker-insertion-type Set the insertion-type of MARKER to TYPE. If TYPE is t, it means the marker advances when you insert text at it. If TYPE is nil, it means the marker stays behind when you insert text at it. (fn MARKER TYPE)Sminibuf.o Factive-minibuffer-window Return the currently active minibuffer window, or nil if none. (fn)Fset-minibuffer-window Specify which minibuffer window to use for the minibuffer. This affects where the minibuffer is displayed if you put text in it without invoking the usual minibuffer commands. (fn WINDOW)Fminibufferp Return t if BUFFER is a minibuffer. No argument or nil as argument means use current buffer as BUFFER. BUFFER can be a buffer or a buffer name. If LIVE is non-nil, then return t only if BUFFER is an active minibuffer. (fn &optional BUFFER LIVE)Finnermost-minibuffer-p Return t if BUFFER is the most nested active minibuffer. No argument or nil as argument means use the current buffer as BUFFER. (fn &optional BUFFER)Fminibuffer-innermost-command-loop-p Return t if BUFFER is a minibuffer at the current command loop level. No argument or nil as argument means use the current buffer as BUFFER. (fn &optional BUFFER)Fabort-minibuffers Abort the current minibuffer. If we are not currently in the innermost minibuffer, prompt the user to confirm the aborting of the current minibuffer and all contained ones. (fn)Fminibuffer-prompt-end Return the buffer position of the end of the minibuffer prompt. Return (point-min) if current buffer is not a minibuffer. (fn)Fminibuffer-contents Return the user input in a minibuffer as a string. If the current buffer is not a minibuffer, return its entire contents. (fn)Fminibuffer-contents-no-properties Return the user input in a minibuffer as a string, without text-properties. If the current buffer is not a minibuffer, return its entire contents. (fn)Fread-from-minibuffer Read a string from the minibuffer, prompting with string PROMPT. The optional second arg INITIAL-CONTENTS is an obsolete alternative to DEFAULT-VALUE. It normally should be nil in new code, except when HIST is a cons. It is discussed in more detail below. Third arg KEYMAP is a keymap to use whilst reading; if omitted or nil, the default is `minibuffer-local-map'. If fourth arg READ is non-nil, interpret the result as a Lisp object and return that object: in other words, do `(car (read-from-string INPUT-STRING))' Fifth arg HIST, if non-nil, specifies a history list and optionally the initial position in the list. It can be a symbol, which is the history list variable to use, or a cons cell (HISTVAR . HISTPOS). In that case, HISTVAR is the history list variable to use, and HISTPOS is the initial position for use by the minibuffer history commands. For consistency, you should also specify that element of the history as the value of INITIAL-CONTENTS. Positions are counted starting from 1 at the beginning of the list. If HIST is nil, the default history list `minibuffer-history' is used. If HIST is t, history is not recorded. If `history-add-new-input' is non-nil (the default), the result will be added to the history list using `add-to-history'. Sixth arg DEFAULT-VALUE, if non-nil, should be a string, which is used as the default to `read' if READ is non-nil and the user enters empty input. But if READ is nil, this function does _not_ return DEFAULT-VALUE for empty input! Instead, it returns the empty string. Whatever the value of READ, DEFAULT-VALUE is made available via the minibuffer history commands. DEFAULT-VALUE can also be a list of strings, in which case all the strings are available in the history, and the first string is the default to `read' if READ is non-nil. Seventh arg INHERIT-INPUT-METHOD, if non-nil, means the minibuffer inherits the current input method and the setting of `enable-multibyte-characters'. If the variable `minibuffer-allow-text-properties' is non-nil, then the string which is returned includes whatever text properties were present in the minibuffer. Otherwise the value has no text properties. If `inhibit-interaction' is non-nil, this function will signal an `inhibited-interaction' error. The remainder of this documentation string describes the INITIAL-CONTENTS argument in more detail. It is only relevant when studying existing code, or when HIST is a cons. If non-nil, INITIAL-CONTENTS is a string to be inserted into the minibuffer before reading input. Normally, point is put at the end of that string. However, if INITIAL-CONTENTS is (STRING . POSITION), the initial input is STRING, but point is placed at _one-indexed_ position POSITION in the minibuffer. Any integer value less than or equal to one puts point at the beginning of the string. *Note* that this behavior differs from the way such arguments are used in `completing-read' and some related functions, which use zero-indexing for POSITION. (fn PROMPT &optional INITIAL-CONTENTS KEYMAP READ HIST DEFAULT-VALUE INHERIT-INPUT-METHOD)Fread-string Read a string from the minibuffer, prompting with string PROMPT. If non-nil, second arg INITIAL-INPUT is a string to insert before reading. This argument has been superseded by DEFAULT-VALUE and should normally be nil in new code. It behaves as INITIAL-CONTENTS in `read-from-minibuffer' (which see). The third arg HISTORY, if non-nil, specifies a history list and optionally the initial position in the list. See `read-from-minibuffer' for details of HISTORY argument. Fourth arg DEFAULT-VALUE is the default value or the list of default values. If non-nil, it is used for history commands, and as the value (or the first element of the list of default values) to return if the user enters the empty string. Fifth arg INHERIT-INPUT-METHOD, if non-nil, means the minibuffer inherits the current input method and the setting of `enable-multibyte-characters'. (fn PROMPT &optional INITIAL-INPUT HISTORY DEFAULT-VALUE INHERIT-INPUT-METHOD)Fread-command Read the name of a command and return as a symbol. Prompt with PROMPT. By default, return DEFAULT-VALUE or its first element if it is a list. If DEFAULT-VALUE is omitted or nil, and the user enters null input, return a symbol whose name is an empty string. (fn PROMPT &optional DEFAULT-VALUE)Fread-function One arg PROMPT, a string. Read the name of a function and return as a symbol. Prompt with PROMPT. (fn PROMPT)Fread-variable Read the name of a user option and return it as a symbol. Prompt with PROMPT. By default, return DEFAULT-VALUE or its first element if it is a list of strings. A user option, or customizable variable, is one for which `custom-variable-p' returns non-nil. (fn PROMPT &optional DEFAULT-VALUE)Fread-buffer Read the name of a buffer and return it as a string. Prompt with PROMPT, which should be a string ending with a colon and a space. Provides completion on buffer names the user types. Optional second arg DEF is value to return if user enters an empty line, instead of that empty string. If DEF is a list of default values, return its first element. Optional third arg REQUIRE-MATCH has the same meaning as the REQUIRE-MATCH argument of `completing-read'. Optional arg PREDICATE, if non-nil, is a function limiting the buffers that can be considered. It will be called with each potential candidate, in the form of either a string or a cons cell whose `car' is a string, and should return non-nil to accept the candidate for completion, nil otherwise. If `read-buffer-completion-ignore-case' is non-nil, completion ignores case while reading the buffer name. If `read-buffer-function' is non-nil, this works by calling it as a function, instead of the usual behavior. (fn PROMPT &optional DEF REQUIRE-MATCH PREDICATE)Ftry-completion Return longest common substring of all completions of STRING in COLLECTION. Test each possible completion specified by COLLECTION to see if it begins with STRING. The possible completions may be strings or symbols. Symbols are converted to strings before testing, by using `symbol-name'. If no possible completions match, the function returns nil; if there's just one exact match, it returns t; otherwise it returns the longest initial substring common to all possible completions that begin with STRING. If COLLECTION is an alist, the keys (cars of elements) are the possible completions. If an element is not a cons cell, then the element itself is a possible completion. If COLLECTION is a hash-table, all the keys that are either strings or symbols are the possible completions. If COLLECTION is an obarray, the names of all symbols in the obarray are the possible completions. COLLECTION can also be a function to do the completion itself. It receives three arguments: STRING, PREDICATE and nil. Whatever it returns becomes the value of `try-completion'. If optional third argument PREDICATE is non-nil, it must be a function of one or two arguments, and is used to test each possible completion. A possible completion is accepted only if PREDICATE returns non-nil. The argument given to PREDICATE is either a string or a cons cell (whose car is a string) from the alist, or a symbol from the obarray. If COLLECTION is a hash-table, PREDICATE is called with two arguments: the string key and the associated value. To be acceptable, a possible completion must also match all the regexps in `completion-regexp-list' (unless COLLECTION is a function, in which case that function should itself handle `completion-regexp-list'). If `completion-ignore-case' is non-nil, possible completions are matched while ignoring letter-case, but no guarantee is made about the letter-case of the return value, except that it comes either from the user's input or from one of the possible completions. (fn STRING COLLECTION &optional PREDICATE)Fall-completions Search for partial matches of STRING in COLLECTION. Test each possible completion specified by COLLECTION to see if it begins with STRING. The possible completions may be strings or symbols. Symbols are converted to strings before testing, by using `symbol-name'. The value is a list of all the possible completions that match STRING. If COLLECTION is an alist, the keys (cars of elements) are the possible completions. If an element is not a cons cell, then the element itself is the possible completion. If COLLECTION is a hash-table, all the keys that are strings or symbols are the possible completions. If COLLECTION is an obarray, the names of all symbols in the obarray are the possible completions. COLLECTION can also be a function to do the completion itself. It receives three arguments: STRING, PREDICATE and t. Whatever it returns becomes the value of `all-completions'. If optional third argument PREDICATE is non-nil, it must be a function of one or two arguments, and is used to test each possible completion. A possible completion is accepted only if PREDICATE returns non-nil. The argument given to PREDICATE is either a string or a cons cell (whose car is a string) from the alist, or a symbol from the obarray. If COLLECTION is a hash-table, PREDICATE is called with two arguments: the string key and the associated value. To be acceptable, a possible completion must also match all the regexps in `completion-regexp-list' (unless COLLECTION is a function, in which case that function should itself handle `completion-regexp-list'). An obsolete optional fourth argument HIDE-SPACES is still accepted for backward compatibility. If non-nil, strings in COLLECTION that start with a space are ignored unless STRING itself starts with a space. (fn STRING COLLECTION &optional PREDICATE HIDE-SPACES)Fcompleting-read Read a string in the minibuffer, with completion. PROMPT is a string to prompt with; normally it ends in a colon and a space. COLLECTION can be a list of strings, an alist, an obarray or a hash table. COLLECTION can also be a function to do the completion itself. PREDICATE limits completion to a subset of COLLECTION. See `try-completion', `all-completions', `test-completion', and `completion-boundaries', for more details on completion, COLLECTION, and PREDICATE. See also Info node `(elisp)Basic Completion' for the details about completion, and Info node `(elisp)Programmed Completion' for expectations from COLLECTION when it's a function. REQUIRE-MATCH can take the following values: - t means that the user is not allowed to exit unless the input is (or completes to) an element of COLLECTION or is null. - nil means that the user can exit with any input. - `confirm' means that the user can exit with any input, but she needs to confirm her choice if the input is not an element of COLLECTION. - `confirm-after-completion' means that the user can exit with any input, but she needs to confirm her choice if she called `minibuffer-complete' right before `minibuffer-complete-and-exit' and the input is not an element of COLLECTION. - a function, which will be called with the input as the argument. If the function returns a non-nil value, the minibuffer is exited with that argument as the value. - anything else behaves like t except that typing RET does not exit if it does non-null completion. If the input is null, `completing-read' returns DEF, or the first element of the list of default values, or an empty string if DEF is nil, regardless of the value of REQUIRE-MATCH. If INITIAL-INPUT is non-nil, insert it in the minibuffer initially, with point positioned at the end. If it is (STRING . POSITION), the initial input is STRING, but point is placed at _zero-indexed_ position POSITION in STRING. (*Note* that this is different from `read-from-minibuffer' and related functions, which use one-indexing for POSITION.) This feature is deprecated--it is best to pass nil for INITIAL-INPUT and supply the default value DEF instead. The user can yank the default value into the minibuffer easily using \\[next-history-element]. HIST, if non-nil, specifies a history list and optionally the initial position in the list. It can be a symbol, which is the history list variable to use, or it can be a cons cell (HISTVAR . HISTPOS). In that case, HISTVAR is the history list variable to use, and HISTPOS is the initial position (the position in the list used by the minibuffer history commands). For consistency, you should also specify that element of the history as the value of INITIAL-INPUT. (This is the only case in which you should use INITIAL-INPUT instead of DEF.) Positions are counted starting from 1 at the beginning of the list. The variable `history-length' controls the maximum length of a history list. If HIST is t, history is not recorded. DEF, if non-nil, is the default value or the list of default values. If INHERIT-INPUT-METHOD is non-nil, the minibuffer inherits the current input method and the setting of `enable-multibyte-characters'. Completion ignores case if the ambient value of `completion-ignore-case' is non-nil. See also `completing-read-function'. (fn PROMPT COLLECTION &optional PREDICATE REQUIRE-MATCH INITIAL-INPUT HIST DEF INHERIT-INPUT-METHOD)Ftest-completion Return non-nil if STRING is a valid completion. For instance, if COLLECTION is a list of strings, STRING is a valid completion if it appears in the list and PREDICATE is satisfied. Takes the same arguments as `all-completions' and `try-completion'. If COLLECTION is a function, it is called with three arguments: the values STRING, PREDICATE and `lambda'. (fn STRING COLLECTION &optional PREDICATE)Finternal-complete-buffer Perform completion on buffer names. STRING and PREDICATE have the same meanings as in `try-completion', `all-completions', and `test-completion'. If FLAG is nil, invoke `try-completion'; if it is t, invoke `all-completions'; otherwise invoke `test-completion'. (fn STRING PREDICATE FLAG)Fassoc-string Like `assoc' but specifically for strings (and symbols). This returns the first element of LIST whose car matches the string or symbol KEY, or nil if no match exists. When performing the comparison, symbols are first converted to strings, and unibyte strings to multibyte. If the optional arg CASE-FOLD is non-nil, both KEY and the elements of LIST are upcased for comparison. Unlike `assoc', KEY can also match an entry in LIST consisting of a single string, rather than a cons cell whose car is a string. (fn KEY LIST &optional CASE-FOLD)Fminibuffer-depth Return current depth of activations of minibuffer, a nonnegative integer. (fn)Fminibuffer-prompt Return the prompt string of the currently-active minibuffer. If no minibuffer is active, return nil. (fn)Vread-expression-history A history list for arguments that are Lisp expressions to evaluate. For example, `eval-expression' uses this.Vread-buffer-function If this is non-nil, `read-buffer' does its work by calling this function. The function is called with the arguments passed to `read-buffer'.Vminibuffer-follows-selected-frame t means the active minibuffer always displays on the selected frame. Nil means that a minibuffer will appear only in the frame which created it. Any other value means the minibuffer will move onto another frame, but only when the user starts using a minibuffer there. Any buffer local or dynamic binding of this variable is ignored. Only the default top level value is used.Vread-buffer-completion-ignore-case Non-nil means completion ignores case when reading a buffer name.Vminibuffer-setup-hook Normal hook run just after entry to minibuffer.Vminibuffer-exit-hook Normal hook run whenever a minibuffer is exited.Vhistory-length Maximum length of history lists before truncation takes place. A number means truncate to that length; truncation deletes old elements, and is done just after inserting a new element. A value of t means no truncation. This variable only affects history lists that don't specify their own maximum lengths. Setting the `history-length' property of a history variable overrides this default.Vhistory-delete-duplicates Non-nil means to delete duplicates in history. If set to t when adding a new history element, all previous identical elements are deleted from the history list.Vhistory-add-new-input Non-nil means to add new elements in history. If set to nil, minibuffer reading functions don't add new elements to the history list, so it is possible to do this afterwards by calling `add-to-history' explicitly.Vcompletion-ignore-case Non-nil means don't consider case significant in completion. For file-name completion, `read-file-name-completion-ignore-case' controls the behavior, rather than this variable. For buffer name completion, `read-buffer-completion-ignore-case' controls the behavior, rather than this variable.Venable-recursive-minibuffers Non-nil means to allow minibuffer commands while in the minibuffer. This variable makes a difference whenever the minibuffer window is active. Also see `minibuffer-depth-indicate-mode', which may be handy if this variable is non-nil.Vminibuffer-completion-table Alist or obarray used for completion in the minibuffer. This becomes the ALIST argument to `try-completion' and `all-completions'. The value can also be a list of strings or a hash table. The value may alternatively be a function, which is given three arguments: STRING, the current buffer contents; PREDICATE, the predicate for filtering possible matches; CODE, which says what kind of things to do. CODE can be nil, t or `lambda': nil -- return the best completion of STRING, or nil if there is none. t -- return a list of all possible completions of STRING. lambda -- return t if STRING is a valid completion as it stands.Vminibuffer-completion-predicate Within call to `completing-read', this holds the PREDICATE argument.Vminibuffer-completion-confirm Whether to demand confirmation of completion before exiting minibuffer. If nil, confirmation is not required. If the value is `confirm', the user may exit with an input that is not a valid completion alternative, but Emacs asks for confirmation. If the value is `confirm-after-completion', the user may exit with an input that is not a valid completion alternative, but Emacs asks for confirmation if the user submitted the input right after any of the completion commands listed in `minibuffer-confirm-exit-commands'.Vminibuffer-completing-file-name Non-nil means completing file names.Vminibuffer-help-form Value that `help-form' takes on inside the minibuffer.Vminibuffer-history-variable History list symbol to add minibuffer values to. Each string of minibuffer input, as it appears on exit from the minibuffer, is added with (set minibuffer-history-variable (cons STRING (symbol-value minibuffer-history-variable))) If the variable is t, no history is recorded.Vminibuffer-history-position Current position of redoing in the history list.Vminibuffer-auto-raise Non-nil means entering the minibuffer raises the minibuffer's frame. Some uses of the echo area also raise that frame (since they use it too).Vcompletion-regexp-list List of regexps that should restrict possible completions. The basic completion functions only consider a completion acceptable if it matches all regular expressions in this list, with `case-fold-search' bound to the value of `completion-ignore-case'. See Info node `(elisp)Basic Completion', for a description of these functions. Do not set this variable to a non-nil value globally, as that is not safe and will probably cause errors in completion commands. This variable should be only let-bound to non-nil values around calls to basic completion functions like `try-completion' and `all-completions'.Vminibuffer-allow-text-properties Non-nil means `read-from-minibuffer' should not discard text properties. This also affects `read-string', but it does not affect `read-minibuffer', `read-no-blanks-input', or any of the functions that do minibuffer input with completion; they always discard text properties.Vminibuffer-prompt-properties Text properties that are added to minibuffer prompts. These are in addition to the basic `field' property, and stickiness properties.Vread-hide-char Whether to hide input characters in noninteractive mode. If non-nil, it must be a character, which will be used to mask the input characters. This variable should never be set globally. This variable also overrides the default character that `read-passwd' uses to hide passwords.Vinhibit-interaction Non-nil means any user interaction will signal an error. This variable can be bound when user interaction can't be performed, for instance when running a headless Emacs server. Functions like `read-from-minibuffer' (and the like) will signal `inhibited-interaction' instead.Vread-minibuffer-restore-windows Non-nil means restore window configurations on exit from minibuffer. If this is non-nil (the default), reading input with the minibuffer will restore, on exit, the window configurations of the frame where the minibuffer was entered from and, if it is different, the frame that owns the associated minibuffer window. If this is nil, window configurations are not restored upon exiting the minibuffer. However, if `minibuffer-restore-windows' is present in `minibuffer-exit-hook', exiting the minibuffer will remove the window showing the *Completions* buffer, if any.Sfileio.o Ffind-file-name-handler Return FILENAME's handler function for OPERATION, if it has one. Otherwise, return nil. A file name is handled if one of the regular expressions in `file-name-handler-alist' matches it. If OPERATION equals `inhibit-file-name-operation', then ignore any handlers that are members of `inhibit-file-name-handlers', but still do run any other handlers. This lets handlers use the standard functions without calling themselves recursively. (fn FILENAME OPERATION)Ffile-name-directory Return the directory component in file name FILENAME. Return nil if FILENAME does not include a directory. Otherwise return a directory name. Given a Unix syntax file name, returns a string ending in slash. (fn FILENAME)Ffile-name-nondirectory Return file name FILENAME sans its directory. For example, in a Unix-syntax file name, this is everything after the last slash, or the entire name if it contains no slash. (fn FILENAME)Funhandled-file-name-directory Return a directly usable directory name somehow associated with FILENAME. A `directly usable' directory name is one that may be used without the intervention of any file name handler. If FILENAME is a directly usable file itself, return (file-name-as-directory FILENAME). If FILENAME refers to a file which is not accessible from a local process, then this should return nil. The `call-process' and `start-process' functions use this function to get a current directory to run processes in. (fn FILENAME)Ffile-name-as-directory Return a string representing the file name FILE interpreted as a directory. This operation exists because a directory is also a file, but its name as a directory is different from its name as a file. The result can be used as the value of `default-directory' or passed as second argument to `expand-file-name'. For a Unix-syntax file name, just appends a slash unless a trailing slash is already present. (fn FILE)Fdirectory-name-p Return non-nil if NAME ends with a directory separator character. (fn NAME)Fdirectory-file-name Returns the file name of the directory named DIRECTORY. This is the name of the file that holds the data for the directory DIRECTORY. This operation exists because a directory is also a file, but its name as a directory is different from its name as a file. In Unix-syntax, this function just removes the final slash. (fn DIRECTORY)Fmake-temp-file-internal Generate a new file whose name starts with PREFIX, a string. Return the name of the generated file. If DIR-FLAG is zero, do not create the file, just its name. Otherwise, if DIR-FLAG is non-nil, create an empty directory. The file name should end in SUFFIX. Do not expand PREFIX; a non-absolute PREFIX is relative to the Emacs working directory. If TEXT is a string, insert it into the newly created file. Signal an error if the file could not be created. This function does not grok magic file names. (fn PREFIX DIR-FLAG SUFFIX TEXT)Fmake-temp-name Generate temporary file name (string) starting with PREFIX (a string). This function tries to choose a name that has no existing file. For this to work, PREFIX should be an absolute file name, and PREFIX and the returned string should both be non-magic. There is a race condition between calling `make-temp-name' and later creating the file, which opens all kinds of security holes. For that reason, you should normally use `make-temp-file' instead. (fn PREFIX)Ffile-name-concat Append COMPONENTS to DIRECTORY and return the resulting string. Elements in COMPONENTS must be a string or nil. DIRECTORY or the non-final elements in COMPONENTS may or may not end with a slash -- if they don't end with a slash, a slash will be inserted before concatenating. (fn DIRECTORY &rest COMPONENTS)Fexpand-file-name Convert filename NAME to absolute, and canonicalize it. Second arg DEFAULT-DIRECTORY is directory to start with if NAME is relative (does not start with slash or tilde); both the directory name and a directory's file name are accepted. If DEFAULT-DIRECTORY is nil or missing, the current buffer's value of `default-directory' is used. NAME should be a string that is a valid file name for the underlying filesystem. File name components that are `.' are removed, and so are file name components followed by `..', along with the `..' itself; note that these simplifications are done without checking the resulting file names in the file system. Multiple consecutive slashes are collapsed into a single slash, except at the beginning of the file name when they are significant (e.g., UNC file names on MS-Windows.) An initial "~" in NAME expands to your home directory. An initial "~USER" in NAME expands to USER's home directory. If USER doesn't exist, "~USER" is not expanded. To do other file name substitutions, see `substitute-in-file-name'. For technical reasons, this function can return correct but non-intuitive results for the root directory; for instance, (expand-file-name ".." "/") returns "/..". For this reason, use (directory-file-name (file-name-directory dirname)) to traverse a filesystem tree, not (expand-file-name ".." dirname). Note: make sure DIRNAME in this example doesn't end in a slash, unless it's the root directory. (fn NAME &optional DEFAULT-DIRECTORY)Fsubstitute-in-file-name Substitute environment variables referred to in FILENAME. `$FOO' where FOO is an environment variable name means to substitute the value of that variable. The variable name should be terminated with a character not a letter, digit or underscore; otherwise, enclose the entire variable name in braces. If FOO is not defined in the environment, `$FOO' is left unchanged in the value of this function. If `/~' appears, all of FILENAME through that `/' is discarded. If `//' appears, everything up to and including the first of those `/' is discarded. (fn FILENAME)Fcopy-file Copy FILE to NEWNAME. Both args must be strings. If NEWNAME is a directory name, copy FILE to a like-named file under NEWNAME. For NEWNAME to be recognized as a directory name, it should end in a slash. This function always sets the file modes of the output file to match the input file. The optional third argument OK-IF-ALREADY-EXISTS specifies what to do if file NEWNAME already exists. If OK-IF-ALREADY-EXISTS is nil, signal a `file-already-exists' error without overwriting. If OK-IF-ALREADY-EXISTS is an integer, request confirmation from the user about overwriting; this is what happens in interactive use with M-x. Any other value for OK-IF-ALREADY-EXISTS means to overwrite the existing file. Fourth arg KEEP-TIME non-nil means give the output file the same last-modified time as the old one. (This works on only some systems.) A prefix arg makes KEEP-TIME non-nil. If PRESERVE-UID-GID is non-nil, try to transfer the uid and gid of FILE to NEWNAME. If PRESERVE-PERMISSIONS is non-nil, copy permissions of FILE to NEWNAME; this includes the file modes, along with ACL entries and SELinux context if present. Otherwise, if NEWNAME is created its file permission bits are those of FILE, masked by the default file permissions. (fn FILE NEWNAME &optional OK-IF-ALREADY-EXISTS KEEP-TIME PRESERVE-UID-GID PRESERVE-PERMISSIONS)Fmake-directory-internal Create a new directory named DIRECTORY. (fn DIRECTORY)Fdelete-directory-internal Delete the directory named DIRECTORY. Does not follow symlinks. (fn DIRECTORY)Fdelete-file Delete file named FILENAME. If it is a symlink, remove the symlink. If file has multiple names, it continues to exist with the other names. TRASH non-nil means to trash the file instead of deleting, provided `delete-by-moving-to-trash' is non-nil. When called interactively, TRASH is t if no prefix argument is given. With a prefix argument, TRASH is nil. (fn FILENAME &optional TRASH)Ffile-name-case-insensitive-p Return t if file FILENAME is on a case-insensitive filesystem. Return nil if FILENAME does not exist or is not on a case-insensitive filesystem, or if there was trouble determining whether the filesystem is case-insensitive. (fn FILENAME)Frename-file Rename FILE as NEWNAME. Both args must be strings. If file has names other than FILE, it continues to have those names. If NEWNAME is a directory name, rename FILE to a like-named file under NEWNAME. For NEWNAME to be recognized as a directory name, it should end in a slash. Signal a `file-already-exists' error if a file NEWNAME already exists unless optional third argument OK-IF-ALREADY-EXISTS is non-nil. An integer third arg means request confirmation if NEWNAME already exists. This is what happens in interactive use with M-x. (fn FILE NEWNAME &optional OK-IF-ALREADY-EXISTS)Fadd-name-to-file Give FILE additional name NEWNAME. Both args must be strings. If NEWNAME is a directory name, give FILE a like-named new name under NEWNAME. Signal a `file-already-exists' error if a file NEWNAME already exists unless optional third argument OK-IF-ALREADY-EXISTS is non-nil. An integer third arg means request confirmation if NEWNAME already exists. This is what happens in interactive use with M-x. (fn FILE NEWNAME &optional OK-IF-ALREADY-EXISTS)Fmake-symbolic-link Make a symbolic link to TARGET, named LINKNAME. If LINKNAME is a directory name, make a like-named symbolic link under LINKNAME. Signal a `file-already-exists' error if a file LINKNAME already exists unless optional third argument OK-IF-ALREADY-EXISTS is non-nil. An integer third arg means request confirmation if LINKNAME already exists, and expand leading "~" or strip leading "/:" in TARGET. This happens for interactive use with M-x. (fn TARGET LINKNAME &optional OK-IF-ALREADY-EXISTS)Ffile-name-absolute-p Return t if FILENAME is an absolute file name. On Unix, absolute file names start with `/'. In Emacs, an absolute file name can also start with an initial `~' or `~USER' component, where USER is a valid login name. (fn FILENAME)Ffile-exists-p Return t if file FILENAME exists (whether or not you can read it). Return nil if FILENAME does not exist, or if there was trouble determining whether the file exists. See also `file-readable-p' and `file-attributes'. This returns nil for a symlink to a nonexistent file. Use `file-symlink-p' to test for such links. (fn FILENAME)Ffile-executable-p Return t if FILENAME can be executed by you. For a directory, this means you can access files in that directory. (It is generally better to use `file-accessible-directory-p' for that purpose, though.) (fn FILENAME)Ffile-readable-p Return t if file FILENAME exists and you can read it. See also `file-exists-p' and `file-attributes'. (fn FILENAME)Ffile-writable-p Return t if file FILENAME can be written or created by you. (fn FILENAME)Faccess-file Access file FILENAME, and get an error if that does not work. The second argument STRING is prepended to the error message. If there is no error, returns nil. (fn FILENAME STRING)Ffile-symlink-p Return non-nil if file FILENAME is the name of a symbolic link. The value is the link target, as a string. Return nil if FILENAME does not exist or is not a symbolic link, of there was trouble determining whether the file is a symbolic link. This function does not check whether the link target exists. (fn FILENAME)Ffile-directory-p Return t if FILENAME names an existing directory. Return nil if FILENAME does not name a directory, or if there was trouble determining whether FILENAME is a directory. As a special case, this function will also return t if FILENAME is the empty string (""). This quirk is due to Emacs interpreting the empty string (in some cases) as the current directory. Symbolic links to directories count as directories. See `file-symlink-p' to distinguish symlinks. (fn FILENAME)Ffile-accessible-directory-p Return t if FILENAME names a directory you can open. This means that FILENAME must specify the name of a directory, and the directory must allow you to open files in it. If this isn't the case, return nil. FILENAME can either be a directory name (eg. "/tmp/foo/") or the file name of a file which is a directory (eg. "/tmp/foo", without the final slash). In order to use a directory as a buffer's current directory, this predicate must return true. (fn FILENAME)Ffile-regular-p Return t if FILENAME names a regular file. This is the sort of file that holds an ordinary stream of data bytes. Return nil if FILENAME does not exist or is not a regular file, or there was trouble determining whether FILENAME is a regular file. Symbolic links to regular files count as regular files. See `file-symlink-p' to distinguish symlinks. (fn FILENAME)Ffile-selinux-context Return SELinux context of file named FILENAME. The return value is a list (USER ROLE TYPE RANGE), where the list elements are strings naming the user, role, type, and range of the file's SELinux security context. Return (nil nil nil nil) if the file is nonexistent, or if SELinux is disabled, or if Emacs lacks SELinux support. (fn FILENAME)Fset-file-selinux-context Set SELinux context of file named FILENAME to CONTEXT. CONTEXT should be a list (USER ROLE TYPE RANGE), where the list elements are strings naming the components of a SELinux context. Value is t if setting of SELinux context was successful, nil otherwise. This function does nothing and returns nil if SELinux is disabled, or if Emacs was not compiled with SELinux support. (fn FILENAME CONTEXT)Ffile-acl Return ACL entries of file named FILENAME. The entries are returned in a format suitable for use in `set-file-acl' but is otherwise undocumented and subject to change. Return nil if file does not exist. (fn FILENAME)Fset-file-acl Set ACL of file named FILENAME to ACL-STRING. ACL-STRING should contain the textual representation of the ACL entries in a format suitable for the platform. Value is t if setting of ACL was successful, nil otherwise. Setting ACL for local files requires Emacs to be built with ACL support. (fn FILENAME ACL-STRING)Ffile-modes Return mode bits of file named FILENAME, as an integer. Return nil if FILENAME does not exist. If optional FLAG is `nofollow', do not follow FILENAME if it is a symbolic link. (fn FILENAME &optional FLAG)Fset-file-modes Set mode bits of file named FILENAME to MODE (an integer). Only the 12 low bits of MODE are used. If optional FLAG is `nofollow', do not follow FILENAME if it is a symbolic link. Interactively, prompt for FILENAME, and read MODE with `read-file-modes', which accepts symbolic notation, like the `chmod' command from GNU Coreutils. (fn FILENAME MODE &optional FLAG)Fset-default-file-modes Set the file permission bits for newly created files. The argument MODE should be an integer; only the low 9 bits are used. On Posix hosts, this setting is inherited by subprocesses. This function works by setting the Emacs's file mode creation mask. Each bit that is set in the mask means that the corresponding bit in the permissions of newly created files will be disabled. Note that when `write-region' creates a file, it resets the execute bit, even if the mask set by this function allows that bit by having the corresponding bit in the mask reset. (fn MODE)Fdefault-file-modes Return the default file protection for created files. The value is an integer. (fn)Fset-file-times Set times of file FILENAME to TIMESTAMP. If optional FLAG is `nofollow', do not follow FILENAME if it is a symbolic link. Set both access and modification times. Return t on success, else nil. Use the current time if TIMESTAMP is nil. TIMESTAMP is in the format of `current-time'. (fn FILENAME &optional TIMESTAMP FLAG)Funix-sync Tell Unix to finish all pending disk updates. (fn)Ffile-newer-than-file-p Return t if file FILE1 is newer than file FILE2. If FILE1 does not exist, the answer is nil; otherwise, if FILE2 does not exist, the answer is t. (fn FILE1 FILE2)Finsert-file-contents Insert contents of file FILENAME after point. Returns list of absolute file name and number of characters inserted. If second argument VISIT is non-nil, the buffer's visited filename and last save file modtime are set, and it is marked unmodified. If visiting and the file does not exist, visiting is completed before the error is signaled. The optional third and fourth arguments BEG and END specify what portion of the file to insert. These arguments count bytes in the file, not characters in the buffer. If VISIT is non-nil, BEG and END must be nil. When inserting data from a special file (e.g., /dev/urandom), you can't specify VISIT or BEG, and END should be specified to avoid inserting unlimited data into the buffer. If optional fifth argument REPLACE is non-nil, replace the current buffer contents (in the accessible portion) with the file contents. This is better than simply deleting and inserting the whole thing because (1) it preserves some marker positions (in unchanged portions at the start and end of the buffer) and (2) it puts less data in the undo list. When REPLACE is non-nil, the second return value is the number of characters that replace previous buffer contents. This function does code conversion according to the value of `coding-system-for-read' or `file-coding-system-alist', and sets the variable `last-coding-system-used' to the coding system actually used. In addition, this function decodes the inserted text from known formats by calling `format-decode', which see. (fn FILENAME &optional VISIT BEG END REPLACE)Fwrite-region Write current region into specified file. When called from a program, requires three arguments: START, END and FILENAME. START and END are normally buffer positions specifying the part of the buffer to write. If START is nil, that means to use the entire buffer contents; END is ignored. If START is a string, then output that string to the file instead of any buffer contents; END is ignored. Optional fourth argument APPEND if non-nil means append to existing file contents (if any). If it is a number, seek to that offset in the file before writing. Optional fifth argument VISIT, if t or a string, means set the last-save-file-modtime of buffer to this file's modtime and mark buffer not modified. If VISIT is t, the buffer is marked as visiting FILENAME. If VISIT is a string, it is a second file name; the output goes to FILENAME, but the buffer is marked as visiting VISIT. VISIT is also the file name to lock and unlock for clash detection. If VISIT is neither t nor nil nor a string, or if Emacs is in batch mode, do not display the "Wrote file" message. The optional sixth arg LOCKNAME, if non-nil, specifies the name to use for locking and unlocking, overriding FILENAME and VISIT. The optional seventh arg MUSTBENEW, if non-nil, insists on a check for an existing file with the same name. If MUSTBENEW is `excl', that means to get an error if the file already exists; never overwrite. If MUSTBENEW is neither nil nor `excl', that means ask for confirmation before overwriting, but do go ahead and overwrite the file if the user confirms. This does code conversion according to the value of `coding-system-for-write', `buffer-file-coding-system', or `file-coding-system-alist', and sets the variable `last-coding-system-used' to the coding system actually used. This calls `write-region-annotate-functions' at the start, and `write-region-post-annotation-function' at the end. (fn START END FILENAME &optional APPEND VISIT LOCKNAME MUSTBENEW)Fcar-less-than-car Return t if (car A) is numerically less than (car B). (fn A B)Fverify-visited-file-modtime Return t if last mod time of BUF's visited file matches what BUF records. This means that the file has not been changed since it was visited or saved. If BUF is omitted or nil, it defaults to the current buffer. See Info node `(elisp)Modification Time' for more details. (fn &optional BUF)Fvisited-file-modtime Return the current buffer's recorded visited file modification time. Return a Lisp timestamp (as in `current-time') if the current buffer has a recorded file modification time, 0 if it doesn't, and -1 if the visited file doesn't exist. See Info node `(elisp)Modification Time' for more details. (fn)Fset-visited-file-modtime Update buffer's recorded modification time from the visited file's time. Useful if the buffer was not read from the file normally or if the file itself has been changed for some known benign reason. An argument specifies the modification time value to use (instead of that of the visited file), in the form of a time value as in `current-time' or an integer flag as returned by `visited-file-modtime'. (fn &optional TIME-FLAG)Fdo-auto-save Auto-save all buffers that need it. This auto-saves all buffers that have auto-saving enabled and were changed since last auto-saved. Auto-saving writes the buffer into a file so that your edits are not lost if the system crashes. The auto-save file is not the file you visited; that changes only when you save. Normally, run the normal hook `auto-save-hook' before saving. A non-nil NO-MESSAGE argument means do not print any message if successful. A non-nil CURRENT-ONLY argument means save only current buffer. (fn &optional NO-MESSAGE CURRENT-ONLY)Fset-buffer-auto-saved Mark current buffer as auto-saved with its current text. No auto-save file will be written until the buffer changes again. (fn)Fclear-buffer-auto-save-failure Clear any record of a recent auto-save failure in the current buffer. (fn)Frecent-auto-save-p Return t if current buffer has been auto-saved recently. More precisely, if it has been auto-saved since last read from or saved in the visited file. If the buffer has no visited file, then any auto-save counts as "recent". (fn)Fnext-read-file-uses-dialog-p Return t if a call to `read-file-name' will use a dialog. The return value is only relevant for a call to `read-file-name' that happens before any other event (mouse or keypress) is handled. (fn)Fset-binary-mode Switch STREAM to binary I/O mode or text I/O mode. STREAM can be one of the symbols `stdin', `stdout', or `stderr'. If MODE is non-nil, switch STREAM to binary mode, otherwise switch it to text mode. As a side effect, this function flushes any pending STREAM's data. Value is the previous value of STREAM's I/O mode, nil for text mode, non-nil for binary mode. On MS-Windows and MS-DOS, binary mode is needed to read or write arbitrary binary data, and for disabling translation between CR-LF pairs and a single newline character. Examples include generation of text files with Unix-style end-of-line format using `princ' in batch mode, with standard output redirected to a file. On Posix systems, this function always returns non-nil, and has no effect except for flushing STREAM's data. (fn STREAM MODE)Ffile-system-info Return storage information about the file system FILENAME is on. Value is a list of numbers (TOTAL FREE AVAIL), where TOTAL is the total storage of the file system, FREE is the free storage, and AVAIL is the storage available to a non-superuser. All 3 numbers are in bytes. If the underlying system call fails, value is nil. (fn FILENAME)Vfile-name-coding-system Coding system for encoding file names. If it is nil, `default-file-name-coding-system' (which see) is used. On MS-Windows, the value of this variable is largely ignored if `w32-unicode-filenames' (which see) is non-nil. Emacs on Windows behaves as if file names were encoded in `utf-8'.Vdefault-file-name-coding-system Default coding system for encoding file names. This variable is used only when `file-name-coding-system' is nil. This variable is set/changed by the command `set-language-environment'. User should not set this variable manually, instead use `file-name-coding-system' to get a constant encoding of file names regardless of the current language environment. On MS-Windows, the value of this variable is largely ignored if `w32-unicode-filenames' (which see) is non-nil. Emacs on Windows behaves as if file names were encoded in `utf-8'.Vfile-name-handler-alist Alist of elements (REGEXP . HANDLER) for file names handled specially. If a file name matches REGEXP, all I/O on that file is done by calling HANDLER. If a file name matches more than one handler, the handler whose match starts last in the file name gets precedence. The function `find-file-name-handler' checks this list for a handler for its argument. HANDLER should be a function. The first argument given to it is the name of the I/O primitive to be handled; the remaining arguments are the arguments that were passed to that primitive. For example, if you do (file-exists-p FILENAME) and FILENAME is handled by HANDLER, then HANDLER is called like this: (funcall HANDLER \='file-exists-p FILENAME) Note that HANDLER must be able to handle all I/O primitives; if it has nothing special to do for a primitive, it should reinvoke the primitive to handle the operation "the usual way". See Info node `(elisp)Magic File Names' for more details.Vset-auto-coding-function If non-nil, a function to call to decide a coding system of file. Two arguments are passed to this function: the file name and the length of a file contents following the point. This function should return a coding system to decode the file contents. It should check the file name against `auto-coding-alist'. If no coding system is decided, it should check a coding system specified in the heading lines with the format: -*- ... coding: CODING-SYSTEM; ... -*- or local variable spec of the tailing lines with `coding:' tag.Vafter-insert-file-functions A list of functions to be called at the end of `insert-file-contents'. Each is passed one argument, the number of characters inserted, with point at the start of the inserted text. Each function should leave point the same, and return the new character count. If `insert-file-contents' is intercepted by a handler from `file-name-handler-alist', that handler is responsible for calling the functions in `after-insert-file-functions' if appropriate.Vwrite-region-annotate-functions A list of functions to be called at the start of `write-region'. Each is passed two arguments, START and END as for `write-region'. These are usually two numbers but not always; see the documentation for `write-region'. The function should return a list of pairs of the form (POSITION . STRING), consisting of strings to be effectively inserted at the specified positions of the file being written (1 means to insert before the first byte written). The POSITIONs must be sorted into increasing order. If there are several annotation functions, the lists returned by these functions are merged destructively. As each annotation function runs, the variable `write-region-annotations-so-far' contains a list of all annotations returned by previous annotation functions. An annotation function can return with a different buffer current. Doing so removes the annotations returned by previous functions, and resets START and END to `point-min' and `point-max' of the new buffer. After `write-region' completes, Emacs calls the function stored in `write-region-post-annotation-function', once for each buffer that was current when building the annotations (i.e., at least once), with that buffer current.Vwrite-region-post-annotation-function Function to call after `write-region' completes. The function is called with no arguments. If one or more of the annotation functions in `write-region-annotate-functions' changed the current buffer, the function stored in this variable is called for each of those additional buffers as well, in addition to the original buffer. The relevant buffer is current during each function call.Vwrite-region-annotations-so-far When an annotation function is called, this holds the previous annotations. These are the annotations made by other annotation functions that were already called. See also `write-region-annotate-functions'.Vinhibit-file-name-handlers A list of file name handlers that temporarily should not be used. This applies only to the operation `inhibit-file-name-operation'.Vinhibit-file-name-operation The operation for which `inhibit-file-name-handlers' is applicable.Vauto-save-list-file-name File name in which to write a list of all auto save file names. This variable is initialized automatically from `auto-save-list-file-prefix' shortly after Emacs reads your init file, if you have not yet given it a non-nil value.Vauto-save-visited-file-name Non-nil says auto-save a buffer in the file it is visiting, when practical. Normally auto-save files are written under other names.Vauto-save-include-big-deletions If non-nil, auto-save even if a large part of the text is deleted. If nil, deleting a substantial portion of the text disables auto-save in the buffer; this is the default behavior, because the auto-save file is usually more useful if it contains the deleted text.Vwrite-region-inhibit-fsync Non-nil means don't call fsync in `write-region'. This variable affects calls to `write-region' as well as save commands. Setting this to nil may avoid data loss if the system loses power or the operating system crashes. By default, it is non-nil in batch mode.Vdelete-by-moving-to-trash Specifies whether to use the system's trash can. When non-nil, certain file deletion commands use the function `move-file-to-trash' instead of deleting files outright. This includes interactive calls to `delete-file' and `delete-directory' and the Dired deletion commands.Sdired.o Fdirectory-files Return a list of names of files in DIRECTORY. There are four optional arguments: If FULL is non-nil, return absolute file names. Otherwise return names that are relative to the specified directory. If MATCH is non-nil, mention only file names whose non-directory part matches the regexp MATCH. If NOSORT is non-nil, the list is not sorted--its order is unpredictable. Otherwise, the list returned is sorted with `string-lessp'. NOSORT is useful if you plan to sort the result yourself. If COUNT is non-nil and a natural number, the function will return COUNT number of file names (if so many are present). (fn DIRECTORY &optional FULL MATCH NOSORT COUNT)Fdirectory-files-and-attributes Return a list of names of files and their attributes in DIRECTORY. Value is a list of the form: ((FILE1 . FILE1-ATTRS) (FILE2 . FILE2-ATTRS) ...) where each FILEn-ATTRS is the attributes of FILEn as returned by `file-attributes'. This function accepts five optional arguments: If FULL is non-nil, return absolute file names. Otherwise return names that are relative to the specified directory. If MATCH is non-nil, mention only file names whose non-directory part matches the regexp MATCH. If NOSORT is non-nil, the list is not sorted--its order is unpredictable. NOSORT is useful if you plan to sort the result yourself. ID-FORMAT specifies the preferred format of attributes uid and gid, see `file-attributes' for further documentation. If COUNT is non-nil and a natural number, the function will return COUNT number of file names (if so many are present). On MS-Windows, performance depends on `w32-get-true-file-attributes', which see. (fn DIRECTORY &optional FULL MATCH NOSORT ID-FORMAT COUNT)Ffile-name-completion Complete file name FILE in directory DIRECTORY. Returns the longest string common to all file names in DIRECTORY that start with FILE. If there is only one and FILE matches it exactly, returns t. Returns nil if DIRECTORY contains no name starting with FILE. If PREDICATE is non-nil, call PREDICATE with each possible completion (in absolute form) and ignore it if PREDICATE returns nil. This function ignores some of the possible completions as determined by the variables `completion-regexp-list' and `completion-ignored-extensions', which see. `completion-regexp-list' is matched against file and directory names relative to DIRECTORY. (fn FILE DIRECTORY &optional PREDICATE)Ffile-name-all-completions Return a list of all completions of file name FILE in directory DIRECTORY. These are all file names in directory DIRECTORY which begin with FILE. This function ignores some of the possible completions as determined by `completion-regexp-list', which see. `completion-regexp-list' is matched against file and directory names relative to DIRECTORY. (fn FILE DIRECTORY)Ffile-attributes Return a list of attributes of file FILENAME. Value is nil if specified file does not exist. ID-FORMAT specifies the preferred format of attributes uid and gid (see below) - valid values are `string' and `integer'. The latter is the default, but we plan to change that, so you should specify a non-nil value for ID-FORMAT if you use the returned uid or gid. To access the elements returned, the following access functions are provided: `file-attribute-type', `file-attribute-link-number', `file-attribute-user-id', `file-attribute-group-id', `file-attribute-access-time', `file-attribute-modification-time', `file-attribute-status-change-time', `file-attribute-size', `file-attribute-modes', `file-attribute-inode-number', and `file-attribute-device-number'. Elements of the attribute list are: 0. t for directory, string (name linked to) for symbolic link, or nil. 1. Number of links to file. 2. File uid as a string or (if ID-FORMAT is `integer' or a string value cannot be looked up) as an integer. 3. File gid, likewise. 4. Last access time, in the style of `current-time'. (See a note below about access time on FAT-based filesystems.) 5. Last modification time, likewise. This is the time of the last change to the file's contents. 6. Last status change time, likewise. This is the time of last change to the file's attributes: owner and group, access mode bits, etc. 7. Size in bytes, as an integer. 8. File modes, as a string of ten letters or dashes as in ls -l. 9. An unspecified value, present only for backward compatibility. 10. inode number, as a nonnegative integer. 11. Filesystem device identifier, as an integer or a cons cell of integers. Large integers are bignums, so `eq' might not work on them. On most filesystems, the combination of the inode and the device identifier uniquely identifies the file. This unique file identification is provided by the access function `file-attribute-file-identifier'. On MS-Windows, performance depends on `w32-get-true-file-attributes', which see. On some FAT-based filesystems, only the date of last access is recorded, so last access time will always be midnight of that day. (fn FILENAME &optional ID-FORMAT)Ffile-attributes-lessp Return t if first arg file attributes list is less than second. Comparison is in lexicographic order and case is significant. (fn F1 F2)Fsystem-users Return a list of user names currently registered in the system. If we don't know how to determine that on this platform, just return a list with one element, taken from `user-real-login-name'. (fn)Fsystem-groups Return a list of user group names currently registered in the system. The value may be nil if not supported on this platform. (fn)Vcompletion-ignored-extensions Completion ignores file names ending in any string in this list. It does not ignore them if all possible completions end in one of these strings or when displaying a list of completions. It ignores directory names if they match any string in this list which ends in a slash.Scmds.o Fforward-char Move point N characters forward (backward if N is negative). On reaching end or beginning of buffer, stop and signal error. Interactively, N is the numeric prefix argument. If N is omitted or nil, move point 1 character forward. Depending on the bidirectional context, the movement may be to the right or to the left on the screen. This is in contrast with \[right-char], which see. (fn &optional N)Fbackward-char Move point N characters backward (forward if N is negative). On attempt to pass beginning or end of buffer, stop and signal error. Interactively, N is the numeric prefix argument. If N is omitted or nil, move point 1 character backward. Depending on the bidirectional context, the movement may be to the right or to the left on the screen. This is in contrast with \[left-char], which see. (fn &optional N)Fforward-line Move N lines forward (backward if N is negative). Precisely, if point is on line I, move to the start of line I + N ("start of line" in the logical order). If there isn't room, go as far as possible (no error). Interactively, N is the numeric prefix argument and defaults to 1. Returns the count of lines left to move. If moving forward, that is N minus number of lines moved; if backward, N plus number moved. Exception: With positive N, a non-empty line at the end of the buffer, or of its accessible portion, counts as one line successfully moved (for the return value). This means that the function will move point to the end of such a line and will count it as a line moved across, even though there is no next line to go to its beginning. (fn &optional N)Fbeginning-of-line Move point to beginning of current line (in the logical order). With argument N not nil or 1, move forward N - 1 lines first. If point reaches the beginning or end of buffer, it stops there. This function constrains point to the current field unless this moves point to a different line from the original, unconstrained result. If N is nil or 1, and a front-sticky field starts at point, the point does not move. To ignore field boundaries bind `inhibit-field-text-motion' to t, or use the `forward-line' function instead. For instance, `(forward-line 0)' does the same thing as `(beginning-of-line)', except that it ignores field boundaries. (fn &optional N)Fend-of-line Move point to end of current line (in the logical order). With argument N not nil or 1, move forward N - 1 lines first. If point reaches the beginning or end of buffer, it stops there. To ignore intangibility, bind `inhibit-point-motion-hooks' to t. This function constrains point to the current field unless this moves point to a different line from the original, unconstrained result. If N is nil or 1, and a rear-sticky field ends at point, the point does not move. To ignore field boundaries bind `inhibit-field-text-motion' to t. (fn &optional N)Fdelete-char Delete the following N characters (previous if N is negative). Optional second arg KILLFLAG non-nil means kill instead (save in kill ring). Interactively, N is the prefix arg, and KILLFLAG is set if N was explicitly specified. The command `delete-forward-char' is preferable for interactive use, e.g. because it respects values of `delete-active-region' and `overwrite-mode'. (fn N &optional KILLFLAG)Fself-insert-command Insert the character you type. Whichever character C you type to run this command is inserted. The numeric prefix argument N says how many times to repeat the insertion. Before insertion, `expand-abbrev' is executed if the inserted character does not have word syntax and the previous character in the buffer does. After insertion, `internal-auto-fill' is called if `auto-fill-function' is non-nil and if the `auto-fill-chars' table has a non-nil value for the inserted character. At the end, it runs `post-self-insert-hook'. (fn N &optional C)Vpost-self-insert-hook Hook run at the end of `self-insert-command'. This is run after inserting a character. The hook can access the inserted character via `last-command-event'.Scasetab.o Fcase-table-p Return t if OBJECT is a case table. See `set-case-table' for more information on these data structures. (fn OBJECT)Fcurrent-case-table Return the case table of the current buffer. (fn)Fstandard-case-table Return the standard case table. This is the one used for new buffers. (fn)Fset-case-table Select a new case table for the current buffer. A case table is a char-table which maps characters to their lower-case equivalents. It also has three "extra" slots which may be additional char-tables or nil. These slots are called UPCASE, CANONICALIZE and EQUIVALENCES. UPCASE maps each non-upper-case character to its upper-case equivalent. (The value in UPCASE for an upper-case character is never used.) If lower and upper case characters are in 1-1 correspondence, you may use nil and the upcase table will be deduced from DOWNCASE. CANONICALIZE maps each character to a canonical equivalent; any two characters that are related by case-conversion have the same canonical equivalent character; it may be nil, in which case it is deduced from DOWNCASE and UPCASE. EQUIVALENCES is a map that cyclically permutes each equivalence class (of characters with the same canonical equivalent); it may be nil, in which case it is deduced from CANONICALIZE. (fn TABLE)Fset-standard-case-table Select a new standard case table for new buffers. See `set-case-table' for more info on case tables. (fn TABLE)Scasefiddle.o Fupcase Convert argument to upper case and return that. The argument may be a character or string. The result has the same type. (See `downcase' for further details about the type.) The argument object is not altered--the value is a copy. If argument is a character, characters which map to multiple code points when cased, e.g. fi, are returned unchanged. See also `capitalize', `downcase' and `upcase-initials'. (fn OBJ)Fdowncase Convert argument to lower case and return that. The argument may be a character or string. The result has the same type, including the multibyteness of the string. This means that if this function is called with a unibyte string argument, and downcasing it would turn it into a multibyte string (according to the current locale), the downcasing is done using ASCII "C" rules instead. To accurately downcase according to the current locale, the string must be converted into multibyte first. The argument object is not altered--the value is a copy. (fn OBJ)Fcapitalize Convert argument to capitalized form and return that. This means that each word's first character is converted to either title case or upper case, and the rest to lower case. The argument may be a character or string. The result has the same type. (See `downcase' for further details about the type.) The argument object is not altered--the value is a copy. If argument is a character, characters which map to multiple code points when cased, e.g. fi, are returned unchanged. (fn OBJ)Fupcase-initials Convert the initial of each word in the argument to upper case. This means that each word's first character is converted to either title case or upper case, and the rest are left unchanged. The argument may be a character or string. The result has the same type. (See `downcase' for further details about the type.) The argument object is not altered--the value is a copy. If argument is a character, characters which map to multiple code points when cased, e.g. fi, are returned unchanged. (fn OBJ)Fupcase-region Convert the region to upper case. In programs, wants two arguments. These arguments specify the starting and ending character numbers of the region to operate on. When used as a command, the text between point and the mark is operated on. See also `capitalize-region'. (fn BEG END &optional REGION-NONCONTIGUOUS-P)Fdowncase-region Convert the region to lower case. In programs, wants two arguments. These arguments specify the starting and ending character numbers of the region to operate on. When used as a command, the text between point and the mark is operated on. (fn BEG END &optional REGION-NONCONTIGUOUS-P)Fcapitalize-region Convert the region to capitalized form. This means that each word's first character is converted to either title case or upper case, and the rest to lower case. In programs, give two arguments, the starting and ending character positions to operate on. (fn BEG END &optional REGION-NONCONTIGUOUS-P)Fupcase-initials-region Upcase the initial of each word in the region. This means that each word's first character is converted to either title case or upper case, and the rest are left unchanged. In programs, give two arguments, the starting and ending character positions to operate on. (fn BEG END &optional REGION-NONCONTIGUOUS-P)Fupcase-word Convert to upper case from point to end of word, moving over. If point is in the middle of a word, the part of that word before point is ignored when moving forward. With negative argument, convert previous words but do not move. See also `capitalize-word'. (fn ARG)Fdowncase-word Convert to lower case from point to end of word, moving over. If point is in the middle of a word, the part of that word before point is ignored when moving forward. With negative argument, convert previous words but do not move. (fn ARG)Fcapitalize-word Capitalize from point to the end of word, moving over. With numerical argument ARG, capitalize the next ARG-1 words as well. This gives the word(s) a first character in upper case and the rest lower case. If point is in the middle of a word, the part of that word before point is ignored when moving forward. With negative argument, capitalize previous words but do not move. (fn ARG)Vregion-extract-function Function to get the region's content. Called with one argument METHOD which can be: - nil: return the content as a string (list of strings for non-contiguous regions). - `delete-only': delete the region; the return value is undefined. - `bounds': return the boundaries of the region as a list of one or more cons cells of the form (START . END). - anything else: delete the region and return its content as a string (or list of strings for non-contiguous regions), after filtering it with `filter-buffer-substring', which is called, for each contiguous sub-region, with METHOD as its 3rd argument.Sindent.o Fcurrent-column Return the horizontal position of point. Beginning of line is column 0. This is calculated by adding together the widths of all the displayed representations of the character between the start of the previous line and point (e.g., control characters will have a width of 2 or 4, tabs will have a variable width). Ignores finite width of frame, which means that this function may return values greater than (frame-width). In a buffer with very long lines, the value will be an approximation, because calculating the exact number is very expensive. Whether the line is visible (if `selective-display' is t) has no effect; however, ^M is treated as end of line when `selective-display' is t. Text that has an invisible property is considered as having width 0, unless `buffer-invisibility-spec' specifies that it is replaced by an ellipsis. (fn)Findent-to Indent from point with tabs and spaces until COLUMN is reached. Optional second argument MINIMUM says always do at least MINIMUM spaces even if that goes past COLUMN; by default, MINIMUM is zero. Whether this uses tabs or spaces depends on `indent-tabs-mode'. The return value is the column where the insertion ends. (fn COLUMN &optional MINIMUM)Fcurrent-indentation Return the indentation of the current line. This is the horizontal position of the character following any initial whitespace. Text that has an invisible property is considered as having width 0, unless `buffer-invisibility-spec' specifies that it is replaced by an ellipsis. (fn)Fmove-to-column Move point to column COLUMN in the current line. Interactively, COLUMN is the value of prefix numeric argument. The column of a character is calculated by adding together the widths as displayed of the previous characters in the line. This function ignores line-continuation; there is no upper limit on the column number a character can have and horizontal scrolling has no effect. Text that has an invisible property is considered as having width 0, unless `buffer-invisibility-spec' specifies that it is replaced by an ellipsis. If specified column is within a character, point goes after that character. If it's past end of line, point goes to end of line. Optional second argument FORCE non-nil means if COLUMN is in the middle of a tab character, either change it to spaces (when `indent-tabs-mode' is nil), or insert enough spaces before it to reach COLUMN (otherwise). In addition, if FORCE is t, and the line is too short to reach COLUMN, add spaces/tabs to get there. The return value is the current column. (fn COLUMN &optional FORCE)Fcompute-motion Scan through the current buffer, calculating screen position. Scan the current buffer forward from offset FROM, assuming it is at position FROMPOS--a cons of the form (HPOS . VPOS)-- to position TO or position TOPOS--another cons of the form (HPOS . VPOS)-- and return the ending buffer position and screen location. If TOPOS is nil, the actual width and height of the window's text area are used. There are three additional arguments: WIDTH is the number of columns available to display text; this affects handling of continuation lines. A value of nil corresponds to the actual number of available text columns. OFFSETS is either nil or a cons cell (HSCROLL . TAB-OFFSET). HSCROLL is the number of columns not being displayed at the left margin; this is usually taken from a window's hscroll member. TAB-OFFSET is the number of columns of the first tab that aren't being displayed, perhaps because the line was continued within it. If OFFSETS is nil, HSCROLL and TAB-OFFSET are assumed to be zero. WINDOW is the window to operate on. It is used to choose the display table; if it is showing the current buffer, it is used also for deciding which overlay properties apply. Note that `compute-motion' always operates on the current buffer. The value is a list of five elements: (POS HPOS VPOS PREVHPOS CONTIN) POS is the buffer position where the scan stopped. VPOS is the vertical position where the scan stopped. HPOS is the horizontal position where the scan stopped. PREVHPOS is the horizontal position one character back from POS. CONTIN is t if a line was continued after (or within) the previous character. For example, to find the buffer position of column COL of line LINE of a certain window, pass the window's starting location as FROM and the window's upper-left coordinates as FROMPOS. Pass the buffer's (point-max) as TO, to limit the scan to the end of the visible section of the buffer, and pass LINE and COL as TOPOS. (fn FROM FROMPOS TO TOPOS WIDTH OFFSETS WINDOW)Fline-number-display-width Return the width used for displaying line numbers in the selected window. If optional argument PIXELWISE is the symbol `columns', return the width in units of the frame's canonical character width. In this case, the value is a float. If optional argument PIXELWISE is t or any other non-nil value, return the width as an integer number of pixels. Otherwise return the value as an integer number of columns of the face used to display line numbers, `line-number'. Note that in the latter case, the value doesn't include the 2 columns used for padding the numbers on display. (fn &optional PIXELWISE)Fvertical-motion Move point to start of the screen line LINES lines down. If LINES is negative, this means moving up. This function is an ordinary cursor motion function which calculates the new position based on how text would be displayed. The new position may be the start of a line, or the start of a continuation line, or the start of the visible portion of a horizontally-scrolled line. The function returns number of screen lines moved over; that usually equals LINES, but may be closer to zero if beginning or end of buffer was reached. The optional second argument WINDOW specifies the window to use for parameters such as width, horizontal scrolling, and so on. The default is to use the selected window's parameters. If LINES is zero, point will move to the first visible character on the current screen line. LINES can optionally take the form (COLS . LINES), in which case the motion will stop at the COLSth column from the visual start of the line (if such column exists on that line, that is). If the line is scrolled horizontally, COLS is interpreted visually, i.e., as addition to the columns of text beyond the left edge of the window. If LINES is a cons cell, its car COLS can be a float, which allows specifying an accurate position of point on a screen line that mixes fonts or uses variable-pitch font: COLS is interpreted in units of the canonical character width, and is internally converted to pixel units; point will then stop at the position closest to that pixel coordinate. The cdr of the cons, LINES, must be an integer; if it is zero, this function moves point horizontally in the current screen line, to the position specified by COLS. The optional third argument CUR-COL specifies the horizontal window-relative coordinate of point, in units of frame's canonical character width, where the function is invoked. If this argument is omitted or nil, the function will determine the point coordinate by going back to the beginning of the line. `vertical-motion' always uses the current buffer, regardless of which buffer is displayed in WINDOW. This is consistent with other cursor motion functions and makes it possible to use `vertical-motion' in any buffer, whether or not it is currently displayed in some window. (fn LINES &optional WINDOW CUR-COL)Vindent-tabs-mode Indentation can insert tabs if this is non-nil.Ssearch.o Flooking-at Return t if text after point matches regular expression REGEXP. By default, this function modifies the match data that `match-beginning', `match-end' and `match-data' access. If INHIBIT-MODIFY is non-nil, don't modify the match data. (fn REGEXP &optional INHIBIT-MODIFY)Fposix-looking-at Return t if text after point matches REGEXP according to Posix rules. Find the longest match, in accordance with Posix regular expression rules. By default, this function modifies the match data that `match-beginning', `match-end' and `match-data' access. If INHIBIT-MODIFY is non-nil, don't modify the match data. (fn REGEXP &optional INHIBIT-MODIFY)Fstring-match Return index of start of first match for REGEXP in STRING, or nil. Matching ignores case if `case-fold-search' is non-nil. If third arg START is non-nil, start search at that index in STRING. If INHIBIT-MODIFY is non-nil, match data is not changed. If INHIBIT-MODIFY is nil or missing, match data is changed, and `match-end' and `match-beginning' give indices of substrings matched by parenthesis constructs in the pattern. You can use the function `match-string' to extract the substrings matched by the parenthesis constructions in REGEXP. For index of first char beyond the match, do (match-end 0). (fn REGEXP STRING &optional START INHIBIT-MODIFY)Fposix-string-match Return index of start of first match for Posix REGEXP in STRING, or nil. Find the longest match, in accord with Posix regular expression rules. Case is ignored if `case-fold-search' is non-nil in the current buffer. If INHIBIT-MODIFY is non-nil, match data is not changed. If INHIBIT-MODIFY is nil or missing, match data is changed, and `match-end' and `match-beginning' give indices of substrings matched by parenthesis constructs in the pattern. You can use the function `match-string' to extract the substrings matched by the parenthesis constructions in REGEXP. For index of first char beyond the match, do (match-end 0). (fn REGEXP STRING &optional START INHIBIT-MODIFY)Fsearch-backward Search backward from point for STRING. Set point to the beginning of the occurrence found, and return point. An optional second argument bounds the search; it is a buffer position. The match found must not begin before that position. A value of nil means search to the beginning of the accessible portion of the buffer. Optional third argument, if t, means if fail just return nil (no error). If not nil and not t, position at limit of search and return nil. Optional fourth argument COUNT, if a positive number, means to search for COUNT successive occurrences. If COUNT is negative, search forward, instead of backward, for -COUNT occurrences. A value of nil means the same as 1. With COUNT positive, the match found is the COUNTth to last one (or last, if COUNT is 1 or nil) in the buffer located entirely before the origin of the search; correspondingly with COUNT negative. Search case-sensitivity is determined by the value of the variable `case-fold-search', which see. See also the functions `match-beginning', `match-end' and `replace-match'. (fn STRING &optional BOUND NOERROR COUNT)Fsearch-forward Search forward from point for STRING. Set point to the end of the occurrence found, and return point. An optional second argument bounds the search; it is a buffer position. The match found must not end after that position. A value of nil means search to the end of the accessible portion of the buffer. Optional third argument, if t, means if fail just return nil (no error). If not nil and not t, move to limit of search and return nil. Optional fourth argument COUNT, if a positive number, means to search for COUNT successive occurrences. If COUNT is negative, search backward, instead of forward, for -COUNT occurrences. A value of nil means the same as 1. With COUNT positive, the match found is the COUNTth one (or first, if COUNT is 1 or nil) in the buffer located entirely after the origin of the search; correspondingly with COUNT negative. Search case-sensitivity is determined by the value of the variable `case-fold-search', which see. See also the functions `match-beginning', `match-end' and `replace-match'. (fn STRING &optional BOUND NOERROR COUNT)Fre-search-backward Search backward from point for regular expression REGEXP. This function is almost identical to `re-search-forward', except that by default it searches backward instead of forward, and the sign of COUNT also indicates exactly the opposite searching direction. See `re-search-forward' for details. Note that searching backwards may give a shorter match than expected, because REGEXP is still matched in the forward direction. See Info anchor `(elisp) re-search-backward' for details. (fn REGEXP &optional BOUND NOERROR COUNT)Fre-search-forward Search forward from point for regular expression REGEXP. Set point to the end of the occurrence found, and return point. The optional second argument BOUND is a buffer position that bounds the search. The match found must not end after that position. A value of nil means search to the end of the accessible portion of the buffer. The optional third argument NOERROR indicates how errors are handled when the search fails. If it is nil or omitted, emit an error; if it is t, simply return nil and do nothing; if it is neither nil nor t, move to the limit of search and return nil. The optional fourth argument COUNT is a number that indicates the search direction and the number of occurrences to search for. If it is positive, search forward for COUNT successive occurrences; if it is negative, search backward, instead of forward, for -COUNT occurrences. A value of nil means the same as 1. With COUNT positive/negative, the match found is the COUNTth/-COUNTth one in the buffer located entirely after/before the origin of the search. Search case-sensitivity is determined by the value of the variable `case-fold-search', which see. See also the functions `match-beginning', `match-end', `match-string', and `replace-match'. (fn REGEXP &optional BOUND NOERROR COUNT)Fposix-search-backward Search backward from point for match for REGEXP according to Posix rules. Find the longest match in accord with Posix regular expression rules. Set point to the beginning of the occurrence found, and return point. An optional second argument bounds the search; it is a buffer position. The match found must not begin before that position. A value of nil means search to the beginning of the accessible portion of the buffer. Optional third argument, if t, means if fail just return nil (no error). If not nil and not t, position at limit of search and return nil. Optional fourth argument COUNT, if a positive number, means to search for COUNT successive occurrences. If COUNT is negative, search forward, instead of backward, for -COUNT occurrences. A value of nil means the same as 1. With COUNT positive, the match found is the COUNTth to last one (or last, if COUNT is 1 or nil) in the buffer located entirely before the origin of the search; correspondingly with COUNT negative. Search case-sensitivity is determined by the value of the variable `case-fold-search', which see. See also the functions `match-beginning', `match-end', `match-string', and `replace-match'. (fn REGEXP &optional BOUND NOERROR COUNT)Fposix-search-forward Search forward from point for REGEXP according to Posix rules. Find the longest match in accord with Posix regular expression rules. Set point to the end of the occurrence found, and return point. An optional second argument bounds the search; it is a buffer position. The match found must not end after that position. A value of nil means search to the end of the accessible portion of the buffer. Optional third argument, if t, means if fail just return nil (no error). If not nil and not t, move to limit of search and return nil. Optional fourth argument COUNT, if a positive number, means to search for COUNT successive occurrences. If COUNT is negative, search backward, instead of forward, for -COUNT occurrences. A value of nil means the same as 1. With COUNT positive, the match found is the COUNTth one (or first, if COUNT is 1 or nil) in the buffer located entirely after the origin of the search; correspondingly with COUNT negative. Search case-sensitivity is determined by the value of the variable `case-fold-search', which see. See also the functions `match-beginning', `match-end', `match-string', and `replace-match'. (fn REGEXP &optional BOUND NOERROR COUNT)Freplace-match Replace text matched by last search with NEWTEXT. Leave point at the end of the replacement text. If optional second arg FIXEDCASE is non-nil, do not alter the case of the replacement text. Otherwise, maybe capitalize the whole text, or maybe just word initials, based on the replaced text. If the replaced text has only capital letters and has at least one multiletter word, convert NEWTEXT to all caps. Otherwise if all words are capitalized in the replaced text, capitalize each word in NEWTEXT. Note that what exactly is a word is determined by the syntax tables in effect in the current buffer. If optional third arg LITERAL is non-nil, insert NEWTEXT literally. Otherwise treat `\' as special: `\&' in NEWTEXT means substitute original matched text. `\N' means substitute what matched the Nth `\(...\)'. If Nth parens didn't match, substitute nothing. `\\' means insert one `\'. `\?' is treated literally (for compatibility with `query-replace-regexp'). Any other character following `\' signals an error. Case conversion does not apply to these substitutions. If optional fourth argument STRING is non-nil, it should be a string to act on; this should be the string on which the previous match was done via `string-match'. In this case, `replace-match' creates and returns a new string, made by copying STRING and replacing the part of STRING that was matched (the original STRING itself is not altered). The optional fifth argument SUBEXP specifies a subexpression; it says to replace just that subexpression with NEWTEXT, rather than replacing the entire matched text. This is, in a vague sense, the inverse of using `\N' in NEWTEXT; `\N' copies subexp N into NEWTEXT, but using N as SUBEXP puts NEWTEXT in place of subexp N. This is useful only after a regular expression search or match, since only regular expressions have distinguished subexpressions. (fn NEWTEXT &optional FIXEDCASE LITERAL STRING SUBEXP)Fmatch-beginning Return position of start of text matched by last search. SUBEXP, a number, specifies which parenthesized expression in the last regexp. Value is nil if SUBEXPth pair didn't match, or there were less than SUBEXP pairs. Zero means the entire text matched by the whole regexp or whole string. Return value is undefined if the last search failed. (fn SUBEXP)Fmatch-end Return position of end of text matched by last search. SUBEXP, a number, specifies which parenthesized expression in the last regexp. Value is nil if SUBEXPth pair didn't match, or there were less than SUBEXP pairs. Zero means the entire text matched by the whole regexp or whole string. Return value is undefined if the last search failed. (fn SUBEXP)Fmatch-data Return a list of positions that record text matched by the last search. Element 2N of the returned list is the position of the beginning of the match of the Nth subexpression; it corresponds to `(match-beginning N)'; element 2N + 1 is the position of the end of the match of the Nth subexpression; it corresponds to `(match-end N)'. See `match-beginning' and `match-end'. If the last search was on a buffer, all the elements are by default markers or nil (nil when the Nth pair didn't match); they are integers or nil if the search was on a string. But if the optional argument INTEGERS is non-nil, the elements that represent buffer positions are always integers, not markers, and (if the search was on a buffer) the buffer itself is appended to the list as one additional element. Use `set-match-data' to reinstate the match data from the elements of this list. Note that non-matching optional groups at the end of the regexp are elided instead of being represented with two `nil's each. For instance: (progn (string-match "^\(a\)?\(b\)\(c\)?$" "b") (match-data)) => (0 1 nil nil 0 1) If REUSE is a list, store the value in REUSE by destructively modifying it. If REUSE is long enough to hold all the values, its length remains the same, and any unused elements are set to nil. If REUSE is not long enough, it is extended. Note that if REUSE is long enough and INTEGERS is non-nil, no consing is done to make the return value; this minimizes GC. If optional third argument RESEAT is non-nil, any previous markers on the REUSE list will be modified to point to nowhere. Return value is undefined if the last search failed. (fn &optional INTEGERS REUSE RESEAT)Fset-match-data Set internal data on last search match from elements of LIST. LIST should have been created by calling `match-data' previously. If optional arg RESEAT is non-nil, make markers on LIST point nowhere. (fn LIST &optional RESEAT)Fmatch-data--translate Add N to all positions in the match data. Internal. (fn N)Fregexp-quote Return a regexp string which matches exactly STRING and nothing else. (fn STRING)Fnewline-cache-check Check the newline cache of BUFFER against buffer contents. BUFFER defaults to the current buffer. Value is an array of 2 sub-arrays of buffer positions for newlines, the first based on the cache, the second based on actually scanning the buffer. If the buffer doesn't have a cache, the value is nil. (fn &optional BUFFER)Vsearch-spaces-regexp Regexp to substitute for bunches of spaces in regexp search. Some commands use this for user-specified regexps. Spaces that occur inside character classes or repetition operators or other such regexp constructs are not replaced with this. A value of nil (which is the normal value) means treat spaces literally. Note that a value with capturing groups can change the numbering of existing capture groups in unexpected ways.Vinhibit-changing-match-data Internal use only. If non-nil, the primitive searching and matching functions such as `looking-at', `string-match', `re-search-forward', etc., do not set the match data. The proper way to use this variable is to bind it with `let' around a small expression.Sregex-emacs.o Sundo.o Fundo-boundary Mark a boundary between units of undo. An undo command will stop at this point, but another undo command will undo to the previous boundary. (fn)Vundo-limit Keep no more undo information once it exceeds this size. This limit is applied when garbage collection happens. When a previous command increases the total undo list size past this value, the earlier commands that came before it are forgotten. The size is counted as the number of bytes occupied, which includes both saved text and other data.Vundo-strong-limit Don't keep more than this much size of undo information. This limit is applied when garbage collection happens. When a previous command increases the total undo list size past this value, that command and the earlier commands that came before it are forgotten. However, the most recent buffer-modifying command's undo info is never discarded for this reason. The size is counted as the number of bytes occupied, which includes both saved text and other data.Vundo-outer-limit Outer limit on size of undo information for one command. At garbage collection time, if the current command has produced more than this much undo information, it discards the info and displays a warning. This is a last-ditch limit to prevent memory overflow. The size is counted as the number of bytes occupied, which includes both saved text and other data. A value of nil means no limit. In this case, accumulating one huge undo entry could make Emacs crash as a result of memory overflow. In fact, this calls the function which is the value of `undo-outer-limit-function' with one argument, the size. The text above describes the behavior of the function that variable usually specifies.Vundo-outer-limit-function Function to call when an undo list exceeds `undo-outer-limit'. This function is called with one argument, the current undo list size for the most recent command (since the last undo boundary). If the function returns t, that means truncation has been fully handled. If it returns nil, the other forms of truncation are done. Garbage collection is inhibited around the call to this function, so it must make sure not to do a lot of consing.Vundo-inhibit-record-point Non-nil means do not record `point' in `buffer-undo-list'.Salloc.o Fmake-string Return a newly created string of length LENGTH, with INIT in each element. LENGTH must be an integer. INIT must be an integer that represents a character. If optional argument MULTIBYTE is non-nil, the result will be a multibyte string even if INIT is an ASCII character. (fn LENGTH INIT &optional MULTIBYTE)Fmake-bool-vector Return a new bool-vector of length LENGTH, using INIT for each element. LENGTH must be a number. INIT matters only in whether it is t or nil. (fn LENGTH INIT)Fbool-vector Return a new bool-vector with specified arguments as elements. Allows any number of arguments, including zero. (fn &rest OBJECTS)Fcons Create a new cons, give it CAR and CDR as components, and return it. (fn CAR CDR)Flist Return a newly created list with specified arguments as elements. Allows any number of arguments, including zero. (fn &rest OBJECTS)Fmake-list Return a newly created list of length LENGTH, with each element being INIT. (fn LENGTH INIT)Fmake-record Create a new record. TYPE is its type as returned by `type-of'; it should be either a symbol or a type descriptor. SLOTS is the number of non-type slots, each initialized to INIT. (fn TYPE SLOTS INIT)Frecord Create a new record. TYPE is its type as returned by `type-of'; it should be either a symbol or a type descriptor. SLOTS is used to initialize the record slots with shallow copies of the arguments. (fn TYPE &rest SLOTS)Fmake-vector Return a newly created vector of length LENGTH, with each element being INIT. See also the function `vector'. (fn LENGTH INIT)Fvector Return a newly created vector with specified arguments as elements. Allows any number of arguments, including zero. (fn &rest OBJECTS)Fmake-byte-code Create a byte-code object with specified arguments as elements. The arguments should be the ARGLIST, bytecode-string BYTE-CODE, constant vector CONSTANTS, maximum stack size DEPTH, (optional) DOCSTRING, and (optional) INTERACTIVE-SPEC. The first four arguments are required; at most six have any significance. The ARGLIST can be either like the one of `lambda', in which case the arguments will be dynamically bound before executing the byte code, or it can be an integer of the form NNNNNNNRMMMMMMM where the 7bit MMMMMMM specifies the minimum number of arguments, the 7-bit NNNNNNN specifies the maximum number of arguments (ignoring &rest) and the R bit specifies whether there is a &rest argument to catch the left-over arguments. If such an integer is used, the arguments will not be dynamically bound but will be instead pushed on the stack before executing the byte-code. (fn ARGLIST BYTE-CODE CONSTANTS DEPTH &optional DOCSTRING INTERACTIVE-SPEC &rest ELEMENTS)Fmake-closure Create a byte-code closure from PROTOTYPE and CLOSURE-VARS. Return a copy of PROTOTYPE, a byte-code object, with CLOSURE-VARS replacing the elements in the beginning of the constant-vector. (fn PROTOTYPE &rest CLOSURE-VARS)Fmake-symbol Return a newly allocated uninterned symbol whose name is NAME. Its value is void, and its function definition and property list are nil. (fn NAME)Fmake-marker Return a newly allocated marker which does not point at any place. (fn)Fmake-finalizer Make a finalizer that will run FUNCTION. FUNCTION will be called after garbage collection when the returned finalizer object becomes unreachable. If the finalizer object is reachable only through references from finalizer objects, it does not count as reachable for the purpose of deciding whether to run FUNCTION. FUNCTION will be run once per finalizer object. (fn FUNCTION)Fpurecopy Make a copy of object OBJ in pure storage. Recursively copies contents of vectors and cons cells. Does not copy symbols. Copies strings without text properties. (fn OBJ)Fgarbage-collect Reclaim storage for Lisp objects no longer needed. Garbage collection happens automatically if you cons more than `gc-cons-threshold' bytes of Lisp data since previous garbage collection. `garbage-collect' normally returns a list with info on amount of space in use, where each entry has the form (NAME SIZE USED FREE), where: - NAME is a symbol describing the kind of objects this entry represents, - SIZE is the number of bytes used by each one, - USED is the number of those objects that were found live in the heap, - FREE is the number of those objects that are not live but that Emacs keeps around for future allocations (maybe because it does not know how to return them to the OS). However, if there was overflow in pure space, and Emacs was dumped using the "unexec" method, `garbage-collect' returns nil, because real GC can't be done. Note that calling this function does not guarantee that absolutely all unreachable objects will be garbage-collected. Emacs uses a mark-and-sweep garbage collector, but is conservative when it comes to collecting objects in some circumstances. For further details, see Info node `(elisp)Garbage Collection'. (fn)Fgarbage-collect-maybe Call `garbage-collect' if enough allocation happened. FACTOR determines what "enough" means here: If FACTOR is a positive number N, it means to run GC if more than 1/Nth of the allocations needed to trigger automatic allocation took place. Therefore, as N gets higher, this is more likely to perform a GC. Returns non-nil if GC happened, and nil otherwise. (fn FACTOR)Fmemory-info Return a list of (TOTAL-RAM FREE-RAM TOTAL-SWAP FREE-SWAP). All values are in Kbytes. If there is no swap space, last two values are zero. If the system is not supported or memory information can't be obtained, return nil. If `default-directory' is remote, return memory information of the respective remote host. (fn)Fmemory-use-counts Return a list of counters that measure how much consing there has been. Each of these counters increments for a certain kind of object. The counters wrap around from the largest positive integer to zero. Garbage collection does not decrease them. The elements of the value are as follows: (CONSES FLOATS VECTOR-CELLS SYMBOLS STRING-CHARS INTERVALS STRINGS) All are in units of 1 = one object consed except for VECTOR-CELLS and STRING-CHARS, which count the total length of objects consed. Frames, windows, buffers, and subprocesses count as vectors (but the contents of a buffer's text do not count here). (fn)Fmalloc-info Report malloc information to stderr. This function outputs to stderr an XML-formatted description of the current state of the memory-allocation arenas. (fn)Fmalloc-trim Release free heap memory to the OS. This function asks libc to return unused heap memory back to the operating system. This function isn't guaranteed to do anything, and is mainly meant as a debugging tool. If LEAVE_PADDING is given, ask the system to leave that much unused space in the heap of the Emacs process. This should be an integer, and if not given, it defaults to 0. This function returns nil if no memory could be returned to the system, and non-nil if some memory could be returned. (fn &optional LEAVE-PADDING)Fsuspicious-object Return OBJ, maybe marking it for extra scrutiny. If Emacs is compiled with suspicious object checking, capture a stack trace when OBJ is freed in order to help track down garbage collection bugs. Otherwise, do nothing and return OBJ. (fn OBJ)Vgc-cons-threshold Number of bytes of consing between garbage collections. Garbage collection can happen automatically once this many bytes have been allocated since the last garbage collection. All data types count. Garbage collection happens automatically only when `eval' is called. By binding this temporarily to a large number, you can effectively prevent garbage collection during a part of the program. But be sure to get back to the normal value soon enough, to avoid system-wide memory pressure, and never use a too-high value for prolonged periods of time. See also `gc-cons-percentage'.Vgc-cons-percentage Portion of the heap used for allocation. Garbage collection can happen automatically once this portion of the heap has been allocated since the last garbage collection. By binding this temporarily to a large number, you can effectively prevent garbage collection during a part of the program. But be sure to get back to the normal value soon enough, to avoid system-wide memory pressure, and never use a too-high value for prolonged periods of time. If this portion is smaller than `gc-cons-threshold', this is ignored.Vpure-bytes-used Number of bytes of shareable Lisp data allocated so far.Vcons-cells-consed Number of cons cells that have been consed so far.Vfloats-consed Number of floats that have been consed so far.Vvector-cells-consed Number of vector cells that have been consed so far.Vsymbols-consed Number of symbols that have been consed so far.Vstring-chars-consed Number of string characters that have been consed so far.Vintervals-consed Number of intervals that have been consed so far.Vstrings-consed Number of strings that have been consed so far.Vpurify-flag Non-nil means loading Lisp code in order to dump an executable. This means that certain objects should be allocated in shared (pure) space. It can also be set to a hash-table, in which case this table is used to do hash-consing of the objects allocated to pure space.Vgarbage-collection-messages Non-nil means display messages at start and end of garbage collection.Vpost-gc-hook Hook run after garbage collection has finished.Vmemory-signal-data Precomputed `signal' argument for memory-full error.Vmemory-full Non-nil means Emacs cannot get much more Lisp memory.Vgc-elapsed Accumulated time elapsed in garbage collections. The time is in seconds as a floating point value.Vgcs-done Accumulated number of garbage collections done.Vinteger-width Maximum number N of bits in safely-calculated integers. Integers with absolute values less than 2**N do not signal a range error. N should be nonnegative.Spdumper.o Fdump-emacs-portable Dump current state of Emacs into dump file FILENAME. If TRACK-REFERRERS is non-nil, keep additional debugging information that can help track down the provenance of unsupported object types. (fn FILENAME &optional TRACK-REFERRERS)Fdump-emacs-portable--sort-predicate Internal relocation sorting function. (fn A B)Fdump-emacs-portable--sort-predicate-copied Internal relocation sorting function. (fn A B)Fpdumper-stats Return statistics about portable dumping used by this session. If this Emacs session was started from a dump file, the return value is an alist of the form: ((dumped-with-pdumper . t) (load-time . TIME) (dump-file-name . FILE)) where TIME is the time in seconds it took to restore Emacs state from the dump file, and FILE is the name of the dump file. Value is nil if this session was not started using a dump file. (fn)Sdata.o Feq Return t if the two args are the same Lisp object. (fn OBJ1 OBJ2)Fnull Return t if OBJECT is nil, and return nil otherwise. (fn OBJECT)Ftype-of Return a symbol representing the type of OBJECT. The symbol returned names the object's basic type; for example, (type-of 1) returns `integer'. (fn OBJECT)Fconsp Return t if OBJECT is a cons cell. (fn OBJECT)Fatom Return t if OBJECT is not a cons cell. This includes nil. (fn OBJECT)Flistp Return t if OBJECT is a list, that is, a cons cell or nil. Otherwise, return nil. (fn OBJECT)Fnlistp Return t if OBJECT is not a list. Lists include nil. (fn OBJECT)Fbare-symbol-p Return t if OBJECT is a symbol, but not a symbol together with position. (fn OBJECT)Fsymbol-with-pos-p Return t if OBJECT is a symbol together with position. (fn OBJECT)Fsymbolp Return t if OBJECT is a symbol. (fn OBJECT)Fkeywordp Return t if OBJECT is a keyword. This means that it is a symbol with a print name beginning with `:' interned in the initial obarray. (fn OBJECT)Fvectorp Return t if OBJECT is a vector. (fn OBJECT)Frecordp Return t if OBJECT is a record. (fn OBJECT)Fstringp Return t if OBJECT is a string. (fn OBJECT)Fmultibyte-string-p Return t if OBJECT is a multibyte string. Return nil if OBJECT is either a unibyte string, or not a string. (fn OBJECT)Fchar-table-p Return t if OBJECT is a char-table. (fn OBJECT)Fvector-or-char-table-p Return t if OBJECT is a char-table or vector. (fn OBJECT)Fbool-vector-p Return t if OBJECT is a bool-vector. (fn OBJECT)Farrayp Return t if OBJECT is an array (string or vector). (fn OBJECT)Fsequencep Return t if OBJECT is a sequence (list or array). (fn OBJECT)Fbufferp Return t if OBJECT is an editor buffer. (fn OBJECT)Fmarkerp Return t if OBJECT is a marker (editor pointer). (fn OBJECT)Fuser-ptrp Return t if OBJECT is a module user pointer. (fn OBJECT)Fsubrp Return t if OBJECT is a built-in function. (fn OBJECT)Fbyte-code-function-p Return t if OBJECT is a byte-compiled function object. (fn OBJECT)Fmodule-function-p Return t if OBJECT is a function loaded from a dynamic module. (fn OBJECT)Fchar-or-string-p Return t if OBJECT is a character or a string. (fn OBJECT)Fintegerp Return t if OBJECT is an integer. (fn OBJECT)Finteger-or-marker-p Return t if OBJECT is an integer or a marker (editor pointer). (fn OBJECT)Fnatnump Return t if OBJECT is a nonnegative integer. (fn OBJECT)Fnumberp Return t if OBJECT is a number (floating point or integer). (fn OBJECT)Fnumber-or-marker-p Return t if OBJECT is a number or a marker. (fn OBJECT)Ffloatp Return t if OBJECT is a floating point number. (fn OBJECT)Fthreadp Return t if OBJECT is a thread. (fn OBJECT)Fmutexp Return t if OBJECT is a mutex. (fn OBJECT)Fcondition-variable-p Return t if OBJECT is a condition variable. (fn OBJECT)Fcar Return the car of LIST. If LIST is nil, return nil. Error if LIST is not nil and not a cons cell. See also `car-safe'. See Info node `(elisp)Cons Cells' for a discussion of related basic Lisp concepts such as car, cdr, cons cell and list. (fn LIST)Fcar-safe Return the car of OBJECT if it is a cons cell, or else nil. (fn OBJECT)Fcdr Return the cdr of LIST. If LIST is nil, return nil. Error if LIST is not nil and not a cons cell. See also `cdr-safe'. See Info node `(elisp)Cons Cells' for a discussion of related basic Lisp concepts such as cdr, car, cons cell and list. (fn LIST)Fcdr-safe Return the cdr of OBJECT if it is a cons cell, or else nil. (fn OBJECT)Fsetcar Set the car of CELL to be NEWCAR. Returns NEWCAR. (fn CELL NEWCAR)Fsetcdr Set the cdr of CELL to be NEWCDR. Returns NEWCDR. (fn CELL NEWCDR)Fboundp Return t if SYMBOL's value is not void. Note that if `lexical-binding' is in effect, this refers to the global value outside of any lexical scope. (fn SYMBOL)Ffboundp Return t if SYMBOL's function definition is not void. (fn SYMBOL)Fmakunbound Empty out the value cell of SYMBOL, making it void as a variable. Return SYMBOL. If a variable is void, trying to evaluate the variable signals a `void-variable' error, instead of returning a value. For more details, see Info node `(elisp) Void Variables'. See also `fmakunbound'. (fn SYMBOL)Ffmakunbound Make SYMBOL's function definition be void. Return SYMBOL. If a function definition is void, trying to call a function by that name will cause a `void-function' error. For more details, see Info node `(elisp) Function Cells'. See also `makunbound'. (fn SYMBOL)Fsymbol-function Return SYMBOL's function definition, or nil if that is void. (fn SYMBOL)Fsymbol-plist Return SYMBOL's property list. (fn SYMBOL)Fsymbol-name Return SYMBOL's name, a string. Warning: never alter the string returned by `symbol-name'. Doing that might make Emacs dysfunctional, and might even crash Emacs. (fn SYMBOL)Fbare-symbol Extract, if need be, the bare symbol from SYM, a symbol. (fn SYM)Fsymbol-with-pos-pos Extract the position from a symbol with position. (fn LS)Fremove-pos-from-symbol If ARG is a symbol with position, return it without the position. Otherwise, return ARG unchanged. Compare with `bare-symbol'. (fn ARG)Fposition-symbol Create a new symbol with position. SYM is a symbol, with or without position, the symbol to position. POS, the position, is either a fixnum or a symbol with position from which the position will be taken. (fn SYM POS)Ffset Set SYMBOL's function definition to DEFINITION, and return DEFINITION. (fn SYMBOL DEFINITION)Fdefalias Set SYMBOL's function definition to DEFINITION. Associates the function with the current load file, if any. The optional third argument DOCSTRING specifies the documentation string for SYMBOL; if it is omitted or nil, SYMBOL uses the documentation string determined by DEFINITION. Internally, this normally uses `fset', but if SYMBOL has a `defalias-fset-function' property, the associated value is used instead. The return value is undefined. (fn SYMBOL DEFINITION &optional DOCSTRING)Fsetplist Set SYMBOL's property list to NEWPLIST, and return NEWPLIST. (fn SYMBOL NEWPLIST)Fsubr-arity Return minimum and maximum number of args allowed for SUBR. SUBR must be a built-in function. The returned value is a pair (MIN . MAX). MIN is the minimum number of args. MAX is the maximum number or the symbol `many', for a function with `&rest' args, or `unevalled' for a special form. (fn SUBR)Fsubr-name Return name of subroutine SUBR. SUBR must be a built-in function. (fn SUBR)Fsubr-native-elisp-p Return t if the object is native compiled lisp function, nil otherwise. (fn OBJECT)Fsubr-native-lambda-list Return the lambda list for a native compiled lisp/d function or t otherwise. (fn SUBR)Fsubr-type Return the type of SUBR. (fn SUBR)Fsubr-native-comp-unit Return the native compilation unit. (fn SUBR)Fnative-comp-unit-file Return the file of the native compilation unit. (fn COMP-UNIT)Fnative-comp-unit-set-file Return the file of the native compilation unit. (fn COMP-UNIT NEW-FILE)Finteractive-form Return the interactive form of CMD or nil if none. If CMD is not a command, the return value is nil. Value, if non-nil, is a list (interactive SPEC). (fn CMD)Fcommand-modes Return the modes COMMAND is defined for. If COMMAND is not a command, the return value is nil. The value, if non-nil, is a list of mode name symbols. (fn COMMAND)Findirect-variable Return the variable at the end of OBJECT's variable chain. If OBJECT is a symbol, follow its variable indirections (if any), and return the variable at the end of the chain of aliases. See Info node `(elisp)Variable Aliases'. If OBJECT is not a symbol, just return it. If there is a loop in the chain of aliases, signal a `cyclic-variable-indirection' error. (fn OBJECT)Fsymbol-value Return SYMBOL's value. Error if that is void. Note that if `lexical-binding' is in effect, this returns the global value outside of any lexical scope. (fn SYMBOL)Fset Set SYMBOL's value to NEWVAL, and return NEWVAL. (fn SYMBOL NEWVAL)Fadd-variable-watcher Cause WATCH-FUNCTION to be called when SYMBOL is about to be set. It will be called with 4 arguments: (SYMBOL NEWVAL OPERATION WHERE). SYMBOL is the variable being changed. NEWVAL is the value it will be changed to. (The variable still has the old value when WATCH-FUNCTION is called.) OPERATION is a symbol representing the kind of change, one of: `set', `let', `unlet', `makunbound', and `defvaralias'. WHERE is a buffer if the buffer-local value of the variable is being changed, nil otherwise. All writes to aliases of SYMBOL will call WATCH-FUNCTION too. (fn SYMBOL WATCH-FUNCTION)Fremove-variable-watcher Undo the effect of `add-variable-watcher'. Remove WATCH-FUNCTION from the list of functions to be called when SYMBOL (or its aliases) are set. (fn SYMBOL WATCH-FUNCTION)Fget-variable-watchers Return a list of SYMBOL's active watchers. (fn SYMBOL)Fdefault-boundp Return t if SYMBOL has a non-void default value. A variable may have a buffer-local value. This function says whether the variable has a non-void value outside of the current buffer context. Also see `default-value'. (fn SYMBOL)Fdefault-value Return SYMBOL's default value. This is the value that is seen in buffers that do not have their own values for this variable. The default value is meaningful for variables with local bindings in certain buffers. (fn SYMBOL)Fset-default Set SYMBOL's default value to VALUE. SYMBOL and VALUE are evaluated. The default value is seen in buffers that do not have their own values for this variable. (fn SYMBOL VALUE)Fmake-variable-buffer-local Make VARIABLE become buffer-local whenever it is set. At any time, the value for the current buffer is in effect, unless the variable has never been set in this buffer, in which case the default value is in effect. Note that binding the variable with `let', or setting it while a `let'-style binding made in this buffer is in effect, does not make the variable buffer-local. Return VARIABLE. This globally affects all uses of this variable, so it belongs together with the variable declaration, rather than with its uses (if you just want to make a variable local to the current buffer for one particular use, use `make-local-variable'). Buffer-local bindings are normally cleared while setting up a new major mode, unless they have a `permanent-local' property. The function `default-value' gets the default value and `set-default' sets it. See also `defvar-local'. (fn VARIABLE)Fmake-local-variable Make VARIABLE have a separate value in the current buffer. Other buffers will continue to share a common default value. (The buffer-local value of VARIABLE starts out as the same value VARIABLE previously had. If VARIABLE was void, it remains void.) Return VARIABLE. If the variable is already arranged to become local when set, this function causes a local value to exist for this buffer, just as setting the variable would do. This function returns VARIABLE, and therefore (set (make-local-variable \='VARIABLE) VALUE-EXP) works. See also `make-variable-buffer-local'. Do not use `make-local-variable' to make a hook variable buffer-local. Instead, use `add-hook' and specify t for the LOCAL argument. (fn VARIABLE)Fkill-local-variable Make VARIABLE no longer have a separate value in the current buffer. From now on the default value will apply in this buffer. Return VARIABLE. (fn VARIABLE)Flocal-variable-p Non-nil if VARIABLE has a local binding in buffer BUFFER. BUFFER defaults to the current buffer. Also see `buffer-local-boundp'. (fn VARIABLE &optional BUFFER)Flocal-variable-if-set-p Non-nil if VARIABLE is local in buffer BUFFER when set there. BUFFER defaults to the current buffer. More precisely, return non-nil if either VARIABLE already has a local value in BUFFER, or if VARIABLE is automatically buffer-local (see `make-variable-buffer-local'). (fn VARIABLE &optional BUFFER)Fvariable-binding-locus Return a value indicating where VARIABLE's current binding comes from. If the current binding is buffer-local, the value is the current buffer. If the current binding is global (the default), the value is nil. (fn VARIABLE)Findirect-function Return the function at the end of OBJECT's function chain. If OBJECT is not a symbol, just return it. Otherwise, follow all function indirections to find the final function binding and return it. Signal a cyclic-function-indirection error if there is a loop in the function chain of symbols. (fn OBJECT &optional NOERROR)Faref Return the element of ARRAY at index IDX. ARRAY may be a vector, a string, a char-table, a bool-vector, a record, or a byte-code object. IDX starts at 0. (fn ARRAY IDX)Faset Store into the element of ARRAY at index IDX the value NEWELT. Return NEWELT. ARRAY may be a vector, a string, a char-table or a bool-vector. IDX starts at 0. (fn ARRAY IDX NEWELT)F= Return t if args, all numbers or markers, are equal. (fn NUMBER-OR-MARKER &rest NUMBERS-OR-MARKERS)F< Return t if each arg (a number or marker), is less than the next arg. (fn NUMBER-OR-MARKER &rest NUMBERS-OR-MARKERS)F> Return t if each arg (a number or marker) is greater than the next arg. (fn NUMBER-OR-MARKER &rest NUMBERS-OR-MARKERS)F<= Return t if each arg (a number or marker) is less than or equal to the next. (fn NUMBER-OR-MARKER &rest NUMBERS-OR-MARKERS)F>= Return t if each arg (a number or marker) is greater than or equal to the next. (fn NUMBER-OR-MARKER &rest NUMBERS-OR-MARKERS)F/= Return t if first arg is not equal to second arg. Both must be numbers or markers. (fn NUM1 NUM2)Fnumber-to-string Return the decimal representation of NUMBER as a string. Uses a minus sign if negative. NUMBER may be an integer or a floating point number. (fn NUMBER)Fstring-to-number Parse STRING as a decimal number and return the number. Ignore leading spaces and tabs, and all trailing chars. Return 0 if STRING cannot be parsed as an integer or floating point number. If BASE, interpret STRING as a number in that base. If BASE isn't present, base 10 is used. BASE must be between 2 and 16 (inclusive). If the base used is not 10, STRING is always parsed as an integer. (fn STRING &optional BASE)F+ Return sum of any number of arguments, which are numbers or markers. (fn &rest NUMBERS-OR-MARKERS)F- Negate number or subtract numbers or markers and return the result. With one arg, negates it. With more than one arg, subtracts all but the first from the first. (fn &optional NUMBER-OR-MARKER &rest MORE-NUMBERS-OR-MARKERS)F* Return product of any number of arguments, which are numbers or markers. (fn &rest NUMBERS-OR-MARKERS)F/ Divide number by divisors and return the result. With two or more arguments, return first argument divided by the rest. With one argument, return 1 divided by the argument. The arguments must be numbers or markers. (fn NUMBER &rest DIVISORS)F% Return remainder of X divided by Y. Both must be integers or markers. (fn X Y)Fmod Return X modulo Y. The result falls between zero (inclusive) and Y (exclusive). Both X and Y must be numbers or markers. (fn X Y)Fmax Return largest of all the arguments (which must be numbers or markers). The value is always a number; markers are converted to numbers. (fn NUMBER-OR-MARKER &rest NUMBERS-OR-MARKERS)Fmin Return smallest of all the arguments (which must be numbers or markers). The value is always a number; markers are converted to numbers. (fn NUMBER-OR-MARKER &rest NUMBERS-OR-MARKERS)Flogand Return bitwise-and of all the arguments. Arguments may be integers, or markers converted to integers. (fn &rest INTS-OR-MARKERS)Flogior Return bitwise-or of all the arguments. Arguments may be integers, or markers converted to integers. (fn &rest INTS-OR-MARKERS)Flogxor Return bitwise-exclusive-or of all the arguments. Arguments may be integers, or markers converted to integers. (fn &rest INTS-OR-MARKERS)Flogcount Return population count of VALUE. This is the number of one bits in the two's complement representation of VALUE. If VALUE is negative, return the number of zero bits in the representation. (fn VALUE)Fash Return integer VALUE with its bits shifted left by COUNT bit positions. If COUNT is negative, shift VALUE to the right instead. VALUE and COUNT must be integers. Mathematically, the return value is VALUE multiplied by 2 to the power of COUNT, rounded down. If the result is non-zero, its sign is the same as that of VALUE. In terms of bits, when COUNT is positive, the function moves the bits of VALUE to the left, adding zero bits on the right; when COUNT is negative, it moves the bits of VALUE to the right, discarding bits. (fn VALUE COUNT)F1+ Return NUMBER plus one. NUMBER may be a number or a marker. Markers are converted to integers. (fn NUMBER)F1- Return NUMBER minus one. NUMBER may be a number or a marker. Markers are converted to integers. (fn NUMBER)Flognot Return the bitwise complement of NUMBER. NUMBER must be an integer. (fn NUMBER)Fbyteorder Return the byteorder for the machine. Returns 66 (ASCII uppercase B) for big endian machines or 108 (ASCII lowercase l) for small endian machines. (fn)Fbool-vector-exclusive-or Return A ^ B, bitwise exclusive or. If optional third argument C is given, store result into C. A, B, and C must be bool vectors of the same length. Return the destination vector if it changed or nil otherwise. (fn A B &optional C)Fbool-vector-union Return A | B, bitwise or. If optional third argument C is given, store result into C. A, B, and C must be bool vectors of the same length. Return the destination vector if it changed or nil otherwise. (fn A B &optional C)Fbool-vector-intersection Return A & B, bitwise and. If optional third argument C is given, store result into C. A, B, and C must be bool vectors of the same length. Return the destination vector if it changed or nil otherwise. (fn A B &optional C)Fbool-vector-set-difference Return A &~ B, set difference. If optional third argument C is given, store result into C. A, B, and C must be bool vectors of the same length. Return the destination vector if it changed or nil otherwise. (fn A B &optional C)Fbool-vector-subsetp Return t if every t value in A is also t in B, nil otherwise. A and B must be bool vectors of the same length. (fn A B)Fbool-vector-not Compute ~A, set complement. If optional second argument B is given, store result into B. A and B must be bool vectors of the same length. Return the destination vector. (fn A &optional B)Fbool-vector-count-population Count how many elements in A are t. A is a bool vector. To count A's nil elements, subtract the return value from A's length. (fn A)Fbool-vector-count-consecutive Count how many consecutive elements in A equal B starting at I. A is a bool vector, B is t or nil, and I is an index into A. (fn A B I)Vmost-positive-fixnum The greatest integer that is represented efficiently. This variable cannot be set; trying to do so will signal an error.Vmost-negative-fixnum The least integer that is represented efficiently. This variable cannot be set; trying to do so will signal an error.Vsymbols-with-pos-enabled Non-nil when "symbols with position" can be used as symbols. Bind this to non-nil in applications such as the byte compiler.Sdoc.o Fdocumentation Return the documentation string of FUNCTION. Unless a non-nil second argument RAW is given, the string is passed through `substitute-command-keys'. (fn FUNCTION &optional RAW)Fdocumentation-property Return the documentation string that is SYMBOL's PROP property. Third argument RAW omitted or nil means pass the result through `substitute-command-keys' if it is a string. This differs from `get' in that it can refer to strings stored in the `etc/DOC' file; and that it evaluates documentation properties that aren't strings. (fn SYMBOL PROP &optional RAW)FSnarf-documentation Used during Emacs initialization to scan the `etc/DOC...' file. This searches the `etc/DOC...' file for doc strings and records them in function and variable definitions. The function takes one argument, FILENAME, a string; it specifies the file name (without a directory) of the DOC file. That file is found in `../etc' now; later, when the dumped Emacs is run, the same file name is found in the `doc-directory'. (fn FILENAME)Ftext-quoting-style Return the current effective text quoting style. If the variable `text-quoting-style' is `grave', `straight' or `curve', just return that value. If it is nil (the default), return `grave' if curved quotes cannot be displayed (for instance, on a terminal with no support for these characters), otherwise return `quote'. Any other value is treated as `grave'. Note that in contrast to the variable `text-quoting-style', this function will never return nil. (fn)Vinternal-doc-file-name Name of file containing documentation strings of built-in symbols.Vbuild-files A list of files used to build this Emacs binary.Vtext-quoting-style Style to use for single quotes in help and messages. The value of this variable determines substitution of grave accents and apostrophes in help output (but not for display of Info manuals) and in functions like `message' and `format-message', but not in `format'. The value should be one of these symbols: `curve': quote with curved single quotes ‘like this’. `straight': quote with straight apostrophes \='like this\='. `grave': quote with grave accent and apostrophe \=`like this\='; i.e., do not alter the original quote marks. nil: like `curve' if curved single quotes are displayable, and like `grave' otherwise. This is the default. You should never read the value of this variable directly from a Lisp program. Use the function `text-quoting-style' instead, as that will compute the correct value for the current terminal in the nil case.Vinternal--text-quoting-flag If nil, a nil `text-quoting-style' is treated as `grave'.Seditfns.o Fchar-to-string Convert arg CHAR to a string containing that character. (fn CHAR)Fbyte-to-string Convert arg BYTE to a unibyte string containing that byte. (fn BYTE)Fstring-to-char Return the first character in STRING. (fn STRING)Fpoint Return value of point, as an integer. Beginning of buffer is position (point-min). (fn)Fpoint-marker Return value of point, as a marker object. (fn)Fgoto-char Set point to POSITION, a number or marker. Beginning of buffer is position (point-min), end is (point-max). The return value is POSITION. If called interactively, a numeric prefix argument specifies POSITION; without a numeric prefix argument, read POSITION from the minibuffer. The default value is the number at point (if any). (fn POSITION)Fregion-beginning Return the integer value of point or mark, whichever is smaller. (fn)Fregion-end Return the integer value of point or mark, whichever is larger. (fn)Fmark-marker Return this buffer's mark, as a marker object. Watch out! Moving this marker changes the mark position. If you set the marker not to point anywhere, the buffer will have no mark. (fn)Fget-pos-property Return the value of POSITION's property PROP, in OBJECT. Almost identical to `get-char-property' except for the following difference: Whereas `get-char-property' returns the property of the char at (i.e. right after) POSITION, this pays attention to properties's stickiness and overlays's advancement settings, in order to find the property of POSITION itself, i.e. the property that a char would inherit if it were inserted at POSITION. (fn POSITION PROP &optional OBJECT)Fdelete-field Delete the field surrounding POS. A field is a region of text with the same `field' property. If POS is nil, the value of point is used for POS. (fn &optional POS)Ffield-string Return the contents of the field surrounding POS as a string. A field is a region of text with the same `field' property. If POS is nil, the value of point is used for POS. (fn &optional POS)Ffield-string-no-properties Return the contents of the field around POS, without text properties. A field is a region of text with the same `field' property. If POS is nil, the value of point is used for POS. (fn &optional POS)Ffield-beginning Return the beginning of the field surrounding POS. A field is a region of text with the same `field' property. If POS is nil, the value of point is used for POS. If ESCAPE-FROM-EDGE is non-nil and POS is at the beginning of its field, then the beginning of the *previous* field is returned. If LIMIT is non-nil, it is a buffer position; if the beginning of the field is before LIMIT, then LIMIT will be returned instead. (fn &optional POS ESCAPE-FROM-EDGE LIMIT)Ffield-end Return the end of the field surrounding POS. A field is a region of text with the same `field' property. If POS is nil, the value of point is used for POS. If ESCAPE-FROM-EDGE is non-nil and POS is at the end of its field, then the end of the *following* field is returned. If LIMIT is non-nil, it is a buffer position; if the end of the field is after LIMIT, then LIMIT will be returned instead. (fn &optional POS ESCAPE-FROM-EDGE LIMIT)Fconstrain-to-field Return the position closest to NEW-POS that is in the same field as OLD-POS. A field is a region of text with the same `field' property. If NEW-POS is nil, then use the current point instead, and move point to the resulting constrained position, in addition to returning that position. If OLD-POS is at the boundary of two fields, then the allowable positions for NEW-POS depends on the value of the optional argument ESCAPE-FROM-EDGE: If ESCAPE-FROM-EDGE is nil, then NEW-POS is constrained to the field that has the same `field' char-property as any new characters inserted at OLD-POS, whereas if ESCAPE-FROM-EDGE is non-nil, NEW-POS is constrained to the union of the two adjacent fields. Additionally, if two fields are separated by another field with the special value `boundary', then any point within this special field is also considered to be `on the boundary'. If the optional argument ONLY-IN-LINE is non-nil and constraining NEW-POS would move it to a different line, NEW-POS is returned unconstrained. This is useful for commands that move by line, like \[next-line] or \[beginning-of-line], which should generally respect field boundaries only in the case where they can still move to the right line. If the optional argument INHIBIT-CAPTURE-PROPERTY is non-nil, and OLD-POS has a non-nil property of that name, then any field boundaries are ignored. Field boundaries are not noticed if `inhibit-field-text-motion' is non-nil. (fn NEW-POS OLD-POS &optional ESCAPE-FROM-EDGE ONLY-IN-LINE INHIBIT-CAPTURE-PROPERTY)Fpos-bol Return the position of the first character on the current line. With optional argument N, scan forward N - 1 lines first. If the scan reaches the end of the buffer, return that position. This function ignores text display directionality; it returns the position of the first character in logical order, i.e. the smallest character position on the logical line. See `vertical-motion' for movement by screen lines. This function does not move point. Also see `line-beginning-position'. (fn &optional N)Fline-beginning-position Return the position of the first character in the current line/field. With optional argument N non-nil, move forward N - 1 lines first. This function is like `pos-bol' (which see), but respects fields. This function constrains the returned position to the current field unless that position would be on a different line from the original, unconstrained result. If N is nil or 1, and a front-sticky field starts at point, the scan stops as soon as it starts. To ignore field boundaries, bind `inhibit-field-text-motion' to t. This function does not move point. (fn &optional N)Fpos-eol Return the position of the last character on the current line. With argument N not nil or 1, move forward N - 1 lines first. If scan reaches end of buffer, return that position. This function ignores text display directionality; it returns the position of the last character in logical order, i.e. the largest character position on the line. This function does not move point. Also see `line-end-position'. (fn &optional N)Fline-end-position Return the position of the last character in the current line/field. With argument N not nil or 1, move forward N - 1 lines first. If scan reaches end of buffer, return that position. This function is like `pos-eol' (which see), but respects fields. This function constrains the returned position to the current field unless that would be on a different line from the original, unconstrained result. If N is nil or 1, and a rear-sticky field ends at point, the scan stops as soon as it starts. To ignore field boundaries bind `inhibit-field-text-motion' to t. This function does not move point. (fn &optional N)Fsave-excursion Save point, and current buffer; execute BODY; restore those things. Executes BODY just like `progn'. The values of point and the current buffer are restored even in case of abnormal exit (throw or error). If you only want to save the current buffer but not point, then just use `save-current-buffer', or even `with-current-buffer'. Before Emacs 25.1, `save-excursion' used to save the mark state. To save the mark state as well as point and the current buffer, use `save-mark-and-excursion'. (fn &rest BODY)Fsave-current-buffer Record which buffer is current; execute BODY; make that buffer current. BODY is executed just like `progn'. (fn &rest BODY)Fbuffer-size Return the number of characters in the current buffer. If BUFFER is not nil, return the number of characters in that buffer instead. This does not take narrowing into account; to count the number of characters in the accessible portion of the current buffer, use `(- (point-max) (point-min))', and to count the number of characters in the accessible portion of some other BUFFER, use `(with-current-buffer BUFFER (- (point-max) (point-min)))'. (fn &optional BUFFER)Fpoint-min Return the minimum permissible value of point in the current buffer. This is 1, unless narrowing (a buffer restriction) is in effect. (fn)Fpoint-min-marker Return a marker to the minimum permissible value of point in this buffer. This is the beginning, unless narrowing (a buffer restriction) is in effect. (fn)Fpoint-max Return the maximum permissible value of point in the current buffer. This is (1+ (buffer-size)), unless narrowing (a buffer restriction) is in effect, in which case it is less. (fn)Fpoint-max-marker Return a marker to the maximum permissible value of point in this buffer. This is (1+ (buffer-size)), unless narrowing (a buffer restriction) is in effect, in which case it is less. (fn)Fgap-position Return the position of the gap, in the current buffer. See also `gap-size'. (fn)Fgap-size Return the size of the current buffer's gap. See also `gap-position'. (fn)Fposition-bytes Return the byte position for character position POSITION. If POSITION is out of range, the value is nil. (fn POSITION)Fbyte-to-position Return the character position for byte position BYTEPOS. If BYTEPOS is out of range, the value is nil. (fn BYTEPOS)Ffollowing-char Return the character following point, as a number. At the end of the buffer or accessible region, return 0. (fn)Fpreceding-char Return the character preceding point, as a number. At the beginning of the buffer or accessible region, return 0. (fn)Fbobp Return t if point is at the beginning of the buffer. If the buffer is narrowed, this means the beginning of the narrowed part. (fn)Feobp Return t if point is at the end of the buffer. If the buffer is narrowed, this means the end of the narrowed part. (fn)Fbolp Return t if point is at the beginning of a line. (fn)Feolp Return t if point is at the end of a line. `End of a line' includes point being at the end of the buffer. (fn)Fchar-after Return character in current buffer at position POS. POS is an integer or a marker and defaults to point. If POS is out of range, the value is nil. (fn &optional POS)Fchar-before Return character in current buffer preceding position POS. POS is an integer or a marker and defaults to point. If POS is out of range, the value is nil. (fn &optional POS)Fuser-login-name Return the name under which the user logged in, as a string. This is based on the effective uid, not the real uid. Also, if the environment variables LOGNAME or USER are set, that determines the value of this function. If optional argument UID is an integer, return the login name of the user with that uid, or nil if there is no such user. (fn &optional UID)Fuser-real-login-name Return the name of the user's real uid, as a string. This ignores the environment variables LOGNAME and USER, so it differs from `user-login-name' when running under `su'. (fn)Fuser-uid Return the effective uid of Emacs, as an integer. (fn)Fuser-real-uid Return the real uid of Emacs, as an integer. (fn)Fgroup-name Return the name of the group whose numeric group ID is GID. The argument GID should be an integer or a float. Return nil if a group with such GID does not exists or is not known. (fn GID)Fgroup-gid Return the effective gid of Emacs, as an integer. (fn)Fgroup-real-gid Return the real gid of Emacs, as an integer. (fn)Fuser-full-name Return the full name of the user logged in, as a string. If the full name corresponding to Emacs's userid is not known, return "unknown". If optional argument UID is an integer, return the full name of the user with that uid, or nil if there is no such user. If UID is a string, return the full name of the user with that login name, or nil if there is no such user. If the full name includes commas, remove everything starting with the first comma, because the \='gecos\=' field of the \='/etc/passwd\=' file is in general a comma-separated list. (fn &optional UID)Fsystem-name Return the host name of the machine you are running on, as a string. (fn)Femacs-pid Return the process ID of Emacs, as an integer. (fn)Finsert Insert the arguments, either strings or characters, at point. Point and after-insertion markers move forward to end up after the inserted text. Any other markers at the point of insertion remain before the text. If the current buffer is multibyte, unibyte strings are converted to multibyte for insertion (see `string-make-multibyte'). If the current buffer is unibyte, multibyte strings are converted to unibyte for insertion (see `string-make-unibyte'). When operating on binary data, it may be necessary to preserve the original bytes of a unibyte string when inserting it into a multibyte buffer; to accomplish this, apply `string-as-multibyte' to the string and insert the result. (fn &rest ARGS)Finsert-and-inherit Insert the arguments at point, inheriting properties from adjoining text. Point and after-insertion markers move forward to end up after the inserted text. Any other markers at the point of insertion remain before the text. If the current buffer is multibyte, unibyte strings are converted to multibyte for insertion (see `unibyte-char-to-multibyte'). If the current buffer is unibyte, multibyte strings are converted to unibyte for insertion. (fn &rest ARGS)Finsert-before-markers Insert strings or characters at point, relocating markers after the text. Point and markers move forward to end up after the inserted text. If the current buffer is multibyte, unibyte strings are converted to multibyte for insertion (see `unibyte-char-to-multibyte'). If the current buffer is unibyte, multibyte strings are converted to unibyte for insertion. If an overlay begins at the insertion point, the inserted text falls outside the overlay; if a nonempty overlay ends at the insertion point, the inserted text falls inside that overlay. (fn &rest ARGS)Finsert-before-markers-and-inherit Insert text at point, relocating markers and inheriting properties. Point and markers move forward to end up after the inserted text. If the current buffer is multibyte, unibyte strings are converted to multibyte for insertion (see `unibyte-char-to-multibyte'). If the current buffer is unibyte, multibyte strings are converted to unibyte for insertion. (fn &rest ARGS)Finsert-char Insert COUNT copies of CHARACTER. Interactively, prompt for CHARACTER using `read-char-by-name'. You can specify CHARACTER in one of these ways: - As its Unicode character name, e.g. "LATIN SMALL LETTER A". Completion is available; if you type a substring of the name preceded by an asterisk `*', Emacs shows all names which include that substring, not necessarily at the beginning of the name. - As a hexadecimal code point, e.g. 263A. Note that code points in Emacs are equivalent to Unicode up to 10FFFF (which is the limit of the Unicode code space). - As a code point with a radix specified with #, e.g. #o21430 (octal), #x2318 (hex), or #10r8984 (decimal). If called interactively, COUNT is given by the prefix argument. If omitted or nil, it defaults to 1. Inserting the character(s) relocates point and before-insertion markers in the same ways as the function `insert'. The optional third argument INHERIT, if non-nil, says to inherit text properties from adjoining text, if those properties are sticky. If called interactively, INHERIT is t. (fn CHARACTER &optional COUNT INHERIT)Finsert-byte Insert COUNT (second arg) copies of BYTE (first arg). Both arguments are required. BYTE is a number of the range 0..255. If BYTE is 128..255 and the current buffer is multibyte, the corresponding eight-bit character is inserted. Point, and before-insertion markers, are relocated as in the function `insert'. The optional third arg INHERIT, if non-nil, says to inherit text properties from adjoining text, if those properties are sticky. (fn BYTE COUNT &optional INHERIT)Fbuffer-substring Return the contents of part of the current buffer as a string. The two arguments START and END are character positions; they can be in either order. The string returned is multibyte if the buffer is multibyte. This function copies the text properties of that part of the buffer into the result string; if you don't want the text properties, use `buffer-substring-no-properties' instead. (fn START END)Fbuffer-substring-no-properties Return the characters of part of the buffer, without the text properties. The two arguments START and END are character positions; they can be in either order. (fn START END)Fbuffer-string Return the contents of the current buffer as a string. If narrowing is in effect, this function returns only the visible part of the buffer. This function copies the text properties of that part of the buffer into the result string; if you don’t want the text properties, use `buffer-substring-no-properties' instead. (fn)Finsert-buffer-substring Insert before point a substring of the contents of BUFFER. BUFFER may be a buffer or a buffer name. Arguments START and END are character positions specifying the substring. They default to the values of (point-min) and (point-max) in BUFFER. Point and before-insertion markers move forward to end up after the inserted text. Any other markers at the point of insertion remain before the text. If the current buffer is multibyte and BUFFER is unibyte, or vice versa, strings are converted from unibyte to multibyte or vice versa using `string-make-multibyte' or `string-make-unibyte', which see. (fn BUFFER &optional START END)Fcompare-buffer-substrings Compare two substrings of two buffers; return result as number. Return -N if first string is less after N-1 chars, +N if first string is greater after N-1 chars, or 0 if strings match. The first substring is in BUFFER1 from START1 to END1 and the second is in BUFFER2 from START2 to END2. All arguments may be nil. If BUFFER1 or BUFFER2 is nil, the current buffer is used. If START1 or START2 is nil, the value of `point-min' in the respective buffers is used. If END1 or END2 is nil, the value of `point-max' in the respective buffers is used. The value of `case-fold-search' in the current buffer determines whether case is significant or ignored. (fn BUFFER1 START1 END1 BUFFER2 START2 END2)Freplace-buffer-contents Replace accessible portion of current buffer with that of SOURCE. SOURCE can be a buffer or a string that names a buffer. Interactively, prompt for SOURCE. As far as possible the replacement is non-destructive, i.e. existing buffer contents, markers, properties, and overlays in the current buffer stay intact. Because this function can be very slow if there is a large number of differences between the two buffers, there are two optional arguments mitigating this issue. The MAX-SECS argument, if given, defines a hard limit on the time used for comparing the buffers. If it takes longer than MAX-SECS, the function falls back to a plain `delete-region' and `insert-buffer-substring'. (Note that the checks are not performed too evenly over time, so in some cases it may run a bit longer than allowed). The optional argument MAX-COSTS defines the quality of the difference computation. If the actual costs exceed this limit, heuristics are used to provide a faster but suboptimal solution. The default value is 1000000. This function returns t if a non-destructive replacement could be performed. Otherwise, i.e., if MAX-SECS was exceeded, it returns nil. (fn SOURCE &optional MAX-SECS MAX-COSTS)Fsubst-char-in-region From START to END, replace FROMCHAR with TOCHAR each time it occurs. If optional arg NOUNDO is non-nil, don't record this change for undo and don't mark the buffer as really changed. Both characters must have the same length of multi-byte form. (fn START END FROMCHAR TOCHAR &optional NOUNDO)Ftranslate-region-internal Internal use only. From START to END, translate characters according to TABLE. TABLE is a string or a char-table; the Nth character in it is the mapping for the character with code N. It returns the number of characters changed. (fn START END TABLE)Fdelete-region Delete the text between START and END. If called interactively, delete the region between point and mark. This command deletes buffer text without modifying the kill ring. (fn START END)Fdelete-and-extract-region Delete the text between START and END and return it. (fn START END)Fwiden Remove restrictions (narrowing) from current buffer. This allows the buffer's full text to be seen and edited. However, when restrictions have been set by `with-restriction' with a label, `widen' restores the narrowing limits set by `with-restriction'. To gain access to other portions of the buffer, use `without-restriction' with the same label. (fn)Fnarrow-to-region Restrict editing in this buffer to the current region. The rest of the text becomes temporarily invisible and untouchable but is not deleted; if you save the buffer in a file, the invisible text is included in the file. \[widen] makes all visible again. See also `save-restriction'. When calling from Lisp, pass two arguments START and END: positions (integers or markers) bounding the text that should remain visible. However, when restrictions have been set by `with-restriction' with a label, `narrow-to-region' can be used only within the limits of these restrictions. If the START or END arguments are outside these limits, the corresponding limit set by `with-restriction' is used instead of the argument. To gain access to other portions of the buffer, use `without-restriction' with the same label. (fn START END)Finternal--labeled-narrow-to-region Restrict this buffer to START-END, and label the restriction with LABEL. This is an internal function used by `with-restriction'. (fn START END LABEL)Finternal--labeled-widen Remove the current restriction if it is labeled with LABEL, and widen. This is an internal function used by `without-restriction'. (fn LABEL)Fsave-restriction Execute BODY, saving and restoring current buffer's restrictions. The buffer's restrictions make parts of the beginning and end invisible. (They are set up with `narrow-to-region' and eliminated with `widen'.) This special form, `save-restriction', saves the current buffer's restrictions, including those that were set by `with-restriction' with a label argument, when it is entered, and restores them when it is exited. So any `narrow-to-region' within BODY lasts only until the end of the form. The old restrictions settings are restored even in case of abnormal exit (throw or error). The value returned is the value of the last form in BODY. Note: if you are using both `save-excursion' and `save-restriction', use `save-excursion' outermost: (save-excursion (save-restriction ...)) (fn &rest BODY)Fngettext Return the translation of MSGID (plural MSGID-PLURAL) depending on N. MSGID is the singular form of the string to be converted; use it as the key for the search in the translation catalog. MSGID-PLURAL is the plural form. Use N to select the proper translation. If no message catalog is found, MSGID is returned if N is equal to 1, otherwise MSGID-PLURAL. (fn MSGID MSGID-PLURAL N)Fmessage Display a message at the bottom of the screen. The message also goes into the `*Messages*' buffer, if `message-log-max' is non-nil. (In keyboard macros, that's all it does.) Return the message. In batch mode, the message is printed to the standard error stream, followed by a newline. The first argument is a format control string, and the rest are data to be formatted under control of the string. Percent sign (%), grave accent (\=`) and apostrophe (\=') are special in the format; see `format-message' for details. To display STRING without special treatment, use (message "%s" STRING). If the first argument is nil or the empty string, the function clears any existing message; this lets the minibuffer contents show. See also `current-message'. (fn FORMAT-STRING &rest ARGS)Fmessage-box Display a message, in a dialog box if possible. If a dialog box is not available, use the echo area. The first argument is a format control string, and the rest are data to be formatted under control of the string. See `format-message' for details. If the first argument is nil or the empty string, clear any existing message; let the minibuffer contents show. (fn FORMAT-STRING &rest ARGS)Fmessage-or-box Display a message in a dialog box or in the echo area. If this command was invoked with the mouse, use a dialog box if `use-dialog-box' is non-nil. Otherwise, use the echo area. The first argument is a format control string, and the rest are data to be formatted under control of the string. See `format-message' for details. If the first argument is nil or the empty string, clear any existing message; let the minibuffer contents show. (fn FORMAT-STRING &rest ARGS)Fcurrent-message Return the string currently displayed in the echo area, or nil if none. (fn)Fpropertize Return a copy of STRING with text properties added. First argument is the string to copy. Remaining arguments form a sequence of PROPERTY VALUE pairs for text properties to add to the result. See Info node `(elisp) Text Properties' for more information. (fn STRING &rest PROPERTIES)Fformat Format a string out of a format-string and arguments. The first argument is a format control string. The other arguments are substituted into it to make the result, a string. The format control string may contain %-sequences meaning to substitute the next available argument, or the argument explicitly specified: %s means produce a string argument. Actually, produces any object with `princ'. %d means produce as signed number in decimal. %o means produce a number in octal. %x means produce a number in hex. %X is like %x, but uses upper case. %e means produce a number in exponential notation. %f means produce a number in decimal-point notation. %g means produce a number in exponential notation if the exponent would be less than -4 or greater than or equal to the precision (default: 6); otherwise it produces in decimal-point notation. %c means produce a number as a single character. %S means produce any object as an s-expression (using `prin1'). The argument used for %d, %o, %x, %e, %f, %g or %c must be a number. %o, %x, and %X treat arguments as unsigned if `binary-as-unsigned' is t (this is experimental; email 32252@debbugs.gnu.org if you need it). Use %% to put a single % into the output. A %-sequence other than %% may contain optional field number, flag, width, and precision specifiers, as follows: %character where field is [0-9]+ followed by a literal dollar "$", flags is [+ #0-]+, width is [0-9]+, and precision is a literal period "." followed by [0-9]+. If a %-sequence is numbered with a field with positive value N, the Nth argument is substituted instead of the next one. A format can contain either numbered or unnumbered %-sequences but not both, except that %% can be mixed with numbered %-sequences. The + flag character inserts a + before any nonnegative number, while a space inserts a space before any nonnegative number; these flags affect only numeric %-sequences, and the + flag takes precedence. The - and 0 flags affect the width specifier, as described below. The # flag means to use an alternate display form for %o, %x, %X, %e, %f, and %g sequences: for %o, it ensures that the result begins with "0"; for %x and %X, it prefixes nonzero results with "0x" or "0X"; for %e and %f, it causes a decimal point to be included even if the precision is zero; for %g, it causes a decimal point to be included even if the precision is zero, and also forces trailing zeros after the decimal point to be left in place. The width specifier supplies a lower limit for the length of the produced representation. The padding, if any, normally goes on the left, but it goes on the right if the - flag is present. The padding character is normally a space, but it is 0 if the 0 flag is present. The 0 flag is ignored if the - flag is present, or the format sequence is something other than %d, %o, %x, %e, %f, and %g. For %e and %f sequences, the number after the "." in the precision specifier says how many decimal places to show; if zero, the decimal point itself is omitted. For %g, the precision specifies how many significant digits to produce; zero or omitted are treated as 1. For %s and %S, the precision specifier truncates the string to the given width. Text properties, if any, are copied from the format-string to the produced text. (fn STRING &rest OBJECTS)Fformat-message Format a string out of a format-string and arguments. The first argument is a format control string. The other arguments are substituted into it to make the result, a string. This acts like `format', except it also replaces each grave accent (\=`) by a left quote, and each apostrophe (\=') by a right quote. The left and right quote replacement characters are specified by `text-quoting-style'. (fn STRING &rest OBJECTS)Fchar-equal Return t if two characters match, optionally ignoring case. Both arguments must be characters (i.e. integers). Case is ignored if `case-fold-search' is non-nil in the current buffer. (fn C1 C2)Ftranspose-regions Transpose region STARTR1 to ENDR1 with STARTR2 to ENDR2. The regions should not be overlapping, because the size of the buffer is never changed in a transposition. Optional fifth arg LEAVE-MARKERS, if non-nil, means don't update any markers that happen to be located in the regions. Transposing beyond buffer boundaries is an error. Interactively, STARTR1 and ENDR1 are point and mark; STARTR2 and ENDR2 are the last two marks pushed to the mark ring; LEAVE-MARKERS is nil. If a prefix argument N is given, STARTR2 and ENDR2 are the two successive marks N entries back in the mark ring. A negative prefix argument instead counts forward from the oldest mark in the mark ring. (fn STARTR1 ENDR1 STARTR2 ENDR2 &optional LEAVE-MARKERS)Vinhibit-field-text-motion Non-nil means text motion commands don't notice fields.Vbuffer-access-fontify-functions List of functions called by `buffer-substring' to fontify if necessary. Each function is called with two arguments which specify the range of the buffer being accessed.Vbuffer-access-fontified-property Property which (if non-nil) indicates text has been fontified. `buffer-substring' need not call the `buffer-access-fontify-functions' functions if all the text being accessed has this property.Vsystem-name The host name of the machine Emacs is running on.Vuser-full-name The full name of the user logged in.Vuser-login-name The user's name, taken from environment variables if possible.Vuser-real-login-name The user's name, based upon the real uid only.Voperating-system-release The kernel version of the operating system on which Emacs is running. The value is a string. It can also be nil if Emacs doesn't know how to get the kernel version on the underlying OS.Vbinary-as-unsigned Non-nil means `format' %x and %o treat integers as unsigned. This has machine-dependent results. Nil means to treat integers as signed, which is portable and is the default; for example, if N is a negative integer, (read (format "#x%x" N)) returns N only when this variable is nil. This variable is experimental; email 32252@debbugs.gnu.org if you need it to be non-nil.Scallint.o Finteractive Specify a way of parsing arguments for interactive use of a function. For example, write (defun foo (arg buf) "Doc string" (interactive "P\nbbuffer: ") .... ) to make ARG be the raw prefix argument, and set BUF to an existing buffer, when `foo' is called as a command. The "call" to `interactive' is actually a declaration rather than a function; it tells `call-interactively' how to read arguments to pass to the function. When actually called, `interactive' just returns nil. Usually the argument of `interactive' is a string containing a code letter followed optionally by a prompt. (Some code letters do not use I/O to get the argument and do not use prompts.) To pass several arguments to the command, concatenate the individual strings, separating them by newline characters. Prompts are passed to `format', and may use %s escapes to print the arguments that have already been read. If the argument is not a string, it is evaluated to get a list of arguments to pass to the command. Just `(interactive)' means pass no arguments to the command when calling interactively. Code letters available are: a -- Function name: symbol with a function definition. b -- Name of existing buffer. B -- Name of buffer, possibly nonexistent. c -- Character (no input method is used). C -- Command name: symbol with interactive function definition. d -- Value of point as number. Does not do I/O. D -- Directory name. e -- Parameterized event (i.e., one that's a list) that invoked this command. If used more than once, the Nth `e' returns the Nth parameterized event. This skips events that are integers or symbols. f -- Existing file name. F -- Possibly nonexistent file name. G -- Possibly nonexistent file name, defaulting to just directory name. i -- Ignored, i.e. always nil. Does not do I/O. k -- Key sequence (downcase the last event if needed to get a definition). K -- Key sequence to be redefined (do not downcase the last event). m -- Value of mark as number. Does not do I/O. M -- Any string. Inherits the current input method. n -- Number read using minibuffer. N -- Numeric prefix arg, or if none, do like code `n'. p -- Prefix arg converted to number. Does not do I/O. P -- Prefix arg in raw form. Does not do I/O. r -- Region: point and mark as 2 numeric args, smallest first. Does no I/O. s -- Any string. Does not inherit the current input method. S -- Any symbol. U -- Mouse up event discarded by a previous k or K argument. v -- Variable name: symbol that is `custom-variable-p'. x -- Lisp expression read but not evaluated. X -- Lisp expression read and evaluated. z -- Coding system. Z -- Coding system, nil if no prefix arg. In addition, if the string begins with `*', an error is signaled if the buffer is read-only. If `@' appears at the beginning of the string, and if the key sequence used to invoke the command includes any mouse events, then the window associated with the first of those events is selected before the command is run. If the string begins with `^' and `shift-select-mode' is non-nil, Emacs first calls the function `handle-shift-selection'. You may use `@', `*', and `^' together. They are processed in the order that they appear, before reading any arguments. If MODES is present, it should be one or more mode names (symbols) for which this command is applicable. This is so that `M-x TAB' will be able to exclude this command from the list of completion candidates if the current buffer's mode doesn't match the list. Which commands are excluded from the list of completion candidates based on this information is controlled by the value of `read-extended-command-predicate', which see. (fn &optional ARG-DESCRIPTOR &rest MODES)Ffuncall-interactively Like `funcall' but marks the call as interactive. I.e. arrange that within the called function `called-interactively-p' will return non-nil. (fn FUNCTION &rest ARGUMENTS)Fcall-interactively Call FUNCTION, providing args according to its interactive calling specs. Return the value FUNCTION returns. The function contains a specification of how to do the argument reading. In the case of user-defined functions, this is specified by placing a call to the function `interactive' at the top level of the function body. See `interactive'. Optional second arg RECORD-FLAG non-nil means unconditionally put this command in the variable `command-history'. Otherwise, this is done only if an arg is read using the minibuffer. Optional third arg KEYS, if given, specifies the sequence of events to supply, as a vector, if FUNCTION inquires which events were used to invoke it (via an `interactive' spec that contains, for instance, an "e" code letter). If KEYS is omitted or nil, the return value of `this-command-keys-vector' is used. (fn FUNCTION &optional RECORD-FLAG KEYS)Fprefix-numeric-value Return numeric meaning of raw prefix argument RAW. A raw prefix argument is what you get from `(interactive "P")'. Its numeric meaning is what you would get from `(interactive "p")'. (fn RAW)Vprefix-arg The value of the prefix argument for the next editing command. It may be a number, or the symbol `-' for just a minus sign as arg, or a list whose car is a number for just one or more C-u's or nil if no argument has been specified. You cannot examine this variable to find the argument for this command since it has been set to nil by the time you can look. Instead, you should use the variable `current-prefix-arg', although normally commands can get this prefix argument with (interactive "P").Vlast-prefix-arg The value of the prefix argument for the previous editing command. See `prefix-arg' for the meaning of the value.Vcurrent-prefix-arg The value of the prefix argument for this editing command. It may be a number, or the symbol `-' for just a minus sign as arg, or a list whose car is a number for just one or more C-u's or nil if no argument has been specified. This is what `(interactive "P")' returns.Vcommand-history List of recent commands that read arguments from terminal. Each command is represented as a form to evaluate. Maximum length of the history list is determined by the value of `history-length', which see.Vcommand-debug-status Debugging status of current interactive command. Bound each time `call-interactively' is called; may be set by the debugger as a reminder for itself.Vmark-even-if-inactive Non-nil means you can use the mark even when inactive. This option makes a difference in Transient Mark mode. When the option is non-nil, deactivation of the mark turns off region highlighting, but commands that use the mark behave as if the mark were still active.Vmouse-leave-buffer-hook Hook run when the user mouse-clicks in a window. It can be run both before and after switching windows, or even when not actually switching windows. Its purpose is to give temporary modes such as Isearch mode a way to turn themselves off when a mouse command switches windows.Vinhibit-mouse-event-check Whether the interactive spec "e" requires a mouse gesture event. If non-nil, `(interactive "e")' doesn't signal an error when the command was invoked by an input event that is not a mouse gesture: a click, a drag, etc. To create the event data when the input was some other event, use `event-start', `event-end', and `event-click-count'.Seval.o For Eval args until one of them yields non-nil, then return that value. The remaining args are not evalled at all. If all args return nil, return nil. (fn CONDITIONS...)Fand Eval args until one of them yields nil, then return nil. The remaining args are not evalled at all. If no arg yields nil, return the last arg's value. (fn CONDITIONS...)Fif If COND yields non-nil, do THEN, else do ELSE... Returns the value of THEN or the value of the last of the ELSE's. THEN must be one expression, but ELSE... can be zero or more expressions. If COND yields nil, and there are no ELSE's, the value is nil. (fn COND THEN ELSE...)Fcond Try each clause until one succeeds. Each clause looks like (CONDITION BODY...). CONDITION is evaluated and, if the value is non-nil, this clause succeeds: then the expressions in BODY are evaluated and the last one's value is the value of the cond-form. If a clause has one element, as in (CONDITION), then the cond-form returns CONDITION's value, if that is non-nil. If no clause succeeds, cond returns nil. (fn CLAUSES...)Fprogn Eval BODY forms sequentially and return value of last one. (fn BODY...)Fprog1 Eval FIRST and BODY sequentially; return value from FIRST. The value of FIRST is saved during the evaluation of the remaining args, whose values are discarded. (fn FIRST BODY...)Fsetq Set each SYM to the value of its VAL. The symbols SYM are variables; they are literal (not evaluated). The values VAL are expressions; they are evaluated. Thus, (setq x (1+ y)) sets `x' to the value of `(1+ y)'. The second VAL is not computed until after the first SYM is set, and so on; each VAL can use the new value of variables set earlier in the `setq'. The return value of the `setq' form is the value of the last VAL. (fn [SYM VAL]...)Fquote Return the argument, without evaluating it. `(quote x)' yields `x'. Warning: `quote' does not construct its return value, but just returns the value that was pre-constructed by the Lisp reader (see info node `(elisp)Printed Representation'). This means that \='(a . b) is not identical to (cons \='a \='b): the former does not cons. Quoting should be reserved for constants that will never be modified by side-effects, unless you like self-modifying code. See the common pitfall in info node `(elisp)Rearrangement' for an example of unexpected results when a quoted object is modified. (fn ARG)Ffunction Like `quote', but preferred for objects which are functions. In byte compilation, `function' causes its argument to be handled by the byte compiler. Similarly, when expanding macros and expressions, ARG can be examined and possibly expanded. If `quote' is used instead, this doesn't happen. (fn ARG)Fdefvaralias Make NEW-ALIAS a variable alias for symbol BASE-VARIABLE. Aliased variables always have the same value; setting one sets the other. Third arg DOCSTRING, if non-nil, is documentation for NEW-ALIAS. If it is omitted or nil, NEW-ALIAS gets the documentation string of BASE-VARIABLE, or of the variable at the end of the chain of aliases, if BASE-VARIABLE is itself an alias. If NEW-ALIAS is bound, and BASE-VARIABLE is not, then the value of BASE-VARIABLE is set to that of NEW-ALIAS. The return value is BASE-VARIABLE. (fn NEW-ALIAS BASE-VARIABLE &optional DOCSTRING)Fdefault-toplevel-value Return SYMBOL's toplevel default value. "Toplevel" means outside of any let binding. (fn SYMBOL)Fset-default-toplevel-value Set SYMBOL's toplevel default value to VALUE. "Toplevel" means outside of any let binding. (fn SYMBOL VALUE)Finternal--define-uninitialized-variable Define SYMBOL as a variable, with DOC as its docstring. This is like `defvar' and `defconst' but without affecting the variable's value. (fn SYMBOL &optional DOC)Fdefvar Define SYMBOL as a variable, and return SYMBOL. You are not required to define a variable in order to use it, but defining it lets you supply an initial value and documentation, which can be referred to by the Emacs help facilities and other programming tools. The `defvar' form also declares the variable as "special", so that it is always dynamically bound even if `lexical-binding' is t. If SYMBOL's value is void and the optional argument INITVALUE is provided, INITVALUE is evaluated and the result used to set SYMBOL's value. If SYMBOL is buffer-local, its default value is what is set; buffer-local values are not affected. If INITVALUE is missing, SYMBOL's value is not set. If SYMBOL is let-bound, then this form does not affect the local let binding but the toplevel default binding instead, like `set-toplevel-default-binding`. (`defcustom' behaves similarly in this respect.) The optional argument DOCSTRING is a documentation string for the variable. To define a user option, use `defcustom' instead of `defvar'. To define a buffer-local variable, use `defvar-local'. (fn SYMBOL &optional INITVALUE DOCSTRING)Fdefvar-1 Like `defvar' but as a function. More specifically behaves like (defvar SYM 'INITVALUE DOCSTRING). (fn SYM INITVALUE &optional DOCSTRING)Fdefconst Define SYMBOL as a constant variable. This declares that neither programs nor users should ever change the value. This constancy is not actually enforced by Emacs Lisp, but SYMBOL is marked as a special variable so that it is never lexically bound. The `defconst' form always sets the value of SYMBOL to the result of evalling INITVALUE. If SYMBOL is buffer-local, its default value is what is set; buffer-local values are not affected. If SYMBOL has a local binding, then this form sets the local binding's value. However, you should normally not make local bindings for variables defined with this form. The optional DOCSTRING specifies the variable's documentation string. (fn SYMBOL INITVALUE [DOCSTRING])Fdefconst-1 Like `defconst' but as a function. More specifically, behaves like (defconst SYM 'INITVALUE DOCSTRING). (fn SYM INITVALUE &optional DOCSTRING)Finternal-make-var-non-special Internal function. (fn SYMBOL)Flet* Bind variables according to VARLIST then eval BODY. The value of the last form in BODY is returned. Each element of VARLIST is a symbol (which is bound to nil) or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM). Each VALUEFORM can refer to the symbols already bound by this VARLIST. (fn VARLIST BODY...)Flet Bind variables according to VARLIST then eval BODY. The value of the last form in BODY is returned. Each element of VARLIST is a symbol (which is bound to nil) or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM). All the VALUEFORMs are evalled before any symbols are bound. (fn VARLIST BODY...)Fwhile If TEST yields non-nil, eval BODY... and repeat. The order of execution is thus TEST, BODY, TEST, BODY and so on until TEST returns nil. The value of a `while' form is always nil. (fn TEST BODY...)Ffuncall-with-delayed-message Like `funcall', but display MESSAGE if FUNCTION takes longer than TIMEOUT. TIMEOUT is a number of seconds, and can be an integer or a floating point number. If FUNCTION takes less time to execute than TIMEOUT seconds, MESSAGE is not displayed. (fn TIMEOUT MESSAGE FUNCTION)Fmacroexpand Return result of expanding macros at top level of FORM. If FORM is not a macro call, it is returned unchanged. Otherwise, the macro is expanded and the expansion is considered in place of FORM. When a non-macro-call results, it is returned. The second optional arg ENVIRONMENT specifies an environment of macro definitions to shadow the loaded ones for use in file byte-compilation. (fn FORM &optional ENVIRONMENT)Fcatch Eval BODY allowing nonlocal exits using `throw'. TAG is evalled to get the tag to use; it must not be nil. Then the BODY is executed. Within BODY, a call to `throw' with the same TAG exits BODY and this `catch'. If no throw happens, `catch' returns the value of the last BODY form. If a throw happens, it specifies the value to return from `catch'. (fn TAG BODY...)Fthrow Throw to the catch for TAG and return VALUE from it. Both TAG and VALUE are evalled. (fn TAG VALUE)Funwind-protect Do BODYFORM, protecting with UNWINDFORMS. If BODYFORM completes normally, its value is returned after executing the UNWINDFORMS. If BODYFORM exits nonlocally, the UNWINDFORMS are executed anyway. (fn BODYFORM UNWINDFORMS...)Fcondition-case Regain control when an error is signaled. Executes BODYFORM and returns its value if no error happens. Each element of HANDLERS looks like (CONDITION-NAME BODY...) or (:success BODY...), where the BODY is made of Lisp expressions. A handler is applicable to an error if CONDITION-NAME is one of the error's condition names. Handlers may also apply when non-error symbols are signaled (e.g., `quit'). A CONDITION-NAME of t applies to any symbol, including non-error symbols. If multiple handlers are applicable, only the first one runs. The car of a handler may be a list of condition names instead of a single condition name; then it handles all of them. If the special condition name `debug' is present in this list, it allows another condition in the list to run the debugger if `debug-on-error' and the other usual mechanisms say it should (otherwise, `condition-case' suppresses the debugger). When a handler handles an error, control returns to the `condition-case' and it executes the handler's BODY... with VAR bound to (ERROR-SYMBOL . SIGNAL-DATA) from the error. (If VAR is nil, the handler can't access that information.) Then the value of the last BODY form is returned from the `condition-case' expression. The special handler (:success BODY...) is invoked if BODYFORM terminated without signaling an error. BODY is then evaluated with VAR bound to the value returned by BODYFORM. See also the function `signal' for more info. (fn VAR BODYFORM &rest HANDLERS)Fsignal Signal an error. Args are ERROR-SYMBOL and associated DATA. This function does not return. When `noninteractive' is non-nil (in particular, in batch mode), an unhandled error calls `kill-emacs', which terminates the Emacs session with a non-zero exit code. An error symbol is a symbol with an `error-conditions' property that is a list of condition names. The symbol should be non-nil. A handler for any of those names will get to handle this signal. The symbol `error' should normally be one of them. DATA should be a list. Its elements are printed as part of the error message. See Info anchor `(elisp)Definition of signal' for some details on how this error message is constructed. If the signal is handled, DATA is made available to the handler. See also the function `condition-case'. (fn ERROR-SYMBOL DATA)Fcommandp Non-nil if FUNCTION makes provisions for interactive calling. This means it contains a description for how to read arguments to give it. The value is nil for an invalid function or a symbol with no function definition. Interactively callable functions include strings and vectors (treated as keyboard macros), lambda-expressions that contain a top-level call to `interactive', autoload definitions made by `autoload' with non-nil fourth argument, and some of the built-in functions of Lisp. Also, a symbol satisfies `commandp' if its function definition does so. If the optional argument FOR-CALL-INTERACTIVELY is non-nil, then strings and vectors are not accepted. (fn FUNCTION &optional FOR-CALL-INTERACTIVELY)Fautoload Define FUNCTION to autoload from FILE. FUNCTION is a symbol; FILE is a file name string to pass to `load'. Third arg DOCSTRING is documentation for the function. Fourth arg INTERACTIVE if non-nil says function can be called interactively. If INTERACTIVE is a list, it is interpreted as a list of modes the function is applicable for. Fifth arg TYPE indicates the type of the object: nil or omitted says FUNCTION is a function, `keymap' says FUNCTION is really a keymap, and `macro' or t says FUNCTION is really a macro. Third through fifth args give info about the real definition. They default to nil. If FUNCTION is already defined other than as an autoload, this does nothing and returns nil. (fn FUNCTION FILE &optional DOCSTRING INTERACTIVE TYPE)Fautoload-do-load Load FUNDEF which should be an autoload. If non-nil, FUNNAME should be the symbol whose function value is FUNDEF, in which case the function returns the new autoloaded function value. If equal to `macro', MACRO-ONLY specifies that FUNDEF should only be loaded if it defines a macro. (fn FUNDEF &optional FUNNAME MACRO-ONLY)Feval Evaluate FORM and return its value. If LEXICAL is t, evaluate using lexical scoping. LEXICAL can also be an actual lexical environment, in the form of an alist mapping symbols to their value. (fn FORM &optional LEXICAL)Fapply Call FUNCTION with our remaining args, using our last arg as list of args. Then return the value FUNCTION returns. With a single argument, call the argument's first element using the other elements as args. Thus, (apply \='+ 1 2 \='(3 4)) returns 10. (fn FUNCTION &rest ARGUMENTS)Frun-hooks Run each hook in HOOKS. Each argument should be a symbol, a hook variable. These symbols are processed in the order specified. If a hook symbol has a non-nil value, that value may be a function or a list of functions to be called to run the hook. If the value is a function, it is called with no arguments. If it is a list, the elements are called, in order, with no arguments. Major modes should not use this function directly to run their mode hook; they should use `run-mode-hooks' instead. Do not use `make-local-variable' to make a hook variable buffer-local. Instead, use `add-hook' and specify t for the LOCAL argument. (fn &rest HOOKS)Frun-hook-with-args Run HOOK with the specified arguments ARGS. HOOK should be a symbol, a hook variable. The value of HOOK may be nil, a function, or a list of functions. Call each function in order with arguments ARGS. The final return value is unspecified. Do not use `make-local-variable' to make a hook variable buffer-local. Instead, use `add-hook' and specify t for the LOCAL argument. (fn HOOK &rest ARGS)Frun-hook-with-args-until-success Run HOOK with the specified arguments ARGS. HOOK should be a symbol, a hook variable. The value of HOOK may be nil, a function, or a list of functions. Call each function in order with arguments ARGS, stopping at the first one that returns non-nil, and return that value. Otherwise (if all functions return nil, or if there are no functions to call), return nil. Do not use `make-local-variable' to make a hook variable buffer-local. Instead, use `add-hook' and specify t for the LOCAL argument. (fn HOOK &rest ARGS)Frun-hook-with-args-until-failure Run HOOK with the specified arguments ARGS. HOOK should be a symbol, a hook variable. The value of HOOK may be nil, a function, or a list of functions. Call each function in order with arguments ARGS, stopping at the first one that returns nil, and return nil. Otherwise (if all functions return non-nil, or if there are no functions to call), return non-nil (do not rely on the precise return value in this case). Do not use `make-local-variable' to make a hook variable buffer-local. Instead, use `add-hook' and specify t for the LOCAL argument. (fn HOOK &rest ARGS)Frun-hook-wrapped Run HOOK, passing each function through WRAP-FUNCTION. I.e. instead of calling each function FUN directly with arguments ARGS, it calls WRAP-FUNCTION with arguments FUN and ARGS. As soon as a call to WRAP-FUNCTION returns non-nil, `run-hook-wrapped' aborts and returns that value. (fn HOOK WRAP-FUNCTION &rest ARGS)Ffunctionp Return t if OBJECT is a function. An object is a function if it is callable via `funcall'; this includes symbols with function bindings, but excludes macros and special forms. Ordinarily return nil if OBJECT is not a function, although t might be returned in rare cases. (fn OBJECT)Ffuncall Call first argument as a function, passing remaining arguments to it. Return the value that function returns. Thus, (funcall \='cons \='x \='y) returns (x . y). (fn FUNCTION &rest ARGUMENTS)Ffunc-arity Return minimum and maximum number of args allowed for FUNCTION. FUNCTION must be a function of some kind. The returned value is a cons cell (MIN . MAX). MIN is the minimum number of args. MAX is the maximum number, or the symbol `many', for a function with `&rest' args, or `unevalled' for a special form. (fn FUNCTION)Ffetch-bytecode If byte-compiled OBJECT is lazy-loaded, fetch it now. (fn OBJECT)Fspecial-variable-p Return non-nil if SYMBOL's global binding has been declared special. A special variable is one that will be bound dynamically, even in a context where binding is lexical by default. (fn SYMBOL)Fbacktrace-debug Set the debug-on-exit flag of eval frame LEVEL levels down to FLAG. The debugger is entered when that frame exits, if the flag is non-nil. (fn LEVEL FLAG)Fmapbacktrace Call FUNCTION for each frame in backtrace. If BASE is non-nil, it should be a function and iteration will start from its nearest activation frame. FUNCTION is called with 4 arguments: EVALD, FUNC, ARGS, and FLAGS. If a frame has not evaluated its arguments yet or is a special form, EVALD is nil and ARGS is a list of forms. If a frame has evaluated its arguments and called its function already, EVALD is t and ARGS is a list of values. FLAGS is a plist of properties of the current frame: currently, the only supported property is :debug-on-exit. `mapbacktrace' always returns nil. (fn FUNCTION &optional BASE)Fbacktrace-frame--internal Call FUNCTION on stack frame NFRAMES away from BASE. Return the result of FUNCTION, or nil if no matching frame could be found. (fn FUNCTION NFRAMES BASE)Fbacktrace--frames-from-thread Return the list of backtrace frames from current execution point in THREAD. If a frame has not evaluated the arguments yet (or is a special form), the value of the list element is (nil FUNCTION ARG-FORMS...). If a frame has evaluated its arguments and called its function already, the value of the list element is (t FUNCTION ARG-VALUES...). A &rest arg is represented as the tail of the list ARG-VALUES. FUNCTION is whatever was supplied as car of evaluated list, or a lambda expression for macro calls. (fn THREAD)Fbacktrace-eval Evaluate EXP in the context of some activation frame. NFRAMES and BASE specify the activation frame to use, as in `backtrace-frame'. (fn EXP NFRAMES &optional BASE)Fbacktrace--locals Return names and values of local variables of a stack frame. NFRAMES and BASE specify the activation frame to use, as in `backtrace-frame'. (fn NFRAMES &optional BASE)Vmax-lisp-eval-depth Limit on depth in `eval', `apply' and `funcall' before error. This limit serves to catch infinite recursions for you before they cause actual stack overflow in C, which would be fatal for Emacs. You can safely make it considerably larger than its default value, if that proves inconveniently small. However, if you increase it too far, Emacs could overflow the real C stack, and crash.Vquit-flag Non-nil causes `eval' to abort, unless `inhibit-quit' is non-nil. If the value is t, that means do an ordinary quit. If the value equals `throw-on-input', that means quit by throwing to the tag specified in `throw-on-input'; it's for handling `while-no-input'. Typing C-g sets `quit-flag' to t, regardless of `inhibit-quit', but `inhibit-quit' non-nil prevents anything from taking notice of that.Vinhibit-quit Non-nil inhibits C-g quitting from happening immediately. Note that `quit-flag' will still be set by typing C-g, so a quit will be signaled as soon as `inhibit-quit' is nil. To prevent this happening, set `quit-flag' to nil before making `inhibit-quit' nil.Vinhibit-debugger Non-nil means never enter the debugger. Normally set while the debugger is already active, to avoid recursive invocations.Vdebug-on-error Non-nil means enter debugger if an error is signaled. Does not apply to errors handled by `condition-case' or those matched by `debug-ignored-errors'. If the value is a list, an error only means to enter the debugger if one of its condition symbols appears in the list. When you evaluate an expression interactively, this variable is temporarily non-nil if `eval-expression-debug-on-error' is non-nil. The command `toggle-debug-on-error' toggles this. See also the variable `debug-on-quit' and `inhibit-debugger'.Vdebug-ignored-errors List of errors for which the debugger should not be called. Each element may be a condition-name or a regexp that matches error messages. If any element applies to a given error, that error skips the debugger and just returns to top level. This overrides the variable `debug-on-error'. It does not apply to errors handled by `condition-case'.Vdebug-on-quit Non-nil means enter debugger if quit is signaled (C-g, for example). Does not apply if quit is handled by a `condition-case'.Vdebug-on-next-call Non-nil means enter debugger before next `eval', `apply' or `funcall'.Vbacktrace-on-redisplay-error Non-nil means create a backtrace if a lisp error occurs in redisplay. The backtrace is written to buffer *Redisplay-trace*.Vdebugger-may-continue Non-nil means debugger may continue execution. This is nil when the debugger is called under circumstances where it might not be safe to continue.Vdebugger-stack-frame-as-list Non-nil means display call stack frames as lists.Vdebugger Function to call to invoke debugger. If due to frame exit, args are `exit' and the value being returned; this function's value will be returned instead of that. If due to error, args are `error' and a list of the args to `signal'. If due to `apply' or `funcall' entry, one arg, `lambda'. If due to `eval' entry, one arg, t.Vsignal-hook-function If non-nil, this is a function for `signal' to call. It receives the same arguments that `signal' was given. The Edebug package uses this to regain control.Vdebug-on-signal Non-nil means call the debugger regardless of condition handlers. Note that `debug-on-error', `debug-on-quit' and friends still determine whether to handle the particular condition.Vbacktrace-on-error-noninteractive Non-nil means print backtrace on error in batch mode. If this is nil, errors in batch mode will just print the error message upon encountering an unhandled error, without showing the Lisp backtrace.Vinternal-when-entered-debugger The number of keyboard events as of last time `debugger' was called. Used to avoid infinite loops if the debugger itself has an error. Don't set this unless you're sure that can't happen.Vinternal-interpreter-environment If non-nil, the current lexical environment of the lisp interpreter. When lexical binding is not being used, this variable is nil. A value of `(t)' indicates an empty environment, otherwise it is an alist of active lexical bindings.Vinternal-make-interpreted-closure-function Function to filter the env when constructing a closure.Sfloatfns.o Facos Return the inverse cosine of ARG. (fn ARG)Fasin Return the inverse sine of ARG. (fn ARG)Fatan Return the inverse tangent of the arguments. If only one argument Y is given, return the inverse tangent of Y. If two arguments Y and X are given, return the inverse tangent of Y divided by X, i.e. the angle in radians between the vector (X, Y) and the x-axis. (fn Y &optional X)Fcos Return the cosine of ARG. (fn ARG)Fsin Return the sine of ARG. (fn ARG)Ftan Return the tangent of ARG. (fn ARG)Fisnan Return non-nil if argument X is a NaN. (fn X)Fcopysign Copy sign of X2 to value of X1, and return the result. Cause an error if X1 or X2 is not a float. (fn X1 X2)Ffrexp Get significand and exponent of a floating point number. Breaks the floating point number X into its binary significand SGNFCAND (a floating point value between 0.5 (included) and 1.0 (excluded)) and an integral exponent EXP for 2, such that: X = SGNFCAND * 2^EXP The function returns the cons cell (SGNFCAND . EXP). If X is zero, both parts (SGNFCAND and EXP) are zero. (fn X)Fldexp Return SGNFCAND * 2**EXPONENT, as a floating point number. EXPONENT must be an integer. (fn SGNFCAND EXPONENT)Fexp Return the exponential base e of ARG. (fn ARG)Fexpt Return the exponential ARG1 ** ARG2. (fn ARG1 ARG2)Flog Return the natural logarithm of ARG. If the optional argument BASE is given, return log ARG using that base. (fn ARG &optional BASE)Fsqrt Return the square root of ARG. (fn ARG)Fabs Return the absolute value of ARG. (fn ARG)Ffloat Return the floating point number equal to ARG. (fn ARG)Flogb Returns largest integer <= the base 2 log of the magnitude of ARG. This is the same as the exponent of a float. (fn ARG)Fceiling Return the smallest integer no less than ARG. This rounds the value towards +inf. With optional DIVISOR, return the smallest integer no less than ARG/DIVISOR. (fn ARG &optional DIVISOR)Ffloor Return the largest integer no greater than ARG. This rounds the value towards -inf. With optional DIVISOR, return the largest integer no greater than ARG/DIVISOR. (fn ARG &optional DIVISOR)Fround Return the nearest integer to ARG. With optional DIVISOR, return the nearest integer to ARG/DIVISOR. Rounding a value equidistant between two integers may choose the integer closer to zero, or it may prefer an even integer, depending on your machine. For example, (round 2.5) can return 3 on some systems, but 2 on others. (fn ARG &optional DIVISOR)Ftruncate Truncate a floating point number to an int. Rounds ARG toward zero. With optional DIVISOR, truncate ARG/DIVISOR. (fn ARG &optional DIVISOR)Ffceiling Return the smallest integer no less than ARG, as a float. (Round toward +inf.) (fn ARG)Fffloor Return the largest integer no greater than ARG, as a float. (Round toward -inf.) (fn ARG)Ffround Return the nearest integer to ARG, as a float. (fn ARG)Fftruncate Truncate a floating point number to an integral float value. (Round toward zero.) (fn ARG)Sfns.o Fidentity Return the ARGUMENT unchanged. (fn ARGUMENT)Frandom Return a pseudo-random integer. By default, return a fixnum; all fixnums are equally likely. With positive integer LIMIT, return random integer in interval [0,LIMIT). With argument t, set the random number seed from the system's entropy pool if available, otherwise from less-random volatile data such as the time. With a string argument, set the seed based on the string's contents. See Info node `(elisp)Random Numbers' for more details. (fn &optional LIMIT)Flength Return the length of vector, list or string SEQUENCE. A byte-code function object is also allowed. If the string contains multibyte characters, this is not necessarily the number of bytes in the string; it is the number of characters. To get the number of bytes, use `string-bytes'. If the length of a list is being computed to compare to a (small) number, the `length<', `length>' and `length=' functions may be more efficient. (fn SEQUENCE)Fsafe-length Return the length of a list, but avoid error or infinite loop. This function never gets an error. If LIST is not really a list, it returns 0. If LIST is circular, it returns an integer that is at least the number of distinct elements. (fn LIST)Flength< Return non-nil if SEQUENCE is shorter than LENGTH. See `length' for allowed values of SEQUENCE and how elements are counted. (fn SEQUENCE LENGTH)Flength> Return non-nil if SEQUENCE is longer than LENGTH. See `length' for allowed values of SEQUENCE and how elements are counted. (fn SEQUENCE LENGTH)Flength= Return non-nil if SEQUENCE has length equal to LENGTH. See `length' for allowed values of SEQUENCE and how elements are counted. (fn SEQUENCE LENGTH)Fproper-list-p Return OBJECT's length if it is a proper list, nil otherwise. A proper list is neither circular nor dotted (i.e., its last cdr is nil). (fn OBJECT)Fstring-bytes Return the number of bytes in STRING. If STRING is multibyte, this may be greater than the length of STRING. (fn STRING)Fstring-distance Return Levenshtein distance between STRING1 and STRING2. The distance is the number of deletions, insertions, and substitutions required to transform STRING1 into STRING2. If BYTECOMPARE is nil or omitted, compute distance in terms of characters. If BYTECOMPARE is non-nil, compute distance in terms of bytes. Letter-case is significant, but text properties are ignored. (fn STRING1 STRING2 &optional BYTECOMPARE)Fstring-equal Return t if two strings have identical contents. Case is significant, but text properties are ignored. Symbols are also allowed; their print names are used instead. See also `string-equal-ignore-case'. (fn S1 S2)Fcompare-strings Compare the contents of two strings, converting to multibyte if needed. The arguments START1, END1, START2, and END2, if non-nil, are positions specifying which parts of STR1 or STR2 to compare. In string STR1, compare the part between START1 (inclusive) and END1 (exclusive). If START1 is nil, it defaults to 0, the beginning of the string; if END1 is nil, it defaults to the length of the string. Likewise, in string STR2, compare the part between START2 and END2. Like in `substring', negative values are counted from the end. The strings are compared by the numeric values of their characters. For instance, STR1 is "less than" STR2 if its first differing character has a smaller numeric value. If IGNORE-CASE is non-nil, characters are converted to upper-case before comparing them. Unibyte strings are converted to multibyte for comparison. The value is t if the strings (or specified portions) match. If string STR1 is less, the value is a negative number N; - 1 - N is the number of characters that match at the beginning. If string STR1 is greater, the value is a positive number N; N - 1 is the number of characters that match at the beginning. (fn STR1 START1 END1 STR2 START2 END2 &optional IGNORE-CASE)Fstring-lessp Return non-nil if STRING1 is less than STRING2 in lexicographic order. Case is significant. Symbols are also allowed; their print names are used instead. (fn STRING1 STRING2)Fstring-version-lessp Return non-nil if S1 is less than S2, as version strings. This function compares version strings S1 and S2: 1) By prefix lexicographically. 2) Then by version (similarly to version comparison of Debian's dpkg). Leading zeros in version numbers are ignored. 3) If both prefix and version are equal, compare as ordinary strings. For example, "foo2.png" compares less than "foo12.png". Case is significant. Symbols are also allowed; their print names are used instead. (fn STRING1 STRING2)Fstring-collate-lessp Return t if first arg string is less than second in collation order. Symbols are also allowed; their print names are used instead. This function obeys the conventions for collation order in your locale settings. For example, punctuation and whitespace characters might be considered less significant for sorting: (sort \='("11" "12" "1 1" "1 2" "1.1" "1.2") \='string-collate-lessp) => ("11" "1 1" "1.1" "12" "1 2" "1.2") The optional argument LOCALE, a string, overrides the setting of your current locale identifier for collation. The value is system dependent; a LOCALE "en_US.UTF-8" is applicable on POSIX systems, while it would be, e.g., "enu_USA.1252" on MS-Windows systems. If IGNORE-CASE is non-nil, characters are converted to lower-case before comparing them. To emulate Unicode-compliant collation on MS-Windows systems, bind `w32-collate-ignore-punctuation' to a non-nil value, since the codeset part of the locale cannot be "UTF-8" on MS-Windows. Some operating systems do not implement correct collation (in specific locale environments or at all). Then, this functions falls back to case-sensitive `string-lessp' and IGNORE-CASE argument is ignored. (fn S1 S2 &optional LOCALE IGNORE-CASE)Fstring-collate-equalp Return t if two strings have identical contents. Symbols are also allowed; their print names are used instead. This function obeys the conventions for collation order in your locale settings. For example, characters with different coding points but the same meaning might be considered as equal, like different grave accent Unicode characters: (string-collate-equalp (string ?\uFF40) (string ?\u1FEF)) => t The optional argument LOCALE, a string, overrides the setting of your current locale identifier for collation. The value is system dependent; a LOCALE "en_US.UTF-8" is applicable on POSIX systems, while it would be "enu_USA.1252" on MS Windows systems. If IGNORE-CASE is non-nil, characters are converted to lower-case before comparing them. To emulate Unicode-compliant collation on MS-Windows systems, bind `w32-collate-ignore-punctuation' to a non-nil value, since the codeset part of the locale cannot be "UTF-8" on MS-Windows. If your system does not support a locale environment, this function behaves like `string-equal', and in that case the IGNORE-CASE argument is ignored. Do NOT use this function to compare file names for equality. (fn S1 S2 &optional LOCALE IGNORE-CASE)Fappend Concatenate all the arguments and make the result a list. The result is a list whose elements are the elements of all the arguments. Each argument may be a list, vector or string. All arguments except the last argument are copied. The last argument is just used as the tail of the new list. (fn &rest SEQUENCES)Fconcat Concatenate all the arguments and make the result a string. The result is a string whose elements are the elements of all the arguments. Each argument may be a string or a list or vector of characters (integers). Values of the `composition' property of the result are not guaranteed to be `eq'. (fn &rest SEQUENCES)Fvconcat Concatenate all the arguments and make the result a vector. The result is a vector whose elements are the elements of all the arguments. Each argument may be a list, vector or string. (fn &rest SEQUENCES)Fcopy-sequence Return a copy of a list, vector, string, char-table or record. The elements of a list, vector or record are not copied; they are shared with the original. See Info node `(elisp) Sequence Functions' for more details about this sharing and its effects. If the original sequence is empty, this function may return the same empty object instead of its copy. (fn ARG)Fstring-make-multibyte Return the multibyte equivalent of STRING. If STRING is unibyte and contains non-ASCII characters, the function `unibyte-char-to-multibyte' is used to convert each unibyte character to a multibyte character. In this case, the returned string is a newly created string with no text properties. If STRING is multibyte or entirely ASCII, it is returned unchanged. In particular, when STRING is unibyte and entirely ASCII, the returned string is unibyte. (When the characters are all ASCII, Emacs primitives will treat the string the same way whether it is unibyte or multibyte.) (fn STRING)Fstring-make-unibyte Return the unibyte equivalent of STRING. Multibyte character codes above 255 are converted to unibyte by taking just the low 8 bits of each character's code. (fn STRING)Fstring-as-unibyte Return a unibyte string with the same individual bytes as STRING. If STRING is unibyte, the result is STRING itself. Otherwise it is a newly created string, with no text properties. If STRING is multibyte and contains a character of charset `eight-bit', it is converted to the corresponding single byte. (fn STRING)Fstring-as-multibyte Return a multibyte string with the same individual bytes as STRING. If STRING is multibyte, the result is STRING itself. Otherwise it is a newly created string, with no text properties. If STRING is unibyte and contains an individual 8-bit byte (i.e. not part of a correct utf-8 sequence), it is converted to the corresponding multibyte character of charset `eight-bit'. See also `string-to-multibyte'. Beware, this often doesn't really do what you think it does. It is similar to (decode-coding-string STRING \='utf-8-emacs). If you're not sure, whether to use `string-as-multibyte' or `string-to-multibyte', use `string-to-multibyte'. (fn STRING)Fstring-to-multibyte Return a multibyte string with the same individual chars as STRING. If STRING is multibyte, the result is STRING itself. Otherwise it is a newly created string, with no text properties. If STRING is unibyte and contains an 8-bit byte, it is converted to the corresponding multibyte character of charset `eight-bit'. This differs from `string-as-multibyte' by converting each byte of a correct utf-8 sequence to an eight-bit character, not just bytes that don't form a correct sequence. (fn STRING)Fstring-to-unibyte Return a unibyte string with the same individual chars as STRING. If STRING is unibyte, the result is STRING itself. Otherwise it is a newly created string, with no text properties, where each `eight-bit' character is converted to the corresponding byte. If STRING contains a non-ASCII, non-`eight-bit' character, an error is signaled. (fn STRING)Fcopy-alist Return a copy of ALIST. This is an alist which represents the same mapping from objects to objects, but does not share the alist structure with ALIST. The objects mapped (cars and cdrs of elements of the alist) are shared, however. Elements of ALIST that are not conses are also shared. (fn ALIST)Fsubstring Return a new string whose contents are a substring of STRING. The returned string consists of the characters between index FROM (inclusive) and index TO (exclusive) of STRING. FROM and TO are zero-indexed: 0 means the first character of STRING. Negative values are counted from the end of STRING. If TO is nil, the substring runs to the end of STRING. The STRING argument may also be a vector. In that case, the return value is a new vector that contains the elements between index FROM (inclusive) and index TO (exclusive) of that vector argument. With one argument, just copy STRING (with properties, if any). (fn STRING &optional FROM TO)Fsubstring-no-properties Return a substring of STRING, without text properties. It starts at index FROM and ends before TO. TO may be nil or omitted; then the substring runs to the end of STRING. If FROM is nil or omitted, the substring starts at the beginning of STRING. If FROM or TO is negative, it counts from the end. With one argument, just copy STRING without its properties. (fn STRING &optional FROM TO)Ftake Return the first N elements of LIST. If N is zero or negative, return nil. If N is greater or equal to the length of LIST, return LIST (or a copy). (fn N LIST)Fntake Modify LIST to keep only the first N elements. If N is zero or negative, return nil. If N is greater or equal to the length of LIST, return LIST unmodified. Otherwise, return LIST after truncating it. (fn N LIST)Fnthcdr Take cdr N times on LIST, return the result. (fn N LIST)Fnth Return the Nth element of LIST. N counts from zero. If LIST is not that long, nil is returned. (fn N LIST)Felt Return element of SEQUENCE at index N. (fn SEQUENCE N)Fmember Return non-nil if ELT is an element of LIST. Comparison done with `equal'. The value is actually the tail of LIST whose car is ELT. (fn ELT LIST)Fmemq Return non-nil if ELT is an element of LIST. Comparison done with `eq'. The value is actually the tail of LIST whose car is ELT. (fn ELT LIST)Fmemql Return non-nil if ELT is an element of LIST. Comparison done with `eql'. The value is actually the tail of LIST whose car is ELT. (fn ELT LIST)Fassq Return non-nil if KEY is `eq' to the car of an element of ALIST. The value is actually the first element of ALIST whose car is KEY. Elements of ALIST that are not conses are ignored. (fn KEY ALIST)Fassoc Return non-nil if KEY is equal to the car of an element of ALIST. The value is actually the first element of ALIST whose car equals KEY. Equality is defined by the function TESTFN, defaulting to `equal'. TESTFN is called with 2 arguments: a car of an alist element and KEY. (fn KEY ALIST &optional TESTFN)Frassq Return non-nil if KEY is `eq' to the cdr of an element of ALIST. The value is actually the first element of ALIST whose cdr is KEY. (fn KEY ALIST)Frassoc Return non-nil if KEY is `equal' to the cdr of an element of ALIST. The value is actually the first element of ALIST whose cdr equals KEY. (fn KEY ALIST)Fdelq Delete members of LIST which are `eq' to ELT, and return the result. More precisely, this function skips any members `eq' to ELT at the front of LIST, then removes members `eq' to ELT from the remaining sublist by modifying its list structure, then returns the resulting list. Write `(setq foo (delq element foo))' to be sure of correctly changing the value of a list `foo'. See also `remq', which does not modify the argument. (fn ELT LIST)Fdelete Delete members of SEQ which are `equal' to ELT, and return the result. SEQ must be a sequence (i.e. a list, a vector, or a string). The return value is a sequence of the same type. If SEQ is a list, this behaves like `delq', except that it compares with `equal' instead of `eq'. In particular, it may remove elements by altering the list structure. If SEQ is not a list, deletion is never performed destructively; instead this function creates and returns a new vector or string. Write `(setq foo (delete element foo))' to be sure of correctly changing the value of a sequence `foo'. See also `remove', which does not modify the argument. (fn ELT SEQ)Fnreverse Reverse order of items in a list, vector or string SEQ. If SEQ is a list, it should be nil-terminated. This function may destructively modify SEQ to produce the value. (fn SEQ)Freverse Return the reversed copy of list, vector, or string SEQ. See also the function `nreverse', which is used more often. (fn SEQ)Fsort Sort SEQ, stably, comparing elements using PREDICATE. Returns the sorted sequence. SEQ should be a list or vector. SEQ is modified by side effects. PREDICATE is called with two elements of SEQ, and should return non-nil if the first element should sort before the second. (fn SEQ PREDICATE)Fplist-get Extract a value from a property list. PLIST is a property list, which is a list of the form (PROP1 VALUE1 PROP2 VALUE2...). This function returns the value corresponding to the given PROP, or nil if PROP is not one of the properties on the list. The comparison with PROP is done using PREDICATE, which defaults to `eq'. This function doesn't signal an error if PLIST is invalid. (fn PLIST PROP &optional PREDICATE)Fget Return the value of SYMBOL's PROPNAME property. This is the last value stored with `(put SYMBOL PROPNAME VALUE)'. (fn SYMBOL PROPNAME)Fplist-put Change value in PLIST of PROP to VAL. PLIST is a property list, which is a list of the form (PROP1 VALUE1 PROP2 VALUE2 ...). The comparison with PROP is done using PREDICATE, which defaults to `eq'. If PROP is already a property on the list, its value is set to VAL, otherwise the new PROP VAL pair is added. The new plist is returned; use `(setq x (plist-put x prop val))' to be sure to use the new value. The PLIST is modified by side effects. (fn PLIST PROP VAL &optional PREDICATE)Fput Store SYMBOL's PROPNAME property with value VALUE. It can be retrieved with `(get SYMBOL PROPNAME)'. (fn SYMBOL PROPNAME VALUE)Fplist-member Return non-nil if PLIST has the property PROP. PLIST is a property list, which is a list of the form (PROP1 VALUE1 PROP2 VALUE2 ...). The comparison with PROP is done using PREDICATE, which defaults to `eq'. Unlike `plist-get', this allows you to distinguish between a missing property and a property with the value nil. The value is actually the tail of PLIST whose car is PROP. (fn PLIST PROP &optional PREDICATE)Feql Return t if the two args are `eq' or are indistinguishable numbers. Integers with the same value are `eql'. Floating-point values with the same sign, exponent and fraction are `eql'. This differs from numeric comparison: (eql 0.0 -0.0) returns nil and (eql 0.0e+NaN 0.0e+NaN) returns t, whereas `=' does the opposite. (fn OBJ1 OBJ2)Fequal Return t if two Lisp objects have similar structure and contents. They must have the same data type. Conses are compared by comparing the cars and the cdrs. Vectors and strings are compared element by element. Numbers are compared via `eql', so integers do not equal floats. (Use `=' if you want integers and floats to be able to be equal.) Symbols must match exactly. (fn O1 O2)Fequal-including-properties Return t if two Lisp objects have similar structure and contents. This is like `equal' except that it compares the text properties of strings. (`equal' ignores text properties.) (fn O1 O2)Ffillarray Store each element of ARRAY with ITEM. ARRAY is a vector, string, char-table, or bool-vector. (fn ARRAY ITEM)Fclear-string Clear the contents of STRING. This makes STRING unibyte and may change its length. (fn STRING)Fnconc Concatenate any number of lists by altering them. Only the last argument is not altered, and need not be a list. (fn &rest LISTS)Fmapconcat Apply FUNCTION to each element of SEQUENCE, and concat the results as strings. In between each pair of results, stick in SEPARATOR. Thus, " " as SEPARATOR results in spaces between the values returned by FUNCTION. SEQUENCE may be a list, a vector, a bool-vector, or a string. Optional argument SEPARATOR must be a string, a vector, or a list of characters; nil stands for the empty string. FUNCTION must be a function of one argument, and must return a value that is a sequence of characters: either a string, or a vector or list of numbers that are valid character codepoints. (fn FUNCTION SEQUENCE &optional SEPARATOR)Fmapcar Apply FUNCTION to each element of SEQUENCE, and make a list of the results. The result is a list just as long as SEQUENCE. SEQUENCE may be a list, a vector, a bool-vector, or a string. (fn FUNCTION SEQUENCE)Fmapc Apply FUNCTION to each element of SEQUENCE for side effects only. Unlike `mapcar', don't accumulate the results. Return SEQUENCE. SEQUENCE may be a list, a vector, a bool-vector, or a string. (fn FUNCTION SEQUENCE)Fmapcan Apply FUNCTION to each element of SEQUENCE, and concatenate the results by altering them (using `nconc'). SEQUENCE may be a list, a vector, a bool-vector, or a string. (fn FUNCTION SEQUENCE)Fyes-or-no-p Ask user a yes-or-no question. Return t if answer is yes, and nil if the answer is no. PROMPT is the string to display to ask the question; `yes-or-no-p' adds "(yes or no) " to it. The user must confirm the answer with RET, and can edit it until it has been confirmed. If the `use-short-answers' variable is non-nil, instead of asking for "yes" or "no", this function will ask for "y" or "n". If dialog boxes are supported, this function will use a dialog box if `use-dialog-box' is non-nil and the last input event was produced by a mouse, or by some window-system gesture, or via a menu. (fn PROMPT)Fload-average Return list of 1 minute, 5 minute and 15 minute load averages. Each of the three load averages is multiplied by 100, then converted to integer. When USE-FLOATS is non-nil, floats will be used instead of integers. These floats are not multiplied by 100. If the 5-minute or 15-minute load averages are not available, return a shortened list, containing only those averages which are available. An error is thrown if the load average can't be obtained. In some cases making it work would require Emacs being installed setuid or setgid so that it can read kernel information, and that usually isn't advisable. (fn &optional USE-FLOATS)Ffeaturep Return t if FEATURE is present in this Emacs. Use this to conditionalize execution of lisp code based on the presence or absence of Emacs or environment extensions. Use `provide' to declare that a feature is available. This function looks at the value of the variable `features'. The optional argument SUBFEATURE can be used to check a specific subfeature of FEATURE. (fn FEATURE &optional SUBFEATURE)Fprovide Announce that FEATURE is a feature of the current Emacs. The optional argument SUBFEATURES should be a list of symbols listing particular subfeatures supported in this version of FEATURE. (fn FEATURE &optional SUBFEATURES)Frequire If FEATURE is not already loaded, load it from FILENAME. If FEATURE is not a member of the list `features', then the feature was not yet loaded; so load it from file FILENAME. If FILENAME is omitted, the printname of FEATURE is used as the file name, and `load' is called to try to load the file by that name, after appending the suffix `.elc', `.el', or the system-dependent suffix for dynamic module files, in that order; but the function will not try to load the file without any suffix. See `get-load-suffixes' for the complete list of suffixes. To find the file, this function searches the directories in `load-path'. If the optional third argument NOERROR is non-nil, then, if the file is not found, the function returns nil instead of signaling an error. Normally the return value is FEATURE. The normal messages issued by `load' at start and end of loading FILENAME are suppressed. (fn FEATURE &optional FILENAME NOERROR)Fwidget-put In WIDGET, set PROPERTY to VALUE. The value can later be retrieved with `widget-get'. (fn WIDGET PROPERTY VALUE)Fwidget-get In WIDGET, get the value of PROPERTY. The value could either be specified when the widget was created, or later with `widget-put'. (fn WIDGET PROPERTY)Fwidget-apply Apply the value of WIDGET's PROPERTY to the widget itself. Return the result of applying the value of PROPERTY to WIDGET. ARGS are passed as extra arguments to the function. (fn WIDGET PROPERTY &rest ARGS)Flocale-info Access locale data ITEM for the current C locale, if available. ITEM should be one of the following: `codeset', returning the character set as a string (locale item CODESET); `days', returning a 7-element vector of day names (locale items DAY_n); `months', returning a 12-element vector of month names (locale items MON_n); `paper', returning a list of 2 integers (WIDTH HEIGHT) for the default paper size, both measured in millimeters (locale items _NL_PAPER_WIDTH, _NL_PAPER_HEIGHT). If the system can't provide such information through a call to `nl_langinfo', or if ITEM isn't from the list above, return nil. See also Info node `(libc)Locales'. The data read from the system are decoded using `locale-coding-system'. (fn ITEM)Fbase64-encode-region Base64-encode the region between BEG and END. The data in the region is assumed to represent bytes, not text. If you want to base64-encode text, the text has to be converted into data first by using `encode-coding-region' with the appropriate coding system first. Return the length of the encoded data. Optional third argument NO-LINE-BREAK means do not break long lines into shorter lines. (fn BEG END &optional NO-LINE-BREAK)Fbase64url-encode-region Base64url-encode the region between BEG and END. Return the length of the encoded text. Optional second argument NO-PAD means do not add padding char =. This produces the URL variant of base 64 encoding defined in RFC 4648. (fn BEG END &optional NO-PAD)Fbase64-encode-string Base64-encode STRING and return the result. Optional second argument NO-LINE-BREAK means do not break long lines into shorter lines. (fn STRING &optional NO-LINE-BREAK)Fbase64url-encode-string Base64url-encode STRING and return the result. Optional second argument NO-PAD means do not add padding char =. This produces the URL variant of base 64 encoding defined in RFC 4648. (fn STRING &optional NO-PAD)Fbase64-decode-region Base64-decode the region between BEG and END. Return the length of the decoded data. Note that after calling this function, the data in the region will represent bytes, not text. If you want to end up with text, you have to call `decode-coding-region' afterwards with an appropriate coding system. If the region can't be decoded, signal an error and don't modify the buffer. Optional third argument BASE64URL determines whether to use the URL variant of the base 64 encoding, as defined in RFC 4648. If optional fourth argument IGNORE-INVALID is non-nil invalid characters are ignored instead of signaling an error. (fn BEG END &optional BASE64URL IGNORE-INVALID)Fbase64-decode-string Base64-decode STRING and return the result as a string. Optional argument BASE64URL determines whether to use the URL variant of the base 64 encoding, as defined in RFC 4648. If optional third argument IGNORE-INVALID is non-nil invalid characters are ignored instead of signaling an error. (fn STRING &optional BASE64URL IGNORE-INVALID)Fsxhash-eq Return an integer hash code for OBJ suitable for `eq'. If (eq A B), then (= (sxhash-eq A) (sxhash-eq B)). Hash codes are not guaranteed to be preserved across Emacs sessions. (fn OBJ)Fsxhash-eql Return an integer hash code for OBJ suitable for `eql'. If (eql A B), then (= (sxhash-eql A) (sxhash-eql B)), but the opposite isn't necessarily true. Hash codes are not guaranteed to be preserved across Emacs sessions. (fn OBJ)Fsxhash-equal Return an integer hash code for OBJ suitable for `equal'. If (equal A B), then (= (sxhash-equal A) (sxhash-equal B)), but the opposite isn't necessarily true. Hash codes are not guaranteed to be preserved across Emacs sessions. (fn OBJ)Fsxhash-equal-including-properties Return an integer hash code for OBJ suitable for `equal-including-properties'. If (sxhash-equal-including-properties A B), then (= (sxhash-equal-including-properties A) (sxhash-equal-including-properties B)). Hash codes are not guaranteed to be preserved across Emacs sessions. (fn OBJ)Fmake-hash-table Create and return a new hash table. Arguments are specified as keyword/argument pairs. The following arguments are defined: :test TEST -- TEST must be a symbol that specifies how to compare keys. Default is `eql'. Predefined are the tests `eq', `eql', and `equal'. User-supplied test and hash functions can be specified via `define-hash-table-test'. :size SIZE -- A hint as to how many elements will be put in the table. Default is 65. :rehash-size REHASH-SIZE - Indicates how to expand the table when it fills up. If REHASH-SIZE is an integer, increase the size by that amount. If it is a float, it must be > 1.0, and the new size is the old size multiplied by that factor. Default is 1.5. :rehash-threshold THRESHOLD -- THRESHOLD must a float > 0, and <= 1.0. Resize the hash table when the ratio (table entries / table size) exceeds an approximation to THRESHOLD. Default is 0.8125. :weakness WEAK -- WEAK must be one of nil, t, `key', `value', `key-or-value', or `key-and-value'. If WEAK is not nil, the table returned is a weak table. Key/value pairs are removed from a weak hash table when there are no non-weak references pointing to their key, value, one of key or value, or both key and value, depending on WEAK. WEAK t is equivalent to `key-and-value'. Default value of WEAK is nil. :purecopy PURECOPY -- If PURECOPY is non-nil, the table can be copied to pure storage when Emacs is being dumped, making the contents of the table read only. Any further changes to purified tables will result in an error. (fn &rest KEYWORD-ARGS)Fcopy-hash-table Return a copy of hash table TABLE. (fn TABLE)Fhash-table-count Return the number of elements in TABLE. (fn TABLE)Fhash-table-rehash-size Return the current rehash size of TABLE. (fn TABLE)Fhash-table-rehash-threshold Return the current rehash threshold of TABLE. (fn TABLE)Fhash-table-size Return the size of TABLE. The size can be used as an argument to `make-hash-table' to create a hash table than can hold as many elements as TABLE holds without need for resizing. (fn TABLE)Fhash-table-test Return the test TABLE uses. (fn TABLE)Fhash-table-weakness Return the weakness of TABLE. (fn TABLE)Fhash-table-p Return t if OBJ is a Lisp hash table object. (fn OBJ)Fclrhash Clear hash table TABLE and return it. (fn TABLE)Fgethash Look up KEY in TABLE and return its associated value. If KEY is not found, return DFLT which defaults to nil. (fn KEY TABLE &optional DFLT)Fputhash Associate KEY with VALUE in hash table TABLE. If KEY is already present in table, replace its current value with VALUE. In any case, return VALUE. (fn KEY VALUE TABLE)Fremhash Remove KEY from TABLE. (fn KEY TABLE)Fmaphash Call FUNCTION for all entries in hash table TABLE. FUNCTION is called with two arguments, KEY and VALUE. `maphash' always returns nil. (fn FUNCTION TABLE)Fdefine-hash-table-test Define a new hash table test with name NAME, a symbol. In hash tables created with NAME specified as test, use TEST to compare keys, and HASH for computing hash codes of keys. TEST must be a function taking two arguments and returning non-nil if both arguments are the same. HASH must be a function taking one argument and returning an object that is the hash code of the argument. It should be the case that if (eq (funcall HASH x1) (funcall HASH x2)) returns nil, then (funcall TEST x1 x2) also returns nil. (fn NAME TEST HASH)Fsecure-hash-algorithms Return a list of all the supported `secure-hash' algorithms. (fn)Fmd5 Return MD5 message digest of OBJECT, a buffer or string. A message digest is the string representation of the cryptographic checksum of a document, and the algorithm to calculate it is defined in RFC 1321. The MD5 digest is 32-character long. The two optional arguments START and END are character positions specifying for which part of OBJECT the message digest should be computed. If nil or omitted, the digest is computed for the whole OBJECT. The MD5 message digest is computed from the result of encoding the text in a coding system, not directly from the internal Emacs form of the text. The optional fourth argument CODING-SYSTEM specifies which coding system to encode the text with. It should be the same coding system that you used or will use when actually writing the text into a file. If CODING-SYSTEM is nil or omitted, the default depends on OBJECT. If OBJECT is a buffer, the default for CODING-SYSTEM is whatever coding system would be chosen by default for writing this text into a file. If OBJECT is a string, the most preferred coding system (see the command `prefer-coding-system') is used. If NOERROR is non-nil, silently assume the `raw-text' coding if the guesswork fails. Normally, an error is signaled in such case. Note that MD5 is not collision resistant and should not be used for anything security-related. See `secure-hash' for alternatives. (fn OBJECT &optional START END CODING-SYSTEM NOERROR)Fsecure-hash Return the secure hash of OBJECT, a buffer or string. ALGORITHM is a symbol specifying the hash to use: - md5 corresponds to MD5, produces a 32-character signature - sha1 corresponds to SHA-1, produces a 40-character signature - sha224 corresponds to SHA-2 (SHA-224), produces a 56-character signature - sha256 corresponds to SHA-2 (SHA-256), produces a 64-character signature - sha384 corresponds to SHA-2 (SHA-384), produces a 96-character signature - sha512 corresponds to SHA-2 (SHA-512), produces a 128-character signature The two optional arguments START and END are positions specifying for which part of OBJECT to compute the hash. If nil or omitted, uses the whole OBJECT. The full list of algorithms can be obtained with `secure-hash-algorithms'. If BINARY is non-nil, returns a string in binary form. Note that MD5 and SHA-1 are not collision resistant and should not be used for anything security-related. For these applications, use one of the other hash types instead, e.g. sha256 or sha512. (fn ALGORITHM OBJECT &optional START END BINARY)Fbuffer-hash Return a hash of the contents of BUFFER-OR-NAME. This hash is performed on the raw internal format of the buffer, disregarding any coding systems. If nil, use the current buffer. This function is useful for comparing two buffers running in the same Emacs, but is not guaranteed to return the same hash between different Emacs versions. It should be somewhat more efficient on larger buffers than `secure-hash' is, and should not allocate more memory. It should not be used for anything security-related. See `secure-hash' for these applications. (fn &optional BUFFER-OR-NAME)Fbuffer-line-statistics Return data about lines in BUFFER. The data is returned as a list, and the first element is the number of lines in the buffer, the second is the length of the longest line, and the third is the mean line length. The lengths returned are in bytes, not characters. (fn &optional BUFFER-OR-NAME)Fstring-search Search for the string NEEDLE in the string HAYSTACK. The return value is the position of the first occurrence of NEEDLE in HAYSTACK, or nil if no match was found. The optional START-POS argument says where to start searching in HAYSTACK and defaults to zero (start at the beginning). It must be between zero and the length of HAYSTACK, inclusive. Case is always significant and text properties are ignored. (fn NEEDLE HAYSTACK &optional START-POS)Fobject-intervals Return a copy of the text properties of OBJECT. OBJECT must be a buffer or a string. Altering this copy does not change the layout of the text properties in OBJECT. (fn OBJECT)Fline-number-at-pos Return the line number at POSITION in the current buffer. If POSITION is nil or omitted, it defaults to point's position in the current buffer. If the buffer is narrowed, the return value by default counts the lines from the beginning of the accessible portion of the buffer. But if the second optional argument ABSOLUTE is non-nil, the value counts the lines from the absolute start of the buffer, disregarding the narrowing. (fn &optional POSITION ABSOLUTE)Voverriding-plist-environment An alist that overrides the plists of the symbols which it lists. Used by the byte-compiler to apply `define-symbol-prop' during compilation.Vfeatures A list of symbols which are the features of the executing Emacs. Used by `featurep' and `require', and altered by `provide'.Vuse-dialog-box Non-nil means mouse commands use dialog boxes to ask questions. This applies to `y-or-n-p' and `yes-or-no-p' questions asked by commands invoked by mouse clicks and mouse menu items. On some platforms, file selection dialogs are also enabled if this is non-nil.Vuse-file-dialog Non-nil means mouse commands use a file dialog to ask for files. This applies to commands from menus and tool bar buttons even when they are initiated from the keyboard. If `use-dialog-box' is nil, that disables the use of a file dialog, regardless of the value of this variable.Vuse-short-answers Non-nil means `yes-or-no-p' uses shorter answers "y" or "n". When non-nil, `yes-or-no-p' will use `y-or-n-p' to read the answer. We recommend against setting this variable non-nil, because `yes-or-no-p' is intended to be used when users are expected not to respond too quickly, but to take their time and perhaps think about the answer. The same variable also affects the function `read-answer'.Ssort.o Sfont.o Ffontp Return t if OBJECT is a font-spec, font-entity, or font-object. Return nil otherwise. Optional 2nd argument EXTRA-TYPE, if non-nil, specifies to check which kind of font it is. It must be one of `font-spec', `font-entity', `font-object'. (fn OBJECT &optional EXTRA-TYPE)Ffont-spec Return a newly created font-spec with arguments as properties. ARGS must come in pairs KEY VALUE of font properties. KEY must be a valid font property name listed below: `:family', `:weight', `:slant', `:width' They are the same as face attributes of the same name. See `set-face-attribute'. `:foundry' VALUE must be a string or a symbol specifying the font foundry, e.g. `misc'. `:adstyle' VALUE must be a string or a symbol specifying the additional typographic style information of a font, e.g. `sans'. `:registry' VALUE must be a string or a symbol specifying the charset registry and encoding of a font, e.g. `iso8859-1'. `:size' VALUE must be a non-negative integer or a floating point number specifying the font size. It specifies the font size in pixels (if VALUE is an integer), or in points (if VALUE is a float). `:dpi' VALUE must be a non-negative number that specifies the resolution (dot per inch) for which the font is designed. `:spacing' VALUE specifies the spacing of the font: mono, proportional, charcell, or dual. It can be either a number (0 for proportional, 90 for dual, 100 for mono, 110 for charcell) or a 1-letter symbol: `P', `D', `M', or `C' (lower-case variants are also accepted). `:avgwidth' VALUE must be a non-negative integer specifying the average width of the font in 1/10 pixel units. `:name' VALUE must be a string of XLFD-style or fontconfig-style font name. `:script' VALUE must be a symbol representing a script that the font must support. It may be a symbol representing a subgroup of a script listed in the variable `script-representative-chars'. `:lang' VALUE must be a symbol whose name is a two-letter ISO-639 language name, e.g. `ja'. The value is matched against the "Additional Style" field of the XLFD spec of a font, if it's non-empty, on X, and against the codepages supported by the font on w32. `:otf' VALUE must be a list (SCRIPT-TAG LANGSYS-TAG GSUB [ GPOS ]) to specify required OpenType features. SCRIPT-TAG: OpenType script tag symbol (e.g. `deva'). LANGSYS-TAG: OpenType language system tag symbol, or nil for the default language system. GSUB: List of OpenType GSUB feature tag symbols, or nil if none required. GPOS: List of OpenType GPOS feature tag symbols, or nil if none required. GSUB and GPOS may contain nil elements. In such a case, the font must not have any of the remaining elements. For instance, if the VALUE is `(thai nil nil (mark))', the font must be an OpenType font whose GPOS table of `thai' script's default language system must contain `mark' feature. (fn ARGS...)Ffont-get Return the value of FONT's property KEY. FONT is a font-spec, a font-entity, or a font-object. KEY can be any symbol, but these are reserved for specific meanings: :foundry, :family, :adstyle, :registry, :weight, :slant, :width, :size, :dpi, :spacing, :avgwidth, :script, :lang, :otf See the documentation of `font-spec' for their meanings. If FONT is a font-entity or a font-object, then values of :script and :otf properties are different from those of a font-spec as below: The value of :script may be a list of scripts that are supported by the font. The value of :otf is a cons (GSUB . GPOS) where GSUB and GPOS are lists representing the OpenType features supported by the font, of this form: ((SCRIPT (LANGSYS FEATURE ...) ...) ...), where SCRIPT, LANGSYS, and FEATURE are all symbols representing OpenType Layout tags. See `otf-script-alist' for the OpenType script tags. In addition to the keys listed above, the following keys are reserved for the specific meanings as below: The value of :type is a symbol that identifies the font backend to be used, such as `ftcrhb' or `xfthb' on X , `harfbuzz' or `uniscribe' on MS-Windows, `ns' on Cocoa/GNUstep, etc. The value of :combining-capability is non-nil if the font-backend of FONT supports rendering of combining characters for non-OTF fonts. (fn FONT KEY)Ffont-face-attributes Return a plist of face attributes generated by FONT. FONT is a font name, a font-spec, a font-entity, or a font-object. The return value is a list of the form (:family FAMILY :height HEIGHT :weight WEIGHT :slant SLANT :width WIDTH) where FAMILY, HEIGHT, WEIGHT, SLANT, and WIDTH are face attribute values compatible with `set-face-attribute'. Some of these key-attribute pairs may be omitted from the list if they are not specified by FONT. The optional argument FRAME specifies the frame that the face attributes are to be displayed on. If omitted, the selected frame is used. (fn FONT &optional FRAME)Ffont-put Set one property of FONT: give property KEY value VAL. FONT is a font-spec, a font-entity, or a font-object. If FONT is a font-spec, KEY can be any symbol. But if KEY is the one accepted by the function `font-spec' (which see), VAL must be what allowed in `font-spec'. If FONT is a font-entity or a font-object, KEY must not be the one accepted by `font-spec'. See also `font-get' for KEYs that have special meanings. (fn FONT PROP VAL)Flist-fonts List available fonts matching FONT-SPEC on the current frame. Optional 2nd argument FRAME specifies the target frame. Optional 3rd argument NUM, if non-nil, limits the number of returned fonts. Optional 4th argument PREFER, if non-nil, is a font-spec to control the order of the returned list. Fonts are sorted by how close they are to PREFER. (fn FONT-SPEC &optional FRAME NUM PREFER)Ffont-family-list List available font families on the current frame. If FRAME is omitted or nil, the selected frame is used. (fn &optional FRAME)Ffind-font Return a font-entity matching with FONT-SPEC on the current frame. Optional 2nd argument FRAME, if non-nil, specifies the target frame. (fn FONT-SPEC &optional FRAME)Ffont-xlfd-name Return XLFD name of FONT. FONT is a font-spec, font-entity, or font-object. If the name is too long for XLFD (maximum 255 chars), return nil. If the 2nd optional arg FOLD-WILDCARDS is non-nil, the consecutive wildcards are folded into one. (fn FONT &optional FOLD-WILDCARDS)Fclear-font-cache Clear font cache of each frame. (fn)Ffont-shape-gstring Shape the glyph-string GSTRING subject to bidi DIRECTION. Shaping means substituting glyphs and/or adjusting positions of glyphs to get the correct visual image of character sequences set in the header of the glyph-string. DIRECTION should be produced by the UBA, the Unicode Bidirectional Algorithm, and should be a symbol, either L2R or R2L. It can also be nil if the bidi context is unknown. If the shaping was successful, the value is GSTRING itself or a newly created glyph-string. Otherwise, the value is nil. See the documentation of `composition-get-gstring' for the format of GSTRING. (fn GSTRING DIRECTION)Ffont-variation-glyphs Return a list of variation glyphs for CHARACTER in FONT-OBJECT. Each element of the value is a cons (VARIATION-SELECTOR . GLYPH-ID), where VARIATION-SELECTOR is a character code of variation selector (#xFE00..#xFE0F or #xE0100..#xE01EF). GLYPH-ID is a glyph code of the corresponding variation glyph, an integer. (fn FONT-OBJECT CHARACTER)Finternal-char-font For internal use only. (fn POSITION &optional CH)Ffont-drive-otf Apply OpenType features on glyph-string GSTRING-IN. OTF-FEATURES specifies which features to apply in this format: (SCRIPT LANGSYS GSUB GPOS) where SCRIPT is a symbol specifying a script tag of OpenType, LANGSYS is a symbol specifying a langsys tag of OpenType, GSUB and GPOS, if non-nil, are lists of symbols specifying feature tags. If LANGSYS is nil, the default langsys is selected. The features are applied in the order they appear in the list. The symbol `*' means to apply all available features not present in this list, and the remaining features are ignored. For instance, (vatu pstf * haln) is to apply vatu and pstf in this order, then to apply all available features other than vatu, pstf, and haln. The features are applied to the glyphs in the range FROM and TO of the glyph-string GSTRING-IN. If some feature is actually applicable, the resulting glyphs are produced in the glyph-string GSTRING-OUT from the index INDEX. In this case, the value is the number of produced glyphs. If no feature is applicable, no glyph is produced in GSTRING-OUT, and the value is 0. If GSTRING-OUT is too short to hold produced glyphs, no glyphs are produced in GSTRING-OUT, and the value is nil. See the documentation of `composition-get-gstring' for the format of glyph-string. (fn OTF-FEATURES GSTRING-IN FROM TO GSTRING-OUT INDEX)Ffont-otf-alternates Return a list of alternate glyphs of CHARACTER in FONT-OBJECT. OTF-FEATURES specifies which features of the font FONT-OBJECT to apply in this format: (SCRIPT LANGSYS FEATURE ...) See the documentation of `font-drive-otf' for more detail. The value is a list of cons cells of the format (GLYPH-ID . CHARACTER), where GLYPH-ID is a glyph index of the font, and CHARACTER is a character code corresponding to the glyph or nil if there's no corresponding character. (fn FONT-OBJECT CHARACTER OTF-FEATURES)Fopen-font Open FONT-ENTITY. (fn FONT-ENTITY &optional SIZE FRAME)Fclose-font Close FONT-OBJECT. (fn FONT-OBJECT &optional FRAME)Fquery-font Return information about FONT-OBJECT. The value is a vector: [ NAME FILENAME PIXEL-SIZE SIZE ASCENT DESCENT SPACE-WIDTH AVERAGE-WIDTH CAPABILITY ] NAME is the font name, a string (or nil if the font backend doesn't provide a name). FILENAME is the font file name, a string (or nil if the font backend doesn't provide a file name). PIXEL-SIZE is a pixel size by which the font is opened. SIZE is a maximum advance width of the font in pixels. ASCENT, DESCENT, SPACE-WIDTH, AVERAGE-WIDTH are metrics of the font in pixels. CAPABILITY is a list whose first element is a symbol representing the font format (x, opentype, truetype, type1, pcf, or bdf) and the remaining elements describe the details of the font capability. If the font is OpenType font, the form of the list is (opentype GSUB GPOS) where GSUB shows which "GSUB" features the font supports, and GPOS shows which "GPOS" features the font supports. Both GSUB and GPOS are lists of the format: ((SCRIPT (LANGSYS FEATURE ...) ...) ...) If the font is not OpenType font, currently the length of the form is one. SCRIPT is a symbol representing OpenType script tag. LANGSYS is a symbol representing OpenType langsys tag, or nil representing the default langsys. FEATURE is a symbol representing OpenType feature tag. If the font is not OpenType font, CAPABILITY is nil. (fn FONT-OBJECT)Ffont-has-char-p Return non-nil if FONT on FRAME has a glyph for character CH. FONT can be either a font-entity or a font-object. If it is a font-entity and the result is nil, it means the font needs to be opened (with `open-font') to check. FRAME defaults to the selected frame if it is nil or omitted. (fn FONT CH &optional FRAME)Ffont-get-glyphs Return a vector of FONT-OBJECT's glyphs for the specified characters. FROM and TO are positions (integers or markers) specifying a region of the current buffer, and can be in either order. If the optional fourth arg OBJECT is not nil, it is a string or a vector containing the target characters between indices FROM and TO, which are treated as in `substring'. Each element is a vector containing information of a glyph in this format: [FROM-IDX TO-IDX C CODE WIDTH LBEARING RBEARING ASCENT DESCENT ADJUSTMENT] where FROM is an index numbers of a character the glyph corresponds to. TO is the same as FROM. C is the character of the glyph. CODE is the glyph-code of C in FONT-OBJECT. WIDTH thru DESCENT are the metrics (in pixels) of the glyph. ADJUSTMENT is always nil. If FONT-OBJECT doesn't have a glyph for a character, the corresponding element is nil. Also see `font-has-char-p', which is more efficient than this function if you just want to check whether FONT-OBJECT has a glyph for a character. (fn FONT-OBJECT FROM TO &optional OBJECT)Ffont-match-p Return t if and only if font-spec SPEC matches with FONT. FONT is a font-spec, font-entity, or font-object. (fn SPEC FONT)Ffont-at Return a font-object for displaying a character at POSITION. Optional second arg WINDOW, if non-nil, is a window displaying the current buffer. It defaults to the currently selected window. Optional third arg STRING, if non-nil, is a string containing the target character at index specified by POSITION. (fn POSITION &optional WINDOW STRING)Fdraw-string Draw STRING by FONT-OBJECT on the top left corner of the current frame. The value is a number of glyphs drawn. Type C-l to recover what previously shown. (fn FONT-OBJECT STRING)Fframe-font-cache Return FRAME's font cache. Mainly used for debugging. If FRAME is omitted or nil, use the selected frame. (fn &optional FRAME)Ffont-info Return information about a font named NAME on frame FRAME. If FRAME is omitted or nil, use the selected frame. The returned value is a vector of 14 elements: [ OPENED-NAME FULL-NAME SIZE HEIGHT BASELINE-OFFSET RELATIVE-COMPOSE DEFAULT-ASCENT MAX-WIDTH ASCENT DESCENT SPACE-WIDTH AVERAGE-WIDTH FILENAME CAPABILITY ] where OPENED-NAME is the name used for opening the font, FULL-NAME is the full name of the font, SIZE is the pixelsize of the font, HEIGHT is the pixel-height of the font (i.e., ascent + descent), BASELINE-OFFSET is the upward offset pixels from ASCII baseline, RELATIVE-COMPOSE and DEFAULT-ASCENT are the numbers controlling how to compose characters, MAX-WIDTH is the maximum advance width of the font, ASCENT, DESCENT, SPACE-WIDTH, and AVERAGE-WIDTH are metrics of the font in pixels, FILENAME is the font file name, a string (or nil if the font backend doesn't provide a file name). CAPABILITY is a list whose first element is a symbol representing the font format, one of `x', `opentype', `truetype', `type1', `pcf', or `bdf'. The remaining elements describe the details of the font capabilities, as follows: If the font is OpenType font, the form of the list is (opentype GSUB GPOS) where GSUB shows which "GSUB" features the font supports, and GPOS shows which "GPOS" features the font supports. Both GSUB and GPOS are lists of the form: ((SCRIPT (LANGSYS FEATURE ...) ...) ...) where SCRIPT is a symbol representing OpenType script tag. LANGSYS is a symbol representing OpenType langsys tag, or nil representing the default langsys. FEATURE is a symbol representing OpenType feature tag. If the font is not an OpenType font, there are no elements in CAPABILITY except the font format symbol. If the named font cannot be opened and loaded, return nil. (fn NAME &optional FRAME)Vfont-encoding-alist Alist of fontname patterns vs the corresponding encoding and repertory info. Each element looks like (REGEXP . (ENCODING . REPERTORY)), where ENCODING is a charset or a char-table, and REPERTORY is a charset, a char-table, or nil. If ENCODING and REPERTORY are the same, the element can have the form (REGEXP . ENCODING). ENCODING is for converting a character to a glyph code of the font. If ENCODING is a charset, encoding a character by the charset gives the corresponding glyph code. If ENCODING is a char-table, looking up the table by a character gives the corresponding glyph code. REPERTORY specifies a repertory of characters supported by the font. If REPERTORY is a charset, all characters belonging to the charset are supported. If REPERTORY is a char-table, all characters who have a non-nil value in the table are supported. If REPERTORY is nil, Emacs gets the repertory information by an opened font and ENCODING.Vfont-weight-table Vector of valid font weight values. Each element has the form: [NUMERIC-VALUE SYMBOLIC-NAME ALIAS-NAME ...] NUMERIC-VALUE is an integer, and SYMBOLIC-NAME and ALIAS-NAME are symbols. This variable cannot be set; trying to do so will signal an error.Vfont-slant-table Vector of font slant symbols vs the corresponding numeric values. See `font-weight-table' for the format of the vector. This variable cannot be set; trying to do so will signal an error.Vfont-width-table Alist of font width symbols vs the corresponding numeric values. See `font-weight-table' for the format of the vector. This variable cannot be set; trying to do so will signal an error.Vfont-log A list that logs font-related actions and results, for debugging. The default value is t, which means to suppress logging. Set it to nil to enable logging. If the environment variable EMACS_FONT_LOG is set at startup, it defaults to nil.Vinhibit-compacting-font-caches If non-nil, don't compact font caches during GC. Some large fonts cause lots of consing and trigger GC. If they are removed from the font caches, they will need to be opened again during redisplay, which slows down redisplay. If you see font-related delays in displaying some special characters, and cannot switch to a smaller font for those characters, set this variable non-nil. Disabling compaction of font caches might enlarge the Emacs memory footprint in sessions that use lots of different fonts.Vxft-ignore-color-fonts Non-nil means don't query fontconfig for color fonts, since they often cause Xft crashes. Only has an effect in Xft builds.Vquery-all-font-backends If non-nil, attempt to query all available font backends. By default Emacs will stop searching for a matching font at the first match.Sprint.o Fwrite-char Output character CHARACTER to stream PRINTCHARFUN. PRINTCHARFUN defaults to the value of `standard-output' (which see). (fn CHARACTER &optional PRINTCHARFUN)Fterpri Output a newline to stream PRINTCHARFUN. If ENSURE is non-nil only output a newline if not already at the beginning of a line. Value is non-nil if a newline is printed. If PRINTCHARFUN is omitted or nil, the value of `standard-output' is used. (fn &optional PRINTCHARFUN ENSURE)Fprin1 Output the printed representation of OBJECT, any Lisp object. Quoting characters are printed when needed to make output that `read' can handle, whenever this is possible. For complex objects, the behavior is controlled by `print-level' and `print-length', which see. OBJECT is any of the Lisp data types: a number, a string, a symbol, a list, a buffer, a window, a frame, etc. A printed representation of an object is text which describes that object. Optional argument PRINTCHARFUN is the output stream, which can be one of these: - a buffer, in which case output is inserted into that buffer at point; - a marker, in which case output is inserted at marker's position; - a function, in which case that function is called once for each character of OBJECT's printed representation; - a symbol, in which case that symbol's function definition is called; or - t, in which case the output is displayed in the echo area. If PRINTCHARFUN is omitted, the value of `standard-output' (which see) is used instead. Optional argument OVERRIDES should be a list of settings for print-related variables. An element in this list can be the symbol t, which means "reset all the values to their defaults". Otherwise, an element should be a pair, where the `car' or the pair is the setting symbol, and the `cdr' is the value of the setting to use for this `prin1' call. For instance: (prin1 object nil \='((length . 100) (circle . t))). See Info node `(elisp)Output Overrides' for a list of possible values. As a special case, OVERRIDES can also simply be the symbol t, which means "use default values for all the print-related settings". (fn OBJECT &optional PRINTCHARFUN OVERRIDES)Fprin1-to-string Return a string containing the printed representation of OBJECT. OBJECT can be any Lisp object. This function outputs quoting characters when necessary to make output that `read' can handle, whenever possible, unless the optional second argument NOESCAPE is non-nil. For complex objects, the behavior is controlled by `print-level' and `print-length', which see. OBJECT is any of the Lisp data types: a number, a string, a symbol, a list, a buffer, a window, a frame, etc. See `prin1' for the meaning of OVERRIDES. A printed representation of an object is text which describes that object. (fn OBJECT &optional NOESCAPE OVERRIDES)Fprinc Output the printed representation of OBJECT, any Lisp object. No quoting characters are used; no delimiters are printed around the contents of strings. OBJECT is any of the Lisp data types: a number, a string, a symbol, a list, a buffer, a window, a frame, etc. A printed representation of an object is text which describes that object. Optional argument PRINTCHARFUN is the output stream, which can be one of these: - a buffer, in which case output is inserted into that buffer at point; - a marker, in which case output is inserted at marker's position; - a function, in which case that function is called once for each character of OBJECT's printed representation; - a symbol, in which case that symbol's function definition is called; or - t, in which case the output is displayed in the echo area. If PRINTCHARFUN is omitted, the value of `standard-output' (which see) is used instead. (fn OBJECT &optional PRINTCHARFUN)Fprint Output the printed representation of OBJECT, with newlines around it. Quoting characters are printed when needed to make output that `read' can handle, whenever this is possible. For complex objects, the behavior is controlled by `print-level' and `print-length', which see. OBJECT is any of the Lisp data types: a number, a string, a symbol, a list, a buffer, a window, a frame, etc. A printed representation of an object is text which describes that object. Optional argument PRINTCHARFUN is the output stream, which can be one of these: - a buffer, in which case output is inserted into that buffer at point; - a marker, in which case output is inserted at marker's position; - a function, in which case that function is called once for each character of OBJECT's printed representation; - a symbol, in which case that symbol's function definition is called; or - t, in which case the output is displayed in the echo area. If PRINTCHARFUN is omitted, the value of `standard-output' (which see) is used instead. (fn OBJECT &optional PRINTCHARFUN)Fflush-standard-output Flush standard-output. This can be useful after using `princ' and the like in scripts. (fn)Fexternal-debugging-output Write CHARACTER to stderr. You can call `print' while debugging emacs, and pass it this function to make it write to the debugging output. (fn CHARACTER)Fredirect-debugging-output Redirect debugging output (stderr stream) to file FILE. If FILE is nil, reset target to the initial stderr stream. Optional arg APPEND non-nil (interactively, with prefix arg) means append to existing target file. (fn FILE &optional APPEND)Ferror-message-string Convert an error value (ERROR-SYMBOL . DATA) to an error message. See Info anchor `(elisp)Definition of signal' for some details on how this error message is constructed. (fn OBJ)Fprint--preprocess Extract sharing info from OBJECT needed to print it. Fills `print-number-table' if `print-circle' is non-nil. Does nothing if `print-circle' is nil. (fn OBJECT)Vstandard-output Output stream `print' uses by default for outputting a character. This may be any function of one argument. It may also be a buffer (output is inserted before point) or a marker (output is inserted and the marker is advanced) or the symbol t (output appears in the echo area).Vfloat-output-format The format descriptor string used to print floats. This is a %-spec like those accepted by `printf' in C, but with some restrictions. It must start with the two characters `%.'. After that comes an integer precision specification, and then a letter which controls the format. The letters allowed are `e', `f' and `g'. Use `e' for exponential notation "DIG.DIGITSeEXPT" Use `f' for decimal point notation "DIGITS.DIGITS". Use `g' to choose the shorter of those two formats for the number at hand. The precision in any of these cases is the number of digits following the decimal point. With `f', a precision of 0 means to omit the decimal point. 0 is not allowed with `e' or `g'. A value of nil means to use the shortest notation that represents the number without losing information.Vprint-integers-as-characters Non-nil means integers are printed using characters syntax. Only independent graphic characters, and control characters with named escape sequences such as newline, are printed this way. Other integers, including those corresponding to raw bytes, are printed as numbers the usual way.Vprint-length Maximum length of list to print before abbreviating. A value of nil means no limit. See also `eval-expression-print-length'.Vprint-level Maximum depth of list nesting to print before abbreviating. A value of nil means no limit. See also `eval-expression-print-level'.Vprint-escape-newlines Non-nil means print newlines in strings as `\n'. Also print formfeeds as `\f'.Vprint-escape-control-characters Non-nil means print control characters in strings as `\OOO'. (OOO is the octal representation of the character code.)Vprint-escape-nonascii Non-nil means print unibyte non-ASCII chars in strings as \OOO. (OOO is the octal representation of the character code.) Only single-byte characters are affected, and only in `prin1'. When the output goes in a multibyte buffer, this feature is enabled regardless of the value of the variable.Vprint-escape-multibyte Non-nil means print multibyte characters in strings as \xXXXX. (XXXX is the hex representation of the character code.) This affects only `prin1'.Vprint-quoted Non-nil means print quoted forms with reader syntax. I.e., (quote foo) prints as \='foo, (function foo) as #\='foo.Vprint-gensym Non-nil means print uninterned symbols so they will read as uninterned. I.e., the value of (make-symbol "foobar") prints as #:foobar. When the uninterned symbol appears multiple times within the printed expression, and `print-circle' is non-nil, in addition use the #N# and #N= constructs as needed, so that multiple references to the same symbol are shared once again when the text is read back.Vprint-circle Non-nil means print recursive structures using #N= and #N# syntax. If nil, printing proceeds recursively and may lead to `max-lisp-eval-depth' being exceeded or an error may occur: "Apparently circular structure being printed." Also see `print-length' and `print-level'. If non-nil, shared substructures anywhere in the structure are printed with `#N=' before the first occurrence (in the order of the print representation) and `#N#' in place of each subsequent occurrence, where N is a positive decimal integer.Vprint-continuous-numbering Non-nil means number continuously across print calls. This affects the numbers printed for #N= labels and #M# references. See also `print-circle', `print-gensym', and `print-number-table'. This variable should not be set with `setq'; bind it with a `let' instead.Vprint-number-table A vector used internally to produce `#N=' labels and `#N#' references. The Lisp printer uses this vector to detect Lisp objects referenced more than once. When you bind `print-continuous-numbering' to t, you should probably also bind `print-number-table' to nil. This ensures that the value of `print-number-table' can be garbage-collected once the printing is done. If all elements of `print-number-table' are nil, it means that the printing done so far has not found any shared structure or objects that need to be recorded in the table.Vprint-charset-text-property A flag to control printing of `charset' text property on printing a string. The value should be nil, t, or `default'. If the value is nil, don't print the text property `charset'. If the value is t, always print the text property `charset'. If the value is `default', print the text property `charset' only when the value is different from what is guessed in the current charset priorities. Values other than nil or t are also treated as `default'.Vprint-symbols-bare A flag to control printing of symbols with position. If the value is nil, print these objects complete with position. Otherwise print just the bare symbol.Vprint-unreadable-function If non-nil, a function to call when printing unreadable objects. By default, Emacs printing functions (like `prin1') print unreadable objects as "#<...>", where "..." describes the object (for instance, "#"). If non-nil, it should be a function that will be called with two arguments: the object to be printed, and the NOESCAPE flag (see `prin1-to-string'). If this function returns nil, the object will be printed as usual. If it returns a string, that string will then be printed. If the function returns anything else, the object will not be printed.Vprint--unreadable-callback-buffer Dynamically bound to indicate current buffer.Slread.o Fread-char Read a character event from the command input (keyboard or macro). It is returned as a number. If the event has modifiers, they are resolved and reflected in the returned character code if possible (e.g. C-SPC yields 0 and C-a yields 97). If some of the modifiers cannot be reflected in the character code, the returned value will include those modifiers, and will not be a valid character code: it will fail the `characterp' test. Use `event-basic-type' to recover the character code with the modifiers removed. If the user generates an event which is not a character (i.e. a mouse click or function key event), `read-char' signals an error. As an exception, switch-frame events are put off until non-character events can be read. If you want to read non-character events, or ignore them, call `read-event' or `read-char-exclusive' instead. If the optional argument PROMPT is non-nil, display that as a prompt. If PROMPT is nil or the string "", the key sequence/events that led to the current command is used as the prompt. If the optional argument INHERIT-INPUT-METHOD is non-nil and some input method is turned on in the current buffer, that input method is used for reading a character. If the optional argument SECONDS is non-nil, it should be a number specifying the maximum number of seconds to wait for input. If no input arrives in that time, return nil. SECONDS may be a floating-point value. If `inhibit-interaction' is non-nil, this function will signal an `inhibited-interaction' error. (fn &optional PROMPT INHERIT-INPUT-METHOD SECONDS)Fread-event Read an event object from the input stream. If you want to read non-character events, consider calling `read-key' instead. `read-key' will decode events via `input-decode-map' that `read-event' will not. On a terminal this includes function keys such as and , or mouse events generated by `xterm-mouse-mode'. If the optional argument PROMPT is non-nil, display that as a prompt. If PROMPT is nil or the string "", the key sequence/events that led to the current command is used as the prompt. If the optional argument INHERIT-INPUT-METHOD is non-nil and some input method is turned on in the current buffer, that input method is used for reading a character. If the optional argument SECONDS is non-nil, it should be a number specifying the maximum number of seconds to wait for input. If no input arrives in that time, return nil. SECONDS may be a floating-point value. If `inhibit-interaction' is non-nil, this function will signal an `inhibited-interaction' error. (fn &optional PROMPT INHERIT-INPUT-METHOD SECONDS)Fread-char-exclusive Read a character event from the command input (keyboard or macro). It is returned as a number. Non-character events are ignored. If the event has modifiers, they are resolved and reflected in the returned character code if possible (e.g. C-SPC yields 0 and C-a yields 97). If some of the modifiers cannot be reflected in the character code, the returned value will include those modifiers, and will not be a valid character code: it will fail the `characterp' test. Use `event-basic-type' to recover the character code with the modifiers removed. If the optional argument PROMPT is non-nil, display that as a prompt. If PROMPT is nil or the string "", the key sequence/events that led to the current command is used as the prompt. If the optional argument INHERIT-INPUT-METHOD is non-nil and some input method is turned on in the current buffer, that input method is used for reading a character. If the optional argument SECONDS is non-nil, it should be a number specifying the maximum number of seconds to wait for input. If no input arrives in that time, return nil. SECONDS may be a floating-point value. If `inhibit-interaction' is non-nil, this function will signal an `inhibited-interaction' error. (fn &optional PROMPT INHERIT-INPUT-METHOD SECONDS)Fget-file-char Don't use this yourself. (fn)Fget-load-suffixes Return the suffixes that `load' should try if a suffix is required. This uses the variables `load-suffixes' and `load-file-rep-suffixes'. (fn)Fload Execute a file of Lisp code named FILE. First try FILE with `.elc' appended, then try with `.el', then try with a system-dependent suffix of dynamic modules (see `load-suffixes'), then try FILE unmodified (the exact suffixes in the exact order are determined by `load-suffixes'). Environment variable references in FILE are replaced with their values by calling `substitute-in-file-name'. This function searches the directories in `load-path'. If optional second arg NOERROR is non-nil, report no error if FILE doesn't exist. Print messages at start and end of loading unless optional third arg NOMESSAGE is non-nil (but `force-load-messages' overrides that). If optional fourth arg NOSUFFIX is non-nil, don't try adding suffixes to the specified name FILE. If optional fifth arg MUST-SUFFIX is non-nil, insist on the suffix `.elc' or `.el' or the module suffix; don't accept just FILE unless it ends in one of those suffixes or includes a directory name. If NOSUFFIX is nil, then if a file could not be found, try looking for a different representation of the file by adding non-empty suffixes to its name, before trying another file. Emacs uses this feature to find compressed versions of files when Auto Compression mode is enabled. If NOSUFFIX is non-nil, disable this feature. The suffixes that this function tries out, when NOSUFFIX is nil, are given by the return value of `get-load-suffixes' and the values listed in `load-file-rep-suffixes'. If MUST-SUFFIX is non-nil, only the return value of `get-load-suffixes' is used, i.e. the file name is required to have a non-empty suffix. When searching suffixes, this function normally stops at the first one that exists. If the option `load-prefer-newer' is non-nil, however, it tries all suffixes, and uses whichever file is the newest. Loading a file records its definitions, and its `provide' and `require' calls, in an element of `load-history' whose car is the file name loaded. See `load-history'. While the file is in the process of being loaded, the variable `load-in-progress' is non-nil and the variable `load-file-name' is bound to the file's name. Return t if the file exists and loads successfully. (fn FILE &optional NOERROR NOMESSAGE NOSUFFIX MUST-SUFFIX)Flocate-file-internal Search for FILENAME through PATH. Returns the file's name in absolute form, or nil if not found. If SUFFIXES is non-nil, it should be a list of suffixes to append to file name when searching. If non-nil, PREDICATE is used instead of `file-readable-p'. PREDICATE can also be an integer to pass to the faccessat(2) function, in which case file-name-handlers are ignored. This function will normally skip directories, so if you want it to find directories, make sure the PREDICATE function returns `dir-ok' for them. (fn FILENAME PATH &optional SUFFIXES PREDICATE)Feval-buffer Execute the accessible portion of current buffer as Lisp code. You can use \[narrow-to-region] to limit the part of buffer to be evaluated. When called from a Lisp program (i.e., not interactively), this function accepts up to five optional arguments: BUFFER is the buffer to evaluate (nil means use current buffer), or a name of a buffer (a string). PRINTFLAG controls printing of output by any output functions in the evaluated code, such as `print', `princ', and `prin1': a value of nil means discard it; anything else is the stream to print to. See Info node `(elisp)Output Streams' for details on streams. FILENAME specifies the file name to use for `load-history'. UNIBYTE, if non-nil, specifies `load-convert-to-unibyte' for this invocation. DO-ALLOW-PRINT, if non-nil, specifies that output functions in the evaluated code should work normally even if PRINTFLAG is nil, in which case the output is displayed in the echo area. This function ignores the current value of the `lexical-binding' variable. Instead it will heed any -*- lexical-binding: t -*- settings in the buffer, and if there is no such setting, the buffer will be evaluated without lexical binding. This function preserves the position of point. (fn &optional BUFFER PRINTFLAG FILENAME UNIBYTE DO-ALLOW-PRINT)Feval-region Execute the region as Lisp code. When called from programs, expects two arguments, giving starting and ending indices in the current buffer of the text to be executed. Programs can pass third argument PRINTFLAG which controls output: a value of nil means discard it; anything else is stream for printing it. See Info node `(elisp)Output Streams' for details on streams. Also the fourth argument READ-FUNCTION, if non-nil, is used instead of `read' to read each expression. It gets one argument which is the input stream for reading characters. This function does not move point. (fn START END &optional PRINTFLAG READ-FUNCTION)Fread Read one Lisp expression as text from STREAM, return as Lisp object. If STREAM is nil, use the value of `standard-input' (which see). STREAM or the value of `standard-input' may be: a buffer (read from point and advance it) a marker (read from where it points and advance it) a function (call it with no arguments for each character, call it with a char as argument to push a char back) a string (takes text from string, starting at the beginning) t (read text line using minibuffer and use it, or read from standard input in batch mode). (fn &optional STREAM)Fread-positioning-symbols Read one Lisp expression as text from STREAM, return as Lisp object. Convert each occurrence of a symbol into a "symbol with pos" object. If STREAM is nil, use the value of `standard-input' (which see). STREAM or the value of `standard-input' may be: a buffer (read from point and advance it) a marker (read from where it points and advance it) a function (call it with no arguments for each character, call it with a char as argument to push a char back) a string (takes text from string, starting at the beginning) t (read text line using minibuffer and use it, or read from standard input in batch mode). (fn &optional STREAM)Fread-from-string Read one Lisp expression which is represented as text by STRING. Returns a cons: (OBJECT-READ . FINAL-STRING-INDEX). FINAL-STRING-INDEX is an integer giving the position of the next remaining character in STRING. START and END optionally delimit a substring of STRING from which to read; they default to 0 and (length STRING) respectively. Negative values are counted from the end of STRING. (fn STRING &optional START END)Flread--substitute-object-in-subtree In OBJECT, replace every occurrence of PLACEHOLDER with OBJECT. COMPLETED is a hash table of objects that might be circular, or is t if any object might be circular. (fn OBJECT PLACEHOLDER COMPLETED)Fintern Return the canonical symbol whose name is STRING. If there is none, one is created by this function and returned. A second optional argument specifies the obarray to use; it defaults to the value of `obarray'. (fn STRING &optional OBARRAY)Fintern-soft Return the canonical symbol named NAME, or nil if none exists. NAME may be a string or a symbol. If it is a symbol, that exact symbol is searched for. A second optional argument specifies the obarray to use; it defaults to the value of `obarray'. (fn NAME &optional OBARRAY)Funintern Delete the symbol named NAME, if any, from OBARRAY. The value is t if a symbol was found and deleted, nil otherwise. NAME may be a string or a symbol. If it is a symbol, that symbol is deleted, if it belongs to OBARRAY--no other symbol is deleted. OBARRAY, if nil, defaults to the value of the variable `obarray'. (fn NAME OBARRAY)Fmapatoms Call FUNCTION on every symbol in OBARRAY. OBARRAY defaults to the value of `obarray'. (fn FUNCTION &optional OBARRAY)Vobarray Symbol table for use by `intern' and `read'. It is a vector whose length ought to be prime for best results. The vector's contents don't make sense if examined from Lisp programs; to find all the symbols in an obarray, use `mapatoms'.Vvalues List of values of all expressions which were read, evaluated and printed. Order is reverse chronological. This variable is obsolete as of Emacs 28.1 and should not be used.Vstandard-input Stream for read to get input from. See documentation of `read' for possible values.Vread-circle Non-nil means read recursive structures using #N= and #N# syntax.Vload-path List of directories to search for files to load. Each element is a string (directory file name) or nil (meaning `default-directory'). This list is consulted by the `require' function. Initialized during startup as described in Info node `(elisp)Library Search'. Use `directory-file-name' when adding items to this path. However, Lisp programs that process this list should tolerate directories both with and without trailing slashes.Vload-suffixes List of suffixes for Emacs Lisp files and dynamic modules. This list includes suffixes for both compiled and source Emacs Lisp files. This list should not include the empty string. `load' and related functions try to append these suffixes, in order, to the specified file name if a suffix is allowed or required.Vmodule-file-suffix Suffix of loadable module file, or nil if modules are not supported.Vdynamic-library-suffixes A list of suffixes for loadable dynamic libraries.Vload-file-rep-suffixes List of suffixes that indicate representations of the same file. This list should normally start with the empty string. Enabling Auto Compression mode appends the suffixes in `jka-compr-load-suffixes' to this list and disabling Auto Compression mode removes them again. `load' and related functions use this list to determine whether they should look for compressed versions of a file and, if so, which suffixes they should try to append to the file name in order to do so. However, if you want to customize which suffixes the loading functions recognize as compression suffixes, you should customize `jka-compr-load-suffixes' rather than the present variable.Vload-in-progress Non-nil if inside of `load'.Vafter-load-alist An alist of functions to be evalled when particular files are loaded. Each element looks like (REGEXP-OR-FEATURE FUNCS...). REGEXP-OR-FEATURE is either a regular expression to match file names, or a symbol (a feature name). When `load' is run and the file-name argument matches an element's REGEXP-OR-FEATURE, or when `provide' is run and provides the symbol REGEXP-OR-FEATURE, the FUNCS in the element are called. An error in FUNCS does not undo the load, but does prevent calling the rest of the FUNCS.Vload-history Alist mapping loaded file names to symbols and features. Each alist element should be a list (FILE-NAME ENTRIES...), where FILE-NAME is the name of a file that has been loaded into Emacs. The file name is absolute and true (i.e. it doesn't contain symlinks). As an exception, one of the alist elements may have FILE-NAME nil, for symbols and features not associated with any file. The remaining ENTRIES in the alist element describe the functions and variables defined in that file, the features provided, and the features required. Each entry has the form `(provide . FEATURE)', `(require . FEATURE)', `(defun . FUNCTION)', `(defface . SYMBOL)', `(define-type . SYMBOL)', or `(cl-defmethod METHOD SPECIALIZERS)'. In addition, entries may also be single symbols, which means that symbol was defined by `defvar' or `defconst'. During preloading, the file name recorded is relative to the main Lisp directory. These file names are converted to absolute at startup.Vload-file-name Full name of file being loaded by `load'. In case of native code being loaded this is indicating the corresponding bytecode filename. Use `load-true-file-name' to obtain the .eln filename.Vload-true-file-name Full name of file being loaded by `load'.Vuser-init-file File name, including directory, of user's initialization file. If the file loaded had extension `.elc', and the corresponding source file exists, this variable contains the name of source file, suitable for use by functions like `custom-save-all' which edit the init file. While Emacs loads and evaluates any init file, value is the real name of the file, regardless of whether or not it has the `.elc' extension.Vcurrent-load-list Used for internal purposes by `load'.Vload-read-function Function used for reading expressions. It is used by `load' and `eval-region'. Called with a single argument (the stream from which to read). The default is to use the function `read'.Vload-source-file-function Function called in `load' to load an Emacs Lisp source file. The value should be a function for doing code conversion before reading a source file. It can also be nil, in which case loading is done without any code conversion. If the value is a function, it is called with four arguments, FULLNAME, FILE, NOERROR, NOMESSAGE. FULLNAME is the absolute name of the file to load, FILE is the non-absolute name (for messages etc.), and NOERROR and NOMESSAGE are the corresponding arguments passed to `load'. The function should return t if the file was loaded.Vload-force-doc-strings Non-nil means `load' should force-load all dynamic doc strings. This is useful when the file being loaded is a temporary copy.Vload-convert-to-unibyte Non-nil means `read' converts strings to unibyte whenever possible. This is normally bound by `load' and `eval-buffer' to control `read', and is not meant for users to change.Vsource-directory Directory in which Emacs sources were found when Emacs was built. You cannot count on them to still be there!Vpreloaded-file-list List of files that were preloaded (when dumping Emacs).Vbyte-boolean-vars List of all DEFVAR_BOOL variables, used by the byte code optimizer.Vload-dangerous-libraries Non-nil means load dangerous compiled Lisp files. Some versions of XEmacs use different byte codes than Emacs. These incompatible byte codes can make Emacs crash when it tries to execute them.Vforce-load-messages Non-nil means force printing messages when loading Lisp files. This overrides the value of the NOMESSAGE argument to `load'.Vbytecomp-version-regexp Regular expression matching safe to load compiled Lisp files. When Emacs loads a compiled Lisp file, it reads the first 512 bytes from the file, and matches them against this regular expression. When the regular expression matches, the file is considered to be safe to load.Vlexical-binding Whether to use lexical binding when evaluating code. Non-nil means that the code in the current buffer should be evaluated with lexical binding. This variable is automatically set from the file variables of an interpreted Lisp file read using `load'. Unlike other file local variables, this must be set in the first line of a file.Veval-buffer-list List of buffers being read from by calls to `eval-buffer' and `eval-region'.Vlread--unescaped-character-literals List of deprecated unescaped character literals encountered by `read'. For internal use only.Vload-prefer-newer Non-nil means `load' prefers the newest version of a file. This applies when a filename suffix is not explicitly specified and `load' is trying various possible suffixes (see `load-suffixes' and `load-file-rep-suffixes'). Normally, it stops at the first file that exists unless you explicitly specify one or the other. If this option is non-nil, it checks all suffixes and uses whichever file is newest. Note that if you customize this, obviously it will not affect files that are loaded before your customizations are read!Vload-no-native Non-nil means not to load a .eln file when a .elc was requested.Vread-symbol-shorthands Alist of known symbol-name shorthands. This variable's value can only be set via file-local variables. See Info node `(elisp)Shorthands' for more details.Vmacroexp--dynvars List of variables declared dynamic in the current scope. Only valid during macro-expansion. Internal use only.Ssyntax.o Fsyntax-table-p Return t if OBJECT is a syntax table. Currently, any char-table counts as a syntax table. (fn OBJECT)Fsyntax-table Return the current syntax table. This is the one specified by the current buffer. (fn)Fstandard-syntax-table Return the standard syntax table. This is the one used for new buffers. (fn)Fcopy-syntax-table Construct a new syntax table and return it. It is a copy of the TABLE, which defaults to the standard syntax table. (fn &optional TABLE)Fset-syntax-table Select a new syntax table for the current buffer. One argument, a syntax table. (fn TABLE)Fchar-syntax Return the syntax code of CHARACTER, described by a character. For example, if CHARACTER is a word constituent, the character `w' (119) is returned. The characters that correspond to various syntax codes are listed in the documentation of `modify-syntax-entry'. If you're trying to determine the syntax of characters in the buffer, this is probably the wrong function to use, because it can't take `syntax-table' text properties into account. Consider using `syntax-after' instead. (fn CHARACTER)Fsyntax-class-to-char Return the syntax char of CLASS, described by an integer. For example, if SYNTAX is word constituent (the integer 2), the character `w' (119) is returned. (fn SYNTAX)Fmatching-paren Return the matching parenthesis of CHARACTER, or nil if none. (fn CHARACTER)Fstring-to-syntax Convert a syntax descriptor STRING into a raw syntax descriptor. STRING should be a string of the form allowed as argument of `modify-syntax-entry'. The return value is a raw syntax descriptor: a cons cell (CODE . MATCHING-CHAR) which can be used, for example, as the value of a `syntax-table' text property. (fn STRING)Fmodify-syntax-entry Set syntax for character CHAR according to string NEWENTRY. The syntax is changed only for table SYNTAX-TABLE, which defaults to the current buffer's syntax table. CHAR may be a cons (MIN . MAX), in which case, syntaxes of all characters in the range MIN to MAX are changed. The first character of NEWENTRY should be one of the following: Space or - whitespace syntax. w word constituent. _ symbol constituent. . punctuation. ( open-parenthesis. ) close-parenthesis. " string quote. \ escape. $ paired delimiter. \=' expression quote or prefix operator. < comment starter. > comment ender. / character-quote. @ inherit from parent table. | generic string fence. ! generic comment fence. Only single-character comment start and end sequences are represented thus. Two-character sequences are represented as described below. The second character of NEWENTRY is the matching parenthesis, used only if the first character is `(' or `)'. Any additional characters are flags. Defined flags are the characters 1, 2, 3, 4, b, p, and n. 1 means CHAR is the start of a two-char comment start sequence. 2 means CHAR is the second character of such a sequence. 3 means CHAR is the start of a two-char comment end sequence. 4 means CHAR is the second character of such a sequence. There can be several orthogonal comment sequences. This is to support language modes such as C++. By default, all comment sequences are of style a, but you can set the comment sequence style to b (on the second character of a comment-start, and the first character of a comment-end sequence) and/or c (on any of its chars) using this flag: b means CHAR is part of comment sequence b. c means CHAR is part of comment sequence c. n means CHAR is part of a nestable comment sequence. p means CHAR is a prefix character for `backward-prefix-chars'; such characters are treated as whitespace when they occur between expressions. (fn CHAR NEWENTRY &optional SYNTAX-TABLE)Finternal-describe-syntax-value Insert a description of the internal syntax description SYNTAX at point. (fn SYNTAX)Fforward-word Move point forward ARG words (backward if ARG is negative). If ARG is omitted or nil, move point forward one word. Normally returns t. If an edge of the buffer or a field boundary is reached, point is left there and the function returns nil. Field boundaries are not noticed if `inhibit-field-text-motion' is non-nil. The word boundaries are normally determined by the buffer's syntax table and character script (according to `char-script-table'), but `find-word-boundary-function-table', such as set up by `subword-mode', can change that. If a Lisp program needs to move by words determined strictly by the syntax table, it should use `forward-word-strictly' instead. See Info node `(elisp) Word Motion' for details. (fn &optional ARG)Fskip-chars-forward Move point forward, stopping before a char not in STRING, or at pos LIM. STRING is like the inside of a `[...]' in a regular expression except that `]' is never special and `\' quotes `^', `-' or `\' (but not at the end of a range; quoting is never needed there). Thus, with arg "a-zA-Z", this skips letters stopping before first nonletter. With arg "^a-zA-Z", skips nonletters stopping before first letter. Char classes, e.g. `[:alpha:]', are supported. Returns the distance traveled, either zero or positive. (fn STRING &optional LIM)Fskip-chars-backward Move point backward, stopping after a char not in STRING, or at pos LIM. See `skip-chars-forward' for details. Returns the distance traveled, either zero or negative. (fn STRING &optional LIM)Fskip-syntax-forward Move point forward across chars in specified syntax classes. SYNTAX is a string of syntax code characters. Stop before a char whose syntax is not in SYNTAX, or at position LIM. If SYNTAX starts with ^, skip characters whose syntax is NOT in SYNTAX. This function returns the distance traveled, either zero or positive. (fn SYNTAX &optional LIM)Fskip-syntax-backward Move point backward across chars in specified syntax classes. SYNTAX is a string of syntax code characters. Stop on reaching a char whose syntax is not in SYNTAX, or at position LIM. If SYNTAX starts with ^, skip characters whose syntax is NOT in SYNTAX. This function returns either zero or a negative number, and the absolute value of this is the distance traveled. (fn SYNTAX &optional LIM)Fforward-comment Move forward across up to COUNT comments. If COUNT is negative, move backward. Stop scanning if we find something other than a comment or whitespace. Set point to where scanning stops. If COUNT comments are found as expected, with nothing except whitespace between them, return t; otherwise return nil. (fn COUNT)Fscan-lists Scan from character number FROM by COUNT lists. Scan forward if COUNT is positive, backward if COUNT is negative. Return the character number of the position thus found. A "list", in this context, refers to a balanced parenthetical grouping, as determined by the syntax table. If DEPTH is nonzero, treat that as the nesting depth of the starting point (i.e. the starting point is DEPTH parentheses deep). This function scans over parentheses until the depth goes to zero COUNT times. Hence, positive DEPTH moves out that number of levels of parentheses, while negative DEPTH moves to a deeper level. Comments are ignored if `parse-sexp-ignore-comments' is non-nil. If we reach the beginning or end of the accessible part of the buffer before we have scanned over COUNT lists, return nil if the depth at that point is zero, and signal an error if the depth is nonzero. (fn FROM COUNT DEPTH)Fscan-sexps Scan from character number FROM by COUNT balanced expressions. If COUNT is negative, scan backwards. Returns the character number of the position thus found. Comments are ignored if `parse-sexp-ignore-comments' is non-nil. If the beginning or end of (the accessible part of) the buffer is reached in the middle of a parenthetical grouping, an error is signaled. If the beginning or end is reached between groupings but before count is used up, nil is returned. (fn FROM COUNT)Fbackward-prefix-chars Move point backward over any number of chars with prefix syntax. This includes chars with expression prefix syntax class (\=') and those with the prefix syntax flag (p). (fn)Fparse-partial-sexp Parse Lisp syntax starting at FROM until TO; return status of parse at TO. Parsing stops at TO or when certain criteria are met; point is set to where parsing stops. If OLDSTATE is omitted or nil, parsing assumes that FROM is the beginning of a function. If not, OLDSTATE should be the state at FROM. Value is a list of elements describing final state of parsing: 0. depth in parens. 1. character address of start of innermost containing list; nil if none. 2. character address of start of last complete sexp terminated. 3. non-nil if inside a string. (it is the character that will terminate the string, or t if the string should be terminated by a generic string delimiter.) 4. nil if outside a comment, t if inside a non-nestable comment, else an integer (the current comment nesting). 5. t if following a quote character. 6. the minimum paren-depth encountered during this scan. 7. style of comment, if any. 8. character address of start of comment or string; nil if not in one. 9. List of positions of currently open parens, outermost first. 10. When the last position scanned holds the first character of a (potential) two character construct, the syntax of that position, otherwise nil. That construct can be a two character comment delimiter or an Escaped or Char-quoted character. 11..... Possible further internal information used by `parse-partial-sexp'. If third arg TARGETDEPTH is non-nil, parsing stops if the depth in parentheses becomes equal to TARGETDEPTH. Fourth arg STOPBEFORE non-nil means stop when we come to any character that starts a sexp. Fifth arg OLDSTATE is a list like what this function returns. It is used to initialize the state of the parse. Elements number 1, 2, 6 are ignored. Sixth arg COMMENTSTOP non-nil means stop after the start of a comment. If it is the symbol `syntax-table', stop after the start of a comment or a string, or after end of a comment or a string. (fn FROM TO &optional TARGETDEPTH STOPBEFORE OLDSTATE COMMENTSTOP)Vcomment-use-syntax-ppss Non-nil means `forward-comment' can use `syntax-ppss' internally.Vparse-sexp-ignore-comments Non-nil means `forward-sexp', etc., should treat comments as whitespace.Vparse-sexp-lookup-properties Non-nil means `forward-sexp', etc., obey `syntax-table' property. Otherwise, that text property is simply ignored. See the info node `(elisp)Syntax Properties' for a description of the `syntax-table' property.Vsyntax-propertize--done Position up to which syntax-table properties have been set.Vwords-include-escapes Non-nil means `forward-word', etc., should treat escape chars part of words.Vmultibyte-syntax-as-symbol Non-nil means `scan-sexps' treats all multibyte characters as symbol.Vopen-paren-in-column-0-is-defun-start Non-nil means an open paren in column 0 denotes the start of a defun.Vfind-word-boundary-function-table Char table of functions to search for the word boundary. Each function is called with two arguments; POS and LIMIT. POS and LIMIT are character positions in the current buffer. If POS is less than LIMIT, POS is at the first character of a word, and the return value of a function should be a position after the last character of that word. If POS is not less than LIMIT, POS is at the last character of a word, and the return value of a function should be a position at the first character of that word. In both cases, LIMIT bounds the search.Vcomment-end-can-be-escaped Non-nil means an escaped ender inside a comment doesn't end the comment.Sbytecode.o Fbyte-code Function used internally in byte-compiled code. The first argument, BYTESTR, is a string of byte code; the second, VECTOR, a vector of constants; the third, MAXDEPTH, the maximum stack depth used in this function. If the third argument is incorrect, Emacs may crash. (fn BYTESTR VECTOR MAXDEPTH)Finternal-stack-stats internal (fn)Vbyte-code-meter A vector of vectors which holds a histogram of byte-code usage. (aref (aref byte-code-meter 0) CODE) indicates how many times the byte opcode CODE has been executed. (aref (aref byte-code-meter CODE1) CODE2), where CODE1 is not 0, indicates how many times the byte opcodes CODE1 and CODE2 have been executed in succession.Vbyte-metering-on If non-nil, keep profiling information on byte code usage. The variable byte-code-meter indicates how often each byte opcode is used. If a symbol has a property named `byte-code-meter' whose value is an integer, it is incremented each time that symbol's function is called.Scomp.o Fcomp--subr-signature Support function to hash_native_abi. For internal use. (fn SUBR)Fcomp-el-to-eln-rel-filename Return the relative name of the .eln file for FILENAME. FILENAME must exist, and if it's a symlink, the target must exist. If FILENAME is compressed, it must have the ".gz" extension, and Emacs must have been compiled with zlib; the file will be uncompressed on the fly to hash its contents. Value includes the original base name, followed by 2 hash values, one for the file name and another for its contents, followed by .eln. (fn FILENAME)Fcomp-el-to-eln-filename Return the absolute .eln file name for source FILENAME. The resulting .eln file name is intended to be used for natively compiling FILENAME. FILENAME must exist and be readable, but other than that, its leading directories are ignored when constructing the name of the .eln file. If BASE-DIR is non-nil, use it as the directory for the .eln file; non-absolute BASE-DIR is interpreted as relative to `invocation-directory'. If BASE-DIR is omitted or nil, look for the first writable directory in `native-comp-eln-load-path', and use as BASE-DIR its subdirectory whose name is given by `comp-native-version-dir'. If FILENAME specifies a preloaded file, the directory for the .eln file is the "preloaded/" subdirectory of the directory determined as described above. FILENAME is considered to be a preloaded file if the value of `comp-file-preloaded-p' is non-nil, or if FILENAME appears in the value of the environment variable LISP_PRELOADED; the latter is supposed to be used by the Emacs build procedure. (fn FILENAME &optional BASE-DIR)Fcomp--install-trampoline Install a TRAMPOLINE for primitive SUBR-NAME. (fn SUBR-NAME TRAMPOLINE)Fcomp--init-ctxt Initialize the native compiler context. Return t on success. (fn)Fcomp--release-ctxt Release the native compiler context. (fn)Fcomp-native-driver-options-effective-p Return t if `comp-native-driver-options' is effective. (fn)Fcomp-native-compiler-options-effective-p Return t if `comp-native-compiler-options' is effective. (fn)Fcomp--compile-ctxt-to-file Compile the current context as native code to file FILENAME. (fn FILENAME)Fcomp-libgccjit-version Return libgccjit version in use. The return value has the form (MAJOR MINOR PATCHLEVEL) or nil if unknown (before GCC version 10). (fn)Fcomp--register-lambda Register anonymous lambda. This gets called by top_level_run during the load phase. (fn RELOC-IDX C-NAME MINARG MAXARG TYPE REST COMP-U)Fcomp--register-subr Register exported subr. This gets called by top_level_run during the load phase. (fn NAME C-NAME MINARG MAXARG TYPE REST COMP-U)Fcomp--late-register-subr Register exported subr. This gets called by late_top_level_run during the load phase. (fn NAME C-NAME MINARG MAXARG TYPE REST COMP-U)Fnative-elisp-load Load native elisp code FILENAME. LATE-LOAD has to be non-nil when loading for deferred compilation. (fn FILENAME &optional LATE-LOAD)Fnative-comp-available-p Return non-nil if native compilation support is built-in. (fn)Vcomp--delayed-sources List of sources to be native-compiled when startup is finished. For internal use.Vcomp--compilable Non-nil when comp.el can be native compiled. For internal use.Vnative-comp-jit-compilation If non-nil, compile loaded .elc files asynchronously. After compilation, each function definition is updated to use the natively-compiled one.Vcomp-ctxt The compiler context.Vcomp-subr-list List of all defined subrs.Vcomp-abi-hash String signing the .eln files ABI.Vcomp-native-version-dir Directory in use to disambiguate eln compatibility.Vcomp-deferred-pending-h Hash table symbol-name -> function-value. For internal use.Vcomp-eln-to-el-h Hash table eln-filename -> el-filename.Vnative-comp-eln-load-path List of directories to look for natively-compiled *.eln files. The *.eln files are actually looked for in a version-specific subdirectory of each directory in this list. That subdirectory is determined by the value of `comp-native-version-dir'. If the name of a directory in this list is not absolute, it is assumed to be relative to `invocation-directory'. The last directory of this list is assumed to be the one holding the system *.eln files, which are the files produced when building Emacs.Vnative-comp-enable-subr-trampolines If non-nil, enable generation of trampolines for calling primitives. Trampolines are needed so that Emacs respects redefinition or advice of primitive functions when they are called from Lisp code natively-compiled at `native-comp-speed' of 2. By default, the value is t, and when Emacs sees a redefined or advised primitive called from natively-compiled Lisp, it generates a trampoline for it on-the-fly. If the value is a file name (a string), it specifies the directory in which to deposit the generated trampolines, overriding the directories in `native-comp-eln-load-path'. When this variable is nil, generation of trampolines is disabled. Disabling the generation of trampolines, when a trampoline for a redefined or advised primitive is not already available from previous compilations, means that such redefinition or advice will not have effect when calling primitives from natively-compiled Lisp code. That is, calls to primitives without existing trampolines from natively-compiled Lisp will behave as if the primitive was called directly from C, and will ignore its redefinition and advice.Vcomp-installed-trampolines-h Hash table subr-name -> installed trampoline. This is used to prevent double trampoline instantiation, and also to protect the trampolines against GC.Vcomp-no-native-file-h Files for which no deferred compilation should be performed. These files' compilation should not be deferred because the bytecode version was explicitly requested by the user during load. For internal use.Vcomp-file-preloaded-p When non-nil, assume the file being compiled to be preloaded.Vcomp-loaded-comp-units-h Hash table recording all loaded compilation units, file -> CU.Vcomp-subr-arities-h Hash table recording the arity of Lisp primitives. This is in case they are redefined so the compiler still knows how to compile calls to them. subr-name -> arity For internal use.Sprocess.o Fprocessp Return t if OBJECT is a process. (fn OBJECT)Fget-process Return the process named NAME, or nil if there is none. (fn NAME)Fdelete-process Delete PROCESS: kill it and forget about it immediately. PROCESS may be a process, a buffer, the name of a process or buffer, or nil, indicating the current buffer's process. Interactively, it will kill the current buffer's process. (fn &optional PROCESS)Fprocess-status Return the status of PROCESS. The returned value is one of the following symbols: run -- for a process that is running. stop -- for a process stopped but continuable. exit -- for a process that has exited. signal -- for a process that has got a fatal signal. open -- for a network stream connection that is open. listen -- for a network stream server that is listening. closed -- for a network stream connection that is closed. connect -- when waiting for a non-blocking connection to complete. failed -- when a non-blocking connection has failed. nil -- if arg is a process name and no such process exists. PROCESS may be a process, a buffer, the name of a process, or nil, indicating the current buffer's process. (fn PROCESS)Fprocess-exit-status Return the exit status of PROCESS or the signal number that killed it. If PROCESS has not yet exited or died, return 0. (fn PROCESS)Fprocess-id Return the process id of PROCESS. This is the pid of the external process which PROCESS uses or talks to, an integer. For a network, serial, and pipe connections, this value is nil. (fn PROCESS)Fprocess-name Return the name of PROCESS, as a string. This is the name of the program invoked in PROCESS, possibly modified to make it unique among process names. (fn PROCESS)Fprocess-command Return the command that was executed to start PROCESS. This is a list of strings, the first string being the program executed and the rest of the strings being the arguments given to it. For a network or serial or pipe connection, this is nil (process is running) or t (process is stopped). (fn PROCESS)Fprocess-tty-name Return the name of the terminal PROCESS uses, or nil if none. This is the terminal that the process itself reads and writes on, not the name of the pty that Emacs uses to talk with that terminal. If STREAM is nil, return the terminal name if any of PROCESS's standard streams use a terminal for communication. If STREAM is one of `stdin', `stdout', or `stderr', return the name of the terminal PROCESS uses for that stream specifically, or nil if that stream communicates via a pipe. (fn PROCESS &optional STREAM)Fset-process-buffer Set buffer associated with PROCESS to BUFFER (a buffer, or nil). Return BUFFER. (fn PROCESS BUFFER)Fprocess-buffer Return the buffer PROCESS is associated with. The default process filter inserts output from PROCESS into this buffer. (fn PROCESS)Fprocess-mark Return the marker for the end of the last output from PROCESS. (fn PROCESS)Fset-process-filter Give PROCESS the filter function FILTER; nil means default. A value of t means stop accepting output from the process. When a process has a non-default filter, its buffer is not used for output. Instead, each time it does output, the entire string of output is passed to the filter. The filter gets two arguments: the process and the string of output. The string argument is normally a multibyte string, except: - if the process's input coding system is no-conversion or raw-text, it is a unibyte string (the non-converted input). (fn PROCESS FILTER)Fprocess-filter Return the filter function of PROCESS. See `set-process-filter' for more info on filter functions. (fn PROCESS)Fset-process-sentinel Give PROCESS the sentinel SENTINEL; nil for default. The sentinel is called as a function when the process changes state. It gets two arguments: the process, and a string describing the change. (fn PROCESS SENTINEL)Fprocess-sentinel Return the sentinel of PROCESS. See `set-process-sentinel' for more info on sentinels. (fn PROCESS)Fset-process-thread Set the locking thread of PROCESS to be THREAD. If THREAD is nil, the process is unlocked. (fn PROCESS THREAD)Fprocess-thread Return the locking thread of PROCESS. If PROCESS is unlocked, this function returns nil. (fn PROCESS)Fset-process-window-size Tell PROCESS that it has logical window size WIDTH by HEIGHT. Value is t if PROCESS was successfully told about the window size, nil otherwise. (fn PROCESS HEIGHT WIDTH)Fset-process-inherit-coding-system-flag Determine whether buffer of PROCESS will inherit coding-system. If the second argument FLAG is non-nil, then the variable `buffer-file-coding-system' of the buffer associated with PROCESS will be bound to the value of the coding system used to decode the process output. This is useful when the coding system specified for the process buffer leaves either the character code conversion or the end-of-line conversion unspecified, or if the coding system used to decode the process output is more appropriate for saving the process buffer. Binding the variable `inherit-process-coding-system' to non-nil before starting the process is an alternative way of setting the inherit flag for the process which will run. This function returns FLAG. (fn PROCESS FLAG)Fset-process-query-on-exit-flag Specify if query is needed for PROCESS when Emacs is exited. If the second argument FLAG is non-nil, Emacs will query the user before exiting or killing a buffer if PROCESS is running. This function returns FLAG. (fn PROCESS FLAG)Fprocess-query-on-exit-flag Return the current value of query-on-exit flag for PROCESS. (fn PROCESS)Fprocess-contact Return the contact info of PROCESS; t for a real child. For a network or serial or pipe connection, the value depends on the optional KEY arg. If KEY is nil, value is a cons cell of the form (HOST SERVICE) for a network connection or (PORT SPEED) for a serial connection; it is t for a pipe connection. If KEY is t, the complete contact information for the connection is returned, else the specific value for the keyword KEY is returned. See `make-network-process', `make-serial-process', or `make-pipe-process' for the list of keywords. If PROCESS is a non-blocking network process that hasn't been fully set up yet, this function will block until socket setup has completed. If the optional NO-BLOCK parameter is specified, return nil instead of waiting for the process to be fully set up. (fn PROCESS &optional KEY NO-BLOCK)Fprocess-plist Return the plist of PROCESS. (fn PROCESS)Fset-process-plist Replace the plist of PROCESS with PLIST. Return PLIST. (fn PROCESS PLIST)Fprocess-connection Return the connection type of PROCESS. The value is nil for a pipe, t or `pty' for a pty, or `stream' for a socket connection. (fn PROCESS)Fprocess-type Return the connection type of PROCESS. The value is either the symbol `real', `network', `serial', or `pipe'. PROCESS may be a process, a buffer, the name of a process or buffer, or nil, indicating the current buffer's process. (fn PROCESS)Fformat-network-address Convert network ADDRESS from internal format to a string. A 4 or 5 element vector represents an IPv4 address (with port number). An 8 or 9 element vector represents an IPv6 address (with port number). If optional second argument OMIT-PORT is non-nil, don't include a port number in the string, even when present in ADDRESS. Return nil if format of ADDRESS is invalid. (fn ADDRESS &optional OMIT-PORT)Fprocess-list Return a list of all processes that are Emacs sub-processes. (fn)Fmake-process Start a program in a subprocess. Return the process object for it. This is similar to `start-process', but arguments are specified as keyword/argument pairs. The following arguments are defined: :name NAME -- NAME is name for process. It is modified if necessary to make it unique. :buffer BUFFER -- BUFFER is the buffer (or buffer-name) to associate with the process. Process output goes at end of that buffer, unless you specify a filter function to handle the output. BUFFER may be also nil, meaning that this process is not associated with any buffer. :command COMMAND -- COMMAND is a list starting with the program file name, followed by strings to give to the program as arguments. If the program file name is not an absolute file name, `make-process' will look for the program file name in `exec-path' (which is a list of directories). :coding CODING -- If CODING is a symbol, it specifies the coding system used for both reading and writing for this process. If CODING is a cons (DECODING . ENCODING), DECODING is used for reading, and ENCODING is used for writing. :noquery BOOL -- When exiting Emacs, query the user if BOOL is nil and the process is running. If BOOL is not given, query before exiting. :stop BOOL -- BOOL must be nil. The `:stop' key is ignored otherwise and is retained for compatibility with other process types such as pipe processes. Asynchronous subprocesses never start in the `stopped' state. Use `stop-process' and `continue-process' to send signals to stop and continue a process. :connection-type TYPE -- TYPE is control type of device used to communicate with subprocesses. Values are `pipe' to use a pipe, `pty' to use a pty, or nil to use the default specified through `process-connection-type'. If TYPE is a cons (INPUT . OUTPUT), then INPUT will be used for standard input and OUTPUT for standard output (and standard error if `:stderr' is nil). :filter FILTER -- Install FILTER as the process filter. :sentinel SENTINEL -- Install SENTINEL as the process sentinel. :stderr STDERR -- STDERR is either a buffer or a pipe process attached to the standard error of subprocess. When specifying this, the subprocess's standard error will always communicate via a pipe, no matter the value of `:connection-type'. If STDERR is nil, standard error is mixed with standard output and sent to BUFFER or FILTER. (Note that specifying :stderr will create a new, separate (but associated) process, with its own filter and sentinel. See Info node `(elisp) Asynchronous Processes' for more details.) :file-handler FILE-HANDLER -- If FILE-HANDLER is non-nil, then look for a file name handler for the current buffer's `default-directory' and invoke that file name handler to make the process. If there is no such handler, proceed as if FILE-HANDLER were nil. (fn &rest ARGS)Fmake-pipe-process Create and return a bidirectional pipe process. In Emacs, pipes are represented by process objects, so input and output work as for subprocesses, and `delete-process' closes a pipe. However, a pipe process has no process id, it cannot be signaled, and the status codes are different from normal processes. Arguments are specified as keyword/argument pairs. The following arguments are defined: :name NAME -- NAME is the name of the process. It is modified if necessary to make it unique. :buffer BUFFER -- BUFFER is the buffer (or buffer-name) to associate with the process. Process output goes at the end of that buffer, unless you specify a filter function to handle the output. If BUFFER is not given, the value of NAME is used. :coding CODING -- If CODING is a symbol, it specifies the coding system used for both reading and writing for this process. If CODING is a cons (DECODING . ENCODING), DECODING is used for reading, and ENCODING is used for writing. :noquery BOOL -- When exiting Emacs, query the user if BOOL is nil and the process is running. If BOOL is not given, query before exiting. :stop BOOL -- Start process in the `stopped' state if BOOL non-nil. In the stopped state, a pipe process does not accept incoming data, but you can send outgoing data. The stopped state is cleared by `continue-process' and set by `stop-process'. :filter FILTER -- Install FILTER as the process filter. :sentinel SENTINEL -- Install SENTINEL as the process sentinel. (fn &rest ARGS)Fprocess-datagram-address Get the current datagram address associated with PROCESS. If PROCESS is a non-blocking network process that hasn't been fully set up yet, this function will block until socket setup has completed. (fn PROCESS)Fset-process-datagram-address Set the datagram address for PROCESS to ADDRESS. Return nil upon error setting address, ADDRESS otherwise. If PROCESS is a non-blocking network process that hasn't been fully set up yet, this function will block until socket setup has completed. (fn PROCESS ADDRESS)Fset-network-process-option For network process PROCESS set option OPTION to value VALUE. See `make-network-process' for a list of options and values. If optional fourth arg NO-ERROR is non-nil, don't signal an error if OPTION is not a supported option, return nil instead; otherwise return t. If PROCESS is a non-blocking network process that hasn't been fully set up yet, this function will block until socket setup has completed. (fn PROCESS OPTION VALUE &optional NO-ERROR)Fserial-process-configure Configure speed, bytesize, etc. of a serial process. Arguments are specified as keyword/argument pairs. Attributes that are not given are re-initialized from the process's current configuration (available via the function `process-contact') or set to reasonable default values. The following arguments are defined: :process PROCESS :name NAME :buffer BUFFER :port PORT -- Any of these arguments can be given to identify the process that is to be configured. If none of these arguments is given, the current buffer's process is used. :speed SPEED -- SPEED is the speed of the serial port in bits per second, also called baud rate. Any value can be given for SPEED, but most serial ports work only at a few defined values between 1200 and 115200, with 9600 being the most common value. If SPEED is nil, the serial port is not configured any further, i.e., all other arguments are ignored. This may be useful for special serial ports such as Bluetooth-to-serial converters which can only be configured through AT commands. A value of nil for SPEED can be used only when passed through `make-serial-process' or `serial-term'. :bytesize BYTESIZE -- BYTESIZE is the number of bits per byte, which can be 7 or 8. If BYTESIZE is not given or nil, a value of 8 is used. :parity PARITY -- PARITY can be nil (don't use parity), the symbol `odd' (use odd parity), or the symbol `even' (use even parity). If PARITY is not given, no parity is used. :stopbits STOPBITS -- STOPBITS is the number of stopbits used to terminate a byte transmission. STOPBITS can be 1 or 2. If STOPBITS is not given or nil, 1 stopbit is used. :flowcontrol FLOWCONTROL -- FLOWCONTROL determines the type of flowcontrol to be used, which is either nil (don't use flowcontrol), the symbol `hw' (use RTS/CTS hardware flowcontrol), or the symbol `sw' (use XON/XOFF software flowcontrol). If FLOWCONTROL is not given, no flowcontrol is used. `serial-process-configure' is called by `make-serial-process' for the initial configuration of the serial port. Examples: (serial-process-configure :process "/dev/ttyS0" :speed 1200) (serial-process-configure :buffer "COM1" :stopbits 1 :parity \='odd :flowcontrol \='hw) (serial-process-configure :port "\\.\COM13" :bytesize 7) (fn &rest ARGS)Fmake-serial-process Create and return a serial port process. In Emacs, serial port connections are represented by process objects, so input and output work as for subprocesses, and `delete-process' closes a serial port connection. However, a serial process has no process id, it cannot be signaled, and the status codes are different from normal processes. `make-serial-process' creates a process and a buffer, on which you probably want to use `process-send-string'. Try \[serial-term] for an interactive terminal. See below for examples. Arguments are specified as keyword/argument pairs. The following arguments are defined: :port PORT -- (mandatory) PORT is the path or name of the serial port. For example, this could be "/dev/ttyS0" on Unix. On Windows, this could be "COM1", or "\\.\COM10" for ports higher than COM9 (double the backslashes in strings). :speed SPEED -- (mandatory) is handled by `serial-process-configure', which this function calls. :name NAME -- NAME is the name of the process. If NAME is not given, the value of PORT is used. :buffer BUFFER -- BUFFER is the buffer (or buffer-name) to associate with the process. Process output goes at the end of that buffer, unless you specify a filter function to handle the output. If BUFFER is not given, the value of NAME is used. :coding CODING -- If CODING is a symbol, it specifies the coding system used for both reading and writing for this process. If CODING is a cons (DECODING . ENCODING), DECODING is used for reading, and ENCODING is used for writing. :noquery BOOL -- When exiting Emacs, query the user if BOOL is nil and the process is running. If BOOL is not given, query before exiting. :stop BOOL -- Start process in the `stopped' state if BOOL is non-nil. In the stopped state, a serial process does not accept incoming data, but you can send outgoing data. The stopped state is cleared by `continue-process' and set by `stop-process'. :filter FILTER -- Install FILTER as the process filter. :sentinel SENTINEL -- Install SENTINEL as the process sentinel. :plist PLIST -- Install PLIST as the initial plist of the process. :bytesize :parity :stopbits :flowcontrol -- This function calls `serial-process-configure' to handle these arguments. The original argument list, possibly modified by later configuration, is available via the function `process-contact'. Examples: (make-serial-process :port "/dev/ttyS0" :speed 9600) (make-serial-process :port "COM1" :speed 115200 :stopbits 2) (make-serial-process :port "\\.\COM13" :speed 1200 :bytesize 7 :parity \='odd) (make-serial-process :port "/dev/tty.BlueConsole-SPP-1" :speed nil) (fn &rest ARGS)Fmake-network-process Create and return a network server or client process. In Emacs, network connections are represented by process objects, so input and output work as for subprocesses and `delete-process' closes a network connection. However, a network process has no process id, it cannot be signaled, and the status codes are different from normal processes. Arguments are specified as keyword/argument pairs. The following arguments are defined: :name NAME -- NAME is name for process. It is modified if necessary to make it unique. :buffer BUFFER -- BUFFER is the buffer (or buffer-name) to associate with the process. Process output goes at end of that buffer, unless you specify a filter function to handle the output. BUFFER may be also nil, meaning that this process is not associated with any buffer. :host HOST -- HOST is name of the host to connect to, or its IP address. The symbol `local' specifies the local host. If specified for a server process, it must be a valid name or address for the local host, and only clients connecting to that address will be accepted. If all interfaces should be bound, an address of "0.0.0.0" (for IPv4) or "::" (for IPv6) can be used. (On some operating systems, using "::" listens on both IPv4 and IPv6.) `local' will use IPv4 by default, use a FAMILY of `ipv6' to override this. :service SERVICE -- SERVICE is name of the service desired, or an integer specifying a port number to connect to. If SERVICE is t, a random port number is selected for the server. A port number can be specified as an integer string, e.g., "80", as well as an integer. :type TYPE -- TYPE is the type of connection. The default (nil) is a stream type connection, `datagram' creates a datagram type connection, `seqpacket' creates a reliable datagram connection. :family FAMILY -- FAMILY is the address (and protocol) family for the service specified by HOST and SERVICE. The default (nil) is to use whatever address family (IPv4 or IPv6) that is defined for the host and port number specified by HOST and SERVICE. Other address families supported are: local -- for a local (i.e. UNIX) address specified by SERVICE. ipv4 -- use IPv4 address family only. ipv6 -- use IPv6 address family only. :local ADDRESS -- ADDRESS is the local address used for the connection. This parameter is ignored when opening a client process. When specified for a server process, the FAMILY, HOST and SERVICE args are ignored. :remote ADDRESS -- ADDRESS is the remote partner's address for the connection. This parameter is ignored when opening a stream server process. For a datagram server process, it specifies the initial setting of the remote datagram address. When specified for a client process, the FAMILY, HOST, and SERVICE args are ignored. The format of ADDRESS depends on the address family: - An IPv4 address is represented as a vector of integers [A B C D P] corresponding to numeric IP address A.B.C.D and port number P. - An IPv6 address has the same format as an IPv4 address but with 9 elements rather than 5. - A local address is represented as a string with the address in the local address space. - An "unsupported family" address is represented by a cons (F . AV) where F is the family number and AV is a vector containing the socket address data with one element per address data byte. Do not rely on this format in portable code, as it may depend on implementation defined constants, data sizes, and data structure alignment. :coding CODING -- If CODING is a symbol, it specifies the coding system used for both reading and writing for this process. If CODING is a cons (DECODING . ENCODING), DECODING is used for reading, and ENCODING is used for writing. :nowait BOOL -- If NOWAIT is non-nil for a stream type client process, return without waiting for the connection to complete; instead, the sentinel function will be called with second arg matching "open" (if successful) or "failed" when the connect completes. Default is to use a blocking connect (i.e. wait) for stream type connections. :noquery BOOL -- Query the user unless BOOL is non-nil, and process is running when Emacs is exited. :stop BOOL -- Start process in the `stopped' state if BOOL non-nil. In the stopped state, a server process does not accept new connections, and a client process does not handle incoming traffic. The stopped state is cleared by `continue-process' and set by `stop-process'. :filter FILTER -- Install FILTER as the process filter. :filter-multibyte BOOL -- If BOOL is non-nil, strings given to the process filter are multibyte, otherwise they are unibyte. If this keyword is not specified, the strings are multibyte. :sentinel SENTINEL -- Install SENTINEL as the process sentinel. :log LOG -- Install LOG as the server process log function. This function is called when the server accepts a network connection from a client. The arguments are SERVER, CLIENT, and MESSAGE, where SERVER is the server process, CLIENT is the new process for the connection, and MESSAGE is a string. :plist PLIST -- Install PLIST as the new process's initial plist. :tls-parameters LIST -- is a list that should be supplied if you're opening a TLS connection. The first element is the TLS type (either `gnutls-x509pki' or `gnutls-anon'), and the remaining elements should be a keyword list accepted by gnutls-boot (as returned by `gnutls-boot-parameters'). :server QLEN -- if QLEN is non-nil, create a server process for the specified FAMILY, SERVICE, and connection type (stream or datagram). If QLEN is an integer, it is used as the max. length of the server's pending connection queue (also known as the backlog); the default queue length is 5. Default is to create a client process. The following network options can be specified for this connection: :broadcast BOOL -- Allow send and receive of datagram broadcasts. :dontroute BOOL -- Only send to directly connected hosts. :keepalive BOOL -- Send keep-alive messages on network stream. :linger BOOL or TIMEOUT -- Send queued messages before closing. :oobinline BOOL -- Place out-of-band data in receive data stream. :priority INT -- Set protocol defined priority for sent packets. :reuseaddr BOOL -- Allow reusing a recently used local address (this is allowed by default for a server process). :bindtodevice NAME -- bind to interface NAME. Using this may require special privileges on some systems. :use-external-socket BOOL -- Use any pre-allocated sockets that have been passed to Emacs. If Emacs wasn't passed a socket, this option is silently ignored. Consult the relevant system programmer's manual pages for more information on using these options. A server process will listen for and accept connections from clients. When a client connection is accepted, a new network process is created for the connection with the following parameters: - The client's process name is constructed by concatenating the server process's NAME and a client identification string. - If the FILTER argument is non-nil, the client process will not get a separate process buffer; otherwise, the client's process buffer is a newly created buffer named after the server process's BUFFER name or process NAME concatenated with the client identification string. - The connection type and the process filter and sentinel parameters are inherited from the server process's TYPE, FILTER and SENTINEL. - The client process's contact info is set according to the client's addressing information (typically an IP address and a port number). - The client process's plist is initialized from the server's plist. Notice that the FILTER and SENTINEL args are never used directly by the server process. Also, the BUFFER argument is not used directly by the server process, but via the optional :log function, accepted (and failed) connections may be logged in the server process's buffer. The original argument list, modified with the actual connection information, is available via the `process-contact' function. (fn &rest ARGS)Fnetwork-interface-list Return an alist of all network interfaces and their network address. Each element is cons of the form (IFNAME . IP) where IFNAME is a string containing the interface name, and IP is the network address in internal format; see the description of ADDRESS in `make-network-process'. The interface name is not guaranteed to be unique. Optional parameter FULL non-nil means return all IP address info for each interface. Each element is then a list of the form (IFNAME IP BCAST MASK) where IFNAME is the interface name, IP the IP address, BCAST the broadcast address, and MASK the network mask. Optional parameter FAMILY controls the type of addresses to return. The default of nil means both IPv4 and IPv6, symbol `ipv4' means IPv4 only, symbol `ipv6' means IPv6 only. See also `network-interface-info', which is limited to IPv4 only. If the information is not available, return nil. (fn &optional FULL FAMILY)Fnetwork-interface-info Return information about network interface named IFNAME. The return value is a list (ADDR BCAST NETMASK HWADDR FLAGS), where ADDR is the layer 3 address, BCAST is the layer 3 broadcast address, NETMASK is the layer 3 network mask, HWADDR is the layer 2 address, and FLAGS is the current flags of the interface. Data that is unavailable is returned as nil. (fn IFNAME)Fnetwork-lookup-address-info Look up Internet Protocol (IP) address info of NAME. Optional argument FAMILY controls whether to look up IPv4 or IPv6 addresses. The default of nil means both, symbol `ipv4' means IPv4 only, symbol `ipv6' means IPv6 only. Optional argument HINTS allows specifying the hints passed to the underlying library call. The only supported value is `numeric', which means treat NAME as a numeric IP address. This also suppresses DNS traffic. Return a list of addresses, or nil if none were found. Each address is a vector of integers, as per the description of ADDRESS in `make-network-process'. In case of error log the error message returned from the lookup. (fn NAME &optional FAMILY HINT)Faccept-process-output Allow any pending output from subprocesses to be read by Emacs. It is given to their filter functions. Optional argument PROCESS means to return only after output is received from PROCESS or PROCESS closes the connection. Optional second argument SECONDS and third argument MILLISEC specify a timeout; return after that much time even if there is no subprocess output. If SECONDS is a floating point number, it specifies a fractional number of seconds to wait. The MILLISEC argument is obsolete and should be avoided. If optional fourth argument JUST-THIS-ONE is non-nil, accept output from PROCESS only, suspending reading output from other processes. If JUST-THIS-ONE is an integer, don't run any timers either. Return non-nil if we received any output from PROCESS (or, if PROCESS is nil, from any process) before the timeout expired or the corresponding connection was closed. (fn &optional PROCESS SECONDS MILLISEC JUST-THIS-ONE)Finternal-default-process-filter Function used as default process filter. This inserts the process's output into its buffer, if there is one. Otherwise it discards the output. (fn PROC TEXT)Fprocess-send-region Send current contents of region as input to PROCESS. PROCESS may be a process, a buffer, the name of a process or buffer, or nil, indicating the current buffer's process. Called from program, takes three arguments, PROCESS, START and END. If the region is larger than the input buffer of the process (the length of which depends on the process connection type and the operating system), it is sent in several bunches. This may happen even for shorter regions. Output from processes can arrive in between bunches. If PROCESS is a non-blocking network process that hasn't been fully set up yet, this function will block until socket setup has completed. (fn PROCESS START END)Fprocess-send-string Send PROCESS the contents of STRING as input. PROCESS may be a process, a buffer, the name of a process or buffer, or nil, indicating the current buffer's process. If STRING is larger than the input buffer of the process (the length of which depends on the process connection type and the operating system), it is sent in several bunches. This may happen even for shorter strings. Output from processes can arrive in between bunches. If PROCESS is a non-blocking network process that hasn't been fully set up yet, this function will block until socket setup has completed. (fn PROCESS STRING)Fprocess-running-child-p Return non-nil if PROCESS has given control of its terminal to a child. If the operating system does not make it possible to find out, return t. If it's possible to find out, return the numeric ID of the foreground process group if PROCESS did give control of its terminal to a child process, and return nil if it didn't. PROCESS must be a real subprocess, not a connection. (fn &optional PROCESS)Finternal-default-interrupt-process Default function to interrupt process PROCESS. It shall be the last element in list `interrupt-process-functions'. See function `interrupt-process' for more details on usage. (fn &optional PROCESS CURRENT-GROUP)Finterrupt-process Interrupt process PROCESS. PROCESS may be a process, a buffer, or the name of a process or buffer. No arg or nil means current buffer's process. Second arg CURRENT-GROUP non-nil means send signal to the current process-group of the process's controlling terminal rather than to the process's own process group. If the process is a shell, this means interrupt current subjob rather than the shell. If CURRENT-GROUP is `lambda', and if the shell owns the terminal, don't send the signal. This function calls the functions of `interrupt-process-functions' in the order of the list, until one of them returns non-nil. (fn &optional PROCESS CURRENT-GROUP)Fkill-process Kill process PROCESS. May be process or name of one. See function `interrupt-process' for more details on usage. (fn &optional PROCESS CURRENT-GROUP)Fquit-process Send QUIT signal to process PROCESS. May be process or name of one. See function `interrupt-process' for more details on usage. (fn &optional PROCESS CURRENT-GROUP)Fstop-process Stop process PROCESS. May be process or name of one. See function `interrupt-process' for more details on usage. If PROCESS is a network or serial or pipe connection, inhibit handling of incoming traffic. (fn &optional PROCESS CURRENT-GROUP)Fcontinue-process Continue process PROCESS. May be process or name of one. See function `interrupt-process' for more details on usage. If PROCESS is a network or serial process, resume handling of incoming traffic. (fn &optional PROCESS CURRENT-GROUP)Finternal-default-signal-process Default function to send PROCESS the signal with code SIGCODE. It shall be the last element in list `signal-process-functions'. See function `signal-process' for more details on usage. (fn PROCESS SIGCODE &optional REMOTE)Fsignal-process Send PROCESS the signal with code SIGCODE. PROCESS may also be a number specifying the process id of the process to signal; in this case, the process need not be a child of this Emacs. If PROCESS is a process object which contains the property `remote-pid', or PROCESS is a number and REMOTE is a remote file name, PROCESS is interpreted as process on the respective remote host, which will be the process to signal. If PROCESS is a string, it is interpreted as process object with the respective process name, or as a number. SIGCODE may be an integer, or a symbol whose name is a signal name. (fn PROCESS SIGCODE &optional REMOTE)Fprocess-send-eof Make PROCESS see end-of-file in its input. EOF comes after any text already sent to it. PROCESS may be a process, a buffer, the name of a process or buffer, or nil, indicating the current buffer's process. If PROCESS is a network connection, or is a process communicating through a pipe (as opposed to a pty), then you cannot send any more text to PROCESS after you call this function. If PROCESS is a serial process, wait until all output written to the process has been transmitted to the serial port. (fn &optional PROCESS)Finternal-default-process-sentinel Function used as default sentinel for processes. This inserts a status message into the process's buffer, if there is one. (fn PROC MSG)Fset-process-coding-system Set coding systems of PROCESS to DECODING and ENCODING. DECODING will be used to decode subprocess output and ENCODING to encode subprocess input. (fn PROCESS &optional DECODING ENCODING)Fprocess-coding-system Return a cons of coding systems for decoding and encoding of PROCESS. (fn PROCESS)Fget-buffer-process Return the (or a) live process associated with BUFFER. BUFFER may be a buffer or the name of one. Return nil if all processes associated with BUFFER have been deleted or killed. (fn BUFFER)Fprocess-inherit-coding-system-flag Return the value of inherit-coding-system flag for PROCESS. If this flag is t, `buffer-file-coding-system' of the buffer associated with PROCESS will inherit the coding system used to decode the process output. (fn PROCESS)Fwaiting-for-user-input-p Return non-nil if Emacs is waiting for input from the user. This is intended for use by asynchronous process output filters and sentinels. (fn)Flist-system-processes Return a list of numerical process IDs of all running processes. If this functionality is unsupported, return nil. If `default-directory' is remote, return process IDs of the respective remote host. See `process-attributes' for getting attributes of a process given its ID. (fn)Fprocess-attributes Return attributes of the process given by its PID, a number. If `default-directory' is remote, PID is regarded as process identifier on the respective remote host. Value is an alist where each element is a cons cell of the form (KEY . VALUE) If this functionality is unsupported, the value is nil. See `list-system-processes' for getting a list of all process IDs. The KEYs of the attributes that this function may return are listed below, together with the type of the associated VALUE (in parentheses). Not all platforms support all of these attributes; unsupported attributes will not appear in the returned alist. Unless explicitly indicated otherwise, numbers can have either integer or floating point values. euid -- Effective user User ID of the process (number) user -- User name corresponding to euid (string) egid -- Effective user Group ID of the process (number) group -- Group name corresponding to egid (string) comm -- Command name (executable name only) (string) state -- Process state code, such as "S", "R", or "T" (string) ppid -- Parent process ID (number) pgrp -- Process group ID (number) sess -- Session ID, i.e. process ID of session leader (number) ttname -- Controlling tty name (string) tpgid -- ID of foreground process group on the process's tty (number) minflt -- number of minor page faults (number) majflt -- number of major page faults (number) cminflt -- cumulative number of minor page faults (number) cmajflt -- cumulative number of major page faults (number) utime -- user time used by the process, in `current-time' format stime -- system time used by the process (current-time) time -- sum of utime and stime (current-time) cutime -- user time used by the process and its children (current-time) cstime -- system time used by the process and its children (current-time) ctime -- sum of cutime and cstime (current-time) pri -- priority of the process (number) nice -- nice value of the process (number) thcount -- process thread count (number) start -- time the process started (current-time) vsize -- virtual memory size of the process in KB's (number) rss -- resident set size of the process in KB's (number) etime -- elapsed time the process is running (current-time) pcpu -- percents of CPU time used by the process (floating-point number) pmem -- percents of total physical memory used by process's resident set (floating-point number) args -- command line which invoked the process (string). (fn PID)Fnum-processors Return the number of processors, a positive integer. Each usable thread execution unit counts as a processor. By default, count the number of available processors, overridable via the OMP_NUM_THREADS environment variable. If optional argument QUERY is `current', ignore OMP_NUM_THREADS. If QUERY is `all', also count processors not available. (fn &optional QUERY)Fsignal-names Return a list of known signal names on this system. (fn)Vdelete-exited-processes Non-nil means delete processes immediately when they exit. A value of nil means don't delete them until `list-processes' is run.Vprocess-connection-type Control type of device used to communicate with subprocesses. Values are nil to use a pipe, or t or `pty' to use a pty. The value has no effect if the system has no ptys or if all ptys are busy: then a pipe is used in any case. The value takes effect when `start-process' is called.Vprocess-adaptive-read-buffering If non-nil, improve receive buffering by delaying after short reads. On some systems, when Emacs reads the output from a subprocess, the output data is read in very small blocks, potentially resulting in very poor performance. This behavior can be remedied to some extent by setting this variable to a non-nil value, as it will automatically delay reading from such processes, to allow them to produce more output before Emacs tries to read it. If the value is t, the delay is reset after each write to the process; any other non-nil value means that the delay is not reset on write. The variable takes effect when `start-process' is called.Vprocess-prioritize-lower-fds Whether to start checking for subprocess output from first file descriptor. Emacs loops through file descriptors to check for output from subprocesses. If this variable is nil, the default, then after accepting output from a subprocess, Emacs will continue checking the rest of descriptors, starting from the one following the descriptor it just read. If this variable is non-nil, Emacs will always restart the loop from the first file descriptor, thus favoring processes with lower descriptors.Vinterrupt-process-functions List of functions to be called for `interrupt-process'. The arguments of the functions are the same as for `interrupt-process'. These functions are called in the order of the list, until one of them returns non-nil.Vsignal-process-functions List of functions to be called for `signal-process'. The arguments of the functions are the same as for `signal-process'. These functions are called in the order of the list, until one of them returns non-nil.Vinternal--daemon-sockname Name of external socket passed to Emacs, or nil if none.Vread-process-output-max Maximum number of bytes to read from subprocess in a single chunk. Enlarge the value only if the subprocess generates very large (megabytes) amounts of data in one go. On GNU/Linux systems, the value should not exceed /proc/sys/fs/pipe-max-size. See pipe(7) manpage for details.Vprocess-error-pause-time The number of seconds to pause after handling process errors. This isn't used for all process-related errors, but is used when a sentinel or a process filter function has an error.Sgnutls.o Fgnutls-asynchronous-parameters Mark this process as being a pre-init GnuTLS process. The second parameter is the list of parameters to feed to gnutls-boot to finish setting up the connection. (fn PROC PARAMS)Fgnutls-get-initstage Return the GnuTLS init stage of process PROC. See also `gnutls-boot'. (fn PROC)Fgnutls-errorp Return t if ERROR indicates a GnuTLS problem. ERROR is an integer or a symbol with an integer `gnutls-code' property. (fn ERROR)Fgnutls-error-fatalp Return non-nil if ERROR is fatal. ERROR is an integer or a symbol with an integer `gnutls-code' property. Usage: (gnutls-error-fatalp ERROR) (fn ERR)Fgnutls-error-string Return a description of ERROR. ERROR is an integer or a symbol with an integer `gnutls-code' property. (fn ERROR)Fgnutls-deinit Deallocate GnuTLS resources associated with process PROC. See also `gnutls-boot'. (fn PROC)Fgnutls-peer-status-warning-describe Describe the warning of a GnuTLS peer status from `gnutls-peer-status'. (fn STATUS-SYMBOL)Fgnutls-peer-status Describe a GnuTLS PROC peer certificate and any warnings about it. The return value is a property list with top-level keys :warnings and :certificates. The :warnings entry is a list of symbols you can get a description of with `gnutls-peer-status-warning-describe', and :certificates is the certificate chain for the connection, with the host certificate first, and intermediary certificates (if any) following it. In addition, for backwards compatibility, the host certificate is also returned as the :certificate entry. (fn PROC)Fgnutls-format-certificate Format a X.509 certificate to a string. Given a PEM-encoded X.509 certificate CERT, returns a human-readable string representation. (fn CERT)Fgnutls-boot Initialize GnuTLS client for process PROC with TYPE+PROPLIST. Currently only client mode is supported. Return a success/failure value you can check with `gnutls-errorp'. TYPE is a symbol, either `gnutls-anon' or `gnutls-x509pki'. PROPLIST is a property list with the following keys: :hostname is a string naming the remote host. :priority is a GnuTLS priority string, defaults to "NORMAL". :trustfiles is a list of PEM-encoded trust files for `gnutls-x509pki'. :crlfiles is a list of PEM-encoded CRL lists for `gnutls-x509pki'. :keylist is an alist of PEM-encoded key files and PEM-encoded certificates for `gnutls-x509pki'. :callbacks is an alist of callback functions, see below. :loglevel is the debug level requested from GnuTLS, try 4. :verify-flags is a bitset as per GnuTLS' gnutls_certificate_set_verify_flags. :verify-hostname-error is ignored. Pass :hostname in :verify-error instead. :verify-error is a list of symbols to express verification checks or t to do all checks. Currently it can contain `:trustfiles' and `:hostname' to verify the certificate or the hostname respectively. :min-prime-bits is the minimum accepted number of bits the client will accept in Diffie-Hellman key exchange. :complete-negotiation, if non-nil, will make negotiation complete before returning even on non-blocking sockets. The debug level will be set for this process AND globally for GnuTLS. So if you set it higher or lower at any point, it affects global debugging. Note that the priority is set on the client. The server does not use the protocols's priority except for disabling protocols that were not specified. Processes must be initialized with this function before other GnuTLS functions are used. This function allocates resources which can only be deallocated by calling `gnutls-deinit' or by calling it again. The callbacks alist can have a `verify' key, associated with a verification function (UNUSED). Each authentication type may need additional information in order to work. For X.509 PKI (`gnutls-x509pki'), you probably need at least one trustfile (usually a CA bundle). (fn PROC TYPE PROPLIST)Fgnutls-bye Terminate current GnuTLS connection for process PROC. The connection should have been initiated using `gnutls-handshake'. If CONT is not nil the TLS connection gets terminated and further receives and sends will be disallowed. If the return value is zero you may continue using the connection. If CONT is nil, GnuTLS actually sends an alert containing a close request and waits for the peer to reply with the same message. In order to reuse the connection you should wait for an EOF from the peer. This function may also return `gnutls-e-again', or `gnutls-e-interrupted'. (fn PROC CONT)Fgnutls-ciphers Return alist of GnuTLS symmetric cipher descriptions as plists. The alist key is the cipher name. (fn)Fgnutls-symmetric-encrypt Encrypt INPUT with symmetric CIPHER, KEY+AEAD_AUTH, and IV to a unibyte string. Return nil on error. The KEY can be specified as a buffer or string or in other ways (see Info node `(elisp)Format of GnuTLS Cryptography Inputs'). The KEY will be wiped after use if it's a string. The IV and INPUT and the optional AEAD_AUTH can also be specified as a buffer or string or in other ways. The alist of symmetric ciphers can be obtained with `gnutls-ciphers'. The CIPHER may be a string or symbol matching a key in that alist, or a plist with the :cipher-id numeric property, or the number itself. AEAD ciphers: these ciphers will have a `gnutls-ciphers' entry with :cipher-aead-capable set to t. AEAD_AUTH can be supplied for these AEAD ciphers, but it may still be omitted (nil) as well. (fn CIPHER KEY IV INPUT &optional AEAD-AUTH)Fgnutls-symmetric-decrypt Decrypt INPUT with symmetric CIPHER, KEY+AEAD_AUTH, and IV to a unibyte string. Return nil on error. The KEY can be specified as a buffer or string or in other ways (see Info node `(elisp)Format of GnuTLS Cryptography Inputs'). The KEY will be wiped after use if it's a string. The IV and INPUT and the optional AEAD_AUTH can also be specified as a buffer or string or in other ways. The alist of symmetric ciphers can be obtained with `gnutls-ciphers'. The CIPHER may be a string or symbol matching a key in that alist, or a plist with the `:cipher-id' numeric property, or the number itself. AEAD ciphers: these ciphers will have a `gnutls-ciphers' entry with :cipher-aead-capable set to t. AEAD_AUTH can be supplied for these AEAD ciphers, but it may still be omitted (nil) as well. (fn CIPHER KEY IV INPUT &optional AEAD-AUTH)Fgnutls-macs Return alist of GnuTLS mac-algorithm method descriptions as plists. Use the value of the alist (extract it with `alist-get' for instance) with `gnutls-hash-mac'. The alist key is the mac-algorithm method name. (fn)Fgnutls-digests Return alist of GnuTLS digest-algorithm method descriptions as plists. Use the value of the alist (extract it with `alist-get' for instance) with `gnutls-hash-digest'. The alist key is the digest-algorithm method name. (fn)Fgnutls-hash-mac Hash INPUT with HASH-METHOD and KEY into a unibyte string. Return nil on error. The KEY can be specified as a buffer or string or in other ways (see Info node `(elisp)Format of GnuTLS Cryptography Inputs'). The KEY will be wiped after use if it's a string. The INPUT can also be specified as a buffer or string or in other ways. The alist of MAC algorithms can be obtained with `gnutls-macs'. The HASH-METHOD may be a string or symbol matching a key in that alist, or a plist with the `:mac-algorithm-id' numeric property, or the number itself. (fn HASH-METHOD KEY INPUT)Fgnutls-hash-digest Digest INPUT with DIGEST-METHOD into a unibyte string. Return nil on error. The INPUT can be specified as a buffer or string or in other ways (see Info node `(elisp)Format of GnuTLS Cryptography Inputs'). The alist of digest algorithms can be obtained with `gnutls-digests'. The DIGEST-METHOD may be a string or symbol matching a key in that alist, or a plist with the `:digest-algorithm-id' numeric property, or the number itself. (fn DIGEST-METHOD INPUT)Fgnutls-available-p Return list of capabilities if GnuTLS is available in this instance of Emacs. ...if supported : then... GnuTLS 3 or higher : the list will contain `gnutls3'. GnuTLS MACs : the list will contain `macs'. GnuTLS digests : the list will contain `digests'. GnuTLS symmetric ciphers: the list will contain `ciphers'. GnuTLS AEAD ciphers : the list will contain `AEAD-ciphers'. %DUMBFW : the list will contain `ClientHello\ Padding'. Any GnuTLS extension with ID up to 100 : the list will contain its name. (fn)Vlibgnutls-version The version of libgnutls that Emacs was compiled with. The version number is encoded as an integer with the major version in the ten thousands place, minor version in the hundreds, and patch level in the ones. For builds without libgnutls, the value is -1.Vgnutls-log-level Logging level used by the GnuTLS functions. Set this larger than 0 to get debug output in the *Messages* buffer. 1 is for important messages, 2 is for debug data, and higher numbers are as per the GnuTLS logging conventions.Scallproc.o Fcall-process Call PROGRAM synchronously in separate process. The remaining arguments are optional. The program's input comes from file INFILE (nil means `null-device'). If INFILE is a relative path, it will be looked for relative to the directory where the process is run (see below). If you want to make the input come from an Emacs buffer, use `call-process-region' instead. Third argument DESTINATION specifies how to handle program's output. ("Output" here means both standard output and standard error output.) If DESTINATION is a buffer or the name of a buffer, or t (which stands for the current buffer), it means insert output in that buffer before point. If DESTINATION is nil, it means discard output; 0 means discard and don't wait for the program to terminate. If DESTINATION is `(:file FILE)', where FILE is a file name string, it means that output should be written to that file (if the file already exists it is overwritten). DESTINATION can also have the form (REAL-BUFFER STDERR-FILE); in that case, REAL-BUFFER says what to do with standard output, as above, while STDERR-FILE says what to do with standard error in the child. STDERR-FILE may be nil (discard standard error output), t (mix it with ordinary output), or a file name string. Fourth arg DISPLAY non-nil means redisplay buffer as output is inserted. Remaining arguments ARGS are strings passed as command arguments to PROGRAM. If PROGRAM is not an absolute file name, `call-process' will look for PROGRAM in `exec-path' (which is a list of directories). If executable PROGRAM can't be found as an executable, `call-process' signals a Lisp error. `call-process' reports errors in execution of the program only through its return and output. If DESTINATION is 0, `call-process' returns immediately with value nil. Otherwise it waits for PROGRAM to terminate and returns a numeric exit status or a signal description string. If you quit, the process is killed with SIGINT, or SIGKILL if you quit again. The process runs in `default-directory' if that is local (as determined by `unhandled-file-name-directory'), or "~" otherwise. If you want to run a process in a remote directory use `process-file'. (fn PROGRAM &optional INFILE DESTINATION DISPLAY &rest ARGS)Fcall-process-region Send text from START to END to a synchronous process running PROGRAM. START and END are normally buffer positions specifying the part of the buffer to send to the process. If START is nil, that means to use the entire buffer contents; END is ignored. If START is a string, then send that string to the process instead of any buffer contents; END is ignored. The remaining arguments are optional. Delete the text if fourth arg DELETE is non-nil. Insert output in BUFFER before point; t means current buffer; nil for BUFFER means discard it; 0 means discard and don't wait; and `(:file FILE)', where FILE is a file name string, means that it should be written to that file (if the file already exists it is overwritten). BUFFER can be a string which is the name of a buffer. BUFFER can also have the form (REAL-BUFFER STDERR-FILE); in that case, REAL-BUFFER says what to do with standard output, as above, while STDERR-FILE says what to do with standard error in the child. STDERR-FILE may be nil (discard standard error output), t (mix it with ordinary output), or a file name string. Sixth arg DISPLAY non-nil means redisplay buffer as output is inserted. Remaining arguments ARGS are passed to PROGRAM at startup as command-line arguments. If PROGRAM is not an absolute file name, `call-process-region' will look for PROGRAM in `exec-path' (which is a list of directories). If BUFFER is 0, `call-process-region' returns immediately with value nil. Otherwise it waits for PROGRAM to terminate and returns a numeric exit status or a signal description string. If you quit, the process is killed with SIGINT, or SIGKILL if you quit again. (fn START END PROGRAM &optional DELETE BUFFER DISPLAY &rest ARGS)Fgetenv-internal Get the value of environment variable VARIABLE. VARIABLE should be a string. Value is nil if VARIABLE is undefined in the environment. Otherwise, value is a string. This function searches `process-environment' for VARIABLE. If optional parameter ENV is a list, then search this list instead of `process-environment', and return t when encountering a negative entry (an entry for a variable with no value). (fn VARIABLE &optional ENV)Vshell-file-name File name to load inferior shells from. Initialized from the SHELL environment variable, or to a system-dependent default if SHELL is unset. See Info node `(elisp)Security Considerations'.Vexec-path List of directories to search programs to run in subprocesses. Each element is a string (directory name) or nil (try default directory). By default the last element of this list is `exec-directory'. The last element is not always used, for example in shell completion (`shell-dynamic-complete-command').Vexec-suffixes List of suffixes to try to find executable file names. Each element is a string.Vexec-directory Directory for executables for Emacs to invoke. More generally, this includes any architecture-dependent files that are built and installed from the Emacs distribution.Vdata-directory Directory of machine-independent files that come with GNU Emacs. These are files intended for Emacs to use while it runs.Vdoc-directory Directory containing the DOC file that comes with GNU Emacs. This is usually the same as `data-directory'.Vconfigure-info-directory For internal use by the build procedure only. This is the name of the directory in which the build procedure installed Emacs's info files; the default value for `Info-default-directory-list' includes this.Vshared-game-score-directory Directory of score files for games which come with GNU Emacs. If this variable is nil, then Emacs is unable to use a shared directory.Vinitial-environment List of environment variables inherited from the parent process. Each element should be a string of the form ENVVARNAME=VALUE. The elements must normally be decoded (using `locale-coding-system') for use.Vprocess-environment List of overridden environment variables for subprocesses to inherit. Each element should be a string of the form ENVVARNAME=VALUE. Entries in this list take precedence to those in the frame-local environments. Therefore, let-binding `process-environment' is an easy way to temporarily change the value of an environment variable, irrespective of where it comes from. To use `process-environment' to remove an environment variable, include only its name in the list, without "=VALUE". This variable is set to nil when Emacs starts. If multiple entries define the same variable, the first one always takes precedence. Non-ASCII characters are encoded according to the initial value of `locale-coding-system', i.e. the elements must normally be decoded for use. See `setenv' and `getenv'.Sregion-cache.o Ssound.o Fplay-sound-internal Play sound SOUND. Internal use only, use `play-sound' instead. (fn SOUND)Stimefns.o Ftime-add Return the sum of two time values A and B, as a time value. See `format-time-string' for the various forms of a time value. For example, nil stands for the current time. (fn A B)Ftime-subtract Return the difference between two time values A and B, as a time value. You can use `float-time' to convert the difference into elapsed seconds. See `format-time-string' for the various forms of a time value. For example, nil stands for the current time. (fn A B)Ftime-less-p Return non-nil if time value A is less than time value B. See `format-time-string' for the various forms of a time value. For example, nil stands for the current time. (fn A B)Ftime-equal-p Return non-nil if A and B are equal time values. See `format-time-string' for the various forms of a time value. (fn A B)Ffloat-time Return the current time, as a float number of seconds since the epoch. If SPECIFIED-TIME is given, it is a time value to convert to float instead of the current time. See `format-time-string' for the various forms of a time value. WARNING: Since the result is floating point, it may not be exact. If precise time stamps are required, use either `time-convert', or (if you need time as a string) `format-time-string'. (fn &optional SPECIFIED-TIME)Fformat-time-string Use FORMAT-STRING to format the time value TIME. A time value that is omitted or nil stands for the current time, a number stands for that many seconds, an integer pair (TICKS . HZ) stands for TICKS/HZ seconds, and an integer list (HI LO US PS) stands for HI*2**16 + LO + US/10**6 + PS/10**12 seconds. This function treats seconds as time since the epoch of 1970-01-01 00:00:00 UTC. The optional ZONE is omitted or nil for Emacs local time, t for Universal Time, `wall' for system wall clock time, or a string as in the TZ environment variable. It can also be a list (as from `current-time-zone') or an integer (as from `decode-time') applied without consideration for daylight saving time. The value is a copy of FORMAT-STRING, but with certain constructs replaced by text that describes the specified date and time in TIME: %Y is the year, %y year without century, %C the century. %G is the year corresponding to the ISO week, %g year corresponding to the ISO week, without century. %m is the numeric month. %b and %h are the locale's abbreviated month name, %B the full name. (%h is not supported on MS-Windows.) %d is the day of the month, zero-padded, %e is blank-padded. %u is the numeric day of week from 1 (Monday) to 7, %w from 0 (Sunday) to 6. %a is the locale's abbreviated name of the day of week, %A the full name. %U is the week number starting on Sunday, %W starting on Monday, %V the week number according to ISO 8601. %j is the day of the year. %H is the hour on a 24-hour clock, %I is on a 12-hour clock, %k is like %H only blank-padded, %l is like %I blank-padded. %p is the locale's equivalent of either AM or PM. %q is the calendar quarter (1–4). %M is the minute (00-59). %S is the second (00-59; 00-60 on platforms with leap seconds) %s is the number of seconds since 1970-01-01 00:00:00 +0000. %N is the nanosecond, %6N the microsecond, %3N the millisecond, etc. %Z is the time zone abbreviation, %z is the numeric form. %c is the locale's date and time format. %x is the locale's "preferred" date format. %D is like "%m/%d/%y". %F is the ISO 8601 date format (like "%+4Y-%m-%d"). %R is like "%H:%M", %T is like "%H:%M:%S", %r is like "%I:%M:%S %p". %X is the locale's "preferred" time format. Finally, %n is a newline, %t is a tab, %% is a literal %, and unrecognized %-sequences stand for themselves. A %-sequence can contain optional flags, field width, and a modifier (in that order) after the `%'. The flags are: `-' Do not pad the field. `_' Pad with spaces. `0' Pad with zeros. `+' Pad with zeros and put `+' before nonnegative year numbers with >4 digits. `^' Use upper case characters if possible. `#' Use opposite case characters if possible. A field width N is an unsigned decimal integer with a leading digit nonzero. %NX is like %X, but takes up at least N positions. The field width is (on GNU/Linux and some other systems) in measured in bytes, not characters. It depends on the locale what the width (in characters) %NX will end up being, especially when there are non-ASCII characters in %X. The modifiers are: `E' Use the locale's alternative version. `O' Use the locale's number symbols. For example, to produce full ISO 8601 format, use "%FT%T%z". (fn FORMAT-STRING &optional TIME ZONE)Fdecode-time Decode a timestamp into (SEC MINUTE HOUR DAY MONTH YEAR DOW DST UTCOFF). The optional TIME is the time value to convert. See `format-time-string' for the various forms of a time value. The optional ZONE is omitted or nil for Emacs local time, t for Universal Time, `wall' for system wall clock time, or a string as in the TZ environment variable. It can also be a list (as from `current-time-zone') or an integer (the UTC offset in seconds) applied without consideration for daylight saving time. The optional FORM specifies the form of the SEC member. If `integer', SEC is an integer; if t, SEC is an integer or (TICKS . HZ) timestamp with the same precision as TIME. An omitted or nil FORM is currently treated like `integer', but this may change in future Emacs versions. To access (or alter) the elements in the time value, the `decoded-time-second', `decoded-time-minute', `decoded-time-hour', `decoded-time-day', `decoded-time-month', `decoded-time-year', `decoded-time-weekday', `decoded-time-dst' and `decoded-time-zone' accessors can be used. The list has the following nine members: SEC is an integer or Lisp timestamp representing a nonnegative value less than 60 (or less than 61 if the operating system supports leap seconds). MINUTE is an integer between 0 and 59. HOUR is an integer between 0 and 23. DAY is an integer between 1 and 31. MONTH is an integer between 1 and 12. YEAR is the year number, an integer; 0 represents 1 BC. DOW is the day of week, an integer between 0 and 6, where 0 is Sunday. DST is t if daylight saving time is in effect, nil if it is not in effect, and -1 if daylight saving information is not available. UTCOFF is an integer indicating the UTC offset in seconds, i.e., the number of seconds east of Greenwich. (Note that Common Lisp has different meanings for DOW and UTCOFF, and its SEC is always an integer between 0 and 59.) (fn &optional TIME ZONE FORM)Fencode-time Convert TIME to a timestamp. TIME is a list (SECOND MINUTE HOUR DAY MONTH YEAR IGNORED DST ZONE) in the style of `decode-time', so that (encode-time (decode-time ...)) works. In this list, ZONE can be nil for Emacs local time, t for Universal Time, `wall' for system wall clock time, or a string as in the TZ environment variable. ZONE can also be a list (as from `current-time-zone') or an integer (as from `decode-time') applied without consideration for daylight saving time. If ZONE specifies a time zone with daylight-saving transitions, DST is t for daylight saving time, nil for standard time, and -1 to cause the daylight saving flag to be guessed. TIME can also be a list (SECOND MINUTE HOUR DAY MONTH YEAR), which is equivalent to (SECOND MINUTE HOUR DAY MONTH YEAR nil -1 nil). As an obsolescent calling convention, if this function is called with 6 or more arguments, the first 6 arguments are SECOND, MINUTE, HOUR, DAY, MONTH, and YEAR, and specify the components of a decoded time. If there are more than 6 arguments the *last* argument is used as ZONE and any other extra arguments are ignored, so that (apply #\='encode-time (decode-time ...)) works. In this obsolescent convention, DST is -1 and ZONE defaults to nil. The range of supported years is at least 1970 to the near future. Out-of-range values for SECOND through MONTH are brought into range via date arithmetic. This can be tricky especially when combined with DST; see Info node `(elisp)Time Conversion' for details and caveats. (fn TIME &rest OBSOLESCENT-ARGUMENTS)Ftime-convert Convert TIME value to a Lisp timestamp of the given FORM. Truncate the returned value toward minus infinity. If FORM is a positive integer, return a pair of integers (TICKS . FORM), where TICKS is the number of clock ticks and FORM is the clock frequency in ticks per second. If FORM is t, return (TICKS . PHZ), where PHZ is a suitable clock frequency in ticks per second. If FORM is `integer', return an integer count of seconds. If FORM is `list', return an integer list (HIGH LOW USEC PSEC), where HIGH has the most significant bits of the seconds, LOW has the least significant 16 bits, and USEC and PSEC are the microsecond and picosecond counts. If FORM is nil, the behavior depends on `current-time-list', but new code should not rely on it. (fn TIME &optional FORM)Fcurrent-time Return the current time, as the number of seconds since 1970-01-01 00:00:00. If the variable `current-time-list' is nil, the time is returned as a pair of integers (TICKS . HZ), where TICKS counts clock ticks and HZ is the clock ticks per second. Otherwise, the time is returned as a list of integers (HIGH LOW USEC PSEC) where HIGH has the most significant bits of the seconds, LOW has the least significant 16 bits, and USEC and PSEC are the microsecond and picosecond counts. You can use `time-convert' to get a particular timestamp form regardless of the value of `current-time-list'. (fn)Fcurrent-cpu-time Return the current CPU time along with its resolution. The return value is a pair (CPU-TICKS . TICKS-PER-SEC). The CPU-TICKS counter can wrap around, so values cannot be meaningfully compared if too much time has passed between them. (fn)Fcurrent-time-string Return the current local time, as a human-readable string. Programs can use this function to decode a time, since the number of columns in each field is fixed if the year is in the range 1000-9999. The format is `Sun Sep 16 01:03:52 1973'. However, see also the functions `decode-time' and `format-time-string' which provide a much more powerful and general facility. If SPECIFIED-TIME is given, it is the time value to format instead of the current time. See `format-time-string' for the various forms of a time value. The optional ZONE is omitted or nil for Emacs local time, t for Universal Time, `wall' for system wall clock time, or a string as in the TZ environment variable. It can also be a list (as from `current-time-zone') or an integer (as from `decode-time') applied without consideration for daylight saving time. (fn &optional SPECIFIED-TIME ZONE)Fcurrent-time-zone Return the offset and name for the local time zone. This returns a list of the form (OFFSET NAME). OFFSET is an integer number of seconds ahead of UTC (east of Greenwich). A negative value means west of Greenwich. NAME is a string giving the name of the time zone. If SPECIFIED-TIME is given, the time zone offset is determined from it instead of using the current time. The argument should be a Lisp time value; see `format-time-string' for the various forms of a time value. The optional ZONE is omitted or nil for Emacs local time, t for Universal Time, `wall' for system wall clock time, or a string as in the TZ environment variable. It can also be a list (as from `current-time-zone') or an integer (as from `decode-time') applied without consideration for daylight saving time. Some operating systems cannot provide all this information to Emacs; in this case, `current-time-zone' returns a list containing nil for the data it can't find. (fn &optional SPECIFIED-TIME ZONE)Fset-time-zone-rule Set the Emacs local time zone using TZ, a string specifying a time zone rule. If TZ is nil or `wall', use system wall clock time; this differs from the usual Emacs convention where nil means current local time. If TZ is t, use Universal Time. If TZ is a list (as from `current-time-zone') or an integer (as from `decode-time'), use the specified time zone without consideration for daylight saving time. Instead of calling this function, you typically want something else. To temporarily use a different time zone rule for just one invocation of `decode-time', `encode-time', or `format-time-string', pass the function a ZONE argument. To change local time consistently throughout Emacs, call (setenv "TZ" TZ): this changes both the environment of the Emacs process and the variable `process-environment', whereas `set-time-zone-rule' affects only the former. (fn TZ)Vcurrent-time-list Whether `current-time' should return list or (TICKS . HZ) form. This boolean variable is a transition aid. If t, `current-time' and related functions return timestamps in list form, typically (HIGH LOW USEC PSEC); otherwise, they use (TICKS . HZ) form. Currently this variable defaults to t, for behavior compatible with previous Emacs versions. Developers are encouraged to test timestamp-related code with this variable set to nil, as it will default to nil in a future Emacs version, and will be removed in some version after that.Satimer.o Fdebug-timer-check Run internal self-tests to check timers subsystem. Return t if all self-tests are passed, nil otherwise. (fn)Sdoprnt.o Sintervals.o Stextprop.o Ftext-properties-at Return the list of properties of the character at POSITION in OBJECT. If the optional second argument OBJECT is a buffer (or nil, which means the current buffer), POSITION is a buffer position (integer or marker). If OBJECT is a string, POSITION is a 0-based index into it. If POSITION is at the end of OBJECT, the value is nil, but note that buffer narrowing does not affect the value. That is, if OBJECT is a buffer or nil, and the buffer is narrowed and POSITION is at the end of the narrowed buffer, the result may be non-nil. If you want to display the text properties at point in a human-readable form, use the `describe-text-properties' command. (fn POSITION &optional OBJECT)Fget-text-property Return the value of POSITION's property PROP, in OBJECT. OBJECT should be a buffer or a string; if omitted or nil, it defaults to the current buffer. If POSITION is at the end of OBJECT, the value is nil, but note that buffer narrowing does not affect the value. That is, if the buffer is narrowed and POSITION is at the end of the narrowed buffer, the result may be non-nil. (fn POSITION PROP &optional OBJECT)Fget-char-property Return the value of POSITION's property PROP, in OBJECT. Both overlay properties and text properties are checked. OBJECT is optional and defaults to the current buffer. If POSITION is at the end of OBJECT, the value is nil. If OBJECT is a buffer, then overlay properties are considered as well as text properties. If OBJECT is a window, then that window's buffer is used, but window-specific overlays are considered only if they are associated with OBJECT. (fn POSITION PROP &optional OBJECT)Fget-char-property-and-overlay Like `get-char-property', but with extra overlay information. The value is a cons cell. Its car is the return value of `get-char-property' with the same arguments--that is, the value of POSITION's property PROP in OBJECT. Its cdr is the overlay in which the property was found, or nil, if it was found as a text property or not found at all. OBJECT is optional and defaults to the current buffer. OBJECT may be a string, a buffer or a window. For strings, the cdr of the return value is always nil, since strings do not have overlays. If OBJECT is a window, then that window's buffer is used, but window-specific overlays are considered only if they are associated with OBJECT. If POSITION is at the end of OBJECT, both car and cdr are nil. (fn POSITION PROP &optional OBJECT)Fnext-char-property-change Return the position of next text property or overlay change. This scans characters forward in the current buffer from POSITION till it finds a change in some text property, or the beginning or end of an overlay, and returns the position of that. If none is found, and LIMIT is nil or omitted, the function returns (point-max). If the optional second argument LIMIT is non-nil, the function doesn't search past position LIMIT, and returns LIMIT if nothing is found before LIMIT. LIMIT is a no-op if it is greater than (point-max). (fn POSITION &optional LIMIT)Fprevious-char-property-change Return the position of previous text property or overlay change. Scans characters backward in the current buffer from POSITION till it finds a change in some text property, or the beginning or end of an overlay, and returns the position of that. If none is found, and LIMIT is nil or omitted, the function returns (point-min). If the optional second argument LIMIT is non-nil, the function doesn't search before position LIMIT, and returns LIMIT if nothing is found before LIMIT. LIMIT is a no-op if it is less than (point-min). (fn POSITION &optional LIMIT)Fnext-single-char-property-change Return the position of next text property or overlay change for a specific property. Scans characters forward from POSITION till it finds a change in the PROP property, then returns the position of the change. If the optional third argument OBJECT is a buffer (or nil, which means the current buffer), POSITION is a buffer position (integer or marker). If OBJECT is a string, POSITION is a 0-based index into it. In a string, scan runs to the end of the string, unless LIMIT is non-nil. In a buffer, scan runs to end of buffer, unless LIMIT is non-nil. If the optional fourth argument LIMIT is non-nil, don't search past position LIMIT; return LIMIT if nothing is found before LIMIT. However, if OBJECT is a buffer and LIMIT is beyond the end of the buffer, this function returns `point-max', not LIMIT. The property values are compared with `eq'. (fn POSITION PROP &optional OBJECT LIMIT)Fprevious-single-char-property-change Return the position of previous text property or overlay change for a specific property. Scans characters backward from POSITION till it finds a change in the PROP property, then returns the position of the change. If the optional third argument OBJECT is a buffer (or nil, which means the current buffer), POSITION is a buffer position (integer or marker). If OBJECT is a string, POSITION is a 0-based index into it. In a string, scan runs to the start of the string, unless LIMIT is non-nil. In a buffer, if LIMIT is nil or omitted, it runs to (point-min), and the value cannot be less than that. If the optional fourth argument LIMIT is non-nil, don't search back past position LIMIT; return LIMIT if nothing is found before reaching LIMIT. The property values are compared with `eq'. If the property is constant all the way to the start of OBJECT, return the first valid position in OBJECT. (fn POSITION PROP &optional OBJECT LIMIT)Fnext-property-change Return the position of next property change. Scans characters forward from POSITION in OBJECT till it finds a change in some text property, then returns the position of the change. If the optional second argument OBJECT is a buffer (or nil, which means the current buffer), POSITION is a buffer position (integer or marker). If OBJECT is a string, POSITION is a 0-based index into it. Return nil if LIMIT is nil or omitted, and the property is constant all the way to the end of OBJECT; if the value is non-nil, it is a position greater than POSITION, never equal. If the optional third argument LIMIT is non-nil, don't search past position LIMIT; return LIMIT if nothing is found before LIMIT. (fn POSITION &optional OBJECT LIMIT)Fnext-single-property-change Return the position of next property change for a specific property. Scans characters forward from POSITION till it finds a change in the PROP property, then returns the position of the change. If the optional third argument OBJECT is a buffer (or nil, which means the current buffer), POSITION is a buffer position (integer or marker). If OBJECT is a string, POSITION is a 0-based index into it. The property values are compared with `eq'. Return nil if LIMIT is nil or omitted, and the property is constant all the way to the end of OBJECT; if the value is non-nil, it is a position greater than POSITION, never equal. If the optional fourth argument LIMIT is non-nil, don't search past position LIMIT; return LIMIT if nothing is found before LIMIT. (fn POSITION PROP &optional OBJECT LIMIT)Fprevious-property-change Return the position of previous property change. Scans characters backwards from POSITION in OBJECT till it finds a change in some text property, then returns the position of the change. If the optional second argument OBJECT is a buffer (or nil, which means the current buffer), POSITION is a buffer position (integer or marker). If OBJECT is a string, POSITION is a 0-based index into it. Return nil if LIMIT is nil or omitted, and the property is constant all the way to the start of OBJECT; if the value is non-nil, it is a position less than POSITION, never equal. If the optional third argument LIMIT is non-nil, don't search back past position LIMIT; return LIMIT if nothing is found until LIMIT. (fn POSITION &optional OBJECT LIMIT)Fprevious-single-property-change Return the position of previous property change for a specific property. Scans characters backward from POSITION till it finds a change in the PROP property, then returns the position of the change. If the optional third argument OBJECT is a buffer (or nil, which means the current buffer), POSITION is a buffer position (integer or marker). If OBJECT is a string, POSITION is a 0-based index into it. The property values are compared with `eq'. Return nil if LIMIT is nil or omitted, and the property is constant all the way to the start of OBJECT; if the value is non-nil, it is a position less than POSITION, never equal. If the optional fourth argument LIMIT is non-nil, don't search back past position LIMIT; return LIMIT if nothing is found until LIMIT. (fn POSITION PROP &optional OBJECT LIMIT)Fadd-text-properties Add properties to the text from START to END. The third argument PROPERTIES is a property list specifying the property values to add. If the optional fourth argument OBJECT is a buffer (or nil, which means the current buffer), START and END are buffer positions (integers or markers). If OBJECT is a string, START and END are 0-based indices into it. Return t if any property value actually changed, nil otherwise. (fn START END PROPERTIES &optional OBJECT)Fput-text-property Set one property of the text from START to END. The third and fourth arguments PROPERTY and VALUE specify the property to add. If the optional fifth argument OBJECT is a buffer (or nil, which means the current buffer), START and END are buffer positions (integers or markers). If OBJECT is a string, START and END are 0-based indices into it. (fn START END PROPERTY VALUE &optional OBJECT)Fset-text-properties Completely replace properties of text from START to END. The third argument PROPERTIES is the new property list. If the optional fourth argument OBJECT is a buffer (or nil, which means the current buffer), START and END are buffer positions (integers or markers). If OBJECT is a string, START and END are 0-based indices into it. If PROPERTIES is nil, the effect is to remove all properties from the designated part of OBJECT. (fn START END PROPERTIES &optional OBJECT)Fadd-face-text-property Add the face property to the text from START to END. FACE specifies the face to add. It should be a valid value of the `face' property (typically a face name or a plist of face attributes and values). If any text in the region already has a non-nil `face' property, those face(s) are retained. This is done by setting the `face' property to a list of faces, with FACE as the first element (by default) and the pre-existing faces as the remaining elements. If optional fourth argument APPEND is non-nil, append FACE to the end of the face list instead. If optional fifth argument OBJECT is a buffer (or nil, which means the current buffer), START and END are buffer positions (integers or markers). If OBJECT is a string, START and END are 0-based indices into it. (fn START END FACE &optional APPEND OBJECT)Fremove-text-properties Remove some properties from text from START to END. The third argument PROPERTIES is a property list whose property names specify the properties to remove. (The values stored in PROPERTIES are ignored.) If the optional fourth argument OBJECT is a buffer (or nil, which means the current buffer), START and END are buffer positions (integers or markers). If OBJECT is a string, START and END are 0-based indices into it. Return t if any property was actually removed, nil otherwise. Use `set-text-properties' if you want to remove all text properties. (fn START END PROPERTIES &optional OBJECT)Fremove-list-of-text-properties Remove some properties from text from START to END. The third argument LIST-OF-PROPERTIES is a list of property names to remove. If the optional fourth argument OBJECT is a buffer (or nil, which means the current buffer), START and END are buffer positions (integers or markers). If OBJECT is a string, START and END are 0-based indices into it. Return t if any property was actually removed, nil otherwise. (fn START END LIST-OF-PROPERTIES &optional OBJECT)Ftext-property-any Check text from START to END for property PROPERTY equaling VALUE. If so, return the position of the first character whose property PROPERTY is `eq' to VALUE. Otherwise return nil. If the optional fifth argument OBJECT is a buffer (or nil, which means the current buffer), START and END are buffer positions (integers or markers). If OBJECT is a string, START and END are 0-based indices into it. (fn START END PROPERTY VALUE &optional OBJECT)Ftext-property-not-all Check text from START to END for property PROPERTY not equaling VALUE. If so, return the position of the first character whose property PROPERTY is not `eq' to VALUE. Otherwise, return nil. If the optional fifth argument OBJECT is a buffer (or nil, which means the current buffer), START and END are buffer positions (integers or markers). If OBJECT is a string, START and END are 0-based indices into it. (fn START END PROPERTY VALUE &optional OBJECT)Vdefault-text-properties Property-list used as default values. The value of a property in this list is seen as the value for every character that does not have its own value for that property.Vchar-property-alias-alist Alist of alternative properties for properties without a value. Each element should look like (PROPERTY ALTERNATIVE1 ALTERNATIVE2...). If a piece of text has no direct value for a particular property, then this alist is consulted. If that property appears in the alist, then the first non-nil value from the associated alternative properties is returned.Vinhibit-point-motion-hooks If non-nil, don't run `point-left' and `point-entered' text properties. This also inhibits the use of the `intangible' text property.Vtext-property-default-nonsticky Alist of properties vs the corresponding non-stickiness. Each element has the form (PROPERTY . NONSTICKINESS). If a character in a buffer has PROPERTY, new text inserted adjacent to the character doesn't inherit PROPERTY if NONSTICKINESS is non-nil, inherits it if NONSTICKINESS is nil. The `front-sticky' and `rear-nonsticky' properties of the character override NONSTICKINESS.Scomposite.o Fclear-composition-cache Internal use only. Clear composition cache. (fn)Fcomposition-get-gstring Return a glyph-string for characters between FROM and TO. If the glyph string is for graphic display, FONT-OBJECT must be a font-object to use for those characters. Otherwise (for terminal display), FONT-OBJECT must be a terminal ID, a frame, or nil for the selected frame's terminal device. If the optional 4th argument STRING is not nil, it is a string containing the target characters between indices FROM and TO, which are treated as in `substring'. Otherwise FROM and TO are character positions in current buffer; they can be in either order, and can be integers or markers. A glyph-string is a vector containing information about how to display a specific character sequence. The format is: [HEADER ID GLYPH ...] HEADER is a vector of this form: [FONT-OBJECT CHAR ...] where FONT-OBJECT is a font-object for all glyphs in the glyph-string, or the terminal coding system of the specified terminal. CHARs are characters to be composed by GLYPHs. ID is an identification number of the glyph-string. It may be nil if not yet shaped. GLYPH is a vector whose elements have this form: [ FROM-IDX TO-IDX C CODE WIDTH LBEARING RBEARING ASCENT DESCENT [ [X-OFF Y-OFF WADJUST] | nil] ] where FROM-IDX and TO-IDX are used internally and should not be touched. C is the character of the glyph. CODE is the glyph-code of C in FONT-OBJECT. WIDTH thru DESCENT are the metrics (in pixels) of the glyph. X-OFF and Y-OFF are offsets to the base position for the glyph. WADJUST is the adjustment to the normal width of the glyph. If GLYPH is nil, the remaining elements of the glyph-string vector should be ignored. (fn FROM TO FONT-OBJECT STRING)Fcompose-region-internal Internal use only. Compose text in the region between START and END. Optional 3rd and 4th arguments are COMPONENTS and MODIFICATION-FUNC for the composition. See `compose-region' for more details. (fn START END &optional COMPONENTS MODIFICATION-FUNC)Fcompose-string-internal Internal use only. Compose text between indices START and END of STRING, where START and END are treated as in `substring'. Optional 4th and 5th arguments are COMPONENTS and MODIFICATION-FUNC for the composition. See `compose-string' for more details. (fn STRING START END &optional COMPONENTS MODIFICATION-FUNC)Ffind-composition-internal Internal use only. Return information about composition at or nearest to position POS. See `find-composition' for more details. (fn POS LIMIT STRING DETAIL-P)Fcomposition-sort-rules Sort composition RULES by their LOOKBACK parameter. If RULES include just one rule, return RULES. Otherwise, return a new list of rules where all the rules are arranged in decreasing order of the LOOKBACK parameter of the rules (the second element of the rule's vector). This is required when combining composition rules from different sources, because of the way buffer text is examined for matching one of the rules. (fn RULES)Vcompose-chars-after-function Function to adjust composition of buffer text. This function is called with three arguments: FROM, TO, and OBJECT. FROM and TO specify the range of text whose composition should be adjusted. OBJECT, if non-nil, is a string that contains the text. This function is called after a text with `composition' property is inserted or deleted to keep `composition' property of buffer text valid. The default value is the function `compose-chars-after'.Vauto-composition-mode Non-nil if Auto-Composition mode is enabled. Use the command `auto-composition-mode' to change this variable. If this variable is a string, `auto-composition-mode' will be disabled in buffers displayed on a terminal whose type, as reported by `tty-type', compares equal to that string.Vauto-composition-function Function to call to compose characters automatically. This function is called from the display engine with 6 arguments: FUNC, FROM, TO, FONT-OBJECT, STRING, and DIRECTION. FUNC is the function to compose characters. On text-mode display, FUNC is ignored and `compose-gstring-for-terminal' is used instead. If STRING is nil, the function must compose characters in the region between FROM and TO in the current buffer. Otherwise, STRING is a string, and FROM and TO are indices into the string. In this case, the function must compose characters in the string. FONT-OBJECT is the font to use, or nil if characters are to be composed on a text-mode display. DIRECTION is the bidi directionality of the text to shape. It could be L2R or R2L, or nil if unknown.Vcomposition-function-table Char-table of functions for automatic character composition. For each character that has to be composed automatically with preceding and/or following characters, this char-table contains a function to call to compose that character. The element at index C in the table, if non-nil, is a list of composition rules of the form ([PATTERN PREV-CHARS FUNC] ...); the rules must be specified in the descending order of PREV-CHARS values. PATTERN is a regular expression which C and the surrounding characters must match. PREV-CHARS is a non-negative integer (less than 4) specifying how many characters before C to check the matching with PATTERN. If it is 0, PATTERN must match C and the following characters. If it is 1, PATTERN must match a character before C and the following characters. If PREV-CHARS is 0, PATTERN can be nil, which means that the single character C should be composed. FUNC is a function to return a glyph-string representing a composition of the characters that match PATTERN. It is called with one argument GSTRING. GSTRING is a template of a glyph-string to return. It is already filled with a proper header for the characters to compose, and glyphs corresponding to those characters one by one. The function must return a new glyph-string with the same header as GSTRING, or modify GSTRING itself and return it. See also the documentation of `auto-composition-mode'.Vauto-composition-emoji-eligible-codepoints List of codepoints for which auto-composition will check for an emoji font. These are codepoints which have Emoji_Presentation = No, and thus by default are not displayed as emoji. In certain circumstances, such as when followed by U+FE0F (VS-16) the emoji font should be used for them anyway. This list is auto-generated, you should not need to modify it.Sxml.o Flibxml-parse-html-region Parse the region as an HTML document and return the parse tree. If START is nil, it defaults to `point-min'. If END is nil, it defaults to `point-max'. If BASE-URL is non-nil, it is used if and when reporting errors and warnings from the underlying libxml2 library. Currently, errors and warnings from the library are suppressed, so this argument is largely ignored. If you want comments to be stripped, use the `xml-remove-comments' function to strip comments before calling this function. (fn &optional START END BASE-URL DISCARD-COMMENTS)Flibxml-parse-xml-region Parse the region as an XML document and return the parse tree. If START is nil, it defaults to `point-min'. If END is nil, it defaults to `point-max'. If BASE-URL is non-nil, it is used if and when reporting errors and warnings from the underlying libxml2 library. Currently, errors and warnings from the library are suppressed, so this argument is largely ignored. If you want comments to be stripped, use the `xml-remove-comments' function to strip comments before calling this function. (fn &optional START END BASE-URL DISCARD-COMMENTS)Flibxml-available-p Return t if libxml2 support is available in this instance of Emacs. (fn)Slcms.o Flcms-cie-de2000 Compute CIEDE2000 metric distance between COLOR1 and COLOR2. Each color is a list of L*a*b* coordinates, where the L* channel ranges from 0 to 100, and the a* and b* channels range from -128 to 128. Optional arguments KL, KC, KH are weighting parameters for lightness, chroma, and hue, respectively. The parameters each default to 1. (fn COLOR1 COLOR2 &optional KL KC KH)Flcms-xyz->jch Convert CIE XYZ to CIE CAM02 JCh. COLOR is a list (X Y Z), with Y scaled about unity. Optional arguments WHITEPOINT and VIEW are the same as in `lcms-cam02-ucs', which see. (fn COLOR &optional WHITEPOINT VIEW)Flcms-jch->xyz Convert CIE CAM02 JCh to CIE XYZ. COLOR is a list (J C h), where lightness of white is equal to 100, and hue is given in degrees. Optional arguments WHITEPOINT and VIEW are the same as in `lcms-cam02-ucs', which see. (fn COLOR &optional WHITEPOINT VIEW)Flcms-jch->jab Convert CIE CAM02 JCh to CAM02-UCS J'a'b'. COLOR is a list (J C h) as described in `lcms-jch->xyz', which see. Optional arguments WHITEPOINT and VIEW are the same as in `lcms-cam02-ucs', which see. (fn COLOR &optional WHITEPOINT VIEW)Flcms-jab->jch Convert CAM02-UCS J'a'b' to CIE CAM02 JCh. COLOR is a list (J' a' b'), where white corresponds to lightness J equal to 100. Optional arguments WHITEPOINT and VIEW are the same as in `lcms-cam02-ucs', which see. (fn COLOR &optional WHITEPOINT VIEW)Flcms-cam02-ucs Compute CAM02-UCS metric distance between COLOR1 and COLOR2. Each color is a list of XYZ tristimulus values, with Y scaled about unity. Optional argument WHITEPOINT is the XYZ white point, which defaults to illuminant D65. Optional argument VIEW is a list containing the viewing conditions, and is of the form (YB LA SURROUND DVALUE) where SURROUND corresponds to 1 AVG_SURROUND 2 DIM_SURROUND 3 DARK_SURROUND 4 CUTSHEET_SURROUND The default viewing conditions are (20 100 1 1). (fn COLOR1 COLOR2 &optional WHITEPOINT VIEW)Flcms-temp->white-point Return XYZ black body chromaticity from TEMPERATURE given in K. Valid range of TEMPERATURE is from 4000K to 25000K. (fn TEMPERATURE)Flcms2-available-p Return t if lcms2 color calculations are available in this instance of Emacs. (fn)Sinotify.o Finotify-add-watch Add a watch for FILE-NAME to inotify. Return a watch descriptor. The watch will look for ASPECT events and invoke CALLBACK when an event occurs. ASPECT might be one of the following symbols or a list of those symbols: access attrib close-write close-nowrite create delete delete-self modify move-self moved-from moved-to open all-events or t move close ASPECT can also contain the following symbols, which control whether the watch descriptor will be created: dont-follow onlydir Watching a directory is not recursive. CALLBACK is passed a single argument EVENT which contains an event structure of the format (WATCH-DESCRIPTOR ASPECTS NAME COOKIE) WATCH-DESCRIPTOR is the same object that was returned by this function. It can be tested for equality using `equal'. ASPECTS describes the event. It is a list of ASPECT symbols described above and can also contain one of the following symbols ignored isdir q-overflow unmount If a directory is watched then NAME is the name of file that caused the event. COOKIE is an object that can be compared using `equal' to identify two matching renames (moved-from and moved-to). See inotify(7) and inotify_add_watch(2) for further information. The inotify fd is managed internally and there is no corresponding inotify_init. Use `inotify-rm-watch' to remove a watch. The following inotify bit-masks cannot be used because descriptors are shared across different callers. IN_EXCL_UNLINK IN_MASK_ADD IN_ONESHOT (fn FILENAME ASPECT CALLBACK)Finotify-rm-watch Remove an existing WATCH-DESCRIPTOR. WATCH-DESCRIPTOR should be an object returned by `inotify-add-watch'. See inotify_rm_watch(2) for more information. (fn WATCH-DESCRIPTOR)Finotify-valid-p Check a watch specified by its WATCH-DESCRIPTOR. WATCH-DESCRIPTOR should be an object returned by `inotify-add-watch'. A watch can become invalid if the file or directory it watches is deleted, or if the watcher thread exits abnormally for any other reason. Removing the watch by calling `inotify-rm-watch' also makes it invalid. (fn WATCH-DESCRIPTOR)Finotify-watch-list Return a copy of the internal watch_list. (fn WATCH-LIST)Finotify-allocated-p Return non-nil, if an inotify instance is allocated. (fn)Sprofiler.o Fprofiler-cpu-start Start or restart the cpu profiler. It takes call-stack samples each SAMPLING-INTERVAL nanoseconds, approximately. See also `profiler-log-size' and `profiler-max-stack-depth'. (fn SAMPLING-INTERVAL)Fprofiler-cpu-stop Stop the cpu profiler. The profiler log is not affected. Return non-nil if the profiler was running. (fn)Fprofiler-cpu-running-p Return non-nil if cpu profiler is running. (fn)Fprofiler-cpu-log Return the current cpu profiler log. The log is a hash-table mapping backtraces to counters which represent the amount of time spent at those points. Every backtrace is a vector of functions, where the last few elements may be nil. Before returning, a new log is allocated for future samples. (fn)Fprofiler-memory-start Start/restart the memory profiler. The memory profiler will take samples of the call-stack whenever a new allocation takes place. Note that most small allocations only trigger the profiler occasionally. See also `profiler-log-size' and `profiler-max-stack-depth'. (fn)Fprofiler-memory-stop Stop the memory profiler. The profiler log is not affected. Return non-nil if the profiler was running. (fn)Fprofiler-memory-running-p Return non-nil if memory profiler is running. (fn)Fprofiler-memory-log Return the current memory profiler log. The log is a hash-table mapping backtraces to counters which represent the amount of memory allocated at those points. Every backtrace is a vector of functions, where the last few elements may be nil. Before returning, a new log is allocated for future samples. (fn)Ffunction-equal Return non-nil if F1 and F2 come from the same source. Used to determine if different closures are just different instances of the same lambda expression, or are really unrelated function. (fn F1 F2)Vprofiler-max-stack-depth Number of elements from the call-stack recorded in the log.Vprofiler-log-size Number of distinct call-stacks that can be recorded in a profiler log. If the log gets full, some of the least-seen call-stacks will be evicted to make room for new entries.Sdecompress.o Fzlib-available-p Return t if zlib decompression is available in this instance of Emacs. (fn)Fzlib-decompress-region Decompress a gzip- or zlib-compressed region. Replace the text in the region by the decompressed data. If optional parameter ALLOW-PARTIAL is nil or omitted, then on failure, return nil and leave the data in place. Otherwise, return the number of bytes that were not decompressed and replace the region text by whatever data was successfully decompressed (similar to gzip). If decompression is completely successful return t. This function can be called only in unibyte buffers. (fn START END &optional ALLOW-PARTIAL)Sthread.o Fmake-mutex Create a mutex. A mutex provides a synchronization point for threads. Only one thread at a time can hold a mutex. Other threads attempting to acquire it will block until the mutex is available. A thread can acquire a mutex any number of times. NAME, if given, is used as the name of the mutex. The name is informational only. (fn &optional NAME)Fmutex-lock Acquire a mutex. If the current thread already owns MUTEX, increment the count and return. Otherwise, if no thread owns MUTEX, make the current thread own it. Otherwise, block until MUTEX is available, or until the current thread is signaled using `thread-signal'. Note that calls to `mutex-lock' and `mutex-unlock' must be paired. (fn MUTEX)Fmutex-unlock Release the mutex. If this thread does not own MUTEX, signal an error. Otherwise, decrement the mutex's count. If the count is zero, release MUTEX. (fn MUTEX)Fmutex-name Return the name of MUTEX. If no name was given when MUTEX was created, return nil. (fn MUTEX)Fmake-condition-variable Make a condition variable associated with MUTEX. A condition variable provides a way for a thread to sleep while waiting for a state change. MUTEX is the mutex associated with this condition variable. NAME, if given, is the name of this condition variable. The name is informational only. (fn MUTEX &optional NAME)Fcondition-wait Wait for the condition variable COND to be notified. COND is the condition variable to wait on. The mutex associated with COND must be held when this is called. It is an error if it is not held. This releases the mutex and waits for COND to be notified or for this thread to be signaled with `thread-signal'. When `condition-wait' returns, COND's mutex will again be locked by this thread. (fn COND)Fcondition-notify Notify COND, a condition variable. This wakes a thread waiting on COND. If ALL is non-nil, all waiting threads are awoken. The mutex associated with COND must be held when this is called. It is an error if it is not held. This releases COND's mutex when notifying COND. When `condition-notify' returns, the mutex will again be locked by this thread. (fn COND &optional ALL)Fcondition-mutex Return the mutex associated with condition variable COND. (fn COND)Fcondition-name Return the name of condition variable COND. If no name was given when COND was created, return nil. (fn COND)Fthread-yield Yield the CPU to another thread. (fn)Fmake-thread Start a new thread and run FUNCTION in it. When the function exits, the thread dies. If NAME is given, it must be a string; it names the new thread. (fn FUNCTION &optional NAME)Fcurrent-thread Return the current thread. (fn)Fthread-name Return the name of the THREAD. The name is the same object that was passed to `make-thread'. (fn THREAD)Fthread-signal Signal an error in a thread. This acts like `signal', but arranges for the signal to be raised in THREAD. If THREAD is the current thread, acts just like `signal'. This will interrupt a blocked call to `mutex-lock', `condition-wait', or `thread-join' in the target thread. If THREAD is the main thread, just the error message is shown. (fn THREAD ERROR-SYMBOL DATA)Fthread-live-p Return t if THREAD is alive, or nil if it has exited. (fn THREAD)Fthread--blocker Return the object that THREAD is blocking on. If THREAD is blocked in `thread-join' on a second thread, return that thread. If THREAD is blocked in `mutex-lock', return the mutex. If THREAD is blocked in `condition-wait', return the condition variable. Otherwise, if THREAD is not blocked, return nil. (fn THREAD)Fthread-join Wait for THREAD to exit. This blocks the current thread until THREAD exits or until the current thread is signaled. It returns the result of the THREAD function. It is an error for a thread to try to join itself. (fn THREAD)Fall-threads Return a list of all the live threads. (fn)Fthread-last-error Return the last error form recorded by a dying thread. If CLEANUP is non-nil, remove this error form from history. (fn &optional CLEANUP)Vmain-thread The main thread of Emacs.Ssysthread.o Ssqlite.o Fsqlite-open Open FILE as an sqlite database. If FILE is nil, an in-memory database will be opened instead. (fn &optional FILE)Fsqlite-close Close the sqlite database DB. (fn DB)Fsqlite-execute Execute a non-select SQL statement. If VALUES is non-nil, it should be a vector or a list of values to bind when executing a statement like insert into foo values (?, ?, ...) Value is the number of affected rows. (fn DB QUERY &optional VALUES)Fsqlite-select Select data from the database DB that matches QUERY. If VALUES is non-nil, it should be a list or a vector specifying the values that will be interpolated into a parameterized statement. By default, the return value is a list, whose contents depend on the value of the optional argument RETURN-TYPE. If RETURN-TYPE is nil or omitted, the function returns a list of rows matching QUERY. If RETURN-TYPE is `full', the function returns a list whose first element is the list of column names, and the rest of the elements are the rows matching QUERY. If RETURN-TYPE is `set', the function returns a set object that can be queried with functions like `sqlite-next' etc., in order to get the data. (fn DB QUERY &optional VALUES RETURN-TYPE)Fsqlite-transaction Start a transaction in DB. (fn DB)Fsqlite-commit Commit a transaction in DB. (fn DB)Fsqlite-rollback Roll back a transaction in DB. (fn DB)Fsqlite-pragma Execute PRAGMA in DB. (fn DB PRAGMA)Fsqlite-load-extension Load an SQlite MODULE into DB. MODULE should be the name of an SQlite module's file, a shared library in the system-dependent format and having a system-dependent file-name extension. Only modules on Emacs' list of allowed modules can be loaded. (fn DB MODULE)Fsqlite-next Return the next result set from SET. Return nil when the statement has finished executing successfully. (fn SET)Fsqlite-columns Return the column names of SET. (fn SET)Fsqlite-more-p Say whether there are any further results in SET. (fn SET)Fsqlite-finalize Mark this SET as being finished. This will free the resources held by SET. (fn SET)Fsqlite-version Return the version string of the SQLite library. Signal an error if SQLite support is not available. (fn)Fsqlitep Say whether OBJECT is an SQlite object. (fn OBJECT)Fsqlite-available-p Return t if sqlite3 support is available in this instance of Emacs. (fn)Streesit.o Ftreesit-language-available-p Return non-nil if LANGUAGE exists and is loadable. If DETAIL is non-nil, return (t . nil) when LANGUAGE is available, (nil . DATA) when unavailable. DATA is the signal data of `treesit-load-language-error'. (fn LANGUAGE &optional DETAIL)Ftreesit-library-abi-version Return the language ABI version of the tree-sitter library. By default, report the latest ABI version supported by the library for loading language support modules. The library is backward-compatible with language modules which use older ABI versions; if MIN-COMPATIBLE is non-nil, return the oldest compatible ABI version. (fn &optional MIN-COMPATIBLE)Ftreesit-language-abi-version Return the ABI version of the tree-sitter grammar for LANGUAGE. Return nil if a grammar library for LANGUAGE is not available. (fn &optional LANGUAGE)Ftreesit-parser-p Return t if OBJECT is a tree-sitter parser. (fn OBJECT)Ftreesit-node-p Return t if OBJECT is a tree-sitter node. (fn OBJECT)Ftreesit-compiled-query-p Return t if OBJECT is a compiled tree-sitter query. (fn OBJECT)Ftreesit-query-p Return t if OBJECT is a generic tree-sitter query. (fn OBJECT)Ftreesit-query-language Return the language of QUERY. QUERY has to be a compiled query. (fn QUERY)Ftreesit-node-parser Return the parser to which NODE belongs. (fn NODE)Ftreesit-parser-create Create and return a parser in BUFFER for LANGUAGE. The parser is automatically added to BUFFER's parser list, as returned by `treesit-parser-list'. LANGUAGE is a language symbol. If BUFFER is nil or omitted, it defaults to the current buffer. If BUFFER already has a parser for LANGUAGE, return that parser, but if NO-REUSE is non-nil, always create a new parser. If that buffer is an indirect buffer, its base buffer is used instead. That is, indirect buffers use their base buffer's parsers. Lisp programs should widen as necessary should they want to use a parser in an indirect buffer. (fn LANGUAGE &optional BUFFER NO-REUSE)Ftreesit-parser-delete Delete PARSER from its buffer's parser list. See `treesit-parser-list' for the buffer's parser list. (fn PARSER)Ftreesit-parser-list Return BUFFER's parser list. BUFFER defaults to the current buffer. If that buffer is an indirect buffer, its base buffer is used instead. That is, indirect buffers use their base buffer's parsers. (fn &optional BUFFER)Ftreesit-parser-buffer Return the buffer of PARSER. (fn PARSER)Ftreesit-parser-language Return PARSER's language symbol. This symbol is the one used to create the parser. (fn PARSER)Ftreesit-parser-root-node Return the root node of PARSER. (fn PARSER)Ftreesit-parser-set-included-ranges Limit PARSER to RANGES. RANGES is a list of (BEG . END), each (BEG . END) defines a region in which the parser should operate. Regions must not overlap, and the regions should come in order in the list. Signal `treesit-set-range-error' if the argument is invalid, or something else went wrong. If RANGES is nil, the PARSER is to parse the whole buffer. (fn PARSER RANGES)Ftreesit-parser-included-ranges Return the ranges set for PARSER. If no ranges are set for PARSER, return nil. See also `treesit-parser-set-included-ranges'. (fn PARSER)Ftreesit-parser-notifiers Return the list of after-change notifier functions for PARSER. (fn PARSER)Ftreesit-parser-add-notifier Add FUNCTION to the list of PARSER's after-change notifiers. FUNCTION must be a function symbol, rather than a lambda form. FUNCTION should take 2 arguments, RANGES and PARSER. RANGES is a list of cons cells of the form (START . END), where START and END are buffer positions. PARSER is the parser issuing the notification. (fn PARSER FUNCTION)Ftreesit-parser-remove-notifier Remove FUNCTION from the list of PARSER's after-change notifiers. FUNCTION must be a function symbol, rather than a lambda form. FUNCTION should take 2 arguments, RANGES and PARSER. RANGES is a list of cons of the form (START . END), where START and END are buffer positions. PARSER is the parser issuing the notification. (fn PARSER FUNCTION)Ftreesit-node-type Return the NODE's type as a string. If NODE is nil, return nil. (fn NODE)Ftreesit-node-start Return the NODE's start position in its buffer. If NODE is nil, return nil. (fn NODE)Ftreesit-node-end Return the NODE's end position in its buffer. If NODE is nil, return nil. (fn NODE)Ftreesit-node-string Return the string representation of NODE. If NODE is nil, return nil. (fn NODE)Ftreesit-node-parent Return the immediate parent of NODE. Return nil if NODE has no parent. If NODE is nil, return nil. (fn NODE)Ftreesit-node-child Return the Nth child of NODE. Return nil if there is no Nth child. If NAMED is non-nil, look for named child only. NAMED defaults to nil. If NODE is nil, return nil. N could be negative, e.g., -1 represents the last child. (fn NODE N &optional NAMED)Ftreesit-node-check Return non-nil if NODE has PROPERTY, nil otherwise. PROPERTY could be `named', `missing', `extra', `outdated', `has-error', or `live'. Named nodes correspond to named rules in the language definition, whereas "anonymous" nodes correspond to string literals in the language definition. Missing nodes are inserted by the parser in order to recover from certain kinds of syntax errors, i.e., should be there but not there. Extra nodes represent things like comments, which are not required the language definition, but can appear anywhere. A node is "outdated" if the parser has reparsed at least once after the node was created. A node "has error" if itself is a syntax error or contains any syntax errors. A node is "live" if its parser is not deleted and its buffer is live. (fn NODE PROPERTY)Ftreesit-node-field-name-for-child Return the field name of the Nth child of NODE. Return nil if there's no Nth child, or if it has no field. If NODE is nil, return nil. N counts all children, i.e., named ones and anonymous ones. N could be negative, e.g., -1 represents the last child. (fn NODE N)Ftreesit-node-child-count Return the number of children of NODE. If NAMED is non-nil, count named children only. NAMED defaults to nil. If NODE is nil, return nil. (fn NODE &optional NAMED)Ftreesit-node-child-by-field-name Return the child of NODE with FIELD-NAME. Return nil if there is no such child. If NODE is nil, return nil. (fn NODE FIELD-NAME)Ftreesit-node-next-sibling Return the next sibling of NODE. Return nil if there is no next sibling. If NAMED is non-nil, look for named siblings only. NAMED defaults to nil. If NODE is nil, return nil. (fn NODE &optional NAMED)Ftreesit-node-prev-sibling Return the previous sibling of NODE. Return nil if there is no previous sibling. If NAMED is non-nil, look for named siblings only. NAMED defaults to nil. If NODE is nil, return nil. (fn NODE &optional NAMED)Ftreesit-node-first-child-for-pos Return the first child of NODE for buffer position POS. Specifically, return the first child that extends beyond POS. Return nil if there is no such child. If NAMED is non-nil, look for named children only. NAMED defaults to nil. Note that this function returns an immediate child, not the smallest (grand)child. If NODE is nil, return nil. (fn NODE POS &optional NAMED)Ftreesit-node-descendant-for-range Return the smallest node that covers buffer positions BEG to END. The returned node is a descendant of NODE. Return nil if there is no such node. If NAMED is non-nil, look for named child only. NAMED defaults to nil. If NODE is nil, return nil. (fn NODE BEG END &optional NAMED)Ftreesit-node-eq Return non-nil if NODE1 and NODE2 refer to the same node. If any one of NODE1 and NODE2 is nil, return nil. This function uses the same equivalence metric as `equal', and returns non-nil if NODE1 and NODE2 refer to the same node in a syntax tree produced by tree-sitter. (fn NODE1 NODE2)Ftreesit-pattern-expand Expand PATTERN to its string form. PATTERN can be :anchor :? :* :+ :equal :match (TYPE PATTERN...) [PATTERN...] FIELD-NAME: @CAPTURE-NAME (_) _ "TYPE" See Info node `(elisp)Pattern Matching' for detailed explanation. (fn PATTERN)Ftreesit-query-expand Expand sexp QUERY to its string form. A PATTERN in QUERY can be :anchor :? :* :+ :equal :match (TYPE PATTERN...) [PATTERN...] FIELD-NAME: @CAPTURE-NAME (_) _ "TYPE" See Info node `(elisp)Pattern Matching' for detailed explanation. (fn QUERY)Ftreesit-query-compile Compile QUERY to a compiled query. Querying with a compiled query is much faster than an uncompiled one. LANGUAGE is the language this query is for. If EAGER is non-nil, immediately load LANGUAGE and compile the query. Otherwise defer the compilation until the query is first used. Signal `treesit-query-error' if QUERY is malformed or something else goes wrong. (This only happens if EAGER is non-nil.) You can use `treesit-query-validate' to validate and debug a query. (fn LANGUAGE QUERY &optional EAGER)Ftreesit-query-capture Query NODE with patterns in QUERY. Return a list of (CAPTURE_NAME . NODE). CAPTURE_NAME is the name assigned to the node in PATTERN. NODE is the captured node. QUERY is either a string query, a sexp query, or a compiled query. See Info node `(elisp)Pattern Matching' for how to write a query in either string or sexp form. When using repeatedly, a compiled query is much faster than a string or sexp one, so it is recommend to compile your query if it will be used repeatedly. BEG and END, if both non-nil, specify the region of buffer positions in which the query is executed. Any matching node whose span overlaps with the region between BEG and END are captured, it doesn't have to be completely in the region. If NODE-ONLY is non-nil, return a list of nodes. Besides a node, NODE can also be a parser, in which case the root node of that parser is used. NODE can also be a language symbol, in which case the root node of a parser for that language is used. If such a parser doesn't exist, it is created. Signal `treesit-query-error' if QUERY is malformed or something else goes wrong. You can use `treesit-query-validate' to validate and debug the query. (fn NODE QUERY &optional BEG END NODE-ONLY)Ftreesit-search-subtree Traverse the parse tree of NODE depth-first using PREDICATE. Traverse the subtree of NODE, and match PREDICATE with each node along the way. PREDICATE is a regexp string that matches against each node's type, or a function that takes a node and returns nil/non-nil. By default, only traverse named nodes, but if ALL is non-nil, traverse all nodes. If BACKWARD is non-nil, traverse backwards. If DEPTH is non-nil, only traverse nodes up to that number of levels down in the tree. If DEPTH is nil, default to 1000. Return the first matched node, or nil if none matches. (fn NODE PREDICATE &optional BACKWARD ALL DEPTH)Ftreesit-search-forward Search for node matching PREDICATE in the parse tree of START. Start traversing the tree from node START, and match PREDICATE with each node (except START itself) along the way. PREDICATE is a regexp string that matches against each node's type, or a function that takes a node and returns non-nil if it matches. By default, only search for named nodes, but if ALL is non-nil, search for all nodes. If BACKWARD is non-nil, search backwards. Return the first matched node, or nil if none matches. For a tree like below, where START is marked by S, traverse as numbered from 1 to 12: 12 | S--------3----------11 | | | o--o-+--o 1--+--2 6--+-----10 | | | | o o +-+-+ +--+--+ | | | | | 4 5 7 8 9 Note that this function doesn't traverse the subtree of START, and it always traverse leaf nodes first, then upwards. (fn START PREDICATE &optional BACKWARD ALL)Ftreesit-induce-sparse-tree Create a sparse tree of ROOT's subtree. This takes the subtree under ROOT, and combs it so only the nodes that match PREDICATE are left, like picking out grapes on the vine. PREDICATE is a regexp string that matches against each node's type. For a subtree on the left that consist of both numbers and letters, if PREDICATE is "is letter", the returned tree is the one on the right. a a a | | | +---+---+ +---+---+ +---+---+ | | | | | | | | | b 1 2 b | | b c d | | => | | => | c +--+ c + e | | | | | +--+ d 4 +--+ d | | | e 5 e If PROCESS-FN is non-nil, it should be a function of one argument. In that case, instead of returning the matched nodes, pass each node to PROCESS-FN, and use its return value instead. If non-nil, DEPTH is the number of levels to go down the tree from ROOT. If DEPTH is nil or omitted, it defaults to 1000. Each node in the returned tree looks like (NODE . (CHILD ...)). The root of this tree might be nil, if ROOT doesn't match PREDICATE. If no node matches PREDICATE, return nil. PREDICATE can also be a function that takes a node and returns nil/non-nil, but it is slower and more memory consuming than using a regexp. (fn ROOT PREDICATE &optional PROCESS-FN DEPTH)Ftreesit-subtree-stat Return information about the subtree of NODE. Return a list (MAX-DEPTH MAX-WIDTH COUNT), where MAX-DEPTH is the maximum depth of the subtree, MAX-WIDTH is the maximum number of direct children of nodes in the subtree, and COUNT is the number of nodes in the subtree, including NODE. (fn NODE)Ftreesit-available-p Return non-nil if tree-sitter support is built-in and available. (fn)Vtreesit-load-name-override-list An override list for unconventional tree-sitter libraries. By default, Emacs assumes the dynamic library for LANG is libtree-sitter-LANG.EXT, where EXT is the OS specific extension for dynamic libraries. Emacs also assumes that the name of the C function the library provides is tree_sitter_LANG. If that is not the case, you can add an entry (LANG LIBRARY-BASE-NAME FUNCTION-NAME) to this list, where LIBRARY-BASE-NAME is the filename of the dynamic library without the file-name extension, and FUNCTION-NAME is the function provided by the library.Vtreesit-extra-load-path Additional directories to look for tree-sitter language definitions. The value should be a list of directories. When trying to load a tree-sitter language definition, Emacs first looks in the directories mentioned in this variable, then in the `tree-sitter' subdirectory of `user-emacs-directory', and then in the system default locations for dynamic libraries, in that order.Sitree.o