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