aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2016-08-05 14:10:30 -0700
committerPaul Eggert2016-08-05 14:10:30 -0700
commitc1b5000d8c484d7acd39414119838c78eaaf9cca (patch)
treee179d9a26228aea7f586365f52eb9ec81bdcd856
parentfe3225830d0817d3d7eee1dfb92e0deec641c9c5 (diff)
parentd841a03c5ee3e9a59a133474601f9bda190ee8fa (diff)
downloademacs-c1b5000d8c484d7acd39414119838c78eaaf9cca.tar.gz
emacs-c1b5000d8c484d7acd39414119838c78eaaf9cca.zip
Merge from origin/emacs-25
d841a03 ; Spelling fix a6ae479 Post AppDefined events from the main thread ONLY (bug#23934) d35d398 Update to the AUTHORS file for Bob Weiner 4d2f4df Revert "Fix local printer set to left aligned string formatter." cd1b4d6 Revert "Fix ses-delete-blanks to delete only blanks + documen... f7ceb8e Revert "Fix English." baa7abd Improve doc strings of 'gud-gdb' and 'gdb' aa4271a Fix doc string of 'minibuffer-message-timeout' b275cc7 Fix English. 3c97b0f Fix ses-delete-blanks to delete only blanks + documentation. 272391f profiler: document prefix arg for tree expansion 442cc39 Clarify usage of eshell-visual-options b443c3c Fix comment in files-in-below-directory 8a38e94 Fix local printer set to left aligned string formatter. 0f0b191 ; Fix typos in NEWS 6bdf687 ; * etc/NEWS: Remove temporary marks
-rw-r--r--doc/lispintro/emacs-lisp-intro.texi2
-rw-r--r--doc/lispref/debugging.texi5
-rw-r--r--etc/AUTHORS2
-rw-r--r--etc/NEWS357
-rw-r--r--lisp/eshell/em-term.el5
-rw-r--r--lisp/profiler.el3
-rw-r--r--lisp/progmodes/gdb-mi.el20
-rw-r--r--lisp/progmodes/gud.el12
-rw-r--r--src/data.c4
-rw-r--r--src/keyboard.c3
-rw-r--r--src/nsterm.h2
-rw-r--r--src/nsterm.m5
12 files changed, 39 insertions, 381 deletions
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi
index 10162b35467..86c8da0e461 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -15465,7 +15465,7 @@ Here is the function:
15465@group 15465@group
15466 (cond 15466 (cond
15467 ;; check to see whether filename ends in '.el' 15467 ;; check to see whether filename ends in '.el'
15468 ;; and if so, append its name to a list. 15468 ;; and if so, add its name to a list.
15469 ((equal ".el" (substring (car (car current-directory-list)) -3)) 15469 ((equal ".el" (substring (car (car current-directory-list)) -3))
15470 (setq el-files-list 15470 (setq el-files-list
15471 (cons (car (car current-directory-list)) el-files-list))) 15471 (cons (car (car current-directory-list)) el-files-list)))
diff --git a/doc/lispref/debugging.texi b/doc/lispref/debugging.texi
index 98c47052cb0..2f83b4040fa 100644
--- a/doc/lispref/debugging.texi
+++ b/doc/lispref/debugging.texi
@@ -840,8 +840,9 @@ called, followed by how much resource (processor or memory) it used in
840absolute and percentage times since profiling started. If a given 840absolute and percentage times since profiling started. If a given
841line has a @samp{+} symbol at the left-hand side, you can expand that 841line has a @samp{+} symbol at the left-hand side, you can expand that
842line by typing @key{RET}, in order to see the function(s) called by 842line by typing @key{RET}, in order to see the function(s) called by
843the higher-level function. Pressing @key{RET} again will collapse 843the higher-level function. Use a prefix argument (@key{C-u RET}) to
844back to the original state. 844see the whole call tree below a function. Pressing @key{RET} again
845will collapse back to the original state.
845 846
846Press @kbd{j} or @kbd{mouse-2} to jump to the definition of a function. 847Press @kbd{j} or @kbd{mouse-2} to jump to the definition of a function.
847Press @kbd{d} to view a function's documentation. 848Press @kbd{d} to view a function's documentation.
diff --git a/etc/AUTHORS b/etc/AUTHORS
index 36b26046ec6..8272009639c 100644
--- a/etc/AUTHORS
+++ b/etc/AUTHORS
@@ -486,7 +486,7 @@ Bob Rogers: changed vc-dir.el vc-svn.el cperl-mode.el diff.el ewoc.el
486 ffap.el files.el maintaining.texi sql.el thingatpt.el vc.el 486 ffap.el files.el maintaining.texi sql.el thingatpt.el vc.el
487 vc1-xtra.texi 487 vc1-xtra.texi
488 488
489Bob Weiner: changed info.el quail.el 489Bob Weiner: changed dframe.el etags.c info.el rmail.el rmailsum.el speedbar.el
490 490
491Bojan Petrovic: changed pop3.el 491Bojan Petrovic: changed pop3.el
492 492
diff --git a/etc/NEWS b/etc/NEWS
index 44f37b8d98f..04c293dfc7c 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -15,13 +15,6 @@ and NEWS.1-17 for changes in older Emacs versions.
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.
17 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 18
26* Installation Changes in Emacs 25.2 19* Installation Changes in Emacs 25.2
27 20
@@ -591,13 +584,10 @@ file names into backslashes. It no longer does that.
591 584
592* Installation Changes in Emacs 25.1 585* Installation Changes in Emacs 25.1
593 586
594+++
595** Building Emacs now requires C99 or later. 587** Building Emacs now requires C99 or later.
596 588
597+++
598** Building Emacs now requires GNU make, version 3.81 or later. 589** Building Emacs now requires GNU make, version 3.81 or later.
599 590
600+++
601** New configure option --with-cairo. 591** New configure option --with-cairo.
602This builds Emacs with Cairo drawing. As a side effect, it provides 592This builds Emacs with Cairo drawing. As a side effect, it provides
603support for built-in printing, when Emacs was built with GTK+. 593support for built-in printing, when Emacs was built with GTK+.
@@ -606,11 +596,9 @@ display problems. We encourage more testing of this build and
606reporting any problems you find, but it is not recommended for 596reporting any problems you find, but it is not recommended for
607production. 597production.
608 598
609+++
610** New configure option --with-modules. 599** New configure option --with-modules.
611This enables support for loading dynamic modules; see below. 600This enables support for loading dynamic modules; see below.
612 601
613---
614** By default, Emacs no longer works on IRIX. We expect that Emacs 602** By default, Emacs no longer works on IRIX. We expect that Emacs
615users are not affected by this, as SGI stopped supporting IRIX in 603users are not affected by this, as SGI stopped supporting IRIX in
616December 2013. If you are affected, please send a bug report. You 604December 2013. If you are affected, please send a bug report. You
@@ -618,60 +606,49 @@ should be able to work around the problem either by porting the Emacs
618undumping code to GCC under IRIX, or by configuring --with-wide-int, 606undumping code to GCC under IRIX, or by configuring --with-wide-int,
619or by sticking with Emacs 24.4. 607or by sticking with Emacs 24.4.
620 608
621---
622** The Emacs garbage collector assumes GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS. 609** The Emacs garbage collector assumes GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS.
623The GC_MAKE_GCPROS_NOOPS stack-marking variant has been the default 610The GC_MAKE_GCPROS_NOOPS stack-marking variant has been the default
624since Emacs 24.4, and the other variants were undocumented and were 611since Emacs 24.4, and the other variants were undocumented and were
625obstacles to maintenance and development. GC_MARK_STACK and its 612obstacles to maintenance and development. GC_MARK_STACK and its
626related symbols have been removed from the C internals. 613related symbols have been removed from the C internals.
627 614
628---
629** 'configure' now prefers gnustep-config when configuring GNUstep. 615** 'configure' now prefers gnustep-config when configuring GNUstep.
630If gnustep-config is not available, the old heuristics are used. 616If gnustep-config is not available, the old heuristics are used.
631 617
632---
633** 'configure' now prefers inotify to gfile for file notification, 618** 'configure' now prefers inotify to gfile for file notification,
634unless gfile is explicitly requested via --with-file-notification='gfile'. 619unless gfile is explicitly requested via --with-file-notification='gfile'.
635 620
636---
637** 'configure' detects the kqueue file notification library on *BSD 621** 'configure' detects the kqueue file notification library on *BSD
638and Mac OS X machines. 622and Mac OS X machines.
639 623
640---
641** The configure option '--with-pkg-config-prog' has been removed. 624** The configure option '--with-pkg-config-prog' has been removed.
642Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to. 625Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to.
643 626
644---
645** The configure option '--with-mmdf' has been removed. 627** The configure option '--with-mmdf' has been removed.
646It was no longer useful, as it relied on libraries that are no longer 628It was no longer useful, as it relied on libraries that are no longer
647supported, and its presence led to confusion during configuration. 629supported, and its presence led to confusion during configuration.
648This affects only the 'movemail' utility; Emacs itself can still 630This affects only the 'movemail' utility; Emacs itself can still
649process MMDF-format files as before. 631process MMDF-format files as before.
650 632
651+++
652** The configure option '--enable-silent-rules' is now the default, 633** The configure option '--enable-silent-rules' is now the default,
653and silent rules are now quieter. To get the old behavior where 634and silent rules are now quieter. To get the old behavior where
654'make' chatters a lot, configure with '--disable-silent-rules' or 635'make' chatters a lot, configure with '--disable-silent-rules' or
655build with 'make V=1'. 636build with 'make V=1'.
656 637
657---
658** The configure option '--with-gameuser' now allows you to specify a 638** The configure option '--with-gameuser' now allows you to specify a
659group instead of a user if its argument is prefixed by ':' (a colon). 639group instead of a user if its argument is prefixed by ':' (a colon).
660This will cause the game score files in "${localstatedir}/games/emacs" 640This will cause the game score files in "${localstatedir}/games/emacs"
661to be owned by that group, and the helper program for updating them to 641to be owned by that group, and the helper program for updating them to
662be installed setgid. The option now defaults to the 'games' group. 642be installed setgid. The option now defaults to the 'games' group.
663 643
664---
665** The 'grep-changelog' script (and its manual page) are no longer included. 644** The 'grep-changelog' script (and its manual page) are no longer included.
666It has no particular connection to Emacs and has not changed in years, 645It has no particular connection to Emacs and has not changed in years,
667so if you want to use it, you can always take a copy from an older Emacs. 646so if you want to use it, you can always take a copy from an older Emacs.
668 647
669---
670** Emacs 25 comes with a new set of icons. 648** Emacs 25 comes with a new set of icons.
671Various resolutions are available as etc/images/icons/hicolor/*/apps/emacs.png. 649Various resolutions are available as etc/images/icons/hicolor/*/apps/emacs.png.
672The old Emacs logo icons are available as 'emacs23.png' in the same location. 650The old Emacs logo icons are available as 'emacs23.png' in the same location.
673 651
674---
675** New make target 'check-expensive' to run additional tests. 652** New make target 'check-expensive' to run additional tests.
676This includes all tests which run via "make check", plus additional 653This includes all tests which run via "make check", plus additional
677tests which take more time to perform. 654tests which take more time to perform.
@@ -679,7 +656,6 @@ tests which take more time to perform.
679 656
680* Startup Changes in Emacs 25.1 657* Startup Changes in Emacs 25.1
681 658
682+++
683** When Emacs is given a file as a command line argument and 659** When Emacs is given a file as a command line argument and
684'initial-buffer-choice' is non-nil, display both the file and 660'initial-buffer-choice' is non-nil, display both the file and
685'initial-buffer-choice'. When Emacs is given more than one file and 661'initial-buffer-choice'. When Emacs is given more than one file and
@@ -687,11 +663,9 @@ tests which take more time to perform.
687and '*Buffer List*'. This makes Emacs convenient to use from the 663and '*Buffer List*'. This makes Emacs convenient to use from the
688command line when 'initial-buffer-choice' is non-nil. 664command line when 'initial-buffer-choice' is non-nil.
689 665
690+++
691** The value of 'initial-scratch-message' is now treated as a doc string 666** The value of 'initial-scratch-message' is now treated as a doc string
692and can contain escape sequences for command keys, quotes, and the like. 667and can contain escape sequences for command keys, quotes, and the like.
693 668
694---
695** The default height of GUI frames was enlarged. 669** The default height of GUI frames was enlarged.
696This is so there's enough space in the initial window to display the 670This is so there's enough space in the initial window to display the
697optional text about recovering crashes sessions, without losing the 671optional text about recovering crashes sessions, without losing the
@@ -700,7 +674,6 @@ splash image display.
700 674
701* Changes in Emacs 25.1 675* Changes in Emacs 25.1
702 676
703+++
704** Xwidgets: a new feature for embedding native widgets inside Emacs buffers. 677** Xwidgets: a new feature for embedding native widgets inside Emacs buffers.
705If you have gtk3 and webkitgtk3 installed, and Emacs was built with 678If you have gtk3 and webkitgtk3 installed, and Emacs was built with
706xwidget support, you can access the embedded webkit browser with 'M-x 679xwidget support, you can access the embedded webkit browser with 'M-x
@@ -708,7 +681,6 @@ xwidget-webkit-browse-url'. This opens a new buffer with the embedded
708browser. The buffer will have a new mode, 'xwidget-webkit-mode' 681browser. The buffer will have a new mode, 'xwidget-webkit-mode'
709(similar to 'image-mode'), which supports the webkit widget. 682(similar to 'image-mode'), which supports the webkit widget.
710 683
711+++
712*** New functions for xwidget-webkit mode 'xwidget-webkit-insert-string', 684*** New functions for xwidget-webkit mode 'xwidget-webkit-insert-string',
713'xwidget-webkit-adjust-size-dispatch', 'xwidget-webkit-back', 685'xwidget-webkit-adjust-size-dispatch', 'xwidget-webkit-back',
714'xwidget-webkit-browse-url', 'xwidget-webkit-reload', 686'xwidget-webkit-browse-url', 'xwidget-webkit-reload',
@@ -716,7 +688,6 @@ browser. The buffer will have a new mode, 'xwidget-webkit-mode'
716'xwidget-webkit-scroll-forward', 'xwidget-webkit-scroll-down', 688'xwidget-webkit-scroll-forward', 'xwidget-webkit-scroll-down',
717'xwidget-webkit-scroll-up'. 689'xwidget-webkit-scroll-up'.
718 690
719+++
720** Emacs can now load shared/dynamic libraries (modules). 691** Emacs can now load shared/dynamic libraries (modules).
721A dynamic Emacs module is a shared library that provides additional 692A dynamic Emacs module is a shared library that provides additional
722functionality for use in Emacs Lisp programs, just like a package 693functionality for use in Emacs Lisp programs, just like a package
@@ -754,15 +725,12 @@ change in future releases. For that reason, their support is disabled
754by default, and must be enabled by using the '--with-modules' option 725by default, and must be enabled by using the '--with-modules' option
755at configure time. 726at configure time.
756 727
757+++
758** Network security (TLS/SSL certificate validity and the like) is 728** Network security (TLS/SSL certificate validity and the like) is
759added via the new Network Security Manager (NSM) and controlled via 729added via the new Network Security Manager (NSM) and controlled via
760the 'network-security-level' variable. 730the 'network-security-level' variable.
761 731
762+++
763** 'C-h l' now also lists the commands that were run. 732** 'C-h l' now also lists the commands that were run.
764 733
765+++
766** 'x-select-enable-clipboard' is renamed 'select-enable-clipboard' 734** 'x-select-enable-clipboard' is renamed 'select-enable-clipboard'
767and 'x-select-enable-primary' is renamed 'select-enable-primary'. 735and 'x-select-enable-primary' is renamed 'select-enable-primary'.
768Additionally they both now apply to all systems (OSX, GNUstep, Windows, you 736Additionally they both now apply to all systems (OSX, GNUstep, Windows, you
@@ -770,38 +738,30 @@ name it), with the proviso that on some systems (e.g. Windows)
770'select-enable-primary' is ineffective since the system doesn't 738'select-enable-primary' is ineffective since the system doesn't
771have the equivalent of a primary selection. 739have the equivalent of a primary selection.
772 740
773+++
774** New option 'switch-to-buffer-in-dedicated-window' allows you to 741** New option 'switch-to-buffer-in-dedicated-window' allows you to
775customize how 'switch-to-buffer' proceeds interactively when the 742customize how 'switch-to-buffer' proceeds interactively when the
776selected window is strongly dedicated to its buffer. 743selected window is strongly dedicated to its buffer.
777 744
778+++
779** The option 'even-window-heights' has been renamed to 745** The option 'even-window-heights' has been renamed to
780'even-window-sizes' and now handles window widths as well. 746'even-window-sizes' and now handles window widths as well.
781 747
782+++
783** 'terpri' gets an optional arg ENSURE to conditionally output a newline. 748** 'terpri' gets an optional arg ENSURE to conditionally output a newline.
784 749
785+++
786** 'insert-register' now leaves point after the inserted text 750** 'insert-register' now leaves point after the inserted text
787when called interactively. A prefix argument toggles this behavior. 751when called interactively. A prefix argument toggles this behavior.
788 752
789+++
790** The new variable 'term-file-aliases' replaces some files from lisp/term. 753** The new variable 'term-file-aliases' replaces some files from lisp/term.
791The function 'tty-run-terminal-initialization' consults this variable 754The function 'tty-run-terminal-initialization' consults this variable
792when deciding what terminal-specific initialization code to run. 755when deciding what terminal-specific initialization code to run.
793 756
794---
795** New variable 'system-configuration-features', listing some of the 757** New variable 'system-configuration-features', listing some of the
796main features that Emacs was compiled with. This is mainly intended 758main features that Emacs was compiled with. This is mainly intended
797for use in Emacs bug reports. 759for use in Emacs bug reports.
798 760
799+++
800** A password is now hidden also when typed in batch mode. Another 761** A password is now hidden also when typed in batch mode. Another
801hiding character but the default '.' can be used by let-binding the 762hiding character but the default '.' can be used by let-binding the
802variable 'read-hide-char'. 763variable 'read-hide-char'.
803 764
804+++
805** The Emacs pseudo-random number generator can be securely seeded. 765** The Emacs pseudo-random number generator can be securely seeded.
806On systems where Emacs can access the system entropy or some other 766On systems where Emacs can access the system entropy or some other
807cryptographically secure random stream, it now uses that when 'random' 767cryptographically secure random stream, it now uses that when 'random'
@@ -809,51 +769,41 @@ is called with its argument t. This allows cryptographically strong
809random values; in particular, the Emacs server now uses this facility 769random values; in particular, the Emacs server now uses this facility
810to produce its authentication key. 770to produce its authentication key.
811 771
812---
813** New input methods: 'tamil-dvorak', 'programmer-dvorak' and 'probhat'. 772** New input methods: 'tamil-dvorak', 'programmer-dvorak' and 'probhat'.
814 773
815 774
816* Editing Changes in Emacs 25.1 775* Editing Changes in Emacs 25.1
817 776
818+++
819** 'M-x' suggests shorthands and ignores obsolete commands for completion. 777** 'M-x' suggests shorthands and ignores obsolete commands for completion.
820 778
821** Changes in undo 779** Changes in undo
822 780
823+++
824*** Successive single-char deletions are collapsed in the undo-log just like 781*** Successive single-char deletions are collapsed in the undo-log just like
825successive char insertions. Which commands invoke this behavior is 782successive char insertions. Which commands invoke this behavior is
826controlled by the new 'undo-auto-amalgamate' function. See the node 783controlled by the new 'undo-auto-amalgamate' function. See the node
827"Undo" in the ELisp manual for more details. 784"Undo" in the ELisp manual for more details.
828 785
829+++
830*** The heuristic used to insert 'undo-boundary' after each command 786*** The heuristic used to insert 'undo-boundary' after each command
831has changed, so that if a command causes changes in more than just the 787has changed, so that if a command causes changes in more than just the
832current buffer, Emacs now calls 'undo-boundary' in every buffer 788current buffer, Emacs now calls 'undo-boundary' in every buffer
833affected by the command. 789affected by the command.
834 790
835+++
836** New command 'comment-line' bound to 'C-x C-;'. 791** New command 'comment-line' bound to 'C-x C-;'.
837 792
838** New and improved facilities for inserting Unicode characters 793** New and improved facilities for inserting Unicode characters
839 794
840---
841*** Unicode names entered via 'C-x 8 RET' now use substring completion 795*** Unicode names entered via 'C-x 8 RET' now use substring completion
842by default. 796by default.
843 797
844+++
845*** 'C-x 8' now has shorthands for several chars, such as U+2010 798*** 'C-x 8' now has shorthands for several chars, such as U+2010
846(HYPHEN), U+2011 (NON-BREAKING HYPHEN), and U+2012 (FIGURE DASH). As 799(HYPHEN), U+2011 (NON-BREAKING HYPHEN), and U+2012 (FIGURE DASH). As
847before, you can type 'C-x 8 C-h' to list shorthands. 800before, you can type 'C-x 8 C-h' to list shorthands.
848 801
849+++
850*** New minor mode 'electric-quote-mode' for using curved quotes as you 802*** New minor mode 'electric-quote-mode' for using curved quotes as you
851type. See also the new variable 'text-quoting-style'. 803type. See also the new variable 'text-quoting-style'.
852 804
853---
854** New minor mode 'global-eldoc-mode' is enabled by default. 805** New minor mode 'global-eldoc-mode' is enabled by default.
855 806
856---
857** Emacs now uses "bracketed paste mode" on text terminals that support it. 807** Emacs now uses "bracketed paste mode" on text terminals that support it.
858Bracketed paste mode causes text terminals to wrap pasted text in special 808Bracketed paste mode causes text terminals to wrap pasted text in special
859escape sequences that allow Emacs to tell the difference between text 809escape sequences that allow Emacs to tell the difference between text
@@ -866,7 +816,6 @@ pasting large amounts of text.
866Bracketed paste mode is disabled by default, so Emacs automatically 816Bracketed paste mode is disabled by default, so Emacs automatically
867enables it at startup if the terminal supports it. 817enables it at startup if the terminal supports it.
868 818
869+++
870** Emacs now supports the latest version of the UBA. 819** Emacs now supports the latest version of the UBA.
871The Emacs implementation of the Unicode Bidirectional Algorithm (UBA) 820The Emacs implementation of the Unicode Bidirectional Algorithm (UBA)
872was updated to support all the latest additions and changes introduced 821was updated to support all the latest additions and changes introduced
@@ -875,29 +824,23 @@ This includes full support for directional isolates and the
875Bidirectional Parentheses Algorithm (BPA) specified by these Unicode 824Bidirectional Parentheses Algorithm (BPA) specified by these Unicode
876standards. 825standards.
877 826
878+++
879** You can access 'mouse-buffer-menu' ('C-down-mouse-1') using 'C-f10'. 827** You can access 'mouse-buffer-menu' ('C-down-mouse-1') using 'C-f10'.
880 828
881+++
882** New buffer-local 'electric-pair-local-mode'. 829** New buffer-local 'electric-pair-local-mode'.
883 830
884+++
885** New variable 'fast-but-imprecise-scrolling' inhibits 831** New variable 'fast-but-imprecise-scrolling' inhibits
886fontification during full screen scrolling operations, giving less 832fontification during full screen scrolling operations, giving less
887hesitant operation during auto-repeat of 'C-v', 'M-v' at the cost of 833hesitant operation during auto-repeat of 'C-v', 'M-v' at the cost of
888possible inaccuracies in the end position. 834possible inaccuracies in the end position.
889 835
890+++
891** New documentation command 'describe-symbol'. 836** New documentation command 'describe-symbol'.
892Works for functions, variables, faces, etc. It is bound to 'C-h o' by 837Works for functions, variables, faces, etc. It is bound to 'C-h o' by
893default. 838default.
894 839
895+++
896** New function 'custom-prompt-customize-unsaved-options' checks for 840** New function 'custom-prompt-customize-unsaved-options' checks for
897unsaved customizations and prompts user to customize (if found). It 841unsaved customizations and prompts user to customize (if found). It
898is intended for adding to 'kill-emacs-query-functions'. 842is intended for adding to 'kill-emacs-query-functions'.
899 843
900+++
901** The old 'C-x w' bindings in 'hi-lock-mode' are officially deprecated 844** The old 'C-x w' bindings in 'hi-lock-mode' are officially deprecated
902in favor of the global 'M-s h' bindings introduced in Emacs 23.1. 845in favor of the global 'M-s h' bindings introduced in Emacs 23.1.
903They'll disappear soon. 846They'll disappear soon.
@@ -907,20 +850,17 @@ They'll disappear soon.
907 850
908** Checkdoc 851** Checkdoc
909 852
910+++
911*** New command 'checkdoc-package-keywords' checks if the 853*** New command 'checkdoc-package-keywords' checks if the
912current package keywords are recognized. Set the new option 854current package keywords are recognized. Set the new option
913'checkdoc-package-keywords-flag' to non-nil to make 855'checkdoc-package-keywords-flag' to non-nil to make
914'checkdoc-current-buffer' call this function automatically. 856'checkdoc-current-buffer' call this function automatically.
915 857
916+++
917*** New function 'checkdoc-file' checks for style errors. 858*** New function 'checkdoc-file' checks for style errors.
918It's meant for use together with 'compile': 859It's meant for use together with 'compile':
919emacs -batch --eval "(checkdoc-file \"subr.el\")" 860emacs -batch --eval "(checkdoc-file \"subr.el\")"
920 861
921** Desktop 862** Desktop
922 863
923---
924*** The desktop format version has been upgraded from 206 to 208. 864*** The desktop format version has been upgraded from 206 to 208.
925Although Emacs 25.1 can read a version 206 desktop, earlier Emacsen 865Although Emacs 25.1 can read a version 206 desktop, earlier Emacsen
926cannot read a version 208 desktop. To upgrade your desktop file, you 866cannot read a version 208 desktop. To upgrade your desktop file, you
@@ -929,49 +869,41 @@ recommended to do this as soon as you have firmly upgraded to Emacs
92925.1 (or later). Should you ever need to downgrade your desktop file 86925.1 (or later). Should you ever need to downgrade your desktop file
930to version 206, you can do this with 'C-u C-u M-x desktop-save'. 870to version 206, you can do this with 'C-u C-u M-x desktop-save'.
931 871
932---
933*** 'desktop-restore-in-current-display' now defaults to t, not nil. 872*** 'desktop-restore-in-current-display' now defaults to t, not nil.
934That is, Emacs by default now restores frames into the current display. 873That is, Emacs by default now restores frames into the current display.
935 874
936+++
937** New function 'bookmark-set-no-overwrite' bound to 'C-x r M'. 875** New function 'bookmark-set-no-overwrite' bound to 'C-x r M'.
938It raises an error if a bookmark of that name already exists, 876It raises an error if a bookmark of that name already exists,
939unlike 'bookmark-set' which silently updates an existing bookmark. 877unlike 'bookmark-set' which silently updates an existing bookmark.
940 878
941** Gnus 879** Gnus
942 880
943+++
944*** New user options 'mm-html-inhibit-images' and 'mm-html-blocked-images' 881*** New user options 'mm-html-inhibit-images' and 'mm-html-blocked-images'
945now control how mm-* functions fetch and display images in an HTML 882now control how mm-* functions fetch and display images in an HTML
946message. Gnus still uses 'gnus-inhibit-images' and 'gnus-blocked-images' 883message. Gnus still uses 'gnus-inhibit-images' and 'gnus-blocked-images'
947for that purpose, i.e., binds mm-html- variables with those gnus- 884for that purpose, i.e., binds mm-html- variables with those gnus-
948variables, but other packages do not have to bind gnus- variables now. 885variables, but other packages do not have to bind gnus- variables now.
949 886
950---
951*** 'mm-inline-text-html-with-images' has been removed. 887*** 'mm-inline-text-html-with-images' has been removed.
952Use 'mm-html-inhibit-images' instead. Note that the value is opposite 888Use 'mm-html-inhibit-images' instead. Note that the value is opposite
953in meaning. 889in meaning.
954 890
955** IMAP 891** IMAP
956 892
957---
958*** 'imap-ssl-program' has been removed, and imap.el uses the internal 893*** 'imap-ssl-program' has been removed, and imap.el uses the internal
959GnuTLS encryption functions if possible. 894GnuTLS encryption functions if possible.
960 895
961** JSON 896** JSON
962 897
963---
964*** 'json-pretty-print' and 'json-pretty-print-buffer' now maintain 898*** 'json-pretty-print' and 'json-pretty-print-buffer' now maintain
965the ordering of object keys by default. 899the ordering of object keys by default.
966 900
967---
968*** New commands 'json-pretty-print-ordered' and 901*** New commands 'json-pretty-print-ordered' and
969'json-pretty-print-buffer-ordered' pretty prints JSON objects with 902'json-pretty-print-buffer-ordered' pretty prints JSON objects with
970object keys sorted alphabetically. 903object keys sorted alphabetically.
971 904
972** Prettify Symbols mode 905** Prettify Symbols mode
973 906
974+++
975*** Prettify Symbols mode supports custom composition predicates. By 907*** Prettify Symbols mode supports custom composition predicates. By
976overriding the default 'prettify-symbols-compose-predicate', modes can 908overriding the default 'prettify-symbols-compose-predicate', modes can
977specify in which contexts a symbol may be displayed as some Unicode 909specify in which contexts a symbol may be displayed as some Unicode
@@ -979,13 +911,11 @@ character. 'prettify-symbols-default-compose-p' is the default which
979is suitable for most programming languages such as C or Lisp (but not 911is suitable for most programming languages such as C or Lisp (but not
980(La)TeX). 912(La)TeX).
981 913
982+++
983*** Symbols can be unprettified while point is inside them. 914*** Symbols can be unprettified while point is inside them.
984New variable 'prettify-symbols-unprettify-at-point' configures this. 915New variable 'prettify-symbols-unprettify-at-point' configures this.
985 916
986** Enhanced xterm support 917** Enhanced xterm support
987 918
988---
989*** The new variable 'xterm-screen-extra-capabilities' for configuring xterm. 919*** The new variable 'xterm-screen-extra-capabilities' for configuring xterm.
990This variable tells Emacs which advanced capabilities are available in 920This variable tells Emacs which advanced capabilities are available in
991the xterm terminal emulator used to display Emacs text-mode frames. 921the xterm terminal emulator used to display Emacs text-mode frames.
@@ -993,7 +923,6 @@ The default is to check each capability, and use it if available.
993(This variable was introduced in Emacs 24.1, but was not announced in 923(This variable was introduced in Emacs 24.1, but was not announced in
994its NEWS.) 924its NEWS.)
995 925
996---
997*** Killing text now also sets the CLIPBOARD/PRIMARY selection 926*** Killing text now also sets the CLIPBOARD/PRIMARY selection
998in the surrounding GUI (using the OSC-52 escape sequence). This only works 927in the surrounding GUI (using the OSC-52 escape sequence). This only works
999if your xterm supports it and enables the 'allowWindowOps' options (disabled 928if your xterm supports it and enables the 'allowWindowOps' options (disabled
@@ -1003,10 +932,8 @@ Similarly, you can yank the CLIPBOARD/PRIMARY selection (using the OSC-52
1003escape sequence) if your xterm has the feature enabled but for that you 932escape sequence) if your xterm has the feature enabled but for that you
1004additionally need to add 'getSelection' to 'xterm-extra-capabilities'. 933additionally need to add 'getSelection' to 'xterm-extra-capabilities'.
1005 934
1006+++
1007*** 'xterm-mouse-mode' now supports mouse-tracking (if your xterm supports it). 935*** 'xterm-mouse-mode' now supports mouse-tracking (if your xterm supports it).
1008 936
1009---
1010** The way to turn on and off 'save-place' mode has changed. 937** The way to turn on and off 'save-place' mode has changed.
1011It is no longer sufficient to load the saveplace library and set 938It is no longer sufficient to load the saveplace library and set
1012'save-place' non-nil. Instead, use the two new minor modes: 939'save-place' non-nil. Instead, use the two new minor modes:
@@ -1018,22 +945,18 @@ obsolete alias for the new 'save-place-local-mode' command.
1018 945
1019** ERC 946** ERC
1020 947
1021+++
1022*** ERC can now hide message types by network or channel. 948*** ERC can now hide message types by network or channel.
1023'erc-hide-list' will hide all messages of the specified type, while 949'erc-hide-list' will hide all messages of the specified type, while
1024'erc-network-hide-list' and 'erc-channel-hide-list' will only hide the 950'erc-network-hide-list' and 'erc-channel-hide-list' will only hide the
1025specified message types for the respective specified targets. 951specified message types for the respective specified targets.
1026 952
1027---
1028*** Reconnection is now asynchronous. 953*** Reconnection is now asynchronous.
1029 954
1030---
1031*** Nick completion is now case-insensitive again after inadvertently 955*** Nick completion is now case-insensitive again after inadvertently
1032being made case-sensitive in Emacs 24.2. 956being made case-sensitive in Emacs 24.2.
1033 957
1034** MPC 958** MPC
1035 959
1036---
1037*** New commands, key binds, and menu items. 960*** New commands, key binds, and menu items.
1038 961
1039**** '<' and '>' for navigating previous and next tracks in playlist 962**** '<' and '>' for navigating previous and next tracks in playlist
@@ -1046,29 +969,23 @@ track.
1046**** New commands 'mpc-toggle-{consume,repeat,single,shuffle}' for 969**** New commands 'mpc-toggle-{consume,repeat,single,shuffle}' for
1047toggling playback modes. 970toggling playback modes.
1048 971
1049---
1050*** Now supports connecting to a UNIX domain socket. 972*** Now supports connecting to a UNIX domain socket.
1051 973
1052---
1053*** Looks at more image file names to use as album art. 974*** Looks at more image file names to use as album art.
1054Case-insensitively tries for .folder.png (freedesktop) and folder.jpg 975Case-insensitively tries for .folder.png (freedesktop) and folder.jpg
1055(XP) in addition to cover.jpg. 976(XP) in addition to cover.jpg.
1056 977
1057---
1058*** Searches in more locations for MPD configuration files. 978*** Searches in more locations for MPD configuration files.
1059MPD supports the XDG base directory specification since version 0.17.6. 979MPD supports the XDG base directory specification since version 0.17.6.
1060 980
1061** Midnight-mode 981** Midnight-mode
1062 982
1063---
1064*** 'midnight-mode' is now a proper minor mode. 983*** 'midnight-mode' is now a proper minor mode.
1065 984
1066---
1067*** clean-buffer-*-regexps can now specify buffers via predicate functions. 985*** clean-buffer-*-regexps can now specify buffers via predicate functions.
1068 986
1069** package.el 987** package.el
1070 988
1071+++
1072*** New "external" package status. 989*** New "external" package status.
1073An external package is any installed package that's not built-in and 990An external package is any installed package that's not built-in and
1074not from 'package-user-dir', which usually means it's from an entry in 991not from 'package-user-dir', which usually means it's from an entry in
@@ -1080,12 +997,10 @@ The effect is that a user can manually place a specific version of a
1080package inside 'package-directory-list' and the package menu will 997package inside 'package-directory-list' and the package menu will
1081always respect that. 998always respect that.
1082 999
1083+++
1084*** If a package is available on multiple archives and one has higher 1000*** If a package is available on multiple archives and one has higher
1085priority (as per 'package-archive-priorities') only that one is 1001priority (as per 'package-archive-priorities') only that one is
1086listed. This can be configured with 'package-menu-hide-low-priority'. 1002listed. This can be configured with 'package-menu-hide-low-priority'.
1087 1003
1088+++
1089*** 'package-menu-toggle-hiding' now toggles the hiding of packages. 1004*** 'package-menu-toggle-hiding' now toggles the hiding of packages.
1090This includes the above-mentioned low-priority packages, as well as 1005This includes the above-mentioned low-priority packages, as well as
1091available packages whose version is lower than the currently installed 1006available packages whose version is lower than the currently installed
@@ -1093,48 +1008,38 @@ version (which were previously impossible to display).
1093This allows users to downgrade a package if a lower version is 1008This allows users to downgrade a package if a lower version is
1094available. 1009available.
1095 1010
1096---
1097*** When filtering the package menu, keywords starting with "arc:" or 1011*** When filtering the package menu, keywords starting with "arc:" or
1098"status:" represent package archive or status, respectively, instead 1012"status:" represent package archive or status, respectively, instead
1099of actual keywords. 1013of actual keywords.
1100 1014
1101---
1102*** Most functions which involve downloading information now take an 1015*** Most functions which involve downloading information now take an
1103ASYNC argument. If it is non-nil, package.el performs the download(s) 1016ASYNC argument. If it is non-nil, package.el performs the download(s)
1104asynchronously. 1017asynchronously.
1105 1018
1106---
1107*** New variable 'package-menu-async' controls whether the 1019*** New variable 'package-menu-async' controls whether the
1108package-menu uses asynchronous downloads. 1020package-menu uses asynchronous downloads.
1109 1021
1110---
1111*** 'package-install-from-buffer' and 'package-install-file' work on directories. 1022*** 'package-install-from-buffer' and 'package-install-file' work on directories.
1112This follows the same rules as installing from a .tar file, except the 1023This follows the same rules as installing from a .tar file, except the
1113-pkg file is optional. 1024-pkg file is optional.
1114 1025
1115---
1116*** Packages which are dependencies of other packages cannot be deleted. 1026*** Packages which are dependencies of other packages cannot be deleted.
1117The FORCE argument to 'package-delete' overrides this. 1027The FORCE argument to 'package-delete' overrides this.
1118 1028
1119---
1120*** New custom variable 'package-selected-packages' tracks packages 1029*** New custom variable 'package-selected-packages' tracks packages
1121which were installed by the user (as opposed to installed as 1030which were installed by the user (as opposed to installed as
1122dependencies). This variable can also be manually customized. 1031dependencies). This variable can also be manually customized.
1123 1032
1124---
1125*** New command 'package-install-selected-packages' installs all 1033*** New command 'package-install-selected-packages' installs all
1126packages from 'package-selected-packages' which are currently missing. 1034packages from 'package-selected-packages' which are currently missing.
1127 1035
1128---
1129*** 'package-install' function now takes a DONT-SELECT argument. If 1036*** 'package-install' function now takes a DONT-SELECT argument. If
1130this function is called interactively or if DONT-SELECT is nil, add the 1037this function is called interactively or if DONT-SELECT is nil, add the
1131package being installed to 'package-selected-packages'. 1038package being installed to 'package-selected-packages'.
1132 1039
1133---
1134*** New command 'package-autoremove' removes all packages which were 1040*** New command 'package-autoremove' removes all packages which were
1135installed strictly as dependencies but are no longer needed. 1041installed strictly as dependencies but are no longer needed.
1136 1042
1137+++
1138** Shell 1043** Shell
1139 1044
1140When you invoke 'shell' interactively, the '*shell*' buffer will now 1045When you invoke 'shell' interactively, the '*shell*' buffer will now
@@ -1145,40 +1050,29 @@ the old behavior -- '*shell*' buffer displays in current window -- use
1145 '("^\\*shell\\*$" . (display-buffer-same-window))). 1050 '("^\\*shell\\*$" . (display-buffer-same-window))).
1146 1051
1147** EIEIO 1052** EIEIO
1148+++
1149*** The ':protection' slot option is not obeyed any more. 1053*** The ':protection' slot option is not obeyed any more.
1150+++
1151*** The 'newname' argument to constructors is optional&deprecated. 1054*** The 'newname' argument to constructors is optional&deprecated.
1152If you need your objects to be named, do it by inheriting from 'eieio-named'. 1055If you need your objects to be named, do it by inheriting from 'eieio-named'.
1153+++
1154*** The <class>-list-p and <class>-child-p functions are declared obsolete. 1056*** The <class>-list-p and <class>-child-p functions are declared obsolete.
1155+++
1156*** The <class> variables are declared obsolete. 1057*** The <class> variables are declared obsolete.
1157+++
1158*** The <initarg> variables are declared obsolete. 1058*** The <initarg> variables are declared obsolete.
1159+++
1160*** defgeneric and defmethod are declared obsolete. 1059*** defgeneric and defmethod are declared obsolete.
1161Use the equivalent facilities from cl-generic.el instead. 1060Use the equivalent facilities from cl-generic.el instead.
1162+++
1163*** 'constructor' is now an obsolete alias for 'make-instance'. 1061*** 'constructor' is now an obsolete alias for 'make-instance'.
1164---
1165*** 'pcase' accepts a new UPattern 'eieio'. 1062*** 'pcase' accepts a new UPattern 'eieio'.
1166 1063
1167** ido 1064** ido
1168 1065
1169+++
1170*** New command 'ido-bury-buffer-at-head' bound to 'C-S-b'. 1066*** New command 'ido-bury-buffer-at-head' bound to 'C-S-b'.
1171Bury the buffer at the head of 'ido-matches', analogous to how 'C-k' 1067Bury the buffer at the head of 'ido-matches', analogous to how 'C-k'
1172kills the buffer at head. 1068kills the buffer at head.
1173 1069
1174---
1175*** A prefix argument to 'ido-restrict-to-matches' will reverse its 1070*** A prefix argument to 'ido-restrict-to-matches' will reverse its
1176meaning, and the list is restricted to those elements that do not 1071meaning, and the list is restricted to those elements that do not
1177match the current input. 1072match the current input.
1178 1073
1179** Minibuffer 1074** Minibuffer
1180 1075
1181+++
1182*** You can use <UP> and <DOWN> arrow keys to move through history by lines. 1076*** You can use <UP> and <DOWN> arrow keys to move through history by lines.
1183The new commands 'next-line-or-history-element' and 1077The new commands 'next-line-or-history-element' and
1184'previous-line-or-history-element', bound to <UP> and <DOWN> in the 1078'previous-line-or-history-element', bound to <UP> and <DOWN> in the
@@ -1190,7 +1084,6 @@ item as before.
1190 1084
1191** Search and Replace 1085** Search and Replace
1192 1086
1193+++
1194*** 'isearch' and 'query-replace' can now perform character folding in matches. 1087*** 'isearch' and 'query-replace' can now perform character folding in matches.
1195This is analogous to case folding, but instead of disregarding case 1088This is analogous to case folding, but instead of disregarding case
1196variants, it disregards wider classes of distinctions between similar 1089variants, it disregards wider classes of distinctions between similar
@@ -1211,24 +1104,20 @@ folding in the middle of a search by typing 'M-s ''.
1211'query-replace' honors character folding if the new variable 1104'query-replace' honors character folding if the new variable
1212'replace-char-fold' is customized to a non-nil value. 1105'replace-char-fold' is customized to a non-nil value.
1213 1106
1214+++
1215*** New user option 'search-default-mode'. 1107*** New user option 'search-default-mode'.
1216This option specifies the default mode for Isearch. The default 1108This option specifies the default mode for Isearch. The default
1217value, nil specifies that Isearch does literal searches (however, 1109value, nil specifies that Isearch does literal searches (however,
1218'case-fold-search' and 'isearch-lax-whitespace' may still be applied, 1110'case-fold-search' and 'isearch-lax-whitespace' may still be applied,
1219as in previous Emacs versions). 1111as in previous Emacs versions).
1220 1112
1221+++
1222*** New function 'char-fold-to-regexp' can be used 1113*** New function 'char-fold-to-regexp' can be used
1223by searching commands to produce a regexp matching anything that 1114by searching commands to produce a regexp matching anything that
1224char-folds into STRING. 1115char-folds into STRING.
1225 1116
1226+++
1227*** The new 'M-s M-w' key binding uses eww to search the web for the 1117*** The new 'M-s M-w' key binding uses eww to search the web for the
1228text in the region. The search engine to use for this is specified by 1118text in the region. The search engine to use for this is specified by
1229the customizable variable 'eww-search-prefix'. 1119the customizable variable 'eww-search-prefix'.
1230 1120
1231+++
1232*** 'query-replace' history is enhanced. 1121*** 'query-replace' history is enhanced.
1233When 'query-replace' reads the FROM string from the minibuffer, typing 1122When 'query-replace' reads the FROM string from the minibuffer, typing
1234'M-p' will now show previous replacements as "FROM SEP TO", where FROM 1123'M-p' will now show previous replacements as "FROM SEP TO", where FROM
@@ -1239,26 +1128,21 @@ replacement appears in the minibuffer, and then exit the minibuffer by
1239typing RET. 1128typing RET.
1240 1129
1241** Calc 1130** Calc
1242+++
1243*** If 'quick-calc' is called with a prefix argument, insert the 1131*** If 'quick-calc' is called with a prefix argument, insert the
1244result of the calculation into the current buffer. 1132result of the calculation into the current buffer.
1245 1133
1246+++
1247** In Edebug, you can now set the initial mode with 'C-x C-a C-m'. 1134** In Edebug, you can now set the initial mode with 'C-x C-a C-m'.
1248With this you can tell Edebug not to stop at the start of the first 1135With this you can tell Edebug not to stop at the start of the first
1249instrumented function. 1136instrumented function.
1250 1137
1251** ElDoc 1138** ElDoc
1252 1139
1253+++
1254*** New minor mode 'global-eldoc-mode'. 1140*** New minor mode 'global-eldoc-mode'.
1255It is turned on by default, and affects '*scratch*' and other buffers 1141It is turned on by default, and affects '*scratch*' and other buffers
1256whose major mode supports Emacs Lisp. 1142whose major mode supports Emacs Lisp.
1257 1143
1258---
1259*** 'eldoc-documentation-function' now defaults to 'ignore'. 1144*** 'eldoc-documentation-function' now defaults to 'ignore'.
1260 1145
1261---
1262*** 'describe-char-eldoc' displays information about character at point, 1146*** 'describe-char-eldoc' displays information about character at point,
1263and can be used as a default value of 'eldoc-documentation-function'. It is 1147and can be used as a default value of 'eldoc-documentation-function'. It is
1264useful when, for example, one needs to distinguish various spaces - e.g., 1148useful when, for example, one needs to distinguish various spaces - e.g.,
@@ -1267,76 +1151,60 @@ using mono-spaced font.
1267 1151
1268** eww 1152** eww
1269 1153
1270---
1271*** HTML can now be rendered using variable-width fonts. 1154*** HTML can now be rendered using variable-width fonts.
1272 1155
1273+++
1274*** A new command 'F' ('eww-toggle-fonts') can be used to toggle 1156*** A new command 'F' ('eww-toggle-fonts') can be used to toggle
1275whether to use variable-pitch fonts or not. The user can also 1157whether to use variable-pitch fonts or not. The user can also
1276customize the 'shr-use-fonts' variable. 1158customize the 'shr-use-fonts' variable.
1277 1159
1278+++
1279*** A new command 'R' ('eww-readable') will try do identify the main 1160*** A new command 'R' ('eww-readable') will try do identify the main
1280textual parts of a web page and display only that, leaving menus and 1161textual parts of a web page and display only that, leaving menus and
1281the like off the page. 1162the like off the page.
1282 1163
1283+++
1284*** A new command 'D' ('eww-toggle-paragraph-direction') allows you to 1164*** A new command 'D' ('eww-toggle-paragraph-direction') allows you to
1285toggle the paragraph direction between left-to-right and right-to-left. 1165toggle the paragraph direction between left-to-right and right-to-left.
1286 1166
1287---
1288*** You can now use several eww buffers in parallel by renaming eww 1167*** You can now use several eww buffers in parallel by renaming eww
1289buffers you want to keep separate. 1168buffers you want to keep separate.
1290 1169
1291+++
1292*** Partial state of the eww buffers (the URIs and the titles of the 1170*** Partial state of the eww buffers (the URIs and the titles of the
1293pages visited) is now preserved in the desktop file. 1171pages visited) is now preserved in the desktop file.
1294 1172
1295+++
1296*** 'eww-after-render-hook' is now called after eww has rendered 1173*** 'eww-after-render-hook' is now called after eww has rendered
1297the data in the buffer. 1174the data in the buffer.
1298 1175
1299---
1300*** The 'eww-reload' command now takes a prefix to not reload via 1176*** The 'eww-reload' command now takes a prefix to not reload via
1301the net, but just use the local copy of the HTML. 1177the net, but just use the local copy of the HTML.
1302 1178
1303+++
1304*** The DOM shr and eww uses has been changed to the general Emacs 1179*** The DOM shr and eww uses has been changed to the general Emacs
1305xml.el/libxml2 DOM, and a new package dom.el has been added to 1180xml.el/libxml2 DOM, and a new package dom.el has been added to
1306interact with this DOM. See the Emacs Lisp manual for interface 1181interact with this DOM. See the Emacs Lisp manual for interface
1307details. 1182details.
1308 1183
1309+++
1310*** 'mailcap-mime-data' is now consulted when displaying PDF files. 1184*** 'mailcap-mime-data' is now consulted when displaying PDF files.
1311 1185
1312+++
1313*** The new 'S' command will list all eww buffers, and allow managing 1186*** The new 'S' command will list all eww buffers, and allow managing
1314them. 1187them.
1315 1188
1316---
1317*** https pages with valid certificates have headers marked in green, while 1189*** https pages with valid certificates have headers marked in green, while
1318invalid certificates are marked in red. 1190invalid certificates are marked in red.
1319 1191
1320** Message mode 1192** Message mode
1321 1193
1322---
1323*** text/html messages that contain inline image parts will be 1194*** text/html messages that contain inline image parts will be
1324transformed into multipart/related messages before sending. 1195transformed into multipart/related messages before sending.
1325 1196
1326+++
1327** In Show Paren Mode, a parenthesis can be highlighted when point 1197** In Show Paren Mode, a parenthesis can be highlighted when point
1328stands inside it, and certain parens can be highlighted when point is 1198stands inside it, and certain parens can be highlighted when point is
1329at BOL or EOL, or in whitespace there. To enable these, customize, 1199at BOL or EOL, or in whitespace there. To enable these, customize,
1330respectively, 'show-paren-when-point-inside-paren' or 1200respectively, 'show-paren-when-point-inside-paren' or
1331'show-paren-when-point-in-periphery'. 1201'show-paren-when-point-in-periphery'.
1332 1202
1333---
1334** If gpg2 exists on the system, it is now used as the default value 1203** If gpg2 exists on the system, it is now used as the default value
1335of 'epg-gpg-program' (instead of gpg). 1204of 'epg-gpg-program' (instead of gpg).
1336 1205
1337** Lisp mode 1206** Lisp mode
1338 1207
1339---
1340*** Strings after ':documentation' are highlighted as docstrings. 1208*** Strings after ':documentation' are highlighted as docstrings.
1341This enhances Lisp mode fontification to handle documentation of the 1209This enhances Lisp mode fontification to handle documentation of the
1342form '(:documentation "the doc string")' used in Common Lisp code for 1210form '(:documentation "the doc string")' used in Common Lisp code for
@@ -1344,19 +1212,15 @@ CLOS class and slot documentation.
1344 1212
1345** Rectangle editing 1213** Rectangle editing
1346 1214
1347+++
1348*** Rectangle Mark mode can have corners past EOL or in the middle of a TAB. 1215*** Rectangle Mark mode can have corners past EOL or in the middle of a TAB.
1349 1216
1350+++
1351*** 'C-x C-x' in 'rectangle-mark-mode' now cycles through the four corners. 1217*** 'C-x C-x' in 'rectangle-mark-mode' now cycles through the four corners.
1352*** 'string-rectangle' provides on-the-fly preview of the result. 1218*** 'string-rectangle' provides on-the-fly preview of the result.
1353 1219
1354+++
1355** New font-lock functions 'font-lock-ensure' and 'font-lock-flush'. 1220** New font-lock functions 'font-lock-ensure' and 'font-lock-flush'.
1356These should be used in preference to 'font-lock-fontify-buffer' when 1221These should be used in preference to 'font-lock-fontify-buffer' when
1357called from Lisp. 1222called from Lisp.
1358 1223
1359---
1360** Macro 'minibuffer-with-setup-hook' can optionally append a function 1224** Macro 'minibuffer-with-setup-hook' can optionally append a function
1361to 'minibuffer-setup-hook'. 1225to 'minibuffer-setup-hook'.
1362 1226
@@ -1365,39 +1229,30 @@ then FUN will be appended to 'minibuffer-setup-hook', instead of
1365prepending it. 1229prepending it.
1366 1230
1367** cl-lib 1231** cl-lib
1368+++
1369*** New functions 'cl-fresh-line', 'cl-digit-char-p', and 'cl-parse-integer'. 1232*** New functions 'cl-fresh-line', 'cl-digit-char-p', and 'cl-parse-integer'.
1370 1233
1371---
1372*** 'pcase' accepts the new UPattern 'cl-struct'. 1234*** 'pcase' accepts the new UPattern 'cl-struct'.
1373 1235
1374** Calendar and diary 1236** Calendar and diary
1375 1237
1376+++
1377*** The default 'diary-file' is now located in "~/.emacs.d". 1238*** The default 'diary-file' is now located in "~/.emacs.d".
1378 1239
1379+++
1380*** New commands to insert diary entries with Chinese dates: 1240*** New commands to insert diary entries with Chinese dates:
1381'diary-chinese-insert-anniversary-entry' 'diary-chinese-insert-entry' 1241'diary-chinese-insert-anniversary-entry' 'diary-chinese-insert-entry'
1382'diary-chinese-insert-monthly-entry', 'diary-chinese-insert-yearly-entry'. 1242'diary-chinese-insert-monthly-entry', 'diary-chinese-insert-yearly-entry'.
1383 1243
1384+++
1385*** The calendar can now list and mark diary entries with Chinese dates. 1244*** The calendar can now list and mark diary entries with Chinese dates.
1386See 'diary-chinese-list-entries' and 'diary-chinese-mark-entries'. 1245See 'diary-chinese-list-entries' and 'diary-chinese-mark-entries'.
1387 1246
1388---
1389*** The option 'calendar-mode-line-format' can now be nil, 1247*** The option 'calendar-mode-line-format' can now be nil,
1390which means to do nothing special with the mode line in calendars. 1248which means to do nothing special with the mode line in calendars.
1391 1249
1392+++
1393*** New option 'calendar-weekend-days'. 1250*** New option 'calendar-weekend-days'.
1394The option customizes which day headers receive the 1251The option customizes which day headers receive the
1395'calendar-weekend-header' face. 1252'calendar-weekend-header' face.
1396 1253
1397---
1398*** New optional args N and STRING for 'holiday-greek-orthodox-easter'. 1254*** New optional args N and STRING for 'holiday-greek-orthodox-easter'.
1399 1255
1400---
1401*** Many items obsolete since at least version 23.1 have been removed. 1256*** Many items obsolete since at least version 23.1 have been removed.
1402The majority were function/variable/face aliases, too numerous to list here. 1257The majority were function/variable/face aliases, too numerous to list here.
1403The remainder were: 1258The remainder were:
@@ -1413,68 +1268,54 @@ The remainder were:
1413 1268
1414**** The nil and list forms of 'diary-display-function'. 1269**** The nil and list forms of 'diary-display-function'.
1415 1270
1416+++
1417** New ERT function 'ert-summarize-tests-batch-and-exit'. 1271** New ERT function 'ert-summarize-tests-batch-and-exit'.
1418If the output of ERT tests in batch mode execution can be saved to a 1272If the output of ERT tests in batch mode execution can be saved to a
1419log file, then it can be passed as an argument to the above function 1273log file, then it can be passed as an argument to the above function
1420to produce a neat summary. 1274to produce a neat summary.
1421 1275
1422---
1423** New js.el option 'js-indent-first-init'. 1276** New js.el option 'js-indent-first-init'.
1424 1277
1425** Info 1278** Info
1426 1279
1427---
1428** Info mode now displays symbol names in fixed-pitch font. 1280** Info mode now displays symbol names in fixed-pitch font.
1429If you want to get the old behavior back, customize the 'Info-quoted' 1281If you want to get the old behavior back, customize the 'Info-quoted'
1430face to use the same definitions as the default face. 1282face to use the same definitions as the default face.
1431 1283
1432---
1433*** 'Info-fontify-maximum-menu-size' can be t for no limit. 1284*** 'Info-fontify-maximum-menu-size' can be t for no limit.
1434 1285
1435+++
1436*** 'info-display-manual' can now be given a prefix argument which (any 1286*** 'info-display-manual' can now be given a prefix argument which (any
1437non-nil value) directs the command to limit the completion 1287non-nil value) directs the command to limit the completion
1438alternatives to currently visited manuals. 1288alternatives to currently visited manuals.
1439 1289
1440---
1441** ntlm.el has support for NTLM2. 1290** ntlm.el has support for NTLM2.
1442 1291
1443** Rmail 1292** Rmail
1444 1293
1445+++
1446*** The Rmail commands 'd', 'C-d' and 'u' take optional repeat counts 1294*** The Rmail commands 'd', 'C-d' and 'u' take optional repeat counts
1447to delete or undelete multiple messages. 1295to delete or undelete multiple messages.
1448 1296
1449+++
1450*** Rmail can now render HTML mail messages if your Emacs was built with 1297*** Rmail can now render HTML mail messages if your Emacs was built with
1451libxml2 or if you have the Lynx browser installed. By default, Rmail 1298libxml2 or if you have the Lynx browser installed. By default, Rmail
1452will display the HTML version of a mail message that has both HTML and 1299will display the HTML version of a mail message that has both HTML and
1453plain text parts, if display of HTML email is possible; customize the 1300plain text parts, if display of HTML email is possible; customize the
1454'rmail-mime-prefer-html' option to nil if you don't want that. 1301'rmail-mime-prefer-html' option to nil if you don't want that.
1455 1302
1456+++
1457*** In the commands that make summaries by subject, recipients, or senders, 1303*** In the commands that make summaries by subject, recipients, or senders,
1458you can no longer use commas to separate regular expressions. 1304you can no longer use commas to separate regular expressions.
1459 1305
1460+++
1461** SES now supports local printer functions; see 'ses-define-local-printer'. 1306** SES now supports local printer functions; see 'ses-define-local-printer'.
1462 1307
1463** Shell-script Mode 1308** Shell-script Mode
1464---
1465*** In sh-mode you can now use 'sh-shell' as a file-local variable to 1309*** In sh-mode you can now use 'sh-shell' as a file-local variable to
1466specify the type of shell in use (bash, csh, etc). 1310specify the type of shell in use (bash, csh, etc).
1467 1311
1468---
1469*** New value 'always' for 'sh-indent-after-continuation'. 1312*** New value 'always' for 'sh-indent-after-continuation'.
1470This provides old-style ("dumb") indentation of continued lines. 1313This provides old-style ("dumb") indentation of continued lines.
1471See the doc string of 'sh-indent-after-continuation' for details. 1314See the doc string of 'sh-indent-after-continuation' for details.
1472 1315
1473** TLS 1316** TLS
1474---
1475*** Fatal TLS errors are now silent by default. 1317*** Fatal TLS errors are now silent by default.
1476 1318
1477---
1478*** If Emacs isn't built with TLS support, an external TLS-capable 1319*** If Emacs isn't built with TLS support, an external TLS-capable
1479program is used instead. This program used to be run in --insecure 1320program is used instead. This program used to be run in --insecure
1480mode by default, but has now changed to be secure instead, and will 1321mode by default, but has now changed to be secure instead, and will
@@ -1483,85 +1324,68 @@ controlled by the 'tls-program' variable.
1483 1324
1484** URL 1325** URL
1485 1326
1486+++
1487*** The URL package accepts now the protocols "ssh", "scp" and "rsync". 1327*** The URL package accepts now the protocols "ssh", "scp" and "rsync".
1488When 'url-handler-mode' is enabled, file operations for these 1328When 'url-handler-mode' is enabled, file operations for these
1489protocols as well as for "telnet" and "ftp" are passed to Tramp. 1329protocols as well as for "telnet" and "ftp" are passed to Tramp.
1490 1330
1491+++
1492*** The URL package allows customizing the 'url-user-agent' string. 1331*** The URL package allows customizing the 'url-user-agent' string.
1493The new 'url-user-agent' variable can be customized to be a string or 1332The new 'url-user-agent' variable can be customized to be a string or
1494a function. 1333a function.
1495 1334
1496---
1497*** The new interface variable 'url-request-noninteractive' can be used 1335*** The new interface variable 'url-request-noninteractive' can be used
1498to specify that we're running in a noninteractive context, and that 1336to specify that we're running in a noninteractive context, and that
1499we should not be queried about things like TLS certificate validity. 1337we should not be queried about things like TLS certificate validity.
1500 1338
1501---
1502*** 'url-mime-accept-string' can now be used as in "interface" 1339*** 'url-mime-accept-string' can now be used as in "interface"
1503variable, meaning you can bind it around an 'url-retrieve' call. 1340variable, meaning you can bind it around an 'url-retrieve' call.
1504 1341
1505---
1506*** If URL is used with a https connection, the first callback argument 1342*** If URL is used with a https connection, the first callback argument
1507PLIST will contain a :peer element that has the output of 1343PLIST will contain a :peer element that has the output of
1508'gnutls-peer-status' (if Emacs is built with GnuTLS support). 1344'gnutls-peer-status' (if Emacs is built with GnuTLS support).
1509 1345
1510** Tramp 1346** Tramp
1511 1347
1512+++
1513*** New connection method "afp", which allows you to access Mac OS X 1348*** New connection method "afp", which allows you to access Mac OS X
1514volumes via the Apple Filing Protocol. 1349volumes via the Apple Filing Protocol.
1515 1350
1516+++
1517*** New connection method "nc", which allows you to access dumb 1351*** New connection method "nc", which allows you to access dumb
1518busyboxes. 1352busyboxes.
1519 1353
1520+++
1521*** Method-specific parameters can be overwritten now with variable 1354*** Method-specific parameters can be overwritten now with variable
1522'tramp-connection-properties'. 1355'tramp-connection-properties'.
1523 1356
1524---
1525*** Handler for 'file-notify-valid-p' for remote machines that support 1357*** Handler for 'file-notify-valid-p' for remote machines that support
1526filesystem notifications. 1358filesystem notifications.
1527 1359
1528** SQL mode 1360** SQL mode
1529 1361
1530---
1531*** New user variable 'sql-default-directory' enables remote 1362*** New user variable 'sql-default-directory' enables remote
1532connections using Tramp. 1363connections using Tramp.
1533 1364
1534---
1535*** New command 'sql-send-line-and-next'. 1365*** New command 'sql-send-line-and-next'.
1536This command, bound to 'C-c C-n' by default, sends the current line to 1366This command, bound to 'C-c C-n' by default, sends the current line to
1537the SQL process and advances to the next line, skipping whitespace and 1367the SQL process and advances to the next line, skipping whitespace and
1538comments. 1368comments.
1539 1369
1540---
1541*** Added support for Vertica SQL. 1370*** Added support for Vertica SQL.
1542 1371
1543** VC and related modes 1372** VC and related modes
1544 1373
1545+++
1546*** Basic push support, via 'vc-push', bound to 'C-x v P'. 1374*** Basic push support, via 'vc-push', bound to 'C-x v P'.
1547Implemented for Bzr, Git, Hg. As part of this change, the pre-existing 1375Implemented for Bzr, Git, Hg. As part of this change, the pre-existing
1548(undocumented) command 'vc-hg-push' now behaves slightly differently. 1376(undocumented) command 'vc-hg-push' now behaves slightly differently.
1549 1377
1550+++
1551*** The new command 'vc-region-history' shows the log+diff of the active region. 1378*** The new command 'vc-region-history' shows the log+diff of the active region.
1552 1379
1553+++
1554*** You can refresh the VC state of a file buffer with 'M-x vc-refresh-state'. 1380*** You can refresh the VC state of a file buffer with 'M-x vc-refresh-state'.
1555This command is useful when you perform version control commands 1381This command is useful when you perform version control commands
1556outside Emacs (e.g., from the shell prompt), or if you switch the VC 1382outside Emacs (e.g., from the shell prompt), or if you switch the VC
1557back-end for the buffer's file, or remove it from version control. 1383back-end for the buffer's file, or remove it from version control.
1558 1384
1559+++
1560*** New option 'vc-annotate-background-mode' controls whether 1385*** New option 'vc-annotate-background-mode' controls whether
1561the color range from 'vc-annotate-color-map' is applied to the 1386the color range from 'vc-annotate-color-map' is applied to the
1562background or to the foreground. 1387background or to the foreground.
1563 1388
1564---
1565*** New options for customizing encoding of Git commit log messages. 1389*** New options for customizing encoding of Git commit log messages.
1566The new user options 'vc-git-commits-coding-system' and 1390The new user options 'vc-git-commits-coding-system' and
1567'vc-git-log-output-coding-system' specify the encoding of log messages 1391'vc-git-log-output-coding-system' specify the encoding of log messages
@@ -1572,92 +1396,74 @@ i18n.commitEncoding and i18n.logOutputEncoding.
1572('vc-git-commits-coding-system' existed previously, but was a 1396('vc-git-commits-coding-system' existed previously, but was a
1573variable, not a user option.) 1397variable, not a user option.)
1574 1398
1575+++
1576*** 'compare-windows' now compares text with the most recently selected window 1399*** 'compare-windows' now compares text with the most recently selected window
1577instead of the next window. If you want the previous behavior of 1400instead of the next window. If you want the previous behavior of
1578comparing with the next window, customize the new option 1401comparing with the next window, customize the new option
1579'compare-windows-get-window-function' to the value 1402'compare-windows-get-window-function' to the value
1580'compare-windows-get-next-window'. 1403'compare-windows-get-next-window'.
1581 1404
1582---
1583*** Two new faces 'compare-windows-removed' and 'compare-windows-added' 1405*** Two new faces 'compare-windows-removed' and 'compare-windows-added'
1584replace the face 'compare-windows', which is now an obsolete alias for 1406replace the face 'compare-windows', which is now an obsolete alias for
1585'compare-windows-added'. 1407'compare-windows-added'.
1586 1408
1587---
1588*** The VC state indicator in the mode line now has different faces 1409*** The VC state indicator in the mode line now has different faces
1589corresponding to each of the possible states. See the 'vc-faces' 1410corresponding to each of the possible states. See the 'vc-faces'
1590customization group. 1411customization group.
1591 1412
1592---
1593*** 'log-edit-insert-changelog' converts "(tiny change)" to 1413*** 'log-edit-insert-changelog' converts "(tiny change)" to
1594"Copyright-paperwork-exempt: yes". Set 'log-edit-rewrite-tiny-change' 1414"Copyright-paperwork-exempt: yes". Set 'log-edit-rewrite-tiny-change'
1595nil to disable this. 1415nil to disable this.
1596 1416
1597+++
1598*** vc-mcvs.el has been removed. 1417*** vc-mcvs.el has been removed.
1599 1418
1600---
1601** VHDL mode now supports VHDL'08. 1419** VHDL mode now supports VHDL'08.
1602 1420
1603** Calculator 1421** Calculator
1604 1422
1605---
1606*** Decimal display mode uses "," groups, so it's more 1423*** Decimal display mode uses "," groups, so it's more
1607fitting for use in money calculations 1424fitting for use in money calculations
1608 1425
1609---
1610*** Factorial works with non-integer inputs. 1426*** Factorial works with non-integer inputs.
1611 1427
1612** Hide-IfDef mode 1428** Hide-IfDef mode
1613 1429
1614---
1615*** Hide-IfDef mode now support full C/C++ expressions in macros, 1430*** Hide-IfDef mode now support full C/C++ expressions in macros,
1616macro argument expansion, interactive macro evaluation and automatic 1431macro argument expansion, interactive macro evaluation and automatic
1617scanning of #define'd symbols. 1432scanning of #define'd symbols.
1618 1433
1619---
1620*** New command 'hif-evaluate-macro', bound to 'C-c @ e', displays the 1434*** New command 'hif-evaluate-macro', bound to 'C-c @ e', displays the
1621result of evaluating a macro. 1435result of evaluating a macro.
1622 1436
1623---
1624*** New command 'hif-clear-all-ifdef-define', bound to 'C-c @ C', clears 1437*** New command 'hif-clear-all-ifdef-define', bound to 'C-c @ C', clears
1625all defined symbols in 'hide-ifdef-env'. 1438all defined symbols in 'hide-ifdef-env'.
1626 1439
1627---
1628*** New custom variable 'hide-ifdef-header-regexp' to define C/C++ header 1440*** New custom variable 'hide-ifdef-header-regexp' to define C/C++ header
1629file name patterns. Defaults to files whose extension is one of '.h', 1441file name patterns. Defaults to files whose extension is one of '.h',
1630'.hh', '.hpp', '.hxx', or '.h++', matched case-insensitively. 1442'.hh', '.hpp', '.hxx', or '.h++', matched case-insensitively.
1631 1443
1632---
1633*** New custom variable 'hide-ifdef-expand-reinclusion-protection' to prevent 1444*** New custom variable 'hide-ifdef-expand-reinclusion-protection' to prevent
1634reinclusion protected (a.k.a. "idempotent") header files from being hidden. 1445reinclusion protected (a.k.a. "idempotent") header files from being hidden.
1635(This could happen when an idempotent header file is visited again, 1446(This could happen when an idempotent header file is visited again,
1636when its guard symbol is already defined.) Defaults to t. 1447when its guard symbol is already defined.) Defaults to t.
1637 1448
1638---
1639*** New custom variable 'hide-ifdef-exclude-define-regexp' to define symbol 1449*** New custom variable 'hide-ifdef-exclude-define-regexp' to define symbol
1640name patterns (e.g. all "FOR_DOXYGEN_ONLY_*") to be ignored when 1450name patterns (e.g. all "FOR_DOXYGEN_ONLY_*") to be ignored when
1641looking for macro definitions. By default, no symbols are ignored. 1451looking for macro definitions. By default, no symbols are ignored.
1642 1452
1643** TeX mode 1453** TeX mode
1644 1454
1645+++
1646*** New custom variable 'tex-print-file-extension' to help users who 1455*** New custom variable 'tex-print-file-extension' to help users who
1647use PDF instead of DVI. 1456use PDF instead of DVI.
1648 1457
1649+++
1650*** TeX mode now supports Prettify Symbols mode. When enabling 1458*** TeX mode now supports Prettify Symbols mode. When enabling
1651'prettify-symbols-mode' in a tex-mode buffer, \alpha ... \omega, and 1459'prettify-symbols-mode' in a tex-mode buffer, \alpha ... \omega, and
1652many other math macros are displayed using unicode characters. 1460many other math macros are displayed using unicode characters.
1653 1461
1654+++
1655** New 'big-indent' style in 'whitespace-mode' highlights deep indentation. 1462** New 'big-indent' style in 'whitespace-mode' highlights deep indentation.
1656By default, 32 consecutive spaces or four consecutive TABs are 1463By default, 32 consecutive spaces or four consecutive TABs are
1657considered to be too deep, but the new variable 1464considered to be too deep, but the new variable
1658'whitespace-big-indent-regexp' can be customized to change that. 1465'whitespace-big-indent-regexp' can be customized to change that.
1659 1466
1660---
1661** New options in 'tildify-mode'. 1467** New options in 'tildify-mode'.
1662New options 'tildify-space-string', 'tildify-pattern', and 1468New options 'tildify-space-string', 'tildify-pattern', and
1663'tildify-foreach-region-function' variables make 1469'tildify-foreach-region-function' variables make
@@ -1665,7 +1471,6 @@ New options 'tildify-space-string', 'tildify-pattern', and
1665'tildify-ignored-environments-alist' variables (as well as a few 1471'tildify-ignored-environments-alist' variables (as well as a few
1666helper functions) obsolete. 1472helper functions) obsolete.
1667 1473
1668+++
1669** New package Xref replaces Etags's front-end and UI. 1474** New package Xref replaces Etags's front-end and UI.
1670 1475
1671The new package Xref provides a generic framework and new commands to 1476The new package Xref provides a generic framework and new commands to
@@ -1693,11 +1498,9 @@ As a result of this, the following commands are now obsolete:
1693'tags-search' and 'tags-query-replace', for which there are no direct 1498'tags-search' and 'tags-query-replace', for which there are no direct
1694replacements yet. 1499replacements yet.
1695 1500
1696+++
1697*** Variants of 'tags-search' and 'tags-query-replace' in Dired were also 1501*** Variants of 'tags-search' and 'tags-query-replace' in Dired were also
1698replaced by xref-style commands, see the "Dired" section below. 1502replaced by xref-style commands, see the "Dired" section below.
1699 1503
1700+++
1701*** New variables 1504*** New variables
1702 1505
1703'find-tag-marker-ring-length' is now an obsolete alias for 1506'find-tag-marker-ring-length' is now an obsolete alias for
@@ -1706,7 +1509,6 @@ alias for a private variable. 'xref-push-marker-stack' and
1706'xref-pop-marker-stack' should be used instead to manipulate the stack 1509'xref-pop-marker-stack' should be used instead to manipulate the stack
1707of searches for definitions. 1510of searches for definitions.
1708 1511
1709---
1710*** 'xref-find-definitions' and 'describe-function' now display 1512*** 'xref-find-definitions' and 'describe-function' now display
1711information about mode local overrides (defined by cedet/mode-local.el 1513information about mode local overrides (defined by cedet/mode-local.el
1712'define-overloadable-function' 'define-mode-local-overrides'). 1514'define-overloadable-function' 'define-mode-local-overrides').
@@ -1714,7 +1516,6 @@ information about mode local overrides (defined by cedet/mode-local.el
1714The framework's Lisp API is still experimental and can change in major, 1516The framework's Lisp API is still experimental and can change in major,
1715backward-incompatible ways. 1517backward-incompatible ways.
1716 1518
1717---
1718** New package Project 1519** New package Project
1719 1520
1720The new package Project provides generic infrastructure for dealing 1521The new package Project provides generic infrastructure for dealing
@@ -1726,69 +1527,54 @@ The Lisp API of this package is still experimental.
1726** EUDC 1527** EUDC
1727EUDC's LDAP backend has been improved. 1528EUDC's LDAP backend has been improved.
1728 1529
1729+++
1730*** EUDC supports LDAP-over-SSL URLs (ldaps://). 1530*** EUDC supports LDAP-over-SSL URLs (ldaps://).
1731 1531
1732---
1733*** EUDC passes LDAP passwords through a pipe to the ldapsearch 1532*** EUDC passes LDAP passwords through a pipe to the ldapsearch
1734subprocess instead of on the command line. 1533subprocess instead of on the command line.
1735 1534
1736---
1737*** EUDC handles LDAP wildcards automatically so the user shouldn't 1535*** EUDC handles LDAP wildcards automatically so the user shouldn't
1738need to configure this manually anymore. 1536need to configure this manually anymore.
1739 1537
1740+++
1741*** The LDAP configuration section of EUDC's manual has been 1538*** The LDAP configuration section of EUDC's manual has been
1742rewritten. 1539rewritten.
1743 1540
1744There have also been customization changes. 1541There have also been customization changes.
1745 1542
1746+++
1747*** New custom variable 'eudc-server-hotlist' to allow specifying 1543*** New custom variable 'eudc-server-hotlist' to allow specifying
1748multiple EUDC servers in init file. 1544multiple EUDC servers in init file.
1749 1545
1750+++
1751*** Custom variable 'eudc-inline-query-format' defaults to completing 1546*** Custom variable 'eudc-inline-query-format' defaults to completing
1752on email and firstname instead of surname. 1547on email and firstname instead of surname.
1753 1548
1754---
1755*** Custom variable 'eudc-expansion-overwrites-query' defaults to nil 1549*** Custom variable 'eudc-expansion-overwrites-query' defaults to nil
1756to avoid interfering with the kill ring. 1550to avoid interfering with the kill ring.
1757 1551
1758+++
1759*** Custom variable 'eudc-inline-expansion-format' defaults to 1552*** Custom variable 'eudc-inline-expansion-format' defaults to
1760"Firstname Surname <mail-address>". 1553"Firstname Surname <mail-address>".
1761 1554
1762+++
1763*** Custom variable 'eudc-options-file' defaults to 1555*** Custom variable 'eudc-options-file' defaults to
1764"~/.emacs.d/eudc-options". 1556"~/.emacs.d/eudc-options".
1765 1557
1766---
1767*** New custom variable 'ldap-ldapsearch-password-prompt-regexp' to 1558*** New custom variable 'ldap-ldapsearch-password-prompt-regexp' to
1768allow overriding the regular expression that recognizes the ldapsearch 1559allow overriding the regular expression that recognizes the ldapsearch
1769command line's password prompt. 1560command line's password prompt.
1770 1561
1771--- 1562*** EUDC's BBDB backend now supports BBDB 3.
1772EUDC's BBDB backend now supports BBDB 3.
1773 1563
1774--- 1564*** EUDC's PH backend (eudcb-ph.el) is obsolete.
1775EUDC's PH backend (eudcb-ph.el) is obsolete.
1776 1565
1777** Eshell 1566** Eshell
1778 1567
1779+++
1780*** The new built-in command 'clear' can scroll window contents out of sight. 1568*** The new built-in command 'clear' can scroll window contents out of sight.
1781If provided with an optional non-nil argument, the scrollback contents 1569If provided with an optional non-nil argument, the scrollback contents
1782will be cleared. 1570will be cleared.
1783 1571
1784+++
1785*** New buffer syntax '#<buffer-name>', which is equivalent to 1572*** New buffer syntax '#<buffer-name>', which is equivalent to
1786'#<buffer buffer-name>'. This shorthand makes interacting with 1573'#<buffer buffer-name>'. This shorthand makes interacting with
1787buffers from eshell more convenient. Custom variable 1574buffers from eshell more convenient. Custom variable
1788'eshell-buffer-shorthand', which has been broken for a while, has been 1575'eshell-buffer-shorthand', which has been broken for a while, has been
1789removed. 1576removed.
1790 1577
1791+++
1792*** By default, eshell "visual" program buffers (created by 1578*** By default, eshell "visual" program buffers (created by
1793'eshell-visual-commands' and similar custom vars) are no longer killed 1579'eshell-visual-commands' and similar custom vars) are no longer killed
1794when their processes die. This fixes issues with short-lived commands 1580when their processes die. This fixes issues with short-lived commands
@@ -1799,55 +1585,43 @@ make the new option 'eshell-destroy-buffer-when-process-dies' non-nil.
1799 1585
1800** Browse-url 1586** Browse-url
1801 1587
1802---
1803*** Support for the Google Chrome web browser. 1588*** Support for the Google Chrome web browser.
1804 1589
1805---
1806*** Support for the Conkeror web browser. 1590*** Support for the Conkeror web browser.
1807 1591
1808---
1809*** Support for several ancient browsers is now officially obsolete. 1592*** Support for several ancient browsers is now officially obsolete.
1810 1593
1811+++
1812** 'tar-mode': new 'tar-new-entry' command, allowing for new members to 1594** 'tar-mode': new 'tar-new-entry' command, allowing for new members to
1813be added to the archive. 1595be added to the archive.
1814 1596
1815** Autorevert 1597** Autorevert
1816 1598
1817---
1818*** Dired buffers are also auto-reverted via file notifications, if 1599*** Dired buffers are also auto-reverted via file notifications, if
1819Emacs is compiled with file notification support. 1600Emacs is compiled with file notification support.
1820 1601
1821---
1822*** 'auto-revert-use-notify' is set to nil in 'global-auto-revert-mode'. 1602*** 'auto-revert-use-notify' is set to nil in 'global-auto-revert-mode'.
1823See <http://debbugs.gnu.org/22814>. 1603See <http://debbugs.gnu.org/22814>.
1824 1604
1825** File Notifications 1605** File Notifications
1826 1606
1827+++
1828*** The kqueue library is integrated for *BSD and Mac OS X machines. 1607*** The kqueue library is integrated for *BSD and Mac OS X machines.
1829 1608
1830+++
1831*** The new event 'stopped' signals, that a file notification watch is 1609*** The new event 'stopped' signals, that a file notification watch is
1832not active any longer. 1610not active any longer.
1833 1611
1834+++
1835*** The new function 'file-notify-valid-p' checks, whether a file 1612*** The new function 'file-notify-valid-p' checks, whether a file
1836notification descriptor still corresponds to an activate watch. 1613notification descriptor still corresponds to an activate watch.
1837 1614
1838** Dired 1615** Dired
1839 1616
1840+++
1841*** The command 'dired-do-compress', bound to 'Z', now can compress 1617*** The command 'dired-do-compress', bound to 'Z', now can compress
1842directories and decompress zip files. 1618directories and decompress zip files.
1843 1619
1844+++
1845*** New command 'dired-do-compress-to', bound to 'c', can be used to 1620*** New command 'dired-do-compress-to', bound to 'c', can be used to
1846compress many marked files into a single named archive. The 1621compress many marked files into a single named archive. The
1847compression command is determined from the new 1622compression command is determined from the new
1848'dired-compress-files-alist' variable. 1623'dired-compress-files-alist' variable.
1849 1624
1850+++
1851*** New user interface for the 'A' and 'Q' commands. 1625*** New user interface for the 'A' and 'Q' commands.
1852These keys, now bound to 'dired-do-find-regexp' and 1626These keys, now bound to 'dired-do-find-regexp' and
1853'dired-do-find-regexp-and-replace', work similarly to 'xref-find-apropos' 1627'dired-do-find-regexp-and-replace', work similarly to 'xref-find-apropos'
@@ -1861,28 +1635,23 @@ back. We intend to obsolete the old commands in a future release.
1861 1635
1862** Tabulated List Mode 1636** Tabulated List Mode
1863 1637
1864+++
1865*** It is now safe for a mode that derives 'tabulated-list-mode' to not 1638*** It is now safe for a mode that derives 'tabulated-list-mode' to not
1866call 'tabulated-list-init-header', in which case it will have no 1639call 'tabulated-list-init-header', in which case it will have no
1867header. 1640header.
1868 1641
1869+++
1870*** 'tabulated-list-print' takes a second optional argument, UPDATE, 1642*** 'tabulated-list-print' takes a second optional argument, UPDATE,
1871which specifies an alternative printing method which is faster when 1643which specifies an alternative printing method which is faster when
1872few or no entries have changed. 1644few or no entries have changed.
1873 1645
1874** Obsolete packages 1646** Obsolete packages
1875 1647
1876---
1877*** gulp.el 1648*** gulp.el
1878 1649
1879---
1880*** landmark.el (moved to elpa.gnu.org) 1650*** landmark.el (moved to elpa.gnu.org)
1881 1651
1882 1652
1883* New Modes and Packages in Emacs 25.1 1653* New Modes and Packages in Emacs 25.1
1884 1654
1885---
1886** pinentry.el allows GnuPG passphrase to be prompted through the 1655** pinentry.el allows GnuPG passphrase to be prompted through the
1887minibuffer instead of a graphical dialog, depending on whether the gpg 1656minibuffer instead of a graphical dialog, depending on whether the gpg
1888command is called from Emacs (i.e., INSIDE_EMACS environment variable 1657command is called from Emacs (i.e., INSIDE_EMACS environment variable
@@ -1891,60 +1660,49 @@ later) and Pinentry (0.9.5 or later). To use this feature, add
1891"allow-emacs-pinentry" to "~/.gnupg/gpg-agent.conf" and reload the 1660"allow-emacs-pinentry" to "~/.gnupg/gpg-agent.conf" and reload the
1892configuration with "gpgconf --reload gpg-agent". 1661configuration with "gpgconf --reload gpg-agent".
1893 1662
1894+++
1895** cl-generic.el provides CLOS-style multiple-dispatch generic functions. 1663** cl-generic.el provides CLOS-style multiple-dispatch generic functions.
1896The main entry points are 'cl-defgeneric' and 'cl-defmethod'. See the 1664The main entry points are 'cl-defgeneric' and 'cl-defmethod'. See the
1897node "Generic Functions" in the Emacs Lisp manual for more details. 1665node "Generic Functions" in the Emacs Lisp manual for more details.
1898 1666
1899---
1900** 'scss-mode' (a minor variant of 'css-mode') is a major mode for editing 1667** 'scss-mode' (a minor variant of 'css-mode') is a major mode for editing
1901SCSS (Sassy CSS) files. 1668SCSS (Sassy CSS) files.
1902 1669
1903---
1904** 'let-alist' is a new macro (and a package) that allows one to easily 1670** 'let-alist' is a new macro (and a package) that allows one to easily
1905let-bind the values stored in an alist. 1671let-bind the values stored in an alist.
1906 1672
1907---
1908** 'tildify-mode' allows automatic insertion of hard spaces as one 1673** 'tildify-mode' allows automatic insertion of hard spaces as one
1909types the text. Breaking line after a single-character words is 1674types the text. Breaking line after a single-character words is
1910forbidden by Czech and Polish typography (and may be discouraged in 1675forbidden by Czech and Polish typography (and may be discouraged in
1911other languages), so 'auto-tildify-mode' makes it easier to create 1676other languages), so 'auto-tildify-mode' makes it easier to create
1912a typographically-correct documents. 1677a typographically-correct documents.
1913 1678
1914---
1915** The 'seq' library adds sequence manipulation functions and macros 1679** The 'seq' library adds sequence manipulation functions and macros
1916that complement basic functions provided by subr.el. All functions 1680that complement basic functions provided by subr.el. All functions
1917are prefixed with 'seq-' and work on lists, strings and vectors. 1681are prefixed with 'seq-' and work on lists, strings and vectors.
1918'pcase' accepts a new Upattern 'seq'. 1682'pcase' accepts a new Upattern 'seq'.
1919 1683
1920---
1921** The 'map' library provides map-manipulation functions that work on 1684** The 'map' library provides map-manipulation functions that work on
1922alists, hash-table and arrays. All functions are prefixed with 1685alists, hash-table and arrays. All functions are prefixed with
1923'map-'. 'pcase' accepts a new UPattern 'map'. 1686'map-'. 'pcase' accepts a new UPattern 'map'.
1924 1687
1925---
1926** The 'thunk' library provides functions and macros to control the 1688** The 'thunk' library provides functions and macros to control the
1927evaluation of forms. 1689evaluation of forms.
1928 1690
1929---
1930** 'js-jsx-mode' (a minor variant of 'js-mode') provides indentation 1691** 'js-jsx-mode' (a minor variant of 'js-mode') provides indentation
1931support for JSX, an XML-like syntax extension to ECMAScript. 1692support for JSX, an XML-like syntax extension to ECMAScript.
1932 1693
1933 1694
1934* Incompatible Lisp Changes in Emacs 25.1 1695* Incompatible Lisp Changes in Emacs 25.1
1935 1696
1936---
1937** 'setq' and 'setf' must now be called with an even number of 1697** 'setq' and 'setf' must now be called with an even number of
1938arguments. The earlier behavior of silently supplying a nil to the 1698arguments. The earlier behavior of silently supplying a nil to the
1939last variable when there was an odd number of arguments has been 1699last variable when there was an odd number of arguments has been
1940eliminated. 1700eliminated.
1941 1701
1942+++
1943** 'syntax-begin-function' is declared obsolete. 1702** 'syntax-begin-function' is declared obsolete.
1944Removed 'font-lock-beginning-of-syntax-function' and the SYNTAX-BEGIN 1703Removed 'font-lock-beginning-of-syntax-function' and the SYNTAX-BEGIN
1945slot in 'font-lock-defaults'. 1704slot in 'font-lock-defaults'.
1946 1705
1947+++
1948** The new implementation of Subword mode affects word movement everywhere. 1706** The new implementation of Subword mode affects word movement everywhere.
1949When Subword mode is turned on, 'forward-word', 'backward-word', and 1707When Subword mode is turned on, 'forward-word', 'backward-word', and
1950everything that uses them will move by sub-words, effectively 1708everything that uses them will move by sub-words, effectively
@@ -1952,19 +1710,16 @@ overriding the buffer's syntax table. Lisp programs that shouldn't be
1952affected by Subword mode should call the new functions 1710affected by Subword mode should call the new functions
1953'forward-word-strictly' and 'backward-word-strictly' instead. 1711'forward-word-strictly' and 'backward-word-strictly' instead.
1954 1712
1955+++
1956** 'package-initialize' now sets 'package-enable-at-startup' to nil if 1713** 'package-initialize' now sets 'package-enable-at-startup' to nil if
1957called during startup. Users who call this function in their init 1714called during startup. Users who call this function in their init
1958file and still expect it to be run after startup should set 1715file and still expect it to be run after startup should set
1959'package-enable-at-startup' to t after the call to 1716'package-enable-at-startup' to t after the call to
1960'package-initialize'. 1717'package-initialize'.
1961 1718
1962---
1963** ':global' minor mode use 'setq-default' rather than 'setq'. 1719** ':global' minor mode use 'setq-default' rather than 'setq'.
1964This means that you can't use 'make-local-variable' and expect them to 1720This means that you can't use 'make-local-variable' and expect them to
1965"magically" become buffer-local. 1721"magically" become buffer-local.
1966 1722
1967+++
1968** 'track-mouse' no longer freezes the shape of the mouse pointer. 1723** 'track-mouse' no longer freezes the shape of the mouse pointer.
1969The 'track-mouse' form no longer refrains from changing the shape of 1724The 'track-mouse' form no longer refrains from changing the shape of
1970the mouse pointer for the entire time the body of that form is 1725the mouse pointer for the entire time the body of that form is
@@ -1973,75 +1728,59 @@ large portions of the Emacs display, and want to avoid changes in the
1973pointer shape during dragging, should bind the variable 'track-mouse' 1728pointer shape during dragging, should bind the variable 'track-mouse'
1974to the special value 'dragging' in the body of the form. 1729to the special value 'dragging' in the body of the form.
1975 1730
1976---
1977** The optional PREDICATE argument of 'lisp-complete-symbol' no longer 1731** The optional PREDICATE argument of 'lisp-complete-symbol' no longer
1978has any effect. (This change was made in Emacs 24.4 but was not 1732has any effect. (This change was made in Emacs 24.4 but was not
1979advertised at the time.) 1733advertised at the time.)
1980 1734
1981+++
1982** 'indirect-function' does not signal 'void-function' any more. 1735** 'indirect-function' does not signal 'void-function' any more.
1983This is mostly a bug-fix, since this change was missed back in 24.4 when 1736This is mostly a bug-fix, since this change was missed back in 24.4 when
1984'symbol-function' was changed not to signal 'void-function' any more. 1737'symbol-function' was changed not to signal 'void-function' any more.
1985 1738
1986+++
1987*** As a consequence, the second arg of 'indirect-function' is now obsolete. 1739*** As a consequence, the second arg of 'indirect-function' is now obsolete.
1988 1740
1989+++
1990** 'M-x shell' and 'M-x compile' no longer set the EMACS environment variable. 1741** 'M-x shell' and 'M-x compile' no longer set the EMACS environment variable.
1991This avoids clashing when other programs use the variable for other purposes. 1742This avoids clashing when other programs use the variable for other purposes.
1992Although 'M-x term' still sets EMACS for compatibility with Bash 4.3 1743Although 'M-x term' still sets EMACS for compatibility with Bash 4.3
1993and earlier, this is deprecated and will be phased out when Bash 4.4 1744and earlier, this is deprecated and will be phased out when Bash 4.4
1994or later takes over. Use the INSIDE_EMACS environment variable instead. 1745or later takes over. Use the INSIDE_EMACS environment variable instead.
1995 1746
1996+++
1997** 'save-excursion' does not save&restore the mark any more. 1747** 'save-excursion' does not save&restore the mark any more.
1998Use 'save-mark-and-excursion' if you want the old behavior. 1748Use 'save-mark-and-excursion' if you want the old behavior.
1999 1749
2000+++
2001** 'read-buffer' and 'read-buffer-function' can now be called with a 4th 1750** 'read-buffer' and 'read-buffer-function' can now be called with a 4th
2002argument (PREDICATE). 1751argument (PREDICATE).
2003 1752
2004+++
2005** 'completion-table-dynamic' by default stays in the minibuffer. 1753** 'completion-table-dynamic' by default stays in the minibuffer.
2006The minibuffer will be the current buffer when the function is called. 1754The minibuffer will be the current buffer when the function is called.
2007If you want the old behavior of calling the function in the buffer 1755If you want the old behavior of calling the function in the buffer
2008from which the minibuffer was entered, use the new argument 1756from which the minibuffer was entered, use the new argument
2009SWITCH-BUFFER to 'completion-table-dynamic'. 1757SWITCH-BUFFER to 'completion-table-dynamic'.
2010 1758
2011---
2012** window-configurations no longer record the buffers' marks. 1759** window-configurations no longer record the buffers' marks.
2013 1760
2014---
2015** 'inhibit-modification-hooks' now also inhibits lock-file checks, as 1761** 'inhibit-modification-hooks' now also inhibits lock-file checks, as
2016well as active region handling. 1762well as active region handling.
2017 1763
2018+++
2019** 'deactivate-mark' is now buffer-local. 1764** 'deactivate-mark' is now buffer-local.
2020 1765
2021+++
2022** 'cl-the' now asserts that its argument is of the given type. 1766** 'cl-the' now asserts that its argument is of the given type.
2023 1767
2024+++
2025** 'process-running-child-p' may now return a numeric process 1768** 'process-running-child-p' may now return a numeric process
2026group ID instead of t. 1769group ID instead of t.
2027 1770
2028+++
2029** Mouse click events on mode line or header line no longer include 1771** Mouse click events on mode line or header line no longer include
2030any reference to a buffer position. The 6th member of the mouse 1772any reference to a buffer position. The 6th member of the mouse
2031position list returned for such events is now nil. 1773position list returned for such events is now nil.
2032 1774
2033---
2034** Menu items in keymaps do not support the "key shortcut cache" any more. 1775** Menu items in keymaps do not support the "key shortcut cache" any more.
2035These slots used to hold key-shortcut data, but have been obsolete since 1776These slots used to hold key-shortcut data, but have been obsolete since
2036Emacs 21. 1777Emacs 21.
2037 1778
2038---
2039** Emacs no longer downcases the first letter of a system diagnostic 1779** Emacs no longer downcases the first letter of a system diagnostic
2040when signaling a file error. For example, it now reports "Permission 1780when signaling a file error. For example, it now reports "Permission
2041denied" instead of "permission denied". The old behavior was problematic 1781denied" instead of "permission denied". The old behavior was problematic
2042in languages like German where downcasing rules depend on grammar. 1782in languages like German where downcasing rules depend on grammar.
2043 1783
2044+++
2045** New variable 'text-quoting-style' to control how Emacs translates quotes. 1784** New variable 'text-quoting-style' to control how Emacs translates quotes.
2046Set it to 'curve' for curved single quotes, to 'straight' for straight 1785Set it to 'curve' for curved single quotes, to 'straight' for straight
2047apostrophes, and to 'grave' for grave accent and apostrophe. The 1786apostrophes, and to 'grave' for grave accent and apostrophe. The
@@ -2050,7 +1789,6 @@ displayable, and like 'grave' otherwise. The new variable affects
2050display of diagnostics and help, but not of info. As the variable is 1789display of diagnostics and help, but not of info. As the variable is
2051not intended for casual use, it is not a user option. 1790not intended for casual use, it is not a user option.
2052 1791
2053+++
2054** Message-issuing functions like 'message' and 'error' now translate 1792** Message-issuing functions like 'message' and 'error' now translate
2055various sorts of single quotes in their format strings according to 1793various sorts of single quotes in their format strings according to
2056the value of 'text-quoting-style' (see above). This translation 1794the value of 'text-quoting-style' (see above). This translation
@@ -2058,20 +1796,17 @@ cannot be disabled. To get the old behavior, use 'format', which is
2058not affected by 'text-quoting-style', e.g., (message "%s" (format 1796not affected by 'text-quoting-style', e.g., (message "%s" (format
2059"...." foo bar)). 1797"...." foo bar)).
2060 1798
2061+++
2062** 'substitute-command-keys' now replaces quotes. 1799** 'substitute-command-keys' now replaces quotes.
2063That is, it converts documentation strings' quoting style as per the 1800That is, it converts documentation strings' quoting style as per the
2064value of 'text-quoting-style'. Doc strings in source code can use 1801value of 'text-quoting-style'. Doc strings in source code can use
2065either curved single quotes or grave accents and apostrophes. As 1802either curved single quotes or grave accents and apostrophes. As
2066before, characters preceded by \= are output as-is. 1803before, characters preceded by \= are output as-is.
2067 1804
2068+++
2069** The character classes [:alpha:] and [:alnum:] in regular expressions 1805** The character classes [:alpha:] and [:alnum:] in regular expressions
2070now match multibyte characters using Unicode character properties. 1806now match multibyte characters using Unicode character properties.
2071If you want the old behavior where they matched any character with 1807If you want the old behavior where they matched any character with
2072word syntax, use '\sw' instead. 1808word syntax, use '\sw' instead.
2073 1809
2074+++
2075** The character classes [:graph:] and [:print:] in regular expressions 1810** The character classes [:graph:] and [:print:] in regular expressions
2076no longer match every multibyte character. Instead, Emacs now 1811no longer match every multibyte character. Instead, Emacs now
2077consults the Unicode character properties to determine which 1812consults the Unicode character properties to determine which
@@ -2079,23 +1814,19 @@ characters are graphic or printable. In particular, surrogates and
2079unassigned codepoints are now rejected. If you want the old behavior, 1814unassigned codepoints are now rejected. If you want the old behavior,
2080use [:multibyte:] instead. 1815use [:multibyte:] instead.
2081 1816
2082+++
2083** The 'diff' command uses the unified format now. To restore the old 1817** The 'diff' command uses the unified format now. To restore the old
2084behavior, set 'diff-switches' to '-c'. 1818behavior, set 'diff-switches' to '-c'.
2085 1819
2086---
2087** 'grep-template' and 'grep-find-template' values don't include the 1820** 'grep-template' and 'grep-find-template' values don't include the
2088--color argument anymore. It's added at the <C> place holder position 1821--color argument anymore. It's added at the <C> place holder position
2089dynamically. Any third-party code that changes these templates should 1822dynamically. Any third-party code that changes these templates should
2090be updated accordingly. 1823be updated accordingly.
2091 1824
2092+++
2093** '(/ N)' is now equivalent to '(/ 1 N)' rather than to '(/ N 1)'. 1825** '(/ N)' is now equivalent to '(/ 1 N)' rather than to '(/ N 1)'.
2094The new behavior is compatible with Common Lisp and with XEmacs. 1826The new behavior is compatible with Common Lisp and with XEmacs.
2095This change does not affect Lisp code intended to be portable to 1827This change does not affect Lisp code intended to be portable to
2096Emacs 24.2 and earlier, which did not support unary '/'. 1828Emacs 24.2 and earlier, which did not support unary '/'.
2097 1829
2098+++
2099** The 'default-directory' value doesn't have to end slash. To make 1830** The 'default-directory' value doesn't have to end slash. To make
2100that happen, 'unhandled-file-name-directory' now defaults to calling 1831that happen, 'unhandled-file-name-directory' now defaults to calling
2101'file-name-as-directory'. 1832'file-name-as-directory'.
@@ -2104,62 +1835,48 @@ that happen, 'unhandled-file-name-directory' now defaults to calling
2104* Lisp Changes in Emacs 25.1 1835* Lisp Changes in Emacs 25.1
2105 1836
2106** 'pcase' 1837** 'pcase'
2107+++
2108*** New UPatterns 'quote', 'app'. 1838*** New UPatterns 'quote', 'app'.
2109+++
2110*** New UPatterns can be defined with 'pcase-defmacro'. 1839*** New UPatterns can be defined with 'pcase-defmacro'.
2111+++
2112*** New vector QPattern. 1840*** New vector QPattern.
2113 1841
2114---
2115** 'syntax-propertize' is now automatically called on-demand during forward 1842** 'syntax-propertize' is now automatically called on-demand during forward
2116parsing functions like 'forward-sexp'. 1843parsing functions like 'forward-sexp'.
2117 1844
2118+++
2119** New hooks 'prefix-command-echo-keystrokes-functions' and 1845** New hooks 'prefix-command-echo-keystrokes-functions' and
2120'prefix-command-preserve-state-hook' allow the definition of prefix 1846'prefix-command-preserve-state-hook' allow the definition of prefix
2121commands other than the predefined 'C-u'. 1847commands other than the predefined 'C-u'.
2122 1848
2123+++
2124** New functions 'filepos-to-bufferpos' and 'bufferpos-to-filepos'. 1849** New functions 'filepos-to-bufferpos' and 'bufferpos-to-filepos'.
2125These allow conversion between buffer positions and the corresponding 1850These allow conversion between buffer positions and the corresponding
2126file byte offsets, given the file's encoding. 1851file byte offsets, given the file's encoding.
2127 1852
2128+++
2129** The default value of 'load-read-function' is now 'read'. 1853** The default value of 'load-read-function' is now 'read'.
2130Previously, the default value of nil implied using 'read'. 1854Previously, the default value of nil implied using 'read'.
2131 1855
2132+++
2133** New hook 'pre-redisplay-functions'. 1856** New hook 'pre-redisplay-functions'.
2134It is a bit easier to use than 'pre-redisplay-function'. 1857It is a bit easier to use than 'pre-redisplay-function'.
2135 1858
2136+++
2137** The second arg of 'looking-back' should always be provided explicitly. 1859** The second arg of 'looking-back' should always be provided explicitly.
2138Previously, it was an optional argument, now it's mandatory. 1860Previously, it was an optional argument, now it's mandatory.
2139 1861
2140+++
2141** Text properties 'intangible', 'point-entered', and 'point-left' are obsolete. 1862** Text properties 'intangible', 'point-entered', and 'point-left' are obsolete.
2142Replaced by properties 'cursor-intangible' and 'cursor-sensor-functions', 1863Replaced by properties 'cursor-intangible' and 'cursor-sensor-functions',
2143implemented by the new 'cursor-intangible-mode' and 1864implemented by the new 'cursor-intangible-mode' and
2144'cursor-sensor-mode' minor modes. 1865'cursor-sensor-mode' minor modes.
2145 1866
2146+++
2147** 'inhibit-point-motion-hooks' now defaults to t and is obsolete. 1867** 'inhibit-point-motion-hooks' now defaults to t and is obsolete.
2148Use the new minor modes 'cursor-intangible-mode' and 1868Use the new minor modes 'cursor-intangible-mode' and
2149'cursor-sensor-mode' instead. 1869'cursor-sensor-mode' instead.
2150 1870
2151+++
2152** New process type 'pipe', which can be used in combination with the 1871** New process type 'pipe', which can be used in combination with the
2153':stderr' keyword of 'make-process' to handle standard error output 1872':stderr' keyword of 'make-process' to handle standard error output
2154of subprocess. 1873of subprocess.
2155 1874
2156+++
2157** New function 'make-process' provides an alternative interface to 1875** New function 'make-process' provides an alternative interface to
2158'start-process'. It allows programs to set process parameters such as 1876'start-process'. It allows programs to set process parameters such as
2159process filter, sentinel, etc., through keyword arguments (similar to 1877process filter, sentinel, etc., through keyword arguments (similar to
2160'make-network-process'). 1878'make-network-process').
2161 1879
2162+++
2163** Subprocesses are automatically told about changes in window dimensions. 1880** Subprocesses are automatically told about changes in window dimensions.
2164The new option 'window-adjust-process-window-size-function' controls 1881The new option 'window-adjust-process-window-size-function' controls
2165how subprocesses are told to adapt their logical window sizes to 1882how subprocesses are told to adapt their logical window sizes to
@@ -2167,48 +1884,37 @@ changes in the Emacs window configuration. Its default value calls
2167'set-process-window-size' with the smallest dimensions of all the 1884'set-process-window-size' with the smallest dimensions of all the
2168windows that display the subprocess's buffer. 1885windows that display the subprocess's buffer.
2169 1886
2170+++
2171** A new function 'directory-files-recursively' returns all matching 1887** A new function 'directory-files-recursively' returns all matching
2172files (recursively) under a directory. 1888files (recursively) under a directory.
2173 1889
2174+++
2175** New variable 'inhibit-message', when bound to non-nil, inhibits 1890** New variable 'inhibit-message', when bound to non-nil, inhibits
2176'message' and related functions from displaying messages in the echo 1891'message' and related functions from displaying messages in the echo
2177area. The output is still logged to the '*Messages*' buffer. 1892area. The output is still logged to the '*Messages*' buffer.
2178 1893
2179+++
2180** A new text property 'inhibit-read-only' can be used in read-only 1894** A new text property 'inhibit-read-only' can be used in read-only
2181buffers to allow certain parts of the text to be writable. 1895buffers to allow certain parts of the text to be writable.
2182 1896
2183+++
2184** A new variable 'comment-end-can-be-escaped' is useful in languages 1897** A new variable 'comment-end-can-be-escaped' is useful in languages
2185such as C and C++ where line comments with escaped newlines are 1898such as C and C++ where line comments with escaped newlines are
2186continued to the next line. 1899continued to the next line.
2187 1900
2188+++
2189** New macro 'define-advice'. 1901** New macro 'define-advice'.
2190 1902
2191+++
2192** Emacs Lisp now supports generators. 1903** Emacs Lisp now supports generators.
2193See the "Generators" section of the ELisp manual for the details. 1904See the "Generators" section of the ELisp manual for the details.
2194 1905
2195+++
2196** New finalizer facility for running code when objects become unreachable. 1906** New finalizer facility for running code when objects become unreachable.
2197See the "Finalizer Type" subsection in the ELisp manual for the 1907See the "Finalizer Type" subsection in the ELisp manual for the
2198details. 1908details.
2199 1909
2200---
2201** Lexical closures can use '(:documentation FORM)' to build their docstring. 1910** Lexical closures can use '(:documentation FORM)' to build their docstring.
2202It should be placed right where the docstring would be, and FORM is then 1911It should be placed right where the docstring would be, and FORM is then
2203evaluated (and should return a string) when the closure is built. 1912evaluated (and should return a string) when the closure is built.
2204 1913
2205+++
2206** 'define-inline' provides a new way to define inlinable functions. 1914** 'define-inline' provides a new way to define inlinable functions.
2207 1915
2208+++
2209** New function 'macroexpand-1' to perform a single step of macro expansion. 1916** New function 'macroexpand-1' to perform a single step of macro expansion.
2210 1917
2211+++
2212** Some "x-*" functions were obsoleted and/or renamed: 1918** Some "x-*" functions were obsoleted and/or renamed:
2213*** 'x-select-text' is renamed 'gui-select-text'. 1919*** 'x-select-text' is renamed 'gui-select-text'.
2214*** 'x-selection-value' is renamed 'gui-selection-value'. 1920*** 'x-selection-value' is renamed 'gui-selection-value'.
@@ -2217,18 +1923,15 @@ evaluated (and should return a string) when the closure is built.
2217*** 'x-get-selection-value' is renamed to 'gui-get-primary-selection'. 1923*** 'x-get-selection-value' is renamed to 'gui-get-primary-selection'.
2218*** 'x-set-selection' is renamed to 'gui-set-selection'. 1924*** 'x-set-selection' is renamed to 'gui-set-selection'.
2219 1925
2220+++
2221** New function 'string-greaterp', which return the opposite result of 1926** New function 'string-greaterp', which return the opposite result of
2222'string-lessp'. 1927'string-lessp'.
2223 1928
2224+++
2225** The new functions 'string-collate-lessp' and 'string-collate-equalp' 1929** The new functions 'string-collate-lessp' and 'string-collate-equalp'
2226preserve the collation order as defined by the system's locale(1) 1930preserve the collation order as defined by the system's locale(1)
2227environment. For the time being this is implemented for modern POSIX 1931environment. For the time being this is implemented for modern POSIX
2228systems and for MS-Windows, for other systems they fall back to their 1932systems and for MS-Windows, for other systems they fall back to their
2229counterparts 'string-lessp' and 'string-equal'. 1933counterparts 'string-lessp' and 'string-equal'.
2230 1934
2231---
2232*** The ls-lisp package uses 'string-collate-lessp' to sort file names. 1935*** The ls-lisp package uses 'string-collate-lessp' to sort file names.
2233The effect is that, on systems that use ls-lisp for Dired, the default 1936The effect is that, on systems that use ls-lisp for Dired, the default
2234sort order of the files in Dired is now different from what it was in 1937sort order of the files in Dired is now different from what it was in
@@ -2239,7 +1942,6 @@ longer appear near the beginning of the directory listing. If you
2239want the old, locale-independent sorting, customize the new option 1942want the old, locale-independent sorting, customize the new option
2240'ls-lisp-use-string-collate' to the nil value. 1943'ls-lisp-use-string-collate' to the nil value.
2241 1944
2242+++
2243*** The MS-Windows specific variable 'w32-collate-ignore-punctuation', 1945*** The MS-Windows specific variable 'w32-collate-ignore-punctuation',
2244if set to a non-nil value, causes the above 2 functions to ignore 1946if set to a non-nil value, causes the above 2 functions to ignore
2245symbol and punctuation characters when collating strings. This 1947symbol and punctuation characters when collating strings. This
@@ -2247,50 +1949,40 @@ emulates the behavior of modern Posix platforms when the locale's
2247codeset is "UTF-8" (as in "en_US.UTF-8"). This is needed because 1949codeset is "UTF-8" (as in "en_US.UTF-8"). This is needed because
2248MS-Windows doesn't support UTF-8 as codeset in its locales. 1950MS-Windows doesn't support UTF-8 as codeset in its locales.
2249 1951
2250+++
2251** New function 'alist-get', which is a generalized variable 1952** New function 'alist-get', which is a generalized variable
2252suitable for use with 'setf'. 1953suitable for use with 'setf'.
2253 1954
2254+++
2255** New function 'funcall-interactively', which works like 'funcall' 1955** New function 'funcall-interactively', which works like 'funcall'
2256but makes 'called-interactively-p' treat the function as (you guessed it) 1956but makes 'called-interactively-p' treat the function as (you guessed it)
2257called interactively. 1957called interactively.
2258 1958
2259+++
2260** New function 'function-put' to use instead of 'put' for function properties. 1959** New function 'function-put' to use instead of 'put' for function properties.
2261 1960
2262+++
2263** The new function 'bidi-find-overridden-directionality' allows you to 1961** The new function 'bidi-find-overridden-directionality' allows you to
2264find characters whose directionality was, perhaps maliciously, 1962find characters whose directionality was, perhaps maliciously,
2265overridden by directional override control characters. Lisp programs 1963overridden by directional override control characters. Lisp programs
2266can use this to detect potential phishing of URLs and other links that 1964can use this to detect potential phishing of URLs and other links that
2267exploits bidirectional display reordering. 1965exploits bidirectional display reordering.
2268 1966
2269+++
2270** The new function 'buffer-substring-with-bidi-context' allows you to 1967** The new function 'buffer-substring-with-bidi-context' allows you to
2271copy a portion of a buffer into a different location while preserving 1968copy a portion of a buffer into a different location while preserving
2272the visual appearance both of the copied text and the text at 1969the visual appearance both of the copied text and the text at
2273destination, even when the copied text includes mixed bidirectional 1970destination, even when the copied text includes mixed bidirectional
2274text and directional control characters. 1971text and directional control characters.
2275 1972
2276+++
2277** New properties that can be specified with 'declare': 1973** New properties that can be specified with 'declare':
2278*** '(interactive-only INSTEAD)', says to use INSTEAD for non-interactive use. 1974*** '(interactive-only INSTEAD)', says to use INSTEAD for non-interactive use.
2279*** '(pure VAL)', if VAL is non-nil, indicates the function is pure. 1975*** '(pure VAL)', if VAL is non-nil, indicates the function is pure.
2280*** '(side-effect-free VAL)', if VAL is non-nil, indicates the function does not 1976*** '(side-effect-free VAL)', if VAL is non-nil, indicates the function does not
2281have side effects. 1977have side effects.
2282 1978
2283+++
2284** New macro 'with-file-modes', for evaluating expressions with default file 1979** New macro 'with-file-modes', for evaluating expressions with default file
2285permissions set to temporary values (e.g., for creating private files). 1980permissions set to temporary values (e.g., for creating private files).
2286 1981
2287+++
2288** You can access the slots of structures using 'cl-struct-slot-value'. 1982** You can access the slots of structures using 'cl-struct-slot-value'.
2289 1983
2290+++
2291** Function 'sort' can deal with vectors. 1984** Function 'sort' can deal with vectors.
2292 1985
2293---
2294** Function 'system-name' now returns an updated value if the current 1986** Function 'system-name' now returns an updated value if the current
2295system's name has changed or if the Emacs process has changed systems. 1987system's name has changed or if the Emacs process has changed systems.
2296To avoid long waits it no longer consults DNS to canonicalize the name 1988To avoid long waits it no longer consults DNS to canonicalize the name
@@ -2298,35 +1990,28 @@ To avoid long waits it no longer consults DNS to canonicalize the name
2298'message-user-fqdn' if this bothers you). The variable 'system-name' 1990'message-user-fqdn' if this bothers you). The variable 'system-name'
2299is now obsolete. 1991is now obsolete.
2300 1992
2301+++
2302** Function 'write-region' no longer outputs "Wrote FILE" in batch mode. 1993** Function 'write-region' no longer outputs "Wrote FILE" in batch mode.
2303 1994
2304---
2305** If 'pwd' is called with a prefix argument, insert the current default 1995** If 'pwd' is called with a prefix argument, insert the current default
2306directory at point. 1996directory at point.
2307 1997
2308+++
2309** New functions return extended information about fonts and faces. 1998** New functions return extended information about fonts and faces.
2310 1999
2311+++
2312*** The function 'font-info' now returns more details about a font. 2000*** The function 'font-info' now returns more details about a font.
2313In particular, it now returns the average width of the font's 2001In particular, it now returns the average width of the font's
2314characters, which can be used for geometry-related calculations. 2002characters, which can be used for geometry-related calculations.
2315 2003
2316+++
2317*** A new function 'default-font-width' returns the average width of a 2004*** A new function 'default-font-width' returns the average width of a
2318character in the current buffer's default font. If the default face 2005character in the current buffer's default font. If the default face
2319is remapped (see 'face-remapping-alist'), the value for the remapped 2006is remapped (see 'face-remapping-alist'), the value for the remapped
2320face is returned. This function complements the existing function 2007face is returned. This function complements the existing function
2321'default-font-height'. 2008'default-font-height'.
2322 2009
2323+++
2324*** New functions 'window-font-height' and 'window-font-width' return 2010*** New functions 'window-font-height' and 'window-font-width' return
2325the height and average width of characters in a specified face and 2011the height and average width of characters in a specified face and
2326window. If FACE is remapped (see 'face-remapping-alist'), the 2012window. If FACE is remapped (see 'face-remapping-alist'), the
2327function returns the information for the remapped face. 2013function returns the information for the remapped face.
2328 2014
2329+++
2330*** A new function 'window-max-chars-per-line' returns the maximal 2015*** A new function 'window-max-chars-per-line' returns the maximal
2331number of characters that can be displayed on one line. If a face 2016number of characters that can be displayed on one line. If a face
2332and/or window are provided, these values are used for the 2017and/or window are provided, these values are used for the
@@ -2334,7 +2019,6 @@ calculation. This function is different from 'window-body-width' in
2334that it accounts for (i) continuation glyphs, (ii) the size of the 2019that it accounts for (i) continuation glyphs, (ii) the size of the
2335font, and (iii) the specified window. 2020font, and (iii) the specified window.
2336 2021
2337---
2338** New utilities in subr-x.el: 2022** New utilities in subr-x.el:
2339 2023
2340*** New macros 'if-let' and 'when-let' allow defining bindings and to 2024*** New macros 'if-let' and 'when-let' allow defining bindings and to
@@ -2343,7 +2027,6 @@ execute code depending whether all values are true.
2343*** New macros 'thread-first' and 'thread-last' allow threading a form 2027*** New macros 'thread-first' and 'thread-last' allow threading a form
2344as the first or last argument of subsequent forms. 2028as the first or last argument of subsequent forms.
2345 2029
2346+++
2347** Documentation strings now support quoting with curved single quotes 2030** Documentation strings now support quoting with curved single quotes
2348in addition to the old style with grave accent and apostrophe. The 2031in addition to the old style with grave accent and apostrophe. The
2349new style looks better on today's displays. In the new Electric Quote 2032new style looks better on today's displays. In the new Electric Quote
@@ -2354,18 +2037,15 @@ works) by typing 'A-[' and 'A-]'. As described above under
2354'text-quoting-style', the user can specify how to display doc string 2037'text-quoting-style', the user can specify how to display doc string
2355quotes. 2038quotes.
2356 2039
2357+++
2358** New function 'format-message' is like 'format' and also converts 2040** New function 'format-message' is like 'format' and also converts
2359curved single quotes, grave accents and apostrophes as per 2041curved single quotes, grave accents and apostrophes as per
2360'text-quoting-style'. 2042'text-quoting-style'.
2361 2043
2362+++
2363** 'show-help-function's arg is converted via 'substitute-command-keys' 2044** 'show-help-function's arg is converted via 'substitute-command-keys'
2364before being passed to the function. Help strings, help-echo 2045before being passed to the function. Help strings, help-echo
2365properties, etc. can therefore contain command key escapes and 2046properties, etc. can therefore contain command key escapes and
2366quotation marks. 2047quotation marks.
2367 2048
2368+++
2369** Time-related changes: 2049** Time-related changes:
2370 2050
2371*** Time conversion functions now accept an optional ZONE argument 2051*** Time conversion functions now accept an optional ZONE argument
@@ -2398,45 +2078,37 @@ been obsoleted.
2398undocumented integer-pair format. Instead, they return a list of two 2078undocumented integer-pair format. Instead, they return a list of two
2399integers. 2079integers.
2400 2080
2401+++
2402** New function 'set-binary-mode' allows switching a standard stream 2081** New function 'set-binary-mode' allows switching a standard stream
2403of the Emacs process to binary I/O mode. 2082of the Emacs process to binary I/O mode.
2404 2083
2405+++
2406** The new function 'directory-name-p' can be used to check whether a file 2084** The new function 'directory-name-p' can be used to check whether a file
2407name (as returned from, for instance, 'file-name-all-completions') is 2085name (as returned from, for instance, 'file-name-all-completions') is
2408a directory file name. It returns non-nil if the last character in 2086a directory file name. It returns non-nil if the last character in
2409the name is a directory separator character (forward slash on GNU and 2087the name is a directory separator character (forward slash on GNU and
2410Unix systems, forward- or backslash on MS-Windows and MS-DOS). 2088Unix systems, forward- or backslash on MS-Windows and MS-DOS).
2411 2089
2412---
2413** ASCII approximations to curved quotes are put in 'standard-display-table' 2090** ASCII approximations to curved quotes are put in 'standard-display-table'
2414if the terminal cannot display curved quotes. 2091if the terminal cannot display curved quotes.
2415 2092
2416+++
2417** Standard output and error streams now transliterate characters via 2093** Standard output and error streams now transliterate characters via
2418'standard-display-table', and encode output using 'locale-coding-system'. 2094'standard-display-table', and encode output using 'locale-coding-system'.
2419To force a specific encoding, bind 'coding-system-for-write' to the 2095To force a specific encoding, bind 'coding-system-for-write' to the
2420coding-system of your choice when invoking functions like 'prin1' and 2096coding-system of your choice when invoking functions like 'prin1' and
2421'message'. 2097'message'.
2422 2098
2423+++
2424** New var 'truncate-string-ellipsis' to choose how to indicate truncation. 2099** New var 'truncate-string-ellipsis' to choose how to indicate truncation.
2425 2100
2426+++
2427** New possible value for 'system-type': 'nacl'. 2101** New possible value for 'system-type': 'nacl'.
2428This is used by Google's Native Client (NaCl). 2102This is used by Google's Native Client (NaCl).
2429 2103
2430** Miscellaneous name change 2104** Miscellaneous name change
2431 2105
2432---
2433For consistency with the usual Emacs spelling, the Lisp variable 2106For consistency with the usual Emacs spelling, the Lisp variable
2434'hfy-optimisations' has been renamed to 'hfy-optimizations'. 2107'hfy-optimisations' has been renamed to 'hfy-optimizations'.
2435The old name should still work, as an obsolescent alias. 2108The old name should still work, as an obsolescent alias.
2436 2109
2437** Changes in Frame- and Window- Handling 2110** Changes in Frame- and Window- Handling
2438 2111
2439+++
2440*** Emacs can now draw horizontal scroll bars on some platforms that 2112*** Emacs can now draw horizontal scroll bars on some platforms that
2441provide toolkit scroll bars, namely Gtk+, Lucid, Motif and Windows. 2113provide toolkit scroll bars, namely Gtk+, Lucid, Motif and Windows.
2442Horizontal scroll bars are turned off by default. 2114Horizontal scroll bars are turned off by default.
@@ -2476,30 +2148,24 @@ bars too.
2476**** New buffer-local variables 'horizontal-scroll-bar' and 2148**** New buffer-local variables 'horizontal-scroll-bar' and
2477'scroll-bar-height'. 2149'scroll-bar-height'.
2478 2150
2479+++
2480*** New functions 'frame-geometry' and 'frame-edges' give access to a 2151*** New functions 'frame-geometry' and 'frame-edges' give access to a
2481frame's geometry. 2152frame's geometry.
2482 2153
2483+++
2484*** New functions 'mouse-absolute-pixel-position' and 2154*** New functions 'mouse-absolute-pixel-position' and
2485'set-mouse-absolute-pixel-position' get/set screen coordinates of the 2155'set-mouse-absolute-pixel-position' get/set screen coordinates of the
2486mouse cursor. 2156mouse cursor.
2487 2157
2488+++
2489*** The function 'window-edges' now accepts three additional arguments to 2158*** The function 'window-edges' now accepts three additional arguments to
2490retrieve body, absolute and pixel edges of the window. 2159retrieve body, absolute and pixel edges of the window.
2491 2160
2492+++
2493*** The functions 'window-inside-edges', 'window-inside-pixel-edges' and 2161*** The functions 'window-inside-edges', 'window-inside-pixel-edges' and
2494'window-inside-absolute-pixel-edges' have been renamed to respectively 2162'window-inside-absolute-pixel-edges' have been renamed to respectively
2495'window-body-edges', 'window-body-pixel-edges' and 2163'window-body-edges', 'window-body-pixel-edges' and
2496'window-absolute-body-pixel-edges'. The old names are kept as aliases. 2164'window-absolute-body-pixel-edges'. The old names are kept as aliases.
2497 2165
2498+++
2499*** New function 'window-absolute-pixel-position' to get the screen 2166*** New function 'window-absolute-pixel-position' to get the screen
2500coordinates of a visible buffer position. 2167coordinates of a visible buffer position.
2501 2168
2502+++
2503*** The height of a frame's menu and tool bar are no longer counted in the 2169*** The height of a frame's menu and tool bar are no longer counted in the
2504frame's text height. This means that the text height stands only for 2170frame's text height. This means that the text height stands only for
2505the height of the frame's root window plus that of the echo area (if 2171the height of the frame's root window plus that of the echo area (if
@@ -2507,7 +2173,6 @@ present). This was already the behavior for frames with external tool
2507and menu bars (like in the Gtk builds) but has now been extended to all 2173and menu bars (like in the Gtk builds) but has now been extended to all
2508builds. 2174builds.
2509 2175
2510+++
2511*** Frames now do not necessarily preserve the number of columns or lines 2176*** Frames now do not necessarily preserve the number of columns or lines
2512they display when setting default font, menu bar, fringe width, or 2177they display when setting default font, menu bar, fringe width, or
2513scroll bars. In particular, maximized and fullscreen frames are 2178scroll bars. In particular, maximized and fullscreen frames are
@@ -2519,23 +2184,19 @@ setting default font, menu bar, fringe width, or scroll bars of a
2519specific frame does not resize that frame in order to preserve the 2184specific frame does not resize that frame in order to preserve the
2520number of columns or lines it displays. 2185number of columns or lines it displays.
2521 2186
2522+++
2523*** New function 'window-preserve-size' allows you to preserve the size of 2187*** New function 'window-preserve-size' allows you to preserve the size of
2524a window without "fixing" it. It's supported by 'fit-window-to-buffer', 2188a window without "fixing" it. It's supported by 'fit-window-to-buffer',
2525'temp-buffer-resize-mode' and 'display-buffer'. 2189'temp-buffer-resize-mode' and 'display-buffer'.
2526 2190
2527+++
2528*** New 'display-buffer' action function 'display-buffer-use-some-frame'. 2191*** New 'display-buffer' action function 'display-buffer-use-some-frame'.
2529This displays the buffer in an existing frame other than the current 2192This displays the buffer in an existing frame other than the current
2530frame, and allows the caller to specify a frame predicate to exclude 2193frame, and allows the caller to specify a frame predicate to exclude
2531frames. 2194frames.
2532 2195
2533+++
2534*** New minor mode 'window-divider-mode' and options 2196*** New minor mode 'window-divider-mode' and options
2535'window-divider-default-places', 'window-divider-default-bottom-width' 2197'window-divider-default-places', 'window-divider-default-bottom-width'
2536and 'window-divider-default-right-width'. 2198and 'window-divider-default-right-width'.
2537 2199
2538+++
2539*** The window displaying the '*Completions*' buffer with minibuffer 2200*** The window displaying the '*Completions*' buffer with minibuffer
2540completion candidates is now shown at the bottom of the selected 2201completion candidates is now shown at the bottom of the selected
2541frame. The size of that window is always as large as required to 2202frame. The size of that window is always as large as required to
@@ -2545,13 +2206,11 @@ to provide space for the '*Completions*' display. The Emacs manual
2545describes how to customize 'display-buffer-alist' to get back the old 2206describes how to customize 'display-buffer-alist' to get back the old
2546behavior, see the node "Temporary Displays" there. 2207behavior, see the node "Temporary Displays" there.
2547 2208
2548---
2549** Tearoff menus and detachable toolbars for Gtk+ have been removed. 2209** Tearoff menus and detachable toolbars for Gtk+ have been removed.
2550Those features have been deprecated in Gtk+ for a long time. 2210Those features have been deprecated in Gtk+ for a long time.
2551 2211
2552** Etags 2212** Etags
2553 2213
2554+++
2555*** etags no longer qualifies class members by default. 2214*** etags no longer qualifies class members by default.
2556 2215
2557By default, 'etags' will not qualify class members for Perl and C-like 2216By default, 'etags' will not qualify class members for Perl and C-like
@@ -2567,17 +2226,14 @@ that using -Q might make some class members become "unknown" to 'M-.'
2567('xref-find-definitions'); if so, you can use 'C-u M-.' to specify the 2226('xref-find-definitions'); if so, you can use 'C-u M-.' to specify the
2568qualified names by hand. 2227qualified names by hand.
2569 2228
2570+++
2571*** New language Ruby 2229*** New language Ruby
2572 2230
2573Names of modules, classes, methods, functions, and constants are 2231Names of modules, classes, methods, functions, and constants are
2574tagged. Overloaded operators are also tagged. 2232tagged. Overloaded operators are also tagged.
2575 2233
2576+++
2577*** New language Go 2234*** New language Go
2578Names of packages, functions, and types are tagged. 2235Names of packages, functions, and types are tagged.
2579 2236
2580+++
2581*** Improved support for Lua 2237*** Improved support for Lua
2582 2238
2583Etags now tags functions even if the "function" keyword follows some 2239Etags now tags functions even if the "function" keyword follows some
@@ -2586,36 +2242,28 @@ whitespace at line beginning.
2586 2242
2587* Changes in Emacs 25.1 on Non-Free Operating Systems 2243* Changes in Emacs 25.1 on Non-Free Operating Systems
2588 2244
2589---
2590** MS-Windows specific Emacs build scripts are no longer in the distribution. 2245** MS-Windows specific Emacs build scripts are no longer in the distribution.
2591This includes the makefile.w32-in files in various subdirectories, and 2246This includes the makefile.w32-in files in various subdirectories, and
2592the support files. The file nt/configure.bat now just tells the user 2247the support files. The file nt/configure.bat now just tells the user
2593to use the procedure described in nt/INSTALL, by running the Posix 2248to use the procedure described in nt/INSTALL, by running the Posix
2594'configure' script in the top-level directory. 2249'configure' script in the top-level directory.
2595 2250
2596---
2597** Building Emacs for MS-Windows requires at least Windows XP 2251** Building Emacs for MS-Windows requires at least Windows XP
2598or Windows Server 2003. The built binaries still run on all versions 2252or Windows Server 2003. The built binaries still run on all versions
2599of Windows starting with Windows 9X. 2253of Windows starting with Windows 9X.
2600 2254
2601+++
2602** Emacs running on MS-Windows now supports the daemon mode. 2255** Emacs running on MS-Windows now supports the daemon mode.
2603 2256
2604---
2605** The byte counts in etags-generated TAGS files are now the same on 2257** The byte counts in etags-generated TAGS files are now the same on
2606MS-Windows as they are on other platforms. 2258MS-Windows as they are on other platforms.
2607 2259
2608---
2609** On OS X, configure creates a Cocoa ("Nextstep") build by default. 2260** On OS X, configure creates a Cocoa ("Nextstep") build by default.
2610Pass '--without-ns' to configure to create an X11 build, the old default. 2261Pass '--without-ns' to configure to create an X11 build, the old default.
2611 2262
2612---
2613** OS X 10.5 or older is no longer supported. 2263** OS X 10.5 or older is no longer supported.
2614 2264
2615---
2616** OS X on PowerPC is no longer supported. 2265** OS X on PowerPC is no longer supported.
2617 2266
2618---
2619** New variable 'ns-use-fullscreen-animation' controls animation for 2267** New variable 'ns-use-fullscreen-animation' controls animation for
2620non-native NS fullscreen. The default is nil. Set to t to enable 2268non-native NS fullscreen. The default is nil. Set to t to enable
2621animation when entering and leaving fullscreen. For native OSX fullscreen 2269animation when entering and leaving fullscreen. For native OSX fullscreen
@@ -2630,7 +2278,6 @@ If some symbols, such as emoji, do not display, we suggest to install
2630an appropriate font, such as Symbola; then they will be displayed, 2278an appropriate font, such as Symbola; then they will be displayed,
2631albeit without the color effects. 2279albeit without the color effects.
2632 2280
2633---
2634** The new function 'w32-application-type' returns the type of an 2281** The new function 'w32-application-type' returns the type of an
2635MS-Windows application given the name of its executable program file. 2282MS-Windows application given the name of its executable program file.
2636 2283
diff --git a/lisp/eshell/em-term.el b/lisp/eshell/em-term.el
index 3e5de0c0097..208629ce135 100644
--- a/lisp/eshell/em-term.el
+++ b/lisp/eshell/em-term.el
@@ -102,10 +102,11 @@ See also `eshell-visual-commands' and `eshell-visual-options'."
102of commands with options that present their output in a visual 102of commands with options that present their output in a visual
103fashion. For example, a sensible entry would be 103fashion. For example, a sensible entry would be
104 104
105 (\"git\" \"--help\") 105 (\"git\" \"--help\" \"--paginate\")
106 106
107because \"git <command> --help\" shows the command's 107because \"git <command> --help\" shows the command's
108documentation with a pager. 108documentation with a pager and \"git --paginate <command>\"
109always uses a pager for output.
109 110
110See also `eshell-visual-commands' and `eshell-visual-subcommands'." 111See also `eshell-visual-commands' and `eshell-visual-subcommands'."
111 :type '(repeat (cons (string :tag "Command") 112 :type '(repeat (cons (string :tag "Command")
diff --git a/lisp/profiler.el b/lisp/profiler.el
index 2aff99986a1..dac42fec0c7 100644
--- a/lisp/profiler.el
+++ b/lisp/profiler.el
@@ -693,7 +693,8 @@ With a prefix argument, expand the whole subtree."
693 693
694(defun profiler-report-toggle-entry (&optional arg) 694(defun profiler-report-toggle-entry (&optional arg)
695 "Expand entry at point if the tree is collapsed, 695 "Expand entry at point if the tree is collapsed,
696otherwise collapse." 696otherwise collapse. With prefix argument, expand all subentries
697below entry at point."
697 (interactive "P") 698 (interactive "P")
698 (or (profiler-report-expand-entry arg) 699 (or (profiler-report-expand-entry arg)
699 (profiler-report-collapse-entry))) 700 (profiler-report-collapse-entry)))
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el
index b2c06145187..4adcfe7ff16 100644
--- a/lisp/progmodes/gdb-mi.el
+++ b/lisp/progmodes/gdb-mi.el
@@ -673,14 +673,18 @@ NOARG must be t when this macro is used outside `gud-def'"
673 673
674;;;###autoload 674;;;###autoload
675(defun gdb (command-line) 675(defun gdb (command-line)
676 "Run gdb on program FILE in buffer *gud-FILE*. 676 "Run gdb passing it COMMAND-LINE as arguments.
677The directory containing FILE becomes the initial working directory 677
678and source-file directory for your debugger. 678If COMMAND-LINE names a program FILE to debug, gdb will run in
679 679a buffer named *gud-FILE*, and the directory containing FILE
680COMMAND-LINE is the shell command for starting the gdb session. 680becomes the initial working directory and source-file directory
681It should be a string consisting of the name of the gdb 681for your debugger.
682executable followed by command line options. The command line 682If COMMAND-LINE requests that gdb attaches to a process PID, gdb
683options should include \"-i=mi\" to use gdb's MI text interface. 683will run in *gud-PID*, otherwise it will run in *gud*; in these
684cases the initial working directory is the default-directory of
685the buffer in which this command was invoked.
686
687COMMAND-LINE should include \"-i=mi\" to use gdb's MI text interface.
684Note that the old \"--annotate\" option is no longer supported. 688Note that the old \"--annotate\" option is no longer supported.
685 689
686If option `gdb-many-windows' is nil (the default value) then gdb just 690If option `gdb-many-windows' is nil (the default value) then gdb just
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index ceb57b7156d..504ad546cfd 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -733,9 +733,15 @@ It should return a list of completion strings.")
733;; The old gdb command (text command mode). The new one is in gdb-mi.el. 733;; The old gdb command (text command mode). The new one is in gdb-mi.el.
734;;;###autoload 734;;;###autoload
735(defun gud-gdb (command-line) 735(defun gud-gdb (command-line)
736 "Run gdb on program FILE in buffer *gud-FILE*. 736 "Run gdb passing it COMMAND-LINE as arguments.
737The directory containing FILE becomes the initial working 737If COMMAND-LINE names a program FILE to debug, gdb will run in
738directory and source-file directory for your debugger." 738a buffer named *gud-FILE*, and the directory containing FILE
739becomes the initial working directory and source-file directory
740for your debugger.
741If COMMAND-LINE requests that gdb attaches to a process PID, gdb
742will run in *gud-PID*, otherwise it will run in *gud*; in these
743cases the initial working directory is the default-directory of
744the buffer in which this command was invoked."
739 (interactive (list (gud-query-cmdline 'gud-gdb))) 745 (interactive (list (gud-query-cmdline 'gud-gdb)))
740 746
741 (when (and gud-comint-buffer 747 (when (and gud-comint-buffer
diff --git a/src/data.c b/src/data.c
index 5af590abed9..9a076741f78 100644
--- a/src/data.c
+++ b/src/data.c
@@ -630,8 +630,8 @@ global value outside of any lexical scope. */)
630} 630}
631 631
632/* FIXME: It has been previously suggested to make this function an 632/* FIXME: It has been previously suggested to make this function an
633 alias for symbol-function, but upon discussion at Debbug#23957, 633 alias for symbol-function, but upon discussion at Bug#23957,
634 there is a risk breaking backward compatiblity, as some users of 634 there is a risk breaking backward compatibility, as some users of
635 fboundp may expect `t' in particular, rather than any true 635 fboundp may expect `t' in particular, rather than any true
636 value. An alias is still welcome so long as the compatibility 636 value. An alias is still welcome so long as the compatibility
637 issues are addressed. */ 637 issues are addressed. */
diff --git a/src/keyboard.c b/src/keyboard.c
index ed4968486c3..f27ca0f86e0 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -11689,7 +11689,8 @@ suppressed only after special commands that leave
11689 11689
11690 DEFVAR_LISP ("minibuffer-message-timeout", Vminibuffer_message_timeout, 11690 DEFVAR_LISP ("minibuffer-message-timeout", Vminibuffer_message_timeout,
11691 doc: /* How long to display an echo-area message when the minibuffer is active. 11691 doc: /* How long to display an echo-area message when the minibuffer is active.
11692If the value is not a number, such messages don't time out. */); 11692If the value is a number, it should be specified in seconds.
11693If the value is not a number, such messages never time out. */);
11693 Vminibuffer_message_timeout = make_number (2); 11694 Vminibuffer_message_timeout = make_number (2);
11694 11695
11695 DEFVAR_LISP ("throw-on-input", Vthrow_on_input, 11696 DEFVAR_LISP ("throw-on-input", Vthrow_on_input,
diff --git a/src/nsterm.h b/src/nsterm.h
index 862ff2ec646..3d8b1a16a32 100644
--- a/src/nsterm.h
+++ b/src/nsterm.h
@@ -380,9 +380,9 @@ char const * nstrace_fullscreen_type_name (int);
380#endif 380#endif
381#ifdef NS_IMPL_GNUSTEP 381#ifdef NS_IMPL_GNUSTEP
382 BOOL applicationDidFinishLaunchingCalled; 382 BOOL applicationDidFinishLaunchingCalled;
383#endif
383@public 384@public
384 int nextappdefined; 385 int nextappdefined;
385#endif
386} 386}
387- (void)logNotification: (NSNotification *)notification; 387- (void)logNotification: (NSNotification *)notification;
388- (void)antialiasThresholdDidChange:(NSNotification *)notification; 388- (void)antialiasThresholdDidChange:(NSNotification *)notification;
diff --git a/src/nsterm.m b/src/nsterm.m
index 8da2ffe5b7f..dcc1e87280b 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -3927,8 +3927,8 @@ ns_send_appdefined (int value)
3927{ 3927{
3928 NSTRACE_WHEN (NSTRACE_GROUP_EVENTS, "ns_send_appdefined(%d)", value); 3928 NSTRACE_WHEN (NSTRACE_GROUP_EVENTS, "ns_send_appdefined(%d)", value);
3929 3929
3930#ifdef NS_IMPL_GNUSTEP
3931 // GNUstep needs postEvent to happen on the main thread. 3930 // GNUstep needs postEvent to happen on the main thread.
3931 // Cocoa needs nextEventMatchingMask to happen on the main thread too.
3932 if (! [[NSThread currentThread] isMainThread]) 3932 if (! [[NSThread currentThread] isMainThread])
3933 { 3933 {
3934 EmacsApp *app = (EmacsApp *)NSApp; 3934 EmacsApp *app = (EmacsApp *)NSApp;
@@ -3938,7 +3938,6 @@ ns_send_appdefined (int value)
3938 waitUntilDone:YES]; 3938 waitUntilDone:YES];
3939 return; 3939 return;
3940 } 3940 }
3941#endif
3942 3941
3943 /* Only post this event if we haven't already posted one. This will end 3942 /* Only post this event if we haven't already posted one. This will end
3944 the [NXApp run] main loop after having processed all events queued at 3943 the [NXApp run] main loop after having processed all events queued at
@@ -5551,12 +5550,10 @@ not_in_argv (NSString *arg)
5551 ns_send_appdefined (-2); 5550 ns_send_appdefined (-2);
5552} 5551}
5553 5552
5554#ifdef NS_IMPL_GNUSTEP
5555- (void)sendFromMainThread:(id)unused 5553- (void)sendFromMainThread:(id)unused
5556{ 5554{
5557 ns_send_appdefined (nextappdefined); 5555 ns_send_appdefined (nextappdefined);
5558} 5556}
5559#endif
5560 5557
5561- (void)fd_handler:(id)unused 5558- (void)fd_handler:(id)unused
5562/* -------------------------------------------------------------------------- 5559/* --------------------------------------------------------------------------