aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2016-10-01 11:14:05 +0300
committerEli Zaretskii2016-10-01 11:14:05 +0300
commit787b525f366097425d91ef8f62225ca5ccdf90bc (patch)
tree9dbad724e497a882d2fa974250001a471e240a9a
parentbb2ef5c6f7058b149adc9230a3db7d1fbd423c51 (diff)
downloademacs-787b525f366097425d91ef8f62225ca5ccdf90bc.tar.gz
emacs-787b525f366097425d91ef8f62225ca5ccdf90bc.zip
Bump Emacs version to 26.0.50
* README: * configure.ac: * etc/NEWS: * etc/refcards/ru-refcard.tex: * msdos/sed2v2.inp: * src/msdos.c: Increment Emacs version to 26.0.50. * etc/NEWS.25: New file, copied from etc/NEWS with post-25.1 stuff moved to etc/NEWS.
-rw-r--r--README2
-rw-r--r--configure.ac2
-rw-r--r--etc/NEWS1752
-rw-r--r--etc/NEWS.251773
-rw-r--r--etc/refcards/ru-refcard.tex2
-rw-r--r--msdos/sed2v2.inp2
-rw-r--r--src/msdos.c2
7 files changed, 1791 insertions, 1744 deletions
diff --git a/README b/README
index ffa92c6546d..941cdfc2716 100644
--- a/README
+++ b/README
@@ -2,7 +2,7 @@ Copyright (C) 2001-2016 Free Software Foundation, Inc.
2See the end of the file for license conditions. 2See the end of the file for license conditions.
3 3
4 4
5This directory tree holds version 25.2.50 of GNU Emacs, the extensible, 5This directory tree holds version 26.0.50 of GNU Emacs, the extensible,
6customizable, self-documenting real-time display editor. 6customizable, self-documenting real-time display editor.
7 7
8The file INSTALL in this directory says how to build and install GNU 8The file INSTALL in this directory says how to build and install GNU
diff --git a/configure.ac b/configure.ac
index da577a3773f..cd11b10c00a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@ dnl along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
23 23
24AC_PREREQ(2.65) 24AC_PREREQ(2.65)
25dnl Note this is parsed by (at least) make-dist and lisp/cedet/ede/emacs.el. 25dnl Note this is parsed by (at least) make-dist and lisp/cedet/ede/emacs.el.
26AC_INIT(GNU Emacs, 25.2.50, bug-gnu-emacs@gnu.org) 26AC_INIT(GNU Emacs, 26.0.50, bug-gnu-emacs@gnu.org)
27 27
28dnl Set emacs_config_options to the options of 'configure', quoted for the shell, 28dnl Set emacs_config_options to the options of 'configure', quoted for the shell,
29dnl and then quoted again for a C string. Separate options with spaces. 29dnl and then quoted again for a C string. Separate options with spaces.
diff --git a/etc/NEWS b/etc/NEWS
index dffbac8df65..bc36d8ad3b9 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -6,11 +6,11 @@ See the end of the file for license conditions.
6Please send Emacs bug reports to bug-gnu-emacs@gnu.org. 6Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
7If possible, use M-x report-emacs-bug. 7If possible, use M-x report-emacs-bug.
8 8
9This file is about changes in Emacs version 25. 9This file is about changes in Emacs version 26.
10 10
11See file HISTORY for a list of GNU Emacs versions and release dates. 11See file HISTORY for a list of GNU Emacs versions and release dates.
12See files NEWS.24, NEWS.23, NEWS.22, NEWS.21, NEWS.20, NEWS.19, NEWS.18, 12See files NEWS.25, NEWS.24, NEWS.23, NEWS.22, NEWS.21, NEWS.20,
13and NEWS.1-17 for changes in older Emacs versions. 13NEWS.19, NEWS.18, and NEWS.1-17 for changes in older Emacs versions.
14 14
15You can narrow news to a specific version by calling 'view-emacs-news' 15You can narrow news to a specific version by calling 'view-emacs-news'
16with a prefix argument or by typing C-u C-h C-n. 16with a prefix argument or by typing C-u C-h C-n.
@@ -20,9 +20,9 @@ Temporary note:
20 (This means all relevant manuals in doc/ AND lisp doc-strings.) 20 (This means all relevant manuals in doc/ AND lisp doc-strings.)
21--- means no change in the manuals is needed. 21--- means no change in the manuals is needed.
22When you add a new item, use the appropriate mark if you are sure it applies, 22When you add a new item, use the appropriate mark if you are sure it applies,
23otherwise leave it unmarked. 23
24 24
25* Installation Changes in Emacs 25.3 25* Installation Changes in Emacs 26.1
26 26
27** By default libgnutls is now required when building Emacs. 27** By default libgnutls is now required when building Emacs.
28Use 'configure --with-gnutls=no' to build even when GnuTLS is missing. 28Use 'configure --with-gnutls=no' to build even when GnuTLS is missing.
@@ -56,10 +56,10 @@ erc-emacs-build-time.
56affected by this, as SGI stopped supporting IRIX in December 2013. 56affected by this, as SGI stopped supporting IRIX in December 2013.
57 57
58 58
59* Startup Changes in Emacs 25.3 59* Startup Changes in Emacs 26.1
60 60
61 61
62* Changes in Emacs 25.3 62* Changes in Emacs 26.1
63 63
64+++ 64+++
65** The new function 'call-shell-region' executes a command in an 65** The new function 'call-shell-region' executes a command in an
@@ -211,7 +211,7 @@ all call stack frames in a Lisp backtrace buffer as lists. Both
211debug.el and edebug.el have been updated to heed to this variable. 211debug.el and edebug.el have been updated to heed to this variable.
212 212
213 213
214* Editing Changes in Emacs 25.3 214* Editing Changes in Emacs 26.1
215 215
216+++ 216+++
217** New bindings for 'query-replace-map'. 217** New bindings for 'query-replace-map'.
@@ -229,7 +229,7 @@ Instead of only checking the modification time, Emacs now also checks
229the file's actual content before prompting the user. 229the file's actual content before prompting the user.
230 230
231 231
232* Changes in Specialized Modes and Packages in Emacs 25.3 232* Changes in Specialized Modes and Packages in Emacs 26.1
233 233
234** Ibuffer 234** Ibuffer
235 235
@@ -456,12 +456,12 @@ contents of the buffer to determine whether it's a C or C++ source
456file. 456file.
457 457
458 458
459* New Modes and Packages in Emacs 25.3 459* New Modes and Packages in Emacs 26.1
460 460
461** New Elisp data-structure library 'radix-tree'. 461** New Elisp data-structure library 'radix-tree'.
462 462
463 463
464* Incompatible Lisp Changes in Emacs 25.3 464* Incompatible Lisp Changes in Emacs 26.1
465 465
466+++ 466+++
467** Resizing a frame no longer runs 'window-configuration-change-hook'. 467** Resizing a frame no longer runs 'window-configuration-change-hook'.
@@ -490,7 +490,7 @@ now generate less chatter and more-compact diagnostics. The auxiliary
490function 'check-declare-errmsg' has been removed. 490function 'check-declare-errmsg' has been removed.
491 491
492 492
493* Lisp Changes in Emacs 25.3 493* Lisp Changes in Emacs 26.1
494 494
495** New function undo-amalgamate-change-group to get rid of undo-boundaries 495** New function undo-amalgamate-change-group to get rid of undo-boundaries
496between two states. 496between two states.
@@ -605,7 +605,7 @@ collection).
605can be used for creation of temporary files of remote or mounted directories. 605can be used for creation of temporary files of remote or mounted directories.
606 606
607 607
608* Changes in Emacs 25.3 on Non-Free Operating Systems 608* Changes in Emacs 26.1 on Non-Free Operating Systems
609 609
610** Intercepting hotkeys on Windows 7 and later now works better. 610** Intercepting hotkeys on Windows 7 and later now works better.
611The new keyboard hooking code properly grabs system hotkeys such as 611The new keyboard hooking code properly grabs system hotkeys such as
@@ -637,1732 +637,6 @@ emacs.exe from the Windows shell, then type Ctrl-C into that shell's
637window. 637window.
638 638
639 639
640* Installation Changes in Emacs 25.1
641
642** Building Emacs now requires C99 or later.
643
644** Building Emacs now requires GNU make, version 3.81 or later.
645
646** New configure option --with-cairo.
647This builds Emacs with Cairo drawing. As a side effect, it provides
648support for built-in printing, when Emacs was built with GTK+.
649The Emacs Cairo drawing is experimental and still has some known
650display problems. We encourage more testing of this build and
651reporting any problems you find, but it is not recommended for
652production.
653
654** New configure option --with-modules.
655This enables support for loading dynamic modules; see below.
656
657** By default, Emacs no longer works on IRIX. We expect that Emacs
658users are not affected by this, as SGI stopped supporting IRIX in
659December 2013. If you are affected, please send a bug report. You
660should be able to work around the problem either by porting the Emacs
661undumping code to GCC under IRIX, or by configuring --with-wide-int,
662or by sticking with Emacs 24.4.
663
664** The Emacs garbage collector assumes GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS.
665The GC_MAKE_GCPROS_NOOPS stack-marking variant has been the default
666since Emacs 24.4, and the other variants were undocumented and were
667obstacles to maintenance and development. GC_MARK_STACK and its
668related symbols have been removed from the C internals.
669
670** 'configure' now prefers gnustep-config when configuring GNUstep.
671If gnustep-config is not available, the old heuristics are used.
672
673** 'configure' now prefers inotify to gfile for file notification,
674unless gfile is explicitly requested via --with-file-notification='gfile'.
675
676** 'configure' detects the kqueue file notification library on *BSD
677and Mac OS X machines.
678
679** The configure option '--with-pkg-config-prog' has been removed.
680Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to.
681
682** The configure option '--with-mmdf' has been removed.
683It was no longer useful, as it relied on libraries that are no longer
684supported, and its presence led to confusion during configuration.
685This affects only the 'movemail' utility; Emacs itself can still
686process MMDF-format files as before.
687
688** The configure option '--enable-silent-rules' is now the default,
689and silent rules are now quieter. To get the old behavior where
690'make' chatters a lot, configure with '--disable-silent-rules' or
691build with 'make V=1'.
692
693** The configure option '--with-gameuser' now allows you to specify a
694group instead of a user if its argument is prefixed by ':' (a colon).
695This will cause the game score files in "${localstatedir}/games/emacs"
696to be owned by that group, and the helper program for updating them to
697be installed setgid. The option now defaults to the 'games' group.
698
699** The 'grep-changelog' script (and its manual page) are no longer included.
700It has no particular connection to Emacs and has not changed in years,
701so if you want to use it, you can always take a copy from an older Emacs.
702
703** Emacs 25 comes with a new set of icons.
704Various resolutions are available as etc/images/icons/hicolor/*/apps/emacs.png.
705The old Emacs logo icons are available as 'emacs23.png' in the same location.
706
707** New make target 'check-expensive' to run additional tests.
708This includes all tests which run via "make check", plus additional
709tests which take more time to perform.
710
711
712* Startup Changes in Emacs 25.1
713
714** When Emacs is given a file as a command line argument and
715'initial-buffer-choice' is non-nil, display both the file and
716'initial-buffer-choice'. When Emacs is given more than one file and
717'initial-buffer-choice' is non-nil, show 'initial-buffer-choice'
718and '*Buffer List*'. This makes Emacs convenient to use from the
719command line when 'initial-buffer-choice' is non-nil.
720
721** The value of 'initial-scratch-message' is now treated as a doc string
722and can contain escape sequences for command keys, quotes, and the like.
723
724** The default height of GUI frames was enlarged.
725This is so there's enough space in the initial window to display the
726optional text about recovering crashes sessions, without losing the
727splash image display.
728
729
730* Changes in Emacs 25.1
731
732** Xwidgets: a new feature for embedding native widgets inside Emacs buffers.
733If you have gtk3 and webkitgtk3 installed, and Emacs was built with
734xwidget support, you can access the embedded webkit browser with 'M-x
735xwidget-webkit-browse-url'. This opens a new buffer with the embedded
736browser. The buffer will have a new mode, 'xwidget-webkit-mode'
737(similar to 'image-mode'), which supports the webkit widget.
738
739*** New functions for xwidget-webkit mode 'xwidget-webkit-insert-string',
740'xwidget-webkit-adjust-size-dispatch', 'xwidget-webkit-back',
741'xwidget-webkit-browse-url', 'xwidget-webkit-reload',
742'xwidget-webkit-current-url', 'xwidget-webkit-scroll-backward',
743'xwidget-webkit-scroll-forward', 'xwidget-webkit-scroll-down',
744'xwidget-webkit-scroll-up'.
745
746** Emacs can now load shared/dynamic libraries (modules).
747A dynamic Emacs module is a shared library that provides additional
748functionality for use in Emacs Lisp programs, just like a package
749written in Emacs Lisp would. The functions 'load', 'require',
750'load-file', etc. were extended to load such modules, as they do with
751Emacs Lisp packages. The new variable 'module-file-suffix' holds the
752system-dependent value of the file-name extension ('.so' on Posix
753hosts) of the module files.
754
755A module should export a C-callable function named
756'emacs_module_init', which Emacs will call as part of the call to
757'load' or 'require' which loads the module. It should also export a
758symbol named 'plugin_is_GPL_compatible' to indicate that its code is
759released under the GPL or compatible license; Emacs will refuse to
760load modules that don't export such a symbol.
761
762If a module needs to call Emacs functions, it should do so through the
763API defined and documented in the header file 'emacs-module.h'. Note
764that any module that provides Lisp-callable functions will have to use
765Emacs functions such as 'fset' and 'funcall', in order to register its
766functions with the Emacs Lisp interpreter.
767
768Modules can create 'user-ptr' Lisp objects that embed pointers to C
769structs defined by the module. This is useful for keeping around
770complex data structures created by a module, to be passed back to the
771module's functions. User-ptr objects can also have associated
772"finalizers" -- functions to be run when the object is GC'ed; this is
773useful for freeing any resources allocated for the underlying data
774structure, such as memory, open file descriptors, etc. A new
775predicate 'user-ptrp' returns non-nil if its argument is a 'user-ptr'
776object.
777
778Loadable modules in Emacs are an experimental feature, and subject to
779change in future releases. For that reason, their support is disabled
780by default, and must be enabled by using the '--with-modules' option
781at configure time.
782
783** Network security (TLS/SSL certificate validity and the like) is
784added via the new Network Security Manager (NSM) and controlled via
785the 'network-security-level' variable.
786
787** 'C-h l' now also lists the commands that were run.
788
789** 'x-select-enable-clipboard' is renamed 'select-enable-clipboard'
790and 'x-select-enable-primary' is renamed 'select-enable-primary'.
791Additionally they both now apply to all systems (OSX, GNUstep, Windows, you
792name it), with the proviso that on some systems (e.g. Windows)
793'select-enable-primary' is ineffective since the system doesn't
794have the equivalent of a primary selection.
795
796** New option 'switch-to-buffer-in-dedicated-window' allows you to
797customize how 'switch-to-buffer' proceeds interactively when the
798selected window is strongly dedicated to its buffer.
799
800** The option 'even-window-heights' has been renamed to
801'even-window-sizes' and now handles window widths as well.
802
803** 'terpri' gets an optional arg ENSURE to conditionally output a newline.
804
805** 'insert-register' now leaves point after the inserted text
806when called interactively. A prefix argument toggles this behavior.
807
808** The new variable 'term-file-aliases' replaces some files from lisp/term.
809The function 'tty-run-terminal-initialization' consults this variable
810when deciding what terminal-specific initialization code to run.
811
812** New variable 'system-configuration-features', listing some of the
813main features that Emacs was compiled with. This is mainly intended
814for use in Emacs bug reports.
815
816** A password is now hidden also when typed in batch mode. Another
817hiding character but the default '.' can be used by let-binding the
818variable 'read-hide-char'.
819
820** The Emacs pseudo-random number generator can be securely seeded.
821On systems where Emacs can access the system entropy or some other
822cryptographically secure random stream, it now uses that when 'random'
823is called with its argument t. This allows cryptographically strong
824random values; in particular, the Emacs server now uses this facility
825to produce its authentication key.
826
827** New input methods: 'tamil-dvorak', 'programmer-dvorak' and 'probhat'.
828
829
830* Editing Changes in Emacs 25.1
831
832** 'M-x' suggests shorthands and ignores obsolete commands for completion.
833
834** Changes in undo
835
836*** Successive single-char deletions are collapsed in the undo-log just like
837successive char insertions. Which commands invoke this behavior is
838controlled by the new 'undo-auto-amalgamate' function. See the node
839"Undo" in the ELisp manual for more details.
840
841*** The heuristic used to insert 'undo-boundary' after each command
842has changed, so that if a command causes changes in more than just the
843current buffer, Emacs now calls 'undo-boundary' in every buffer
844affected by the command.
845
846** New command 'comment-line' bound to 'C-x C-;'.
847
848** New and improved facilities for inserting Unicode characters
849
850*** Unicode names entered via 'C-x 8 RET' now use substring completion
851by default.
852
853*** 'C-x 8' now has shorthands for several chars, such as U+2010
854(HYPHEN), U+2011 (NON-BREAKING HYPHEN), and U+2012 (FIGURE DASH). As
855before, you can type 'C-x 8 C-h' to list shorthands.
856
857*** New minor mode 'electric-quote-mode' for using curved quotes as you
858type. See also the new variable 'text-quoting-style'.
859
860** New minor mode 'global-eldoc-mode' is enabled by default.
861
862** Emacs now uses "bracketed paste mode" on text terminals that support it.
863Bracketed paste mode causes text terminals to wrap pasted text in special
864escape sequences that allow Emacs to tell the difference between text
865you type and text you paste from other applications. Emacs then
866avoids interpreting each character in the pasted text as it does with
867keyboard input, which results in a paste experience similar to that
868under a window system, and significant performance improvements when
869pasting large amounts of text.
870
871Bracketed paste mode is disabled by default, so Emacs automatically
872enables it at startup if the terminal supports it.
873
874** Emacs now supports the latest version of the UBA.
875The Emacs implementation of the Unicode Bidirectional Algorithm (UBA)
876was updated to support all the latest additions and changes introduced
877in Unicode Standard versions 6.3, 7.0, and the latest Unicode 8.0.
878This includes full support for directional isolates and the
879Bidirectional Parentheses Algorithm (BPA) specified by these Unicode
880standards.
881
882** You can access 'mouse-buffer-menu' ('C-down-mouse-1') using 'C-f10'.
883
884** New buffer-local 'electric-pair-local-mode'.
885
886** New variable 'fast-but-imprecise-scrolling' inhibits
887fontification during full screen scrolling operations, giving less
888hesitant operation during auto-repeat of 'C-v', 'M-v' at the cost of
889possible inaccuracies in the end position.
890
891** New documentation command 'describe-symbol'.
892Works for functions, variables, faces, etc. It is bound to 'C-h o' by
893default.
894
895** New function 'custom-prompt-customize-unsaved-options' checks for
896unsaved customizations and prompts user to customize (if found). It
897is intended for adding to 'kill-emacs-query-functions'.
898
899** The old 'C-x w' bindings in 'hi-lock-mode' are officially deprecated
900in favor of the global 'M-s h' bindings introduced in Emacs 23.1.
901They'll disappear soon.
902
903
904* Changes in Specialized Modes and Packages in Emacs 25.1
905
906** Checkdoc
907
908*** New command 'checkdoc-package-keywords' checks if the
909current package keywords are recognized. Set the new option
910'checkdoc-package-keywords-flag' to non-nil to make
911'checkdoc-current-buffer' call this function automatically.
912
913*** New function 'checkdoc-file' checks for style errors.
914It's meant for use together with 'compile':
915emacs -batch --eval "(checkdoc-file \"subr.el\")"
916
917** Desktop
918
919*** The desktop format version has been upgraded from 206 to 208.
920Although Emacs 25.1 can read a version 206 desktop, earlier Emacsen
921cannot read a version 208 desktop. To upgrade your desktop file, you
922must explicitly request the upgrade, by 'C-u M-x desktop-save'. You are
923recommended to do this as soon as you have firmly upgraded to Emacs
92425.1 (or later). Should you ever need to downgrade your desktop file
925to version 206, you can do this with 'C-u C-u M-x desktop-save'.
926
927*** 'desktop-restore-in-current-display' now defaults to t, not nil.
928That is, Emacs by default now restores frames into the current display.
929
930** New function 'bookmark-set-no-overwrite' bound to 'C-x r M'.
931It raises an error if a bookmark of that name already exists,
932unlike 'bookmark-set' which silently updates an existing bookmark.
933
934** Gnus
935
936*** New user options 'mm-html-inhibit-images' and 'mm-html-blocked-images'
937now control how mm-* functions fetch and display images in an HTML
938message. Gnus still uses 'gnus-inhibit-images' and 'gnus-blocked-images'
939for that purpose, i.e., binds mm-html- variables with those gnus-
940variables, but other packages do not have to bind gnus- variables now.
941
942*** 'mm-inline-text-html-with-images' has been removed.
943Use 'mm-html-inhibit-images' instead. Note that the value is opposite
944in meaning.
945
946** IMAP
947
948*** 'imap-ssl-program' has been removed, and imap.el uses the internal
949GnuTLS encryption functions if possible.
950
951** JSON
952
953*** 'json-encode-string' now only escapes the characters it has to.
954Which means that the encoded strings can contain non-ASCII characters.
955
956*** 'json-pretty-print' and 'json-pretty-print-buffer' now maintain
957the ordering of object keys by default.
958
959*** New commands 'json-pretty-print-ordered' and
960'json-pretty-print-buffer-ordered' pretty prints JSON objects with
961object keys sorted alphabetically.
962
963** Prettify Symbols mode
964
965*** Prettify Symbols mode supports custom composition predicates. By
966overriding the default 'prettify-symbols-compose-predicate', modes can
967specify in which contexts a symbol may be displayed as some Unicode
968character. 'prettify-symbols-default-compose-p' is the default which
969is suitable for most programming languages such as C or Lisp (but not
970(La)TeX).
971
972*** Symbols can be unprettified while point is inside them.
973New variable 'prettify-symbols-unprettify-at-point' configures this.
974
975** Enhanced xterm support
976
977*** The new variable 'xterm-screen-extra-capabilities' for configuring xterm.
978This variable tells Emacs which advanced capabilities are available in
979the xterm terminal emulator used to display Emacs text-mode frames.
980The default is to check each capability, and use it if available.
981(This variable was introduced in Emacs 24.1, but was not announced in
982its NEWS.)
983
984*** Killing text now also sets the CLIPBOARD/PRIMARY selection
985in the surrounding GUI (using the OSC-52 escape sequence). This only works
986if your xterm supports it and enables the 'allowWindowOps' options (disabled
987by default at least in Debian, for security reasons).
988
989Similarly, you can yank the CLIPBOARD/PRIMARY selection (using the OSC-52
990escape sequence) if your xterm has the feature enabled but for that you
991additionally need to add 'getSelection' to 'xterm-extra-capabilities'.
992
993*** 'xterm-mouse-mode' now supports mouse-tracking (if your xterm supports it).
994
995** The way to turn on and off 'save-place' mode has changed.
996It is no longer sufficient to load the saveplace library and set
997'save-place' non-nil. Instead, use the two new minor modes:
998'save-place-mode' turns on saving last place in every file, and
999'save-place-local-mode' does that only for the file in whose buffer it
1000is invoked. The 'save-place' variable is now an obsolete alias for
1001'save-place-mode', which replaces it, and 'toggle-save-place' is an
1002obsolete alias for the new 'save-place-local-mode' command.
1003
1004** ERC
1005
1006*** ERC can now hide message types by network or channel.
1007'erc-hide-list' will hide all messages of the specified type, while
1008'erc-network-hide-list' and 'erc-channel-hide-list' will only hide the
1009specified message types for the respective specified targets.
1010
1011*** Reconnection is now asynchronous.
1012
1013*** Nick completion is now case-insensitive again after inadvertently
1014being made case-sensitive in Emacs 24.2.
1015
1016** MPC
1017
1018*** New commands, key binds, and menu items.
1019
1020**** '<' and '>' for navigating previous and next tracks in playlist
1021
1022**** New play/pause command 'mpc-toggle-play' bound to 's'
1023
1024**** 'g' bound to new command 'mpc-seek-current' will navigate current
1025track.
1026
1027**** New commands 'mpc-toggle-{consume,repeat,single,shuffle}' for
1028toggling playback modes.
1029
1030*** Now supports connecting to a UNIX domain socket.
1031
1032*** Looks at more image file names to use as album art.
1033Case-insensitively tries for .folder.png (freedesktop) and folder.jpg
1034(XP) in addition to cover.jpg.
1035
1036*** Searches in more locations for MPD configuration files.
1037MPD supports the XDG base directory specification since version 0.17.6.
1038
1039** Midnight-mode
1040
1041*** 'midnight-mode' is now a proper minor mode.
1042
1043*** clean-buffer-*-regexps can now specify buffers via predicate functions.
1044
1045** package.el
1046
1047*** New "external" package status.
1048An external package is any installed package that's not built-in and
1049not from 'package-user-dir', which usually means it's from an entry in
1050'package-directory-list'. They are treated much like built-in
1051packages, in that they cannot be deleted through the package menu and
1052are not considered for upgrades.
1053
1054The effect is that a user can manually place a specific version of a
1055package inside 'package-directory-list' and the package menu will
1056always respect that.
1057
1058*** If a package is available on multiple archives and one has higher
1059priority (as per 'package-archive-priorities') only that one is
1060listed. This can be configured with 'package-menu-hide-low-priority'.
1061
1062*** 'package-menu-toggle-hiding' now toggles the hiding of packages.
1063This includes the above-mentioned low-priority packages, as well as
1064available packages whose version is lower than the currently installed
1065version (which were previously impossible to display).
1066This allows users to downgrade a package if a lower version is
1067available.
1068
1069*** When filtering the package menu, keywords starting with "arc:" or
1070"status:" represent package archive or status, respectively, instead
1071of actual keywords.
1072
1073*** Most functions which involve downloading information now take an
1074ASYNC argument. If it is non-nil, package.el performs the download(s)
1075asynchronously.
1076
1077*** New variable 'package-menu-async' controls whether the
1078package-menu uses asynchronous downloads.
1079
1080*** 'package-install-from-buffer' and 'package-install-file' work on directories.
1081This follows the same rules as installing from a .tar file, except the
1082-pkg file is optional.
1083
1084*** Packages which are dependencies of other packages cannot be deleted.
1085The FORCE argument to 'package-delete' overrides this.
1086
1087*** New custom variable 'package-selected-packages' tracks packages
1088which were installed by the user (as opposed to installed as
1089dependencies). This variable can also be manually customized.
1090
1091*** New command 'package-install-selected-packages' installs all
1092packages from 'package-selected-packages' which are currently missing.
1093
1094*** 'package-install' function now takes a DONT-SELECT argument. If
1095this function is called interactively or if DONT-SELECT is nil, add the
1096package being installed to 'package-selected-packages'.
1097
1098*** New command 'package-autoremove' removes all packages which were
1099installed strictly as dependencies but are no longer needed.
1100
1101** Shell
1102
1103When you invoke 'shell' interactively, the '*shell*' buffer will now
1104display in a new window. However, you can customize this behavior via
1105the 'display-buffer-alist' variable. For example, to get
1106the old behavior -- '*shell*' buffer displays in current window -- use
1107(add-to-list 'display-buffer-alist
1108 '("^\\*shell\\*$" . (display-buffer-same-window))).
1109
1110** EIEIO
1111*** The ':protection' slot option is not obeyed any more.
1112*** The 'newname' argument to constructors is optional&deprecated.
1113If you need your objects to be named, do it by inheriting from 'eieio-named'.
1114*** The <class>-list-p and <class>-child-p functions are declared obsolete.
1115*** The <class> variables are declared obsolete.
1116*** The <initarg> variables are declared obsolete.
1117*** defgeneric and defmethod are declared obsolete.
1118Use the equivalent facilities from cl-generic.el instead.
1119*** 'constructor' is now an obsolete alias for 'make-instance'.
1120*** 'pcase' accepts a new UPattern 'eieio'.
1121
1122** ido
1123
1124*** New command 'ido-bury-buffer-at-head' bound to 'C-S-b'.
1125Bury the buffer at the head of 'ido-matches', analogous to how 'C-k'
1126kills the buffer at head.
1127
1128*** A prefix argument to 'ido-restrict-to-matches' will reverse its
1129meaning, and the list is restricted to those elements that do not
1130match the current input.
1131
1132** Minibuffer
1133
1134*** You can use <UP> and <DOWN> arrow keys to move through history by lines.
1135The new commands 'next-line-or-history-element' and
1136'previous-line-or-history-element', bound to <UP> and <DOWN> in the
1137minibuffer, allow by-line movement through minibuffer history,
1138similarly to an ordinary buffer. Only when point moves over
1139the bottom/top of the minibuffer it goes to the next/previous history
1140element. 'M-p' and 'M-n' still move directly to previous/next history
1141item as before.
1142
1143** Search and Replace
1144
1145*** 'isearch' and 'query-replace' can now perform character folding in matches.
1146This is analogous to case folding, but instead of disregarding case
1147variants, it disregards wider classes of distinctions between similar
1148characters. (Case folding is a special case of character folding.)
1149This means many characters in the search string will match entire
1150groups of characters instead of just themselves.
1151
1152For instance, the ASCII double quote character " will match all
1153variants of double quotes, and the letter 'a' will match all of its
1154accented cousins, even those composed of multiple characters, as well
1155as many other symbols like U+249C (PARENTHESIZED LATIN SMALL LETTER
1156A).
1157
1158Character folding is enabled by customizing 'search-default-mode' to
1159the value 'char-fold-to-regexp'. You can also toggle character
1160folding in the middle of a search by typing 'M-s ''.
1161
1162'query-replace' honors character folding if the new variable
1163'replace-char-fold' is customized to a non-nil value.
1164
1165*** New user option 'search-default-mode'.
1166This option specifies the default mode for Isearch. The default
1167value, nil specifies that Isearch does literal searches (however,
1168'case-fold-search' and 'isearch-lax-whitespace' may still be applied,
1169as in previous Emacs versions).
1170
1171*** New function 'char-fold-to-regexp' can be used
1172by searching commands to produce a regexp matching anything that
1173char-folds into STRING.
1174
1175*** The new 'M-s M-w' key binding uses eww to search the web for the
1176text in the region. The search engine to use for this is specified by
1177the customizable variable 'eww-search-prefix'.
1178
1179*** 'query-replace' history is enhanced.
1180When 'query-replace' reads the FROM string from the minibuffer, typing
1181'M-p' will now show previous replacements as "FROM SEP TO", where FROM
1182and TO are the original text and its replacement, and SEP is an arrow
1183string defined by the new variable 'query-replace-from-to-separator'.
1184To select a prior replacement, type 'M-p' until the desired
1185replacement appears in the minibuffer, and then exit the minibuffer by
1186typing RET.
1187
1188** Calc
1189*** If 'quick-calc' is called with a prefix argument, insert the
1190result of the calculation into the current buffer.
1191
1192** In Edebug, you can now set the initial mode with 'C-x C-a C-m'.
1193With this you can tell Edebug not to stop at the start of the first
1194instrumented function.
1195
1196** ElDoc
1197
1198*** New minor mode 'global-eldoc-mode'.
1199It is turned on by default, and affects '*scratch*' and other buffers
1200whose major mode supports Emacs Lisp.
1201
1202*** 'eldoc-documentation-function' now defaults to 'ignore'.
1203
1204*** 'describe-char-eldoc' displays information about character at point,
1205and can be used as a default value of 'eldoc-documentation-function'. It is
1206useful when, for example, one needs to distinguish various spaces - e.g.,
1207U+00A0 (NO-BREAK SPACE), U+2002 (EN SPACE), and U+2009 (THIN SPACE) - while
1208using mono-spaced font.
1209
1210** eww
1211
1212*** HTML can now be rendered using variable-width fonts.
1213
1214*** A new command 'F' ('eww-toggle-fonts') can be used to toggle
1215whether to use variable-pitch fonts or not. The user can also
1216customize the 'shr-use-fonts' variable.
1217
1218*** A new command 'R' ('eww-readable') will try do identify the main
1219textual parts of a web page and display only that, leaving menus and
1220the like off the page.
1221
1222*** A new command 'D' ('eww-toggle-paragraph-direction') allows you to
1223toggle the paragraph direction between left-to-right and right-to-left.
1224
1225*** You can now use several eww buffers in parallel by renaming eww
1226buffers you want to keep separate.
1227
1228*** Partial state of the eww buffers (the URIs and the titles of the
1229pages visited) is now preserved in the desktop file.
1230
1231*** 'eww-after-render-hook' is now called after eww has rendered
1232the data in the buffer.
1233
1234*** The 'eww-reload' command now takes a prefix to not reload via
1235the net, but just use the local copy of the HTML.
1236
1237*** The DOM shr and eww uses has been changed to the general Emacs
1238xml.el/libxml2 DOM, and a new package dom.el has been added to
1239interact with this DOM. See the Emacs Lisp manual for interface
1240details.
1241
1242*** 'mailcap-mime-data' is now consulted when displaying PDF files.
1243
1244*** The new 'S' command will list all eww buffers, and allow managing
1245them.
1246
1247*** https pages with valid certificates have headers marked in green, while
1248invalid certificates are marked in red.
1249
1250** Message mode
1251
1252*** text/html messages that contain inline image parts will be
1253transformed into multipart/related messages before sending.
1254
1255** In Show Paren Mode, a parenthesis can be highlighted when point
1256stands inside it, and certain parens can be highlighted when point is
1257at BOL or EOL, or in whitespace there. To enable these, customize,
1258respectively, 'show-paren-when-point-inside-paren' or
1259'show-paren-when-point-in-periphery'.
1260
1261** If gpg2 exists on the system, it is now used as the default value
1262of 'epg-gpg-program' (instead of gpg).
1263
1264** Lisp mode
1265
1266*** Strings after ':documentation' are highlighted as docstrings.
1267This enhances Lisp mode fontification to handle documentation of the
1268form '(:documentation "the doc string")' used in Common Lisp code for
1269CLOS class and slot documentation.
1270
1271** Rectangle editing
1272
1273*** Rectangle Mark mode can have corners past EOL or in the middle of a TAB.
1274
1275*** 'C-x C-x' in 'rectangle-mark-mode' now cycles through the four corners.
1276*** 'string-rectangle' provides on-the-fly preview of the result.
1277
1278** New font-lock functions 'font-lock-ensure' and 'font-lock-flush'.
1279These should be used in preference to 'font-lock-fontify-buffer' when
1280called from Lisp.
1281
1282** Macro 'minibuffer-with-setup-hook' can optionally append a function
1283to 'minibuffer-setup-hook'.
1284
1285If the first argument of the macro is of the form '(:append FUN)',
1286then FUN will be appended to 'minibuffer-setup-hook', instead of
1287prepending it.
1288
1289** cl-lib
1290*** New functions 'cl-fresh-line', 'cl-digit-char-p', and 'cl-parse-integer'.
1291
1292*** 'pcase' accepts the new UPattern 'cl-struct'.
1293
1294** Calendar and diary
1295
1296*** The default 'diary-file' is now located in "~/.emacs.d".
1297
1298*** New commands to insert diary entries with Chinese dates:
1299'diary-chinese-insert-anniversary-entry' 'diary-chinese-insert-entry'
1300'diary-chinese-insert-monthly-entry', 'diary-chinese-insert-yearly-entry'.
1301
1302*** The calendar can now list and mark diary entries with Chinese dates.
1303See 'diary-chinese-list-entries' and 'diary-chinese-mark-entries'.
1304
1305*** The option 'calendar-mode-line-format' can now be nil,
1306which means to do nothing special with the mode line in calendars.
1307
1308*** New option 'calendar-weekend-days'.
1309The option customizes which day headers receive the
1310'calendar-weekend-header' face.
1311
1312*** New optional args N and STRING for 'holiday-greek-orthodox-easter'.
1313
1314*** Many items obsolete since at least version 23.1 have been removed.
1315The majority were function/variable/face aliases, too numerous to list here.
1316The remainder were:
1317
1318**** Functions 'calendar-one-frame-setup', 'calendar-only-one-frame-setup',
1319'calendar-two-frame-setup', 'european-calendar', 'american-calendar'.
1320
1321**** Hooks 'cal-menu-load-hook', 'cal-x-load-hook'.
1322
1323**** Macro 'calendar-for-loop'.
1324
1325**** Variables 'european-calendar-style', 'diary-face', 'hebrew-holidays-{1,4}'.
1326
1327**** The nil and list forms of 'diary-display-function'.
1328
1329** New ERT function 'ert-summarize-tests-batch-and-exit'.
1330If the output of ERT tests in batch mode execution can be saved to a
1331log file, then it can be passed as an argument to the above function
1332to produce a neat summary.
1333
1334** New js.el option 'js-indent-first-init'.
1335
1336** Info
1337
1338** Info mode now displays symbol names in fixed-pitch font.
1339If you want to get the old behavior back, customize the 'Info-quoted'
1340face to use the same definitions as the default face.
1341
1342*** 'Info-fontify-maximum-menu-size' can be t for no limit.
1343
1344*** 'info-display-manual' can now be given a prefix argument which (any
1345non-nil value) directs the command to limit the completion
1346alternatives to currently visited manuals.
1347
1348** ntlm.el has support for NTLM2.
1349
1350** Rmail
1351
1352*** The Rmail commands 'd', 'C-d' and 'u' take optional repeat counts
1353to delete or undelete multiple messages.
1354
1355*** Rmail can now render HTML mail messages if your Emacs was built with
1356libxml2 or if you have the Lynx browser installed. By default, Rmail
1357will display the HTML version of a mail message that has both HTML and
1358plain text parts, if display of HTML email is possible; customize the
1359'rmail-mime-prefer-html' option to nil if you don't want that.
1360
1361*** In the commands that make summaries by subject, recipients, or senders,
1362you can no longer use commas to separate regular expressions.
1363
1364** SES now supports local printer functions; see 'ses-define-local-printer'.
1365
1366** Shell-script Mode
1367*** In sh-mode you can now use 'sh-shell' as a file-local variable to
1368specify the type of shell in use (bash, csh, etc).
1369
1370*** New value 'always' for 'sh-indent-after-continuation'.
1371This provides old-style ("dumb") indentation of continued lines.
1372See the doc string of 'sh-indent-after-continuation' for details.
1373
1374** TLS
1375*** Fatal TLS errors are now silent by default.
1376
1377*** If Emacs isn't built with TLS support, an external TLS-capable
1378program is used instead. This program used to be run in --insecure
1379mode by default, but has now changed to be secure instead, and will
1380fail if you try to connect to non-verifiable hosts. This is
1381controlled by the 'tls-program' variable.
1382
1383** URL
1384
1385*** The URL package accepts now the protocols "ssh", "scp" and "rsync".
1386When 'url-handler-mode' is enabled, file operations for these
1387protocols as well as for "telnet" and "ftp" are passed to Tramp.
1388
1389*** The URL package allows customizing the 'url-user-agent' string.
1390The new 'url-user-agent' variable can be customized to be a string or
1391a function.
1392
1393*** The new interface variable 'url-request-noninteractive' can be used
1394to specify that we're running in a noninteractive context, and that
1395we should not be queried about things like TLS certificate validity.
1396
1397*** 'url-mime-accept-string' can now be used as in "interface"
1398variable, meaning you can bind it around an 'url-retrieve' call.
1399
1400*** If URL is used with a https connection, the first callback argument
1401PLIST will contain a :peer element that has the output of
1402'gnutls-peer-status' (if Emacs is built with GnuTLS support).
1403
1404** Tramp
1405
1406*** New connection method "afp", which allows you to access Mac OS X
1407volumes via the Apple Filing Protocol.
1408
1409*** New connection method "nc", which allows you to access dumb
1410busyboxes.
1411
1412*** Method-specific parameters can be overwritten now with variable
1413'tramp-connection-properties'.
1414
1415*** Handler for 'file-notify-valid-p' for remote machines that support
1416filesystem notifications.
1417
1418** SQL mode
1419
1420*** New user variable 'sql-default-directory' enables remote
1421connections using Tramp.
1422
1423*** New command 'sql-send-line-and-next'.
1424This command, bound to 'C-c C-n' by default, sends the current line to
1425the SQL process and advances to the next line, skipping whitespace and
1426comments.
1427
1428*** Added support for Vertica SQL.
1429
1430** VC and related modes
1431
1432*** Basic push support, via 'vc-push', bound to 'C-x v P'.
1433Implemented for Bzr, Git, Hg. As part of this change, the pre-existing
1434(undocumented) command 'vc-hg-push' now behaves slightly differently.
1435
1436*** The new command 'vc-region-history' shows the log+diff of the active region.
1437
1438*** You can refresh the VC state of a file buffer with 'M-x vc-refresh-state'.
1439This command is useful when you perform version control commands
1440outside Emacs (e.g., from the shell prompt), or if you switch the VC
1441back-end for the buffer's file, or remove it from version control.
1442
1443*** New option 'vc-annotate-background-mode' controls whether
1444the color range from 'vc-annotate-color-map' is applied to the
1445background or to the foreground.
1446
1447*** New options for customizing encoding of Git commit log messages.
1448The new user options 'vc-git-commits-coding-system' and
1449'vc-git-log-output-coding-system' specify the encoding of log messages
1450sent to Git when committing, and the decoding of log messages read
1451from Git history commands. These options default to UTF-8; if
1452customized, they should be consistent with the Git config variables
1453i18n.commitEncoding and i18n.logOutputEncoding.
1454('vc-git-commits-coding-system' existed previously, but was a
1455variable, not a user option.)
1456
1457*** 'compare-windows' now compares text with the most recently selected window
1458instead of the next window. If you want the previous behavior of
1459comparing with the next window, customize the new option
1460'compare-windows-get-window-function' to the value
1461'compare-windows-get-next-window'.
1462
1463*** Two new faces 'compare-windows-removed' and 'compare-windows-added'
1464replace the face 'compare-windows', which is now an obsolete alias for
1465'compare-windows-added'.
1466
1467*** The VC state indicator in the mode line now has different faces
1468corresponding to each of the possible states. See the 'vc-faces'
1469customization group.
1470
1471*** 'log-edit-insert-changelog' converts "(tiny change)" to
1472"Copyright-paperwork-exempt: yes". Set 'log-edit-rewrite-tiny-change'
1473nil to disable this.
1474
1475*** vc-mcvs.el has been removed.
1476
1477** VHDL mode now supports VHDL'08.
1478
1479** Calculator
1480
1481*** Decimal display mode uses "," groups, so it's more
1482fitting for use in money calculations
1483
1484*** Factorial works with non-integer inputs.
1485
1486** Hide-IfDef mode
1487
1488*** Hide-IfDef mode now support full C/C++ expressions in macros,
1489macro argument expansion, interactive macro evaluation and automatic
1490scanning of #define'd symbols.
1491
1492*** New command 'hif-evaluate-macro', bound to 'C-c @ e', displays the
1493result of evaluating a macro.
1494
1495*** New command 'hif-clear-all-ifdef-define', bound to 'C-c @ C', clears
1496all defined symbols in 'hide-ifdef-env'.
1497
1498*** New custom variable 'hide-ifdef-header-regexp' to define C/C++ header
1499file name patterns. Defaults to files whose extension is one of '.h',
1500'.hh', '.hpp', '.hxx', or '.h++', matched case-insensitively.
1501
1502*** New custom variable 'hide-ifdef-expand-reinclusion-protection' to prevent
1503reinclusion protected (a.k.a. "idempotent") header files from being hidden.
1504(This could happen when an idempotent header file is visited again,
1505when its guard symbol is already defined.) Defaults to t.
1506
1507*** New custom variable 'hide-ifdef-exclude-define-regexp' to define symbol
1508name patterns (e.g. all "FOR_DOXYGEN_ONLY_*") to be ignored when
1509looking for macro definitions. By default, no symbols are ignored.
1510
1511** TeX mode
1512
1513*** When in a TeX (LaTeX, etc) comment, insert a normal double quote (")
1514instead of defaulting to TeX-style open (``) or close ('') quote marks.
1515
1516*** New custom variable 'tex-print-file-extension' to help users who
1517use PDF instead of DVI.
1518
1519*** TeX mode now supports Prettify Symbols mode. When enabling
1520'prettify-symbols-mode' in a tex-mode buffer, \alpha ... \omega, and
1521many other math macros are displayed using unicode characters.
1522
1523** New 'big-indent' style in 'whitespace-mode' highlights deep indentation.
1524By default, 32 consecutive spaces or four consecutive TABs are
1525considered to be too deep, but the new variable
1526'whitespace-big-indent-regexp' can be customized to change that.
1527
1528** New options in 'tildify-mode'.
1529New options 'tildify-space-string', 'tildify-pattern', and
1530'tildify-foreach-region-function' variables make
1531'tildify-string-alist', 'tildify-pattern-alist', and
1532'tildify-ignored-environments-alist' variables (as well as a few
1533helper functions) obsolete.
1534
1535** New package Xref replaces Etags's front-end and UI.
1536
1537The new package Xref provides a generic framework and new commands to
1538find and move to definitions of functions, macros, data structures
1539etc., as well as go back to the location where you were before moving
1540to a definition. It supersedes and obsoletes many Etags commands,
1541while still using the etags.el code that reads the TAGS tables as one
1542of its back-ends.
1543
1544The command 'xref-find-definitions' replaces 'find-tag' and provides
1545an interface to pick one definition among several.
1546'tags-loop-continue' is now unbound. 'xref-pop-marker-stack' replaces
1547'pop-tag-mark', but has a keybinding ('M-,') different from the one
1548'pop-tag-mark' used.
1549
1550'xref-find-definitions-other-window' replaces 'find-tag-other-window'.
1551'xref-find-definitions-other-frame' replaces 'find-tag-other-frame'.
1552'xref-find-apropos' replaces 'find-tag-regexp'.
1553
1554As a result of this, the following commands are now obsolete:
1555'find-tag-other-window', 'find-tag-other-frame', 'find-tag-regexp',
1556'tags-apropos'.
1557
1558'tags-loop-continue' is not obsolete because it's still useful in
1559'tags-search' and 'tags-query-replace', for which there are no direct
1560replacements yet.
1561
1562*** Variants of 'tags-search' and 'tags-query-replace' in Dired were also
1563replaced by xref-style commands, see the "Dired" section below.
1564
1565*** New variables
1566
1567'find-tag-marker-ring-length' is now an obsolete alias for
1568'xref-marker-ring-length'. 'find-tag-marker-ring' is now an obsolete
1569alias for a private variable. 'xref-push-marker-stack' and
1570'xref-pop-marker-stack' should be used instead to manipulate the stack
1571of searches for definitions.
1572
1573*** 'xref-find-definitions' and 'describe-function' now display
1574information about mode local overrides (defined by cedet/mode-local.el
1575'define-overloadable-function' 'define-mode-local-overrides').
1576
1577The framework's Lisp API is still experimental and can change in major,
1578backward-incompatible ways.
1579
1580** New package Project
1581
1582The new package Project provides generic infrastructure for dealing
1583with projects. The main commands included in it are
1584'project-find-file' and 'project-find-regexp'.
1585
1586The Lisp API of this package is still experimental.
1587
1588** EUDC
1589EUDC's LDAP backend has been improved.
1590
1591*** EUDC supports LDAP-over-SSL URLs (ldaps://).
1592
1593*** EUDC passes LDAP passwords through a pipe to the ldapsearch
1594subprocess instead of on the command line.
1595
1596*** EUDC handles LDAP wildcards automatically so the user shouldn't
1597need to configure this manually anymore.
1598
1599*** The LDAP configuration section of EUDC's manual has been
1600rewritten.
1601
1602There have also been customization changes.
1603
1604*** New custom variable 'eudc-server-hotlist' to allow specifying
1605multiple EUDC servers in init file.
1606
1607*** Custom variable 'eudc-inline-query-format' defaults to completing
1608on email and firstname instead of surname.
1609
1610*** Custom variable 'eudc-expansion-overwrites-query' defaults to nil
1611to avoid interfering with the kill ring.
1612
1613*** Custom variable 'eudc-inline-expansion-format' defaults to
1614"Firstname Surname <mail-address>".
1615
1616*** Custom variable 'eudc-options-file' defaults to
1617"~/.emacs.d/eudc-options".
1618
1619*** New custom variable 'ldap-ldapsearch-password-prompt-regexp' to
1620allow overriding the regular expression that recognizes the ldapsearch
1621command line's password prompt.
1622
1623*** EUDC's BBDB backend now supports BBDB 3.
1624
1625*** EUDC's PH backend (eudcb-ph.el) is obsolete.
1626
1627** Eshell
1628
1629*** The new built-in command 'clear' can scroll window contents out of sight.
1630If provided with an optional non-nil argument, the scrollback contents
1631will be cleared.
1632
1633*** New buffer syntax '#<buffer-name>', which is equivalent to
1634'#<buffer buffer-name>'. This shorthand makes interacting with
1635buffers from eshell more convenient. Custom variable
1636'eshell-buffer-shorthand', which has been broken for a while, has been
1637removed.
1638
1639*** By default, eshell "visual" program buffers (created by
1640'eshell-visual-commands' and similar custom vars) are no longer killed
1641when their processes die. This fixes issues with short-lived commands
1642and makes visual programs more useful in general. For example, if
1643"git log" is a visual command, it will always show the visual command
1644buffer, even if the "git log" process dies. For the old behavior,
1645make the new option 'eshell-destroy-buffer-when-process-dies' non-nil.
1646
1647** Browse-url
1648
1649*** Support for the Google Chrome web browser.
1650
1651*** Support for the Conkeror web browser.
1652
1653*** Support for several ancient browsers is now officially obsolete.
1654
1655** 'tar-mode': new 'tar-new-entry' command, allowing for new members to
1656be added to the archive.
1657
1658** Autorevert
1659
1660*** Dired buffers are also auto-reverted via file notifications, if
1661Emacs is compiled with file notification support.
1662
1663*** 'auto-revert-use-notify' is set to nil in 'global-auto-revert-mode'.
1664See <http://debbugs.gnu.org/22814>.
1665
1666** File Notifications
1667
1668*** The kqueue library is integrated for *BSD and Mac OS X machines.
1669
1670*** The new event 'stopped' signals, that a file notification watch is
1671not active any longer.
1672
1673*** The new function 'file-notify-valid-p' checks, whether a file
1674notification descriptor still corresponds to an activate watch.
1675
1676** Dired
1677
1678*** The command 'dired-do-compress', bound to 'Z', now can compress
1679directories and decompress zip files.
1680
1681*** New command 'dired-do-compress-to', bound to 'c', can be used to
1682compress many marked files into a single named archive. The
1683compression command is determined from the new
1684'dired-compress-files-alist' variable.
1685
1686*** New user interface for the 'A' and 'Q' commands.
1687These keys, now bound to 'dired-do-find-regexp' and
1688'dired-do-find-regexp-and-replace', work similarly to 'xref-find-apropos'
1689and 'xref-query-replace-in-results': they present the matches
1690in the '*xref*' buffer and let you move through the matches. No need
1691to use 'tags-loop-continue' to resume the search or replace loop. The
1692previous commands, 'dired-do-search' and
1693'dired-do-query-replace-regexp', are still available, but not bound to
1694keys; rebind 'A' and 'Q' to invoke them if you want the old behavior
1695back. We intend to obsolete the old commands in a future release.
1696
1697** Tabulated List Mode
1698
1699*** It is now safe for a mode that derives 'tabulated-list-mode' to not
1700call 'tabulated-list-init-header', in which case it will have no
1701header.
1702
1703*** 'tabulated-list-print' takes a second optional argument, UPDATE,
1704which specifies an alternative printing method which is faster when
1705few or no entries have changed.
1706
1707** Obsolete packages
1708
1709*** gulp.el
1710
1711*** landmark.el (moved to elpa.gnu.org)
1712
1713
1714* New Modes and Packages in Emacs 25.1
1715
1716** pinentry.el allows GnuPG passphrase to be prompted through the
1717minibuffer instead of a graphical dialog, depending on whether the gpg
1718command is called from Emacs (i.e., INSIDE_EMACS environment variable
1719is set). This feature requires newer versions of GnuPG (2.1.5 or
1720later) and Pinentry (0.9.5 or later). To use this feature, add
1721"allow-emacs-pinentry" to "~/.gnupg/gpg-agent.conf" and reload the
1722configuration with "gpgconf --reload gpg-agent".
1723
1724** cl-generic.el provides CLOS-style multiple-dispatch generic functions.
1725The main entry points are 'cl-defgeneric' and 'cl-defmethod'. See the
1726node "Generic Functions" in the Emacs Lisp manual for more details.
1727
1728** 'scss-mode' (a minor variant of 'css-mode') is a major mode for editing
1729SCSS (Sassy CSS) files.
1730
1731** 'let-alist' is a new macro (and a package) that allows one to easily
1732let-bind the values stored in an alist.
1733
1734** 'tildify-mode' allows automatic insertion of hard spaces as one
1735types the text. Breaking line after a single-character words is
1736forbidden by Czech and Polish typography (and may be discouraged in
1737other languages), so 'auto-tildify-mode' makes it easier to create
1738a typographically-correct documents.
1739
1740** The 'seq' library adds sequence manipulation functions and macros
1741that complement basic functions provided by subr.el. All functions
1742are prefixed with 'seq-' and work on lists, strings and vectors.
1743'pcase' accepts a new Upattern 'seq'.
1744
1745** The 'map' library provides map-manipulation functions that work on
1746alists, hash-table and arrays. All functions are prefixed with
1747'map-'. 'pcase' accepts a new UPattern 'map'.
1748
1749** The 'thunk' library provides functions and macros to control the
1750evaluation of forms.
1751
1752** 'js-jsx-mode' (a minor variant of 'js-mode') provides indentation
1753support for JSX, an XML-like syntax extension to ECMAScript.
1754
1755
1756* Incompatible Lisp Changes in Emacs 25.1
1757
1758** 'setq' and 'setf' must now be called with an even number of
1759arguments. The earlier behavior of silently supplying a nil to the
1760last variable when there was an odd number of arguments has been
1761eliminated.
1762
1763** 'syntax-begin-function' is declared obsolete.
1764Removed 'font-lock-beginning-of-syntax-function' and the SYNTAX-BEGIN
1765slot in 'font-lock-defaults'.
1766
1767** The new implementation of Subword mode affects word movement everywhere.
1768When Subword mode is turned on, 'forward-word', 'backward-word', and
1769everything that uses them will move by sub-words, effectively
1770overriding the buffer's syntax table. Lisp programs that shouldn't be
1771affected by Subword mode should call the new functions
1772'forward-word-strictly' and 'backward-word-strictly' instead.
1773
1774** 'package-initialize' now sets 'package-enable-at-startup' to nil if
1775called during startup. Users who call this function in their init
1776file and still expect it to be run after startup should set
1777'package-enable-at-startup' to t after the call to
1778'package-initialize'.
1779
1780** ':global' minor mode use 'setq-default' rather than 'setq'.
1781This means that you can't use 'make-local-variable' and expect them to
1782"magically" become buffer-local.
1783
1784** 'track-mouse' no longer freezes the shape of the mouse pointer.
1785The 'track-mouse' form no longer refrains from changing the shape of
1786the mouse pointer for the entire time the body of that form is
1787executed. Lisp programs that use 'track-mouse' for dragging across
1788large portions of the Emacs display, and want to avoid changes in the
1789pointer shape during dragging, should bind the variable 'track-mouse'
1790to the special value 'dragging' in the body of the form.
1791
1792** The optional PREDICATE argument of 'lisp-complete-symbol' no longer
1793has any effect. (This change was made in Emacs 24.4 but was not
1794advertised at the time.)
1795
1796** 'indirect-function' does not signal 'void-function' any more.
1797This is mostly a bug-fix, since this change was missed back in 24.4 when
1798'symbol-function' was changed not to signal 'void-function' any more.
1799
1800*** As a consequence, the second arg of 'indirect-function' is now obsolete.
1801
1802** 'M-x shell' and 'M-x compile' no longer set the EMACS environment variable.
1803This avoids clashing when other programs use the variable for other purposes.
1804Although 'M-x term' still sets EMACS for compatibility with Bash 4.3
1805and earlier, this is deprecated and will be phased out when Bash 4.4
1806or later takes over. Use the INSIDE_EMACS environment variable instead.
1807
1808** 'save-excursion' does not save&restore the mark any more.
1809Use 'save-mark-and-excursion' if you want the old behavior.
1810
1811** 'read-buffer' and 'read-buffer-function' can now be called with a 4th
1812argument (PREDICATE).
1813
1814** 'completion-table-dynamic' by default stays in the minibuffer.
1815The minibuffer will be the current buffer when the function is called.
1816If you want the old behavior of calling the function in the buffer
1817from which the minibuffer was entered, use the new argument
1818SWITCH-BUFFER to 'completion-table-dynamic'.
1819
1820** window-configurations no longer record the buffers' marks.
1821
1822** 'inhibit-modification-hooks' now also inhibits lock-file checks, as
1823well as active region handling.
1824
1825** 'deactivate-mark' is now buffer-local.
1826
1827** 'cl-the' now asserts that its argument is of the given type.
1828
1829** 'process-running-child-p' may now return a numeric process
1830group ID instead of t.
1831
1832** Mouse click events on mode line or header line no longer include
1833any reference to a buffer position. The 6th member of the mouse
1834position list returned for such events is now nil.
1835
1836** Menu items in keymaps do not support the "key shortcut cache" any more.
1837These slots used to hold key-shortcut data, but have been obsolete since
1838Emacs 21.
1839
1840** Emacs no longer downcases the first letter of a system diagnostic
1841when signaling a file error. For example, it now reports "Permission
1842denied" instead of "permission denied". The old behavior was problematic
1843in languages like German where downcasing rules depend on grammar.
1844
1845** New variable 'text-quoting-style' to control how Emacs translates quotes.
1846Set it to 'curve' for curved single quotes, to 'straight' for straight
1847apostrophes, and to 'grave' for grave accent and apostrophe. The
1848default value nil acts like 'curve' if curved single quotes are
1849displayable, and like 'grave' otherwise. The new variable affects
1850display of diagnostics and help, but not of info. As the variable is
1851not intended for casual use, it is not a user option.
1852
1853** Message-issuing functions like 'message' and 'error' now translate
1854various sorts of single quotes in their format strings according to
1855the value of 'text-quoting-style' (see above). This translation
1856cannot be disabled. To get the old behavior, use 'format', which is
1857not affected by 'text-quoting-style', e.g., (message "%s" (format
1858"...." foo bar)).
1859
1860** 'substitute-command-keys' now replaces quotes.
1861That is, it converts documentation strings' quoting style as per the
1862value of 'text-quoting-style'. Doc strings in source code can use
1863either curved single quotes or grave accents and apostrophes. As
1864before, characters preceded by \= are output as-is.
1865
1866** The character classes [:alpha:] and [:alnum:] in regular expressions
1867now match multibyte characters using Unicode character properties.
1868If you want the old behavior where they matched any character with
1869word syntax, use '\sw' instead.
1870
1871** The character classes [:graph:] and [:print:] in regular expressions
1872no longer match every multibyte character. Instead, Emacs now
1873consults the Unicode character properties to determine which
1874characters are graphic or printable. In particular, surrogates and
1875unassigned codepoints are now rejected. If you want the old behavior,
1876use [:multibyte:] instead.
1877
1878** The 'diff' command uses the unified format now. To restore the old
1879behavior, set 'diff-switches' to '-c'.
1880
1881** 'grep-template' and 'grep-find-template' values don't include the
1882--color argument anymore. It's added at the <C> place holder position
1883dynamically. Any third-party code that changes these templates should
1884be updated accordingly.
1885
1886** '(/ N)' is now equivalent to '(/ 1 N)' rather than to '(/ N 1)'.
1887The new behavior is compatible with Common Lisp and with XEmacs.
1888This change does not affect Lisp code intended to be portable to
1889Emacs 24.2 and earlier, which did not support unary '/'.
1890
1891** The 'default-directory' value doesn't have to end slash. To make
1892that happen, 'unhandled-file-name-directory' now defaults to calling
1893'file-name-as-directory'.
1894
1895** The URL package now insists on sending only unibyte strings to server
1896This means packages that use URL cannot bind 'url-request-data' to
1897multibyte strings. If non-ASCII characters should be part of the URL
1898payload, then 'url-request-data' should be encoded to become a unibyte
1899string.
1900
1901
1902* Lisp Changes in Emacs 25.1
1903
1904** 'pcase'
1905*** New UPatterns 'quote', 'app'.
1906*** New UPatterns can be defined with 'pcase-defmacro'.
1907*** New vector QPattern.
1908
1909** 'syntax-propertize' is now automatically called on-demand during forward
1910parsing functions like 'forward-sexp'.
1911
1912** New hooks 'prefix-command-echo-keystrokes-functions' and
1913'prefix-command-preserve-state-hook' allow the definition of prefix
1914commands other than the predefined 'C-u'.
1915
1916** New functions 'filepos-to-bufferpos' and 'bufferpos-to-filepos'.
1917These allow conversion between buffer positions and the corresponding
1918file byte offsets, given the file's encoding.
1919
1920** The default value of 'load-read-function' is now 'read'.
1921Previously, the default value of nil implied using 'read'.
1922
1923** New hook 'pre-redisplay-functions'.
1924It is a bit easier to use than 'pre-redisplay-function'.
1925
1926** The second arg of 'looking-back' should always be provided explicitly.
1927Previously, it was an optional argument, now it's mandatory.
1928
1929** Text properties 'intangible', 'point-entered', and 'point-left' are obsolete.
1930Replaced by properties 'cursor-intangible' and 'cursor-sensor-functions',
1931implemented by the new 'cursor-intangible-mode' and
1932'cursor-sensor-mode' minor modes.
1933
1934** 'inhibit-point-motion-hooks' now defaults to t and is obsolete.
1935Use the new minor modes 'cursor-intangible-mode' and
1936'cursor-sensor-mode' instead.
1937
1938** New process type 'pipe', which can be used in combination with the
1939':stderr' keyword of 'make-process' to handle standard error output
1940of subprocess.
1941
1942** New function 'make-process' provides an alternative interface to
1943'start-process'. It allows programs to set process parameters such as
1944process filter, sentinel, etc., through keyword arguments (similar to
1945'make-network-process').
1946
1947** Subprocesses are automatically told about changes in window dimensions.
1948The new option 'window-adjust-process-window-size-function' controls
1949how subprocesses are told to adapt their logical window sizes to
1950changes in the Emacs window configuration. Its default value calls
1951'set-process-window-size' with the smallest dimensions of all the
1952windows that display the subprocess's buffer.
1953
1954** A new function 'directory-files-recursively' returns all matching
1955files (recursively) under a directory.
1956
1957** New variable 'inhibit-message', when bound to non-nil, inhibits
1958'message' and related functions from displaying messages in the echo
1959area. The output is still logged to the '*Messages*' buffer.
1960
1961** A new text property 'inhibit-read-only' can be used in read-only
1962buffers to allow certain parts of the text to be writable.
1963
1964** A new variable 'comment-end-can-be-escaped' is useful in languages
1965such as C and C++ where line comments with escaped newlines are
1966continued to the next line.
1967
1968** New macro 'define-advice'.
1969
1970** Emacs Lisp now supports generators.
1971See the "Generators" section of the ELisp manual for the details.
1972
1973** New finalizer facility for running code when objects become unreachable.
1974See the "Finalizer Type" subsection in the ELisp manual for the
1975details.
1976
1977** Lexical closures can use '(:documentation FORM)' to build their docstring.
1978It should be placed right where the docstring would be, and FORM is then
1979evaluated (and should return a string) when the closure is built.
1980
1981** 'define-inline' provides a new way to define inlinable functions.
1982
1983** New function 'macroexpand-1' to perform a single step of macro expansion.
1984
1985** Some "x-*" functions were obsoleted and/or renamed:
1986*** 'x-select-text' is renamed 'gui-select-text'.
1987*** 'x-selection-value' is renamed 'gui-selection-value'.
1988*** 'x-get-selection' is renamed 'gui-get-selection'.
1989*** 'x-get-clipboard' and 'x-clipboard-yank' are marked obsolete.
1990*** 'x-get-selection-value' is renamed to 'gui-get-primary-selection'.
1991*** 'x-set-selection' is renamed to 'gui-set-selection'.
1992
1993** New function 'string-greaterp', which return the opposite result of
1994'string-lessp'.
1995
1996** The new functions 'string-collate-lessp' and 'string-collate-equalp'
1997preserve the collation order as defined by the system's locale(1)
1998environment. For the time being this is implemented for modern POSIX
1999systems and for MS-Windows, for other systems they fall back to their
2000counterparts 'string-lessp' and 'string-equal'.
2001
2002*** The ls-lisp package uses 'string-collate-lessp' to sort file names.
2003The effect is that, on systems that use ls-lisp for Dired, the default
2004sort order of the files in Dired is now different from what it was in
2005previous versions of Emacs. In particular, the file names are sorted
2006disregarding punctuation, accents, and diacritics, and letter case is
2007ignored. For example, files whose name begin with a period will no
2008longer appear near the beginning of the directory listing. If you
2009want the old, locale-independent sorting, customize the new option
2010'ls-lisp-use-string-collate' to the nil value.
2011
2012*** The MS-Windows specific variable 'w32-collate-ignore-punctuation',
2013if set to a non-nil value, causes the above 2 functions to ignore
2014symbol and punctuation characters when collating strings. This
2015emulates the behavior of modern Posix platforms when the locale's
2016codeset is "UTF-8" (as in "en_US.UTF-8"). This is needed because
2017MS-Windows doesn't support UTF-8 as codeset in its locales.
2018
2019** New function 'alist-get', which is a generalized variable
2020suitable for use with 'setf'.
2021
2022** New function 'funcall-interactively', which works like 'funcall'
2023but makes 'called-interactively-p' treat the function as (you guessed it)
2024called interactively.
2025
2026** New function 'function-put' to use instead of 'put' for function properties.
2027
2028** The new function 'bidi-find-overridden-directionality' allows you to
2029find characters whose directionality was, perhaps maliciously,
2030overridden by directional override control characters. Lisp programs
2031can use this to detect potential phishing of URLs and other links that
2032exploits bidirectional display reordering.
2033
2034** The new function 'buffer-substring-with-bidi-context' allows you to
2035copy a portion of a buffer into a different location while preserving
2036the visual appearance both of the copied text and the text at
2037destination, even when the copied text includes mixed bidirectional
2038text and directional control characters.
2039
2040** New properties that can be specified with 'declare':
2041*** '(interactive-only INSTEAD)', says to use INSTEAD for non-interactive use.
2042*** '(pure VAL)', if VAL is non-nil, indicates the function is pure.
2043*** '(side-effect-free VAL)', if VAL is non-nil, indicates the function does not
2044have side effects.
2045
2046** New macro 'with-file-modes', for evaluating expressions with default file
2047permissions set to temporary values (e.g., for creating private files).
2048
2049** You can access the slots of structures using 'cl-struct-slot-value'.
2050
2051** Function 'sort' can deal with vectors.
2052
2053** Function 'system-name' now returns an updated value if the current
2054system's name has changed or if the Emacs process has changed systems.
2055To avoid long waits it no longer consults DNS to canonicalize the name
2056(in some cases this may affect generated message-id headers - customize
2057'message-user-fqdn' if this bothers you). The variable 'system-name'
2058is now obsolete.
2059
2060** Function 'write-region' no longer outputs "Wrote FILE" in batch mode.
2061
2062** If 'pwd' is called with a prefix argument, insert the current default
2063directory at point.
2064
2065** New functions return extended information about fonts and faces.
2066
2067*** The function 'font-info' now returns more details about a font.
2068In particular, it now returns the average width of the font's
2069characters, which can be used for geometry-related calculations.
2070
2071*** A new function 'default-font-width' returns the average width of a
2072character in the current buffer's default font. If the default face
2073is remapped (see 'face-remapping-alist'), the value for the remapped
2074face is returned. This function complements the existing function
2075'default-font-height'.
2076
2077*** New functions 'window-font-height' and 'window-font-width' return
2078the height and average width of characters in a specified face and
2079window. If FACE is remapped (see 'face-remapping-alist'), the
2080function returns the information for the remapped face.
2081
2082*** A new function 'window-max-chars-per-line' returns the maximal
2083number of characters that can be displayed on one line. If a face
2084and/or window are provided, these values are used for the
2085calculation. This function is different from 'window-body-width' in
2086that it accounts for (i) continuation glyphs, (ii) the size of the
2087font, and (iii) the specified window.
2088
2089** New utilities in subr-x.el:
2090
2091*** New macros 'if-let' and 'when-let' allow defining bindings and to
2092execute code depending whether all values are true.
2093
2094*** New macros 'thread-first' and 'thread-last' allow threading a form
2095as the first or last argument of subsequent forms.
2096
2097** Documentation strings now support quoting with curved single quotes
2098in addition to the old style with grave accent and apostrophe. The
2099new style looks better on today's displays. In the new Electric Quote
2100mode, you can enter curved single quotes into documentation by typing
2101grave accent and apostrophe. Outside Electric Quote mode, you can
2102enter them by typing 'C-x 8 [' and 'C-x 8 ]', or (if your Alt key
2103works) by typing 'A-[' and 'A-]'. As described above under
2104'text-quoting-style', the user can specify how to display doc string
2105quotes.
2106
2107** New function 'format-message' is like 'format' and also converts
2108curved single quotes, grave accents and apostrophes as per
2109'text-quoting-style'.
2110
2111** 'show-help-function's arg is converted via 'substitute-command-keys'
2112before being passed to the function. Help strings, help-echo
2113properties, etc. can therefore contain command key escapes and
2114quotation marks.
2115
2116** Time-related changes:
2117
2118*** Time conversion functions now accept an optional ZONE argument
2119that specifies the time zone rules for conversion. ZONE is omitted or
2120nil for Emacs local time, t for Universal Time, 'wall' for system wall
2121clock time, or a string as in the TZ environment variable. The
2122affected functions are 'current-time-string', 'current-time-zone',
2123'decode-time', and 'format-time-string'. The function 'encode-time',
2124which already accepted a simple time zone rule argument, has been
2125extended to accept all the new forms.
2126
2127*** Incompatible change in the third argument of 'format-time-string'.
2128Previously, any non-nil argument was interpreted as specifying Universal Time.
2129This is no longer true; packages that want Universal Time should pass t
2130as the third argument.
2131
2132*** Time-related functions now consistently accept numbers
2133(representing seconds since the epoch) and nil (representing the
2134current time) as well as the usual list-of-integer representation.
2135Affected functions include 'current-time-string', 'current-time-zone',
2136'decode-time', 'float-time', 'format-time-string', 'seconds-to-time',
2137'time-add', 'time-less-p', 'time-subtract', 'time-to-day-in-year',
2138'time-to-days', and 'time-to-seconds'.
2139
2140*** The 'encode-time-value' and 'with-decoded-time-value' macros have
2141been obsoleted.
2142
2143*** 'calendar-next-time-zone-transition', 'time-add', and
2144'time-subtract' no longer return time values in the obsolete and
2145undocumented integer-pair format. Instead, they return a list of two
2146integers.
2147
2148** New function 'set-binary-mode' allows switching a standard stream
2149of the Emacs process to binary I/O mode.
2150
2151** The new function 'directory-name-p' can be used to check whether a file
2152name (as returned from, for instance, 'file-name-all-completions') is
2153a directory file name. It returns non-nil if the last character in
2154the name is a directory separator character (forward slash on GNU and
2155Unix systems, forward- or backslash on MS-Windows and MS-DOS).
2156
2157** ASCII approximations to curved quotes are put in 'standard-display-table'
2158if the terminal cannot display curved quotes.
2159
2160** Standard output and error streams now transliterate characters via
2161'standard-display-table', and encode output using 'locale-coding-system'.
2162To force a specific encoding, bind 'coding-system-for-write' to the
2163coding-system of your choice when invoking functions like 'prin1' and
2164'message'.
2165
2166** New var 'truncate-string-ellipsis' to choose how to indicate truncation.
2167
2168** New possible value for 'system-type': 'nacl'.
2169This is used by Google's Native Client (NaCl).
2170
2171** Miscellaneous name change
2172
2173For consistency with the usual Emacs spelling, the Lisp variable
2174'hfy-optimisations' has been renamed to 'hfy-optimizations'.
2175The old name should still work, as an obsolescent alias.
2176
2177** Changes in Frame- and Window- Handling
2178
2179*** Emacs can now draw horizontal scroll bars on some platforms that
2180provide toolkit scroll bars, namely Gtk+, Lucid, Motif and Windows.
2181Horizontal scroll bars are turned off by default.
2182
2183**** New function 'horizontal-scroll-bars-available-p' telling whether
2184horizontal scroll bars are available on the underlying system.
2185
2186**** New mode 'horizontal-scroll-bar-mode' to toggle horizontal scroll
2187bars on all existing and future frames.
2188
2189**** New function 'toggle-horizontal-scroll-bar' to toggle horizontal
2190scroll bars on the selected frame.
2191
2192**** New frame parameters 'horizontal-scroll-bars' and
2193'scroll-bar-height' to set horizontal scroll bars and their height
2194for individual frames and in 'default-frame-alist'.
2195
2196***** The 'horizontal-scroll-bars' parameter was already present and non-nil
2197by default in Emacs 24 and before (although it didn't have any
2198effect). This could cause a problem if you share your desktop files
2199with older versions of Emacs: saving desktop in Emacs before v25.1,
2200then restoring it in v25.1 would turn on horizontal scroll bars in all
2201buffers. To resolve this issue, put this in your ~/.emacs init file:
2202
2203 (modify-all-frames-parameters '((horizontal-scroll-bars . nil)))
2204
2205**** New functions 'frame-scroll-bar-height' and
2206'window-scroll-bar-height' return the height of horizontal scroll
2207bars on a specific frame or window.
2208
2209**** 'set-window-scroll-bars' now accepts five parameters where the last
2210two specify height and type of the window's horizontal scroll bar.
2211
2212**** 'window-scroll-bars' now returns type and sizes of horizontal scroll
2213bars too.
2214
2215**** New buffer-local variables 'horizontal-scroll-bar' and
2216'scroll-bar-height'.
2217
2218*** New functions 'frame-geometry' and 'frame-edges' give access to a
2219frame's geometry.
2220
2221*** New functions 'mouse-absolute-pixel-position' and
2222'set-mouse-absolute-pixel-position' get/set screen coordinates of the
2223mouse cursor.
2224
2225*** The function 'window-edges' now accepts three additional arguments to
2226retrieve body, absolute and pixel edges of the window.
2227
2228*** The functions 'window-inside-edges', 'window-inside-pixel-edges' and
2229'window-inside-absolute-pixel-edges' have been renamed to respectively
2230'window-body-edges', 'window-body-pixel-edges' and
2231'window-absolute-body-pixel-edges'. The old names are kept as aliases.
2232
2233*** New function 'window-absolute-pixel-position' to get the screen
2234coordinates of a visible buffer position.
2235
2236*** The height of a frame's menu and tool bar are no longer counted in the
2237frame's text height. This means that the text height stands only for
2238the height of the frame's root window plus that of the echo area (if
2239present). This was already the behavior for frames with external tool
2240and menu bars (like in the Gtk builds) but has now been extended to all
2241builds.
2242
2243*** Frames now do not necessarily preserve the number of columns or lines
2244they display when setting default font, menu bar, fringe width, or
2245scroll bars. In particular, maximized and fullscreen frames are
2246conceptually never resized if such settings change. For fullheight and
2247fullwidth frames, the behavior may depend on the toolkit used.
2248
2249**** New option 'frame-inhibit-implied-resize' if non-nil, means that
2250setting default font, menu bar, fringe width, or scroll bars of a
2251specific frame does not resize that frame in order to preserve the
2252number of columns or lines it displays.
2253
2254*** New function 'window-preserve-size' allows you to preserve the size of
2255a window without "fixing" it. It's supported by 'fit-window-to-buffer',
2256'temp-buffer-resize-mode' and 'display-buffer'.
2257
2258*** New 'display-buffer' action function 'display-buffer-use-some-frame'.
2259This displays the buffer in an existing frame other than the current
2260frame, and allows the caller to specify a frame predicate to exclude
2261frames.
2262
2263*** New minor mode 'window-divider-mode' and options
2264'window-divider-default-places', 'window-divider-default-bottom-width'
2265and 'window-divider-default-right-width'.
2266
2267*** When a window is shrunk horizontally its margins are no longer removed
2268automatically. Rather, Emacs refuses to split or resize windows when
2269this would cause margins to no longer fit into the width reserved for the
2270corresponding window. An application can override this behavior for a
2271particular window by setting that window's 'min-margins' parameter. As
2272a consequence, the application becomes fully responsible for trimming
2273the margin sizes of that window and any window inheriting these margins.
2274
2275*** The window displaying the '*Completions*' buffer with minibuffer
2276completion candidates is now shown at the bottom of the selected
2277frame. The size of that window is always as large as required to
2278display all the candidates, except when limited by the minimum size
2279of the other windows on that frame; those other windows are resized
2280to provide space for the '*Completions*' display. The Emacs manual
2281describes how to customize 'display-buffer-alist' to get back the old
2282behavior, see the node "Temporary Displays" there.
2283
2284** Tearoff menus and detachable toolbars for Gtk+ have been removed.
2285Those features have been deprecated in Gtk+ for a long time.
2286
2287** Etags
2288
2289*** etags no longer qualifies class members by default.
2290
2291By default, 'etags' will not qualify class members for Perl and C-like
2292object-oriented languages with their class names and namespaces, and
2293will remove qualifications used explicitly in the code from the tag
2294names it puts in TAGS files. This is so the etags.el back-end for
2295'xref-find-definitions' is more accurate and produces less false
2296positives.
2297
2298Use --class-qualify (-Q) if you want the old default behavior of
2299qualifying class members in C++, Java, Objective C, and Perl. Note
2300that using -Q might make some class members become "unknown" to 'M-.'
2301('xref-find-definitions'); if so, you can use 'C-u M-.' to specify the
2302qualified names by hand.
2303
2304*** New language Ruby
2305
2306Names of modules, classes, methods, functions, and constants are
2307tagged. Overloaded operators are also tagged.
2308
2309*** New language Go
2310Names of packages, functions, and types are tagged.
2311
2312*** Improved support for Lua
2313
2314Etags now tags functions even if the "function" keyword follows some
2315whitespace at line beginning.
2316
2317
2318* Changes in Emacs 25.1 on Non-Free Operating Systems
2319
2320** MS-Windows specific Emacs build scripts are no longer in the distribution.
2321This includes the makefile.w32-in files in various subdirectories, and
2322the support files. The file nt/configure.bat now just tells the user
2323to use the procedure described in nt/INSTALL, by running the Posix
2324'configure' script in the top-level directory.
2325
2326** Building Emacs for MS-Windows requires at least Windows XP
2327or Windows Server 2003. The built binaries still run on all versions
2328of Windows starting with Windows 9X.
2329
2330** Emacs running on MS-Windows now supports the daemon mode.
2331
2332** The byte counts in etags-generated TAGS files are now the same on
2333MS-Windows as they are on other platforms.
2334
2335** On OS X, configure creates a Cocoa ("Nextstep") build by default.
2336Pass '--without-ns' to configure to create an X11 build, the old default.
2337
2338** OS X 10.5 or older is no longer supported.
2339
2340** OS X on PowerPC is no longer supported.
2341
2342** New variable 'ns-use-fullscreen-animation' controls animation for
2343non-native NS fullscreen. The default is nil. Set to t to enable
2344animation when entering and leaving fullscreen. For native OSX fullscreen
2345this has no effect.
2346
2347** On the OS X Cocoa ("Nextstep") port, multicolor font (such as color
2348emoji) display is disabled. This feature was accidentally added when
2349Emacs 24.4 included the new Core Text based font backend code that was
2350originally implemented for a non-mainline port. This will be enabled
2351again once it is also implemented in Emacs on free operating systems.
2352If some symbols, such as emoji, do not display, we suggest to install
2353an appropriate font, such as Symbola; then they will be displayed,
2354albeit without the color effects.
2355
2356** The new function 'w32-application-type' returns the type of an
2357MS-Windows application given the name of its executable program file.
2358
2359** New variable 'w32-pipe-buffer-size'.
2360It can be used to tune the size of the buffer of pipes created for
2361communicating with subprocesses, when the program run by a subprocess
2362exhibits unusual buffering behavior. Default is zero, which lets the
2363OS use its default size.
2364
2365
2366---------------------------------------------------------------------- 640----------------------------------------------------------------------
2367This file is part of GNU Emacs. 641This file is part of GNU Emacs.
2368 642
diff --git a/etc/NEWS.25 b/etc/NEWS.25
new file mode 100644
index 00000000000..978c90a7a5e
--- /dev/null
+++ b/etc/NEWS.25
@@ -0,0 +1,1773 @@
1GNU Emacs NEWS -- history of user-visible changes.
2
3Copyright (C) 2014-2016 Free Software Foundation, Inc.
4See the end of the file for license conditions.
5
6Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
7If possible, use M-x report-emacs-bug.
8
9This file is about changes in Emacs version 25.
10
11See file HISTORY for a list of GNU Emacs versions and release dates.
12See files NEWS.24, NEWS.23, NEWS.22, NEWS.21, NEWS.20, NEWS.19, NEWS.18,
13and NEWS.1-17 for changes in older Emacs versions.
14
15You can narrow news to a specific version by calling 'view-emacs-news'
16with a prefix argument or by typing C-u C-h C-n.
17
18Temporary note:
19+++ indicates that all necessary documentation updates are complete.
20 (This means all relevant manuals in doc/ AND lisp doc-strings.)
21--- means no change in the manuals is needed.
22When you add a new item, use the appropriate mark if you are sure it applies,
23otherwise leave it unmarked.
24
25
26* Installation Changes in Emacs 25.1
27
28** Building Emacs now requires C99 or later.
29
30** Building Emacs now requires GNU make, version 3.81 or later.
31
32** New configure option --with-cairo.
33This builds Emacs with Cairo drawing. As a side effect, it provides
34support for built-in printing, when Emacs was built with GTK+.
35The Emacs Cairo drawing is experimental and still has some known
36display problems. We encourage more testing of this build and
37reporting any problems you find, but it is not recommended for
38production.
39
40** New configure option --with-modules.
41This enables support for loading dynamic modules; see below.
42
43** By default, Emacs no longer works on IRIX. We expect that Emacs
44users are not affected by this, as SGI stopped supporting IRIX in
45December 2013. If you are affected, please send a bug report. You
46should be able to work around the problem either by porting the Emacs
47undumping code to GCC under IRIX, or by configuring --with-wide-int,
48or by sticking with Emacs 24.4.
49
50** The Emacs garbage collector assumes GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS.
51The GC_MAKE_GCPROS_NOOPS stack-marking variant has been the default
52since Emacs 24.4, and the other variants were undocumented and were
53obstacles to maintenance and development. GC_MARK_STACK and its
54related symbols have been removed from the C internals.
55
56** 'configure' now prefers gnustep-config when configuring GNUstep.
57If gnustep-config is not available, the old heuristics are used.
58
59** 'configure' now prefers inotify to gfile for file notification,
60unless gfile is explicitly requested via --with-file-notification='gfile'.
61
62** 'configure' detects the kqueue file notification library on *BSD
63and Mac OS X machines.
64
65** The configure option '--with-pkg-config-prog' has been removed.
66Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to.
67
68** The configure option '--with-mmdf' has been removed.
69It was no longer useful, as it relied on libraries that are no longer
70supported, and its presence led to confusion during configuration.
71This affects only the 'movemail' utility; Emacs itself can still
72process MMDF-format files as before.
73
74** The configure option '--enable-silent-rules' is now the default,
75and silent rules are now quieter. To get the old behavior where
76'make' chatters a lot, configure with '--disable-silent-rules' or
77build with 'make V=1'.
78
79** The configure option '--with-gameuser' now allows you to specify a
80group instead of a user if its argument is prefixed by ':' (a colon).
81This will cause the game score files in "${localstatedir}/games/emacs"
82to be owned by that group, and the helper program for updating them to
83be installed setgid. The option now defaults to the 'games' group.
84
85** The 'grep-changelog' script (and its manual page) are no longer included.
86It has no particular connection to Emacs and has not changed in years,
87so if you want to use it, you can always take a copy from an older Emacs.
88
89** Emacs 25 comes with a new set of icons.
90Various resolutions are available as etc/images/icons/hicolor/*/apps/emacs.png.
91The old Emacs logo icons are available as 'emacs23.png' in the same location.
92
93** New make target 'check-expensive' to run additional tests.
94This includes all tests which run via "make check", plus additional
95tests which take more time to perform.
96
97
98* Startup Changes in Emacs 25.1
99
100** When Emacs is given a file as a command line argument and
101'initial-buffer-choice' is non-nil, display both the file and
102'initial-buffer-choice'. When Emacs is given more than one file and
103'initial-buffer-choice' is non-nil, show 'initial-buffer-choice'
104and '*Buffer List*'. This makes Emacs convenient to use from the
105command line when 'initial-buffer-choice' is non-nil.
106
107** The value of 'initial-scratch-message' is now treated as a doc string
108and can contain escape sequences for command keys, quotes, and the like.
109
110** The default height of GUI frames was enlarged.
111This is so there's enough space in the initial window to display the
112optional text about recovering crashes sessions, without losing the
113splash image display.
114
115
116* Changes in Emacs 25.1
117
118** Xwidgets: a new feature for embedding native widgets inside Emacs buffers.
119If you have gtk3 and webkitgtk3 installed, and Emacs was built with
120xwidget support, you can access the embedded webkit browser with 'M-x
121xwidget-webkit-browse-url'. This opens a new buffer with the embedded
122browser. The buffer will have a new mode, 'xwidget-webkit-mode'
123(similar to 'image-mode'), which supports the webkit widget.
124
125*** New functions for xwidget-webkit mode 'xwidget-webkit-insert-string',
126'xwidget-webkit-adjust-size-dispatch', 'xwidget-webkit-back',
127'xwidget-webkit-browse-url', 'xwidget-webkit-reload',
128'xwidget-webkit-current-url', 'xwidget-webkit-scroll-backward',
129'xwidget-webkit-scroll-forward', 'xwidget-webkit-scroll-down',
130'xwidget-webkit-scroll-up'.
131
132** Emacs can now load shared/dynamic libraries (modules).
133A dynamic Emacs module is a shared library that provides additional
134functionality for use in Emacs Lisp programs, just like a package
135written in Emacs Lisp would. The functions 'load', 'require',
136'load-file', etc. were extended to load such modules, as they do with
137Emacs Lisp packages. The new variable 'module-file-suffix' holds the
138system-dependent value of the file-name extension ('.so' on Posix
139hosts) of the module files.
140
141A module should export a C-callable function named
142'emacs_module_init', which Emacs will call as part of the call to
143'load' or 'require' which loads the module. It should also export a
144symbol named 'plugin_is_GPL_compatible' to indicate that its code is
145released under the GPL or compatible license; Emacs will refuse to
146load modules that don't export such a symbol.
147
148If a module needs to call Emacs functions, it should do so through the
149API defined and documented in the header file 'emacs-module.h'. Note
150that any module that provides Lisp-callable functions will have to use
151Emacs functions such as 'fset' and 'funcall', in order to register its
152functions with the Emacs Lisp interpreter.
153
154Modules can create 'user-ptr' Lisp objects that embed pointers to C
155structs defined by the module. This is useful for keeping around
156complex data structures created by a module, to be passed back to the
157module's functions. User-ptr objects can also have associated
158"finalizers" -- functions to be run when the object is GC'ed; this is
159useful for freeing any resources allocated for the underlying data
160structure, such as memory, open file descriptors, etc. A new
161predicate 'user-ptrp' returns non-nil if its argument is a 'user-ptr'
162object.
163
164Loadable modules in Emacs are an experimental feature, and subject to
165change in future releases. For that reason, their support is disabled
166by default, and must be enabled by using the '--with-modules' option
167at configure time.
168
169** Network security (TLS/SSL certificate validity and the like) is
170added via the new Network Security Manager (NSM) and controlled via
171the 'network-security-level' variable.
172
173** 'C-h l' now also lists the commands that were run.
174
175** 'x-select-enable-clipboard' is renamed 'select-enable-clipboard'
176and 'x-select-enable-primary' is renamed 'select-enable-primary'.
177Additionally they both now apply to all systems (OSX, GNUstep, Windows, you
178name it), with the proviso that on some systems (e.g. Windows)
179'select-enable-primary' is ineffective since the system doesn't
180have the equivalent of a primary selection.
181
182** New option 'switch-to-buffer-in-dedicated-window' allows you to
183customize how 'switch-to-buffer' proceeds interactively when the
184selected window is strongly dedicated to its buffer.
185
186** The option 'even-window-heights' has been renamed to
187'even-window-sizes' and now handles window widths as well.
188
189** 'terpri' gets an optional arg ENSURE to conditionally output a newline.
190
191** 'insert-register' now leaves point after the inserted text
192when called interactively. A prefix argument toggles this behavior.
193
194** The new variable 'term-file-aliases' replaces some files from lisp/term.
195The function 'tty-run-terminal-initialization' consults this variable
196when deciding what terminal-specific initialization code to run.
197
198** New variable 'system-configuration-features', listing some of the
199main features that Emacs was compiled with. This is mainly intended
200for use in Emacs bug reports.
201
202** A password is now hidden also when typed in batch mode. Another
203hiding character but the default '.' can be used by let-binding the
204variable 'read-hide-char'.
205
206** The Emacs pseudo-random number generator can be securely seeded.
207On systems where Emacs can access the system entropy or some other
208cryptographically secure random stream, it now uses that when 'random'
209is called with its argument t. This allows cryptographically strong
210random values; in particular, the Emacs server now uses this facility
211to produce its authentication key.
212
213** New input methods: 'tamil-dvorak', 'programmer-dvorak' and 'probhat'.
214
215
216* Editing Changes in Emacs 25.1
217
218** 'M-x' suggests shorthands and ignores obsolete commands for completion.
219
220** Changes in undo
221
222*** Successive single-char deletions are collapsed in the undo-log just like
223successive char insertions. Which commands invoke this behavior is
224controlled by the new 'undo-auto-amalgamate' function. See the node
225"Undo" in the ELisp manual for more details.
226
227*** The heuristic used to insert 'undo-boundary' after each command
228has changed, so that if a command causes changes in more than just the
229current buffer, Emacs now calls 'undo-boundary' in every buffer
230affected by the command.
231
232** New command 'comment-line' bound to 'C-x C-;'.
233
234** New and improved facilities for inserting Unicode characters
235
236*** Unicode names entered via 'C-x 8 RET' now use substring completion
237by default.
238
239*** 'C-x 8' now has shorthands for several chars, such as U+2010
240(HYPHEN), U+2011 (NON-BREAKING HYPHEN), and U+2012 (FIGURE DASH). As
241before, you can type 'C-x 8 C-h' to list shorthands.
242
243*** New minor mode 'electric-quote-mode' for using curved quotes as you
244type. See also the new variable 'text-quoting-style'.
245
246** New minor mode 'global-eldoc-mode' is enabled by default.
247
248** Emacs now uses "bracketed paste mode" on text terminals that support it.
249Bracketed paste mode causes text terminals to wrap pasted text in special
250escape sequences that allow Emacs to tell the difference between text
251you type and text you paste from other applications. Emacs then
252avoids interpreting each character in the pasted text as it does with
253keyboard input, which results in a paste experience similar to that
254under a window system, and significant performance improvements when
255pasting large amounts of text.
256
257Bracketed paste mode is disabled by default, so Emacs automatically
258enables it at startup if the terminal supports it.
259
260** Emacs now supports the latest version of the UBA.
261The Emacs implementation of the Unicode Bidirectional Algorithm (UBA)
262was updated to support all the latest additions and changes introduced
263in Unicode Standard versions 6.3, 7.0, and the latest Unicode 8.0.
264This includes full support for directional isolates and the
265Bidirectional Parentheses Algorithm (BPA) specified by these Unicode
266standards.
267
268** You can access 'mouse-buffer-menu' ('C-down-mouse-1') using 'C-f10'.
269
270** New buffer-local 'electric-pair-local-mode'.
271
272** New variable 'fast-but-imprecise-scrolling' inhibits
273fontification during full screen scrolling operations, giving less
274hesitant operation during auto-repeat of 'C-v', 'M-v' at the cost of
275possible inaccuracies in the end position.
276
277** New documentation command 'describe-symbol'.
278Works for functions, variables, faces, etc. It is bound to 'C-h o' by
279default.
280
281** New function 'custom-prompt-customize-unsaved-options' checks for
282unsaved customizations and prompts user to customize (if found). It
283is intended for adding to 'kill-emacs-query-functions'.
284
285** The old 'C-x w' bindings in 'hi-lock-mode' are officially deprecated
286in favor of the global 'M-s h' bindings introduced in Emacs 23.1.
287They'll disappear soon.
288
289
290* Changes in Specialized Modes and Packages in Emacs 25.1
291
292** Checkdoc
293
294*** New command 'checkdoc-package-keywords' checks if the
295current package keywords are recognized. Set the new option
296'checkdoc-package-keywords-flag' to non-nil to make
297'checkdoc-current-buffer' call this function automatically.
298
299*** New function 'checkdoc-file' checks for style errors.
300It's meant for use together with 'compile':
301emacs -batch --eval "(checkdoc-file \"subr.el\")"
302
303** Desktop
304
305*** The desktop format version has been upgraded from 206 to 208.
306Although Emacs 25.1 can read a version 206 desktop, earlier Emacsen
307cannot read a version 208 desktop. To upgrade your desktop file, you
308must explicitly request the upgrade, by 'C-u M-x desktop-save'. You are
309recommended to do this as soon as you have firmly upgraded to Emacs
31025.1 (or later). Should you ever need to downgrade your desktop file
311to version 206, you can do this with 'C-u C-u M-x desktop-save'.
312
313*** 'desktop-restore-in-current-display' now defaults to t, not nil.
314That is, Emacs by default now restores frames into the current display.
315
316** New function 'bookmark-set-no-overwrite' bound to 'C-x r M'.
317It raises an error if a bookmark of that name already exists,
318unlike 'bookmark-set' which silently updates an existing bookmark.
319
320** Gnus
321
322*** New user options 'mm-html-inhibit-images' and 'mm-html-blocked-images'
323now control how mm-* functions fetch and display images in an HTML
324message. Gnus still uses 'gnus-inhibit-images' and 'gnus-blocked-images'
325for that purpose, i.e., binds mm-html- variables with those gnus-
326variables, but other packages do not have to bind gnus- variables now.
327
328*** 'mm-inline-text-html-with-images' has been removed.
329Use 'mm-html-inhibit-images' instead. Note that the value is opposite
330in meaning.
331
332** IMAP
333
334*** 'imap-ssl-program' has been removed, and imap.el uses the internal
335GnuTLS encryption functions if possible.
336
337** JSON
338
339*** 'json-encode-string' now only escapes the characters it has to.
340Which means that the encoded strings can contain non-ASCII characters.
341
342*** 'json-pretty-print' and 'json-pretty-print-buffer' now maintain
343the ordering of object keys by default.
344
345*** New commands 'json-pretty-print-ordered' and
346'json-pretty-print-buffer-ordered' pretty prints JSON objects with
347object keys sorted alphabetically.
348
349** Prettify Symbols mode
350
351*** Prettify Symbols mode supports custom composition predicates. By
352overriding the default 'prettify-symbols-compose-predicate', modes can
353specify in which contexts a symbol may be displayed as some Unicode
354character. 'prettify-symbols-default-compose-p' is the default which
355is suitable for most programming languages such as C or Lisp (but not
356(La)TeX).
357
358*** Symbols can be unprettified while point is inside them.
359New variable 'prettify-symbols-unprettify-at-point' configures this.
360
361** Enhanced xterm support
362
363*** The new variable 'xterm-screen-extra-capabilities' for configuring xterm.
364This variable tells Emacs which advanced capabilities are available in
365the xterm terminal emulator used to display Emacs text-mode frames.
366The default is to check each capability, and use it if available.
367(This variable was introduced in Emacs 24.1, but was not announced in
368its NEWS.)
369
370*** Killing text now also sets the CLIPBOARD/PRIMARY selection
371in the surrounding GUI (using the OSC-52 escape sequence). This only works
372if your xterm supports it and enables the 'allowWindowOps' options (disabled
373by default at least in Debian, for security reasons).
374
375Similarly, you can yank the CLIPBOARD/PRIMARY selection (using the OSC-52
376escape sequence) if your xterm has the feature enabled but for that you
377additionally need to add 'getSelection' to 'xterm-extra-capabilities'.
378
379*** 'xterm-mouse-mode' now supports mouse-tracking (if your xterm supports it).
380
381** The way to turn on and off 'save-place' mode has changed.
382It is no longer sufficient to load the saveplace library and set
383'save-place' non-nil. Instead, use the two new minor modes:
384'save-place-mode' turns on saving last place in every file, and
385'save-place-local-mode' does that only for the file in whose buffer it
386is invoked. The 'save-place' variable is now an obsolete alias for
387'save-place-mode', which replaces it, and 'toggle-save-place' is an
388obsolete alias for the new 'save-place-local-mode' command.
389
390** ERC
391
392*** ERC can now hide message types by network or channel.
393'erc-hide-list' will hide all messages of the specified type, while
394'erc-network-hide-list' and 'erc-channel-hide-list' will only hide the
395specified message types for the respective specified targets.
396
397*** Reconnection is now asynchronous.
398
399*** Nick completion is now case-insensitive again after inadvertently
400being made case-sensitive in Emacs 24.2.
401
402** MPC
403
404*** New commands, key binds, and menu items.
405
406**** '<' and '>' for navigating previous and next tracks in playlist
407
408**** New play/pause command 'mpc-toggle-play' bound to 's'
409
410**** 'g' bound to new command 'mpc-seek-current' will navigate current
411track.
412
413**** New commands 'mpc-toggle-{consume,repeat,single,shuffle}' for
414toggling playback modes.
415
416*** Now supports connecting to a UNIX domain socket.
417
418*** Looks at more image file names to use as album art.
419Case-insensitively tries for .folder.png (freedesktop) and folder.jpg
420(XP) in addition to cover.jpg.
421
422*** Searches in more locations for MPD configuration files.
423MPD supports the XDG base directory specification since version 0.17.6.
424
425** Midnight-mode
426
427*** 'midnight-mode' is now a proper minor mode.
428
429*** clean-buffer-*-regexps can now specify buffers via predicate functions.
430
431** package.el
432
433*** New "external" package status.
434An external package is any installed package that's not built-in and
435not from 'package-user-dir', which usually means it's from an entry in
436'package-directory-list'. They are treated much like built-in
437packages, in that they cannot be deleted through the package menu and
438are not considered for upgrades.
439
440The effect is that a user can manually place a specific version of a
441package inside 'package-directory-list' and the package menu will
442always respect that.
443
444*** If a package is available on multiple archives and one has higher
445priority (as per 'package-archive-priorities') only that one is
446listed. This can be configured with 'package-menu-hide-low-priority'.
447
448*** 'package-menu-toggle-hiding' now toggles the hiding of packages.
449This includes the above-mentioned low-priority packages, as well as
450available packages whose version is lower than the currently installed
451version (which were previously impossible to display).
452This allows users to downgrade a package if a lower version is
453available.
454
455*** When filtering the package menu, keywords starting with "arc:" or
456"status:" represent package archive or status, respectively, instead
457of actual keywords.
458
459*** Most functions which involve downloading information now take an
460ASYNC argument. If it is non-nil, package.el performs the download(s)
461asynchronously.
462
463*** New variable 'package-menu-async' controls whether the
464package-menu uses asynchronous downloads.
465
466*** 'package-install-from-buffer' and 'package-install-file' work on directories.
467This follows the same rules as installing from a .tar file, except the
468-pkg file is optional.
469
470*** Packages which are dependencies of other packages cannot be deleted.
471The FORCE argument to 'package-delete' overrides this.
472
473*** New custom variable 'package-selected-packages' tracks packages
474which were installed by the user (as opposed to installed as
475dependencies). This variable can also be manually customized.
476
477*** New command 'package-install-selected-packages' installs all
478packages from 'package-selected-packages' which are currently missing.
479
480*** 'package-install' function now takes a DONT-SELECT argument. If
481this function is called interactively or if DONT-SELECT is nil, add the
482package being installed to 'package-selected-packages'.
483
484*** New command 'package-autoremove' removes all packages which were
485installed strictly as dependencies but are no longer needed.
486
487** Shell
488
489When you invoke 'shell' interactively, the '*shell*' buffer will now
490display in a new window. However, you can customize this behavior via
491the 'display-buffer-alist' variable. For example, to get
492the old behavior -- '*shell*' buffer displays in current window -- use
493(add-to-list 'display-buffer-alist
494 '("^\\*shell\\*$" . (display-buffer-same-window))).
495
496** EIEIO
497*** The ':protection' slot option is not obeyed any more.
498*** The 'newname' argument to constructors is optional&deprecated.
499If you need your objects to be named, do it by inheriting from 'eieio-named'.
500*** The <class>-list-p and <class>-child-p functions are declared obsolete.
501*** The <class> variables are declared obsolete.
502*** The <initarg> variables are declared obsolete.
503*** defgeneric and defmethod are declared obsolete.
504Use the equivalent facilities from cl-generic.el instead.
505*** 'constructor' is now an obsolete alias for 'make-instance'.
506*** 'pcase' accepts a new UPattern 'eieio'.
507
508** ido
509
510*** New command 'ido-bury-buffer-at-head' bound to 'C-S-b'.
511Bury the buffer at the head of 'ido-matches', analogous to how 'C-k'
512kills the buffer at head.
513
514*** A prefix argument to 'ido-restrict-to-matches' will reverse its
515meaning, and the list is restricted to those elements that do not
516match the current input.
517
518** Minibuffer
519
520*** You can use <UP> and <DOWN> arrow keys to move through history by lines.
521The new commands 'next-line-or-history-element' and
522'previous-line-or-history-element', bound to <UP> and <DOWN> in the
523minibuffer, allow by-line movement through minibuffer history,
524similarly to an ordinary buffer. Only when point moves over
525the bottom/top of the minibuffer it goes to the next/previous history
526element. 'M-p' and 'M-n' still move directly to previous/next history
527item as before.
528
529** Search and Replace
530
531*** 'isearch' and 'query-replace' can now perform character folding in matches.
532This is analogous to case folding, but instead of disregarding case
533variants, it disregards wider classes of distinctions between similar
534characters. (Case folding is a special case of character folding.)
535This means many characters in the search string will match entire
536groups of characters instead of just themselves.
537
538For instance, the ASCII double quote character " will match all
539variants of double quotes, and the letter 'a' will match all of its
540accented cousins, even those composed of multiple characters, as well
541as many other symbols like U+249C (PARENTHESIZED LATIN SMALL LETTER
542A).
543
544Character folding is enabled by customizing 'search-default-mode' to
545the value 'char-fold-to-regexp'. You can also toggle character
546folding in the middle of a search by typing 'M-s ''.
547
548'query-replace' honors character folding if the new variable
549'replace-char-fold' is customized to a non-nil value.
550
551*** New user option 'search-default-mode'.
552This option specifies the default mode for Isearch. The default
553value, nil specifies that Isearch does literal searches (however,
554'case-fold-search' and 'isearch-lax-whitespace' may still be applied,
555as in previous Emacs versions).
556
557*** New function 'char-fold-to-regexp' can be used
558by searching commands to produce a regexp matching anything that
559char-folds into STRING.
560
561*** The new 'M-s M-w' key binding uses eww to search the web for the
562text in the region. The search engine to use for this is specified by
563the customizable variable 'eww-search-prefix'.
564
565*** 'query-replace' history is enhanced.
566When 'query-replace' reads the FROM string from the minibuffer, typing
567'M-p' will now show previous replacements as "FROM SEP TO", where FROM
568and TO are the original text and its replacement, and SEP is an arrow
569string defined by the new variable 'query-replace-from-to-separator'.
570To select a prior replacement, type 'M-p' until the desired
571replacement appears in the minibuffer, and then exit the minibuffer by
572typing RET.
573
574** Calc
575*** If 'quick-calc' is called with a prefix argument, insert the
576result of the calculation into the current buffer.
577
578** In Edebug, you can now set the initial mode with 'C-x C-a C-m'.
579With this you can tell Edebug not to stop at the start of the first
580instrumented function.
581
582** ElDoc
583
584*** New minor mode 'global-eldoc-mode'.
585It is turned on by default, and affects '*scratch*' and other buffers
586whose major mode supports Emacs Lisp.
587
588*** 'eldoc-documentation-function' now defaults to 'ignore'.
589
590*** 'describe-char-eldoc' displays information about character at point,
591and can be used as a default value of 'eldoc-documentation-function'. It is
592useful when, for example, one needs to distinguish various spaces - e.g.,
593U+00A0 (NO-BREAK SPACE), U+2002 (EN SPACE), and U+2009 (THIN SPACE) - while
594using mono-spaced font.
595
596** eww
597
598*** HTML can now be rendered using variable-width fonts.
599
600*** A new command 'F' ('eww-toggle-fonts') can be used to toggle
601whether to use variable-pitch fonts or not. The user can also
602customize the 'shr-use-fonts' variable.
603
604*** A new command 'R' ('eww-readable') will try do identify the main
605textual parts of a web page and display only that, leaving menus and
606the like off the page.
607
608*** A new command 'D' ('eww-toggle-paragraph-direction') allows you to
609toggle the paragraph direction between left-to-right and right-to-left.
610
611*** You can now use several eww buffers in parallel by renaming eww
612buffers you want to keep separate.
613
614*** Partial state of the eww buffers (the URIs and the titles of the
615pages visited) is now preserved in the desktop file.
616
617*** 'eww-after-render-hook' is now called after eww has rendered
618the data in the buffer.
619
620*** The 'eww-reload' command now takes a prefix to not reload via
621the net, but just use the local copy of the HTML.
622
623*** The DOM shr and eww uses has been changed to the general Emacs
624xml.el/libxml2 DOM, and a new package dom.el has been added to
625interact with this DOM. See the Emacs Lisp manual for interface
626details.
627
628*** 'mailcap-mime-data' is now consulted when displaying PDF files.
629
630*** The new 'S' command will list all eww buffers, and allow managing
631them.
632
633*** https pages with valid certificates have headers marked in green, while
634invalid certificates are marked in red.
635
636** Message mode
637
638*** text/html messages that contain inline image parts will be
639transformed into multipart/related messages before sending.
640
641** In Show Paren Mode, a parenthesis can be highlighted when point
642stands inside it, and certain parens can be highlighted when point is
643at BOL or EOL, or in whitespace there. To enable these, customize,
644respectively, 'show-paren-when-point-inside-paren' or
645'show-paren-when-point-in-periphery'.
646
647** If gpg2 exists on the system, it is now used as the default value
648of 'epg-gpg-program' (instead of gpg).
649
650** Lisp mode
651
652*** Strings after ':documentation' are highlighted as docstrings.
653This enhances Lisp mode fontification to handle documentation of the
654form '(:documentation "the doc string")' used in Common Lisp code for
655CLOS class and slot documentation.
656
657** Rectangle editing
658
659*** Rectangle Mark mode can have corners past EOL or in the middle of a TAB.
660
661*** 'C-x C-x' in 'rectangle-mark-mode' now cycles through the four corners.
662*** 'string-rectangle' provides on-the-fly preview of the result.
663
664** New font-lock functions 'font-lock-ensure' and 'font-lock-flush'.
665These should be used in preference to 'font-lock-fontify-buffer' when
666called from Lisp.
667
668** Macro 'minibuffer-with-setup-hook' can optionally append a function
669to 'minibuffer-setup-hook'.
670
671If the first argument of the macro is of the form '(:append FUN)',
672then FUN will be appended to 'minibuffer-setup-hook', instead of
673prepending it.
674
675** cl-lib
676*** New functions 'cl-fresh-line', 'cl-digit-char-p', and 'cl-parse-integer'.
677
678*** 'pcase' accepts the new UPattern 'cl-struct'.
679
680** Calendar and diary
681
682*** The default 'diary-file' is now located in "~/.emacs.d".
683
684*** New commands to insert diary entries with Chinese dates:
685'diary-chinese-insert-anniversary-entry' 'diary-chinese-insert-entry'
686'diary-chinese-insert-monthly-entry', 'diary-chinese-insert-yearly-entry'.
687
688*** The calendar can now list and mark diary entries with Chinese dates.
689See 'diary-chinese-list-entries' and 'diary-chinese-mark-entries'.
690
691*** The option 'calendar-mode-line-format' can now be nil,
692which means to do nothing special with the mode line in calendars.
693
694*** New option 'calendar-weekend-days'.
695The option customizes which day headers receive the
696'calendar-weekend-header' face.
697
698*** New optional args N and STRING for 'holiday-greek-orthodox-easter'.
699
700*** Many items obsolete since at least version 23.1 have been removed.
701The majority were function/variable/face aliases, too numerous to list here.
702The remainder were:
703
704**** Functions 'calendar-one-frame-setup', 'calendar-only-one-frame-setup',
705'calendar-two-frame-setup', 'european-calendar', 'american-calendar'.
706
707**** Hooks 'cal-menu-load-hook', 'cal-x-load-hook'.
708
709**** Macro 'calendar-for-loop'.
710
711**** Variables 'european-calendar-style', 'diary-face', 'hebrew-holidays-{1,4}'.
712
713**** The nil and list forms of 'diary-display-function'.
714
715** New ERT function 'ert-summarize-tests-batch-and-exit'.
716If the output of ERT tests in batch mode execution can be saved to a
717log file, then it can be passed as an argument to the above function
718to produce a neat summary.
719
720** New js.el option 'js-indent-first-init'.
721
722** Info
723
724** Info mode now displays symbol names in fixed-pitch font.
725If you want to get the old behavior back, customize the 'Info-quoted'
726face to use the same definitions as the default face.
727
728*** 'Info-fontify-maximum-menu-size' can be t for no limit.
729
730*** 'info-display-manual' can now be given a prefix argument which (any
731non-nil value) directs the command to limit the completion
732alternatives to currently visited manuals.
733
734** ntlm.el has support for NTLM2.
735
736** Rmail
737
738*** The Rmail commands 'd', 'C-d' and 'u' take optional repeat counts
739to delete or undelete multiple messages.
740
741*** Rmail can now render HTML mail messages if your Emacs was built with
742libxml2 or if you have the Lynx browser installed. By default, Rmail
743will display the HTML version of a mail message that has both HTML and
744plain text parts, if display of HTML email is possible; customize the
745'rmail-mime-prefer-html' option to nil if you don't want that.
746
747*** In the commands that make summaries by subject, recipients, or senders,
748you can no longer use commas to separate regular expressions.
749
750** SES now supports local printer functions; see 'ses-define-local-printer'.
751
752** Shell-script Mode
753*** In sh-mode you can now use 'sh-shell' as a file-local variable to
754specify the type of shell in use (bash, csh, etc).
755
756*** New value 'always' for 'sh-indent-after-continuation'.
757This provides old-style ("dumb") indentation of continued lines.
758See the doc string of 'sh-indent-after-continuation' for details.
759
760** TLS
761*** Fatal TLS errors are now silent by default.
762
763*** If Emacs isn't built with TLS support, an external TLS-capable
764program is used instead. This program used to be run in --insecure
765mode by default, but has now changed to be secure instead, and will
766fail if you try to connect to non-verifiable hosts. This is
767controlled by the 'tls-program' variable.
768
769** URL
770
771*** The URL package accepts now the protocols "ssh", "scp" and "rsync".
772When 'url-handler-mode' is enabled, file operations for these
773protocols as well as for "telnet" and "ftp" are passed to Tramp.
774
775*** The URL package allows customizing the 'url-user-agent' string.
776The new 'url-user-agent' variable can be customized to be a string or
777a function.
778
779*** The new interface variable 'url-request-noninteractive' can be used
780to specify that we're running in a noninteractive context, and that
781we should not be queried about things like TLS certificate validity.
782
783*** 'url-mime-accept-string' can now be used as in "interface"
784variable, meaning you can bind it around an 'url-retrieve' call.
785
786*** If URL is used with a https connection, the first callback argument
787PLIST will contain a :peer element that has the output of
788'gnutls-peer-status' (if Emacs is built with GnuTLS support).
789
790** Tramp
791
792*** New connection method "afp", which allows you to access Mac OS X
793volumes via the Apple Filing Protocol.
794
795*** New connection method "nc", which allows you to access dumb
796busyboxes.
797
798*** Method-specific parameters can be overwritten now with variable
799'tramp-connection-properties'.
800
801*** Handler for 'file-notify-valid-p' for remote machines that support
802filesystem notifications.
803
804** SQL mode
805
806*** New user variable 'sql-default-directory' enables remote
807connections using Tramp.
808
809*** New command 'sql-send-line-and-next'.
810This command, bound to 'C-c C-n' by default, sends the current line to
811the SQL process and advances to the next line, skipping whitespace and
812comments.
813
814*** Added support for Vertica SQL.
815
816** VC and related modes
817
818*** Basic push support, via 'vc-push', bound to 'C-x v P'.
819Implemented for Bzr, Git, Hg. As part of this change, the pre-existing
820(undocumented) command 'vc-hg-push' now behaves slightly differently.
821
822*** The new command 'vc-region-history' shows the log+diff of the active region.
823
824*** You can refresh the VC state of a file buffer with 'M-x vc-refresh-state'.
825This command is useful when you perform version control commands
826outside Emacs (e.g., from the shell prompt), or if you switch the VC
827back-end for the buffer's file, or remove it from version control.
828
829*** New option 'vc-annotate-background-mode' controls whether
830the color range from 'vc-annotate-color-map' is applied to the
831background or to the foreground.
832
833*** New options for customizing encoding of Git commit log messages.
834The new user options 'vc-git-commits-coding-system' and
835'vc-git-log-output-coding-system' specify the encoding of log messages
836sent to Git when committing, and the decoding of log messages read
837from Git history commands. These options default to UTF-8; if
838customized, they should be consistent with the Git config variables
839i18n.commitEncoding and i18n.logOutputEncoding.
840('vc-git-commits-coding-system' existed previously, but was a
841variable, not a user option.)
842
843*** 'compare-windows' now compares text with the most recently selected window
844instead of the next window. If you want the previous behavior of
845comparing with the next window, customize the new option
846'compare-windows-get-window-function' to the value
847'compare-windows-get-next-window'.
848
849*** Two new faces 'compare-windows-removed' and 'compare-windows-added'
850replace the face 'compare-windows', which is now an obsolete alias for
851'compare-windows-added'.
852
853*** The VC state indicator in the mode line now has different faces
854corresponding to each of the possible states. See the 'vc-faces'
855customization group.
856
857*** 'log-edit-insert-changelog' converts "(tiny change)" to
858"Copyright-paperwork-exempt: yes". Set 'log-edit-rewrite-tiny-change'
859nil to disable this.
860
861*** vc-mcvs.el has been removed.
862
863** VHDL mode now supports VHDL'08.
864
865** Calculator
866
867*** Decimal display mode uses "," groups, so it's more
868fitting for use in money calculations
869
870*** Factorial works with non-integer inputs.
871
872** Hide-IfDef mode
873
874*** Hide-IfDef mode now support full C/C++ expressions in macros,
875macro argument expansion, interactive macro evaluation and automatic
876scanning of #define'd symbols.
877
878*** New command 'hif-evaluate-macro', bound to 'C-c @ e', displays the
879result of evaluating a macro.
880
881*** New command 'hif-clear-all-ifdef-define', bound to 'C-c @ C', clears
882all defined symbols in 'hide-ifdef-env'.
883
884*** New custom variable 'hide-ifdef-header-regexp' to define C/C++ header
885file name patterns. Defaults to files whose extension is one of '.h',
886'.hh', '.hpp', '.hxx', or '.h++', matched case-insensitively.
887
888*** New custom variable 'hide-ifdef-expand-reinclusion-protection' to prevent
889reinclusion protected (a.k.a. "idempotent") header files from being hidden.
890(This could happen when an idempotent header file is visited again,
891when its guard symbol is already defined.) Defaults to t.
892
893*** New custom variable 'hide-ifdef-exclude-define-regexp' to define symbol
894name patterns (e.g. all "FOR_DOXYGEN_ONLY_*") to be ignored when
895looking for macro definitions. By default, no symbols are ignored.
896
897** TeX mode
898
899*** When in a TeX (LaTeX, etc) comment, insert a normal double quote (")
900instead of defaulting to TeX-style open (``) or close ('') quote marks.
901
902*** New custom variable 'tex-print-file-extension' to help users who
903use PDF instead of DVI.
904
905*** TeX mode now supports Prettify Symbols mode. When enabling
906'prettify-symbols-mode' in a tex-mode buffer, \alpha ... \omega, and
907many other math macros are displayed using unicode characters.
908
909** New 'big-indent' style in 'whitespace-mode' highlights deep indentation.
910By default, 32 consecutive spaces or four consecutive TABs are
911considered to be too deep, but the new variable
912'whitespace-big-indent-regexp' can be customized to change that.
913
914** New options in 'tildify-mode'.
915New options 'tildify-space-string', 'tildify-pattern', and
916'tildify-foreach-region-function' variables make
917'tildify-string-alist', 'tildify-pattern-alist', and
918'tildify-ignored-environments-alist' variables (as well as a few
919helper functions) obsolete.
920
921** New package Xref replaces Etags's front-end and UI.
922
923The new package Xref provides a generic framework and new commands to
924find and move to definitions of functions, macros, data structures
925etc., as well as go back to the location where you were before moving
926to a definition. It supersedes and obsoletes many Etags commands,
927while still using the etags.el code that reads the TAGS tables as one
928of its back-ends.
929
930The command 'xref-find-definitions' replaces 'find-tag' and provides
931an interface to pick one definition among several.
932'tags-loop-continue' is now unbound. 'xref-pop-marker-stack' replaces
933'pop-tag-mark', but has a keybinding ('M-,') different from the one
934'pop-tag-mark' used.
935
936'xref-find-definitions-other-window' replaces 'find-tag-other-window'.
937'xref-find-definitions-other-frame' replaces 'find-tag-other-frame'.
938'xref-find-apropos' replaces 'find-tag-regexp'.
939
940As a result of this, the following commands are now obsolete:
941'find-tag-other-window', 'find-tag-other-frame', 'find-tag-regexp',
942'tags-apropos'.
943
944'tags-loop-continue' is not obsolete because it's still useful in
945'tags-search' and 'tags-query-replace', for which there are no direct
946replacements yet.
947
948*** Variants of 'tags-search' and 'tags-query-replace' in Dired were also
949replaced by xref-style commands, see the "Dired" section below.
950
951*** New variables
952
953'find-tag-marker-ring-length' is now an obsolete alias for
954'xref-marker-ring-length'. 'find-tag-marker-ring' is now an obsolete
955alias for a private variable. 'xref-push-marker-stack' and
956'xref-pop-marker-stack' should be used instead to manipulate the stack
957of searches for definitions.
958
959*** 'xref-find-definitions' and 'describe-function' now display
960information about mode local overrides (defined by cedet/mode-local.el
961'define-overloadable-function' 'define-mode-local-overrides').
962
963The framework's Lisp API is still experimental and can change in major,
964backward-incompatible ways.
965
966** New package Project
967
968The new package Project provides generic infrastructure for dealing
969with projects. The main commands included in it are
970'project-find-file' and 'project-find-regexp'.
971
972The Lisp API of this package is still experimental.
973
974** EUDC
975EUDC's LDAP backend has been improved.
976
977*** EUDC supports LDAP-over-SSL URLs (ldaps://).
978
979*** EUDC passes LDAP passwords through a pipe to the ldapsearch
980subprocess instead of on the command line.
981
982*** EUDC handles LDAP wildcards automatically so the user shouldn't
983need to configure this manually anymore.
984
985*** The LDAP configuration section of EUDC's manual has been
986rewritten.
987
988There have also been customization changes.
989
990*** New custom variable 'eudc-server-hotlist' to allow specifying
991multiple EUDC servers in init file.
992
993*** Custom variable 'eudc-inline-query-format' defaults to completing
994on email and firstname instead of surname.
995
996*** Custom variable 'eudc-expansion-overwrites-query' defaults to nil
997to avoid interfering with the kill ring.
998
999*** Custom variable 'eudc-inline-expansion-format' defaults to
1000"Firstname Surname <mail-address>".
1001
1002*** Custom variable 'eudc-options-file' defaults to
1003"~/.emacs.d/eudc-options".
1004
1005*** New custom variable 'ldap-ldapsearch-password-prompt-regexp' to
1006allow overriding the regular expression that recognizes the ldapsearch
1007command line's password prompt.
1008
1009*** EUDC's BBDB backend now supports BBDB 3.
1010
1011*** EUDC's PH backend (eudcb-ph.el) is obsolete.
1012
1013** Eshell
1014
1015*** The new built-in command 'clear' can scroll window contents out of sight.
1016If provided with an optional non-nil argument, the scrollback contents
1017will be cleared.
1018
1019*** New buffer syntax '#<buffer-name>', which is equivalent to
1020'#<buffer buffer-name>'. This shorthand makes interacting with
1021buffers from eshell more convenient. Custom variable
1022'eshell-buffer-shorthand', which has been broken for a while, has been
1023removed.
1024
1025*** By default, eshell "visual" program buffers (created by
1026'eshell-visual-commands' and similar custom vars) are no longer killed
1027when their processes die. This fixes issues with short-lived commands
1028and makes visual programs more useful in general. For example, if
1029"git log" is a visual command, it will always show the visual command
1030buffer, even if the "git log" process dies. For the old behavior,
1031make the new option 'eshell-destroy-buffer-when-process-dies' non-nil.
1032
1033** Browse-url
1034
1035*** Support for the Google Chrome web browser.
1036
1037*** Support for the Conkeror web browser.
1038
1039*** Support for several ancient browsers is now officially obsolete.
1040
1041** 'tar-mode': new 'tar-new-entry' command, allowing for new members to
1042be added to the archive.
1043
1044** Autorevert
1045
1046*** Dired buffers are also auto-reverted via file notifications, if
1047Emacs is compiled with file notification support.
1048
1049*** 'auto-revert-use-notify' is set to nil in 'global-auto-revert-mode'.
1050See <http://debbugs.gnu.org/22814>.
1051
1052** File Notifications
1053
1054*** The kqueue library is integrated for *BSD and Mac OS X machines.
1055
1056*** The new event 'stopped' signals, that a file notification watch is
1057not active any longer.
1058
1059*** The new function 'file-notify-valid-p' checks, whether a file
1060notification descriptor still corresponds to an activate watch.
1061
1062** Dired
1063
1064*** The command 'dired-do-compress', bound to 'Z', now can compress
1065directories and decompress zip files.
1066
1067*** New command 'dired-do-compress-to', bound to 'c', can be used to
1068compress many marked files into a single named archive. The
1069compression command is determined from the new
1070'dired-compress-files-alist' variable.
1071
1072*** New user interface for the 'A' and 'Q' commands.
1073These keys, now bound to 'dired-do-find-regexp' and
1074'dired-do-find-regexp-and-replace', work similarly to 'xref-find-apropos'
1075and 'xref-query-replace-in-results': they present the matches
1076in the '*xref*' buffer and let you move through the matches. No need
1077to use 'tags-loop-continue' to resume the search or replace loop. The
1078previous commands, 'dired-do-search' and
1079'dired-do-query-replace-regexp', are still available, but not bound to
1080keys; rebind 'A' and 'Q' to invoke them if you want the old behavior
1081back. We intend to obsolete the old commands in a future release.
1082
1083** Tabulated List Mode
1084
1085*** It is now safe for a mode that derives 'tabulated-list-mode' to not
1086call 'tabulated-list-init-header', in which case it will have no
1087header.
1088
1089*** 'tabulated-list-print' takes a second optional argument, UPDATE,
1090which specifies an alternative printing method which is faster when
1091few or no entries have changed.
1092
1093** Obsolete packages
1094
1095*** gulp.el
1096
1097*** landmark.el (moved to elpa.gnu.org)
1098
1099
1100* New Modes and Packages in Emacs 25.1
1101
1102** pinentry.el allows GnuPG passphrase to be prompted through the
1103minibuffer instead of a graphical dialog, depending on whether the gpg
1104command is called from Emacs (i.e., INSIDE_EMACS environment variable
1105is set). This feature requires newer versions of GnuPG (2.1.5 or
1106later) and Pinentry (0.9.5 or later). To use this feature, add
1107"allow-emacs-pinentry" to "~/.gnupg/gpg-agent.conf" and reload the
1108configuration with "gpgconf --reload gpg-agent".
1109
1110** cl-generic.el provides CLOS-style multiple-dispatch generic functions.
1111The main entry points are 'cl-defgeneric' and 'cl-defmethod'. See the
1112node "Generic Functions" in the Emacs Lisp manual for more details.
1113
1114** 'scss-mode' (a minor variant of 'css-mode') is a major mode for editing
1115SCSS (Sassy CSS) files.
1116
1117** 'let-alist' is a new macro (and a package) that allows one to easily
1118let-bind the values stored in an alist.
1119
1120** 'tildify-mode' allows automatic insertion of hard spaces as one
1121types the text. Breaking line after a single-character words is
1122forbidden by Czech and Polish typography (and may be discouraged in
1123other languages), so 'auto-tildify-mode' makes it easier to create
1124a typographically-correct documents.
1125
1126** The 'seq' library adds sequence manipulation functions and macros
1127that complement basic functions provided by subr.el. All functions
1128are prefixed with 'seq-' and work on lists, strings and vectors.
1129'pcase' accepts a new Upattern 'seq'.
1130
1131** The 'map' library provides map-manipulation functions that work on
1132alists, hash-table and arrays. All functions are prefixed with
1133'map-'. 'pcase' accepts a new UPattern 'map'.
1134
1135** The 'thunk' library provides functions and macros to control the
1136evaluation of forms.
1137
1138** 'js-jsx-mode' (a minor variant of 'js-mode') provides indentation
1139support for JSX, an XML-like syntax extension to ECMAScript.
1140
1141
1142* Incompatible Lisp Changes in Emacs 25.1
1143
1144** 'setq' and 'setf' must now be called with an even number of
1145arguments. The earlier behavior of silently supplying a nil to the
1146last variable when there was an odd number of arguments has been
1147eliminated.
1148
1149** 'syntax-begin-function' is declared obsolete.
1150Removed 'font-lock-beginning-of-syntax-function' and the SYNTAX-BEGIN
1151slot in 'font-lock-defaults'.
1152
1153** The new implementation of Subword mode affects word movement everywhere.
1154When Subword mode is turned on, 'forward-word', 'backward-word', and
1155everything that uses them will move by sub-words, effectively
1156overriding the buffer's syntax table. Lisp programs that shouldn't be
1157affected by Subword mode should call the new functions
1158'forward-word-strictly' and 'backward-word-strictly' instead.
1159
1160** 'package-initialize' now sets 'package-enable-at-startup' to nil if
1161called during startup. Users who call this function in their init
1162file and still expect it to be run after startup should set
1163'package-enable-at-startup' to t after the call to
1164'package-initialize'.
1165
1166** ':global' minor mode use 'setq-default' rather than 'setq'.
1167This means that you can't use 'make-local-variable' and expect them to
1168"magically" become buffer-local.
1169
1170** 'track-mouse' no longer freezes the shape of the mouse pointer.
1171The 'track-mouse' form no longer refrains from changing the shape of
1172the mouse pointer for the entire time the body of that form is
1173executed. Lisp programs that use 'track-mouse' for dragging across
1174large portions of the Emacs display, and want to avoid changes in the
1175pointer shape during dragging, should bind the variable 'track-mouse'
1176to the special value 'dragging' in the body of the form.
1177
1178** The optional PREDICATE argument of 'lisp-complete-symbol' no longer
1179has any effect. (This change was made in Emacs 24.4 but was not
1180advertised at the time.)
1181
1182** 'indirect-function' does not signal 'void-function' any more.
1183This is mostly a bug-fix, since this change was missed back in 24.4 when
1184'symbol-function' was changed not to signal 'void-function' any more.
1185
1186*** As a consequence, the second arg of 'indirect-function' is now obsolete.
1187
1188** 'M-x shell' and 'M-x compile' no longer set the EMACS environment variable.
1189This avoids clashing when other programs use the variable for other purposes.
1190Although 'M-x term' still sets EMACS for compatibility with Bash 4.3
1191and earlier, this is deprecated and will be phased out when Bash 4.4
1192or later takes over. Use the INSIDE_EMACS environment variable instead.
1193
1194** 'save-excursion' does not save&restore the mark any more.
1195Use 'save-mark-and-excursion' if you want the old behavior.
1196
1197** 'read-buffer' and 'read-buffer-function' can now be called with a 4th
1198argument (PREDICATE).
1199
1200** 'completion-table-dynamic' by default stays in the minibuffer.
1201The minibuffer will be the current buffer when the function is called.
1202If you want the old behavior of calling the function in the buffer
1203from which the minibuffer was entered, use the new argument
1204SWITCH-BUFFER to 'completion-table-dynamic'.
1205
1206** window-configurations no longer record the buffers' marks.
1207
1208** 'inhibit-modification-hooks' now also inhibits lock-file checks, as
1209well as active region handling.
1210
1211** 'deactivate-mark' is now buffer-local.
1212
1213** 'cl-the' now asserts that its argument is of the given type.
1214
1215** 'process-running-child-p' may now return a numeric process
1216group ID instead of t.
1217
1218** Mouse click events on mode line or header line no longer include
1219any reference to a buffer position. The 6th member of the mouse
1220position list returned for such events is now nil.
1221
1222** Menu items in keymaps do not support the "key shortcut cache" any more.
1223These slots used to hold key-shortcut data, but have been obsolete since
1224Emacs 21.
1225
1226** Emacs no longer downcases the first letter of a system diagnostic
1227when signaling a file error. For example, it now reports "Permission
1228denied" instead of "permission denied". The old behavior was problematic
1229in languages like German where downcasing rules depend on grammar.
1230
1231** New variable 'text-quoting-style' to control how Emacs translates quotes.
1232Set it to 'curve' for curved single quotes, to 'straight' for straight
1233apostrophes, and to 'grave' for grave accent and apostrophe. The
1234default value nil acts like 'curve' if curved single quotes are
1235displayable, and like 'grave' otherwise. The new variable affects
1236display of diagnostics and help, but not of info. As the variable is
1237not intended for casual use, it is not a user option.
1238
1239** Message-issuing functions like 'message' and 'error' now translate
1240various sorts of single quotes in their format strings according to
1241the value of 'text-quoting-style' (see above). This translation
1242cannot be disabled. To get the old behavior, use 'format', which is
1243not affected by 'text-quoting-style', e.g., (message "%s" (format
1244"...." foo bar)).
1245
1246** 'substitute-command-keys' now replaces quotes.
1247That is, it converts documentation strings' quoting style as per the
1248value of 'text-quoting-style'. Doc strings in source code can use
1249either curved single quotes or grave accents and apostrophes. As
1250before, characters preceded by \= are output as-is.
1251
1252** The character classes [:alpha:] and [:alnum:] in regular expressions
1253now match multibyte characters using Unicode character properties.
1254If you want the old behavior where they matched any character with
1255word syntax, use '\sw' instead.
1256
1257** The character classes [:graph:] and [:print:] in regular expressions
1258no longer match every multibyte character. Instead, Emacs now
1259consults the Unicode character properties to determine which
1260characters are graphic or printable. In particular, surrogates and
1261unassigned codepoints are now rejected. If you want the old behavior,
1262use [:multibyte:] instead.
1263
1264** The 'diff' command uses the unified format now. To restore the old
1265behavior, set 'diff-switches' to '-c'.
1266
1267** 'grep-template' and 'grep-find-template' values don't include the
1268--color argument anymore. It's added at the <C> place holder position
1269dynamically. Any third-party code that changes these templates should
1270be updated accordingly.
1271
1272** '(/ N)' is now equivalent to '(/ 1 N)' rather than to '(/ N 1)'.
1273The new behavior is compatible with Common Lisp and with XEmacs.
1274This change does not affect Lisp code intended to be portable to
1275Emacs 24.2 and earlier, which did not support unary '/'.
1276
1277** The 'default-directory' value doesn't have to end slash. To make
1278that happen, 'unhandled-file-name-directory' now defaults to calling
1279'file-name-as-directory'.
1280
1281** The URL package now insists on sending only unibyte strings to server
1282This means packages that use URL cannot bind 'url-request-data' to
1283multibyte strings. If non-ASCII characters should be part of the URL
1284payload, then 'url-request-data' should be encoded to become a unibyte
1285string.
1286
1287
1288* Lisp Changes in Emacs 25.1
1289
1290** 'pcase'
1291*** New UPatterns 'quote', 'app'.
1292*** New UPatterns can be defined with 'pcase-defmacro'.
1293*** New vector QPattern.
1294
1295** 'syntax-propertize' is now automatically called on-demand during forward
1296parsing functions like 'forward-sexp'.
1297
1298** New hooks 'prefix-command-echo-keystrokes-functions' and
1299'prefix-command-preserve-state-hook' allow the definition of prefix
1300commands other than the predefined 'C-u'.
1301
1302** New functions 'filepos-to-bufferpos' and 'bufferpos-to-filepos'.
1303These allow conversion between buffer positions and the corresponding
1304file byte offsets, given the file's encoding.
1305
1306** The default value of 'load-read-function' is now 'read'.
1307Previously, the default value of nil implied using 'read'.
1308
1309** New hook 'pre-redisplay-functions'.
1310It is a bit easier to use than 'pre-redisplay-function'.
1311
1312** The second arg of 'looking-back' should always be provided explicitly.
1313Previously, it was an optional argument, now it's mandatory.
1314
1315** Text properties 'intangible', 'point-entered', and 'point-left' are obsolete.
1316Replaced by properties 'cursor-intangible' and 'cursor-sensor-functions',
1317implemented by the new 'cursor-intangible-mode' and
1318'cursor-sensor-mode' minor modes.
1319
1320** 'inhibit-point-motion-hooks' now defaults to t and is obsolete.
1321Use the new minor modes 'cursor-intangible-mode' and
1322'cursor-sensor-mode' instead.
1323
1324** New process type 'pipe', which can be used in combination with the
1325':stderr' keyword of 'make-process' to handle standard error output
1326of subprocess.
1327
1328** New function 'make-process' provides an alternative interface to
1329'start-process'. It allows programs to set process parameters such as
1330process filter, sentinel, etc., through keyword arguments (similar to
1331'make-network-process').
1332
1333** Subprocesses are automatically told about changes in window dimensions.
1334The new option 'window-adjust-process-window-size-function' controls
1335how subprocesses are told to adapt their logical window sizes to
1336changes in the Emacs window configuration. Its default value calls
1337'set-process-window-size' with the smallest dimensions of all the
1338windows that display the subprocess's buffer.
1339
1340** A new function 'directory-files-recursively' returns all matching
1341files (recursively) under a directory.
1342
1343** New variable 'inhibit-message', when bound to non-nil, inhibits
1344'message' and related functions from displaying messages in the echo
1345area. The output is still logged to the '*Messages*' buffer.
1346
1347** A new text property 'inhibit-read-only' can be used in read-only
1348buffers to allow certain parts of the text to be writable.
1349
1350** A new variable 'comment-end-can-be-escaped' is useful in languages
1351such as C and C++ where line comments with escaped newlines are
1352continued to the next line.
1353
1354** New macro 'define-advice'.
1355
1356** Emacs Lisp now supports generators.
1357See the "Generators" section of the ELisp manual for the details.
1358
1359** New finalizer facility for running code when objects become unreachable.
1360See the "Finalizer Type" subsection in the ELisp manual for the
1361details.
1362
1363** Lexical closures can use '(:documentation FORM)' to build their docstring.
1364It should be placed right where the docstring would be, and FORM is then
1365evaluated (and should return a string) when the closure is built.
1366
1367** 'define-inline' provides a new way to define inlinable functions.
1368
1369** New function 'macroexpand-1' to perform a single step of macro expansion.
1370
1371** Some "x-*" functions were obsoleted and/or renamed:
1372*** 'x-select-text' is renamed 'gui-select-text'.
1373*** 'x-selection-value' is renamed 'gui-selection-value'.
1374*** 'x-get-selection' is renamed 'gui-get-selection'.
1375*** 'x-get-clipboard' and 'x-clipboard-yank' are marked obsolete.
1376*** 'x-get-selection-value' is renamed to 'gui-get-primary-selection'.
1377*** 'x-set-selection' is renamed to 'gui-set-selection'.
1378
1379** New function 'string-greaterp', which return the opposite result of
1380'string-lessp'.
1381
1382** The new functions 'string-collate-lessp' and 'string-collate-equalp'
1383preserve the collation order as defined by the system's locale(1)
1384environment. For the time being this is implemented for modern POSIX
1385systems and for MS-Windows, for other systems they fall back to their
1386counterparts 'string-lessp' and 'string-equal'.
1387
1388*** The ls-lisp package uses 'string-collate-lessp' to sort file names.
1389The effect is that, on systems that use ls-lisp for Dired, the default
1390sort order of the files in Dired is now different from what it was in
1391previous versions of Emacs. In particular, the file names are sorted
1392disregarding punctuation, accents, and diacritics, and letter case is
1393ignored. For example, files whose name begin with a period will no
1394longer appear near the beginning of the directory listing. If you
1395want the old, locale-independent sorting, customize the new option
1396'ls-lisp-use-string-collate' to the nil value.
1397
1398*** The MS-Windows specific variable 'w32-collate-ignore-punctuation',
1399if set to a non-nil value, causes the above 2 functions to ignore
1400symbol and punctuation characters when collating strings. This
1401emulates the behavior of modern Posix platforms when the locale's
1402codeset is "UTF-8" (as in "en_US.UTF-8"). This is needed because
1403MS-Windows doesn't support UTF-8 as codeset in its locales.
1404
1405** New function 'alist-get', which is a generalized variable
1406suitable for use with 'setf'.
1407
1408** New function 'funcall-interactively', which works like 'funcall'
1409but makes 'called-interactively-p' treat the function as (you guessed it)
1410called interactively.
1411
1412** New function 'function-put' to use instead of 'put' for function properties.
1413
1414** The new function 'bidi-find-overridden-directionality' allows you to
1415find characters whose directionality was, perhaps maliciously,
1416overridden by directional override control characters. Lisp programs
1417can use this to detect potential phishing of URLs and other links that
1418exploits bidirectional display reordering.
1419
1420** The new function 'buffer-substring-with-bidi-context' allows you to
1421copy a portion of a buffer into a different location while preserving
1422the visual appearance both of the copied text and the text at
1423destination, even when the copied text includes mixed bidirectional
1424text and directional control characters.
1425
1426** New properties that can be specified with 'declare':
1427*** '(interactive-only INSTEAD)', says to use INSTEAD for non-interactive use.
1428*** '(pure VAL)', if VAL is non-nil, indicates the function is pure.
1429*** '(side-effect-free VAL)', if VAL is non-nil, indicates the function does not
1430have side effects.
1431
1432** New macro 'with-file-modes', for evaluating expressions with default file
1433permissions set to temporary values (e.g., for creating private files).
1434
1435** You can access the slots of structures using 'cl-struct-slot-value'.
1436
1437** Function 'sort' can deal with vectors.
1438
1439** Function 'system-name' now returns an updated value if the current
1440system's name has changed or if the Emacs process has changed systems.
1441To avoid long waits it no longer consults DNS to canonicalize the name
1442(in some cases this may affect generated message-id headers - customize
1443'message-user-fqdn' if this bothers you). The variable 'system-name'
1444is now obsolete.
1445
1446** Function 'write-region' no longer outputs "Wrote FILE" in batch mode.
1447
1448** If 'pwd' is called with a prefix argument, insert the current default
1449directory at point.
1450
1451** New functions return extended information about fonts and faces.
1452
1453*** The function 'font-info' now returns more details about a font.
1454In particular, it now returns the average width of the font's
1455characters, which can be used for geometry-related calculations.
1456
1457*** A new function 'default-font-width' returns the average width of a
1458character in the current buffer's default font. If the default face
1459is remapped (see 'face-remapping-alist'), the value for the remapped
1460face is returned. This function complements the existing function
1461'default-font-height'.
1462
1463*** New functions 'window-font-height' and 'window-font-width' return
1464the height and average width of characters in a specified face and
1465window. If FACE is remapped (see 'face-remapping-alist'), the
1466function returns the information for the remapped face.
1467
1468*** A new function 'window-max-chars-per-line' returns the maximal
1469number of characters that can be displayed on one line. If a face
1470and/or window are provided, these values are used for the
1471calculation. This function is different from 'window-body-width' in
1472that it accounts for (i) continuation glyphs, (ii) the size of the
1473font, and (iii) the specified window.
1474
1475** New utilities in subr-x.el:
1476
1477*** New macros 'if-let' and 'when-let' allow defining bindings and to
1478execute code depending whether all values are true.
1479
1480*** New macros 'thread-first' and 'thread-last' allow threading a form
1481as the first or last argument of subsequent forms.
1482
1483** Documentation strings now support quoting with curved single quotes
1484in addition to the old style with grave accent and apostrophe. The
1485new style looks better on today's displays. In the new Electric Quote
1486mode, you can enter curved single quotes into documentation by typing
1487grave accent and apostrophe. Outside Electric Quote mode, you can
1488enter them by typing 'C-x 8 [' and 'C-x 8 ]', or (if your Alt key
1489works) by typing 'A-[' and 'A-]'. As described above under
1490'text-quoting-style', the user can specify how to display doc string
1491quotes.
1492
1493** New function 'format-message' is like 'format' and also converts
1494curved single quotes, grave accents and apostrophes as per
1495'text-quoting-style'.
1496
1497** 'show-help-function's arg is converted via 'substitute-command-keys'
1498before being passed to the function. Help strings, help-echo
1499properties, etc. can therefore contain command key escapes and
1500quotation marks.
1501
1502** Time-related changes:
1503
1504*** Time conversion functions now accept an optional ZONE argument
1505that specifies the time zone rules for conversion. ZONE is omitted or
1506nil for Emacs local time, t for Universal Time, 'wall' for system wall
1507clock time, or a string as in the TZ environment variable. The
1508affected functions are 'current-time-string', 'current-time-zone',
1509'decode-time', and 'format-time-string'. The function 'encode-time',
1510which already accepted a simple time zone rule argument, has been
1511extended to accept all the new forms.
1512
1513*** Incompatible change in the third argument of 'format-time-string'.
1514Previously, any non-nil argument was interpreted as specifying Universal Time.
1515This is no longer true; packages that want Universal Time should pass t
1516as the third argument.
1517
1518*** Time-related functions now consistently accept numbers
1519(representing seconds since the epoch) and nil (representing the
1520current time) as well as the usual list-of-integer representation.
1521Affected functions include 'current-time-string', 'current-time-zone',
1522'decode-time', 'float-time', 'format-time-string', 'seconds-to-time',
1523'time-add', 'time-less-p', 'time-subtract', 'time-to-day-in-year',
1524'time-to-days', and 'time-to-seconds'.
1525
1526*** The 'encode-time-value' and 'with-decoded-time-value' macros have
1527been obsoleted.
1528
1529*** 'calendar-next-time-zone-transition', 'time-add', and
1530'time-subtract' no longer return time values in the obsolete and
1531undocumented integer-pair format. Instead, they return a list of two
1532integers.
1533
1534** New function 'set-binary-mode' allows switching a standard stream
1535of the Emacs process to binary I/O mode.
1536
1537** The new function 'directory-name-p' can be used to check whether a file
1538name (as returned from, for instance, 'file-name-all-completions') is
1539a directory file name. It returns non-nil if the last character in
1540the name is a directory separator character (forward slash on GNU and
1541Unix systems, forward- or backslash on MS-Windows and MS-DOS).
1542
1543** ASCII approximations to curved quotes are put in 'standard-display-table'
1544if the terminal cannot display curved quotes.
1545
1546** Standard output and error streams now transliterate characters via
1547'standard-display-table', and encode output using 'locale-coding-system'.
1548To force a specific encoding, bind 'coding-system-for-write' to the
1549coding-system of your choice when invoking functions like 'prin1' and
1550'message'.
1551
1552** New var 'truncate-string-ellipsis' to choose how to indicate truncation.
1553
1554** New possible value for 'system-type': 'nacl'.
1555This is used by Google's Native Client (NaCl).
1556
1557** Miscellaneous name change
1558
1559For consistency with the usual Emacs spelling, the Lisp variable
1560'hfy-optimisations' has been renamed to 'hfy-optimizations'.
1561The old name should still work, as an obsolescent alias.
1562
1563** Changes in Frame- and Window- Handling
1564
1565*** Emacs can now draw horizontal scroll bars on some platforms that
1566provide toolkit scroll bars, namely Gtk+, Lucid, Motif and Windows.
1567Horizontal scroll bars are turned off by default.
1568
1569**** New function 'horizontal-scroll-bars-available-p' telling whether
1570horizontal scroll bars are available on the underlying system.
1571
1572**** New mode 'horizontal-scroll-bar-mode' to toggle horizontal scroll
1573bars on all existing and future frames.
1574
1575**** New function 'toggle-horizontal-scroll-bar' to toggle horizontal
1576scroll bars on the selected frame.
1577
1578**** New frame parameters 'horizontal-scroll-bars' and
1579'scroll-bar-height' to set horizontal scroll bars and their height
1580for individual frames and in 'default-frame-alist'.
1581
1582***** The 'horizontal-scroll-bars' parameter was already present and non-nil
1583by default in Emacs 24 and before (although it didn't have any
1584effect). This could cause a problem if you share your desktop files
1585with older versions of Emacs: saving desktop in Emacs before v25.1,
1586then restoring it in v25.1 would turn on horizontal scroll bars in all
1587buffers. To resolve this issue, put this in your ~/.emacs init file:
1588
1589 (modify-all-frames-parameters '((horizontal-scroll-bars . nil)))
1590
1591**** New functions 'frame-scroll-bar-height' and
1592'window-scroll-bar-height' return the height of horizontal scroll
1593bars on a specific frame or window.
1594
1595**** 'set-window-scroll-bars' now accepts five parameters where the last
1596two specify height and type of the window's horizontal scroll bar.
1597
1598**** 'window-scroll-bars' now returns type and sizes of horizontal scroll
1599bars too.
1600
1601**** New buffer-local variables 'horizontal-scroll-bar' and
1602'scroll-bar-height'.
1603
1604*** New functions 'frame-geometry' and 'frame-edges' give access to a
1605frame's geometry.
1606
1607*** New functions 'mouse-absolute-pixel-position' and
1608'set-mouse-absolute-pixel-position' get/set screen coordinates of the
1609mouse cursor.
1610
1611*** The function 'window-edges' now accepts three additional arguments to
1612retrieve body, absolute and pixel edges of the window.
1613
1614*** The functions 'window-inside-edges', 'window-inside-pixel-edges' and
1615'window-inside-absolute-pixel-edges' have been renamed to respectively
1616'window-body-edges', 'window-body-pixel-edges' and
1617'window-absolute-body-pixel-edges'. The old names are kept as aliases.
1618
1619*** New function 'window-absolute-pixel-position' to get the screen
1620coordinates of a visible buffer position.
1621
1622*** The height of a frame's menu and tool bar are no longer counted in the
1623frame's text height. This means that the text height stands only for
1624the height of the frame's root window plus that of the echo area (if
1625present). This was already the behavior for frames with external tool
1626and menu bars (like in the Gtk builds) but has now been extended to all
1627builds.
1628
1629*** Frames now do not necessarily preserve the number of columns or lines
1630they display when setting default font, menu bar, fringe width, or
1631scroll bars. In particular, maximized and fullscreen frames are
1632conceptually never resized if such settings change. For fullheight and
1633fullwidth frames, the behavior may depend on the toolkit used.
1634
1635**** New option 'frame-inhibit-implied-resize' if non-nil, means that
1636setting default font, menu bar, fringe width, or scroll bars of a
1637specific frame does not resize that frame in order to preserve the
1638number of columns or lines it displays.
1639
1640*** New function 'window-preserve-size' allows you to preserve the size of
1641a window without "fixing" it. It's supported by 'fit-window-to-buffer',
1642'temp-buffer-resize-mode' and 'display-buffer'.
1643
1644*** New 'display-buffer' action function 'display-buffer-use-some-frame'.
1645This displays the buffer in an existing frame other than the current
1646frame, and allows the caller to specify a frame predicate to exclude
1647frames.
1648
1649*** New minor mode 'window-divider-mode' and options
1650'window-divider-default-places', 'window-divider-default-bottom-width'
1651and 'window-divider-default-right-width'.
1652
1653*** When a window is shrunk horizontally its margins are no longer removed
1654automatically. Rather, Emacs refuses to split or resize windows when
1655this would cause margins to no longer fit into the width reserved for the
1656corresponding window. An application can override this behavior for a
1657particular window by setting that window's 'min-margins' parameter. As
1658a consequence, the application becomes fully responsible for trimming
1659the margin sizes of that window and any window inheriting these margins.
1660
1661*** The window displaying the '*Completions*' buffer with minibuffer
1662completion candidates is now shown at the bottom of the selected
1663frame. The size of that window is always as large as required to
1664display all the candidates, except when limited by the minimum size
1665of the other windows on that frame; those other windows are resized
1666to provide space for the '*Completions*' display. The Emacs manual
1667describes how to customize 'display-buffer-alist' to get back the old
1668behavior, see the node "Temporary Displays" there.
1669
1670** Tearoff menus and detachable toolbars for Gtk+ have been removed.
1671Those features have been deprecated in Gtk+ for a long time.
1672
1673** Etags
1674
1675*** etags no longer qualifies class members by default.
1676
1677By default, 'etags' will not qualify class members for Perl and C-like
1678object-oriented languages with their class names and namespaces, and
1679will remove qualifications used explicitly in the code from the tag
1680names it puts in TAGS files. This is so the etags.el back-end for
1681'xref-find-definitions' is more accurate and produces less false
1682positives.
1683
1684Use --class-qualify (-Q) if you want the old default behavior of
1685qualifying class members in C++, Java, Objective C, and Perl. Note
1686that using -Q might make some class members become "unknown" to 'M-.'
1687('xref-find-definitions'); if so, you can use 'C-u M-.' to specify the
1688qualified names by hand.
1689
1690*** New language Ruby
1691
1692Names of modules, classes, methods, functions, and constants are
1693tagged. Overloaded operators are also tagged.
1694
1695*** New language Go
1696Names of packages, functions, and types are tagged.
1697
1698*** Improved support for Lua
1699
1700Etags now tags functions even if the "function" keyword follows some
1701whitespace at line beginning.
1702
1703
1704* Changes in Emacs 25.1 on Non-Free Operating Systems
1705
1706** MS-Windows specific Emacs build scripts are no longer in the distribution.
1707This includes the makefile.w32-in files in various subdirectories, and
1708the support files. The file nt/configure.bat now just tells the user
1709to use the procedure described in nt/INSTALL, by running the Posix
1710'configure' script in the top-level directory.
1711
1712** Building Emacs for MS-Windows requires at least Windows XP
1713or Windows Server 2003. The built binaries still run on all versions
1714of Windows starting with Windows 9X.
1715
1716** Emacs running on MS-Windows now supports the daemon mode.
1717
1718** The byte counts in etags-generated TAGS files are now the same on
1719MS-Windows as they are on other platforms.
1720
1721** On OS X, configure creates a Cocoa ("Nextstep") build by default.
1722Pass '--without-ns' to configure to create an X11 build, the old default.
1723
1724** OS X 10.5 or older is no longer supported.
1725
1726** OS X on PowerPC is no longer supported.
1727
1728** New variable 'ns-use-fullscreen-animation' controls animation for
1729non-native NS fullscreen. The default is nil. Set to t to enable
1730animation when entering and leaving fullscreen. For native OSX fullscreen
1731this has no effect.
1732
1733** On the OS X Cocoa ("Nextstep") port, multicolor font (such as color
1734emoji) display is disabled. This feature was accidentally added when
1735Emacs 24.4 included the new Core Text based font backend code that was
1736originally implemented for a non-mainline port. This will be enabled
1737again once it is also implemented in Emacs on free operating systems.
1738If some symbols, such as emoji, do not display, we suggest to install
1739an appropriate font, such as Symbola; then they will be displayed,
1740albeit without the color effects.
1741
1742** The new function 'w32-application-type' returns the type of an
1743MS-Windows application given the name of its executable program file.
1744
1745** New variable 'w32-pipe-buffer-size'.
1746It can be used to tune the size of the buffer of pipes created for
1747communicating with subprocesses, when the program run by a subprocess
1748exhibits unusual buffering behavior. Default is zero, which lets the
1749OS use its default size.
1750
1751
1752----------------------------------------------------------------------
1753This file is part of GNU Emacs.
1754
1755GNU Emacs is free software: you can redistribute it and/or modify
1756it under the terms of the GNU General Public License as published by
1757the Free Software Foundation, either version 3 of the License, or
1758(at your option) any later version.
1759
1760GNU Emacs is distributed in the hope that it will be useful,
1761but WITHOUT ANY WARRANTY; without even the implied warranty of
1762MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1763GNU General Public License for more details.
1764
1765You should have received a copy of the GNU General Public License
1766along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
1767
1768
1769Local variables:
1770coding: us-ascii
1771mode: outline
1772paragraph-separate: "[ ]*$"
1773end:
diff --git a/etc/refcards/ru-refcard.tex b/etc/refcards/ru-refcard.tex
index 273a79cdc73..03af6576bfe 100644
--- a/etc/refcards/ru-refcard.tex
+++ b/etc/refcards/ru-refcard.tex
@@ -21,7 +21,7 @@
21\newlength{\ColThreeWidth} 21\newlength{\ColThreeWidth}
22\setlength{\ColThreeWidth}{25mm} 22\setlength{\ColThreeWidth}{25mm}
23 23
24\newcommand{\versionemacs}[0]{25} % version of Emacs this is for 24\newcommand{\versionemacs}[0]{26} % version of Emacs this is for
25\newcommand{\cyear}[0]{2016} % copyright year 25\newcommand{\cyear}[0]{2016} % copyright year
26 26
27\newcommand\shortcopyrightnotice[0]{\vskip 1ex plus 2 fill 27\newcommand\shortcopyrightnotice[0]{\vskip 1ex plus 2 fill
diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp
index 2c1855aa8b0..6da13b5f4a8 100644
--- a/msdos/sed2v2.inp
+++ b/msdos/sed2v2.inp
@@ -66,7 +66,7 @@
66/^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/ 66/^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/
67/^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION VERSION/ 67/^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION VERSION/
68/^#undef PENDING_OUTPUT_COUNT/s/^.*$/#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)/ 68/^#undef PENDING_OUTPUT_COUNT/s/^.*$/#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)/
69/^#undef VERSION/s/^.*$/#define VERSION "25.2.50"/ 69/^#undef VERSION/s/^.*$/#define VERSION "26.0.50"/
70/^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/ 70/^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/
71/^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/ 71/^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/
72/^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/ 72/^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/
diff --git a/src/msdos.c b/src/msdos.c
index 73d755ae646..74109ae1bbd 100644
--- a/src/msdos.c
+++ b/src/msdos.c
@@ -1791,7 +1791,7 @@ internal_terminal_init (void)
1791 } 1791 }
1792 1792
1793 Vinitial_window_system = Qpc; 1793 Vinitial_window_system = Qpc;
1794 Vwindow_system_version = make_number (25); /* RE Emacs version */ 1794 Vwindow_system_version = make_number (26); /* RE Emacs version */
1795 tty->terminal->type = output_msdos_raw; 1795 tty->terminal->type = output_msdos_raw;
1796 1796
1797 /* If Emacs was dumped on DOS/V machine, forget the stale VRAM 1797 /* If Emacs was dumped on DOS/V machine, forget the stale VRAM