From: Paul Eggert Date: Tue, 3 Mar 2015 22:52:04 +0000 (-0800) Subject: Merge from origin/emacs-24 X-Git-Tag: emacs-25.0.90~2564^2~232 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/98284ef51c67fa69796946466337d426ab81f9ee Merge from origin/emacs-24 c4ade11 textmodes/ispell.el: Look for aspell .dat files also under dict-dir e28ec9a ispell.el: Extend to aspell current hunspell handling of aliases Conflicts: lisp/ChangeLog --- 98284ef51c67fa69796946466337d426ab81f9ee diff --cc admin/ChangeLog index bcc43c52af,0f70469fc0..092bfa9ad5 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@@ -2,8 -2,7 +2,7 @@@ * MAINTAINERS: Add myself to section 2 - 2015-03-03 Glenn Morris -2015-02-02 Glenn Morris +2015-03-03 Glenn Morris * admin.el (manual-meta-string): Use bug-gnu-emacs@gnu email address rather than webmasters@gnu. diff --cc doc/lispref/ChangeLog index 50cc9cb43b,be2bb3e79e..42bff7c865 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@@ -3,65 -3,7 +3,64 @@@ * processes.texi (Synchronous Processes): Update documentation of call-process-shell-command and process-file-shell-command. - 2015-03-03 Eli Zaretskii -2015-01-24 Eli Zaretskii +2015-03-03 Daniel Colascione + + * control.texi (Generators): Correct missing word. Clarify which + forms are legal in which parts of `unwind-protect'. Fix orphaned + close parenthesis. + + * objects.texi (Finalizer Type): New section for finalizer objects. + (Type Predicates): Mention finalizers in `type-of' documentation. + * elisp.texi (Top): Link to finalizer type. + +2015-03-02 Daniel Colascione + + * control.texi (Generators): New section + * elisp.text: Reference new section. + +2015-02-28 Eli Zaretskii + + * searching.texi (Char Classes): Update the documentation of + [:alpha:] and [:alnum:]. (Bug#19878) + +2015-02-27 Eli Zaretskii + + * os.texi (Startup Summary): + * display.texi (Window Systems): Mention peculiarities of daemon + mode on MS-Windows. + +2015-02-11 Martin Rudalics + + * frames.texi (Size Parameters): Update description of + fullscreen frame parameter. Describe `fullscreen-restore' + parameter. + +2015-02-09 Nicolas Petton + + * sequences.texi (Sequence Functions): Update documentation + examples for seq-group-by. + +2015-02-09 Eli Zaretskii + + * positions.texi (Screen Lines): Update the documentation of + vertical-motion to document the new additional argument. + +2015-02-06 Nicolas Petton + + * sequences.texi (Sequence Functions): Add documentation for + seq-mapcat, seq-partition and seq-group-by. + +2015-02-05 Martin Rudalics + + * display.texi (Size of Displayed Text): Remove description of + optional argument BUFFER of `window-text-pixel-size'. + +2015-02-01 Martin Rudalics + + * display.texi (Size of Displayed Text): Describe optional + argument BUFFER of `window-text-pixel-size'. + +2015-01-28 Eli Zaretskii * searching.texi (Regexp Search): Add a cross-reference to "Syntax of Regexps". (Bug#19668) diff --cc doc/misc/ChangeLog index c00cb2f722,0e43b9ffe4..c721b25011 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@@ -4,139 -4,19 +4,138 @@@ for erc-format-nick-function and erc-rename-buffers options. (Connecting): fix typo - 2015-03-03 Michael Albinus -2014-12-29 Michael Albinus +2015-03-02 Daniel Colascione - Sync with Tramp 2.2.11. + * cl.texi (Iteration Clauses): Mention iterator support. + +2015-02-25 Tassilo Horn + + * reftex.texi (Multifile Documents): Document + reftex-include-file-commands. + (Options): Mention that non-customize changes might require + calling reftex-compile-variables. + +2015-02-21 Paul Eggert + + * texinfo.tex: Update from gnulib. + +2015-02-10 Lars Ingebrigtsen + + * eww.texi (Basics): Mention eww-toggle-fonts. + +2015-02-05 Glenn Morris + + * auth.texi (Multiple GMail accounts with Gnus): Markup fix. + +2015-02-05 Teodor Zlatanov + + * auth.texi (Multiple GMail accounts with Gnus): Add FAQ. + +2015-02-05 Lars Ingebrigtsen + + * gnus.texi (Using IMAP): Fix menu node name. + +2015-02-05 Trevor Murphy + + * gnus.texi (Support for IMAP Extensions): Document the Gmail label + extension. + +2015-02-04 Paul Eggert + + * texinfo.tex: Update from gnulib. + +2015-01-23 Thomas Fitzsimmons + + * eudc.texi (LDAP Configuration): Rename from LDAP Requirements + and provide configuration examples. + +2015-01-17 Stefan Monnier + * eieio.texi (Slot Options): Document :protection as unsupported. + +2015-01-01 Michael Albinus + + Sync with Tramp 2.2.11. * trampver.texi: Update release number. -2014-11-10 Tassilo Horn +2014-12-31 Paul Eggert - * gnus.texi (HTML): Update section so that it mentions shr and w3m. - Also link the full EWW manual that explains more on shr, too. + Less 'make' chatter for Emacs doc + * Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_GEN, am__v_GEN_) + (am__v_GEN_0, am__v_GEN_1): New macros, from ../../src/Makefile.in. + (ENVADD, $(buildinfodir)/%.info, %.html, ${buildinfodir}/ccmode.info) + (${buildinfodir}/efaq%.info, efaq%.html): + Use them. - * gnus-faq.texi (FAQ 4 - Reading messages, FAQ 4-16): Add Q&A on how to - increase contrast when displaying HTML mail with shr. +2014-12-31 Filipp Gunbin + + * info.texi (Create Info buffer): Mention info-display-manual prefix. + +2014-12-29 Paul Eggert + + * efaq.texi (Displaying the current file name in the titlebar): + Prefer (system-name) to system-name. + * smtpmail.texi (Server workarounds): Fix grammar. + +2014-12-18 Eric Abrahamsen + + * gnus.texi (Gnus Registry Setup): Explain pruning changes. + Mention gnus-registry-prune-factor. Explain sorting changes and + gnus-registry-default-sort-function. Correct file extension. + +2014-12-17 Jay Belanger + + * calc.texi (About This Manual): Update instructions + for building the manual. + +2014-12-15 Alan Mackenzie + + "Advice" is a mass noun. Amend text accordingly. + * cl.texi (Obsolete Macros): Replace "an advice" with "advice". + +2014-12-12 Paul Eggert + + * texinfo.tex: Update from gnulib. + +2014-12-08 Andrey Kotlarski + + * eww.texi (Basics): Document managing multiple eww buffers. + +2014-12-05 Lars Magne Ingebrigtsen + + * eww.texi (Basics): Document eww PDF viewing. + +2014-11-23 Ivan Shmakov + + * eww.texi (Advanced): Mention the Desktop stuff (bug#18010). + +2014-11-23 Michael Albinus + + * tramp.texi (Remote processes): Let-bind environment variables to + `process-environment' when running `process-file' or + `start-file-process'. + +2014-11-19 Ivan Shmakov + + * eww.texi (Basics): Document `eww-history-limit'. + +2014-11-14 Paul Eggert + + * org.texi (The date/time prompt, Matching tags and properties): + Use leading zero with 24-hour times less than 10:00. + +2014-11-13 Lars Magne Ingebrigtsen + + * eww.texi (Variable Index): Mention `eww-after-render-hook'. + +2014-11-10 Lars Magne Ingebrigtsen + + * eww.texi (Basics): Document `eww-readable'. + +2014-11-10 Katsumi Yamaoka + + * gnus.texi (Top): Add missing `HTML' menu. + (HTML): Fix xref to FAQ 4-16. 2014-11-09 Glenn Morris diff --cc etc/ChangeLog index 9c11e18fb6,41e44be959..cd5c54037c --- a/etc/ChangeLog +++ b/etc/ChangeLog @@@ -1,31 -1,8 +1,30 @@@ -2015-02-12 Kelvin White +2015-03-03 Kelvin White -- * NEWS: Add section to include ERC changes ++ * NEWS.24: Add section to include ERC changes. - 2015-03-03 Eli Zaretskii -2015-01-17 Eli Zaretskii +2015-03-02 Daniel Colascione + + * NEWS: Mention finalizers. + +2015-02-09 Gareth Rees (tiny change) + + * NEWS.24: Fix typo (bug#19820) + +2015-02-08 Artur Malabarba + + * NEWS: Document `comment-line'. + +2015-02-03 Artur Malabarba + + * NEWS: Document package.el's improved dependency-handling. + +2015-01-29 Francesc Rocher + + * images/splash.svg, images/splash.png: + * images/splash.pbm, images/splash.xpm, images/README: + Splash images refurbished. + +2015-01-28 Eli Zaretskii * tutorials/TUTORIAL.he: Use u+05f4 HEBREW PUNCTUATION GERSHAYIM instead of u+0022 QUOTATION MARK in Hebrew acronyms. diff --cc etc/NEWS index 0e02fc7022,7d9e1f0d83..ad8b6f2781 --- a/etc/NEWS +++ b/etc/NEWS @@@ -14,456 -14,861 +14,428 @@@ and NEWS.1-17 for changes in older Emac 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. - -* Changes in Emacs 24.5 - -** This is mainly a bug-fix release, but there are some other changes. - -** The default value of `history-length' has increased to 100. - -** The variable `redisplay-dont-pause' is obsolete. ++Temporary note: +++++ indicates that all necessary documentation updates are complete. ++ (This means all relevant manuals in doc/ AND lisp doc-strings.) ++--- means no change in the manuals is needed. ++When you add a new item, use the appropriate mark if you are sure it applies, ++otherwise leave it unmarked. + -* Changes in Specialized Modes and Packages in Emacs 24.5 - -** `call-process-shell-command' and `process-file-shell-command' no longer -take "&rest args". - -** The option `browse-url-firefox-startup-arguments' no longer has an effect. - -** ERC - -*** New option `erc-rename-buffers'. +* Installation Changes in Emacs 25.1 -*** New faces `erc-my-nick-prefix-face' and `erc-nick-prefix-face'. ++++ - +** Building Emacs now requires C99 or later. - ** The default value of `history-length' has increased to 100. - - ** The variable `redisplay-dont-pause' is obsolete. - -*** `erc-format-@nick' displays all user modes instead of only op and voice. +** Building Emacs now requires GNU make, version 3.81 or later. - ** `call-process-shell-command' and `process-file-shell-command' no longer - take "&rest args". - - ** The option `browse-url-firefox-startup-arguments' no longer has an effect. - -*** The display of irc commands in the current buffer has been disabled. +** By default, Emacs no longer works on IRIX. We expect that Emacs +users are not affected by this, as SGI stopped supporting IRIX in +December 2013. If you are affected, please send a bug report. You +should be able to work around the problem either by porting the Emacs +undumping code to GCC under IRIX, or by configuring --with-wide-int, +or by sticking with Emacs 24.4. - ** ERC - -*** `erc-version' now follows the Emacs version. +** 'configure' now prefers gnustep-config when configuring GNUstep. +If gnustep-config is not available, the old heuristics are used. - +++ - *** New option `erc-rename-buffers'. - - *** New faces `erc-my-nick-prefix-face' and `erc-nick-prefix-face'. - - *** `erc-format-@nick' displays all user modes instead of only op and voice. - - *** The display of irc commands in the current buffer has been disabled. - - *** `erc-version' now follows the Emacs version. - --** Obsolete packages -- --*** cc-compat.el - +--- +** The configure option `--with-pkg-config-prog' has been removed. +Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to. --*** crisp.el (moved to elpa.gnu.org) - +** The configure option '--enable-silent-rules' is now the default, +and silent rules are now quieter. To get the old behavior where +'make' chatters a lot, configure with '--disable-silent-rules' or +build with 'make V=1'. --*** tpu-edt.el, ws-mode.el --These emulations of old editors are believed to be no longer relevant -- - contact emacs-devel@gnu.org if you disagree. - +--- +** The configure option '--with-gameuser' now allows to specify a +group instead of a user if its argument is prefixed by ':' (a colon). +This will cause the game score files in ${localstatedir}/games/emacs +to be owned by that group, and the helper program for updating them to +be installed setgid. The option now defaults to the 'games' group. -*** vi.el, vip.el (try M-x viper instead) +--- +** The `grep-changelog' script (and its manual page) are no longer included. +It has no particular connection to Emacs and has not changed in years, +so if you want to use it, you can always take a copy from an older Emacs. - *** vi.el, vip.el (try M-x viper instead) - -* Installation Changes in Emacs 24.4 - -** Emacs can now be compiled with ACL (access control list) support. -This happens by default if a suitable support library is found at -build time, like libacl on GNU/Linux. To prevent this, use the -configure option `--disable-acl'. See below for the features this provides. - -** Emacs can now be compiled with file notification support. -This happens by default if a suitable system library is found at -build time. To prevent this, use the configure option -`--without-file-notification'. See below for file-notify features. -This feature is not available for the Nextstep port. - -** Emacs can now be compiled with zlib support. -This happens by default if zlib is present, which it normally is. -To prevent this, use the configure option `--without-zlib'. -This provides the function `zlib-decompress-region'; see below for details. - -** The configure option `--without-compress-info' has been generalized, -and renamed to `--without-compress-install'. It now prevents compression -of _any_ files during installation. - -** The configure option `--with-crt-dir' has been removed. -It is no longer needed, as the crt*.o files are no longer linked specially. - -** Directories passed to configure option `--enable-locallisppath' are -no longer created during installation. - -** Emacs for Nextstep (Mac OS X, GNUstep) can be built with ImageMagick support. -This requires pkg-config to be available at build time. +* Startup Changes in Emacs 25.1 -* Startup Changes in Emacs 24.4 - -** When initializing `load-path', an empty element in the EMACSLOADPATH -environment variable (either leading, e.g., ":/foo"; trailing, e.g., -"/foo:"; or embedded, e.g., "/foo::/bar") is replaced with the default -load-path (the one that would have been used if EMACSLOADPATH was unset). -This makes it easier to _extend_ the load-path via EMACSLOADPATH -(previously, EMACSLOADPATH had to specify the complete load-path, -including the defaults). (In older versions of Emacs, an empty element -was replaced by ".", so use an explicit "." now if that is what you want.) - -** The -L option, which normally prepends its argument to load-path, -will instead append, if the argument begins with `:' (or `;' on MS Windows; -i.e., `path-separator'). - -** If you use either site-load.el or site-init.el to customize the dumped -Emacs executable, any changes to `load-path' that these files make -will no longer be present after dumping. To affect a permanent change -to `load-path', use the `--enable-locallisppath' option of `configure'. - -** The user option `initial-buffer-choice' can now specify a function -to set up the initial buffer. +* Changes in Emacs 25.1 + +** New command `comment-line' bound to `C-x C-;'. + +** New function `custom-prompt-customize-unsaved-options' checks for +unsaved customizations and prompts user to customize (if found). + ++++ +** Network security (TLS/SSL certificate validity and the like) is +added via the new Network Security Manager (NSM) and controlled via +the `network-security-level' variable. + +** C-h l now also lists the commands that were run. + +--- +** The new M-s M-w key binding uses eww to search the web for the +text in the region. + +** M-x suggests shorthands and ignores obsolete commands for completion. +** x-select-enable-clipboard is renamed select-enable-clipboard. +x-select-enable-primary and renamed select-enable-primary. +Additionally they both now apply to all systems (OSX, GNUstep, Windows, you +name it), with the proviso that on some systems (e.g. Windows) +select-enable-primary is ineffective since the system doesn't +have the equivalent of a primary selection. + ++++ +** terpri gets an optional arg ENSURE to conditionally output a newline. + ++++ +** New macro `define-advice'. + +** `insert-register' now leaves point after the inserted text +when called interactively. A prefix argument toggles this behavior. + +** New var `truncate-string-ellipsis' to choose how to indicate truncation. + ++++ +** The new variable `term-file-aliases' replaces some files from lisp/term. +The function `tty-run-terminal-initialization' consults this variable +when deciding what terminal-specific initialization code to run. + +--- +** New variable `system-configuration-features', listing some of the +main features that Emacs was compiled with. This is mainly intended +for use in Emacs bug reports. + ++++ +** A password is now hidden also when typed in batch mode. Another +hiding character but the default `.' can be used by let-binding the +variable `read-hide-char'. + +** The new functions `string-collate-lessp' and `string-collate-equalp' +preserve the collation order as defined by the system's locale(1) +environment. For the time being this is implemented for modern POSIX +systems and for MS-Windows, for other systems they fall back to their +counterparts `string-lessp' and `string-equal'. + +*** The ls-lisp package uses `string-collate-lessp' to sort file names. +If you want the old, locale-independent sorting, customize the new +option `ls-lisp-use-string-collate' to a nil value. + +*** The MS-Windows specific variable `w32-collate-ignore-punctuation', +if set to a non-nil value, causes the above 2 functions to ignore +symbol and punctuation characters when collating strings. This +emulates the behavior of modern Posix platforms when the locale's +codeset is "UTF-8" (as in "en_US.UTF-8"). This is needed because +MS-Windows doesn't support UTF-8 as codeset in its locales. + ++++ +** The new function `bidi-find-overridden-directionality' allows to +find characters whose directionality was, perhaps maliciously, +overridden by directional override control characters. Lisp programs +can use this to detect potential phishing of URLs and other links that +exploits bidirectional display reordering. + ++++ +** The new function `buffer-substring-with-bidi-context' allows to +copy a portion of a buffer into a different location while preserving +the visual appearance both of the copied text and the text at +destination, even when the copied text includes mixed bidirectional +text and directional control characters. + +** New variable `ns-use-fullscreen-animation' controls animation for +non-native NS fullscreen. The default is nil. Set to t to enable +animation when entering and leaving fullscreen. For native OSX fullscreen +this has no effect. + +** A new text property `inhibit-read-only' can be used in read-only +buffers to allow certain parts of the text to be writable. + +** A new function `directory-files-recursively' returns all matching +files (recursively) under a directory. + +** The new `directory-name-p' can be used to check whether a file +name (as returned from, for instance, `file-name-all-completions' is +a directory file name. It returns non-nil if the last character in +the name is a forward slash. + ++++ +** New variable `fast-but-imprecise-scrolling' inhibits +fontification during full screen scrolling operations, giving less +hesitant operation during auto-repeat of C-v, M-v at the cost of +possible inaccuracies in the end position. + +** The function `font-info' now returns more details about a font. +In particular, it now returns the average width of the font's +characters, which can be used for geometry-related calculations. -* Changes in Emacs 24.4 - -** Support for ACLs (access control lists). -This requires a suitable support library to be found at build time. -On GNU/Linux, the POSIX ACL interface is used via libacl. -On MS-Windows, the NT Security APIs are used to emulate the POSIX interface. -ACLs are extended file attributes, used e.g. for finer-grained permissions. - -*** Emacs preserves the ACL entries of files when backing up. - -*** New functions `file-acl' and `set-file-acl' get and set file ACLs. - -** Support for menus on text-mode terminals. -If the terminal supports a mouse, clicking on the menu bar, or on -sensitive portions of the mode line or header line, will drop down the -menu defined at that position. Likewise, clicking C-mouse-1, C-mouse-2, or -C-mouse-3 on the text area will pop up the menus defined for those locations. - -If the text terminal does not support a mouse, you can activate the -first menu-bar menu by typing F10, which invokes `menu-bar-open'. - -If you want the previous behavior, where F10 invoked `tmm-menubar', -customize the option `tty-menu-open-use-tmm' to a non-nil value. -(Typing M-` always invokes `tmm-menubar', even if `tty-menu-open-use-tmm' -is nil.) - -** New option `load-prefer-newer' affects how the `load' function chooses -the file to load. If this is non-nil, then when both .el and .elc -versions of a file exist, and the caller did not explicitly specify -which one to load, then the newer file is loaded. The default, nil, -means to always load the .elc file. - -** Multi-monitor support - -*** New functions `display-monitor-attributes-list' and -`frame-monitor-attributes' can be used to obtain information about -each physical monitor on multi-monitor setups. - -*** The functions `display-pixel-width' and `display-pixel-height' now -behave consistently among the platforms: they return the pixel width -or height for all physical monitors associated with the given display -as if they were on X. To get information for each physical -monitor, use the new functions above. Similar notes also apply to -`x-display-pixel-width', `x-display-pixel-height', `display-mm-width', -`display-mm-height', `x-display-mm-width', and `x-display-mm-height'. - -** New function `zlib-decompress-region', which decompresses gzip- and -zlib-format compressed data using built-in zlib support (if available). - -** The *Messages* buffer is created in `messages-buffer-mode', -a new major mode, with read-only status. Any code that might create -the *Messages* buffer should call the function `messages-buffer' to do -so and set up the mode. - -** The cursor stops blinking after 10 blinks (by default) on X and Nextstep. -You can change the default by customizing `blink-cursor-blinks'. - -** In keymaps where SPC scrolls forward, S-SPC now scrolls backward. -This affects View mode, etc. - -** The default value of `make-backup-file-name-function' is no longer nil. -Instead it defaults to a function that does what the nil value used to. - -** Help - -*** The command `apropos-variable' is renamed to `apropos-user-option'. -`apropos-user-option' shows all user options, while `apropos-variable' -shows all variables. When called with a universal prefix argument, -the two commands swap their behaviors. When `apropos-do-all' is -non-nil, they output the same results. - -*** The key `?' now describes prefix bindings, like `C-h'. - -*** The command `describe-function' has been extended for EIEIO. -Running it on constructors will show a full description of the -generated class. For generic functions, it will show all -implementations together with links to the source. The old commands -`describe-class', `describe-constructor' and `describe-generic' were -removed. - -*** The function `quail-help' is no longer an interactive command. -Use `C-h C-\' (`describe-input-method') instead. - -** Frame and window handling - -*** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized', -bound to and M-, respectively. - -*** New hooks `focus-in-hook', `focus-out-hook'. -These are normal hooks run when an Emacs frame gains or loses input focus. - -*** The function `window-in-direction' now takes additional arguments -for specifying a reference point, wrapping the selection around frame -borders, and specifying ways to select the minibuffer window. - -*** Emacs can now change frame sizes in units of pixels, rather than -text rows or columns. When maximizing a frame or making it fullscreen, -remaining extra pixels are no longer given to the minibuffer, the rightmost -fringe, or other unusable space, but are distributed among the text -areas of the frame's windows. If the new option `frame-resize-pixelwise' -is non-nil, all frame size changes happen pixelwise and set the -corresponding size hints for the window manager. - -*** Emacs can now change window sizes in units of pixels. -Mouse-dragging a mode line or window divider now changes the size of -adjacent windows pixelwise. If the new option `window-resize-pixelwise' -is non-nil, functions like `balance-windows-area' and `fit-window-to-buffer' -resize windows pixelwise. Most functions for changing or accessing -window sizes now have an additional argument that allows changes to apply, -or values to be returned, in pixels instead of lines/columns. - -*** The functions `window-body-height' and `window-body-width' now never -count partially visible lines or columns if called with a nil PIXELWISE -argument. - -*** Emacs can now draw dividers between adjacent windows. To put -dividers between side-by-side/vertically stacked windows customize the -frame parameters `right-divider-width' and `bottom-divider-width' to -some positive integer. You can drag dividers with the mouse (they show -a corresponding cursor when the mouse hovers over them). You can change -the appearance of dividers by customizing the faces `window-divider', -`window-divider-first-pixel', and `window-divider-last-pixel'. The last -two are useful to provide a 3D effect, or to better distinguish dividers -from surrounding display objects. - -*** New functions to return the pixel sizes of window components, namely -`window-scroll-bar-width', `window-mode-line-height', -`window-header-line-height', `window-right-divider-width', and -`window-bottom-divider-width'. - -*** The new function `window-text-pixel-size' returns the size of the -text of a window's buffer in pixels. This allows functions like -`fit-frame-to-buffer' and `fit-window-to-buffer' to accurately fit a -window to its buffer as it will be displayed. - -*** `fit-window-to-buffer' can now resize windows in both dimensions. -This behavior is controlled by the new option -`fit-window-to-buffer-horizontally'. The new option -`fit-frame-to-buffer' allows you to fit the window's frame to its buffer. - -*** `fit-frame-to-buffer' now fits frames in both dimensions. The new -options `fit-frame-to-buffer-margins' and `fit-frame-to-buffer-sizes' -control the size of the frame and its position on screen. - -*** Temp Buffer Resize Mode can now adjust the height and width of -windows and frames. The new option `temp-buffer-max-width' allows you to -control the width of temporary buffer windows. Moreover, if the new -option `fit-frame-to-buffer' is non-nil and the buffer appears in the -root window of a frame, Temp Buffer Resize Mode will try to adjust the -width and/or height of the frame. +* Editing Changes in Emacs 25.1 -*** `split-window' is now a non-interactive function, not a command. -As a command, it was a special case of `C-x 2' (`split-window-below'), -and as such superfluous. After being reimplemented in Lisp, its -interactive form was mistakenly retained. +** Unicode names entered via C-x 8 RET now use substring completion by default. -*** The functions `window-size' and `window-total-size' now have an -optional argument to return a rounded size value. +** New minor mode global-eldoc-mode is enabled by default. -*** `window-state-put' now allows you to put a window state into internal -windows too. +** Emacs now supports "bracketed paste mode" when running on a terminal +that supports it. This facility allows Emacs to understand pasted +chunks of text as strings to be inserted, instead of interpreting each +character in the pasted text as actual user input. This results in a +paste experience similar to that under a window system, and significant +performance improvements when pasting large amounts of text. -*** New option `scroll-bar-adjust-thumb-portion'. -Available only on X, this option allows you to control over-scrolling -using the scroll bar (i.e., dragging the thumb down even when the end -of the buffer is visible). - -*** New display actions functions for `display-buffer': - -**** `display-buffer-at-bottom' chooses or creates a window at the -bottom of the selected frame. - -**** `display-buffer-no-window' to not display the buffer in a window. - -*** New display action alist entry `allow-no-window' to indicate the -caller of `display-buffer' is ready to handle the case of not displaying -the buffer in a window. +** Emacs now supports the latest version of the UBA. +The Emacs implementation of the Unicode Bidirectional Algorithm (UBA) +was updated to support all the latest additions and changes introduced +in Unicode Standard versions 6.3 and 7.0, and a few changes suggested +for Unicode 8.0. This includes full support for directional isolates +and the Bidirectional Parentheses Algorithm (BPA) specified by these +Unicode standards. -*** `display-buffer-in-previous-window' is now a member of -`display-buffer-fallback-action'. - -** Lisp evaluation - -*** `eval-defun' on an already defined defcustom calls the :set function, -if there is one. - -*** The commands `eval-expression' (`M-:'), `eval-last-sexp' (`C-x C-e'), -and `eval-print-last-sexp' (`C-j' in Lisp Interaction mode) can take a -zero prefix argument. This disables truncation of lists in the output, -equivalent to setting `(eval-expression-)print-length' and -`(eval-expression-)print-level' to nil. Additionally, it causes integers -to be printed in other formats (octal, hexadecimal, and character). - -*** New hook `eval-expression-minibuffer-setup-hook' run by -`eval-expression' on entering the minibuffer. - -** `cache-long-line-scans' is now non-nil, and renamed to `cache-long-scans', -because it affects caching of paragraph scanning results as well. -There is no reason to set this to nil except for debugging purposes. - -** `emacs-bzr-version' has been renamed to `emacs-repository-version', -and works for git too, if you fetch the repository notes. - -** The default value of `comment-use-global-state' is now t, -and this variable has been marked obsolete. - -** `write-region-inhibit-fsync' now defaults to t in batch mode. - -** The option `set-mark-default-inactive' has been deleted. -This unfinished feature was introduced by accident in Emacs 23.1; -simply disabling Transient Mark mode does the same thing. +** You can access `mouse-buffer-menu' (C-down-mouse-1) using C-f10. -* Editing Changes in Emacs 24.4 - -** Indentation - -*** `electric-indent-mode' is now enabled by default. -Typing RET reindents the current line and indents the new line. -`C-j' inserts a newline but does not indent. In some programming modes, -additional characters are electric (eg `{'). - -*** New buffer-local `electric-indent-local-mode'. - -*** The behavior of `C-x TAB' (`indent-rigidly') has changed. -When invoked without a prefix argument, it now activates a transient -mode in which typing , , , and adjusts -the text indentation in the region. Typing any other key resumes -normal editing behavior. +* Changes in Specialized Modes and Packages in Emacs 25.1 +** package.el +*** `package-install-from-buffer' and `package-install-file' work on directories. +This follows the same rules as installing from a .tar file, except the +-pkg file is optional. -*** `tab-stop-list' is now implicitly extended to infinity by repeating -the last step. Its default value is changed to nil, which means a tab -stop every `tab-width' columns. +*** Packages which are dependencies of other packages cannot be deleted. +The FORCE argument to `package-delete' overrides this. -** Uniquify is enabled by default, with `post-forward-angle-brackets' style. -In other words, if you visit two files that have the same base name, -then rather than creating buffers basename and basename<2>, -Emacs uses basename and basename. To change this, -customize `uniquify-buffer-name-style'. Set it to nil for the old behavior. +*** New custom variable `package-selected-packages' tracks packages +which were installed by the user (as opposed to installed as +dependencies). This variable can also be manually customized. -** New command `C-x SPC' (`rectangle-mark-mode') makes a rectangular region. -Most commands are still unaware of it, but kill/yank do work on the rectangle. +*** New command `package-install-user-selected-packages' installs all +packages from `package-selected-packages' which are currently missing. -** New option `visual-order-cursor-movement'. -If this is non-nil, cursor motion with arrow keys will follow the -visual order of characters on the screen: always moves to the -left, always moves to the right, disregarding the surrounding -bidirectional context. +*** New command `package-autoremove' removes all packages which were +installed strictly as dependencies but are no longer needed. -** New command `delete-duplicate-lines'. -This searches the region for identical lines, and removes all but one -copy of each repeated line. The lines need not be sorted. +** Shell -** New command `cycle-spacing' acts like a smarter `just-one-space'. -When called in succession, it cycles between spacing conventions: -one space, no spaces, original spacing. +When you invoke `shell' interactively, the *shell* buffer will now +display in a new window. However, you can customize this behavior via +the `display-buffer-alist' variable. For example, to get +the old behavior -- *shell* buffer displays in current window -- use +(add-to-list 'display-buffer-alist + '("^\\*shell\\*$" . (display-buffer-same-window))). -** `blink-matching-paren' now only highlights the matching open-paren -by default, instead of moving the cursor. Set this variable to `jump' to -restore the old behavior. -** The new function `fill-single-char-nobreak-p' can stop fill from breaking -a line after a one-letter word, which is an error in some typographical -conventions. To use it, add it to the `fill-nobreak-predicate' hook. - -** Registers - -*** All interactive commands that read a register (`copy-to-register', etc.) -now display a temporary window after `register-preview-delay' seconds -that summarizes existing registers. To disable this, set that option to nil. -Interactive commands that read registers and want to make use of this -should use `register-read-with-preview' to read register names. - -*** New command `frameset-to-register' bound to `C-x r f', replacing -`frame-configuration-to-register'. It offers similar functionality, -plus enhancements like the ability to restore deleted frames. -(`frame-configuration-to-register' still exists, but no longer has a -key binding.) - -*** New command `C-x C-k x' (`kmacro-to-register') stores keyboard -macros in registers. - - -* Changes in Specialized Modes and Packages in Emacs 24.4 - -** Backtrace and debugger - -*** New Lisp debugger command `v' (`debugger-toggle-locals') toggles the -display of local variables of the current stack frame. +** EIEIO +*** The `:protection' slot option is not obeyed any more. +*** The `newname' argument to constructors is optional&deprecated. +If you need your objects to be named, do it by inheriting from `eieio-named'. +*** The -list-p and -child-p functions are declared obsolete. +*** The variables are declared obsolete. +*** The variables are declared obsolete. +*** defgeneric and defmethod are declared obsolete. +*** `constructor' is now an obsolete alias for `make-instance'. + +** ido +*** New command `ido-bury-buffer-at-head' bound to C-S-b +Bury the buffer at the head of `ido-matches', analogous to how C-k +kills the buffer at head. -*** The Lisp debugger's `e' command (`debugger-eval-expression') now includes -the lexical environment when evaluating the code in the context at point -(and so allows you to access lexical variables). +** Minibuffer -*** New minor mode `jit-lock-debug-mode' helps you debug code run via JIT Lock. +*** You can use and keys to move point in the multi-line +minibuffer just as in an ordinary buffer. Only when point moves over +the bottom/top of the minibuffer it goes to the next/previous history +element. The new commands bound to and in the minibuffer: +`next-line-or-history-element' and `previous-line-or-history-element'. -** Battery information can now be retrieved from BSD's `apm' utility. +** Search and Replace -** In the Buffer Menu, `M-s a C-o' shows matches for a regexp in marked buffers. +*** Query-replace history is enhanced. +When query-replace reads the FROM string from the minibuffer, typing +`M-p' will now show previous replacements as "FROM SEP TO", where FROM +and TO are the original text and its replacement, and SEP is an arrow +string defined by the new variable `query-replace-from-to-separator'. +To select a prior replacement, type `M-p' until the desired +replacement appears in the minibuffer, and then exit the minibuffer by +typing RET. ** Calc ++++ +*** If `quick-calc' is called with a prefix argument, insert the +result of the calculation into the current buffer. -*** Calc by default now uses the Gregorian calendar for all dates, and -uses January 1, 1 AD as its day number 1. Previously Calc used the -Julian calendar for dates before September 14, 1752, and it used -December 31, 1 BC as its day number 1; the new scheme is more -consistent with Calendar's calendrical system and day numbering. - -*** The new option `calc-gregorian-switch' lets you configure if -(and when) Calc switches from the Julian to the Gregorian calendar. +** ElDoc +*** New minor mode `global-eldoc-mode' +*** `eldoc-documentation-function' now defaults to `ignore' +*** `describe-char-eldoc' displays information about character at point, +and can be used as a default value of `eldoc-documentation-function'. It is +useful when, for example, one needs to distinguish various spaces (e.g. ] [, +] [, ] [, etc.) while using mono-spaced font. -*** Support for ISO 8601 dates. +** eww -** Calendar and Diary +--- +*** HTML can now be rendered using variable-width fonts. -*** New faces `calendar-weekday-header', `calendar-weekend-header', -and `calendar-month-header'. ++++ +*** A new command `F' (`eww-toggle-fonts') can be used to toggle +whether to use variable-pitch fonts or not. The user can also +customize the `shr-use-fonts' variable. -*** New option `calendar-day-header-array'. ++++ +*** A new command `R' (`eww-readable') will try do identify the main +textual parts of a web page and display only that, leaving menus and +the like off the page. -*** New variable `diary-from-outlook-function', used by the command -`diary-from-outlook'. +--- +*** You can now use several eww buffers in parallel by renaming eww +buffers you want to keep separate. -*** The variable `calendar-font-lock-keywords' is obsolete. ++++ +*** Partial state of the eww buffers (the URIs and the titles of the +pages visited) is now preserved in the desktop file. -** CEDET ++++ +*** `eww-after-render-hook' is now called after eww has rendered +the data in the buffer. -*** EDE +--- +*** The `eww-reload' command now takes a prefix to not reload via +the net, but just use the local copy of the HTML. -**** The cpp-root project now supports executing a compile command. -It can be set through the new :compile-command slot or the -buffer-local variable `compile-command'. ++++ +*** The DOM shr and eww uses has been changed to the general Emacs +xml.el/libxml2 DOM, and a new package dom.el has been added to +interact with this DOM. See the Emacs Lisp manual for interface +details. -**** Better selection of include directories for the 'linux' project. -Include directories now support out-of-tree build directories and -target architecture auto-detection. ++++ +*** `mailcap-mime-data' is now consulted when displaying PDF files. -*** Semantic ++++ +*** The new `S' command will list all eww buffers, and allow managing +them. -**** Improved detection of used namespaces in current scope in C++. +--- +*** https pages with valid certificates have headers marked in green, while +invalid certificates are marked in red. -**** Parsing of default values for variables and function arguments in C/C++. -They are also displayed by the summarize feature in the mode line. +** Message mode -**** Improved parsing of function pointers in C/C++. -This also includes parsing of function pointers as function arguments. +*** text/html messages that contain inline image parts will be +transformed into multipart/related messages before sending. -**** Parsing of C/C++ preprocessor macros that open new scope. -For example, this enables parsing of macros that open new namespaces. +** pcase +*** New UPatterns `quote' and `app'. +*** New UPatterns can be defined with `pcase-defmacro'. ++++ +*** New vector QPattern. -**** Support for 'this' pointer in inline member functions in C++. +** Lisp mode +*** Strings after `:documentation' are highlighted as docstrings. -** CFEngine mode +** Rectangle editing +*** Rectangle Mark mode can have corners past EOL or in the middle of a TAB. +*** C-x C-x in rectangle-mark-mode now cycles through the four corners. +*** `string-rectangle' provides on-the-fly preview of the result. -*** Support for completion, ElDoc, and Flycheck has been added. +** New font-lock functions font-lock-ensure and font-lock-flush, which +should be used instead of font-lock-fontify-buffer when called from Elisp. -*** The current CFEngine syntax is parsed from "cf-promises -s json". -There is a fallback syntax available if you don't have cf-promises or -if your version doesn't support that option. See option `cfengine-cf-promises'. +** Macro `minibuffer-with-setup-hook' takes (:append FUN) to mean +appending FUN to `minibuffer-setup-hook'. ** cl-lib +*** New functions cl-fresh-line, cl-digit-char-p and cl-parse-integer. -*** New macro `cl-tagbody'. -This executes statements while allowing for control transfer to labels. - -*** letf is now just an alias for cl-letf. - -** CUA mode - -*** CUA mode now uses `delete-selection-mode' and `shift-select-mode'. -Hence, you can now enable it independently from those modes, and from -`transient-mark-mode'. - -*** `cua-highlight-region-shift-only' is now obsolete. -You can disable `transient-mark-mode' to get the same result. - -*** CUA's rectangles can now be used without CUA by calling the command -`cua-rectangle-mark-mode'. - -** Delete Selection mode can now be used without Transient Mark mode. - -** Desktop - -*** `desktop-save-mode' by default now auto-saves an existing desktop file -after `desktop-auto-save-timeout'. To disable this, customize that option -to nil (or zero). - -*** Desktop now saves and restores the frame/window configuration. -To disable this, set `desktop-restore-frames' to nil. -See also related options `desktop-restore-reuses-frames', -`desktop-restore-in-current-display', and `desktop-restore-forces-onscreen'. - -** New Dired minor mode `dired-hide-details-mode' toggles whether details, -such as file ownership or permissions, are visible in Dired buffers. -See the new options `dired-hide-details-hide-symlink-targets' and -`dired-hide-details-hide-information-lines' for customizing what to hide. - -** You can enable ElDoc inside the `eval-expression' minibuffer with: - (add-hook 'eval-expression-minibuffer-setup-hook 'eldoc-mode) -The results display in the mode line. - -** Electric Pair mode - -*** New option `electric-pair-preserve-balance', enabled by default. -If non-nil, pairing/skipping only kicks in when that help the balance -of parentheses and quotes; i.e., the buffer should end up at least as -balanced as before. - -You can further control this behavior by adjusting the predicates -stored in `electric-pair-inhibit-predicate' and `electric-pair-skip-self'. - -*** New option `electric-pair-delete-adjacent-pairs', enabled by default. -In `electric-pair-mode', the commands `backward-delete-char' and -`backward-delete-char-untabify' are now bound to electric variants -that delete the closer when invoked between adjacent pairs. - -*** New option `electric-pair-open-newline-between-pairs', enabled by default. -In `electric-pair-mode', inserting a newline between adjacent pairs -opens an extra newline after point, which is indented if -`electric-indent-mode' is also set. - -*** New option `electric-pair-skip-whitespace', enabled by default. -This controls if skipping over closing delimiters should jump over any -whitespace slack. Setting it to `chomp' makes it delete this -whitespace. See also the variable `electric-pair-skip-whitespace-chars'. - -*** New variables control the pairing in strings and comments. -You can customize `electric-pair-text-pairs' and -`electric-pair-text-syntax-table' to tweak pairing behavior inside -strings and comments. - -** New EPA option `epa-mail-aliases'. -You can set this to a list of email address aliases that `epa-mail-encrypt' -should use to find keys. - -** New ERC option `erc-accidental-paste-threshold-seconds'. -If set to a number, this can be used to avoid accidentally pasting large -amounts of data into the ERC input. - -** New ERT macro `skip-unless' allows skipping ERT tests. - -** Eshell - -*** `eshell' now supports visual subcommands and options. -Eshell has been able to handle "visual" commands (interactive, -non-line oriented commands such as top that require display -capabilities not provided by eshell) by running them in an Emacs -terminal emulator. See `eshell-visual-commands'. - -This feature has been extended to subcommands and options that make a -usually line-oriented command a visual command. Typical examples are -"git log" and "git --help", which display their output in a -pager by default. See `eshell-visual-subcommands' and `eshell-visual-options'. - -*** New Eshell-Tramp module. -External su and sudo commands are now the default; the internal, -Tramp-using variants can still be used by enabling the eshell-tramp module. - -** New F90 mode option `f90-smart-end-names'. - -** New option `gnutls-verify-error', if non-nil, means that Emacs -should reject SSL/TLS certificates that GnuTLS determines as invalid. -(This option defaults to nil at present, but this is expected to change -in a future release.) - -** Hi-Lock - -*** New global command `M-s h .' (`highlight-symbol-at-point') highlights -the symbol near point. - -*** New option `hi-lock-auto-select-face'. When non-nil, hi-lock commands -will cycle through faces in `hi-lock-face-defaults' without prompting. - -** Icomplete is now more similar to Ido. - -*** Icomplete by default now applies to all forms of minibuffer completion. -The variable `icomplete-with-completion-tables' (now a user option) -controls this. To restore the old behavior, set it back to -'(internal-complete-buffer). - -*** You can navigate through and select completions using the keys -from `icomplete-minibuffer-map'. - -*** The string that separates potential completions is now a customizable -option (`icomplete-separator'). The default is " | " rather than ",". - -*** New face `icomplete-first-match'; and new options -`icomplete-hide-common-prefix' and `icomplete-show-matches-on-no-input'. - -*** The option `icomplete-show-key-bindings' has been removed. - -** Ido - -*** An Ido user manual is now included. - -*** The option `ido-use-virtual-buffers' can now take the value `auto'. -This means to use virtual buffers if the current ido input does not match -an existing buffer. - -*** The variable `ido-decorations' can optionally have two new elements, -which are the brackets to use around the sole remaining completion. - -** Image mode - -*** New commands `n' (`image-next-file') and `p' (`image-previous-file') -visit the next image file and the previous image file in the same -directory, respectively. - -*** New commands to show specific frames of multi-frame images. -`f' (`image-next-frame') and `b' (`image-previous-frame') visit the -next or previous frame. `F' (`image-goto-frame') shows a specific frame. - -*** New commands to speed up, slow down, or reverse animation. -`a +' (`image-increase-speed') and `a -' (`image-decrease-speed') to -speed up and slow down the animation. `a r' (`image-reverse-speed') -to reverse it and `a 0' (`image-reset-speed') to reset it. - -*** The command `image-mode-fit-frame' deletes other windows. -When toggling, it restores the frame's previous window configuration. -It also has an optional frame argument, which can be used by Lisp -callers to fit the image to a frame other than the selected frame. - -** New Imenu option `imenu-generic-skip-comments-and-strings'. - -** Info - -*** New Info face `info-index-match', used to highlight matches in index -entries displayed by `Info-index-next', `Info-virtual-index' and -`info-apropos'. - -*** The Info-edit command is obsolete. Editing Info nodes by hand -has not been relevant for some time. - -** JS Mode - -*** New option `js-switch-indent-offset'. - -*** Better indentation of multiple-variable declarations. -If a declaration spans several lines, variables on the following lines -are lined up to the first one. - -*** Recognition and better indentation of continuations in array comprehensions. - -** MH-E has been updated to version 8.6 - see separate MH-E-NEWS file. - -** Octave mode - -*** Font locking for Texinfo comments and new keywords. - -*** Completion in Octave file buffers. - -*** ElDoc support. - -*** Jump to definition. - -*** Documentation lookup/search. - -** OPascal mode is the new name for Delphi mode - -*** All delphi-* variables and functions have been renamed to opascal-*. -Obsolete aliases exist for those likely to have been used externally. - -*** The option `delphi-newline-always-indents' has been removed. -Use `electric-indent-mode' instead. - -*** The TAB key runs the standard `indent-for-tab-command', not `delphi-tab'. - -** Package - -*** The package library now supports digital signing of packages. -Maintainers of package archives should consider signing their packages -to enhance security. - -**** If the user option `package-check-signature' is non-nil, -Emacs tries to check package signatures at install time. -The value `allow-unsigned' allows installation of unsigned packages. - -**** The user option `package-unsigned-archives' lists archives where -Emacs will not try to check signatures. - -*** New option `package-pinned-packages'. This is useful if you have multiple -archives enabled, with more than one offering a given package that you want. - -*** In the `list-packages' buffer, you can use `f' (`package-menu-filter') -to filter the list of packages by a keyword. - -*** In the `describe-package' buffer, there are now buttons listing the -keywords related to the package. Click on a button to see other packages -related to that keyword. - -*** The format of `archive-contents' files, generated by package -repositories, has changed to allow a new (fifth) element in the data -vectors, containing an associative list with extra properties. -(For example, `describe-package' uses the `:url' extra property to -display a "Homepage" header.) - -** In Prolog mode, `prolog-use-smie' has been removed, -along with the non-SMIE indentation code. - -** Python mode - -*** Out of the box support for CPython, iPython and readline based shells. -**** `python-shell-completion-module-string-code' is no longer used. - -*** Automatic shell prompt detection. New user options: -**** `python-shell-interpreter-interactive-arg'. -**** `python-shell-prompt-detect-enabled'. -**** `python-shell-prompt-detect-failure-warning'. -**** `python-shell-prompt-input-regexps'. -**** `python-shell-prompt-output-regexps'. - -*** Python shell support for remote hosts via tramp. - -*** Correct display of line numbers for code sent to the Python shell. - -** Remember - -*** The new command `remember-notes' creates a buffer that is saved on exit. -You can use it as a more permanent *scratch* buffer. - -*** Remember can now store notes in separate files. -To use this, add `remember-store-in-files' to the `remember-handler-functions' -option. The files are saved in `remember-data-directory' using -names specified by `remember-directory-file-name-format'. - -** Rmail - -*** Customize `rmail-mbox-format' to influence some minor aspects of -how Rmail displays non-MIME messages. - -*** The `unrmail' command now converts from BABYL to mboxrd format, -rather than mboxo. Customize `unrmail-mbox-format' to change this. +** seq +*** New seq library: +The seq library adds sequence manipulation functions and macros that +complement basic functions provided by subr.el. All functions are +prefixed with `seq-' and work on lists, strings and vectors. -** Ruby mode +** Calendar and diary -*** Improved syntax highlighting and indentation. ++++ +*** New commands to insert diary entries with Chinese dates: +`diary-chinese-insert-anniversary-entry' `diary-chinese-insert-entry' +`diary-chinese-insert-monthly-entry', `diary-chinese-insert-yearly-entry'. -*** New `electric-indent-mode' integration. ++++ +*** The calendar can now list and mark diary entries with Chinese dates. +See `diary-chinese-list-entries' and `diary-chinese-mark-entries'. -*** New option `ruby-encoding-magic-comment-style'. +--- +*** The option `calendar-mode-line-format' can now be nil, +which means to do nothing special with the mode line in calendars. -*** New option `ruby-custom-encoding-magic-comment-template'. +--- +*** Many items obsolete since at least version 23.1 have been removed. +The majority were function/variable/face aliases, too numerous to list here. +The remainder were: -*** New option `ruby-align-to-stmt-keywords'. +**** Functions `calendar-one-frame-setup', `calendar-only-one-frame-setup', +`calendar-two-frame-setup', `european-calendar', `american-calendar'. -*** New option `ruby-align-chained-calls'. +**** Hooks `cal-menu-load-hook', `cal-x-load-hook'. -*** More Ruby file types have been added to `auto-mode-alist'. +**** Macro `calendar-for-loop'. -** Search and Replace - -*** New global command `M-s .' (`isearch-forward-symbol-at-point') -starts a symbol (identifier) incremental search forward with the -symbol found near point added to the search string initially. - -*** `C-x 8 RET' in Isearch mode reads a character by its Unicode name -and adds it to the search string. - -*** `M-s i' in Isearch mode toggles whether search matches invisible text. - -*** `query-replace' skips invisible text when `search-invisible' is nil, -and opens overlays with hidden text when `search-invisible' is `open'. - -*** A negative prefix argument of replacement commands replaces backward. -`M-- M-%' replaces a string backward, `M-- C-M-%' replaces a regexp -backward, `M-s w words M-- M-%' replaces a sequence of words backward. - -*** By default, prefix arguments do not now terminate Isearch mode. -Set `isearch-allow-prefix' to nil to restore the old behavior. - -*** More Isearch commands accept prefix arguments, namely -`isearch-printing-char', `isearch-quote-char', `isearch-yank-word', -`isearch-yank-line'. - -*** Word search now matches whitespace at the beginning/end -of the search string if it contains leading/trailing whitespace. -In an incremental word search or when using a non-nil LAX argument -of `word-search-regexp', the lax matching can also match part of -the first word (in addition to the lax matching of the last word). -The same rules are now applied to the symbol search, with the difference -that it matches symbols, and non-symbol characters between symbols. - -** New SES command `ses-rename-cell' allows assignment of names to SES cells. - -** The shell.el option `explicit-bash-args' includes --noediting by default. -All non-ancient Bash versions support this option. - -** Shell Script mode - -*** The SMIE indentation engine is now used by default - see `sh-use-smie'. - -*** `sh-mode' now has its own setting for `add-log-current-defun-function'. - -** SMIE - -*** You can customize the SMIE indentation of a mode via `smie-config'. -The command `smie-config-guess' can help you derive the appropriate -indentation settings, if you provide it with an indented sample file. -Use `smie-config-save' to save the result. +**** Variables `european-calendar-style', `diary-face', `hebrew-holidays-{1,4}'. -*** You can customize the SMIE indentation of a file by adding an entry to -the file's local variables of the form: `eval: (smie-config-local '(RULES))'. +**** The nil and list forms of `diary-display-function'. -*** New commands `smie-config-show-indent' and `smie-config-set-indent'. +** New ERT function `ert-summarize-tests-batch-and-exit'. -** SQL mode - -*** Improved login monitoring and appropriate response to login failures. -New variable `sql-login-delay' defines maximum wait time for a connection. - -*** Oracle support. -SQL*Plus script placeholders are properly highlighted and identified -in `sql-placeholders-filter'. When starting SQL*Plus, `sql-oracle-options' -are passed before the logon parameter, as required. The default now -includes `-L', to limit the number of logon attempts per invocation. - -** New Term mode option `term-suppress-hard-newline'. +--- +** `Info-fontify-maximum-menu-size' can be t for no limit. -** Todo mode has been rewritten and enhanced. -The Todo mode user manual describes all commands and most user -options. To support some of these features, a new file format is -used, which is incompatible with the old format; however, you can -convert old todo and done item files to the new format on initializing -the first new todo file, or at any later time with the provided -conversion command. The previous version of todo-mode.el has been -renamed to otodo-mode.el and is now obsolete. New features include: ++++ +** `info-display-manual' can now be given a prefix argument which (any +non-nil value) directs the command to limit the completion +alternatives to currently visited manuals. -*** Support for multiple todo files and archive files of done items. +--- +** ntlm.el has support for NTLM2. -*** Renaming, reordering, moving, merging, and deleting categories. +--- +** The Rmail commands d, C-d and u now handle repeat counts to delete or +undelete multiple messages. -*** Sortable tabular summaries of categories and the item types they contain. +** Rmail can now render HTML mail messages if your Emacs was built with +libxml2 or if you have the Lynx browser installed. By default, Rmail +will display the HTML version of a mail message that has both HTML and +plain text parts, if display of HTML email is possible; customize the +`rmail-mime-prefer-html' option to `nil' if you don't want that. -*** Cross-category lists of items filtered by specific criteria. +** SES now supports local printer functions; see `ses-define-local-printer'. -*** More fine-grained interaction with the Emacs diary, by being able to -decide for each todo item whether it appears in the Fancy Diary display. +** In sh-mode, you can now use `sh-shell' as a file-local variable to +specify the type of shell in use (bash, csh, etc). -*** Highly flexible new item insertion and item editing. +** TLS +--- +*** Fatal TLS errors are now silent by default. -*** Moving items between categories, storing done items in their category -or in archive files, undoing or unarchiving done items. - -*** Reprioritizing items by inputting a numerical priority. +** URL -*** Extensive customizability of operation and display, including many faces. +*** The URL package accepts now the protocols "ssh", "scp" and "rsync". +When `url-handler-mode' is enabled, file operations for these +protocols as well as for "telnet" and "ftp" are passed to Tramp. -** Trace +*** The URL package allows customizing the `url-user-agent' string. +The new `url-user-agent' variable can be customized to be a string or +a function. -*** `trace-function' and `trace-function-background' no longer prompt for -the output buffer. Unless you use a prefix argument, they output to -`trace-buffer'. +*** The new interface variable `url-request-noninteractive' can be used +to specify that we're running in a noninteractive context, and that +we should not be queried about things like TLS certificate validity. -*** With a prefix argument, `trace-function' and `trace-function-background' -will prompt for a "context". This is a Lisp expression, whose value at the -time the function is entered/exited is printed along with the function's -name and arguments. +*** If URL is used with a https connection, the first callback argument +plist will contain a :peer element that has the output of +`gnutls-peer-status' (if Emacs is built with GnuTLS support). ** Tramp diff --cc etc/NEWS.24 index 969713a339,0000000000..7d9e1f0d83 mode 100644,000000..100644 --- a/etc/NEWS.24 +++ b/etc/NEWS.24 @@@ -1,3859 -1,0 +1,3863 @@@ +GNU Emacs NEWS -- history of user-visible changes. + +Copyright (C) 2010-2015 Free Software Foundation, Inc. +See the end of the file for license conditions. + +Please send Emacs bug reports to bug-gnu-emacs@gnu.org. +If possible, use M-x report-emacs-bug. + +This file is about changes in Emacs version 24. + +See files NEWS.23, NEWS.22, NEWS.21, NEWS.20, NEWS.19, NEWS.18, +and NEWS.1-17 for changes in older Emacs versions. + +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 all necessary documentation updates are complete. - (This means all relevant manuals in doc/ AND lisp doc-strings.) - --- means no change in the manuals is needed. - When you add a new item, use the appropriate mark if you are sure it applies, - otherwise leave it unmarked. - + +* Changes in Emacs 24.5 + - --- ++** This is mainly a bug-fix release, but there are some other changes. ++ +** The default value of `history-length' has increased to 100. + - +++ - ** `redisplay-dont-pause' is declared as obsolete. ++** The variable `redisplay-dont-pause' is obsolete. + + +* Changes in Specialized Modes and Packages in Emacs 24.5 + - ** `call-process-shell-command' and `process-file-shell-command' - don't take "&rest args" any more. ++** `call-process-shell-command' and `process-file-shell-command' no longer ++take "&rest args". ++ ++** The option `browse-url-firefox-startup-arguments' no longer has an effect. ++ ++** ERC ++ ++*** New option `erc-rename-buffers'. ++ ++*** New faces `erc-my-nick-prefix-face' and `erc-nick-prefix-face'. ++ ++*** `erc-format-@nick' displays all user modes instead of only op and voice. ++ ++*** The display of irc commands in the current buffer has been disabled. ++ ++*** `erc-version' now follows the Emacs version. + +** Obsolete packages + +*** cc-compat.el + - --- - *** crisp.el - moved to elpa.gnu.org. ++*** crisp.el (moved to elpa.gnu.org) + - --- +*** tpu-edt.el, ws-mode.el +These emulations of old editors are believed to be no longer relevant + - contact emacs-devel@gnu.org if you disagree. + - --- +*** vi.el, vip.el (try M-x viper instead) + + +* Installation Changes in Emacs 24.4 + +** Emacs can now be compiled with ACL (access control list) support. +This happens by default if a suitable support library is found at +build time, like libacl on GNU/Linux. To prevent this, use the +configure option `--disable-acl'. See below for the features this provides. + +** Emacs can now be compiled with file notification support. +This happens by default if a suitable system library is found at +build time. To prevent this, use the configure option +`--without-file-notification'. See below for file-notify features. +This feature is not available for the Nextstep port. + +** Emacs can now be compiled with zlib support. +This happens by default if zlib is present, which it normally is. +To prevent this, use the configure option `--without-zlib'. +This provides the function `zlib-decompress-region'; see below for details. + +** The configure option `--without-compress-info' has been generalized, +and renamed to `--without-compress-install'. It now prevents compression +of _any_ files during installation. + +** The configure option `--with-crt-dir' has been removed. +It is no longer needed, as the crt*.o files are no longer linked specially. + +** Directories passed to configure option `--enable-locallisppath' are +no longer created during installation. + +** Emacs for Nextstep (Mac OS X, GNUstep) can be built with ImageMagick support. +This requires pkg-config to be available at build time. + + +* Startup Changes in Emacs 24.4 + +** When initializing `load-path', an empty element in the EMACSLOADPATH +environment variable (either leading, e.g., ":/foo"; trailing, e.g., +"/foo:"; or embedded, e.g., "/foo::/bar") is replaced with the default +load-path (the one that would have been used if EMACSLOADPATH was unset). +This makes it easier to _extend_ the load-path via EMACSLOADPATH +(previously, EMACSLOADPATH had to specify the complete load-path, +including the defaults). (In older versions of Emacs, an empty element +was replaced by ".", so use an explicit "." now if that is what you want.) + +** The -L option, which normally prepends its argument to load-path, +will instead append, if the argument begins with `:' (or `;' on MS Windows; +i.e., `path-separator'). + +** If you use either site-load.el or site-init.el to customize the dumped +Emacs executable, any changes to `load-path' that these files make +will no longer be present after dumping. To affect a permanent change +to `load-path', use the `--enable-locallisppath' option of `configure'. + +** The user option `initial-buffer-choice' can now specify a function +to set up the initial buffer. + + +* Changes in Emacs 24.4 + +** Support for ACLs (access control lists). +This requires a suitable support library to be found at build time. +On GNU/Linux, the POSIX ACL interface is used via libacl. +On MS-Windows, the NT Security APIs are used to emulate the POSIX interface. +ACLs are extended file attributes, used e.g. for finer-grained permissions. + +*** Emacs preserves the ACL entries of files when backing up. + +*** New functions `file-acl' and `set-file-acl' get and set file ACLs. + +** Support for menus on text-mode terminals. +If the terminal supports a mouse, clicking on the menu bar, or on +sensitive portions of the mode line or header line, will drop down the +menu defined at that position. Likewise, clicking C-mouse-1, C-mouse-2, or +C-mouse-3 on the text area will pop up the menus defined for those locations. + +If the text terminal does not support a mouse, you can activate the +first menu-bar menu by typing F10, which invokes `menu-bar-open'. + +If you want the previous behavior, where F10 invoked `tmm-menubar', +customize the option `tty-menu-open-use-tmm' to a non-nil value. +(Typing M-` always invokes `tmm-menubar', even if `tty-menu-open-use-tmm' +is nil.) + +** New option `load-prefer-newer' affects how the `load' function chooses +the file to load. If this is non-nil, then when both .el and .elc +versions of a file exist, and the caller did not explicitly specify +which one to load, then the newer file is loaded. The default, nil, +means to always load the .elc file. + +** Multi-monitor support + +*** New functions `display-monitor-attributes-list' and +`frame-monitor-attributes' can be used to obtain information about +each physical monitor on multi-monitor setups. + +*** The functions `display-pixel-width' and `display-pixel-height' now +behave consistently among the platforms: they return the pixel width +or height for all physical monitors associated with the given display +as if they were on X. To get information for each physical +monitor, use the new functions above. Similar notes also apply to +`x-display-pixel-width', `x-display-pixel-height', `display-mm-width', +`display-mm-height', `x-display-mm-width', and `x-display-mm-height'. + +** New function `zlib-decompress-region', which decompresses gzip- and +zlib-format compressed data using built-in zlib support (if available). + +** The *Messages* buffer is created in `messages-buffer-mode', +a new major mode, with read-only status. Any code that might create +the *Messages* buffer should call the function `messages-buffer' to do +so and set up the mode. + +** The cursor stops blinking after 10 blinks (by default) on X and Nextstep. +You can change the default by customizing `blink-cursor-blinks'. + +** In keymaps where SPC scrolls forward, S-SPC now scrolls backward. +This affects View mode, etc. + +** The default value of `make-backup-file-name-function' is no longer nil. +Instead it defaults to a function that does what the nil value used to. + +** Help + +*** The command `apropos-variable' is renamed to `apropos-user-option'. +`apropos-user-option' shows all user options, while `apropos-variable' +shows all variables. When called with a universal prefix argument, +the two commands swap their behaviors. When `apropos-do-all' is +non-nil, they output the same results. + +*** The key `?' now describes prefix bindings, like `C-h'. + +*** The command `describe-function' has been extended for EIEIO. +Running it on constructors will show a full description of the +generated class. For generic functions, it will show all +implementations together with links to the source. The old commands +`describe-class', `describe-constructor' and `describe-generic' were +removed. + +*** The function `quail-help' is no longer an interactive command. +Use `C-h C-\' (`describe-input-method') instead. + +** Frame and window handling + +*** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized', +bound to and M-, respectively. + +*** New hooks `focus-in-hook', `focus-out-hook'. +These are normal hooks run when an Emacs frame gains or loses input focus. + +*** The function `window-in-direction' now takes additional arguments +for specifying a reference point, wrapping the selection around frame +borders, and specifying ways to select the minibuffer window. + +*** Emacs can now change frame sizes in units of pixels, rather than +text rows or columns. When maximizing a frame or making it fullscreen, +remaining extra pixels are no longer given to the minibuffer, the rightmost +fringe, or other unusable space, but are distributed among the text +areas of the frame's windows. If the new option `frame-resize-pixelwise' +is non-nil, all frame size changes happen pixelwise and set the +corresponding size hints for the window manager. + +*** Emacs can now change window sizes in units of pixels. +Mouse-dragging a mode line or window divider now changes the size of +adjacent windows pixelwise. If the new option `window-resize-pixelwise' +is non-nil, functions like `balance-windows-area' and `fit-window-to-buffer' +resize windows pixelwise. Most functions for changing or accessing +window sizes now have an additional argument that allows changes to apply, +or values to be returned, in pixels instead of lines/columns. + +*** The functions `window-body-height' and `window-body-width' now never +count partially visible lines or columns if called with a nil PIXELWISE +argument. + +*** Emacs can now draw dividers between adjacent windows. To put +dividers between side-by-side/vertically stacked windows customize the +frame parameters `right-divider-width' and `bottom-divider-width' to +some positive integer. You can drag dividers with the mouse (they show +a corresponding cursor when the mouse hovers over them). You can change +the appearance of dividers by customizing the faces `window-divider', +`window-divider-first-pixel', and `window-divider-last-pixel'. The last +two are useful to provide a 3D effect, or to better distinguish dividers +from surrounding display objects. + +*** New functions to return the pixel sizes of window components, namely +`window-scroll-bar-width', `window-mode-line-height', +`window-header-line-height', `window-right-divider-width', and +`window-bottom-divider-width'. + +*** The new function `window-text-pixel-size' returns the size of the +text of a window's buffer in pixels. This allows functions like +`fit-frame-to-buffer' and `fit-window-to-buffer' to accurately fit a +window to its buffer as it will be displayed. + +*** `fit-window-to-buffer' can now resize windows in both dimensions. +This behavior is controlled by the new option +`fit-window-to-buffer-horizontally'. The new option +`fit-frame-to-buffer' allows you to fit the window's frame to its buffer. + +*** `fit-frame-to-buffer' now fits frames in both dimensions. The new +options `fit-frame-to-buffer-margins' and `fit-frame-to-buffer-sizes' +control the size of the frame and its position on screen. + +*** Temp Buffer Resize Mode can now adjust the height and width of +windows and frames. The new option `temp-buffer-max-width' allows you to +control the width of temporary buffer windows. Moreover, if the new +option `fit-frame-to-buffer' is non-nil and the buffer appears in the +root window of a frame, Temp Buffer Resize Mode will try to adjust the +width and/or height of the frame. + +*** `split-window' is now a non-interactive function, not a command. +As a command, it was a special case of `C-x 2' (`split-window-below'), +and as such superfluous. After being reimplemented in Lisp, its +interactive form was mistakenly retained. + +*** The functions `window-size' and `window-total-size' now have an +optional argument to return a rounded size value. + +*** `window-state-put' now allows you to put a window state into internal +windows too. + +*** New option `scroll-bar-adjust-thumb-portion'. +Available only on X, this option allows you to control over-scrolling +using the scroll bar (i.e., dragging the thumb down even when the end +of the buffer is visible). + +*** New display actions functions for `display-buffer': + +**** `display-buffer-at-bottom' chooses or creates a window at the +bottom of the selected frame. + +**** `display-buffer-no-window' to not display the buffer in a window. + +*** New display action alist entry `allow-no-window' to indicate the +caller of `display-buffer' is ready to handle the case of not displaying +the buffer in a window. + +*** `display-buffer-in-previous-window' is now a member of +`display-buffer-fallback-action'. + +** Lisp evaluation + +*** `eval-defun' on an already defined defcustom calls the :set function, +if there is one. + +*** The commands `eval-expression' (`M-:'), `eval-last-sexp' (`C-x C-e'), +and `eval-print-last-sexp' (`C-j' in Lisp Interaction mode) can take a +zero prefix argument. This disables truncation of lists in the output, +equivalent to setting `(eval-expression-)print-length' and +`(eval-expression-)print-level' to nil. Additionally, it causes integers +to be printed in other formats (octal, hexadecimal, and character). + +*** New hook `eval-expression-minibuffer-setup-hook' run by +`eval-expression' on entering the minibuffer. + +** `cache-long-line-scans' is now non-nil, and renamed to `cache-long-scans', +because it affects caching of paragraph scanning results as well. +There is no reason to set this to nil except for debugging purposes. + +** `emacs-bzr-version' has been renamed to `emacs-repository-version', +and works for git too, if you fetch the repository notes. + +** The default value of `comment-use-global-state' is now t, +and this variable has been marked obsolete. + +** `write-region-inhibit-fsync' now defaults to t in batch mode. + +** The option `set-mark-default-inactive' has been deleted. +This unfinished feature was introduced by accident in Emacs 23.1; +simply disabling Transient Mark mode does the same thing. + + +* Editing Changes in Emacs 24.4 + +** Indentation + +*** `electric-indent-mode' is now enabled by default. +Typing RET reindents the current line and indents the new line. +`C-j' inserts a newline but does not indent. In some programming modes, +additional characters are electric (eg `{'). + +*** New buffer-local `electric-indent-local-mode'. + +*** The behavior of `C-x TAB' (`indent-rigidly') has changed. +When invoked without a prefix argument, it now activates a transient +mode in which typing , , , and adjusts +the text indentation in the region. Typing any other key resumes +normal editing behavior. + +*** `tab-stop-list' is now implicitly extended to infinity by repeating +the last step. Its default value is changed to nil, which means a tab +stop every `tab-width' columns. + +** Uniquify is enabled by default, with `post-forward-angle-brackets' style. +In other words, if you visit two files that have the same base name, +then rather than creating buffers basename and basename<2>, +Emacs uses basename and basename. To change this, +customize `uniquify-buffer-name-style'. Set it to nil for the old behavior. + +** New command `C-x SPC' (`rectangle-mark-mode') makes a rectangular region. +Most commands are still unaware of it, but kill/yank do work on the rectangle. + +** New option `visual-order-cursor-movement'. +If this is non-nil, cursor motion with arrow keys will follow the +visual order of characters on the screen: always moves to the +left, always moves to the right, disregarding the surrounding +bidirectional context. + +** New command `delete-duplicate-lines'. +This searches the region for identical lines, and removes all but one +copy of each repeated line. The lines need not be sorted. + +** New command `cycle-spacing' acts like a smarter `just-one-space'. +When called in succession, it cycles between spacing conventions: +one space, no spaces, original spacing. + +** `blink-matching-paren' now only highlights the matching open-paren +by default, instead of moving the cursor. Set this variable to `jump' to +restore the old behavior. + +** The new function `fill-single-char-nobreak-p' can stop fill from breaking +a line after a one-letter word, which is an error in some typographical +conventions. To use it, add it to the `fill-nobreak-predicate' hook. + +** Registers + +*** All interactive commands that read a register (`copy-to-register', etc.) +now display a temporary window after `register-preview-delay' seconds +that summarizes existing registers. To disable this, set that option to nil. +Interactive commands that read registers and want to make use of this +should use `register-read-with-preview' to read register names. + +*** New command `frameset-to-register' bound to `C-x r f', replacing +`frame-configuration-to-register'. It offers similar functionality, +plus enhancements like the ability to restore deleted frames. +(`frame-configuration-to-register' still exists, but no longer has a +key binding.) + +*** New command `C-x C-k x' (`kmacro-to-register') stores keyboard +macros in registers. + + +* Changes in Specialized Modes and Packages in Emacs 24.4 + +** Backtrace and debugger + +*** New Lisp debugger command `v' (`debugger-toggle-locals') toggles the +display of local variables of the current stack frame. + +*** The Lisp debugger's `e' command (`debugger-eval-expression') now includes +the lexical environment when evaluating the code in the context at point +(and so allows you to access lexical variables). + +*** New minor mode `jit-lock-debug-mode' helps you debug code run via JIT Lock. + +** Battery information can now be retrieved from BSD's `apm' utility. + +** In the Buffer Menu, `M-s a C-o' shows matches for a regexp in marked buffers. + +** Calc + +*** Calc by default now uses the Gregorian calendar for all dates, and +uses January 1, 1 AD as its day number 1. Previously Calc used the +Julian calendar for dates before September 14, 1752, and it used +December 31, 1 BC as its day number 1; the new scheme is more +consistent with Calendar's calendrical system and day numbering. + +*** The new option `calc-gregorian-switch' lets you configure if +(and when) Calc switches from the Julian to the Gregorian calendar. + +*** Support for ISO 8601 dates. + +** Calendar and Diary + +*** New faces `calendar-weekday-header', `calendar-weekend-header', +and `calendar-month-header'. + +*** New option `calendar-day-header-array'. + +*** New variable `diary-from-outlook-function', used by the command +`diary-from-outlook'. + +*** The variable `calendar-font-lock-keywords' is obsolete. + +** CEDET + +*** EDE + +**** The cpp-root project now supports executing a compile command. +It can be set through the new :compile-command slot or the +buffer-local variable `compile-command'. + +**** Better selection of include directories for the 'linux' project. +Include directories now support out-of-tree build directories and +target architecture auto-detection. + +*** Semantic + +**** Improved detection of used namespaces in current scope in C++. + +**** Parsing of default values for variables and function arguments in C/C++. +They are also displayed by the summarize feature in the mode line. + +**** Improved parsing of function pointers in C/C++. +This also includes parsing of function pointers as function arguments. + +**** Parsing of C/C++ preprocessor macros that open new scope. +For example, this enables parsing of macros that open new namespaces. + +**** Support for 'this' pointer in inline member functions in C++. + +** CFEngine mode + +*** Support for completion, ElDoc, and Flycheck has been added. + +*** The current CFEngine syntax is parsed from "cf-promises -s json". +There is a fallback syntax available if you don't have cf-promises or +if your version doesn't support that option. See option `cfengine-cf-promises'. + +** cl-lib + +*** New macro `cl-tagbody'. +This executes statements while allowing for control transfer to labels. + +*** letf is now just an alias for cl-letf. + +** CUA mode + +*** CUA mode now uses `delete-selection-mode' and `shift-select-mode'. +Hence, you can now enable it independently from those modes, and from +`transient-mark-mode'. + +*** `cua-highlight-region-shift-only' is now obsolete. +You can disable `transient-mark-mode' to get the same result. + +*** CUA's rectangles can now be used without CUA by calling the command +`cua-rectangle-mark-mode'. + +** Delete Selection mode can now be used without Transient Mark mode. + +** Desktop + +*** `desktop-save-mode' by default now auto-saves an existing desktop file +after `desktop-auto-save-timeout'. To disable this, customize that option +to nil (or zero). + +*** Desktop now saves and restores the frame/window configuration. +To disable this, set `desktop-restore-frames' to nil. +See also related options `desktop-restore-reuses-frames', +`desktop-restore-in-current-display', and `desktop-restore-forces-onscreen'. + +** New Dired minor mode `dired-hide-details-mode' toggles whether details, +such as file ownership or permissions, are visible in Dired buffers. +See the new options `dired-hide-details-hide-symlink-targets' and +`dired-hide-details-hide-information-lines' for customizing what to hide. + +** You can enable ElDoc inside the `eval-expression' minibuffer with: + (add-hook 'eval-expression-minibuffer-setup-hook 'eldoc-mode) +The results display in the mode line. + +** Electric Pair mode + +*** New option `electric-pair-preserve-balance', enabled by default. +If non-nil, pairing/skipping only kicks in when that help the balance +of parentheses and quotes; i.e., the buffer should end up at least as +balanced as before. + +You can further control this behavior by adjusting the predicates +stored in `electric-pair-inhibit-predicate' and `electric-pair-skip-self'. + +*** New option `electric-pair-delete-adjacent-pairs', enabled by default. +In `electric-pair-mode', the commands `backward-delete-char' and +`backward-delete-char-untabify' are now bound to electric variants +that delete the closer when invoked between adjacent pairs. + +*** New option `electric-pair-open-newline-between-pairs', enabled by default. +In `electric-pair-mode', inserting a newline between adjacent pairs +opens an extra newline after point, which is indented if +`electric-indent-mode' is also set. + +*** New option `electric-pair-skip-whitespace', enabled by default. +This controls if skipping over closing delimiters should jump over any +whitespace slack. Setting it to `chomp' makes it delete this +whitespace. See also the variable `electric-pair-skip-whitespace-chars'. + +*** New variables control the pairing in strings and comments. +You can customize `electric-pair-text-pairs' and +`electric-pair-text-syntax-table' to tweak pairing behavior inside +strings and comments. + +** New EPA option `epa-mail-aliases'. +You can set this to a list of email address aliases that `epa-mail-encrypt' +should use to find keys. + +** New ERC option `erc-accidental-paste-threshold-seconds'. +If set to a number, this can be used to avoid accidentally pasting large +amounts of data into the ERC input. + +** New ERT macro `skip-unless' allows skipping ERT tests. + +** Eshell + +*** `eshell' now supports visual subcommands and options. +Eshell has been able to handle "visual" commands (interactive, +non-line oriented commands such as top that require display +capabilities not provided by eshell) by running them in an Emacs +terminal emulator. See `eshell-visual-commands'. + +This feature has been extended to subcommands and options that make a +usually line-oriented command a visual command. Typical examples are +"git log" and "git --help", which display their output in a +pager by default. See `eshell-visual-subcommands' and `eshell-visual-options'. + +*** New Eshell-Tramp module. +External su and sudo commands are now the default; the internal, +Tramp-using variants can still be used by enabling the eshell-tramp module. + +** New F90 mode option `f90-smart-end-names'. + +** New option `gnutls-verify-error', if non-nil, means that Emacs +should reject SSL/TLS certificates that GnuTLS determines as invalid. +(This option defaults to nil at present, but this is expected to change +in a future release.) + +** Hi-Lock + +*** New global command `M-s h .' (`highlight-symbol-at-point') highlights +the symbol near point. + +*** New option `hi-lock-auto-select-face'. When non-nil, hi-lock commands +will cycle through faces in `hi-lock-face-defaults' without prompting. + +** Icomplete is now more similar to Ido. + +*** Icomplete by default now applies to all forms of minibuffer completion. +The variable `icomplete-with-completion-tables' (now a user option) +controls this. To restore the old behavior, set it back to +'(internal-complete-buffer). + +*** You can navigate through and select completions using the keys +from `icomplete-minibuffer-map'. + +*** The string that separates potential completions is now a customizable +option (`icomplete-separator'). The default is " | " rather than ",". + +*** New face `icomplete-first-match'; and new options +`icomplete-hide-common-prefix' and `icomplete-show-matches-on-no-input'. + +*** The option `icomplete-show-key-bindings' has been removed. + +** Ido + +*** An Ido user manual is now included. + +*** The option `ido-use-virtual-buffers' can now take the value `auto'. +This means to use virtual buffers if the current ido input does not match +an existing buffer. + +*** The variable `ido-decorations' can optionally have two new elements, +which are the brackets to use around the sole remaining completion. + +** Image mode + +*** New commands `n' (`image-next-file') and `p' (`image-previous-file') +visit the next image file and the previous image file in the same +directory, respectively. + +*** New commands to show specific frames of multi-frame images. +`f' (`image-next-frame') and `b' (`image-previous-frame') visit the +next or previous frame. `F' (`image-goto-frame') shows a specific frame. + +*** New commands to speed up, slow down, or reverse animation. +`a +' (`image-increase-speed') and `a -' (`image-decrease-speed') to +speed up and slow down the animation. `a r' (`image-reverse-speed') +to reverse it and `a 0' (`image-reset-speed') to reset it. + +*** The command `image-mode-fit-frame' deletes other windows. +When toggling, it restores the frame's previous window configuration. +It also has an optional frame argument, which can be used by Lisp +callers to fit the image to a frame other than the selected frame. + +** New Imenu option `imenu-generic-skip-comments-and-strings'. + +** Info + +*** New Info face `info-index-match', used to highlight matches in index +entries displayed by `Info-index-next', `Info-virtual-index' and +`info-apropos'. + +*** The Info-edit command is obsolete. Editing Info nodes by hand +has not been relevant for some time. + +** JS Mode + +*** New option `js-switch-indent-offset'. + +*** Better indentation of multiple-variable declarations. +If a declaration spans several lines, variables on the following lines +are lined up to the first one. + +*** Recognition and better indentation of continuations in array comprehensions. + +** MH-E has been updated to version 8.6 - see separate MH-E-NEWS file. + +** Octave mode + +*** Font locking for Texinfo comments and new keywords. + +*** Completion in Octave file buffers. + +*** ElDoc support. + +*** Jump to definition. + +*** Documentation lookup/search. + +** OPascal mode is the new name for Delphi mode + +*** All delphi-* variables and functions have been renamed to opascal-*. +Obsolete aliases exist for those likely to have been used externally. + +*** The option `delphi-newline-always-indents' has been removed. +Use `electric-indent-mode' instead. + +*** The TAB key runs the standard `indent-for-tab-command', not `delphi-tab'. + +** Package + +*** The package library now supports digital signing of packages. +Maintainers of package archives should consider signing their packages +to enhance security. + +**** If the user option `package-check-signature' is non-nil, +Emacs tries to check package signatures at install time. +The value `allow-unsigned' allows installation of unsigned packages. + +**** The user option `package-unsigned-archives' lists archives where +Emacs will not try to check signatures. + +*** New option `package-pinned-packages'. This is useful if you have multiple +archives enabled, with more than one offering a given package that you want. + +*** In the `list-packages' buffer, you can use `f' (`package-menu-filter') +to filter the list of packages by a keyword. + +*** In the `describe-package' buffer, there are now buttons listing the +keywords related to the package. Click on a button to see other packages +related to that keyword. + +*** The format of `archive-contents' files, generated by package +repositories, has changed to allow a new (fifth) element in the data +vectors, containing an associative list with extra properties. +(For example, `describe-package' uses the `:url' extra property to +display a "Homepage" header.) + +** In Prolog mode, `prolog-use-smie' has been removed, +along with the non-SMIE indentation code. + +** Python mode + +*** Out of the box support for CPython, iPython and readline based shells. +**** `python-shell-completion-module-string-code' is no longer used. + +*** Automatic shell prompt detection. New user options: +**** `python-shell-interpreter-interactive-arg'. +**** `python-shell-prompt-detect-enabled'. +**** `python-shell-prompt-detect-failure-warning'. +**** `python-shell-prompt-input-regexps'. +**** `python-shell-prompt-output-regexps'. + +*** Python shell support for remote hosts via tramp. + +*** Correct display of line numbers for code sent to the Python shell. + +** Remember + +*** The new command `remember-notes' creates a buffer that is saved on exit. +You can use it as a more permanent *scratch* buffer. + +*** Remember can now store notes in separate files. +To use this, add `remember-store-in-files' to the `remember-handler-functions' +option. The files are saved in `remember-data-directory' using +names specified by `remember-directory-file-name-format'. + +** Rmail + +*** Customize `rmail-mbox-format' to influence some minor aspects of +how Rmail displays non-MIME messages. + +*** The `unrmail' command now converts from BABYL to mboxrd format, +rather than mboxo. Customize `unrmail-mbox-format' to change this. + +** Ruby mode + +*** Improved syntax highlighting and indentation. + +*** New `electric-indent-mode' integration. + +*** New option `ruby-encoding-magic-comment-style'. + +*** New option `ruby-custom-encoding-magic-comment-template'. + +*** New option `ruby-align-to-stmt-keywords'. + +*** New option `ruby-align-chained-calls'. + +*** More Ruby file types have been added to `auto-mode-alist'. + +** Search and Replace + +*** New global command `M-s .' (`isearch-forward-symbol-at-point') +starts a symbol (identifier) incremental search forward with the +symbol found near point added to the search string initially. + +*** `C-x 8 RET' in Isearch mode reads a character by its Unicode name +and adds it to the search string. + +*** `M-s i' in Isearch mode toggles whether search matches invisible text. + +*** `query-replace' skips invisible text when `search-invisible' is nil, +and opens overlays with hidden text when `search-invisible' is `open'. + +*** A negative prefix argument of replacement commands replaces backward. +`M-- M-%' replaces a string backward, `M-- C-M-%' replaces a regexp +backward, `M-s w words M-- M-%' replaces a sequence of words backward. + +*** By default, prefix arguments do not now terminate Isearch mode. +Set `isearch-allow-prefix' to nil to restore the old behavior. + +*** More Isearch commands accept prefix arguments, namely +`isearch-printing-char', `isearch-quote-char', `isearch-yank-word', +`isearch-yank-line'. + +*** Word search now matches whitespace at the beginning/end +of the search string if it contains leading/trailing whitespace. +In an incremental word search or when using a non-nil LAX argument +of `word-search-regexp', the lax matching can also match part of +the first word (in addition to the lax matching of the last word). +The same rules are now applied to the symbol search, with the difference +that it matches symbols, and non-symbol characters between symbols. + +** New SES command `ses-rename-cell' allows assignment of names to SES cells. + +** The shell.el option `explicit-bash-args' includes --noediting by default. +All non-ancient Bash versions support this option. + +** Shell Script mode + +*** The SMIE indentation engine is now used by default - see `sh-use-smie'. + +*** `sh-mode' now has its own setting for `add-log-current-defun-function'. + +** SMIE + +*** You can customize the SMIE indentation of a mode via `smie-config'. +The command `smie-config-guess' can help you derive the appropriate +indentation settings, if you provide it with an indented sample file. +Use `smie-config-save' to save the result. + +*** You can customize the SMIE indentation of a file by adding an entry to +the file's local variables of the form: `eval: (smie-config-local '(RULES))'. + +*** New commands `smie-config-show-indent' and `smie-config-set-indent'. + +** SQL mode + +*** Improved login monitoring and appropriate response to login failures. +New variable `sql-login-delay' defines maximum wait time for a connection. + +*** Oracle support. +SQL*Plus script placeholders are properly highlighted and identified +in `sql-placeholders-filter'. When starting SQL*Plus, `sql-oracle-options' +are passed before the logon parameter, as required. The default now +includes `-L', to limit the number of logon attempts per invocation. + +** New Term mode option `term-suppress-hard-newline'. + +** Todo mode has been rewritten and enhanced. +The Todo mode user manual describes all commands and most user +options. To support some of these features, a new file format is +used, which is incompatible with the old format; however, you can +convert old todo and done item files to the new format on initializing +the first new todo file, or at any later time with the provided +conversion command. The previous version of todo-mode.el has been +renamed to otodo-mode.el and is now obsolete. New features include: + +*** Support for multiple todo files and archive files of done items. + +*** Renaming, reordering, moving, merging, and deleting categories. + +*** Sortable tabular summaries of categories and the item types they contain. + +*** Cross-category lists of items filtered by specific criteria. + +*** More fine-grained interaction with the Emacs diary, by being able to +decide for each todo item whether it appears in the Fancy Diary display. + +*** Highly flexible new item insertion and item editing. + +*** Moving items between categories, storing done items in their category +or in archive files, undoing or unarchiving done items. + +*** Reprioritizing items by inputting a numerical priority. + +*** Extensive customizability of operation and display, including many faces. + +** Trace + +*** `trace-function' and `trace-function-background' no longer prompt for +the output buffer. Unless you use a prefix argument, they output to +`trace-buffer'. + +*** With a prefix argument, `trace-function' and `trace-function-background' +will prompt for a "context". This is a Lisp expression, whose value at the +time the function is entered/exited is printed along with the function's +name and arguments. + +** Tramp + +*** New connection method "adb", which allows to access Android +devices by the Android Debug Bridge. The variable `tramp-adb-program' +can be used to adapt the path of the "adb" program, if needed. + +*** Handlers for `file-acl' and `set-file-acl' for remote machines +that support POSIX ACLs. + +*** Handlers for `file-notify-add-watch' and `file-notify-rm-watch' +for remote machines that support filesystem notifications. + +*** The experimental url syntax for remote file names has been removed. + +*** The connection methods "plink1", "ssh1", "ssh2", "scp1", "scp2", +"scpc" and "rsyncc" are discontinued. The ssh option +"ControlMaster=auto" is set automatically in all ssh-based methods, +when possible. See `tramp-use-ssh-controlmaster-options'. + +** New URL command `url-cookie-list' displays the current cookies, +and allows you to interactively remove cookies. + +** VC and related modes + +*** In VC directory mode, `D' displays diffs between VC-controlled +whole tree revisions. + +*** In VC directory mode, `L' lists the change log for the current VC +controlled tree in a window. + +*** In VC directory mode, `I' shows a log of changes that will be +received with a pull operation. + +*** `C-x v G' (globally) and `G' (in VC directory mode) ignores a file +under current version control system. When called with a prefix +argument, you can remove a file from the ignored file list. + +** VHDL mode + +*** New options: `vhdl-actual-generic-name', `vhdl-beautify-options'. + +*** New commands: `vhdl-fix-statement-region', `vhdl-fix-statement-buffer'. + +** The Woman commands `woman-default-faces' and `woman-monochrome-faces' +are obsolete. Customize the `woman-*' faces instead. + +** More packages look for ~/.emacs.d/ additionally to ~/.. +Affected files: +~/.emacs.d/timelog replaces ~/.timelog +~/.emacs.d/vip replaces ~/.vip +~/.emacs.d/viper replaces ~/.viper +~/.emacs.d/ido.last replaces ~/.ido.last +~/.emacs.d/kkcrc replaces ~/.kkcrc +~/.emacs.d/quickurls replaces ~/.quickurls +~/.emacs.d/idlwave/ replaces ~/.idlwave/ +~/.emacs.d/bdfcache.el replaces ~/.bdfcache.el +~/.emacs.d/places replaces ~/.emacs-places +~/.emacs.d/shadows replaces ~/.shadows +~/.emacs.d/shadow_todo replaces ~/.shadow_todo +~/.emacs.d/strokes replaces ~/.strokes +~/.emacs.d/notes replaces ~/.notes +~/.emacs.d/type-break replaces ~/.type-break +Also the following files used by the now obsolete otodo-mode.el: +~/.emacs.d/todo-do replaces ~/.todo-do +~/.emacs.d/todo-done replaces ~/.todo-done +~/.emacs.d/todo-top replaces ~/.todo-top + +** Obsolete packages + +*** iswitchb.el; use icomplete-mode. + +*** longlines.el; use visual-line-mode. + +*** meese.el. + +*** sup-mouse.el. + +*** terminal.el; use term.el instead. + +*** the old version of todo-mode.el (renamed to otodo-mode.el). + +*** xesam.el (owing to the cancellation of the XESAM project). + +*** yow.el; use fortune.el or cookie1.el instead. + + +* New Modes and Packages in Emacs 24.4 + +** New package eww.el provides a built-in web browser. +This requires Emacs to have been compiled with libxml2 support. + +** New package nadvice.el offers lighter-weight advice facilities. +It is layered as: + +*** `add-function'/`remove-function', which can be used to add/remove code on +any function-carrying place, such as process filters or `-function' hooks. + +*** `advice-add'/`advice-remove' to add/remove a piece of advice on a named +function, much like `defadvice' does. + +** New package frameset.el provides a set of operations to save a frameset +(the state of all or a subset of the existing frames and windows, somewhat +similar to a frame configuration), both in-session and persistently, and +restore it at some point in the future. + +** New package filenotify.el provides an interface for file system +notifications. It requires that Emacs be compiled with one of the +low-level libraries gfilenotify.c, inotify.c or w32notify.c. + +** New minor modes `prettify-symbols-mode' and `global-prettify-symbols-mode' +display specified symbols as composed characters. E.g., in Emacs Lisp mode, +this replaces the string "lambda" with the Greek lambda character. + +** New minor mode `superword-mode', which overrides the default word motion +commands to treat "symbol_words" as a single word, similar to what +`subword-mode' does. + + +* Incompatible Lisp Changes in Emacs 24.4 + +** The default file coding for Emacs Lisp files is now utf-8. +(See `file-coding-system-alist'.) In most cases, this change is +transparent, but files that contain unusual characters without +specifying an explicit coding system may fail to load with obscure +errors. You should either convert them to utf-8 or add an explicit +`coding:' cookie. + +** Default process filters and sentinels are not nil any more. +Instead they default to a function that does what the nil value used to do. + +** Overlay priority does not have to be nil or a non-negative integer. +Overlay priority can be other kinds of Lisp objects. We didn't yet +decide whether other types of values are stable enough, and therefore +don't feel it's right to document them. For now, don't assume in your +code that the values of overlay priority can only be either nil or an +integer, always test them with an appropriate predicate to be one or +the other. If you need to sort arbitrary overlays into priority +order, `overlays-at' can now optionally do this. +You should still only specify integer priorities on overlays you create. + +** The cars of the elements in `interpreter-mode-alist' are now +treated as regexps rather than literal strings. + +** `overriding-terminal-local-map' no longer replaces the local keymaps. +It used to disable the minor mode, major mode, and text-property keymaps, +whereas now it simply has higher precedence. + +** `kill-region' has lost its `yank-handler' optional argument. + +** `(input-pending-p)' no longer runs other timers that are ready to run. +The new optional CHECK-TIMERS parameter allows for the prior behavior. + +** `defvar' and `defcustom' in a let-binding affect the "external" default. + +** The syntax of ?» and ?« is now punctuation instead of matched parens. +Some languages match those as »...«, and others as «...», so it is +better for Emacs to stay neutral by default. + +** `read-event' does not always decode chars in ttys any more. As was the case +in Emacs 22 and before, `read-event' (and `read-char') by default read raw +bytes from the terminal. If you want to read decoded chars instead (as was +always the case in Emacs-23, for example), pass a non-nil +`inherit-input-method' argument. + +** In `symbol-function', nil and "unbound" are indistinguishable. +`symbol-function' does not signal a `void-function' error any more. +To determine if a symbol's function definition is void, use `fboundp'. + +** `defadvice' does not honor the `freeze' flag and cannot advise +special-forms any more. + +** `dolist' no longer binds VAR while evaluating the RESULT form, +when lexical binding is enabled. Previously, VAR was bound to nil, +which often led to spurious unused-variable warnings. + +** The return value of `backup-buffer' has changed. +The second argument is no longer an SELinux context, instead it is an +alist of extended attributes as returned by the new function +`file-extended-attributes'. The attributes can be applied to another +file using `set-file-extended-attributes'. + +** By default `copy-file' no longer copies file permission bits to an +existing destination; and it sets the file permission bits of a newly +created destination to those of the source, masked by the default file +permissions. To copy the file permission bits, pass t as the +PRESERVE-PERMISSIONS argument of `copy-file'. + +** `visited-file-modtime' now returns -1 for nonexistent files. +Formerly it returned a list (-1 LOW USEC PSEC), but this was ambiguous +in the presence of files with negative time stamps. + +** Frame-local variables that affect redisplay do not work any more. +More specifically, redisplay does not bother to check for a frame-local +value when looking up variables. + +** In compiled Lisp files, the header no longer includes a timestamp. + +** The option `inhibit-local-menu-bar-menus' has been removed. + + +* Lisp Changes in Emacs 24.4 + +** Change to the Emacs Lisp coding conventions: the package descriptor +and name of global variables, constants, and functions should be separated +by two hyphens if the symbol is not meant to be used by other packages. + +** The second argument of `eval' can now specify a lexical environment. + +** New macro `define-alternatives' can be used to define generic commands. +Generic commands are interactive functions whose implementation can be +selected among several alternatives, as a matter of user preference. + +** Numeric comparison functions =, <, >, <=, >= can now take many arguments. + +** New functions `special-form-p' and `macrop'. + +** New macro `with-eval-after-load'. +This is like the old `eval-after-load', but better behaved. + +** If you give a symbol a `defalias-fset-function' property, `defalias' +on that symbol will use the associated value as a function to call +in place of `fset'. + +** New variable `enable-dir-local-variables'. +Directory-local variables are ignored if this is nil. This may be +useful for modes that want to ignore directory-locals while still +respecting file-local variables. + +** `read-regexp' now uses the new variable `read-regexp-defaults-function' +as a function to call to provide default values. + +** New functions `group-gid' and `group-real-gid'. + +** New function `get-pos-property'. + +** New hook `pre-redisplay-function'. + +** `byte-compile-interactive-only-functions' is now obsolete. +To specify that a command should only be called interactively, give it +a non-nil `interactive-only' property. + +** New function `string-suffix-p'. + +** `split-string' now takes an optional argument TRIM. +The value, if non-nil, is a regexp that specifies what to trim from +the start and end of each substring. + +** Completion + +*** The separator used by `completing-read-multiple' is now a regexp. +The default `crm-separator' has been changed to allow surrounding spaces +around the comma. + +*** New function `completion-table-with-cache' is a wrapper for +`completion-table-dynamic' that caches the result of the last lookup. + +*** New function `completion-table-merge' to combine several +completion tables by merging their completions. + +*** The `common-substring' argument of `display-completion-list', +which has been documented as obsolete since Emacs 23.1, is now _really_ +obsolete, and no longer advertised. Instead either call +`completion-hilit-commonality' to add the highlighting; or use +`completion-all-completions', which returns highlighted strings. + +** Encoding and decoding of text + +*** New coding-system `prefer-utf-8'. +This is like `undecided' but prefers UTF-8 on decoding if the text to +be decoded does not contain any invalid UTF-8 sequences. On encoding, +any non-ASCII characters are automatically encoded as UTF-8. + +*** New attributes of coding-systems whose type is `undecided'. +Two new attributes, `:inhibit-null-byte-detection' and +`:inhibit-iso-escape-detection', determine how to detect encoding of +text that includes null bytes and ISO-2022 escape sequences, respectively. +Each of these attributes can be either nil, zero, or t. If t, decoding +text ignores null bytes and ISO-2022 sequences, respectively. If nil, +null bytes cause text to be decoded with no-conversion, and ISO-2022 +sequences cause Emacs to assume the text is encoded in one of the ISO-2022 +encodings, such as iso-2022-7bit. If zero, Emacs consults the variables +`inhibit-null-byte-detection' and `inhibit-iso-escape-detection'. +The new attribute `:prefer-utf-8', if non-nil, causes Emacs to prefer +UTF-8 encoding and decoding, whenever possible. + +These attributes are only meaningful for coding-systems of type `undecided'. +(The type of a coding-system is determined by its `:coding-type' attribute +and can be accessed by calling the `coding-system-type' function.) + +** Error-handling + +*** New function `define-error'. + +*** `with-demoted-errors' takes an additional argument `format'. + +*** Errors from timer functions are no longer silently discarded, +but are reported as messages. So you may see "Error running timer" +messages from code that was failing silently till now. Set +`debug-on-error' non-nil to get a real error and a backtrace. + +** Faces + +*** Face specs set via Custom themes now replace the `defface' spec +rather than inheriting from it. In other words, setting a face via a +theme now behaves like setting it via Customize: you only need to +specify the attributes that you want, you don't need to unset those +that you don't want. + +*** The function `face-spec-set' is now like `setq' for face specs. +Its third arg now accepts values specifying a face spec type (defface, +custom, or override spec), and the relevant spec is set accordingly. + +*** New face spec attribute :distant-foreground +specifies foreground to use if background color is near the foreground +color that would otherwise have been used. + +*** New function `add-face-text-property', which can be used to +conveniently prepend/append new face properties. + +*** New face characteristic (supports :underline (:style wave)) +specifies whether or not the terminal can display a wavy line. + +** File-handling + +*** Support for filesystem notifications. +Emacs now supports notifications of filesystem changes, such as +creation, modification, and deletion of files. This requires the +`glib' API, or the 'inotify' API (on GNU/Linux systems only). On +MS-Windows systems, this is supported for Windows XP and newer. + +*** The 9th element returned by `file-attributes' is now unspecified. +Formerly, it was t if the file's gid would change if file were deleted +and recreated. This value has been inaccurate for years on many +platforms, and nobody seems to have noticed or cared. + +*** The 6th argument to `copy-file' has been renamed to +PRESERVE-PERMISSIONS as it now handles ACL entries and the traditional +Unix file permission bits as well as SELinux context. + +*** The function `file-ownership-preserved-p' now has an optional +argument GROUP which causes it check for file group too. This can be +used in place of the 9th element of `file-attributes'. + +*** The function `set-visited-file-modtime' now accepts a 0 or -1 argument, +with the same interpretation as the returned value of `visited-file-modtime'. + +** Image API + +*** `image-animated-p' is now `image-multi-frame-p'. +It returns non-nil for any image that contains multiple frames, +whether or not it specifies a frame delay. + +*** New variable `image-default-frame-delay' gives the frame delay for +animated images which do not specify a frame delay. + +*** New functions `image-current-frame' and `image-show-frame' for getting +and setting the current frame of a multi-frame image. + +** ImageMagick + +*** ImageMagick images now support the :max-width and :max-height keywords. + +*** When using `create-image' with image data, you can pass a :format +attribute (via the property-list argument) in order to help +ImageMagick detect the image type. The value should be a MIME +content-type that is found in the new variable `image-format-suffixes'. + +** Revert and Autorevert + +*** If Emacs is compiled with file notification support, it uses notifications +instead of checking file time stamps. To disable this, set the user option +`auto-revert-use-notify' to nil. Alternatively, you can specify a regular +expression matching directories to be excluded from file notifications via +`auto-revert-notify-exclude-dir-regexp'. + +*** The default values of `buffer-stale-function', `revert-buffer-function', +and `revert-buffer-insert-file-contents-function' are no longer nil. +Instead they default to functions that do what the nil value used to. + +*** `buffer-stale-function' is now used for buffers visiting files too. + +*** The new user option `auto-revert-remote-files' enables reversion +of remote files, if non-nil. + +** Terminal + +*** Functions to pop up menus and dialogs now work on all terminals, +including TTYs. This includes `x-popup-menu', `x-popup-dialog', +`message-box', `yes-or-no-p', etc. + +The function `display-popup-menus-p' will now return non-nil for a +display or frame whenever a mouse is supported on that display or frame. + +*** New hook `tty-setup-hook', run at the end of initializing a text terminal. + +*** The hook `term-setup-hook' is obsolete. It is entirely equivalent +to `emacs-startup-hook'. See also the new `tty-setup-hook'. + +** Minor internal changes to the details of lock files. +The lock for DIR/FILE is now _always_ DIR/.#FILE. +If DIR/.#FILE already exists and is not an Emacs lock file, +Emacs makes no attempt to lock DIR/FILE. (Previously, it fell back to +numbered lock files DIR/.#FILE.0...). +On file systems that do not support symbolic links, the lock is now a +regular file with contents being what would have been in the symlink. + +** New bool-vector set operation functions: +*** `bool-vector-exclusive-or' +*** `bool-vector-union' +*** `bool-vector-intersection' +*** `bool-vector-set-difference' +*** `bool-vector-not' +*** `bool-vector-subsetp' +*** `bool-vector-count-consecutive' +*** `bool-vector-count-population' + +** New library subr-x.el with miscellaneous small utility functions: +*** `hash-table-keys' +*** `hash-table-values' +*** `string-blank-p' +*** `string-empty-p' +*** `string-join' +*** `string-reverse' +*** `string-trim-left' +*** `string-trim-right' +*** `string-trim' +*** `string-remove-prefix' +*** `string-remove-suffix' + +** The `time-to-seconds' alias to `float-time' is no longer marked obsolete. + +** The spelling of the rx.el category `chinese-two-byte' has been +corrected (the first 'e' was missing). + +** EIEIO namespace cleanup, obsolete-aliasing functions to use `eieio-' prefix: +*** object-name -> eieio-object-name +*** object-class -> eieio-object-class +*** object-class-fast -> eieio--object-class +*** object-class-name -> eieio-object-class-name +*** object-name-string -> eieio-object-name-string +*** object-num-slots -> eieio--object-num-slots +*** object-set-name-string -> eieio-object-set-name-string +*** class-of -> eieio-object-class +*** class-name -> eieio-class-name +*** class-parent -> eieio-class-parent +*** class-parents -> eieio-class-parents +*** class-parents-fast -> eieio-class-parents-fast +*** class-children -> eieio-class-children +*** class-num-slots -> eieio--class-num-slots +*** class-precedence-list -> eieio-class-precedence-list +*** class-direct-subclasses -> eieio-class-children +*** class-direct-superclasses -> eieio-class-parents + +** Obsoleted functions +*** `log10' +*** `dont-compile' +*** `lisp-complete-symbol' +*** `field-complete' +*** `minibuffer-completion-contents' +*** `isearch-nonincremental-exit-minibuffer' +*** `isearch-filter-visible' +*** `generic-make-keywords-list' +*** `get-upcase-table' (use `case-table-get-table' instead). + +** `with-wrapper-hook' is obsoleted by `add-function'. +The few hooks that used with-wrapper-hook are replaced as follows: +*** `abbrev-expand-function' obsoletes `abbrev-expand-functions'. +*** `completion-in-region-function' obsoletes `completion-in-region-functions'. +*** `filter-buffer-substring-function' obsoletes `filter-buffer-substring-functions'. + + +* Changes in Emacs 24.4 on Non-Free Operating Systems + +** New Core Text based font backend for Mac OS X 10.5 and newer. +To use the old font backend, use the following on the command line: + % defaults write org.gnu.Emacs FontBackend ns +GNUstep and Mac OS X 10.4 use the old font backend. + +** Improved fullscreen support on Mac OS X 10.7 and newer, where the +default fullscreen method is now "native" fullscreen. To use the +old style fullscreen, customize `ns-use-native-fullscreen' to nil. + +** On Mac OS X 10.7 and newer, Emacs can use sRGB colorspace, and does so +by default. Customize `ns-use-srgb-colorspace' to go back to the old method. +Note that this does not apply to images. + +** The procedure for building Emacs on MS-Windows has changed. +It is now built by running the same configure script as on all other +platforms. This requires the MSYS environment and MinGW development +tools. See the updated instructions in nt/INSTALL for details. + +Using the Posix configure script and Makefiles also means a change in +the directory structure of the Emacs installation on Windows. It is +now the same as on GNU and Unix systems. In particular, the auxiliary +programs, such as cmdproxy.exe and hexl.exe, are in +libexec/emacs/VERSION/i686-pc-mingw32 (where VERSION is the Emacs +version), version-independent site-lisp is in share/emacs/site-lisp, +version-specific Lisp files are in share/emacs/VERSION/lisp and in +share/emacs/VERSION/site-lisp, Info docs are in share/info, and data +files are in share/emacs/VERSION/etc. (Emacs knows about all these +directories and will find the files in there automatically; there's no +need to set any variables due to this change.) + +** Emacs on Windows 2000 and later can now access files and directories +whose names cannot be encoded in the current system codepage. + +The new variable `w32-unicode-filenames' controls this feature: if it +is t, Emacs uses Unicode APIs to pass file names to system calls, +which lifts the limitation of file names to the current locale. + +** Lock files now work on MS-Windows. +This helps to prevent losing your edits if the same file is being +edited in another Emacs session or by another user. See the node +"Interlocking" in the Emacs User Manual for the details. To disable +file locking, customize `create-lockfiles' to nil. + +** The "generate a backtrace on fatal error" feature now works on MS-Windows. +The backtrace is written to the 'emacs_backtrace.txt' file in the +directory where Emacs was running. + +** The `network-interface-list' and `network-interface-info' functions +are now available on MS-Windows. + +** The variable `buffer-file-type' is no longer supported. +Setting it has no effect, and %t in the mode-line format is ignored. +Likewise, `file-name-buffer-file-type-alist' is now obsolete, and +modifying it has no effect. + + +* Installation Changes in Emacs 24.3 + +** The default X toolkit is now Gtk+ version 3. +If you don't pass `--with-x-toolkit' to configure, or if you use +`--with-x-toolkit=gtk' or `--with-x-toolkit=yes', configure will try +to build with Gtk+ version 3, and if that fails, try Gtk+ version 2. +You can explicitly require a specific version by passing +`--with-x-toolkit=gtk2' or `--with-x-toolkit=gtk3' to configure. + +** New configure option `--enable-link-time-optimization', to utilize +an appropriate feature provided by GCC since version 4.5.0. + +** New configure option `--without-all' to disable most of the optional +features (image support, etc.) that are normally enabled by default. + +** New configure option `--enable-gcc-warnings' (for developing/debugging +Emacs). If building with GCC, this enables compile-time checks that +warn/give errors about possibly-questionable C code. On a recent GNU +system there should be no warnings; on older and on non-GNU systems +the results may be useful to developers. + +** The configure option `--enable-use-lisp-union-type' has been +renamed to `--enable-check-lisp-object-type', as the resulting +Lisp_Object type no longer uses a union to implement the compile time +check that this option enables. + +** The configure option `--disable-maintainer-mode' has been removed, +as it was confusingly-named and rarely useful. + +** The configure options `--program-prefix', `--program-suffix', and +`--program-transform-name' apply to more than just the installed +binaries. Now they also affect the man pages, icons, and the +etc/emacs.desktop file; but not the info pages, since this would break +links between the various manuals. + +** You can use `NO_BIN_LINK=t make install' to prevent the installation +overwriting "emacs" in the installation bin/ directory with a link +to "emacs-VERSION". + +** Emacs uses libtinfo in preference to libncurses, if available. + +** On FreeBSD and NetBSD, configure no longer adds /usr/local/lib and +/usr/pkg/lib to the linker search path. You must add them yourself if +you want them. + +** The standalone scripts `rcs-checkin' and `vcdiff' have been removed +(from the bin and libexec directories, respectively). The former is +no longer relevant, the latter is replaced by lisp (in vc-sccs.el). + + +* Startup Changes in Emacs 24.3 + +** Emacs no longer searches for `leim-list.el' files beneath the standard +lisp/ directory. There should not be any there anyway. If you have +been adding them there, put them somewhere else; e.g., site-lisp. + +** The `--no-site-lisp' command line option now works for Nextstep builds. + + +* Changes in Emacs 24.3 + +** Help + +*** `C-h f' (`describe-function') can now perform autoloading. +When this command is called for an autoloaded function whose docstring +contains a key substitution construct, that function's library is +automatically loaded, so that the documentation can be shown +correctly. To disable this, set `help-enable-auto-load' to nil. + +*** `C-h f' now reports previously-autoloaded functions as "autoloaded", +even after their associated libraries have been loaded (and the +autoloads have been redefined as functions). + +** ImageMagick + +*** Images displayed via ImageMagick now support transparency and the +:background image specification property. + +*** When available, ImageMagick support is automatically enabled. +It is no longer necessary to call `imagemagick-register-types' +explicitly to install ImageMagick image types; that function is called +automatically at startup, or when customizing an imagemagick- option. + +*** Setting `imagemagick-types-inhibit' to t now disables the use of +ImageMagick to view images. (You must call `imagemagick-register-types' +afterwards if you do not use customize to change this.) + +*** The new variable `imagemagick-enabled-types' also affects which +ImageMagick types are treated as images. The function +`imagemagick-filter-types' returns the list of types that will be +treated as images. + +** Minibuffer + +*** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the +next and previous path separator, respectively. + +*** `minibuffer-electric-default-mode' can shorten "(default ...)" to "[...]" +in minibuffer prompts. Just set `minibuffer-eldef-shorten-default' +non-nil before enabling the mode. + +** Mode line + +*** New option `mode-line-default-help-echo' specifies the help text +(shown in a tooltip or in the echo area) for any part of the mode line +that does not have its own specialized help text. + +*** You can now click mouse-3 in the coding system indicator to invoke +`set-buffer-file-coding-system'. + +** Server and client + +*** emacsclient now obeys string values for `initial-buffer-choice', +if it is told to open a new frame without specifying any file to visit +or expression to evaluate. + +*** New option `server-auth-key' specifies a shared server key. + +** Emacs now generates backtraces on fatal errors. +On encountering a fatal error, Emacs now outputs a textual description +of the fatal signal, and a short backtrace on platforms like glibc +that support backtraces. + +** `C-x C-q' is now bound to the new minor mode `read-only-mode'. +This minor mode replaces `toggle-read-only', which is now obsolete. + +** Most `y-or-n' prompts now allow you to scroll the selected window. +Typing `C-v' or `M-v' at a y-or-n prompt scrolls forward or backward +respectively, without exiting from the prompt. + +** In the Package Menu, newly-available packages are listed as "new", +and sorted above the other "available" packages by default. + +** If your Emacs was built from a repository checkout, the new variable +`emacs-bzr-version' contains information about the bzr revision used. + +** New option `create-lockfiles' specifies usage of lockfiles. +It defaults to t. Changing it to nil inhibits the creation of lock +files (use this with caution). + +** New option `enable-remote-dir-locals', if non-nil, allows directory-local +variables on remote hosts. + +** The entry for PCL-CVS has been removed from the Tools menu. +The PCL-CVS commands are still available via the keyboard. + +** Using "unibyte: t" in Lisp source files is obsolete. +Use "coding: raw-text" instead. + +** In the buffer made by `M-x report-emacs-bug', the `C-c m' binding +has been changed to `C-c M-i' (`report-emacs-bug-insert-to-mailer'). +The previous binding, introduced in Emacs 24.1, was a mistake, because +`C-c LETTER' bindings are reserved for user customizations. + +** Internationalization + +*** New language environment: Persian. + +*** New input method `vietnamese-vni'. + +** Nextstep (GNUstep / Mac OS X) port + +*** Support for fullscreen and the frame parameter fullscreen. + +*** A file dialog is used for open/save operations initiated from the +menu/toolbar. + + +* Editing Changes in Emacs 24.3 + +** Search and Replace + +*** Non-regexp Isearch now performs "lax" space matching. +Each sequence of spaces in the supplied search string may match any +sequence of one or more whitespace characters, as specified by the +variable `search-whitespace-regexp'. (This variable is also used by a +similar existing feature for regexp Isearch.) + +*** New Isearch command `M-s SPC' toggles lax space matching. +This applies to both ordinary and regexp Isearch. + +*** New option `replace-lax-whitespace'. +If non-nil, `query-replace' uses flexible whitespace matching too. +The default is nil. + +*** Global `M-s _' starts a symbol (identifier) incremental search, +and `M-s _' in Isearch toggles symbol search mode. +`M-s c' in Isearch toggles search case-sensitivity. + +** Navigation commands + +*** New binding `M-g c' for `goto-char'. + +*** New binding `M-g TAB' for `move-to-column'. + +*** `M-g TAB' (`move-to-column') prompts for a column number if called +interactively with no prefix arg. Previously, it moved to column 1. + +** New option `yank-handled-properties' allows processing of text +properties on yanked text, in ways that are more general than just +removing them (as is done by `yank-excluded-properties'). + +** New option `delete-trailing-lines' specifies whether +M-x delete-trailing-whitespace should delete trailing lines at the end +of the buffer. It defaults to t. + +** `C-u M-=' now counts lines/words/characters in the entire buffer. + +** `C-x 8 RET' is now bound to `insert-char', which is now a command. +`ucs-insert' is now an obsolete alias for `insert-char'. + +** The `z' key no longer has a binding in most special modes. +It used to be bound to `kill-this-buffer', but `z' is too easy to +accidentally type. + +** New command `C-x r M-w' (`copy-rectangle-as-kill'). +It copies the region-rectangle as the last rectangle kill. + +** Registers + +*** `C-x r +' is now overloaded to invoke `append-to-register'. + +*** New option `register-separator' specifies the register containing +the text to put between collected texts for use with +M-x append-to-register and M-x prepend-to-register. + + +* Changes in Specialized Modes and Packages in Emacs 24.3 + +** Common Lisp emulation (CL) + +*** CL's main entry is now (require 'cl-lib). +`cl-lib' is like the old `cl' except that it uses the namespace cleanly; +i.e., all its definitions have the "cl-" prefix (and internal definitions +use the "cl--" prefix). + +If `cl' provided a feature under the name `foo', then `cl-lib' +provides it under the name `cl-foo' instead; with the exceptions of the +few `cl' definitions that had to use `foo*' to avoid conflicts with +pre-existing Elisp entities. These have been renamed to `cl-foo' +rather than `cl-foo*'. + +The old `cl' is now deprecated and is mainly just a bunch of aliases that +provide the old, non-prefixed names. Some exceptions are listed below: + +*** `cl-flet' is not like `flet' (which is deprecated). +Instead it obeys the behavior of Common-Lisp's `flet'. +In particular, in cl-flet function definitions are lexically scoped, +whereas in flet the scoping is dynamic. + +*** `cl-labels' is slightly different from `labels'. +The difference is that it relies on the `lexical-binding' machinery +(as opposed to the `lexical-let' machinery used previously) to capture +definitions in closures, so such closures will only work if `lexical-binding' +is in use. + +*** `cl-letf' is not exactly like `letf'. +The only difference is in details that relate to some deprecated usage +of `symbol-function' in place forms. + +*** `progv' was rewritten to use the `let' machinery. +A side effect is that variables without corresponding values are bound +to nil rather than being made unbound. + +*** The following methods of extending `setf' are obsolete +(use features from gv.el instead): +`define-modify-macro' (use `gv-letplace') +`defsetf' (use `gv-define-simple-setter' or `gv-define-setter') +`define-setf-expander' (use `gv-define-setter' or `gv-define-expander') +`get-setf-method' no longer exists (see "Incompatible Lisp Changes") + +** Diff mode + +*** Changes are now highlighted using the same color scheme as in +modern VCSes. Deletions are displayed in red (new faces +`diff-refine-removed' and `smerge-refined-removed', and new definition +of `diff-removed'), insertions in green (new faces `diff-refine-added' +and `smerge-refined-added', and new definition of `diff-added'). + +*** The variable `diff-use-changed-face' defines whether to use the +face `diff-changed', or `diff-removed' and `diff-added' to highlight +changes in context diffs. + +*** The new command `diff-delete-trailing-whitespace' removes trailing +whitespace introduced by a diff. + +** Ediff now uses the same color scheme as Diff mode. + +** Python mode + +A new version of python.el, which provides several new features, including: +per-buffer shells, better indentation, Python 3 support, and improved +shell-interaction compatible with iPython (and virtually any other +text based shell). + +*** Some user options have been replaced/renamed, including (old -> new): +**** python-indent -> python-indent-offset +**** python-guess-indent -> python-indent-guess-indent-offset +**** python-pdbtrack-do-tracking-p -> python-pdbtrack-activate +**** python-use-skeletons -> python-skeleton-autoinsert + +*** Some user options have been removed, including: + +**** `python-indent-string-contents': Strings are never indented. + +**** `python-honour-comment-indentation': +Comments are always considered as indentation markers. + +**** `python-continuation-offset': Indentation is automatically +calculated in a pep8 compliant way depending on the context. + +**** `python-shell-prompt-alist', `python-shell-continuation-prompt-alist': +Have no direct mapping as the shell interaction is completely different. + +**** `python-python-command', `python-jython-command': +Replaced by `python-shell-interpreter'. + +**** `inferior-python-filter-regexp', `python-remove-cwd-from-path', +`python-pdbtrack-minor-mode-string', `python-source-modes': +No longer relevant. + +*** Some commands have been replaced (old -> new): +**** python-insert-class -> python-skeleton-class +**** python-insert-def -> python-skeleton-def +**** python-insert-for -> python-skeleton-for +**** python-insert-if -> python-skeleton-if +**** python-insert-try/except -> python-skeleton-try +**** python-insert-try/finally -> python-skeleton-try +**** python-insert-while -> python-skeleton-while +**** python-find-function -> python-nav-jump-to-defun +**** python-next-statement -> python-nav-forward-sentence +**** python-previous-statement -> python-nav-backward-sentence +**** python-beginning-of-defun-function -> python-nav-beginning-of-defun +**** python-end-of-defun-function -> python-nav-end-of-defun +**** python-send-buffer -> python-shell-send-buffer +**** python-send-defun -> python-shell-send-defun +**** python-send-region -> python-shell-send-region +**** python-send-region-and-go -> emulate with python-shell-send-region +and python-shell-switch-to-shell +**** python-send-string -> python-shell-send-string +**** python-switch-to-python -> python-shell-switch-to-shell +**** python-describe-symbol -> python-eldoc-at-point + +** D-Bus + +*** New variables `dbus-compiled-version' and `dbus-runtime-version'. + +*** The D-Bus object manager interface is implemented. + +*** Variables of type :(u)int32 and :(u)int64 accept floating points, +if their value does not fit into Emacs's integer range. + +*** The function `dbus-call-method' is now non-blocking. +It can be interrupted by `C-g'. `dbus-call-method-non-blocking' is obsolete. + +*** Signals can also be sent as unicast messages. + +*** The argument list of `dbus-register-signal' has been extended, +according to the new match rule types of D-Bus. + +*** `dbus-init-bus' supports private connections. + +*** There is a new function `dbus-setenv'. + +** `desktop-path' no longer includes the "." directory. +Desktop files are now located in ~/.emacs.d by default. + +** Dired + +*** `dired-do-async-shell-command' executes each file sequentially +if the command ends in `;' (when operating on multiple files). +Otherwise, it executes the command on each file in parallel. + +*** Typing `M-n' in the minibuffer of `dired-do-chmod', `dired-do-chgrp', +`dired-do-chown', and `dired-do-touch' yanks the attributes of the +file at point. + +*** When the region is active, `m' (`dired-mark'), `u' (`dired-unmark'), +`DEL' (`dired-unmark-backward'), and `d' (`dired-flag-file-deletion') +mark/unmark/flag all files in the active region. + +*** The minibuffer default for `=' (`dired-diff') has changed. +It is now the backup file for the file at point, if one exists. +In Transient Mark mode the default is the file at the active mark. + +*** `M-=' is no longer bound to `dired-backup-diff' in Dired buffers. +The global binding for `M-=', `count-words-region' is in effect. + +** ERC + +*** New module "notifications", which can send a notification when you +receive a private message or your nickname is mentioned. + +*** ERC will look up server/channel names via auth-source and use any +channel keys found. + +*** New option `erc-lurker-hide-list', similar to `erc-hide-list', but +only applies to messages sent by lurkers. + +** reStructuredText mode + +*** Keybindings (see `C-c C-h'), TAB indentation, filling and auto-filling, +fontification, comment handling, and customization have all been revised +and improved. + +*** Support for `imenu' and `which-function-mode'. + +*** The reStructuredText syntax is more closely covered. +Sphinx support has been improved. + +*** `rst-insert-list' inserts new list or continues existing lists. + +*** A negative prefix argument always works for `rst-adjust'. + +*** The window configuration is reset after displaying a TOC. + +*** The constant `rst-version' describes the rst.el package version. + +** Ruby mode + +*** Support for percent literals and recognition of regular expressions +in method calls without parentheses with more methods, including Cucumber +steps definitions. + +*** Improved syntax highlighting and indentation. + +*** New command `ruby-toggle-block', bound to `C-c {'. + +*** Some non-standard keybindings/commands have been removed: + +**** `ruby-electric-brace'; use `electric-indent-mode' instead. + +**** `ruby-mark-defun'; use `mark-defun'. + +**** `ruby-beginning-of-defun' and `ruby-end-of-defun' are replaced by +appropriate settings for the variables `beginning-of-defun-function' +and `end-of-defun-function'. + +**** Non-standard keybindings for `backward-kill-word', `comment-region', +`reindent-then-newline-and-indent' and `newline' have been removed. + +** Shell Script mode + +*** Pairing of parens/quotes uses `electric-pair-mode' instead of skeleton-pair. + +*** `sh-electric-here-document-mode' now controls auto-insertion of here-docs. + +*** `sh-use-smie' lets you choose a new indentation and navigation code. + +** VHDL mode + +*** The free software compiler GHDL is supported (and now the default). + +*** Support for the VHDL-AMS packages has been added/updated. + +*** Updated to the 2002 revision of the VHDL standard. + +*** Accepts \r and \f as whitespace. + +** Apropos + +*** The faces used by Apropos are now directly customizable. +These faces are named `apropos-symbol', `apropos-keybinding', and so on; +see the `apropos' Custom group for details. + +*** The old options whose values specified faces to use have been removed +(i.e. `apropos-symbol-face', `apropos-keybinding-face', `apropos-label-face', +`apropos-match-face' and `apropos-property-face'.). + +** Buffer Menu + +*** This package has been rewritten to use Tabulated List mode. + +*** Option `Buffer-menu-buffer+size-width' is now obsolete. +Use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead. + +** Calc + +*** Algebraic simplification mode is now the default. +To restrict to the limited simplifications given by the former +default simplification mode, use `m I'. + +** Calendar + +*** You can customize the header text that appears above each calendar month. +See the variable `calendar-month-header'. + +*** New LaTeX calendar style, produced by `cal-tex-cursor-week2-summary'. + +*** The calendars produced by cal-html include holidays. +Customize `cal-html-holidays' to change this. + +** CEDET + +*** The major modes from the parser generators "Bovine" and "Wisent" +are now properly integrated in Emacs. The file suffixes ".by" and ".wy" +are in `auto-mode-alist', and the corresponding manuals are included. + +*** EDE + +**** Menu support for the "Configuration" feature. This allows users to +choose the active configuration (such as debug or install) from the menu. + +**** New command `ede-set' to interactively set project-local variables. + +**** Support for compiling, debugging, and running in "generic" projects. + +**** Autoconf editing support for M4 macros with complex arguments. + +**** Compilation support for the "linux" project type. + +**** "simple" projects have been removed; use "generic" projects instead. + +*** Semantic + +**** Support for parsing #include statements inside a namespace in C/C++. + +**** Improved support for 'extern "C"' declarations in C/C++. + +**** The ability to ignore more common special C/C++ preprocessor symbols, +such as '__nonnull' and '__asm'. Add '__cplusplus' macro when parsing C++. +If available, include cdefs.h as an additional source of preprocessor symbols. + +**** Improved C/C++ function pointer parsing. + +**** In Python, support for converting imports to include file names. + +**** Ability to dynamically determine the Python load path. + +**** Support for the Python 'WITH' and 'AT' keywords. + +**** Improved tooltip completion. + +*** SRecode + +**** The SRecode manual is now included. + +**** Tag generation supports constructor/destructor settings and system +include differentiation. + +**** Addition of 'Framework' support: Frameworks are specified when a +particular kind of library (such as Android) is needed in a common language +mode (like Java). + +**** Support for nested templates and let variables override based on priority. + +**** Support for merging tables from multiple related modes, such as +default -> c++ -> arduino. + +** Compile has a new option `compilation-always-kill'. + +** Customize + +*** `custom-reset-button-menu' now defaults to t. + +*** Non-option variables are never matched in `customize-apropos' and +`customize-apropos-options' (i.e., the prefix argument does nothing for +these commands now). + +** Term + +*** The variables `term-default-fg-color' and `term-default-bg-color' +are now deprecated in favor of the customizable face `term'. + +*** You can customize how to display ANSI terminal colors and styles +by customizing the corresponding `term-color-', +`term-color-underline' and `term-color-bold' faces. + +** Tramp + +*** The syntax has been extended in order to allow ad-hoc proxy definitions. + +*** Remote processes are now also supported on remote MS-Windows hosts. + +** URL + +*** Structs made by `url-generic-parse-url' have nil `attributes' slot. +Previously, this slot stored semicolon-separated attribute-value pairs +appended to some imap URLs, but this is not compatible with RFC 3986. +So now the `filename' slot stores the entire path and query components, +and the `attributes' slot is always nil. + +*** New function `url-encode-url' for encoding a URI string. +The `url-retrieve' function now uses this to encode its URL argument, +in case that is not properly encoded. + +** notifications.el supports now version 1.2 of the Notifications API. +The function `notifications-get-capabilities' returns the supported +server properties. + +** Flymake uses fringe bitmaps to indicate errors and warnings. +See `flymake-fringe-indicator-position', `flymake-error-bitmap' and +`flymake-warning-bitmap'. + +** The FFAP option `ffap-url-unwrap-remote' can now be a list of strings, +specifying URL types that should be converted to remote file names at +the FFAP prompt. The default is now '("ftp"). + +** New Ibuffer `derived-mode' filter, bound to `/ M'. +The old binding for `/ M' (filter by used-mode) is now bound to `/ m'. + +** New option `mouse-avoidance-banish-position' specifies where the +`banish' mouse avoidance setting moves the mouse. + +** In Perl mode, new option `perl-indent-parens-as-block' causes non-block +closing brackets to be aligned with the line of the opening bracket. + +** In Proced mode, new command `proced-renice' renices marked processes. + +** New option `async-shell-command-buffer' specifies the buffer to use +for a new asynchronous `shell-command' when the default output buffer +`*Async Shell Command*' is already in use. + +** SQL mode has a new option `sql-db2-escape-newlines'. +If non-nil, newlines sent to the command interpreter will be escaped +by a backslash. The default does not escape the newlines and assumes +that the sql statement will be terminated by a semicolon. + +** New command `tabulated-list-sort', bound to `S' in Tabulated List mode +(and modes that derive from it), sorts the column at point, or the Nth +column if a numeric prefix argument is given. + +** `which-func-modes' now defaults to t, so Which Function mode, when +enabled, applies to all applicable major modes. + +** `winner-mode-hook' now runs when the mode is disabled, as well as when +it is enabled. + +** Follow mode no longer works by using advice. +The option `follow-intercept-processes' has been removed. + +** `javascript-generic-mode' is now an obsolete alias for `js-mode'. + +** Hooks renamed to avoid obsolete "-hooks" suffix: +*** semantic-lex-reset-hooks -> semantic-lex-reset-functions +*** semantic-change-hooks -> semantic-change-functions +*** semantic-edits-new-change-hooks -> semantic-edits-new-change-functions +*** semantic-edits-delete-change-hooks -> semantic-edits-delete-change-functions +*** semantic-edits-reparse-change-hooks -> semantic-edits-reparse-change-functions +*** semanticdb-save-database-hooks -> semanticdb-save-database-functions +*** c-prepare-bug-report-hooks -> c-prepare-bug-report-hook +*** rcirc-sentinel-hooks -> rcirc-sentinel-functions +*** rcirc-receive-message-hooks -> rcirc-receive-message-functions +*** rcirc-activity-hooks -> rcirc-activity-functions +*** rcirc-print-hooks -> rcirc-print-functions +*** dbus-event-error-hooks -> dbus-event-error-functions +*** eieio-pre-method-execution-hooks -> eieio-pre-method-execution-functions +*** checkdoc-style-hooks -> checkdoc-style-functions +*** checkdoc-comment-style-hooks -> checkdoc-comment-style-functions +*** archive-extract-hooks -> archive-extract-hook +*** filesets-cache-fill-content-hooks -> filesets-cache-fill-content-hook +*** hfy-post-html-hooks -> hfy-post-html-hook +*** nndiary-request-create-group-hooks -> nndiary-request-create-group-functions +*** nndiary-request-update-info-hooks -> nndiary-request-update-info-functions +*** nndiary-request-accept-article-hooks -> nndiary-request-accept-article-functions +*** gnus-subscribe-newsgroup-hooks -> gnus-subscribe-newsgroup-functions + +** Obsolete packages + +*** assoc.el +In most cases, assoc+member+push+delq work just as well. +And in any case it's just a terrible package: ugly semantics, terrible +inefficiency, and not namespace-clean. +*** bruce.el +*** cust-print.el +*** ledit.el +*** mailpost.el +*** mouse-sel.el +*** patcomp.el + + +* Incompatible Lisp Changes in Emacs 24.3 + +** Docstrings starting with `*' no longer indicate user options. +Only variables defined using `defcustom' are considered user options. +The function `user-variable-p' is now an obsolete alias for +`custom-variable-p'. + +** The return values of `defalias', `defun' and `defmacro' have changed, +and are now undefined. For backwards compatibility, `defun' and +`defmacro' currently return the name of the newly defined +function/macro, but this should not be relied upon. + +** `random' by default now returns a different random sequence in +every Emacs run. Use `(random S)', where S is a string, to set the +random seed to a value based on S, in order to get a repeatable +sequence in later calls. + +** If the NEWTEXT arg to `replace-match' contains a substring "\?", +that substring is inserted literally even if the LITERAL arg is +non-nil, instead of causing an error to be signaled. + +** `select-window' now always makes the window's buffer current. +It does so even if the window was selected before. + +** The function `x-select-font' can return a font spec, instead of a +font name as a string. Whether it returns a font spec or a font name +depends on the graphical library. + +** `face-spec-set' no longer sets frame-specific attributes when the +third argument is a frame (that usage was obsolete since Emacs 22.2). + +** `set-buffer-multibyte' now signals an error in narrowed buffers. + +** The CL package's `get-setf-method' function no longer exists. +Generalized variables are now part of core Emacs Lisp, and implemented +differently to the way cl.el used to do it. It is not possible to +define a compatible replacement for `get-setf-method'. See the file +gv.el for internal details of the new implementation. + +** The arguments of `dbus-register-signal' are no longer just strings, +but keywords or keyword-string pairs. The old argument list will +still be supported for Emacs 24.x. + +** Miscellaneous name changes +Some Lisp symbols have been renamed to correct their spelling, +or to be more consistent with standard Emacs terminology. + +*** Renamed functions +**** hangul-input-method-inactivate -> hangul-input-method-deactivate +**** inactivate-input-method -> deactivate-input-method +**** quail-inactivate -> quail-deactivate +**** robin-inactivate -> robin-deactivate +**** viper-inactivate-input-method -> viper-deactivate-input-method +**** viper-inactivate-input-method-action -> + viper-deactivate-input-method-action +**** ucs-input-inactivate -> ucs-input-deactivate + +*** Renamed hooks +The old hooks are still supported for backward compatibility, but they +are deprecated and will be removed eventually. +**** input-method-inactivate-hook -> input-method-deactivate-hook +**** robin-inactivate-hook -> robin-deactivate-hook +**** quail-inactivate-hook -> quail-deactivate-hook + +*** Renamed variables +**** follow-deactive-menu -> follow-inactive-menu +**** inactivate-current-input-method-function -> + deactivate-current-input-method-function + +** Some obsolete functions, variables, and faces have been removed: +*** `last-input-char', `last-command-char', `unread-command-char' +*** `facemenu-unlisted-faces' +*** `rmail-decode-mime-charset' +*** `iswitchb-read-buffer' +*** `sc-version', `sc-submit-bug-report' +*** `set-char-table-default' +*** `string-to-sequence' (use `string-to-list' or `string-to-vector') +*** `compile-internal' +*** `modeline' +*** `mode-line-inverse-video' +*** `follow-mode-off-hook' +*** `cvs-commit-buffer-require-final-newline' +(use `log-edit-require-final-newline' instead) +*** `cvs-changelog-full-paragraphs' +(use `log-edit-changelog-full-paragraphs' instead) +*** `cvs-diff-ignore-marks', `cvs-diff-buffer-name' +*** `vc-ignore-vc-files' (use `vc-handled-backends' instead) +*** `vc-master-templates' (use `vc-handled-backends' instead) +*** `vc-checkout-carefully' + + +* Lisp Changes in Emacs 24.3 + +** CL-style generalized variables are now in core Elisp. +`setf' is autoloaded; `push' and `pop' accept generalized variables. +You can define your own generalized variables using `gv-define-simple-setter', +`gv-define-setter', etc. + +** Emacs tries to macroexpand interpreted (non-compiled) files during load. +This can significantly speed up execution of non-byte-compiled code, +but can also bump into previously unnoticed cyclic dependencies. +These are generally harmless: they will simply cause the macro calls +to be left for later expansion (as before), but will result in a +warning ("Eager macro-expansion skipped due to cycle") describing the cycle. +You may wish to restructure your code so this does not happen. + +** New sampling-based Elisp profiler. +Try M-x profiler-start, do some work, and then call M-x profiler-report. +When finished, use M-x profiler-stop. The sampling rate can be based on +CPU time or memory allocations. + +** `defun' also accepts a (declare DECLS) form, like `defmacro'. +The interpretation of the DECLS is determined by `defun-declarations-alist'. + +** New macros `setq-local' and `defvar-local'. + +** Face underlining can now use a wave. + +** `read-regexp' has a new argument HISTORY; the first argument PROMPT +of `read-regexp' accepts a string ending with a colon and space, and its +second argument DEFAULTS can be a list of strings accessible via `M-n' +in the minibuffer ahead of other hard-coded useful regexp-related values. +More commands use `read-regexp' now to read their regexp arguments. + +** Completion + +*** New function `completion-table-with-quoting' to handle completion +in the presence of quoting, such as file completion in shell buffers. + +*** New function `completion-table-subvert' to use an existing completion +table, but with a different prefix. + +** Debugger + +*** New error type and new function `user-error'. +These do not trigger the debugger. + +*** New option `debugger-bury-or-kill', saying what to do with the +debugger buffer when exiting debug. + +*** Set `debug-on-message' to enter the debugger when a certain +message is displayed in the echo area. This can be useful when trying +to work out which code is doing something. + +*** New var `inhibit-debugger', automatically set to prevent accidental +recursive invocations. + +** Window handling + +*** New command `fit-frame-to-buffer' adjusts the frame height to +fit the contents. + +*** The command `fit-window-to-buffer' can adjust the frame height +if the new option `fit-frame-to-buffer' is non-nil. + +*** New macro `with-temp-buffer-window', similar to +`with-output-to-temp-buffer'. + +*** `temp-buffer-resize-mode' no longer resizes windows that have been +reused. + +*** New option `switch-to-buffer-preserve-window-point' to restore a +window's point when switching buffers. + +*** New display action alist entries `window-height' and `window-width' +specify the size of new windows created by `display-buffer'. + +*** New display action alist entry `pop-up-frame-parameters', if +non-nil, specifies frame parameters to give any newly-created frame. + +*** New display action alist entry `inhibit-switch-frame', if non-nil, +tells display action functions to avoid changing which frame is +selected. + +*** New display action alist entry `previous-window', if non-nil, +specifies window to reuse in `display-buffer-in-previous-window'. + +*** New display action functions `display-buffer-below-selected', +and `display-buffer-in-previous-window'. + +*** The functions `get-lru-window', `get-mru-window' and `get-largest-window' +now accept a third argument to avoid choosing the selected window. + +*** Additional values recognized for option `window-combination-limit'. + +*** The following variables are obsolete, as they can be replaced by +appropriate entries in the `display-buffer-alist' function introduced +in Emacs 24.1: +**** `dired-shrink-to-fit' +**** `display-buffer-reuse-frames' +**** `display-buffer-function' +**** `special-display-buffer-names' +**** `special-display-frame-alist' +**** `special-display-function' +**** `special-display-regexps' + +** Time + +*** `current-time-string' no longer requires that its argument's year +must be in the range 1000..9999. It now works with any year supported +by the underlying C implementation. + +*** `current-time' now returns extended-format time stamps +(HIGH LOW USEC PSEC), where the new PSEC slot specifies picoseconds. +PSEC is typically a multiple of 1000 on current machines. Other +functions that use this format, such as `file-attributes' and +`format-time-string', have been changed accordingly. Old-format time +stamps are still accepted. + +*** The format of timers in `timer-list' and `timer-idle-list' is now +[TRIGGERED-P HI-SECS LO-SECS USECS REPEAT-DELAY FUNCTION ARGS IDLE-DELAY PSECS]. +The PSECS slot is new, and uses picosecond resolution. It can be +accessed via the new `timer--psecs' accessor. + +*** Last-modified time stamps in undo lists now are of the form +(t HI-SECS LO-SECS USECS PSECS) instead of (t HI-SECS . LO-SECS). + +** EIEIO + +*** Improved security when handling persistent objects: + +**** `eieio-persistent-read' now features optional arguments for specifying +the class to load, as well as a flag stating whether subclasses are allowed; +if provided, other classes will be rejected by the reader. For +compatibility with existing code, if the class is omitted only a +warning is issued. + +**** New specialized reader for pulling in classes and signaling errors +without evaluation of suspicious code. + +**** All slots that contain objects must have a :type. Slots with lists +of objects must use a new type predicate for a list of an object type. + +*** Support for `find-function' and similar utilities, through the addition +of filename support to generated symbols. + +** Floating point functions now always return special values like NaN, +instead of signaling errors, if given invalid args; e.g., (log -1.0). +Previously, they returned NaNs on some platforms but signaled errors +on others. The affected functions are acos, asin, tan, exp, expt, +log, log10, sqrt, and mod. + +** New fringe bitmap `exclamation-mark'. + +** Miscellaneous changes to special forms and macros + +*** `defun' and `defmacro' are now macros rather than special forms. + +*** `kbd' is now a function rather than a macro. + +** Miscellaneous new functions + +*** `set-temporary-overlay-map' sets up a temporary keymap that +takes precedence over most other maps for a short while (normally one key). + +*** `autoloadp' tests if its argument is an autoloaded object. + +*** `autoload-do-load' performs the autoloading operation. + +*** `buffer-narrowed-p' tests if the buffer is narrowed. + +*** `file-name-base' returns a file name sans directory and extension. + +*** `function-get' fetches a function property, following aliases. + +*** `posnp' tests if an object is a `posn'. + +*** `system-users' returns the user names on the system. + +*** `system-groups' returns the group names on the system. + +*** `tty-top-frame' returns the topmost frame of a text terminal. + +** The following functions and variables are obsolete: +*** `automount-dir-prefix' (use `directory-abbrev-alist') +*** `buffer-has-markers-at' +*** `macro-declaration-function' (use `macro-declarations-alist') +*** `window-system-version' (provides no useful information) +*** `dired-pop-to-buffer' (use `dired-mark-pop-up') +*** `query-replace-interactive' +*** `font-list-limit' (has had no effect since Emacs < 23) + + +* Changes in Emacs 24.3 on Non-Free Operating Systems + +** Cygwin builds can use the native MS Windows user interface. +Pass `--with-w32' to configure. The default remains the X11 interface. + +** Two new functions are available in Cygwin builds: +`cygwin-convert-file-name-from-windows' and +`cygwin-convert-file-name-to-windows'. These functions allow Lisp +code to access the Cygwin file-name mapping machinery to convert +between Cygwin and Windows-native file and directory names. + +** When invoked with the -nw switch to run on the Windows text-mode terminal, +Emacs now supports `mouse-highlight', help-echo (in the echo area), and +`mouse-autoselect-window'. + +** On MS Windows Vista and later Emacs now supports symbolic links. + +** On MS Windows, you can pass `--without-libxml2' to configure.bat to omit +support for libxml2, even if its presence is detected. + +** On Mac OS X, the Nextstep port requires OS X 10.4 or later. + +** On Mac OS X, configure no longer automatically adds the Fink "/sw" +directories to the search path. You must add them yourself if you want them. + + +* Changes in Emacs 24.2 + +** This is mainly a bug-fix release. + + +* 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 +Nextstep builds). + + +* Changes in Emacs 24.1 + +** Completion + +*** 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. + +*** New option `completion-cycle-threshold' allows completion cycling. + +*** New option `completion-category-overrides' for overriding the +default completion style in certain circumstances. + +*** New completion style `substring'. + +*** 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 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. 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 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, +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 for Farsi and Bulgarian +(farsi-isiri-9147, farsi-transliterate-banan, 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. + +** 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 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 +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. +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 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, +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 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. +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. + +*** 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 -*- lines. The +associated `inhibit-first-line-modes-suffixes' has been renamed in the +corresponding way. + +** Window changes + +*** The `quit-window' command now restores the last buffer displayed +in the quitted window. + +*** 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). + +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 option `frame-auto-hide-function' lets you choose between +iconifying or deleting a frame when burying a buffer in a dedicated +frame, or quitting a window showing a buffer in a frame of its own. + +*** 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'. + +** 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', 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. + +The default handling of clipboard and primary selections has been +changed to conform with modern X applications. In short, most +commands for killing and yanking text now use the clipboard, while +mouse commands use the primary selection. + +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 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 `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 `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. + +** Calc + +*** Support for musical notes. + +*** Support for logarithmic units. + +*** No longer uses the tex prefix for TeX specific unit names when +using TeX or LaTeX mode. + +*** New option to highlight selections using faces. + +*** `calc-histogram' has the option of using a vector to determine the bins. + +*** New "O" option prefix. + +*** Use the "O" prefix to "d r" (`calc-radix') to turn on twos-complement mode. + +** 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. +Thus C-M-a will, by default, go to the beginning of the immediate function, +not the top level. + +*** "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 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', 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* +buffer was used. + +** 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. + +*** Options in customize group buffers start out hidden if not customized. +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 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. + +*** New variable `erc-coding-system-precedence': If we use `undecided' +as the server coding system, this variable will then be consulted. +The default is to decode strings that can be decoded as utf-8 as +utf-8, and do the normal `undecided' decoding for the rest. + +** 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 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 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 updated 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 C-M-i +or M-TAB. If `nxml-bind-meta-tab-to-complete-flag' is non-nil (the +default), this performs tag completion. + +** Org mode has been updated to version 7.8.09. +See ORG-NEWS for details. + +** 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 + +*** 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 +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 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"))) + +then the equivalent line in ~/.authinfo would be + + machine mail.example.org port 25 login jim password s!cret + +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, 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. + +*** SMTPmail defaults to using the address in the From: header as the +SMTP MAIL FROM envelope. To override this, set `mail-envelope-from' +to the address you wish to use instead. + +** SQL mode + +*** New options `sql-port', `sql-connection-alist', `sql-send-terminator', +and `sql-oracle-scan-on'. + +*** 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 +the buffer and statements sent with `sql-send-*' functions. The +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, +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 +another backend, define a `log-view-expanded-log-entry-function'). +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. +You can get a comparable behavior with: +(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'. +(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. + +** 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 +against exiting Emacs and killing the buffer can be set separately. +The mechanism for automatically turning off protection for buffers +with dead inferior processes has been generalized. + + +* 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-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 `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 +"old-style" backquotes from your code. If your code uses backquotes +as documented in the Elisp manual, and compiles without warning, then +you have nothing to do in this regard. Code not following the +appropriate conventions may fail to compile. + +The most common cause of trouble seems to be an old-style backquote +followed by a newline. Another cause of trouble is vector notation +for key sequence notation: instead of [(control ,)] and [(control ')], +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 +variable `menu-bar-mode'/`tool-bar-mode' to determine whether to create +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 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): + +*** `comint-kill-output' (`comint-delete-output') +*** `decompose-composite-char' (`char-to-string') +*** `outline-visible' (`outline-invisible-p') +*** `internal-find-face' (`facep') +*** `internal-get-face' (`facep and check-face') +*** `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-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') +*** `x-make-font-unitalic' (`make-face-unitalic') +*** `mldrag-drag-mode-line' (`mouse-drag-mode-line') +*** `mldrag-drag-vertical-line' (`mouse-drag-vertical-line') +*** `iswitchb-default-keybindings' (`iswitchb-mode') +*** `char-bytes' (== 1) +*** `isearch-return-char' (`isearch-printing-char') +*** `make-local-hook' (not needed) +*** `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): + +*** `checkdoc-minor-keymap' (`checkdoc-minor-mode-map') +*** `vc-header-alist' (`vc-BACKEND-header') +*** `directory-sep-char' (== ?/) +*** `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'. + + +* Lisp Changes in Emacs 24.1 + +** Code can now use lexical scoping by default instead of dynamic scoping. +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. + +*** `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. + +*** The form ((lambda ...) ...) is deprecated. + +** 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 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 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 +named ACTION, and takes a display action of the same form as +`display-buffer-base-action' (see Changes, above). A non-nil, +non-list value is treated specially, as the old meaning. + +**** New variable `display-buffer-overriding-action'. + +**** The procedure of `display-buffer' etc. to choose a window is +determined by combining `display-buffer-overriding-action', +`display-buffer-alist', the ACTION arg, `display-buffer-base-action', +and `display-buffer-fallback-action'. The second and fourth of these +are user-customizable variables. + +See the docstring of `display-buffer' for details. + +*** 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. + +** Completion + +*** New variable `completion-extra-properties' used to specify extra +properties of the current completion: +- :annotation-function, same as the old completion-annotate-function. +- :exit-function, function to call after completion took place. + +*** 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 +can specify various details of the data returned by `all-completions': +- `category' is the kind of objects returned (e.g., `buffer', `file', ...), + used to select a style in completion-category-overrides. +- `annotation-function' to add annotations in *Completions*. +- `display-sort-function' to specify how to sort entries in *Completions*. +- `cycle-sort-function' to specify how to sort entries when cycling. + +*** `minibuffer-local-filename-must-match-map' is not used any more. +Instead, the bindings in `minibuffer-local-filename-completion-map' +are combined with `minibuffer-local-must-match-map'. + +*** 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: +just call syntax-propertize to make sure the text is propertized. +Together with this new variable come a new hook +syntax-propertize-extend-region-functions, as well as two helper functions: +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. + +**** New function `imagemagick-types', defined if ImageMagick support +is enabled, returns a list of image file extensions that your +ImageMagick installation supports. + +**** New function `imagemagick-register-types' enables ImageMagick +image types in Image mode and in `create-image' and other helper +functions. + +**** 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) +and `libxml-parse-xml-region' (which parses XML). Both return an +Emacs Lisp parse tree. + +** 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 +parameters (`:end-of-command', `:success', `:capabilities-command') +must also be supplied. + +*** New library gnutls.el. +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 +time you call `progress-reporter-update' on that progress reporter, +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 +is only used by Emacs on some platforms to display warnings during +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. + + +---------------------------------------------------------------------- +This file is part of GNU Emacs. + +GNU Emacs is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs. If not, see . + + +Local variables: +coding: utf-8 +mode: outline +paragraph-separate: "[ ]*$" +end: diff --cc lisp/ChangeLog index ad4a05f912,11c0271a56..60e2b50e5c --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@@ -1,4 -1,22 +1,22 @@@ + 2015-03-03 Agustín Martín Domingo + + * textmodes/ispell.el (ispell-aspell-find-dictionary): Make sure + .dat files for aspell dicts are also searched for in location + described by `ispell-aspell-dict-dir', matching aspell's dict-dir + variable. + + 2015-03-03 Agustín Martín Domingo + + * textmodes/ispell.el (ispell-dicts-name2locale-equivs-alist) + (ispell-hunspell-fill-dictionary-entry) + (ispell-find-hunspell-dictionaries) + (ispell-set-spellchecker-params): New generic name for + `ispell-hunspell-dictionary-equivs-alist'. + (ispell-aspell-add-aliases): Also use + `ispell-dicts-name2locale-equivs-alist' to get aspell aliases for + standard dict names. + -2015-02-24 Glenn Morris +2015-03-03 Glenn Morris * net/browse-url.el (browse-url-firefox-startup-arguments): Make obsolete. @@@ -25,8 -43,7 +43,7 @@@ * net/tramp-sh.el (tramp-remote-process-environment): Disable paging with PAGER=cat. (Bug#19870) - 2015-03-03 Glenn Morris -2015-02-13 Glenn Morris +2015-03-03 Glenn Morris * textmodes/flyspell.el (flyspell-duplicate-distance): Bump :version. @@@ -47,8 -64,7 +64,7 @@@ (flyspell-word-search-backward, flyspell-word-search-forward): Search as full word with defined casechars, not as substring. - 2015-03-03 Juri Linkov -2015-02-10 Juri Linkov +2015-03-03 Juri Linkov Better support for the case of typing RET on the prompt in comint. * comint.el (comint-get-old-input-default): Go to the field end @@@ -71,8 -87,7 +87,7 @@@ * net/network-stream.el (network-stream-open-tls): Respect the :end-of-capability setting. - 2015-03-03 Juri Linkov -2015-02-05 Juri Linkov +2015-03-03 Juri Linkov Revert the previous change of comint-line-beginning-position callers, and modify comint-line-beginning-position instead. @@@ -99,8 -114,7 +114,7 @@@ mapcar, not mapc, to create the other half of fill-info. (Bug#19763) - 2015-03-03 Nicolas Petton -2015-02-04 Nicolas Petton +2015-03-03 Nicolas Petton * emacs-lisp/authors.el (authors-ignored-files) (authors-renamed-files-alist): Additions. @@@ -120,8 -134,7 +134,7 @@@ * emacs-lisp/authors.el (authors-obsolete-files-regexps) (authors-valid-file-names, authors-renamed-files-alist): Additions. - 2015-03-03 Alan Mackenzie -2015-02-01 Alan Mackenzie +2015-03-03 Alan Mackenzie CC Mode: Stop Font Lock forcing fontification from BOL. Fixes debbugs#19669. diff --cc lisp/erc/ChangeLog index 22ebae4576,d37906721a..4f5fced1bd --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@@ -3,8 -3,7 +3,7 @@@ * erc.el: Add old version string back to file header for package.el compatibility - 2015-03-03 Glenn Morris -2015-02-13 Glenn Morris +2015-03-03 Glenn Morris * erc.el (erc-rename-buffers): Doc fix. Add :version. diff --cc src/ChangeLog index b1d9822f2f,ca5f85a015..8acca6cca3 --- a/src/ChangeLog +++ b/src/ChangeLog @@@ -20,28 -20,24 +20,24 @@@ * menu.c (Fx_popup_menu) [HAVE_X_WINDOWS]: Call mouse_position_for_popup only for X frames. (Bug#19862) - 2015-03-03 Eli Zaretskii -2015-02-13 Eli Zaretskii +2015-03-03 Eli Zaretskii * buffer.c (syms_of_buffer): Doc fix. (Bug#19841) - 2015-03-03 Eli Zaretskii -2015-02-08 Eli Zaretskii +2015-03-03 Eli Zaretskii * xfaces.c (map_tty_color): Use assoc_no_quit instead of assq_no_quit to fetch color definition by its string name. (Bug#19802) - 2015-03-03 Eli Zaretskii -2015-02-05 Eli Zaretskii +2015-03-03 Eli Zaretskii * xdisp.c (move_it_in_display_line_to): Handle the case where the last character of a screen line is whitespace, and we are under word-wrap with overflow-newline-into-fringe turned on. (Bug#19769) - 2015-03-03 Eli Zaretskii -2015-02-03 Eli Zaretskii +2015-03-03 Eli Zaretskii * xdisp.c (handle_stop, handle_single_display_spec) (next-element_from_image): Don't reset the