Now on revision 107772. ------------------------------------------------------------ revno: 107772 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-04-04 23:54:40 -0700 message: NEWS typo fix and punctuation tweaks diff: === modified file 'etc/NEWS' --- etc/NEWS 2012-04-05 04:29:22 +0000 +++ etc/NEWS 2012-04-05 06:54:40 +0000 @@ -95,7 +95,7 @@ *** New option `completion-cycle-threshold' allows completion cycling. *** New option `completion-category-overrides' for overriding the -default completion style in certain cirucmstances. +default completion style in certain circumstances. *** New completion style `substring'. @@ -829,14 +829,14 @@ *** pc-mode.el is obsolete (CUA mode is much more comprehensive). -*** pgg is obsolete (use EasyPG instead) +*** pgg is obsolete (use EasyPG instead). *** sregex.el is obsolete, since rx.el is a strict superset. *** s-region.el and pc-select.el are obsolete. They are superseded by shift-select-mode, enabled by default since 23.1. -*** vc-mcvs.el is obsolete (for lack of a maintainer) +*** vc-mcvs.el is obsolete (for lack of a maintainer). ** Miscellaneous @@ -989,7 +989,7 @@ *** `frame-update-faces' (not needed) *** `frame-update-face-colors' (`frame-set-background-mode') *** `x-frob-font-weight' and `x-frob-font-slant' (`make-face-*' functions) -*** `x-make-font-bold and x-make-font-demibold (make-face-bold) +*** `x-make-font-bold and x-make-font-demibold (`make-face-bold') *** `x-make-font-italic' and `x-make-font-oblique' (`make-face-italic') *** `x-make-font-bold-italic' (`make-face-bold-italic') *** `x-make-font-unbold' (`make-face-unbold') ------------------------------------------------------------ revno: 107771 committer: Chong Yidong branch nick: trunk timestamp: Thu 2012-04-05 12:29:22 +0800 message: NEWS copyedits. Remove +++/--- lines. diff: === modified file 'etc/NEWS' --- etc/NEWS 2012-04-04 15:32:59 +0000 +++ etc/NEWS 2012-04-05 04:29:22 +0000 @@ -14,84 +14,64 @@ You can narrow news to a specific version by calling `view-emacs-news' with a prefix argument or by typing C-u C-h C-n. - -Temporary note: - +++ indicates that the appropriate manual has already been updated. - --- means no change in the manuals is called for. -When you add a new item, please add it without either +++ or --- -so we will look at it and add it to the manual. - * Installation Changes in Emacs 24.1 ---- ** Emacs can be compiled with Gtk+ 3.0 if you pass --with-x-toolkit=gtk3 to configure. Note that other libraries used by Emacs, RSVG and GConf, also depend on Gtk+. You can disable them with --without-rsvg and --without-gconf. ---- ** Emacs can be compiled with GnuTLS support. This happens by default if a suitably recent version of the library is found at build time. To prevent this, use the configure option `--without-gnutls'. See below for GnuTLS features. ---- ** Emacs can be compiled with SELinux support. This happens by default if a suitably recent version of the library is found at build time. To prevent this, use the configure option `--without-selinux'. See below for SELinux features. ---- ** Emacs can be compiled with ImageMagick support. This happens by default if a suitably recent version of the library is found at build time. To prevent this, use the configure option `--without-imagemagick'. See below for ImageMagick features. This feature is not available for the Nextstep or MS ports. ---- ** Emacs can be compiled with libxml2 support. This happens by default if a suitably recent version of the library is found at build time. To prevent this, use the configure option `--without-xml2'. See below for libxml2 features. ---- ** By default, the installed Info and man pages are compressed. You can disable this by configuring --without-compress-info. ---- ** New configure option --with-wide-int. With it, Emacs integers typically have 62 bits, even on 32-bit machines. On 32-bit hosts, this raises the limit on buffer sizes from about 512 MiB to about 2 GiB. ---- ** New configure options: --with-mmdf, --with-mail-unlink, --with-mailhost. These provide no new functionality, they just remove the need to edit lib-src/Makefile by hand in order to use the associated features. ---- ** New configure option --enable-use-lisp-union-type. This is only useful for Emacs developers to debug certain types of bugs. This is not a new feature; only the configure flag is new. ---- ** The standalone programs digest-doc and sorted-doc are removed. Emacs now uses Lisp commands `doc-file-to-man' and `doc-file-to-info'. ---- ** The standalone program `fakemail' is removed. If you need it, feedmail.el provides a superset of the functionality. * Startup Changes in Emacs 24.1 ---- ** The --unibyte, --multibyte, --no-multibyte, and --no-unibyte command line arguments, and the EMACS_UNIBYTE environment variable, no longer have any effect. (They were declared obsolete in Emacs 23.) -+++ ** New command line option `--no-site-lisp' removes site-lisp directories from load-path. -Q now implies this. This option does not affect the EMACSLOADPATH environment variable (and hence has no effect for @@ -103,101 +83,90 @@ ** Completion *** Shell mode uses pcomplete rules, with the standard completion UI. -+++ -*** Many packages have been changed to use `completion-at-point' -rather than their own completion code. -+++ + +*** Many packages now use the `completion-at-point' command, +rather than implementing separate completion commands. + *** `completion-at-point' now handles tags and semantic completion. ---- + *** Completion in a non-minibuffer now tries to detect the end of completion and pops down the *Completions* buffer accordingly. -+++ -*** Completion can cycle, depending on `completion-cycle-threshold'. -+++ + +*** New option `completion-cycle-threshold' allows completion cycling. + +*** New option `completion-category-overrides' for overriding the +default completion style in certain cirucmstances. + *** New completion style `substring'. -+++ -*** Completion style can be set per-category `completion-category-overrides'. -+++ -*** Completion of buffers now uses substring completion by default. ---- -*** The `widget-complete-field' option has been removed. + +*** Completion of buffer names uses `substring' completion by default. + +*** The option `widget-complete-field' has been removed. ** Mail changes -+++ + *** The first time you try sending mail, Emacs asks for a mail method. This is implemented by a new default for `send-mail-function', which is `sendmail-query-once'. This offers to use the smtpmail package, or to use the old defaults relying on external mail facilities (`sendmail-send-it' on GNU/Linux and other Unix-like systems, and `mailclient-send-it' on Windows). -+++ + *** Typing C-c m in the buffer made by M-x report-emacs-bug transfers the report to your desktop's preferred mail client, if there is one. This uses either the "xdg-email" utility, or Mac OS's "open" command. ---- + *** See Changes in Specialized Modes and Packages for SMTPmail changes and Mail mode changes ** Emacs server and client changes -+++ + *** New option `server-port' specifies the port for TCP Emacs servers. -+++ + *** New emacsclient argument -q/--quiet suppresses some status messages. -+++ + *** New emacsclient argument --frame-parameters specifies the frame parameters of any newly-created graphical frame. -+++ -*** If emacsclient shuts down as a result of Emacs signaling an -error, its exit status is 1. -+++ + +*** If emacsclient shuts down due to Emacs signaling an error, +its exit status is 1. + *** New emacsclient argument --parent-id ID. This opens a client frame in parent X window ID, via XEmbed, similar to the --parent-id argument to Emacs. ** Internationalization changes -+++ *** Emacs now supports display and editing of bidirectional text. Right-to-left (RTL) scripts, such as Arabic, Farsi, and Hebrew, are displayed in the correct visual order as expected by users of those -scripts. This display reordering is a "full bidirectionality" class -implementation of the Unicode Bidirectional Algorithm. Buffers with -no RTL text should look exactly the same as before. +scripts. The display reordering is a "full bidirectionality" class +implementation of the Unicode Bidirectional Algorithm (UBA). Buffers +with no RTL text should look exactly the same as before. -+++ **** New buffer-local variable `bidi-display-reordering'. To disable display reordering in a buffer, change this to nil. -+++ **** New buffer-local variable `bidi-paragraph-direction'. If nil (the default), Emacs determines the base direction of each -paragraph from its text, as specified by the Unicode Bidirectional -Algorithm. Setting the value to `right-to-left' or `left-to-right' -forces a base direction on each paragraph. +paragraph from its text, as specified by the UBA. Setting the value +to `right-to-left' or `left-to-right' forces a base direction on each +paragraph. Paragraphs with right-to-left base direction are displayed starting at the right window edge. -+++ -*** Enhanced support for characters with no glyphs in available fonts. -If a character has no glyphs in any of the available fonts, Emacs -normally displays it either as a hexadecimal code in a box or as a -thin 1-pixel space. In addition to these two methods, Emacs can -display these characters as empty box, as an acronym, or not display -them at all. To change how these characters are displayed, customize -the variable `glyphless-char-display-control'. - -On character terminals, these methods are used for characters that -cannot be encoded by the `terminal-coding-system'. - ---- +*** Enhanced support for characters with no glyphs in available fonts, +or, on text terminals, characters that cannot be encoded by the +terminal coding system. The new option `glyphless-char-display-control' +specifies how to display them: as a hexadecimal code in a box, a thin +1-pixel space, an empty box, etc. + *** New input methods: farsi, farsi-translit, bulgarian-alt-phonetic. -+++ *** `nobreak-char-display' now also highlights Unicode hyphen chars (U+2010 and U+2011). ---- *** New Hebrew translation of the Emacs Tutorial. Type `C-u C-h t' to choose it in case your language setup doesn't automatically select it. @@ -205,165 +174,150 @@ ** An Emacs Lisp package manager is now included. This is a convenient way to download and install additional packages, from a package repository at http://elpa.gnu.org. -+++ + *** M-x list-packages shows a list of packages, which can be selected for installation. -+++ + *** New command `describe-package', bound to `C-h P'. -+++ + *** By default, all installed packages are loaded automatically when Emacs starts up. To disable this, set `package-enable-at-startup' to nil. To specify the packages to load, customize `package-load-list'. -** Custom Themes -+++ +** Custom theme changes + *** New command `M-x customize-themes', which provides a convenient interface for enabling and disabling Custom themes. -+++ + *** New option `custom-theme-load-path' is the load path for themes. -Emacs no longer looks for custom themes in `load-path'. The default -is to search in `custom-theme-directory', followed by a built-in theme -directory named "themes/" in `data-directory'. -+++ +Emacs no longer looks for Custom themes in `load-path'. The default +value of `custom-theme-load-path' says to look for themes in +`custom-theme-directory', followed by a subdirectory of +`data-directory' named "themes/", which contains a small selection of +built-in Custom themes. + *** New option `custom-safe-themes' records known-safe theme files. If a theme is not in this list, Emacs queries before loading it, and offers to save the theme to `custom-safe-themes' automatically. By default, all themes included in Emacs are treated as safe. ** Improved GTK integration -+++ + *** GTK scroll-bars are now placed on the right by default. -Use `set-scroll-bar-mode' to change this. -+++ +The function `set-scroll-bar-mode' can change this. + *** GTK tool bars can have just text, just images or images and text. -Customize `tool-bar-style' to choose style. On a Gnome desktop, the -default is taken from desktop settings. ---- -*** GTK tool bars can be placed on the left/right or top/bottom of the frame. +Customize `tool-bar-style' to choose the style. On a Gnome desktop, +the default is taken from desktop settings. + +*** GTK tool bars can be placed on any edge of the frame. The frame-parameter tool-bar-position controls this. It takes the values top, left, right or bottom. The Options => Show/Hide menu has entries for this. -+++ + *** The default colors for selected text (the `region' face) are taken from the GTK theme when Emacs is built with GTK. -+++ + *** Emacs uses GTK tooltips by default if built with GTK. You can disable this by changing `x-gtk-use-system-tooltips' to nil. +** Graphical interface changes + +*** On graphical displays, the mode-line no longer ends in dashes. +Also, the first dash (which does not indicate anything) is just +displayed as a space. + +*** `menu-bar-select-buffer-function' lets you choose another operation +instead of `switch-to-buffer' when selecting an item in the Buffers menu. + +*** Lucid menus and dialogs can display antialiased fonts if Emacs is +built with Xft. These fonts can be set via X resources, for example: +Emacs.pane.menubar.font: Courier-12 + ** Exiting changes -+++ + *** Emacs now calls `kill-emacs' if it receives SIGTERM or SIGHUP, -and also if it receives a SIGINT signal in batch mode. -+++ +or if it receives a SIGINT signal in batch mode. + *** `kill-emacs-hook' is now also run in batch mode. Third-party code which adds to `kill-emacs-hook' should check if they do the right thing in batch mode. ** Scrolling changes -+++ + *** New scrolling commands `scroll-up-command' and `scroll-down-command' (bound to C-v/[next] and M-v/[prior]) do not signal errors at top/bottom of buffer at first key-press (instead they move to top/bottom of buffer) when `scroll-error-top-bottom' is non-nil. -+++ -*** New variable `scroll-error-top-bottom' (see above). -+++ + +*** New option `scroll-error-top-bottom' (see above). + *** New scrolling commands `scroll-up-line' and `scroll-down-line' scroll a line instead of full screen. -+++ + *** New property `scroll-command' should be set on a command's symbol to define it as a scroll command affected by `scroll-preserve-screen-position'. -+++ + *** If you customize `scroll-conservatively' to a value greater than 100, Emacs will never recenter point in the window when it scrolls due to cursor motion commands or commands that move point (e.f., `M-g M-g'). Previously, you needed to use `most-positive-fixnum' as the value of `scroll-conservatively' to achieve the same effect. ---- + *** "Aggressive" scrolling now honors the scroll margins. If you customize `scroll-up-aggressively' or `scroll-down-aggressively' and move point off the window, Emacs now scrolls the window so as to avoid positioning point inside the scroll margin. -+++ ** Basic SELinux support has been added. This requires Emacs to be linked with libselinux at build time. -+++ -*** Emacs preserves the SELinux file context when backing up, and -optionally when copying files. The function `copy-file' has an extra -optional argument for preserving SELinux context, and the return value -of `backup-buffer' now includes the SELinux context. +*** Emacs preserves the SELinux file context when backing up. +Also, the function `copy-file' has an extra optional argument for +preserving SELinux context, and the return value of `backup-buffer' +now includes the SELinux context. -+++ -*** The new functions file-selinux-context and set-file-selinux-context +*** New functions `file-selinux-context' and `set-file-selinux-context' get and set the SELinux context of a file. ** Trash changes -+++ + *** `delete-by-moving-to-trash' now only affects commands that specify trashing. This avoids inadvertently trashing temporary files. -+++ + *** Calling `delete-file' or `delete-directory' with a prefix argument now forces true deletion, regardless of `delete-by-moving-to-trash'. ** File- and directory-local variable changes -+++ + *** You can stop directory local vars from applying to subdirectories. Add an element (subdirs . nil) to the alist portion of any variables settings to indicate that the section should not apply to subdirectories. -+++ + *** Directory local variables can apply to some file-less buffers. Affected modes include dired, vc-dir, and log-edit. For example, adding "(diff-mode . ((mode . whitespace)))" to .dir-locals.el will turn on `whitespace-mode' for *vc-diff* buffers. Modes should call `hack-dir-local-variables-non-file-buffer' to support this. -+++ + *** Using "mode: MINOR-MODE" to enable a minor mode is deprecated. Instead, use "eval: (minor-mode 1)". -+++ *** The variable `inhibit-first-line-modes-regexps' has been renamed to `inhibit-local-variables-regexps'. As the name suggests, it now -applies to ALL file local variables, not just -*- mode ones. -The associated `inhibit-first-line-modes-suffixes' has been renamed -in the corresponding way. - -** Graphical interface changes -+++ -*** On graphical displays, the mode-line no longer ends in dashes. -Also, the first dash (which does not indicate anything) is just -displayed as a space. ---- -*** `menu-bar-select-buffer-function' lets you choose another operation -instead of `switch-to-buffer' when selecting an item in the Buffers menu. ---- -*** Lucid menus and dialogs can display antialiased fonts if Emacs is -built with Xft. These fonts can be set via X resources, for example: -Emacs.pane.menubar.font: Courier-12 - -+++ -** New basic faces `error', `warning', `success'. -These are used to highlight text indicating failure, caution or -successful operation. - -+++ -** New option `list-colors-sort' defines the color sort order -for `list-colors-display'. - -+++ -** The variable `focus-follows-mouse' now always defaults to nil. +applies to ALL file local variables, not just -*- lines. The +associated `inhibit-first-line-modes-suffixes' has been renamed in the +corresponding way. ** Window changes -+++ *** Resizing an Emacs frame now preserves proportional window sizes, modulo restrictions like window minimum sizes and fixed-size windows. *** The behavior of `display-buffer' is now customizable in detail. -+++ + **** New option `display-buffer-base-action' specifies a list of user-determined display "actions" (functions and optional arguments for choosing the displaying window). @@ -371,91 +325,90 @@ This takes precedence over the default display action, which is specified by `display-buffer-fallback-action'. -+++ **** New option `display-buffer-alist' maps buffer name regexps to display actions, taking precedence over `display-buffer-base-action'. -+++ *** New option `window-combination-limit'. The new option `window-combination-limit' allows to return the space obtained for resizing or creating a window more reliably to the window from which such space was obtained. -+++ *** New option `window-combination-resize'. The new option `window-combination-resize' allows to split a window that otherwise cannot be split because it's too small by stealing space from other windows in the same combination. Subsequent resizing or deletion of the window will resize all windows in the same combination as well. -+++ *** New commands `maximize-window' and `minimize-window'. These maximize and minimize the size of a window within its frame. -+++ *** New commands `switch-to-prev-buffer' and `switch-to-next-buffer'. These functions allow to navigate through the live buffers that have been shown in a specific window. ** Minibuffer changes -+++ + *** The inactive minibuffer has its own major mode `minibuffer-inactive-mode'. This is handy for minibuffer-only frames, and is also used for the feature where mouse-1 pops up *Messages*"', which can now easily be changed. ---- *** Minibuffers set `truncate-lines' to nil. If you want to change the value to something else, you could use for example `minibuffer-setup-hook'. -+++ ** `auto-mode-case-fold' is now enabled by default. -+++ ** `backup-by-copying-when-mismatch' now defaults to t. +** New basic faces `error', `warning', `success'. +These are used to highlight text indicating failure, caution or +successful operation. + +** New option `list-colors-sort' defines the color sort order +for `list-colors-display'. + +** The variable `focus-follows-mouse' now always defaults to nil. + * Editing Changes in Emacs 24.1 ** Search changes -+++ -*** C-y in Isearch is now bound to isearch-yank-kill, instead of -isearch-yank-line. -+++ -*** M-y in Isearch is now bound to isearch-yank-pop, instead of -isearch-yank-kill. -+++ -*** M-s C-e in Isearch is now bound to isearch-yank-line. - -+++ + +*** C-y in Isearch is now bound to `isearch-yank-kill', instead of +`isearch-yank-line'. + +*** M-y in Isearch is now bound to `isearch-yank-pop', instead of +`isearch-yank-kill'. + +*** M-s C-e in Isearch is now bound to `isearch-yank-line'. + ** New commands `count-words-region' and `count-words'. -+++ + *** M-= is bound to `count-words-region', not `count-lines-region'. The `count-words-region' command, when called interactively, reports the number of lines, words, and characters in the region. It is a superset of the old `count-lines-region', which is now an obsolete alias for it. -+++ ** The command `just-one-space' (M-SPC), if given a negative argument, also deletes newlines around point. ** Deletion changes -+++ + *** New option `delete-active-region'. If non-nil, [delete] and DEL delete the region if it is active and no -prefix argument is given. If set to `kill', these commands kill +prefix argument is given. If set to `kill', those commands kill instead. -+++ + *** New command `delete-forward-char', bound to [delete]. This is meant for interactive use, and obeys `delete-active-region'. The command `delete-char' does not obey `delete-active-region'. ---- + *** `delete-backward-char' is now a Lisp function. Apart from obeying `delete-active-region', its behavior is unchanged. However, the byte compiler now warns if it is called from Lisp; Lisp callers should use delete-char with a negative argument instead. ---- + *** The option `mouse-region-delete-keys' has been deleted. ** Selection changes. @@ -468,166 +421,150 @@ In the following, we provide a list of these changes, followed by a list of steps to get the old behavior back if you prefer that. -+++ *** `select-active-regions' now defaults to t. Merely selecting text (e.g. with drag-mouse-1) no longer puts it in the kill ring. The selected text is put in the primary selection, if the system possesses a separate primary selection facility (e.g. X). -+++ **** `select-active-regions' also accepts a new value, `only'. This means to only set the primary selection for temporarily active regions (usually made by mouse-dragging or shift-selection); "ordinary" active regions, such as those made with C-SPC followed by point motion, do not alter the primary selection. ---- **** `mouse-drag-copy-region' now defaults to nil. -+++ *** mouse-2 is now bound to `mouse-yank-primary'. This pastes from the primary selection, ignoring the kill-ring. Previously, mouse-2 was bound to `mouse-yank-at-click'. -+++ + *** `x-select-enable-clipboard' now defaults to t on all platforms. -+++ + *** `x-select-enable-primary' now defaults to nil. Thus, commands that kill text or copy it to the kill-ring (such as M-w, C-w, and C-k) also use the clipboard---not the primary selection. ---- **** The "Copy", "Cut", and "Paste" items in the "Edit" menu are now -exactly equivalent to, respectively M-w, C-w, and C-y. +exactly equivalent to M-w, C-w, and C-y respectively. ---- **** Note that on MS-Windows, `x-select-enable-clipboard' was already non-nil by default, as Windows does not support the primary selection between applications. ---- *** To return to the previous behavior, do the following: + **** Change `select-active-regions' to nil. **** Change `mouse-drag-copy-region' to t. **** Change `x-select-enable-primary' to t (on X only). **** Change `x-select-enable-clipboard' to nil. **** Bind `mouse-yank-at-click' to mouse-2. -+++ *** Support for X cut buffers has been removed. -+++ + *** X clipboard managers are now supported. To inhibit this, change `x-select-enable-clipboard-manager' to nil. -+++ -** New command `rectangle-number-lines', bound to `C-x r N', numbers -the lines in the current rectangle. With a prefix argument, this -prompts for a number to count from and for a format string. +** New command `C-x r N' (`rectangle-number-lines') numbers the lines +in the current rectangle. With a prefix argument, this prompts for a +number to count from and for a format string. -+++ ** `redisplay-dont-pause' now defaults to t. This makes Emacs feel more responsive to editing commands that arrive at high rate, e.g. if you lean on some key, because stopping redisplay in the middle (when this variable is nil) forces more expensive updates later on, and Emacs appears to be unable to keep up. -+++ ** The behavior of for active regions in Text mode has changed. In Text and related modes, typing (`indent-for-tab-command') when the region is active causes Emacs to indent all the lines in the region, aligning them with the line previous to the first line in the region (or with the left margin if there is no previous line). +** When `occur' is called with a prefix argument, matching strings are +collected into the `*Occur*' buffer without line numbers. If there +are parenthesized subexpressions in the specified regexp, `occur' +reads replacement text that may contain \\& and \\N whose convention +follows `replace-match'. + * Changes in Specialized Modes and Packages in Emacs 24.1 -+++ ** Archive Mode has basic support for browsing and updating 7z archives. ** BibTeX mode ---- + *** BibTeX mode now supports biblatex. Use the variable `bibtex-dialect' to select different BibTeX dialects. `bibtex-entry-field-alist' is now an obsolete alias for `bibtex-BibTeX-entry-alist'. ---- -*** New command `bibtex-search-entries' bound to C-c C-a. ---- +*** New command `bibtex-search-entries', bound to C-c C-a. + *** New `bibtex-entry-format' option `sort-fields', disabled by default. ---- + *** New variable `bibtex-search-entry-globally'. ** Browse-url -+++ + *** New option `browse-url-mailto-function' specifies how to handle "mailto:"s. ---- + *** The default browser used by the package is now the "xdg-open" program, on platforms that support it. This calls your desktop's preferred browser. ** Calendar, Diary, and Appt -+++ *** Diary entries can contain non-printing "comments". See the variable `diary-comment-start'. -+++ *** Appointments can specify their individual warning times. See the variable `appt-warning-time-regexp'. ---- *** The function specified by `appt-disp-window-function' may be passed lists of arguments if multiple appointments are due at similar times. If you are using a custom function for this, you should update it. -+++ *** New function `diary-hebrew-birthday'. ---- *** Elements of `calendar-day-abbrev-array' and `calendar-month-abbrev-array' may no longer be nil, but must all be strings. ---- *** The obsolete (since Emacs 22.1) method of enabling the appt package by adding `appt-make-list' to `diary-hook' has been removed. Use `appt-activate' instead. ---- *** Some appt variables (obsolete since Emacs 22.1) have been removed: appt-issue-message (use the function appt-activate) appt-visible/appt-msg-window (use the variable appt-display-format) ---- *** Some diary function aliases (obsolete since Emacs 22.1) have been removed: view-diary-entries, list-diary-entries, show-all-diary-entries -+++ ** CC Mode + *** New feature to "guess" the style in an existing buffer. The main entry point is M-x c-guess. *** Java Mode now supports Java 5.0 (Tiger) and 6 (Mustang). -*** c-beginning-of-defun and c-end-of-defun now respect nested scopes: +*** `c-beginning-of-defun' and `c-end-of-defun' now respect nested scopes. Thus C-M-a will, by default, go to the beginning of the immediate function, not the top level. -*** "Macros with semicolon" can be registered, for correct indentation. +*** "Macros with semicolons" can be registered for correct indentation. Where such a macro ends a line (no semicolon) the next statement is no longer parsed as a statement continuation. -** comint and modes derived from it use the generic completion code. +** Comint and modes derived from it use the standard completion code. ** Compilation mode ---- + *** Compilation mode can be used without Font Lock mode. `compilation-parse-errors-function' is now obsolete. ---- -*** New variable `compilation-filter-start', bound while +*** New variable `compilation-filter-start', which is bound while `compilation-filter-hook' runs. It records the start position of the text inserted by `compilation-filter'. ---- *** `compilation-error-screen-columns' and `compilation-first-column' are obeyed in the editing buffer. So programming language modes can set them, whereas previously only the value in the *Compilation* @@ -635,51 +572,40 @@ ** Customize -+++ *** Customize buffers now contain a search field. The search is performed using `customize-apropos'. To turn off the search field, set `custom-search-field' to nil. -+++ *** Custom options now start out hidden if at their default values. Use the arrow to the left of the option name to toggle visibility. ---- *** custom-buffer-sort-alphabetically now defaults to t. -+++ *** The color widget now has a "Choose" button, which allows you to choose a color via `list-colors-display'. ** D-Bus -+++ *** It is now possible to access buses other than the default system or session bus. -+++ *** The `dbus-register-method' and `dbus-register-property' functions optionally do not register names. -+++ *** The new function `dbus-register-service' registers a known service -name on a D-Bus without simultaneously registering a property or a -method. +name on a D-Bus without also registering a property or a method. ** Dired-x ---- *** C-x C-j (`dired-jump') and C-x 4 C-j (`dired-jump-other-window'), if called with a prefix argument, read a file name from the minibuffer instead of using the current buffer. -+++ *** The "dired local variables" feature of Dired-x is obsolete. The standard directory local variables feature replaces it. ** ERC changes ---- *** New options `erc-autojoin-timing' and `erc-autojoin-delay', controlling attempts to autojoin a channel. @@ -690,104 +616,91 @@ ** Eshell changes ---- *** The default value of `eshell-directory-name' has changed to be an "eshell" directory in `user-emacs-directory'. The old "~/.eshell/" directory is still used if it exists, though. ** gdb-mi -+++ -*** The GDB User Interface has been migrated to GDB Machine Interface. + +*** The M-x gdb command now uses the GDB Machine Interface protocol. It now supports multithread non-stop debugging and simultaneous debugging of several threads. ** Image mode -+++ *** RET (`image-toggle-animation') toggles animation, if applicable. Animation plays once, unless the option `image-animate-loop' is non-nil. ** Info -+++ *** New command M-x info-display-manual displays a named Info manual. If that manual is already visited in some Info buffer, it displays that buffer. (This is handy if you have many manuals in many *info* buffers, and don't remember the name of the buffer visiting the manual you want to consult.) Otherwise, it loads and displays the manual. -+++ *** `e' is now bound to `end-of-buffer' rather than to `Info-edit'. This is for compatibility with the stand-alone Info reader program, and also because `Info-edit' is a rarely used command that is disabled by default. ** Mail mode changes (not Message mode) -+++ + *** New command M-x mail-add-attachment for adding MIME attachments ---- -*** The command `mail-attach-file' was renamed to `mail-insert-file' -(its name is misleading, since it has nothing to do with MIME -attachments). The old name is now an obsolete alias to the new name. - -+++ + +*** The command M-x mail-attach-file was renamed to M-x mail-insert-file. +(Its name is misleading, since it has nothing to do with MIME +attachments.) The old name is now an obsolete alias to the new name. + ** MH-E has been upgraded to MH-E version 8.3.1. See MH-E-NEWS for details. ---- ** Modula-2 mode provides auto-indentation. ---- ** mpc.el: Can use pseudo tags of the form tag1|tag2 as a union of two tags. -+++ ** nXML mode no longer binds C-RET to `nxml-complete'. -Completion is now performed via `completion-at-point', bound to M-TAB. -If `nxml-bind-meta-tab-to-complete-flag' is non-nil (the default), -this performs tag completion. +Completion is now performed via `completion-at-point', bound to C-M-i +or M-TAB. If `nxml-bind-meta-tab-to-complete-flag' is non-nil (the +default), this performs tag completion. ---- ** Prolog mode has been completely revamped, with lots of additional functionality such as more intelligent indentation, electricity, support for more variants, including Mercury, and a lot more. ** Rmail -+++ *** The command `rmail-epa-decrypt' decrypts OpenPGP data in the Rmail incoming message. ---- *** The variable `rmail-message-filter' no longer has any effect. This change was made in Emacs 23.1 but was not advertised at the time. Try using `rmail-show-message-hook' instead. ** Shell mode -+++ -*** Shell mode uses pcomplete rules, with the standard completion UI. -+++ -*** The `shell' command prompts for the shell path name if the default -directory is a remote file name and neither the environment variable -$ESHELL nor the variable `explicit-shell-file-name' is set. + +*** M-x shell prompts for the shell path name if the default directory +is a remote file name and neither the environment variable $ESHELL nor +the variable `explicit-shell-file-name' is set. + +*** TAB is now bound to the standard `completion-at-point' command, +which now implements the pcomplete rules for shell command completion. ** SMTPmail -+++ -*** smtpmail now uses encrypted connections (via STARTTLS) by default +*** SMTPmail now uses encrypted connections (via STARTTLS) by default if the mail server supports them. This uses either built-in GnuTLS support, or the starttls.el library. Customize `smtpmail-stream-type' to change this. -+++ *** The variable `smtpmail-auth-credentials' has been removed. By default, the information is now stored in the file ~/.authinfo. -This was the default value of smtpmail-auth-credentials. -If you had customized smtpmail-auth-credentials to a list of user -names and passwords, those settings will not be used. Your first -connection to the smtp server will prompt for the user name and password, -and then offer to save them to the ~/.authinfo file. Or you can -manually copy the credentials to your ~/.authinfo files. For example, -if you had +This was the default value of smtpmail-auth-credentials. If you had +customized smtpmail-auth-credentials to a list of user names and +passwords, those settings are not used. During your first connection +to the smtp server, Emacs will prompt for the user name and password, +and offer to save them to ~/.authinfo. Or you can manually copy the +credentials to ~/.authinfo. For example, if you had (setq smtpmail-auth-credentials '(("mail.example.org" 25 "jim" "s!cret"))) @@ -799,39 +712,31 @@ See the auth-source manual for more information, e.g. on encrypting the credentials file. -+++ *** The variable `smtpmail-starttls-credentials' has been removed. - -If you had that set, then you need to put +If you had that set, you need to put machine smtp.whatever.foo port 25 key "~/.my_smtp_tls.key" cert "~/.my_smtp_tls.cert" in your ~/.authinfo file instead. ---- ** SQL mode ---- *** New options `sql-port', `sql-connection-alist', `sql-send-terminator', and `sql-oracle-scan-on'. ---- -*** New custom variables control prompting for login parameters. +*** New options controlling prompting for login parameters. Each supported product has a custom variable `sql-*-login-params', which is a list of the parameters to be prompted for before a connection is established. ---- *** The command `sql-product-interactive' now takes a prefix argument, which causes it to prompt for an SQL product. ---- *** Product-specific SQL interactive commands now take prefix arguments. These commands (`sql-sqlite', `sql-postgres', `sql-mysql', etc.), given a prefix argument, prompt for a name for the SQL interactive buffer. This reduces the need for calling `sql-rename-buffer'. ---- *** SQL interactive modes suppress command continuation prompts, and replace tabs with spaces. The first change impacts multiple line SQL statements entered with C-j between each line, statements yanked into @@ -839,72 +744,61 @@ second prevents the MySQL and Postgres interpreters from listing object name completions when sent text via `sql-send-*' functions. ---- *** New command `sql-connect' starts a predefined SQLi session, using the login parameters from `sql-connection-alist'. ---- *** New "Save Connection" menu item in SQLi buffers. This gathers the login params specified for the SQLi session, if it was not started by a connection, and saves them as a new connection. ---- *** New commands for listing database objects and details: sql-list-all and sql-list-table. ---- *** An API for manipulating SQL product definitions has been added. ** TeX modes -+++ *** latex-electric-env-pair-mode keeps \begin..\end matched on the fly. ** Tramp ---- + *** New inline access method "ksu" (kerberized su). ---- + *** The following access methods are discontinued: "ssh1_old", "ssh2_old", "scp1_old", "scp2_old", "imap", "imaps" and "fish". -+++ + *** The user option `remote-file-name-inhibit-cache' controls whether remote file attributes are cached for better performance. ---- + *** The option `ange-ftp-binary-file-name-regexp' has changed its default value to "". ---- + *** Handlers for `file-selinux-context' and `set-file-selinux-context' for remote machines which support SELinux. -+++ -** New function, `url-queue-retrieve', which behaves like url-retrieve, +** New function `url-queue-retrieve', which behaves like url-retrieve, but with limits (`url-queue-parallel-processes', `url-queue-timeout') on the degree of parallelism. ** VC and related modes -+++ *** Support for pulling on distributed version control systems. The command C-x v + (`vc-pull') runs a "pull" operation, if it is supported (currently with Bzr, Git, and Mercurial), to update the current branch and working tree. A prefix argument means to prompt the user for specifics, e.g. a pull location. ---- *** `vc-update' is now an alias for `vc-pull'. -+++ *** Support for merging on distributed version control systems. The command C-x v m (`vc-merge') now runs a "merge" operation, if it is supported (currently with Bzr, Git, and Mercurial), to merge changes from another branch into the current one. It prompts for specifics, e.g. a merge source. -+++ *** New option `vc-revert-show-diff' controls whether `vc-revert' shows a diff while querying the user. It defaults to t. -+++ *** Log entries in some Log View buffers can be toggled to display a longer description by typing RET (log-view-toggle-entry-display). This is currently supported for Bzr, Git, and Mercurial (to support @@ -912,25 +806,20 @@ In the Log View buffers made by C-x v L (`vc-print-root-log'), you can use this to display the full log entry for the revision at point. -+++ *** New command `vc-ediff' allows visual comparison of two revisions of a file similar to `vc-diff', but using ediff backend. -+++ *** The option `vc-initial-comment' was removed in Emacs 23.2, but this was not advertised at the time. -+++ *** `vc-toggle-read-only' is an obsolete alias for `toggle-read-only'. Since Emacs 23, it has done the same thing as `toggle-read-only', but this was not advertised at the time. ** Obsolete modes ---- *** abbrevlist.el ---- *** erc-hecomplete.el (use erc-pcomplete.el instead) *** partial-completion-mode (complete.el) is obsolete. @@ -938,95 +827,69 @@ (setq completion-styles '(partial-completion initials)) (setq completion-pcm-complete-word-inserts-delimiters t) ---- *** pc-mode.el is obsolete (CUA mode is much more comprehensive). -+++ *** pgg is obsolete (use EasyPG instead) ---- *** sregex.el is obsolete, since rx.el is a strict superset. ---- *** s-region.el and pc-select.el are obsolete. They are superseded by shift-select-mode, enabled by default since 23.1. -+++ *** vc-mcvs.el is obsolete (for lack of a maintainer) ** Miscellaneous -+++ *** The Landmark game is now invoked with `landmark', not `lm'. Its functions and variables have been similarly renamed. ---- -*** In `ido-file-completion-map', C-v is no longer bound to ido-toggle-vc. +*** In `ido-file-completion-map', C-v is no longer bound to `ido-toggle-vc'. (This interfered with cua-mode.) -+++ *** f90.el has some support for Fortran 2008 syntax. ---- *** `copyright-fix-years' can optionally convert consecutive years to ranges. -+++ *** New command `nato-region' converts text to NATO phonetic alphabet. * New Modes and Packages in Emacs 24.1 -+++ ** Occur Edit mode applies edits made in *Occur* buffers to the original buffers. It is bound to "e" in Occur mode. -** When `occur' is called with the prefix argument `C-u' -the matching strings are collected into the `*Occur*' buffer -without line numbers. If there are parenthesized subexpressions -in the specified regexp, `occur' reads replacement text that -may contain \\& and \\N whose convention follows `replace-match'. - -+++ ** New global minor mode electric-pair-mode. When enabled, typing an open parenthesis automatically inserts the matching closing one. -+++ ** New global minor mode electric-indent-mode. When enabled, typing certain characters triggers reindentation. Major modes wishing to use this can set electric-indent-chars or electric-indent-functions. -+++ ** New global minor mode electric-layout-mode. When enabled, typing certain characters automatically inserts newlines. Major modes wishing to use this can set electric-layout-rules. -+++ ** tabulated-list.el provides a generic major mode for tabulated data, from which other modes can be derived. ** pcase.el provides the ML-style pattern matching macro `pcase'. -+++ ** secrets.el is an implementation of the Secret Service API, an interface to password managers like GNOME Keyring or KDE Wallet. The Secret Service API requires D-Bus for communication. The command `secrets-show-secrets' offers a buffer with a visualization of the secrets. -+++ ** notifications.el provides an implementation of the Desktop Notifications API. It requires D-Bus for communication. ---- ** soap-client.el supports access to SOAP web services from Emacs. soap-inspect.el is an interactive inspector for SOAP WSDL structures. ---- ** New generic mode, xmodmap-generic-mode, for xmodmap files. ---- ** New emacs-lock.el package. The previous version has been moved to obsolete/old-emacs-lock.el. Now, there is a proper minor mode `emacs-lock-mode'. Protection @@ -1037,44 +900,38 @@ * Incompatible Lisp Changes in Emacs 24.1 -+++ ** Passing a nil argument to a minor mode function call now ENABLES the minor mode unconditionally. This is so that you can write e.g. - (add-hook 'text-mode-hook 'foo-minor-mode) - -to enable foo-minor-mode in Text mode buffers, removing the need for -`turn-on-foo-minor-mode' style functions. This affects all mode -commands defined by `define-minor-mode'. If called interactively, the -mode command still toggles the minor mode. - -+++ + (add-hook 'text-mode-hook 'foo-mode) + +to enable foo-mode in Text mode buffers, removing the need for +`turn-on-foo-mode' style functions. This affects all mode commands +defined by `define-minor-mode'. If called interactively, the mode +command still toggles the minor mode. + ** The return value of `backup-buffer' has changed. It is now a list of three elements, where the second element is a list describing the original file's SELinux context. If Emacs or the system lacks SELinux support, the context list is (nil nil nil nil). See "Basic SELinux support" above, under "Changes in Emacs 24.1". ---- -** `char-direction-table' and the associated function `char-direction' -were deleted. They were buggy and inferior to the new support of -bidirectional editing introduced in Emacs 24. If you need the -bidirectional properties of a character, use `get-char-code-property' -with the last argument `bidi-class'. +** `char-direction-table' and the `char-direction' function were deleted. +They were buggy and inferior to the new support of bidirectional +editing introduced in Emacs 24. If you need the bidirectional +properties of a character, use `get-char-code-property' with the last +argument `bidi-class'. -+++ ** `copy-directory' now copies the source directory as a subdirectory of the target directory, if the latter is an existing directory. The new optional arg COPY-CONTENTS, if non-nil, makes the function copy the contents directly into a pre-existing target directory. -+++ ** For mouse click input events in the text area, the Y pixel coordinate in the POSITION list now counts from the top of the text area, excluding any header line. Previously, it counted from the top of the header line. ---- ** Support for "old-style" backquotes, obsolete for 10+ years, has been further reduced. Now a backquote not followed by a space is always treated as a "new-style" backquote. Please remove all @@ -1089,19 +946,16 @@ you should write [(control ?,)] and [(control ?')], which will work in older Emacsen too. -+++ ** The macro `eval-at-startup' was removed in Emacs 23.2, but this was not advertised at the time. The function `custom-initialize-delay' replaced all known uses. ---- ** `view-buffer' now treats special mode-class in the same way that `view-file' has since Emacs 22 (i.e. it won't enable View mode if the major mode is special). ** Menu and tool bar changes -+++ *** During startup, Emacs no longer adds entries for `menu-bar-lines' and `tool-bar-lines' to `default-frame-alist' and `initial-frame-alist'. With these alist entries omitted, `make-frame' checks the value of the @@ -1109,25 +963,20 @@ a menu-bar or tool-bar, respectively. If the alist entries are added, they override the value of `menu-bar-mode'/`tool-bar-mode'. -+++ *** The menu bar bindings's caches are not used any more. Use (where-is-internal nil t) instead. -+++ ** Regions created by mouse dragging are now normal active regions, -similar to the ones created by shift-selection (see Selection changes +similar to those created by shift-selection (see Selection changes above). In previous Emacs versions, these regions were delineated by `mouse-drag-overlay'; that variable has been removed. -+++ ** The fourth argument of `filter-buffer-substring' has been removed. If you want to remove text properties from the final result, simply pass the result through substring-no-properties. ---- ** cl.el no longer provides `cl-19'. -+++ ** The following obsolete functions and aliases have been removed (the appropriate new function is given in parentheses; "not needed" means you can just remove all calls to the function in question): @@ -1154,7 +1003,6 @@ *** `set-screen-height' (`set-frame-height') *** `set-screen-width' (`set-frame-width') -+++ ** The following obsolete variables and varaliases have been removed (the appropriate new variable is given in parentheses): @@ -1164,17 +1012,14 @@ *** `font-lock-defaults-alist' (`font-lock-defaults') *** `e' (`float-e'). ---- ** The following obsolete files were removed: sc.el, x-menu.el, rnews.el, rnewspost.el ---- ** The format of the finder-inf.el file has changed, since the Finder mechanism is now based on the package system. The variable `finder-package-info' is replaced by `package--builtins' and `finder-keywords-hash'. ---- ** When generating autoloads, `update-directory-autoloads' no longer assumes every inspected file is in your `load-path'. It instead generates relative names according to the current `load-path'. @@ -1182,112 +1027,111 @@ * Lisp changes in Emacs 24.1 -+++ ** Code can now use lexical scoping by default instead of dynamic scoping. -The `lexical-binding' variable lets code use lexical scoping for local +The `lexical-binding' variable enables lexical scoping for local variables. It is typically set via a file-local variable in the first -line of the file, in which case it applies to all the code in that file. -+++ +line of the file, in which case it applies to all the code in that +file. + *** `eval' takes a new optional argument `lexical' to choose the new lexical binding instead of the old dynamic binding mode. -+++ + *** Lexically scoped interpreted functions are represented with a new form of function value which looks like (closure ENV ARGS &rest BODY). *** New macro `letrec' to define recursive local functions. -+++ + +*** `defvar' and `defconst' now mark the variable as special (dynamic). +So do `defcustom' and other forms that call `defvar' as a subroutine. + *** New function `special-variable-p' to check whether a variable is declared as dynamically bound. -+++ ** An Emacs Lisp testing tool is now included. Emacs Lisp developers can use this tool to write automated tests for their code. See the ERT info manual for details. ** Changes for bidirectional display and editing -+++ *** New function `current-bidi-paragraph-direction'. This returns the base direction of the paragraph at point. -+++ *** New function `bidi-string-mark-left-to-right'. -Given a string containing characters from right-to-left (RTL) scripts, -this function returns another string which can be safely inserted into -a buffer, such that any following text will be always displayed to the +Given a string containing characters from right-to-left scripts, this +function returns another string which can be safely inserted into a +buffer, such that any following text will be always displayed to the right of that string. (This works by appending an invisible Unicode "LEFT-TO-RIGHT MARK" character if the argument string might need it.) This is useful when the buffer has overall left-to-right paragraph -direction and you need to insert a string whose contents and -directionality are not known in advance, without disrupting the layout -of the line. +direction and you need to insert a string whose contents are not known +in advance, without disrupting the layout of the line. ** Window changes -+++ + *** Window tree functions are accessible in Elisp. Functions are provided to return the parent, siblings or child windows of any window including internal windows (windows not associated with a buffer) in the window tree. -+++ + **** New function `window-valid-p' gives non-nil for live and internal windows. -+++ + **** Window manipulation can deal with internal windows. Many window handling functions like `split-window', `delete-window', or `delete-other-windows' as well as the window resizing functions can now act on any window including internal ones. -+++ + *** window-total-height/-width vs window-body-height/-width. The function `window-height' has been renamed to `window-total-height' and `window-width' has been renamed to `window-body-width'. The old names are provided as aliases. Two new functions `window-total-width' and `window-body-height' are provided. -+++ + *** Window parameters specific to window handling functions. For each window you can specify a parameter to override the default behavior of a number of functions like `split-window', `delete-window' and `delete-other-windows'. The variable `ignore-window-parameters' allows to ignore processing such parameters. -+++ + *** New semantics of third argument of `split-window'. The third argument of `split-window' has been renamed to SIDE and can be set to any of the values 'below, 'right, 'above, or 'left to make the new window appear on the corresponding side of the window that shall be split. Any other value of SIDE will cause `split-window' to split the window into two side-by-side windows as before. -+++ + *** Window resizing functions. A new standard function for resizing windows called `window-resize' has been introduced. This and all other functions for resizing windows no longer delete any windows when they become too small. -+++ + *** Deleting the selected window now selects the most recently selected live window on that frame instead. -+++ + *** `adjust-window-trailing-edge' adjustments. `adjust-window-trailing-edge' can now deal with fixed-size windows and is able to resize other windows if a window adjacent to the trailing edge cannot be shrunk any more. This makes its behavior more similar to that of Emacs 21 without compromising, however, its inability to delete windows which was introduced in Emacs 22. -+++ + *** Window-local buffer lists. Windows now have local buffer lists. This means that removing a buffer from display in a window will preferably show the buffer previously shown in that window with its previous window-start and window-point positions. This also means that the same buffer may be automatically shown twice even if it already appears in another window. -+++ + *** `switch-to-buffer' has a new optional argument FORCE-SAME-WINDOW, which if non-nil requires the buffer to be displayed in the currently selected window, signaling an error otherwise. If nil, another window can be used, e.g. if the selected one is strongly dedicated. -+++ + *** `split-window-vertically' and `split-window-horizontally' renamed to `split-window-below' and `split-window-right' respectively. The old names are kept as aliases. -+++ + *** Display actions **** The second arg to `display-buffer' and `pop-to-buffer' is now @@ -1305,17 +1149,14 @@ See the docstring of `display-buffer' for details. -+++ *** New behavior of `quit-window'. The behavior of `quit-window' has been changed in order to restore the state before the last buffer display operation in that window. -+++ *** The new option `frame-auto-hide-function' lets you choose between iconifying or deleting a frame when burying a buffer shown in a dedicated frame or quitting a window showing a buffer in a frame of its own. -+++ *** New functions `window-state-get' and `window-state-put'. These functions allow to save and restore the state of an arbitrary frame or window as an Elisp object. @@ -1330,7 +1171,6 @@ *** Functions on `completion-at-point-functions' can return any of the properties valid for `completion-extra-properties'. -+++ *** `completion-annotate-function' is obsolete. *** New `metadata' method for completion tables. The metadata thus returned @@ -1348,75 +1188,67 @@ *** New variable `completing-read-function' allows overriding the behavior of `completing-read'. -+++ ** `glyphless-char-display' can now distinguish between graphical and text terminal display, via a char-table entry that is a cons cell. -+++ ** `pre-command-hook'/`post-command-hook' are not reset to nil on error. Instead, the offending function is removed. ** New hook types -+++ *** New function `run-hook-wrapped' for running an abnormal hook by passing the hook functions as arguments to a "wrapping" function. Like `run-hook-with-args-until-success', it stops at the first non-nil return value. -+++ *** New macro `with-wrapper-hook' for running an abnormal hook as a set of "wrapping" filters, similar to around advice. (A version of this macro was actually added in Emacs 23.2 but was not advertised at the time.) ** Debugger changes -+++ + *** New macro `condition-case-unless-debug' (this was actually added in Emacs 23.1 as condition-case-no-debug, but not advertised) -+++ + *** The macro `with-demoted-errors' was added in Emacs 23.1, but not advertised. ---- + *** Variable `stack-trace-on-error' removed. -+++ + *** The debugger can now "continue" from an error, which means it will jump to the error handler as if the debugger had not been invoked instead of jumping all the way to the top-level. -+++ + *** Set `debug-on-event' to enter the debugger on events like SIGUSR1. This can be useful when `inhibit-quit' is set. -+++ ** The new function `server-eval-at' allows evaluation of Lisp forms on named Emacs server instances. -+++ ** `call-process' and `call-process-region' allow a `(:file "file")' spec to redirect STDOUT to a file. -+++ ** The function `format-time-string' now supports the %N directive, for higher-resolution time stamps. ** New input reading functions -+++ + *** New function `read-char-choice' reads a restricted set of characters, discarding any inputs not inside the set. -+++ + *** The command `read-color' now requires a match for a color name or RGB triplet, instead of signaling an error if the user provides invalid input. ---- + **** `facemenu-read-color' is now an alias for `read-color'. -+++ ** `image-library-alist' is renamed to `dynamic-library-alist'. The variable is now used to load all kind of supported dynamic libraries, not just image libraries. The previous name is still available as an obsolete alias. ** Syntax parsing changes -+++ + *** New variable `syntax-propertize-function'. This replaces `font-lock-syntactic-keywords' which is now obsolete. This allows syntax-table properties to be set independently from font-lock: @@ -1426,72 +1258,61 @@ syntax-propertize-via-font-lock to reuse old font-lock-syntactic-keywords as-is; and syntax-propertize-rules which provides a new way to specify syntactic rules. -+++ + *** Syntax tables support a new "comment style c" additionally to style b. -+++ ** New hook `post-self-insert-hook', run after `self-insert-command'. ---- ** frame-local variables cannot be let-bound any more. ** Major and minor mode changes -+++ + *** `set-auto-mode' now respects mode: local variables at the end of files, as well as those in the -*- line. -+++ + *** `prog-mode' is a new major mode from which programming modes should be derived. -+++ + **** `prog-mode-hook' can be used to enable features for programming modes, e.g. (add-hook 'prog-mode-hook 'flyspell-prog-mode) to enable on-the-fly spell checking for comments and strings. -+++ + *** New hook `change-major-mode-after-body-hook', run by `run-mode-hooks' just before any other mode hooks. -+++ + *** Enabled globalized minor modes can be disabled in specific major modes. If the global mode is global-FOO-mode, then run (FOO-mode -1) in the major mode's hook, where FOO-mode toggles the mode on a per-buffer basis. -+++ + *** `define-minor-mode' accepts new keywords :variable, :after-hook. ** File-handling changes -+++ *** `delete-file' and `delete-directory' now accept optional arg TRASH. Trashing is performed if TRASH and `delete-by-moving-to-trash' are both non-nil. Interactively, TRASH defaults to t, unless a prefix argument is supplied (see Trash changes, above). -+++ *** New file predicates: `file-equal-p', `file-in-directory-p'. -+++ ** Tool-bars can display separators. Tool-bar separators are handled like menu separators in menu-bar maps, i.e. via menu entries of the form `(menu-item "--")'. ** Image API -+++ *** Animated images support (currently animated gifs only). -+++ **** `image-animated-p' returns non-nil if an image can be animated. -+++ **** `image-animate' animates a supplied image spec. -+++ **** `image-animate-timer' returns the timer object for an image that is being animated. ---- *** `image-extension-data' has been renamed to `image-metadata'. The old name is an obsolete alias to the new one. -+++ *** Image mode can view any image type that ImageMagick supports. This requires Emacs to be built with ImageMagick support. @@ -1506,19 +1327,16 @@ **** New option `imagemagick-types-inhibit' excludes certain ImageMagick image types from `imagemagick-register-types'. ---- **** With ImageMagick support, there are extra Image mode commands to resize and rotate images: `image-transform-fit-to-height', `image-transform-fit-to-width', `image-transform-set-rotation', and `image-transform-set-scale'. ---- ** `compose-mail' now accepts an optional 8th arg, RETURN-ACTION, and passes it to the mail user agent function. This argument specifies an action for returning to the caller after finishing with the mail. For example, this is used by Rmail to optionally delete a mail window. -+++ ** XML and HTML parsing If Emacs is compiled with libxml2 support, there are two new functions: `libxml-parse-html-region' (which parses "real world" HTML) @@ -1527,7 +1345,6 @@ ** Networking and encryption changes -+++ *** `open-network-stream' can now be used to open an encrypted stream. It now accepts an optional `:type' parameter for initiating a TLS connection, directly or via STARTTLS. To do STARTTLS, additional @@ -1535,26 +1352,22 @@ must also be supplied. *** New library gnutls.el. - -If Emacs is built with GnuTLS support, the function -`gnutls-available-p' is defined and returns non-nil. The main entry -points are `open-gnutls-stream' and `gnutls-negotiate'. It's easiest -to use these functions through `open-network-stream', because that can +The new function `gnutls-available-p' returns non-nil if Emacs is +built with GnuTLS support. The main entry points are +`open-gnutls-stream' and `gnutls-negotiate'. It's easiest to use +these functions through `open-network-stream', because that can upgrade connections through STARTTLS opportunistically or use plain SSL, depending on your needs. For debugging, set `gnutls-log-level' greater than 0. -+++ *** New primitive `secure-hash' that supports many secure hash algorithms: md5, sha1, sha2, sha224, sha256, sha384, and sha512. The lisp library sha1.el has been removed. The `sha1' feature is provided by default. ** Isearch ---- *** New hook `isearch-update-post-hook' that runs in `isearch-update'. -+++ ** Progress reporters can now "spin". The MIN-VALUE and MAX-VALUE arguments of `make-progress-reporter' can now be nil, or omitted. This makes a "non-numeric" reporter. Each @@ -1562,11 +1375,9 @@ with a nil or omitted VALUE argument, the reporter message is displayed with a "spinning bar". -+++ ** New variable `revert-buffer-in-progress-p' is true while a buffer is being reverted, even if the buffer has a local `revert-buffer-function'. -+++ ** New variables `delayed-warnings-list' and `delayed-warnings-hook'. If delayed-warnings-list is non-nil, the command loop calls `delayed-warnings-hook' after `post-command-hook'. At present, this @@ -1574,81 +1385,62 @@ startup, which might otherwise not be noticed. This uses the functions `display-delayed-warnings' and `collapse-delayed-warnings'. ---- ** rx.el has a new `group-n' construct for explicitly numbered groups. -+++ ** New function `make-composed-keymap' that constructs a new keymap from multiple input maps. You can use this to make a keymap that inherits from multiple maps, eg: (set-keymap-parent newmap (make-composed-keymap othermap parent)) -+++ ** New function `string-prefix-p'. (This was actually added in Emacs 23.2 but was not advertised at the time.) -+++ ** New reader macro ## that stands for the empty symbol. This means that the empty symbol can now be read back. Also, #: by itself (when not immediately followed by a possible symbol character) stands for an empty uninterned symbol. -+++ ** New math functions `isnan', `copysign', `frexp', `ldexp'. ** The following functions and variables are obsolete: ---- *** `tooltip-use-echo-area' is obsolete. Rather than setting this to t, disable Tooltip mode instead. -+++ *** buffer-substring-filters is obsolete. Use `filter-buffer-substring-functions' instead. ---- *** `byte-compile-disable-print-circle' is obsolete. ---- *** `deferred-action-list' and `deferred-action-function' are obsolete. Use `post-command-hook' instead. -+++ *** `font-lock-maximum-size' is obsolete. * Changes in Emacs 24.1 on non-free operating systems ---- ** On MS Windows, Emacs warns when using the obsolete init file _emacs, and also when HOME is set to C:\ by default. ** New configure.bat options -+++ *** --enable-checking builds Emacs with extra runtime checks. -+++ *** --distfiles specifies files to be included in binary distribution. -+++ *** --without-gnutls disables automatic GnuTLS detection. -+++ *** --lib for general library linkage, works with the USER_LIBS build variable. -+++ ** New make target `dist' to create binary distribution for MS Windows. ---- ** The Lisp function `w32-default-color-map' is now obsolete. (It is only used internally in the Emacs C code.) -+++ ** Customize ns-auto-hide-menu-bar to have the menu-bar hidden, but reappear on mouse-over. (Requires OS X 10.6 or later.) -+++ ** On Mac OS X, dragging a file into Emacs visits the file, like on other platforms, rather than inserting its contents into the buffer. ------------------------------------------------------------ revno: 107770 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-04-04 20:28:06 -0400 message: More anchors for internal Glossary links. diff: === modified file 'doc/emacs/glossary.texi' --- doc/emacs/glossary.texi 2012-04-05 00:14:04 +0000 +++ doc/emacs/glossary.texi 2012-04-05 00:28:06 +0000 @@ -156,6 +156,7 @@ @item Byte Compilation @xref{Glossary - Compilation}. +@anchor{Glossary - C-} @item @kbd{C-} @kbd{C-} in the name of a character is an abbreviation for Control. @xref{User Input,C-}. @@ -253,10 +254,11 @@ file names. Completion usually occurs when @key{TAB}, @key{SPC} or @key{RET} is typed. @xref{Completion}.@refill +@anchor{Glossary - Continuation Line} @item Continuation Line When a line of text is longer than the width of the window, it -normally (but see `Truncation') takes up more than one screen line -when displayed. We say that the text line is continued, and all +normally (but see @ref{Glossary - Truncation}) takes up more than one +screen line when displayed. We say that the text line is continued, and all screen lines used for it after the first are called continuation lines. @xref{Continuation Lines}. A related Emacs feature is `filling' (q.v.@:). @@ -280,7 +282,7 @@ @item @key{CTRL} The @key{CTRL} or ``control'' key is what you hold down -in order to enter a control character (q.v.). See also `@kbd{C-}'. +in order to enter a control character (q.v.). @xref{Glossary - C-}. @item Current Buffer The current buffer in Emacs is the Emacs buffer on which most editing @@ -317,6 +319,7 @@ @item Cut and Paste @xref{Glossary - Killing}, and @ref{Glossary - Yanking}. +@anchor{Glossary - Daemon} @item Daemon A daemon is a standard term for a system-level process that runs in the background. Daemons are often started when the system first starts up. @@ -381,6 +384,7 @@ you can place individual files or subdirectories. They are sometimes referred to as ``folders''. @xref{Directories}. +@anchor{Glossary - Directory Local Variable} @item Directory Local Variable A directory local variable is a local variable (q.v.@:) that applies to all the files within a certain directory. @xref{Directory @@ -490,7 +494,8 @@ @item File Local Variable A file local variable is a local variable (q.v.@:) specified in a -given file. @xref{File Variables}. See also `directory variable'. +given file. @xref{File Variables}, and @ref{Glossary - Directory +Local Variable}. @anchor{Glossary - File Locking} @item File Locking @@ -605,7 +610,7 @@ The global mark ring records the series of buffers you have recently set a mark (q.v.@:) in. In many cases you can use this to backtrack through buffers you have been editing, or in which you have found -tags (see `tags table'). @xref{Global Mark Ring}. +tags (@pxref{Glossary - Tags Table}). @xref{Global Mark Ring}. @anchor{Glossary - Global Substitution} @item Global Substitution @@ -643,7 +648,7 @@ Emacs uses highlighting in several ways. It highlights the region whenever it is active (@pxref{Mark}). Incremental search also -highlights matches (@pxref{Incremental Search}). See also `font lock'. +highlights matches (@pxref{Incremental Search}). @xref{Glossary - Font Lock}. @item Hardcopy Hardcopy means printed output. Emacs has various commands for @@ -751,7 +756,7 @@ @item Keyboard Shortcut A keyboard shortcut is a key sequence (q.v.@:) that invokes a command. What some programs call ``assigning a keyboard shortcut'', -Emacs calls ``binding a key sequence''. See `binding'. +Emacs calls ``binding a key sequence''. @xref{Glossary - Binding}. @item Key Sequence A key sequence (key, for short) is a sequence of input events (q.v.@:) @@ -771,7 +776,7 @@ key sequences. @item Kill Ring -The kill ring is where all text you have killed (see `killing') +The kill ring is where all text you have killed (@pxref{Glossary - Killing}) recently is saved. You can reinsert any of the killed text still in the ring; this is called yanking (q.v.@:). @xref{Yanking}. @@ -967,7 +972,7 @@ @item Newline Control-J characters in the buffer terminate lines of text and are -therefore also called newlines. See `End of Line'. +therefore also called newlines. @xref{Glossary - End Of Line}. @cindex nil @cindex t @@ -1219,8 +1224,8 @@ @item Server Within Emacs, you can start a `server' process, which listens for connections from `clients'. This offers a faster alternative to -starting several Emacs instances. @xref{Emacs Server}. See also -`daemon'. +starting several Emacs instances. @xref{Emacs Server}, and +@ref{Glossary - Daemon}. @c This is only covered in the lispref, not the user manual. @ignore @@ -1299,6 +1304,7 @@ @key{TAB} is the tab character. In Emacs it is typically used for indentation or completion. +@anchor{Glossary - Tags Table} @item Tags Table A tags table is a file that serves as an index to the function definitions in one or more other files. @xref{Tags}. @@ -1370,11 +1376,12 @@ @item Trash Can @xref{Glossary - Deletion of Files}. +@anchor{Glossary - Truncation} @item Truncation Truncating text lines in the display means leaving out any text on a line that does not fit within the right margin of the window -displaying it. See also `continuation line'. -@xref{Continuation Lines,Truncation}. +displaying it. @xref{Continuation Lines,Truncation}, and +@ref{Glossary - Continuation Line}. @item TTY @xref{Glossary - Text-only Terminal}. ------------------------------------------------------------ revno: 107769 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-04-04 20:14:04 -0400 message: * doc/emacs/glossary.texi (Glossary): Use anchors for internal cross-refs diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-04-04 07:27:58 +0000 +++ doc/emacs/ChangeLog 2012-04-05 00:14:04 +0000 @@ -1,3 +1,7 @@ +2012-04-05 Glenn Morris + + * glossary.texi (Glossary): Use anchors for internal cross-references. + 2012-04-04 Glenn Morris * glossary.texi (Glossary): Copyedits. === modified file 'doc/emacs/glossary.texi' --- doc/emacs/glossary.texi 2012-04-04 07:27:17 +0000 +++ doc/emacs/glossary.texi 2012-04-05 00:14:04 +0000 @@ -5,11 +5,8 @@ @node Glossary, Key Index, Intro, Top @unnumbered Glossary -@c It would be nice if texinfo could add internal links from one item -@c to another here. Eg when we say "see also `foo bar'", there would -@c be a hyperlink to the foo bar item. - @table @asis +@anchor{Glossary - Abbrev} @item Abbrev An abbrev is a text string that expands into a different text string when present in the buffer. For example, you might define a few letters @@ -32,7 +29,7 @@ Input, Alt}. @item Argument -See `numeric argument'. +@xref{Glossary - Numeric Argument}. @item @acronym{ASCII} character An @acronym{ASCII} character is either an @acronym{ASCII} control @@ -66,7 +63,8 @@ A backtrace is a trace of a series of function calls showing how a program arrived at a certain point. It is used mainly for finding and correcting bugs (q.v.@:). Emacs can display a backtrace when it signals -an error or when you type @kbd{C-g} (see `quitting'). @xref{Checklist}. +an error or when you type @kbd{C-g} (@pxref{Glossary - Quitting}). +@xref{Checklist}. @item Backup File A backup file records the contents that a file had before the current @@ -81,13 +79,14 @@ that matches the one you just inserted, or inserting the matching delimiter for you (@pxref{Matching,,Matching Parens}). +@anchor{Glossary - Balanced Expression} @item Balanced Expressions A balanced expression is a syntactically recognizable expression, such as a symbol, number, string constant, block, or parenthesized expression in C. @xref{Expressions,Balanced Expressions}. @item Balloon Help -See `tooltips'. +@xref{Glossary - Tooltips}. @item Base Buffer A base buffer is a buffer whose text is shared by an indirect buffer @@ -103,6 +102,7 @@ To bind a key sequence means to give it a binding (q.v.@:). @xref{Rebinding}. +@anchor{Glossary - Binding} @item Binding A key sequence gets its meaning in Emacs by having a binding, which is a command (q.v.@:), a Lisp function that is run when you type that @@ -151,10 +151,10 @@ right away when you press down on a mouse button. @xref{Mouse Buttons}. @item By Default -See `default'. +@xref{Glossary - Default}. @item Byte Compilation -See `compilation'. +@xref{Glossary - Compilation}. @item @kbd{C-} @kbd{C-} in the name of a character is an abbreviation for Control. @@ -180,7 +180,7 @@ particular alphabet or script. @xref{International}. @item Character Terminal -See `text-only terminal'. +@xref{Glossary - Text-only Terminal}. @item Click Event A click event is the kind of input event (q.v.@:) generated when you @@ -188,7 +188,7 @@ @xref{Mouse Buttons}. @item Client -See `server'. +@xref{Glossary - Server}. @item Clipboard A clipboard is a buffer provided by the window system for transferring @@ -210,7 +210,7 @@ the command to run. @xref{Commands}. @item Command History -See `minibuffer history'. +@xref{Glossary - Minibuffer History}. @item Command Name A command name is the name of a Lisp symbol that is a command @@ -228,6 +228,7 @@ than Emacs Lisp. Emacs provides a subset of Common Lisp in the CL package. @xref{Top, Common Lisp, Overview, cl, Common Lisp Extensions}. +@anchor{Glossary - Compilation} @item Compilation Compilation is the process of creating an executable program from source code. Emacs has commands for compiling files of Emacs Lisp code @@ -314,7 +315,7 @@ @cindex cut and paste @item Cut and Paste -See `killing' and `yanking'. +@xref{Glossary - Killing}, and @ref{Glossary - Yanking}. @item Daemon A daemon is a standard term for a system-level process that runs in the @@ -329,6 +330,7 @@ the default argument is used if you just type @key{RET}. @xref{Minibuffer}. +@anchor{Glossary - Default} @item Default A default is the value that is used for a certain purpose when you do not explicitly specify a value to use. @@ -355,6 +357,7 @@ Deletion means erasing text without copying it into the kill ring (q.v.@:). The alternative is killing (q.v.@:). @xref{Killing,Deletion}. +@anchor{Glossary - Deletion of Files} @item Deletion of Files Deleting a file means erasing it from the file system. (Note that some systems use the concept of a ``trash can'', or ``recycle @@ -429,6 +432,7 @@ particular delimiter characters to reindent the line, or insert one or more newlines in addition to self-insertion. +@anchor{Glossary - End Of Line} @item End Of Line End of line is a character or a sequence of characters that indicate the end of a text line. On GNU and Unix systems, this is a newline @@ -444,7 +448,7 @@ @xref{Environment}. @item EOL -See `end of line'. +@xref{Glossary - End Of Line}. @item Error An error occurs when an Emacs command cannot execute in the current @@ -469,7 +473,7 @@ it applies to the next character you type. @item Expression -See `balanced expression'. +@xref{Glossary - Balanced Expression}. @item Expunging Expunging an Rmail, Gnus newsgroup, or Dired buffer is an operation @@ -488,6 +492,7 @@ A file local variable is a local variable (q.v.@:) specified in a given file. @xref{File Variables}. See also `directory variable'. +@anchor{Glossary - File Locking} @item File Locking Emacs uses file locking to notice when two different users start to edit one file at the same time. @xref{Interlocking}. @@ -520,12 +525,14 @@ of each line when filling is done. It is not regarded as part of the text to be filled. @xref{Filling}. +@anchor{Glossary - Filling} @item Filling Filling text means adjusting the position of line-breaks to shift text between consecutive lines, so that all the lines are approximately the same length. @xref{Filling}. Some other editors call this feature ``line wrapping''. +@anchor{Glossary - Font Lock} @item Font Lock Font Lock is a mode that highlights parts of buffer text in different faces, according to the syntax. Some other editors refer to this as @@ -539,7 +546,7 @@ fontset, rather than changing each font separately. @xref{Fontsets}. @item Formfeed Character -See `page'. +@xref{Glossary - Page}. @item Frame A frame is a rectangular cluster of Emacs windows. Emacs starts out @@ -555,6 +562,7 @@ (q.v.@:), and distributed under a copyleft (q.v.@:) license called the GNU General Public License. @xref{Copying}. +@anchor{Glossary - Free Software Foundation} @item Free Software Foundation The Free Software Foundation (FSF) is a charitable foundation dedicated to promoting the development of free software (q.v.@:). @@ -568,7 +576,7 @@ special face (q.v.@:) called @code{fringe}. @xref{Faces,fringe}. @item FSF -See `Free Software Foundation'. +@xref{Glossary - Free Software Foundation}. @item FTP FTP is an acronym for File Transfer Protocol. This is one standard @@ -599,6 +607,7 @@ through buffers you have been editing, or in which you have found tags (see `tags table'). @xref{Global Mark Ring}. +@anchor{Glossary - Global Substitution} @item Global Substitution Global substitution means replacing each occurrence of one string by another string throughout a large amount of text. @xref{Replace}. @@ -683,6 +692,7 @@ mail is then stored permanently or until explicitly deleted. @xref{Rmail Inbox}. +@anchor{Glossary - Incremental Search} @item Incremental Search Emacs provides an incremental search facility, whereby Emacs begins searching for a string as soon as you type the first character. @@ -718,17 +728,17 @@ or from some other place in Emacs. @item Interlocking -See `file locking'. +@xref{Glossary - File Locking}. @item Isearch -See `incremental search'. +@xref{Glossary - Incremental Search}. @item Justification Justification means adding extra spaces within lines of text in order to adjust the position of the text edges. @xref{Fill Commands}. @item Key Binding -See `binding'. +@xref{Glossary - Binding}. @item Keyboard Macro Keyboard macros are a way of defining new Emacs commands from @@ -765,6 +775,7 @@ recently is saved. You can reinsert any of the killed text still in the ring; this is called yanking (q.v.@:). @xref{Yanking}. +@anchor{Glossary - Killing} @item Killing Killing means erasing text and saving it on the kill ring so it can be yanked (q.v.@:) later. Some other systems call this ``cutting''. @@ -786,7 +797,7 @@ @c Lexical Binding @item Line Wrapping -See `filling'. +@xref{Glossary - Filling}. @item Lisp Lisp is a programming language. Most of Emacs is written in a dialect @@ -835,6 +846,7 @@ name. This is how you run commands that are not bound to key sequences. @xref{M-x,M-x,Running Commands by Name}. +@anchor{Glossary - Mail} @item Mail Mail means messages sent from one user to another through the computer system, to be read at the recipient's convenience. Emacs has commands for @@ -874,7 +886,7 @@ a keyboard interface to navigate it. @xref{Menu Bars}. @item Message -See `mail'. +@xref{Glossary - Mail}. @item Meta Meta is the name of a modifier bit which you can use in a command @@ -897,6 +909,7 @@ echo area (q.v.@:), used for reading arguments to commands. @xref{Minibuffer}. +@anchor{Glossary - Minibuffer History} @item Minibuffer History The minibuffer history records the text you have specified in the past for minibuffer arguments, so you can conveniently use the same text @@ -962,6 +975,7 @@ @code{nil} is a value usually interpreted as a logical ``false''. Its opposite is @code{t}, interpreted as ``true''. +@anchor{Glossary - Numeric Argument} @item Numeric Argument A numeric argument is a number, specified before a command, to change the effect of the command. Often the numeric argument serves as a @@ -977,6 +991,7 @@ automatically install from within Emacs. Packages provide a convenient way to add new features. @xref{Packages}. +@anchor{Glossary - Page} @item Page A page is a unit of text, delimited by formfeed characters (@acronym{ASCII} control-L, code 014) at the beginning of a line. Some Emacs @@ -1000,7 +1015,7 @@ point. @xref{Point}. @item Prefix Argument -See `numeric argument'. +@xref{Glossary - Numeric Argument}. @item Prefix Key A prefix key is a key sequence (q.v.@:) whose sole function is to @@ -1036,6 +1051,7 @@ Query-replace is an interactive string replacement feature provided by Emacs. @xref{Query Replace}. +@anchor{Glossary - Quitting} @item Quitting Quitting means canceling a partially typed command or a running command, using @kbd{C-g} (or @kbd{C-@key{BREAK}} on MS-DOS). @xref{Quitting}. @@ -1080,7 +1096,7 @@ @xref{Screen,Redisplay}. @item Regexp -See `regular expression'. +@xref{Glossary - Regular Expression}. @item Region The region is the text between point (q.v.@:) and the mark (q.v.@:). @@ -1091,6 +1107,7 @@ rectangles can be saved for later use. @xref{Registers}. A related Emacs feature is `bookmarks' (q.v.@:). +@anchor{Glossary - Regular Expression} @item Regular Expression A regular expression is a pattern that can match various text strings; for example, @samp{a[0-9]+} matches @samp{a} followed by one or more @@ -1104,10 +1121,10 @@ @xref{Remote Files}. @item Repeat Count -See `numeric argument'. +@xref{Glossary - Numeric Argument}. @item Replacement -See `global substitution'. +@xref{Glossary - Global Substitution}. @item Restriction A buffer's restriction is the amount of text, at the beginning or the @@ -1198,6 +1215,7 @@ Emacs has commands for moving by or killing by sentences. @xref{Sentences}. +@anchor{Glossary - Server} @item Server Within Emacs, you can start a `server' process, which listens for connections from `clients'. This offers a faster alternative to @@ -1254,10 +1272,10 @@ allowed as well. @item String Substitution -See `global substitution'. +@xref{Glossary - Global Substitution}. @item Syntax Highlighting -See `font lock'. +@xref{Glossary - Font Lock}. @item Syntax Table The syntax table tells Emacs which characters are part of a word, @@ -1305,6 +1323,7 @@ or following the stylistic conventions of human language. @end itemize +@anchor{Glossary - Text-only Terminal} @item Text-only Terminal A text-only terminal is a display that is limited to displaying text in character units. Such a terminal cannot control individual pixels it @@ -1327,6 +1346,7 @@ You can think of this as a graphical relative of the menu bar (q.v.@:). @xref{Tool Bars}. +@anchor{Glossary - Tooltips} @item Tooltips Tooltips are small windows displaying a help echo (q.v.@:) text, which explains parts of the display, lists useful options available via mouse @@ -1348,7 +1368,7 @@ (@pxref{Transpose}). @item Trash Can -See `deletion of files'. +@xref{Glossary - Deletion of Files}. @item Truncation Truncating text lines in the display means leaving out any text on a @@ -1357,7 +1377,7 @@ @xref{Continuation Lines,Truncation}. @item TTY -See `text-only terminal'. +@xref{Glossary - Text-only Terminal}. @item Undoing Undoing means making your previous editing go in reverse, bringing @@ -1416,12 +1436,13 @@ include a window system. @item Word Abbrev -See `abbrev'. +@xref{Glossary - Abbrev}. @item Word Search Word search is searching for a sequence of words, considering the punctuation between them as insignificant. @xref{Word Search}. +@anchor{Glossary - Yanking} @item Yanking Yanking means reinserting text previously killed (q.v.@:). It can be used to undo a mistaken kill, or for copying or moving text. Some ------------------------------------------------------------ revno: 107768 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-04-04 16:44:56 -0400 message: Markup fixes for auth.texi * doc/misc/auth.texi (Help for users, Help for developers) (GnuPG and EasyPG Assistant Configuration): Markup fixes. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2012-04-04 20:36:33 +0000 +++ doc/misc/ChangeLog 2012-04-04 20:44:56 +0000 @@ -2,6 +2,8 @@ * auth.texi (Secret Service API): Copyedits. (Help for developers): Fill in some missing function doc-strings. + (Help for users, Help for developers) + (GnuPG and EasyPG Assistant Configuration): Markup fixes. 2012-04-04 Michael Albinus === modified file 'doc/misc/auth.texi' --- doc/misc/auth.texi 2012-04-04 20:36:33 +0000 +++ doc/misc/auth.texi 2012-04-04 20:44:56 +0000 @@ -113,7 +113,7 @@ Spaces are always OK as far as auth-source is concerned (but other programs may not like them). Just put the data in quotes, escaping -quotes as you'd expect with @code{\}. +quotes as you'd expect with @samp{\}. All these are optional. You could just say (but we don't recommend it, we're just showing that it's possible) @@ -125,14 +125,14 @@ to use the same password everywhere. Again, @emph{DO NOT DO THIS} or you will be pwned as the kids say. -``Netrc'' files are usually called @code{.authinfo} or @code{.netrc}; -nowadays @code{.authinfo} seems to be more popular and the auth-source +``Netrc'' files are usually called @file{.authinfo} or @file{.netrc}; +nowadays @file{.authinfo} seems to be more popular and the auth-source library encourages this confusion by accepting both, as you'll see later. If you have problems with the search, set @code{auth-source-debug} to @code{'trivia} and see what host, port, and user the library is -checking in the @code{*Messages*} buffer. Ditto for any other +checking in the @samp{*Messages*} buffer. Ditto for any other problems, your first step is always to see what's being checked. The second step, of course, is to write a blog entry about it and wait for the answer in the comments. @@ -181,11 +181,11 @@ If you don't customize @code{auth-sources}, you'll have to live with the defaults: any host and any port are looked up in the netrc -file @code{~/.authinfo.gpg}, which is a GnuPG encrypted file +file @file{~/.authinfo.gpg}, which is a GnuPG encrypted file (@pxref{GnuPG and EasyPG Assistant Configuration}). -If that fails, the unencrypted netrc files @code{~/.authinfo} and -@code{~/.netrc} will be used. +If that fails, the unencrypted netrc files @file{~/.authinfo} and +@file{~/.netrc} will be used. The typical netrc line example is without a port. @@ -363,9 +363,9 @@ The auth-source library lets you control logging output easily. @defvar auth-source-debug -Set this variable to 'trivia to see lots of output in *Messages*, or -set it to a function that behaves like @code{message} to do your own -logging. +Set this variable to @code{'trivia} to see lots of output in +@samp{*Messages*}, or set it to a function that behaves like +@code{message} to do your own logging. @end defvar The auth-source library only has a few functions for external use. @@ -453,12 +453,12 @@ @appendix GnuPG and EasyPG Assistant Configuration If you don't customize @code{auth-sources}, the auth-source library -reads @code{~/.authinfo.gpg}, which is a GnuPG encrypted file. Then -it will check @code{~/.authinfo} but it's not recommended to use such +reads @file{~/.authinfo.gpg}, which is a GnuPG encrypted file. Then +it will check @file{~/.authinfo} but it's not recommended to use such an unencrypted file. In Emacs 23 or later there is an option @code{auto-encryption-mode} to -automatically decrypt @code{*.gpg} files. It is enabled by default. +automatically decrypt @file{*.gpg} files. It is enabled by default. If you are using earlier versions of Emacs, you will need: @lisp ------------------------------------------------------------ revno: 107767 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-04-04 16:36:33 -0400 message: auth.texi small edits * doc/misc/auth.texi (Secret Service API): Copyedits. (Help for developers): Fill in some missing function doc-strings. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2012-04-04 15:28:57 +0000 +++ doc/misc/ChangeLog 2012-04-04 20:36:33 +0000 @@ -1,3 +1,8 @@ +2012-04-04 Glenn Morris + + * auth.texi (Secret Service API): Copyedits. + (Help for developers): Fill in some missing function doc-strings. + 2012-04-04 Michael Albinus * auth.texi (Secret Service API): Add the missing text. === modified file 'doc/misc/auth.texi' --- doc/misc/auth.texi 2012-04-04 15:28:57 +0000 +++ doc/misc/auth.texi 2012-04-04 20:36:33 +0000 @@ -233,9 +233,9 @@ Implementations of compliant daemons are the GNOME Keyring and the KDE Wallet. -Although the usage of the client library secrets.el is hidden in Emacs -via the auth-source library, its functionality can be used also -directly in other packages. +The auth-source library uses the @file{secrets.el} library as an +interface to this feature. You can also use that library in other +packages. @defvar secrets-enabled After loading @file{secrets.el}, a non-@code{nil} value of this @@ -244,7 +244,7 @@ @end defvar @deffn Command secrets-show-secrets -All collections, items, and their attributes are inspected by this command. +This command inspects all collections, items, and their attributes. @end deffn The atomic objects to be managed by the Secret Service API are @@ -260,9 +260,9 @@ A collection can have an alias name. The use case for this is to set the alias @samp{"default"} for a given collection, making it -transparent for clients, which collection is used. Other aliases +transparent to clients as to which collection is used. Other aliases are not supported (yet). Since an alias is visible to all -applications, this setting shall be performed with care. +applications, this setting should be performed with care. @defun secrets-list-collections This function returns a list of collection names. @@ -281,15 +281,15 @@ Collections can be created and deleted by the functions @code{secrets-create-collection} and @code{secrets-delete-collection}. Usually, this is not applied from within Emacs. Common collections, -like @samp{"login"}, shall never be deleted. +like @samp{"login"}, should never be deleted. There exists a special collection called @samp{"session"}, which has the lifetime of the corresponding client session (aka Emacs's lifetime). It is created automatically when Emacs uses the Secret Service interface, and it is deleted when Emacs is killed. Therefore, it can be used to store and retrieve secret items temporarily. This -shall be preferred over creation of a persistent collection, when the -information shall not live longer than Emacs. The session collection +should be preferred over creation of a persistent collection, when the +information should not live longer than Emacs. The session collection can be addressed either by the string @samp{"session"}, or by @code{nil}, whenever a collection parameter is needed in the following functions. @@ -305,7 +305,7 @@ @defun secrets-create-item collection item password &rest attributes This function creates a new item in @var{collection} with label -@var{item} and password @var{PASSWORD}. @var{attributes} are +@var{item} and password @var{password}. @var{attributes} are key-value pairs set for the created item. The keys are keyword symbols, starting with a colon. Example: @@ -347,7 +347,7 @@ @end defun @defun secrets-search-items collection &rest attributes -Searchs items in @var{collection} with @var{attributes}. +Search items in @var{collection} with @var{attributes}. @var{attributes} are key-value pairs, as used in @code{secrets-create-item}. Example: @@ -370,14 +370,14 @@ The auth-source library only has a few functions for external use. -@defun auth-source-search SPEC - -TODO: how to include docstring? - +@defun auth-source-search &rest spec &key type max host user port secret require create delete &allow-other-keys +This function searches (or modifies) authentication backends according +to @var{spec}. See the function's doc-string for details. +@c TODO more details. @end defun Let's take a look at an example of using @code{auth-source-search} -from Gnus' @code{nnimap.el}. +from Gnus's @code{nnimap.el}. @example (defun nnimap-credentials (address ports) @@ -432,22 +432,21 @@ So the responsibility of the API user that specified @code{:create t} is to call the @code{:save-function} if it's provided. -@defun auth-source-delete SPEC - -TODO: how to include docstring? - -@end defun - -@defun auth-source-forget SPEC - -TODO: how to include docstring? - -@end defun - -@defun auth-source-forget+ SPEC - -TODO: how to include docstring? - +@defun auth-source-delete &rest spec &key delete &allow-other-keys +This function deletes entries matching @var{spec} from the +authentication backends. It returns the entries that were deleted. +The backend may not actually delete the entries. +@end defun + +@defun auth-source-forget spec +This function forgets any cached data that exactly matches @var{spec}. +It returns @code{t} if it forget some data, and @code{nil} if no +matching data was found. +@end defun + +@defun auth-source-forget+ &rest spec &allow-other-keys +This function forgets any cached data matching @var{spec}. +It returns the number of items forgotten. @end defun @node GnuPG and EasyPG Assistant Configuration ------------------------------------------------------------ revno: 107766 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2012-04-04 13:13:00 -0400 message: * lisp/server.el (server--on-display-p): New function. (server--on-display-p): Use it. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-04-04 16:22:09 +0000 +++ lisp/ChangeLog 2012-04-04 17:13:00 +0000 @@ -1,3 +1,8 @@ +2012-04-04 Stefan Monnier + + * server.el (server--on-display-p): New function. + (server--on-display-p): Use it. + 2012-04-04 Gabor Vida (tiny change) * ido.el (ido-wide-find-dirs-or-files): Use file-name-absolute-p === modified file 'lisp/server.el' --- lisp/server.el 2012-03-11 17:54:16 +0000 +++ lisp/server.el 2012-04-04 17:13:00 +0000 @@ -367,18 +367,27 @@ (server-log (format "Status changed to %s: %s" (process-status proc) msg) proc) (server-delete-client proc)) +(defun server--on-display-p (frame display) + (and (equal (frame-parameter frame 'display) display) + ;; Note: TTY frames still get a `display' parameter set to the value of + ;; $DISPLAY. This is useful when running from that tty frame + ;; sub-processes that want to connect to the X server, but that means we + ;; have to be careful here not to be tricked into thinking those frames + ;; are on `display'. + (not (eq (framep frame) t)))) + (defun server-select-display (display) ;; If the current frame is on `display' we're all set. ;; Similarly if we are unable to open frames on other displays, there's ;; nothing more we can do. (unless (or (not (fboundp 'make-frame-on-display)) - (equal (frame-parameter (selected-frame) 'display) display)) + (server--on-display-p (selected-frame) display)) ;; Otherwise, look for an existing frame there and select it. (dolist (frame (frame-list)) - (when (equal (frame-parameter frame 'display) display) + (when (server--on-display-p frame display) (select-frame frame))) ;; If there's no frame on that display yet, create and select one. - (unless (equal (frame-parameter (selected-frame) 'display) display) + (unless (server--on-display-p (selected-frame) display) (let* ((buffer (generate-new-buffer " *server-dummy*")) (frame (make-frame-on-display display ------------------------------------------------------------ revno: 107765 fixes bug(s): http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11145 author: Gabor Vida committer: Stefan Monnier branch nick: trunk timestamp: Wed 2012-04-04 12:22:09 -0400 message: * lisp/ido.el (ido-wide-find-dirs-or-files): Use file-name-absolute-p. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-04-04 16:06:59 +0000 +++ lisp/ChangeLog 2012-04-04 16:22:09 +0000 @@ -1,3 +1,8 @@ +2012-04-04 Gabor Vida (tiny change) + + * ido.el (ido-wide-find-dirs-or-files): Use file-name-absolute-p + (bug#11145). + 2012-04-04 Stefan Monnier * comint.el (comint--common-quoted-suffix): Check string boundary === modified file 'lisp/ido.el' --- lisp/ido.el 2012-03-21 16:41:01 +0000 +++ lisp/ido.el 2012-04-04 16:22:09 +0000 @@ -3269,7 +3269,7 @@ (while filenames (setq filename (car filenames) filenames (cdr filenames)) - (if (and (string-match "^/" filename) + (if (and (file-name-absolute-p filename) (file-exists-p filename)) (setq d (file-name-directory filename) f (file-name-nondirectory filename) ------------------------------------------------------------ revno: 107764 fixes bug(s): http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11158 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2012-04-04 12:06:59 -0400 message: * lisp/comint.el (comint--common-quoted-suffix): Check string boundary before comparing. * lisp/pcomplete.el (pcomplete--common-quoted-suffix): Idem. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-04-04 09:19:32 +0000 +++ lisp/ChangeLog 2012-04-04 16:06:59 +0000 @@ -1,3 +1,9 @@ +2012-04-04 Stefan Monnier + + * comint.el (comint--common-quoted-suffix): Check string boundary + before comparing (bug#11158). + * pcomplete.el (pcomplete--common-quoted-suffix): Idem. + 2012-04-04 Chong Yidong * minibuffer.el (completion-extra-properties): Doc fix. === modified file 'lisp/comint.el' --- lisp/comint.el 2012-03-15 08:00:43 +0000 +++ lisp/comint.el 2012-04-04 16:06:59 +0000 @@ -3069,24 +3069,25 @@ (defun comint--common-quoted-suffix (s1 s2) ;; FIXME: Copied in pcomplete.el. "Find the common suffix between S1 and S2 where S1 is the expanded S2. -S1 is expected to be the unquoted and expanded version of S1. +S1 is expected to be the unquoted and expanded version of S2. Returns (PS1 . PS2), i.e. the shortest prefixes of S1 and S2, such that S1 = (concat PS1 SS1) and S2 = (concat PS2 SS2) and SS1 = (unquote SS2)." (let* ((cs (comint--common-suffix s1 s2)) (ss1 (substring s1 (- (length s1) cs))) (qss1 (comint-quote-filename ss1)) - qc) + qc s2b) (if (and (not (equal ss1 qss1)) (setq qc (comint-quote-filename (substring ss1 0 1))) - (eq t (compare-strings s2 (- (length s2) cs (length qc) -1) - (- (length s2) cs -1) + (setq s2b (- (length s2) cs (length qc) -1)) + (>= s2b 0) ;bug#11158. + (eq t (compare-strings s2 s2b (- (length s2) cs -1) qc nil nil))) ;; The difference found is just that one char is quoted in S2 ;; but not in S1, keep looking before this difference. (comint--common-quoted-suffix (substring s1 0 (- (length s1) cs)) - (substring s2 0 (- (length s2) cs (length qc) -1))) + (substring s2 0 s2b)) (cons (substring s1 0 (- (length s1) cs)) (substring s2 0 (- (length s2) cs)))))) === modified file 'lisp/pcomplete.el' --- lisp/pcomplete.el 2012-01-19 07:21:25 +0000 +++ lisp/pcomplete.el 2012-04-04 16:06:59 +0000 @@ -387,24 +387,25 @@ (defun pcomplete--common-quoted-suffix (s1 s2) ;; FIXME: Copied in comint.el. "Find the common suffix between S1 and S2 where S1 is the expanded S2. -S1 is expected to be the unquoted and expanded version of S1. +S1 is expected to be the unquoted and expanded version of S2. Returns (PS1 . PS2), i.e. the shortest prefixes of S1 and S2, such that S1 = (concat PS1 SS1) and S2 = (concat PS2 SS2) and SS1 = (unquote SS2)." (let* ((cs (comint--common-suffix s1 s2)) (ss1 (substring s1 (- (length s1) cs))) (qss1 (pcomplete-quote-argument ss1)) - qc) + qc s2b) (if (and (not (equal ss1 qss1)) (setq qc (pcomplete-quote-argument (substring ss1 0 1))) - (eq t (compare-strings s2 (- (length s2) cs (length qc) -1) - (- (length s2) cs -1) + (setq s2b (- (length s2) cs (length qc) -1)) + (>= s2b 0) ;bug#11158. + (eq t (compare-strings s2 s2b (- (length s2) cs -1) qc nil nil))) ;; The difference found is just that one char is quoted in S2 ;; but not in S1, keep looking before this difference. (pcomplete--common-quoted-suffix (substring s1 0 (- (length s1) cs)) - (substring s2 0 (- (length s2) cs (length qc) -1))) + (substring s2 0 s2b)) (cons (substring s1 0 (- (length s1) cs)) (substring s2 0 (- (length s2) cs)))))) ------------------------------------------------------------ revno: 107763 committer: Michael Albinus branch nick: trunk timestamp: Wed 2012-04-04 17:32:59 +0200 message: Change doc flag for secrets.el diff: === modified file 'etc/NEWS' --- etc/NEWS 2012-04-04 09:19:32 +0000 +++ etc/NEWS 2012-04-04 15:32:59 +0000 @@ -1008,6 +1008,7 @@ ** pcase.el provides the ML-style pattern matching macro `pcase'. ++++ ** secrets.el is an implementation of the Secret Service API, an interface to password managers like GNOME Keyring or KDE Wallet. The Secret Service API requires D-Bus for communication. The command ------------------------------------------------------------ revno: 107762 committer: Michael Albinus branch nick: trunk timestamp: Wed 2012-04-04 17:28:57 +0200 message: * auth.texi (Secret Service API): Add the missing text. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2012-04-04 07:54:02 +0000 +++ doc/misc/ChangeLog 2012-04-04 15:28:57 +0000 @@ -1,3 +1,7 @@ +2012-04-04 Michael Albinus + + * auth.texi (Secret Service API): Add the missing text. + 2012-04-04 Chong Yidong * message.texi (Using PGP/MIME): Note that epg is now the default. === modified file 'doc/misc/auth.texi' --- doc/misc/auth.texi 2012-01-19 07:21:25 +0000 +++ doc/misc/auth.texi 2012-04-04 15:28:57 +0000 @@ -227,7 +227,135 @@ @node Secret Service API @chapter Secret Service API -TODO: how does it work generally, how does secrets.el work, some examples. +The @dfn{Secret Service API} is a standard from +@uref{http://www.freedesktop.org/wiki/Specifications/secret-storage-spec,,freedesktop.org} +to securely store passwords and other confidential information. +Implementations of compliant daemons are the GNOME Keyring and the KDE +Wallet. + +Although the usage of the client library secrets.el is hidden in Emacs +via the auth-source library, its functionality can be used also +directly in other packages. + +@defvar secrets-enabled +After loading @file{secrets.el}, a non-@code{nil} value of this +variable indicates the existence of a daemon providing the Secret +Service API. +@end defvar + +@deffn Command secrets-show-secrets +All collections, items, and their attributes are inspected by this command. +@end deffn + +The atomic objects to be managed by the Secret Service API are +@dfn{secret items}, which are something an application wishes to store +securely. A good example is a password that an application needs to +save and use at a later date. + +Secret items are grouped in @dfn{collections}. A collection is +similar in concept to the terms @samp{keyring} or @samp{wallet}. A +common collection is called @samp{"login"}. A collection is stored +permanently under the user's permissions, and can be accessed in a +user session context. + +A collection can have an alias name. The use case for this is to +set the alias @samp{"default"} for a given collection, making it +transparent for clients, which collection is used. Other aliases +are not supported (yet). Since an alias is visible to all +applications, this setting shall be performed with care. + +@defun secrets-list-collections +This function returns a list of collection names. +@end defun + +@defun secrets-set-alias collection alias +Set @var{alias} as alias of collection labeled @var{collection}. +For the time being, only the alias @samp{"default"} is supported. +@end defun + +@defun secrets-get-alias alias +Return the collection name @var{alias} is referencing to. +For the time being, only the alias @samp{"default"} is supported. +@end defun + +Collections can be created and deleted by the functions +@code{secrets-create-collection} and @code{secrets-delete-collection}. +Usually, this is not applied from within Emacs. Common collections, +like @samp{"login"}, shall never be deleted. + +There exists a special collection called @samp{"session"}, which has +the lifetime of the corresponding client session (aka Emacs's +lifetime). It is created automatically when Emacs uses the Secret +Service interface, and it is deleted when Emacs is killed. Therefore, +it can be used to store and retrieve secret items temporarily. This +shall be preferred over creation of a persistent collection, when the +information shall not live longer than Emacs. The session collection +can be addressed either by the string @samp{"session"}, or by +@code{nil}, whenever a collection parameter is needed in the following +functions. + +As already said, a collection is a group of secret items. A secret +item has a label, the @dfn{secret} (which is a string), and a set of +lookup attributes. The attributes can be used to search and retrieve +a secret item at a later date. + +@defun secrets-list-items collection +Returns a list of all item labels of @var{collection}. +@end defun + +@defun secrets-create-item collection item password &rest attributes +This function creates a new item in @var{collection} with label +@var{item} and password @var{PASSWORD}. @var{attributes} are +key-value pairs set for the created item. The keys are keyword +symbols, starting with a colon. Example: + +@example +(secrets-create-item "session" "my item" "geheim" + :method "sudo" :user "joe" :host "remote-host") +@end example +@end defun + +@defun secrets-get-secret collection item +Return the secret of item labeled @var{item} in @var{collection}. +If there is no such item, return @code{nil}. +@end defun + +@defun secrets-delete-item collection item +This function deletes item @var{item} in @var{collection}. +@end defun + +The lookup attributes, which are specified during creation of a +secret item, must be a key-value pair. Keys are keyword symbols, +starting with a colon; values are strings. They can be retrieved +from a given secret item, and they can be used for searching of items. + +@defun secrets-get-attribute collection item attribute +Returns the value of key @var{attribute} of item labeled @var{item} in +@var{collection}. If there is no such item, or the item doesn't own +this key, the function returns @code{nil}. +@end defun + +@defun secrets-get-attributes collection item +Return the lookup attributes of item labeled @var{item} in +@var{collection}. If there is no such item, or the item has no +attributes, it returns @code{nil}. Example: + +@example +(secrets-get-attributes "session" "my item") + @result{} ((:user . "joe") (:host ."remote-host")) +@end example +@end defun + +@defun secrets-search-items collection &rest attributes +Searchs items in @var{collection} with @var{attributes}. +@var{attributes} are key-value pairs, as used in +@code{secrets-create-item}. Example: + +@example +(secrets-search-items "session" :user "joe") + @result{} ("my item" "another item") +@end example +@end defun @node Help for developers @chapter Help for developers ------------------------------------------------------------ revno: 107761 committer: Chong Yidong branch nick: trunk timestamp: Wed 2012-04-04 18:32:35 +0800 message: Some more completion updates for Lisp manual. * doc/lispref/minibuf.texi (Reading File Names): minibuffer-local-filename-must-match-map is not used anymore. (Minibuffer Completion): Document completing-read-function. (Completion in Buffers): completion-at-point-functions can return properties recognized in completion-extra-properties. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-04-04 09:19:32 +0000 +++ doc/lispref/ChangeLog 2012-04-04 10:32:35 +0000 @@ -5,6 +5,11 @@ (Completion Variables): Rename from Completion Styles. Document completion-extra-properties. Document completion-styles-alist change. + (Reading File Names): minibuffer-local-filename-must-match-map is + not used anymore. + (Minibuffer Completion): Document completing-read-function. + (Completion in Buffers): completion-at-point-functions can return + properties recognized in completion-extra-properties. * display.texi (Delayed Warnings): New node. === modified file 'doc/lispref/minibuf.texi' --- doc/lispref/minibuf.texi 2012-04-04 09:19:32 +0000 +++ doc/lispref/minibuf.texi 2012-04-04 10:32:35 +0000 @@ -985,6 +985,14 @@ They are described in the following section. @end defun +@defvar completing-read-function +The value of this variable must be a function, which is called by +@code{completing-read} to actually do its work. It should accept the +same arguments as @code{completing-read}. This can be bound to a +different function to completely override the normal behavior of +@code{completing-read}. +@end defvar + @node Completion Commands @subsection Minibuffer Commands that Do Completion @@ -1377,11 +1385,7 @@ file name is required. The optional argument @var{require-match} has the same meaning as in -@code{completing-read}. @xref{Minibuffer Completion}. If -@var{require-match} is @code{nil}, the local keymap in the minibuffer -is @code{minibuffer-local-filename-completion-map}; otherwise, it is -@code{minibuffer-local-filename-must-match-map}. @xref{Completion -Commands}. +@code{completing-read}. @xref{Minibuffer Completion}. The argument @var{directory} specifies the directory to use for completing relative file names. It should be an absolute directory @@ -1750,8 +1754,9 @@ alternatives will be generated from this completion table in the usual way, via the completion styles defined in @code{completion-styles} (@pxref{Completion Variables}). @var{props} is a property list for -additional information; the following optional properties are -recognized: +additional information; any of the properties in +@code{completion-extra-properties} are recognized (@pxref{Completion +Variables}), as well as the following additional ones: @table @code @item :predicate ------------------------------------------------------------ revno: 107760 committer: Chong Yidong branch nick: trunk timestamp: Wed 2012-04-04 17:19:32 +0800 message: Document completion-extra-properties in Lisp manual. * doc/lispref/minibuf.texi (Programmed Completion): Remove obsolete variable completion-annotate-function. (Completion Variables): Rename from Completion Styles. Document completion-extra-properties. Document completion-styles-alist change. * lisp/minibuffer.el (completion-extra-properties): Doc fix. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-04-04 08:11:01 +0000 +++ doc/lispref/ChangeLog 2012-04-04 09:19:32 +0000 @@ -1,5 +1,11 @@ 2012-04-04 Chong Yidong + * minibuf.texi (Programmed Completion): Remove obsolete variable + completion-annotate-function. + (Completion Variables): Rename from Completion Styles. Document + completion-extra-properties. Document completion-styles-alist + change. + * display.texi (Delayed Warnings): New node. * os.texi (Notifications): Copyedits. === modified file 'doc/lispref/elisp.texi' --- doc/lispref/elisp.texi 2012-04-04 07:54:02 +0000 +++ doc/lispref/elisp.texi 2012-04-04 09:19:32 +0000 @@ -649,8 +649,8 @@ (reading buffer name, file name, etc.). * Reading File Names:: Using completion to read file names and shell commands. -* Completion Styles:: Specifying rules for performing completion. -* Programmed Completion:: Writing your own completion-function. +* Completion Variables:: Variables controlling completion behavior. +* Programmed Completion:: Writing your own completion function. * Completion in Buffers:: Completing text in ordinary buffers. Command Loop === modified file 'doc/lispref/minibuf.texi' --- doc/lispref/minibuf.texi 2012-02-15 13:45:02 +0000 +++ doc/lispref/minibuf.texi 2012-04-04 09:19:32 +0000 @@ -631,8 +631,8 @@ (reading buffer name, file name, etc.). * Reading File Names:: Using completion to read file names and shell commands. -* Completion Styles:: Specifying rules for performing completion. -* Programmed Completion:: Writing your own completion-function. +* Completion Variables:: Variables controlling completion behavior. +* Programmed Completion:: Writing your own completion function. * Completion in Buffers:: Completing text in ordinary buffers. @end menu @@ -795,7 +795,7 @@ @defun test-completion string collection &optional predicate @anchor{Definition of test-completion} This function returns non-@code{nil} if @var{string} is a valid -completion possibility specified by @var{collection} and +completion alternative specified by @var{collection} and @var{predicate}. The arguments are the same as in @code{try-completion}. For instance, if @var{collection} is a list of strings, this is true if @var{string} appears in the list and @@ -1429,7 +1429,7 @@ If @var{predicate} is non-@code{nil}, it specifies a function of one argument that decides which file names are acceptable completion -possibilities. A file name is an acceptable value if @var{predicate} +alternatives. A file name is an acceptable value if @var{predicate} returns non-@code{nil} for it. Here is an example of using @code{read-file-name}: @@ -1480,7 +1480,7 @@ @defun read-directory-name prompt &optional directory default require-match initial This function is like @code{read-file-name} but allows only directory -names as completion possibilities. +names as completion alternatives. If @var{default} is @code{nil} and @var{initial} is non-@code{nil}, @code{read-directory-name} constructs a substitute default by @@ -1563,57 +1563,85 @@ command and file names that are part of a shell command. @end defvar -@node Completion Styles -@subsection Completion Styles +@node Completion Variables +@subsection Completion Variables + + Here are some variables which can be used to alter the default +completion behavior. + @cindex completion styles - - A @dfn{completion style} is a set of rules for generating -completions. The user option @code{completion-styles} stores a list -of completion styles, which are represented by symbols. - @defopt completion-styles -This is a list of completion style symbols to use for performing -completion. Each completion style in this list must be defined in +The value of this variable is a list of completion styles to use for +performing completion. A @dfn{completion style} is a set of rules for +generating completions. + +Each style listed in this variable must be one of those defined in @code{completion-styles-alist}. @end defopt @defvar completion-styles-alist This variable stores a list of available completion styles. Each -element in the list must have the form @samp{(@var{name} -@var{try-completion} @var{all-completions})}. Here, @var{name} is the -name of the completion style (a symbol), which may be used in -@code{completion-styles-alist} to refer to this style. - -@var{try-completion} is the function that does the completion, and -@var{all-completions} is the function that lists the completions. -These functions should accept four arguments: @var{string}, -@var{collection}, @var{predicate}, and @var{point}. The @var{string}, -@var{collection}, and @var{predicate} arguments have the same meanings -as in @code{try-completion} (@pxref{Basic Completion}), and the -@var{point} argument is the position of point within @var{string}. -Each function should return a non-@code{nil} value if it performed its -job, and @code{nil} if it did not (e.g., if there is no way to -complete @var{string} according to the completion style). - -When the user calls a completion command, such as +element in the list has the form + +@example +(@var{name} @var{try-completion} @var{all-completions} @var{doc}) +@end example + +@noindent +Here, @var{name} is the name of the completion style (a symbol), which +may be used in @code{completion-styles-alist} to refer to this style; +@var{try-completion} is the function that does the completion; +@var{all-completions} is the function that lists the completions; and +@var{doc} is a string describing the completion style. + +The @var{try-completion} and @var{all-completions} functions should +each accept four arguments: @var{string}, @var{collection}, +@var{predicate}, and @var{point}. The @var{string}, @var{collection}, +and @var{predicate} arguments have the same meanings as in +@code{try-completion} (@pxref{Basic Completion}), and the @var{point} +argument is the position of point within @var{string}. Each function +should return a non-@code{nil} value if it performed its job, and +@code{nil} if it did not (e.g.@: if there is no way to complete +@var{string} according to the completion style). + +When the user calls a completion command like @code{minibuffer-complete} (@pxref{Completion Commands}), Emacs looks for the first style listed in @code{completion-styles} and calls its @var{try-completion} function. If this function returns @code{nil}, -Emacs moves to the next completion style listed in -@code{completion-styles} and calls its @var{try-completion} function, -and so on until one of the @var{try-completion} functions successfully -performs completion and returns a non-@code{nil} value. A similar -procedure is used for listing completions, via the -@var{all-completions} functions. -@end defvar - - By default, @code{completion-styles-alist} contains five pre-defined -completion styles: @code{basic}, a basic completion style; -@code{partial-completion}, which does partial completion (completing -each word in the input separately); @code{emacs22}, which performs -completion according to the rules used in Emacs 22; @code{emacs21}, -which performs completion according to the rules used in Emacs 21; and -@code{initials}, which completes acronyms and initialisms. +Emacs moves to the next listed completion style and calls its +@var{try-completion} function, and so on until one of the +@var{try-completion} functions successfully performs completion and +returns a non-@code{nil} value. A similar procedure is used for +listing completions, via the @var{all-completions} functions. + +@xref{Completion Styles,,, emacs, The GNU Emacs Manual}, for a +description of the available completion styles. +@end defvar + +@defvar completion-extra-properties +This variable is used to specify extra properties of the current +completion command. It is intended to be let-bound by specialized +completion commands. Its value should be a list of property and value +pairs. The following properties are supported: + +@table @code +@item :annotation-function +The value should be a function to add annotations in the completions +buffer. This function must accept one argument, a completion, and +should either return @code{nil} or a string to be displayed next to +the completion. + +@item :exit-function +The value should be a function to run after performing completion. +The function should accept two arguments, @var{string} and +@var{status}, where @var{string} is the text to which the field was +completed and @var{status} indicates what kind of operation happened: +@code{finished} if text is now complete, @code{sole} if the text +cannot be further completed but completion is not finished, or +@code{exact} if the text is a valid completion but may be further +completed. +@end table +@end defvar @node Programmed Completion @subsection Programmed Completion @@ -1640,47 +1668,41 @@ The string to be completed. @item -The predicate function to filter possible matches, or @code{nil} if -none. Your function should call the predicate for each possible match, -and ignore the possible match if the predicate returns @code{nil}. - -@item -A flag specifying the type of operation. The best way to think about -it is that the function stands for an object (in the -``object-oriented'' sense of the word), and this third argument -specifies which method to run. -@end itemize - - There are currently four methods, i.e. four flag values, one for -each of the four different basic operations: - -@itemize @bullet -@item -@code{nil} specifies @code{try-completion}. The completion function -should return the completion of the specified string, or @code{t} if the -string is a unique and exact match already, or @code{nil} if the string -matches no possibility. - -If the string is an exact match for one possibility, but also matches -other longer possibilities, the function should return the string, not -@code{t}. - -@item -@code{t} specifies @code{all-completions}. The completion function +A predicate function with which to filter possible matches, or +@code{nil} if none. The function should call the predicate for each +possible match, and ignore the match if the predicate returns +@code{nil}. + +@item +A flag specifying the type of completion operation to perform. This +is one of the following four values: + +@table @code +@item nil +This specifies a @code{try-completion} operation. The function should +return @code{t} if the specified string is a unique and exact match; +if there is more than one match, it should return the common substring +of all matches (if the string is an exact match for one completion +alternative but also matches other longer alternatives, the return +value is the string); if there are no matches, it should return +@code{nil}. + +@item t +This specifies an @code{all-completions} operation. The function should return a list of all possible completions of the specified string. -@item -@code{lambda} specifies @code{test-completion}. The completion -function should return @code{t} if the specified string is an exact -match for some possibility; @code{nil} otherwise. +@item lambda +This specifies a @code{test-completion} operation. The function +should return @code{t} if the specified string is an exact match for +some completion alternative; @code{nil} otherwise. -@item -@code{(boundaries . SUFFIX)} specifies @code{completion-boundaries}. -The function should return a value of the form @code{(boundaries -START . END)} where START is the position of the beginning boundary -in the string to complete, and END is the position of the end boundary -in SUFFIX. +@item (boundaries . @var{suffix}) +This specifies a @code{completion-boundaries} operation. The function +should return @code{(boundaries START . END)}, where START is the +position of the beginning boundary in the specified string, and END is +the position of the end boundary in SUFFIX. +@end table @end itemize @defun completion-table-dynamic function @@ -1692,19 +1714,6 @@ and the interface for programmed completion functions. @end defun -@defvar completion-annotate-function -The value of this variable, if non-@code{nil}, should be a function -for ``annotating'' the entries in the @samp{*Completions*} buffer. -The function should accept a single argument, the completion string -for an entry. It should return an additional string to display next -to that entry in the @samp{*Completions*} buffer, or @code{nil} if no -additional string is to be displayed. - -The function can determine the collection used for the current -completion via the variable @code{minibuffer-completion-table} -(@pxref{Completion Commands}). -@end defvar - @node Completion in Buffers @subsection Completion in Ordinary Buffers @cindex inline completion @@ -1740,7 +1749,7 @@ @code{try-completion} (@pxref{Basic Completion}); completion alternatives will be generated from this completion table in the usual way, via the completion styles defined in @code{completion-styles} -(@pxref{Completion Styles}). @var{props} is a property list for +(@pxref{Completion Variables}). @var{props} is a property list for additional information; the following optional properties are recognized: === modified file 'doc/lispref/vol1.texi' --- doc/lispref/vol1.texi 2012-04-04 07:54:02 +0000 +++ doc/lispref/vol1.texi 2012-04-04 09:19:32 +0000 @@ -671,8 +671,8 @@ (reading buffer name, file name, etc.). * Reading File Names:: Using completion to read file names and shell commands. -* Completion Styles:: Specifying rules for performing completion. -* Programmed Completion:: Writing your own completion-function. +* Completion Variables:: Variables controlling completion behavior. +* Programmed Completion:: Writing your own completion function. * Completion in Buffers:: Completing text in ordinary buffers. Command Loop === modified file 'doc/lispref/vol2.texi' --- doc/lispref/vol2.texi 2012-04-04 07:54:02 +0000 +++ doc/lispref/vol2.texi 2012-04-04 09:19:32 +0000 @@ -670,8 +670,8 @@ (reading buffer name, file name, etc.). * Reading File Names:: Using completion to read file names and shell commands. -* Completion Styles:: Specifying rules for performing completion. -* Programmed Completion:: Writing your own completion-function. +* Completion Variables:: Variables controlling completion behavior. +* Programmed Completion:: Writing your own completion function. * Completion in Buffers:: Completing text in ordinary buffers. Command Loop === modified file 'etc/NEWS' --- etc/NEWS 2012-04-04 07:54:02 +0000 +++ etc/NEWS 2012-04-04 09:19:32 +0000 @@ -1329,6 +1329,7 @@ *** Functions on `completion-at-point-functions' can return any of the properties valid for `completion-extra-properties'. ++++ *** `completion-annotate-function' is obsolete. *** New `metadata' method for completion tables. The metadata thus returned === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-04-04 07:54:02 +0000 +++ lisp/ChangeLog 2012-04-04 09:19:32 +0000 @@ -1,5 +1,7 @@ 2012-04-04 Chong Yidong + * minibuffer.el (completion-extra-properties): Doc fix. + * subr.el (delayed-warnings-hook): Doc fix. 2012-04-04 Daiki Ueno === modified file 'lisp/minibuffer.el' --- lisp/minibuffer.el 2012-03-12 04:10:59 +0000 +++ lisp/minibuffer.el 2012-04-04 09:19:32 +0000 @@ -1269,17 +1269,24 @@ (defvar completion-extra-properties nil "Property list of extra properties of the current completion job. These include: -`:annotation-function': Function to add annotations in the completions buffer. - The function takes a completion and should either return nil, or a string - that will be displayed next to the completion. The function can access the - completion data via `minibuffer-completion-table' and related variables. + +`:annotation-function': Function to annotate the completions buffer. + The function must accept one argument, a completion string, + and return either nil or a string which is to be displayed + next to the completion (but which is not part of the + completion). The function can access the completion data via + `minibuffer-completion-table' and related variables. + `:exit-function': Function to run after completion is performed. - The function takes at least 2 parameters (STRING and STATUS) where STRING - is the text to which the field was completed and STATUS indicates what - kind of operation happened: if text is now complete it's `finished', if text - cannot be further completed but completion is not finished, it's `sole', if - text is a valid completion but may be further completed, it's `exact', and - other STATUSes may be added in the future.") + + The function must accept two arguments, STRING and STATUS. + STRING is the text to which the field was completed, and + STATUS indicates what kind of operation happened: + `finished' - text is now complete + `sole' - text cannot be further completed but + completion is not finished + `exact' - text is a valid completion but may be further + completed.") (defvar completion-annotate-function nil ------------------------------------------------------------ revno: 107759 committer: Chong Yidong branch nick: trunk timestamp: Wed 2012-04-04 16:11:01 +0800 message: * doc/lispref/os.texi (Notifications): Copyedits. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-04-04 07:54:02 +0000 +++ doc/lispref/ChangeLog 2012-04-04 08:11:01 +0000 @@ -2,6 +2,8 @@ * display.texi (Delayed Warnings): New node. + * os.texi (Notifications): Copyedits. + 2012-04-04 Glenn Morris * os.texi (Notifications): Copyedits. === modified file 'doc/lispref/os.texi' --- doc/lispref/os.texi 2012-04-04 07:38:30 +0000 +++ doc/lispref/os.texi 2012-04-04 08:11:01 +0000 @@ -2255,13 +2255,15 @@ @cindex desktop notifications Emacs is able to send @dfn{notifications} on systems that support the -desktop notification specification of freedesktop.org. In order to -use this functionality, Emacs must have been compiled with D-Bus -support, and the @code{notifications} library must be loaded. +freedesktop.org Desktop Notifications Specification. In order to use +this functionality, Emacs must have been compiled with D-Bus support, +and the @code{notifications} library must be loaded. @defun notifications-notify &rest params -This function sends a notification to the desktop via D-Bus. -Various @var{params} can be set, none of them is mandatory: +This function sends a notification to the desktop via D-Bus, +consisting of the parameters specified by the @var{params} arguments. +These arguments should consist of alternating keyword and value pairs. +The supported keywords and values are as follows: @table @code @item :title @var{title} ------------------------------------------------------------ revno: 107758 committer: Chong Yidong branch nick: trunk timestamp: Wed 2012-04-04 15:54:02 +0800 message: Several miscellaneous doc changes. * doc/lispref/display.texi (Delayed Warnings): New node. * doc/misc/gnus-faq.texi (FAQ 8-2): Mention EasyPG. * doc/misc/gnus.texi: Reduce references to obsolete pgg library. (Security): Note that epg is now the default. * doc/misc/message.texi (Using PGP/MIME): Note that epg is now the default. * doc/misc/nxml-mode.texi (Completion): C-RET is no longer bound to nxml-complete. * lisp/subr.el (delayed-warnings-hook): Doc fix. * src/keyboard.c (Vdelayed_warnings_list): Doc fix. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-04-04 07:38:30 +0000 +++ doc/lispref/ChangeLog 2012-04-04 07:54:02 +0000 @@ -1,3 +1,7 @@ +2012-04-04 Chong Yidong + + * display.texi (Delayed Warnings): New node. + 2012-04-04 Glenn Morris * os.texi (Notifications): Copyedits. === modified file 'doc/lispref/display.texi' --- doc/lispref/display.texi 2012-03-30 16:31:24 +0000 +++ doc/lispref/display.texi 2012-04-04 07:54:02 +0000 @@ -572,6 +572,7 @@ * Warning Basics:: Warnings concepts and functions to report them. * Warning Variables:: Variables programs bind to customize their warnings. * Warning Options:: Variables users set to control display of warnings. +* Delayed Warnings:: Deferring a warning until the end of a command. @end menu @node Warning Basics @@ -750,6 +751,53 @@ that warning is not logged. @end defopt +@node Delayed Warnings +@subsection Delayed Warnings + +Sometimes, you may wish to avoid showing a warning while a command is +running, and only show it only after the end of the command. You can +use the variable @code{delayed-warnings-list} for this. + +@defvar delayed-warnings-list +The value of this variable is a list of warnings to be displayed after +the current command has finished. Each element must be a list + +@smallexample +(@var{type} @var{message} [@var{level} [@var{buffer-name}]]) +@end smallexample + +@noindent +with the same form, and the same meanings, as the argument list of +@code{display-warning} (@pxref{Warning Basics}). Immediately after +running @code{post-command-hook} (@pxref{Command Overview}), the Emacs +command loop displays all the warnings specified by this variable, +then resets it to @code{nil}. +@end defvar + + Programs which need to further customize the delayed warnings +mechanism can change the variable @code{delayed-warnings-hook}: + +@defvar delayed-warnings-hook +This is a normal hook which is run by the Emacs command loop, after +@code{post-command-hook}, in order to to process and display delayed +warnings. + +Its default value is a list of two functions: + +@smallexample +(collapse-delayed-warnings display-delayed-warnings) +@end smallexample + +@findex collapse-delayed-warnings +@findex display-delayed-warnings +@noindent +The function @code{collapse-delayed-warnings} iterates through +@code{delayed-warnings-list}, removing repeated entries. The function +@code{display-delayed-warnings} calls @code{display-warning} on each +of the entries in @code{delayed-warnings-list}, in turn, and then sets +@code{delayed-warnings-list} to @code{nil}. +@end defvar + @node Invisible Text @section Invisible Text === modified file 'doc/lispref/elisp.texi' --- doc/lispref/elisp.texi 2012-04-03 08:10:17 +0000 +++ doc/lispref/elisp.texi 2012-04-04 07:54:02 +0000 @@ -1284,6 +1284,7 @@ * Warning Variables:: Variables programs bind to customize their warnings. * Warning Options:: Variables users set to control display of warnings. +* Delayed Warnings:: Deferring a warning until the end of a command. Overlays === modified file 'doc/lispref/vol1.texi' --- doc/lispref/vol1.texi 2012-04-03 08:10:17 +0000 +++ doc/lispref/vol1.texi 2012-04-04 07:54:02 +0000 @@ -1306,6 +1306,7 @@ * Warning Variables:: Variables programs bind to customize their warnings. * Warning Options:: Variables users set to control display of warnings. +* Delayed Warnings:: Deferring warning display until the end of a command. Overlays === modified file 'doc/lispref/vol2.texi' --- doc/lispref/vol2.texi 2012-04-03 08:10:17 +0000 +++ doc/lispref/vol2.texi 2012-04-04 07:54:02 +0000 @@ -1305,6 +1305,7 @@ * Warning Variables:: Variables programs bind to customize their warnings. * Warning Options:: Variables users set to control display of warnings. +* Delayed Warnings:: Deferring a warning until the end of a command. Overlays === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2012-04-01 09:49:25 +0000 +++ doc/misc/ChangeLog 2012-04-04 07:54:02 +0000 @@ -1,3 +1,15 @@ +2012-04-04 Chong Yidong + + * message.texi (Using PGP/MIME): Note that epg is now the default. + + * gnus.texi: Reduce references to obsolete pgg library. + (Security): Note that epg is now the default. + + * gnus-faq.texi (FAQ 8-2): Mention EasyPG. + + * nxml-mode.texi (Completion): C-RET is no longer bound to + nxml-complete. + 2012-04-01 Jambunathan K * org.texi (Customizing tables in ODT export): Correct few errors. === modified file 'doc/misc/gnus-faq.texi' --- doc/misc/gnus-faq.texi 2012-02-28 08:17:21 +0000 +++ doc/misc/gnus-faq.texi 2012-04-04 07:54:02 +0000 @@ -2109,12 +2109,11 @@ @subsubheading Answer -There's not only the Gnus manual but also the manuals -for message, emacs-mime, sieve and pgg. Those packages -are distributed with Gnus and used by Gnus but aren't -really part of core Gnus, so they are documented in -different info files, you should have a look in those -manuals, too. +There's not only the Gnus manual but also the manuals for message, +emacs-mime, sieve, EasyPG Assistant, and pgg. Those packages are +distributed with Gnus and used by Gnus but aren't really part of core +Gnus, so they are documented in different info files, you should have +a look in those manuals, too. @node FAQ 8-3 @subsubheading Question 8.3 === modified file 'doc/misc/gnus.texi' --- doc/misc/gnus.texi 2012-03-23 11:22:21 +0000 +++ doc/misc/gnus.texi 2012-04-04 07:54:02 +0000 @@ -399,7 +399,7 @@ @item Message manual: Composing messages @item Emacs-MIME: Composing messages; @acronym{MIME}-specific parts. @item Sieve: Managing Sieve scripts in Emacs. -@item PGG: @acronym{PGP/MIME} with Gnus. +@item EasyPG: @acronym{PGP/MIME} with Gnus. @item SASL: @acronym{SASL} authentication in Emacs. @end itemize @@ -426,7 +426,7 @@ * Message:(message). Composing messages. * Emacs-MIME:(emacs-mime). Composing messages; @acronym{MIME}-specific parts. * Sieve:(sieve). Managing Sieve scripts in Emacs. -* PGG:(pgg). @acronym{PGP/MIME} with Gnus. +* EasyPG:(epa). @acronym{PGP/MIME} with Gnus. * SASL:(sasl). @acronym{SASL} authentication in Emacs. @detailmenu @@ -22146,8 +22146,8 @@ @include emacs-mime.texi @chapter Sieve @include sieve.texi -@chapter PGG -@include pgg.texi +@chapter EasyPG +@include epa.texi @chapter SASL @include sasl.texi @end iflatex === modified file 'doc/misc/message.texi' --- doc/misc/message.texi 2012-01-19 07:21:25 +0000 +++ doc/misc/message.texi 2012-04-04 07:54:02 +0000 @@ -1101,10 +1101,11 @@ @acronym{PGP/MIME} requires an external OpenPGP implementation, such as @uref{http://www.gnupg.org/, GNU Privacy Guard}. Pre-OpenPGP -implementations such as PGP 2.x and PGP 5.x are also supported. One -Emacs interface to the PGP implementations, PGG (@pxref{Top, ,PGG, -pgg, PGG Manual}), is included, but Mailcrypt is also supported. -@xref{PGP Compatibility}. +implementations such as PGP 2.x and PGP 5.x are also supported. The +default Emacs interface to the PGP implementation is EasyPG +(@pxref{Top,,EasyPG Assistant User's Manual, epa, EasyPG Assistant +User's Manual}), but PGG (@pxref{Top, ,PGG, pgg, PGG Manual}) and +Mailcrypt are also supported. @xref{PGP Compatibility}. @cindex gpg-agent Message internally calls GnuPG (the @command{gpg} command) to perform @@ -1139,11 +1140,6 @@ gpg --use-agent --sign < /dev/null > /dev/null @end example -The Lisp variable @code{pgg-gpg-use-agent} controls whether to use -@command{gpg-agent}. See also @xref{Caching passphrase, , , pgg, The -PGG Manual}. - - @node PGP Compatibility @subsection Compatibility with older implementations @@ -1158,7 +1154,7 @@ If you have imported your old PGP 2.x key into GnuPG, and want to send signed and encrypted messages to your fellow PGP 2.x users, you'll discover that the receiver cannot understand what you send. One -solution is to use PGP 2.x instead (i.e., if you use @code{pgg}, set +solution is to use PGP 2.x instead (e.g.@: if you use @code{pgg}, set @code{pgg-default-scheme} to @code{pgp}). You could also convince your fellow PGP 2.x users to convert to GnuPG. @vindex mml-signencrypt-style-alist === modified file 'doc/misc/nxml-mode.texi' --- doc/misc/nxml-mode.texi 2012-02-28 08:17:21 +0000 +++ doc/misc/nxml-mode.texi 2012-04-04 07:54:02 +0000 @@ -5,7 +5,7 @@ @c %**end of header @copying -This manual documents nxml-mode, an Emacs major mode for editing +This manual documents nXML mode, an Emacs major mode for editing XML with RELAX NG support. Copyright @copyright{} 2007-2012 Free Software Foundation, Inc. @@ -108,31 +108,25 @@ @node Completion @chapter Completion -Apart from real-time validation, the most important feature that -nxml-mode provides for assisting in document creation is "completion". +Apart from real-time validation, the most important feature that nXML +mode provides for assisting in document creation is "completion". Completion assists the user in inserting characters at point, based on knowledge of the schema and on the contents of the buffer before point. -The traditional GNU Emacs key combination for completion in a -buffer is @kbd{M-@key{TAB}}. However, many window systems -and window managers use this key combination themselves (typically for -switching between windows) and do not pass it to applications. It's -hard to find key combinations in GNU Emacs that are both easy to type -and not taken by something else. @kbd{C-@key{RET}} (i.e. -pressing the Enter or Return key, while the Ctrl key is held down) is -available. It won't be available on a traditional terminal (because -it is indistinguishable from Return), but it will work with a window -system. Therefore we adopt the following solution by default: use -@kbd{C-@key{RET}} when there's a window system and -@kbd{M-@key{TAB}} when there's not. In the following, I -will assume that a window system is being used and will therefore -refer to @kbd{C-@key{RET}}. +nXML mode adapts the standard GNU Emacs command for completion in a +buffer: @code{completion-at-point}, which is bound to @kbd{C-M-i} and +@kbd{M-@key{TAB}}. Note that many window systems and window managers +use @kbd{M-@key{TAB}} themselves (typically for switching between +windows) and do not pass it to applications. In that case, you should +type @kbd{C-M-i} or @kbd{@key{ESC} @key{TAB}} for completion, or bind +@code{completion-at-point} to a key that is convenient for you. In +the following, I will assume that you type @kbd{C-M-i}. -Completion works by examining the symbol preceding point. This -is the symbol to be completed. The symbol to be completed may be the -empty. Completion considers what symbols starting with the symbol to -be completed would be valid replacements for the symbol to be +nXML mode completion works by examining the symbol preceding point. +This is the symbol to be completed. The symbol to be completed may be +the empty. Completion considers what symbols starting with the symbol +to be completed would be valid replacements for the symbol to be completed, given the schema and the contents of the buffer before point. These symbols are the possible completions. An example may make this clearer. Suppose the buffer looks like this (where @point{} @@ -168,7 +162,7 @@ In this case, the symbol to be completed is empty, and the possible completions are just @samp{http://www.w3.org/1999/xhtml}. -When you type @kbd{C-@key{RET}}, what happens depends +When you type @kbd{C-M-i}, what happens depends on what the set of possible completions are. @itemize @bullet @@ -186,7 +180,7 @@ @end example @noindent -@kbd{C-@key{RET}} will yield +@kbd{C-M-i} will yield @example @@ -202,18 +196,17 @@ @end example @noindent -The symbol to be completed is @samp{x}. The possible completions -are @samp{xmlns} and @samp{xml:lang}. These share a -common prefix of @samp{xml}. Thus, @kbd{C-@key{RET}} -will yield: +The symbol to be completed is @samp{x}. The possible completions are +@samp{xmlns} and @samp{xml:lang}. These share a common prefix of +@samp{xml}. Thus, @kbd{C-M-i} will yield: @example + + * subr.el (delayed-warnings-hook): Doc fix. + 2012-04-04 Daiki Ueno * epa.el (epa--select-keys): Bind C-c C-c to finish the key === modified file 'lisp/subr.el' --- lisp/subr.el 2012-03-16 01:27:23 +0000 +++ lisp/subr.el 2012-04-04 07:54:02 +0000 @@ -1893,9 +1893,10 @@ ;; Ref http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00085.html (defvar delayed-warnings-hook '(collapse-delayed-warnings display-delayed-warnings) - "Normal hook run to process delayed warnings. -Functions in this hook should access the `delayed-warnings-list' -variable (which see) and remove from it the warnings they process.") + "Normal hook run to process and display delayed warnings. +By default, this hook contains functions to consolidate the +warnings listed in `delayed-warnings-list', display them, and set +`delayed-warnings-list' back to nil.") ;;;; Process stuff. === modified file 'src/ChangeLog' --- src/ChangeLog 2012-04-01 16:55:30 +0000 +++ src/ChangeLog 2012-04-04 07:54:02 +0000 @@ -1,3 +1,7 @@ +2012-04-04 Chong Yidong + + * keyboard.c (Vdelayed_warnings_list): Doc fix. + 2012-04-01 Eli Zaretskii * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA === modified file 'src/keyboard.c' --- src/keyboard.c 2012-03-28 15:54:54 +0000 +++ src/keyboard.c 2012-04-04 07:54:02 +0000 @@ -12168,7 +12168,7 @@ Vdeferred_action_function = Qnil; DEFVAR_LISP ("delayed-warnings-list", Vdelayed_warnings_list, - doc: /* List of warnings to be displayed as soon as possible. + doc: /* 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 ------------------------------------------------------------ revno: 107757 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-04-04 00:38:30 -0700 message: * doc/lispref/os.texi (Notifications): Copyedits. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-04-03 08:10:17 +0000 +++ doc/lispref/ChangeLog 2012-04-04 07:38:30 +0000 @@ -1,3 +1,7 @@ +2012-04-04 Glenn Morris + + * os.texi (Notifications): Copyedits. + 2012-04-03 Michael Albinus * os.texi (Terminal-Specific): Fix typo. === modified file 'doc/lispref/os.texi' --- doc/lispref/os.texi 2012-04-03 08:10:17 +0000 +++ doc/lispref/os.texi 2012-04-04 07:38:30 +0000 @@ -2254,9 +2254,10 @@ @section Desktop Notifications @cindex desktop notifications -Emacs is able to send notifications on systems which support the +Emacs is able to send @dfn{notifications} on systems that support the desktop notification specification of freedesktop.org. In order to -use this functionality, the package @code{notifications} must be loaded. +use this functionality, Emacs must have been compiled with D-Bus +support, and the @code{notifications} library must be loaded. @defun notifications-notify &rest params This function sends a notification to the desktop via D-Bus. @@ -2272,7 +2273,7 @@ @samp{"bold text"}, or hyperlinks. @item :app-name @var{name} -The name of the application sending the notification. Default is +The name of the application sending the notification. The default is @code{notifications-application-name}. @item :replaces-id @var{id} @@ -2281,7 +2282,7 @@ @item :app-icon @var{icon-file} The file name of the notification icon. If set to @code{nil}, no icon -is displayed. Default is @code{notifications-application-icon}. +is displayed. The default is @code{notifications-application-icon}. @item :actions (@var{key} @var{title} @var{key} @var{title} ...) A list of actions to be applied. @var{key} and @var{title} are both @@ -2297,7 +2298,7 @@ the notification never expires. Default value is -1. @item :urgency @var{urgency} -The urgency level. It can be @code{low}, @code{normal} or @code{critical}. +The urgency level. It can be @code{low}, @code{normal}, or @code{critical}. @item :category @var{category} The type of notification this is, a string. @@ -2307,9 +2308,9 @@ calling program, like @samp{"emacs"}. @item :image-data (@var{width} @var{height} @var{rowstride} @var{has-alpha} @var{bits} @var{channels} @var{data}) -This is a raw data image format which describes the width, height, -rowstride, has alpha, bits per sample, channels and image data -respectively. +This is a raw data image format that describes the width, height, +rowstride, whether there is an alpha channel, bits per sample, +channels and image data, respectively. @item :image-path @var{path} This is represented either as a URI (@samp{file://} is the only URI @@ -2331,7 +2332,7 @@ @item :x @var{position} @itemx :y @var{position} -Specifies the X respectively Y location on the screen that the +Specifies the X, Y location on the screen that the notification should point to. Both arguments must be used together. @item :on-action @var{function} @@ -2356,9 +2357,7 @@ This function returns a notification id, an integer, which can be used to manipulate the notification item with @code{notifications-close-notification} or the @code{:replaces-id} -argument of another @code{notifications-notify} call. - -Example: +argument of another @code{notifications-notify} call. For example: @example @group @@ -2392,7 +2391,7 @@ @end defun @defun notifications-close-notification id -This function closes a notification with identifier ID. +This function closes a notification with identifier @var{id}. @end defun @node Dynamic Libraries ------------------------------------------------------------ revno: 107756 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-04-04 00:36:19 -0700 message: Restrict ignore patterns for texinfo intermediate files; add some more. diff: === modified file '.bzrignore' --- .bzrignore 2012-02-28 08:21:56 +0000 +++ .bzrignore 2012-04-04 07:36:19 +0000 @@ -36,17 +36,22 @@ TAGS-LISP cxxdefs.h # Intermediate files when making pdf versions of the manuals. -*.aux -*.cp -*.fn -*.fns -*.ky -*.pg -*.toc -*.tp -*.vr +doc/**/*.aux +doc/**/*.cp +doc/**/*.cps +doc/**/*.fn +doc/**/*.fns +doc/**/*.ky +doc/**/*.kys +doc/**/*.log +doc/**/*.op +doc/**/*.ops +doc/**/*.pg +doc/**/*.toc +doc/**/*.tp +doc/**/*.vr +doc/**/*.vrs doc/**/*.pdf -doc/**/*.log !doc/lispintro/cons-*.pdf !doc/lispintro/drawers.pdf !doc/lispintro/lambda-*.pdf ------------------------------------------------------------ revno: 107755 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-04-04 00:30:02 -0700 message: Fix commenting convention in PROBLEMS example diff: === modified file 'etc/PROBLEMS' --- etc/PROBLEMS 2012-03-31 20:22:04 +0000 +++ etc/PROBLEMS 2012-04-04 07:30:02 +0000 @@ -2258,10 +2258,10 @@ built in editor to print (this is possibly the only useful purpose it has): -(setq printer-name "") ;; notepad takes the default -(setq lpr-command "notepad") ;; notepad -(setq lpr-switches nil) ;; not needed -(setq lpr-printer-switch "/P") ;; run notepad as batch printer +(setq printer-name "") ; notepad takes the default +(setq lpr-command "notepad") ; notepad +(setq lpr-switches nil) ; not needed +(setq lpr-printer-switch "/P") ; run notepad as batch printer ** Antivirus software interacts badly with the MS-Windows version of Emacs. ------------------------------------------------------------ revno: 107754 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-04-04 00:29:06 -0700 message: Fix NEWS typo diff: === modified file 'etc/NEWS' --- etc/NEWS 2012-04-03 13:44:41 +0000 +++ etc/NEWS 2012-04-04 07:29:06 +0000 @@ -95,7 +95,7 @@ ** New command line option `--no-site-lisp' removes site-lisp directories from load-path. -Q now implies this. This option does not affect the EMACSLOADPATH environment variable (and hence has no effect for -Nextstep builds.) +Nextstep builds). * Changes in Emacs 24.1 ------------------------------------------------------------ revno: 107753 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-04-04 00:27:58 -0700 message: ChangeLog fix diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-04-04 07:27:17 +0000 +++ doc/emacs/ChangeLog 2012-04-04 07:27:58 +0000 @@ -4,7 +4,7 @@ Use Texinfo-recommended convention for quotes and punctuation. Comment out a few specialized (Rmail) items. New items: Bidirectional Text, Client, Directory Local Variable, - File Local Variable, Server, Theme, Trash Can. + File Local Variable, Package, Server, Theme, Trash Can. 2012-04-03 Chong Yidong ------------------------------------------------------------ revno: 107752 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-04-04 00:27:17 -0700 message: More small edits for doc/emacs/glossary.texi * doc/emacs/glossary.texi (Glossary): Copyedits. New items: Bidirectional Text, Client, Directory Local Variable, File Local Variable, Server, Theme, Trash Can. * admin/FOR-RELEASE: Related markup. diff: === modified file 'admin/FOR-RELEASE' --- admin/FOR-RELEASE 2012-03-31 19:58:05 +0000 +++ admin/FOR-RELEASE 2012-04-04 07:27:17 +0000 @@ -143,7 +143,7 @@ fixit.texi cyd fortran-xtra.texi rgm frames.texi cyd -glossary.texi +glossary.texi rgm help.texi cyd indent.texi cyd killing.texi cyd === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-04-04 01:44:33 +0000 +++ doc/emacs/ChangeLog 2012-04-04 07:27:17 +0000 @@ -3,6 +3,8 @@ * glossary.texi (Glossary): Copyedits. Use Texinfo-recommended convention for quotes and punctuation. Comment out a few specialized (Rmail) items. + New items: Bidirectional Text, Client, Directory Local Variable, + File Local Variable, Server, Theme, Trash Can. 2012-04-03 Chong Yidong === modified file 'doc/emacs/glossary.texi' --- doc/emacs/glossary.texi 2012-04-04 01:44:33 +0000 +++ doc/emacs/glossary.texi 2012-04-04 07:27:17 +0000 @@ -5,6 +5,10 @@ @node Glossary, Key Index, Intro, Top @unnumbered Glossary +@c It would be nice if texinfo could add internal links from one item +@c to another here. Eg when we say "see also `foo bar'", there would +@c be a hyperlink to the foo bar item. + @table @asis @item Abbrev An abbrev is a text string that expands into a different text string @@ -17,6 +21,8 @@ commands @kbd{C-]} and @kbd{M-x top-level} are used for this. @xref{Quitting}. +@c FIXME? Active Region + @item Alt Alt is the name of a modifier bit that a keyboard input character may have. To make a character Alt, type it while holding down the @key{ALT} @@ -87,6 +93,12 @@ A base buffer is a buffer whose text is shared by an indirect buffer (q.v.@:). +@item Bidirectional Text +Some human languages, such as English, are written from left to right. +Others, such as Arabic, are written from right to left. Emacs +supports both of these forms, as well as any mixture of them---this +is `bidirectional text'. @xref{Bidirectional Editing}. + @item Bind To bind a key sequence means to give it a binding (q.v.@:). @xref{Rebinding}. @@ -175,6 +187,9 @@ press a mouse button and release it without moving the mouse. @xref{Mouse Buttons}. +@item Client +See `server'. + @item Clipboard A clipboard is a buffer provided by the window system for transferring text between applications. On the X Window system, the clipboard is @@ -363,6 +378,11 @@ you can place individual files or subdirectories. They are sometimes referred to as ``folders''. @xref{Directories}. +@item Directory Local Variable +A directory local variable is a local variable (q.v.@:) that applies +to all the files within a certain directory. @xref{Directory +Variables}. + @item Dired Dired is the Emacs facility that displays the contents of a file directory and allows you to ``edit the directory'', performing @@ -387,6 +407,9 @@ for debugging Emacs bugs. Emacs does not make a dribble file unless you tell it to. @xref{Bugs}. +@c TODO? Not really appropriate for the user manual I think. +@c Dynamic Binding + @item Echo Area The echo area is the bottom line of the screen, used for echoing the arguments to commands, for asking questions, and showing brief messages @@ -461,11 +484,16 @@ order to display that text as specified by the face attributes. @xref{Faces}. +@item File Local Variable +A file local variable is a local variable (q.v.@:) specified in a +given file. @xref{File Variables}. See also `directory variable'. + @item File Locking Emacs uses file locking to notice when two different users start to edit one file at the same time. @xref{Interlocking}. @item File Name +@c This is fairly tautological... A file name is a name that refers to a file. File names may be relative or absolute; the meaning of a relative file name depends on the current directory, but an absolute file name refers to the same file regardless @@ -496,11 +524,12 @@ Filling text means adjusting the position of line-breaks to shift text between consecutive lines, so that all the lines are approximately the same length. @xref{Filling}. Some other editors call this feature -`line wrapping'. +``line wrapping''. @item Font Lock Font Lock is a mode that highlights parts of buffer text in different -faces, according to the syntax. For example, all comments (q.v.@:) +faces, according to the syntax. Some other editors refer to this as +``syntax highlighting''. For example, all comments (q.v.@:) might be colored red. @xref{Font Lock}. @item Fontset @@ -534,7 +563,7 @@ @item Fringe On a graphical display (q.v.@:), there's a narrow portion of the frame (q.v.@:) between the text area and the window's border. These -`fringes' are used to display symbols that provide information about +``fringes'' are used to display symbols that provide information about the buffer text (@pxref{Fringes}). Emacs displays the fringe using a special face (q.v.@:) called @code{fringe}. @xref{Faces,fringe}. @@ -613,14 +642,14 @@ @item @key{HELP} @key{HELP} is the Emacs name for @kbd{C-h} or @key{F1}. You can type -@key{HELP} at any time to ask what options you have, or to ask what any +@key{HELP} at any time to ask what options you have, or to ask what a command does. @xref{Help}. @item Help Echo Help echo is a short message displayed in the echo area (q.v.@:) when the mouse pointer is located on portions of display that require some explanations. Emacs displays help echo for menu items, parts of the -mode line, tool-bar buttons, etc. On graphics displays, the messages +mode line, tool-bar buttons, etc. On graphical displays, the messages can be displayed as tooltips (q.v.@:). @xref{Tooltips}. @item Home Directory @@ -650,7 +679,7 @@ @item Inbox An inbox is a file in which mail is delivered by the operating system. -Rmail transfers mail from inboxes to Rmail files (q.v.@:) in which the +Rmail transfers mail from inboxes to Rmail files in which the mail is then stored permanently or until explicitly deleted. @xref{Rmail Inbox}. @@ -689,9 +718,7 @@ or from some other place in Emacs. @item Interlocking -Interlocking is a feature for warning when you start to alter a file -that someone else is already editing. -@xref{Interlocking,Interlocking,Simultaneous Editing}. +See `file locking'. @item Isearch See `incremental search'. @@ -712,7 +739,7 @@ @cindex keyboard shortcuts @item Keyboard Shortcut -A keyboard shortcut is a key sequence (q.v.@:) which invokes a +A keyboard shortcut is a key sequence (q.v.@:) that invokes a command. What some programs call ``assigning a keyboard shortcut'', Emacs calls ``binding a key sequence''. See `binding'. @@ -734,9 +761,9 @@ key sequences. @item Kill Ring -The kill ring is where all text you have killed recently is saved. -You can reinsert any of the killed text still in the ring; this is -called yanking (q.v.@:). @xref{Yanking}. +The kill ring is where all text you have killed (see `killing') +recently is saved. You can reinsert any of the killed text still in +the ring; this is called yanking (q.v.@:). @xref{Yanking}. @item Killing Killing means erasing text and saving it on the kill ring so it can be @@ -755,6 +782,9 @@ Environments}. These defaults are relevant if you edit non-@acronym{ASCII} text (@pxref{International}). +@c TODO? Not really appropriate for the user manual I think. +@c Lexical Binding + @item Line Wrapping See `filling'. @@ -834,7 +864,7 @@ @item Mark Ring The mark ring is used to hold several recent previous locations of the -mark, just in case you want to move back to them. Each buffer has its +mark, in case you want to move back to them. Each buffer has its own mark ring; in addition, there is a single global mark ring (q.v.@:). @xref{Mark Ring}. @@ -873,7 +903,7 @@ again. @xref{Minibuffer History}. @item Minor Mode -A minor mode is an optional feature of Emacs which can be switched on +A minor mode is an optional feature of Emacs, which can be switched on or off independently of all other features. Each minor mode has a command to turn it on or off. Some minor modes are global (q.v.@:), and some are local (q.v.@:). @xref{Minor Modes}. @@ -911,7 +941,7 @@ @xref{International Chars, International Characters}. @item Named Mark -A named mark is a register (q.v.@:) in its role of recording a +A named mark is a register (q.v.@:), in its role of recording a location in text so that you can move point to that location. @xref{Registers}. @@ -940,11 +970,16 @@ @item Overwrite Mode Overwrite mode is a minor mode. When it is enabled, ordinary text characters replace the existing text after point rather than pushing -it to the right. @xref{Minor Modes}. +it to one side. @xref{Minor Modes}. + +@item Package +A package is a collection of Lisp code that you download and +automatically install from within Emacs. Packages provide a +convenient way to add new features. @xref{Packages}. @item Page A page is a unit of text, delimited by formfeed characters (@acronym{ASCII} -control-L, code 014) coming at the beginning of a line. Some Emacs +control-L, code 014) at the beginning of a line. Some Emacs commands are provided for moving over and operating on pages. @xref{Pages}. @@ -1163,6 +1198,20 @@ Emacs has commands for moving by or killing by sentences. @xref{Sentences}. +@item Server +Within Emacs, you can start a `server' process, which listens for +connections from `clients'. This offers a faster alternative to +starting several Emacs instances. @xref{Emacs Server}. See also +`daemon'. + +@c This is only covered in the lispref, not the user manual. +@ignore +@item Session Manager +Some window systems (q.v.@:) provide a tool called a `session manager'. +This offers the ability to save your windows when you log off, +and restore them after you log in again. +@end ignore + @item Sexp A sexp (short for ``s-expression'') is the basic syntactic unit of Lisp in its textual form: either a list, or Lisp atom. Sexps are also @@ -1193,7 +1242,7 @@ via a convenient user interface. @xref{Spelling}. @item String -A string is a kind of Lisp data object which contains a sequence of +A string is a kind of Lisp data object that contains a sequence of characters. Many Emacs variables are intended to have strings as values. The Lisp syntax for a string consists of the characters in the string with a @samp{"} before and another @samp{"} after. A @samp{"} @@ -1267,6 +1316,11 @@ the buffer. Images in the buffer are recorded as text properties; they also specify formatting information. @xref{Editing Format Info}. +@item Theme +A theme is a set of customizations (q.v.@:) that give Emacs a +particular appearance or behavior. For example, you might use a theme +for your favorite set of faces (q.v.@:). + @item Tool Bar The tool bar is a line (sometimes multiple lines) of icons at the top of an Emacs frame. Clicking on one of these icons executes a command. @@ -1285,12 +1339,17 @@ (q.v.@:), and not in the middle of a command. You can get back to top level by aborting (q.v.@:) and quitting (q.v.@:). @xref{Quitting}. +@c FIXME? Transient Mark Mode + @item Transposition Transposing two units of text means putting each one into the place formerly occupied by the other. There are Emacs commands to transpose two adjacent characters, words, balanced expressions (q.v.@:) or lines (@pxref{Transpose}). +@item Trash Can +See `deletion of files'. + @item Truncation Truncating text lines in the display means leaving out any text on a line that does not fit within the right margin of the window ------------------------------------------------------------ revno: 107751 committer: Glenn Morris branch nick: trunk timestamp: Tue 2012-04-03 22:11:56 -0400 message: admin/notes/tags small update diff: === modified file 'admin/notes/tags' --- admin/notes/tags 2012-04-03 20:03:34 +0000 +++ admin/notes/tags 2012-04-04 02:11:56 +0000 @@ -5,6 +5,9 @@ http://lists.gnu.org/archive/html/emacs-devel/2012-04/msg00042.html +(UPDATE: It seems tag deletion is basically impossible in bzr, so all +these tags came back.) + In the unlikely event that you need them, the removed tags were: tag revision