aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2017-10-20 22:47:09 -0700
committerPaul Eggert2017-10-20 22:47:09 -0700
commit701c65829d79dbc479fd8c282af3c6faffc21665 (patch)
treea59110ae8650dc17767bdeb127b7d0d04ed9b6a4
parentf400c7b69714c91a714ff0ab5b9f16708daf49b9 (diff)
downloademacs-701c65829d79dbc479fd8c282af3c6faffc21665.tar.gz
emacs-701c65829d79dbc479fd8c282af3c6faffc21665.zip
* etc/NEWS.26: Sync from emacs-26 etc/NEWS.
-rw-r--r--etc/NEWS.26291
1 files changed, 164 insertions, 127 deletions
diff --git a/etc/NEWS.26 b/etc/NEWS.26
index 7f89ef92ec4..97b21f7dd86 100644
--- a/etc/NEWS.26
+++ b/etc/NEWS.26
@@ -1,6 +1,6 @@
1GNU Emacs NEWS -- history of user-visible changes. 1GNU Emacs NEWS -- history of user-visible changes.
2 2
3Copyright (C) 2014-2017 Free Software Foundation, Inc. 3Copyright (C) 2016-2017 Free Software Foundation, Inc.
4See the end of the file for license conditions. 4See the end of the file for license conditions.
5 5
6Please send Emacs bug reports to bug-gnu-emacs@gnu.org. 6Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
@@ -9,16 +9,16 @@ If possible, use M-x report-emacs-bug.
9This file is about changes in Emacs version 26. 9This file is about changes in Emacs version 26.
10 10
11See file HISTORY for a list of GNU Emacs versions and release dates. 11See file HISTORY for a list of GNU Emacs versions and release dates.
12See files NEWS.25, NEWS.24, NEWS.23, NEWS.22, NEWS.21, NEWS.20, 12See files NEWS.25, NEWS.24, ..., NEWS.18, and NEWS.1-17 for changes
13NEWS.19, NEWS.18, and NEWS.1-17 for changes in older Emacs versions. 13in older Emacs versions.
14 14
15You can narrow news to a specific version by calling 'view-emacs-news' 15You can narrow news to a specific version by calling 'view-emacs-news'
16with a prefix argument or by typing C-u C-h C-n. 16with a prefix argument or by typing C-u C-h C-n.
17 17
18Temporary note: 18Temporary note:
19+++ indicates that all necessary documentation updates are complete. 19+++ indicates that all necessary documentation updates have been done.
20 (This means all relevant manuals in doc/ AND lisp doc-strings.) 20 (This means all the relevant manuals in doc/ AND lisp doc-strings.)
21--- means no change in the manuals is needed. 21--- means doc strings are updated, and no change in the manuals is needed.
22When you add a new item, use the appropriate mark if you are sure it applies, 22When you add a new item, use the appropriate mark if you are sure it applies,
23 23
24 24
@@ -58,7 +58,7 @@ configure option '--disable-libsystemd'.
58 58
59+++ 59+++
60** A systemd user unit file is provided. Use it in the standard way: 60** A systemd user unit file is provided. Use it in the standard way:
61systemctl --user enable emacs 61'systemctl --user enable emacs'.
62(If your Emacs is installed in a non-standard location, you may 62(If your Emacs is installed in a non-standard location, you may
63need to copy the emacs.service file to eg ~/.config/systemd/user/) 63need to copy the emacs.service file to eg ~/.config/systemd/user/)
64 64
@@ -107,10 +107,10 @@ requirements. The option makes Emacs abort if a module-related
107assertion triggers. 107assertion triggers.
108 108
109+++ 109+++
110** Emacs now supports 24-bit colors on capable text terminals 110** Emacs now supports 24-bit colors on capable text terminals.
111Terminal is automatically initialized to use 24-bit colors if the 111Terminal is automatically initialized to use 24-bit colors if the
112required capabilities are found in terminfo. See the FAQ node 112required capabilities are found in terminfo. See the FAQ node
113"Colors on a TTY" for more information. 113"(efaq) Colors on a TTY" for more information.
114 114
115+++ 115+++
116** Emacs now obeys the X resource "scrollBar" at startup. 116** Emacs now obeys the X resource "scrollBar" at startup.
@@ -121,8 +121,8 @@ The effect is similar to that of "toolBar" resource on the tool bar.
121 121
122+++ 122+++
123** Option 'buffer-offer-save' can be set to new value, 'always'. When 123** Option 'buffer-offer-save' can be set to new value, 'always'. When
124 set to 'always', the command `save-some-buffers' will always offer 124set to 'always', the command 'save-some-buffers' will always offer
125 this buffer for saving. 125this buffer for saving.
126 126
127** Security vulnerability related to Enriched Text mode is removed. 127** Security vulnerability related to Enriched Text mode is removed.
128 128
@@ -176,8 +176,8 @@ explicitly yields. Global variables are shared among all threads, but
176a 'let' binding is thread-local. Each thread also has its own current 176a 'let' binding is thread-local. Each thread also has its own current
177buffer and its own match data. 177buffer and its own match data.
178 178
179See the chapter "Threads" in the ELisp manual for full documentation 179See the chapter "(elisp) Threads" in the ELisp manual for full
180of these facilities. 180documentation of these facilities.
181 181
182+++ 182+++
183** The new user variable 'electric-quote-chars' provides a list 183** The new user variable 'electric-quote-chars' provides a list
@@ -224,8 +224,9 @@ frame by evaluating this form:
224 (modify-frame-parameters nil '((inhibit-double-buffering . t))) 224 (modify-frame-parameters nil '((inhibit-double-buffering . t)))
225 225
226--- 226---
227The group 'wp', whose label was "text", is now deprecated. 227** The customization group 'wp', whose label was "text", is now
228Use the new group 'text', which inherits from 'wp', instead. 228deprecated. Use the new group 'text', which inherits from 'wp',
229instead.
229 230
230+++ 231+++
231** The new function 'call-shell-region' executes a command in an 232** The new function 'call-shell-region' executes a command in an
@@ -339,13 +340,13 @@ eliminated, and integer strings work everywhere.
339** It is possible to disable attempted recovery on fatal signals. 340** It is possible to disable attempted recovery on fatal signals.
340Two new variables support disabling attempts to recover from stack 341Two new variables support disabling attempts to recover from stack
341overflow and to avoid automatic auto-save when Emacs is delivered a 342overflow and to avoid automatic auto-save when Emacs is delivered a
342fatal signal. 'attempt-stack-overflow-recovery', if set to 'nil', 343fatal signal. 'attempt-stack-overflow-recovery', if set to nil,
343will disable attempts to recover from C stack overflows; Emacs will 344will disable attempts to recover from C stack overflows; Emacs will
344then crash as with any other fatal signal. 345then crash as with any other fatal signal.
345'attempt-orderly-shutdown-on-fatal-signal', if set to 'nil', will 346'attempt-orderly-shutdown-on-fatal-signal', if set to nil, will
346disable attempts to auto-save the session and shut down in an orderly 347disable attempts to auto-save the session and shut down in an orderly
347fashion when Emacs receives a fatal signal; instead, Emacs will 348fashion when Emacs receives a fatal signal; instead, Emacs will
348terminate immediately. Both variables are non-'nil' by default. 349terminate immediately. Both variables are non-nil by default.
349These variables are for users who would like to avoid the small 350These variables are for users who would like to avoid the small
350probability of data corruption due to techniques Emacs uses to recover 351probability of data corruption due to techniques Emacs uses to recover
351in these situations. 352in these situations.
@@ -362,7 +363,7 @@ See the variable 'dir-locals-file-2' for more information.
362+++ 363+++
363** Connection-local variables can be used to specify local variables 364** Connection-local variables can be used to specify local variables
364with a value depending on the connected remote server. For details, 365with a value depending on the connected remote server. For details,
365see the node "Connection Local Variables" in the ELisp manual. 366see the node "(elisp) Connection Local Variables" in the ELisp manual.
366 367
367--- 368---
368** International domain names (IDNA) are now encoded via the new 369** International domain names (IDNA) are now encoded via the new
@@ -374,6 +375,9 @@ where you can cancel them with the 'c' command.
374 375
375+++ 376+++
376** 'switch-to-buffer-preserve-window-point' now defaults to t. 377** 'switch-to-buffer-preserve-window-point' now defaults to t.
378Applications that call 'switch-to-buffer' and want to show the buffer at
379the position of its point should use 'pop-to-buffer-same-window' in lieu
380of 'switch-to-buffer'.
377 381
378+++ 382+++
379** The new variable 'debugger-stack-frame-as-list' allows displaying 383** The new variable 'debugger-stack-frame-as-list' allows displaying
@@ -382,7 +386,7 @@ debug.el and edebug.el have been updated to heed to this variable.
382 386
383--- 387---
384** Values in call stack frames are now displayed using 'cl-prin1'. 388** Values in call stack frames are now displayed using 'cl-prin1'.
385The old behaviour of using 'prin1' can be restored by customizing the 389The old behavior of using 'prin1' can be restored by customizing the
386new option 'debugger-print-function'. 390new option 'debugger-print-function'.
387 391
388+++ 392+++
@@ -420,17 +424,17 @@ want to reverse the direction of the scroll, customize
420'mwheel-flip-direction'. 424'mwheel-flip-direction'.
421 425
422+++ 426+++
423** Emacsclient has a new option -u/--suppress-output. 427** Emacsclient has a new option '-u' / '--suppress-output'.
424This option suppresses display of return values from the server 428This option suppresses display of return values from the server
425process. 429process.
426 430
427+++ 431+++
428** Emacsclient has a new option -T/--tramp. 432** Emacsclient has a new option '-T' / '--tramp'.
429This helps with using a local Emacs session as the server for a remote 433This helps with using a local Emacs session as the server for a remote
430emacsclient. With appropriate setup, one can now set the EDITOR 434emacsclient. With appropriate setup, one can now set the EDITOR
431environment variable on a remote machine to emacsclient, and 435environment variable on a remote machine to emacsclient, and
432use the local Emacs to edit remote files via Tramp. See the node 436use the local Emacs to edit remote files via Tramp. See the node
433"emacsclient Options" in the user manual for the details. 437"(emacs) emacsclient Options" in the user manual for the details.
434 438
435--- 439---
436** New user option 'dig-program-options' and extended functionality 440** New user option 'dig-program-options' and extended functionality
@@ -456,17 +460,17 @@ display of raw bytes from octal to hex.
456 460
457+++ 461+++
458** You can now provide explicit field numbers in format specifiers. 462** You can now provide explicit field numbers in format specifiers.
459For example, '(format "%2$s %1$s" "X" "Y")' produces "Y X". 463For example, '(format "%2$s %1$s %2$s" "X" "Y")' produces "Y X Y".
460 464
461+++ 465+++
462** Emacs now supports optional display of line numbers in the buffer. 466** Emacs now supports optional display of line numbers in the buffer.
463This is similar to what linum-mode provides, but much faster and 467This is similar to what 'linum-mode' provides, but much faster and
464doesn't usurp the display margin for the line numbers. Customize the 468doesn't usurp the display margin for the line numbers. Customize the
465buffer-local variable 'display-line-numbers' to activate this optional 469buffer-local variable 'display-line-numbers' to activate this optional
466display. Alternatively, you can use the `display-line-numbers-mode' 470display. Alternatively, you can use the 'display-line-numbers-mode'
467minor mode or the global `global-display-line-numbers-mode'. When 471minor mode or the global 'global-display-line-numbers-mode'. When
468using these modes, customize `display-line-numbers-type' with the same 472using these modes, customize 'display-line-numbers-type' with the same
469value as you would use with `display-line-numbers'. 473value as you would use with 'display-line-numbers'.
470 474
471Line numbers are not displayed at all in minibuffer windows and in 475Line numbers are not displayed at all in minibuffer windows and in
472tooltips, as they are not useful there. 476tooltips, as they are not useful there.
@@ -480,17 +484,20 @@ Lisp programs that need to know how much screen estate is used up for
480line-number display in a window can use the new function 484line-number display in a window can use the new function
481'line-number-display-width'. 485'line-number-display-width'.
482 486
483Linum mode and all similar packages are henceforth becoming obsolete. 487'linum-mode' and all similar packages are henceforth becoming obsolete.
484Users and developers are encouraged to switch to this new feature 488Users and developers are encouraged to switch to this new feature
485instead. 489instead.
486 490
487+++ 491+++
488** emacsclient now accepts command-line options in ALTERNATE_EDITOR 492** emacsclient now accepts command-line options in ALTERNATE_EDITOR
489and --alternate-editor. For example, ALTERNATE_EDITOR="emacs -Q -nw". 493and '--alternate-editor'. For example, ALTERNATE_EDITOR="emacs -Q -nw".
490Arguments may be quoted "like this", so that for example an absolute 494Arguments may be quoted "like this", so that for example an absolute
491path containing a space may be specified; quote escaping is not 495path containing a space may be specified; quote escaping is not
492supported. 496supported.
493 497
498** The new user option 'arabic-shaper-ZWNJ-handling' controls how to
499handle ZWNJ in Arabic text rendering.
500
494 501
495* Editing Changes in Emacs 26.1 502* Editing Changes in Emacs 26.1
496 503
@@ -523,8 +530,8 @@ the end of the window, e.g. "5-17%". The new option
523 530
524+++ 531+++
525** Two new user options 'list-matching-lines-jump-to-current-line' and 532** Two new user options 'list-matching-lines-jump-to-current-line' and
526'list-matching-lines-current-line-face' to show highlighted the current 533'list-matching-lines-current-line-face' to show the current line
527line in *Occur* buffer. 534highlighted in *Occur* buffer.
528 535
529+++ 536+++
530** The 'occur' command can now operate on the region. 537** The 'occur' command can now operate on the region.
@@ -587,7 +594,7 @@ different buffer while keeping point, mark, markers, and text
587properties as intact as possible. 594properties as intact as possible.
588 595
589+++ 596+++
590** New commands 'apropos-local-variable' and 'apropos-local-value. 597** New commands 'apropos-local-variable' and 'apropos-local-value'.
591These are buffer-local versions of 'apropos-variable' and 598These are buffer-local versions of 'apropos-variable' and
592'apropos-value', respectively. They show buffer-local variables whose 599'apropos-value', respectively. They show buffer-local variables whose
593names and values, respectively, match a given pattern. 600names and values, respectively, match a given pattern.
@@ -607,7 +614,11 @@ state to take effect (making a frame visible, for example).
607* Changes in Specialized Modes and Packages in Emacs 26.1 614* Changes in Specialized Modes and Packages in Emacs 26.1
608 615
609--- 616---
610** New function `cl-generic-p'. 617** Emacs 26.1 comes with Org v9.1.2.
618See the file ORG-NEWS for user-visible changes in Org.
619
620---
621** New function 'cl-generic-p'.
611 622
612** Dired 623** Dired
613 624
@@ -623,12 +634,12 @@ remaining directories without more prompts.
623It gets replaced by the current file name, like ' ? '. 634It gets replaced by the current file name, like ' ? '.
624 635
625+++ 636+++
626*** A new option 'dired-always-read-filesystem' default to nil. 637*** A new option 'dired-always-read-filesystem' defaulting to nil.
627If non-nil, buffers visiting files are reverted before search them; 638If non-nil, buffers visiting files are reverted before they are
628for instance, in 'dired-mark-files-containing-regexp' a non-nil value 639searched; for instance, in 'dired-mark-files-containing-regexp' a
629of this option means the file is revisited in a temporary buffer; 640non-nil value of this option means the file is revisited in a
630this temporary buffer is the actual buffer searched: the original buffer 641temporary buffer; this temporary buffer is the actual buffer searched:
631visiting the file is not modified. 642the original buffer visiting the file is not modified.
632 643
633--- 644---
634*** Users can now customize mouse clicks in Dired in a more flexible way. 645*** Users can now customize mouse clicks in Dired in a more flexible way.
@@ -659,17 +670,17 @@ keep previous behavior.
659** html2text is now marked obsolete. 670** html2text is now marked obsolete.
660 671
661--- 672---
662** smerge-refine-regions can refine regions in separate buffers 673** smerge-refine-regions can refine regions in separate buffers.
663 674
664--- 675---
665** Info menu and index completion uses substring completion by default. 676** Info menu and index completion uses substring completion by default.
666This can be customized via the info-menu category in 677This can be customized via the 'info-menu' category in
667completion-category-override. 678'completion-category-overrides'.
668 679
669+++ 680+++
670** The ancestor buffer is shown by default in 3-way merges. 681** The ancestor buffer is shown by default in 3-way merges.
671A new option ediff-show-ancestor and a new toggle 682A new option 'ediff-show-ancestor' and a new toggle
672ediff-toggle-show-ancestor. 683'ediff-toggle-show-ancestor'.
673 684
674--- 685---
675** TeX: Add luatex and xetex as alternatives to pdftex 686** TeX: Add luatex and xetex as alternatives to pdftex
@@ -700,7 +711,7 @@ bound to 'Buffer-menu-unmark-all-buffers'.
700** Gnus 711** Gnus
701 712
702--- 713---
703*** The .newsrc file will now only be saved if the native select 714*** The ~/.newsrc file will now only be saved if the native select
704method is an NNTP select method. 715method is an NNTP select method.
705 716
706+++ 717+++
@@ -709,9 +720,10 @@ added: 'C-c C-s C-m C-m'.
709 720
710+++ 721+++
711 722
712*** In message-citation-line-format the %Z format is now the time zone name 723*** In 'message-citation-line-format' the '%Z' format is now the time
713instead of the numeric form. The %z format continues to be the 724zone name instead of the numeric form. The '%z' format continues to
714numeric form. The new behavior is compatible with format-time-string. 725be the numeric form. The new behavior is compatible with
726'format-time-string'.
715 727
716** Ibuffer 728** Ibuffer
717 729
@@ -778,7 +790,7 @@ whose content matches a regexp; bound to '% g'.
778 790
779--- 791---
780*** New user option 'comint-move-point-for-matching-input' to control 792*** New user option 'comint-move-point-for-matching-input' to control
781where to place point after C-c M-r and C-c M-s. 793where to place point after 'C-c M-r' and 'C-c M-s'.
782 794
783** Compilation mode 795** Compilation mode
784 796
@@ -811,7 +823,7 @@ breakpoint (e.g. with "f" and "o") by customizing the new option
811'edebug-sit-on-break'. 823'edebug-sit-on-break'.
812 824
813+++ 825+++
814*** New customizable option 'edebug-max-depth' 826*** New customizable option 'edebug-max-depth'.
815This allows to enlarge the maximum recursion depth when instrumenting 827This allows to enlarge the maximum recursion depth when instrumenting
816code. 828code.
817 829
@@ -853,7 +865,6 @@ bigger than the current window).
853avoid accidentally accessing remote links may rebind 'w' and 'u' in 865avoid accidentally accessing remote links may rebind 'w' and 'u' in
854'eww-link-keymap' to it. 866'eww-link-keymap' to it.
855 867
856
857** Ido 868** Ido
858 869
859--- 870---
@@ -886,8 +897,8 @@ also available in 'image-mode'.
886 897
887+++ 898+++
888*** A new library for creating and manipulating SVG images has been 899*** A new library for creating and manipulating SVG images has been
889added. See the "SVG Images" section in the Lisp reference manual for 900added. See the "(elisp) SVG Images" section in the ELisp reference
890details. 901manual for details.
891 902
892+++ 903+++
893*** New setf-able function to access and set image parameters is 904*** New setf-able function to access and set image parameters is
@@ -929,10 +940,10 @@ instead of shell command strings. This change affects
929'image-dired-cmd-write-exif-data-options', 940'image-dired-cmd-write-exif-data-options',
930'image-dired-cmd-read-exif-data-options', and introduces 941'image-dired-cmd-read-exif-data-options', and introduces
931'image-dired-cmd-pngnq-options', 'image-dired-cmd-pngcrush-options', 942'image-dired-cmd-pngnq-options', 'image-dired-cmd-pngcrush-options',
932'image-dired-cmd-create-standard-thumbnail-options' 943'image-dired-cmd-create-standard-thumbnail-options'.
933 944
934--- 945---
935*** Recognizes more tools by default, including pngnq-s9 and OptiPNG 946*** Recognizes more tools by default, including pngnq-s9 and OptiPNG.
936 947
937--- 948---
938*** 'find-file' and related commands now work on thumbnails and 949*** 'find-file' and related commands now work on thumbnails and
@@ -971,7 +982,7 @@ there are now top-level domains added all the time. Message will no
971longer warn about sending emails to top-level domains it hasn't heard 982longer warn about sending emails to top-level domains it hasn't heard
972about. 983about.
973 984
974*** 'message-beginning-of-line' (bound to C-a) understands folded headers. 985*** 'message-beginning-of-line' (bound to 'C-a') understands folded headers.
975In 'visual-line-mode' it will look for the true beginning of a header 986In 'visual-line-mode' it will look for the true beginning of a header
976while in non-'visual-line-mode' it will move the point to the indented 987while in non-'visual-line-mode' it will move the point to the indented
977header's value. 988header's value.
@@ -981,7 +992,7 @@ header's value.
981+++ 992+++
982*** The new variable 'package-gnupghome-dir' has been added to control 993*** The new variable 'package-gnupghome-dir' has been added to control
983where the GnuPG home directory (used for signature verification) is 994where the GnuPG home directory (used for signature verification) is
984located and whether GnuPG's option "--homedir" is used or not. 995located and whether GnuPG's option '--homedir' is used or not.
985 996
986--- 997---
987*** Deleting a package no longer respects 'delete-by-moving-to-trash'. 998*** Deleting a package no longer respects 'delete-by-moving-to-trash'.
@@ -1063,8 +1074,8 @@ background.
1063 1074
1064+++ 1075+++
1065** Emacs now supports character name escape sequences in character and 1076** Emacs now supports character name escape sequences in character and
1066string literals. The syntax variants \N{character name} and 1077string literals. The syntax variants '\N{character name}' and
1067\N{U+code} are supported. 1078'\N{U+code}' are supported.
1068 1079
1069+++ 1080+++
1070** Prog mode has some support for multi-mode indentation. 1081** Prog mode has some support for multi-mode indentation.
@@ -1076,7 +1087,7 @@ A major mode can provide indentation context for a sub-mode through
1076the 'prog-indentation-context' variable. To support this, modes that 1087the 'prog-indentation-context' variable. To support this, modes that
1077provide indentation should use 'prog-widen' instead of 'widen' and 1088provide indentation should use 'prog-widen' instead of 'widen' and
1078'prog-first-column' instead of a literal zero. See the node 1089'prog-first-column' instead of a literal zero. See the node
1079"Mode-Specific Indent" in the ELisp manual for more details. 1090"(elisp) Mode-Specific Indent" in the ELisp manual for more details.
1080 1091
1081** ERC 1092** ERC
1082 1093
@@ -1095,7 +1106,7 @@ domain.
1095*** 'url-retrieve-synchronously' now takes an optional timeout parameter. 1106*** 'url-retrieve-synchronously' now takes an optional timeout parameter.
1096 1107
1097--- 1108---
1098*** The URL package now support HTTPS over proxies supporting CONNECT. 1109*** The URL package now supports HTTPS over proxies supporting CONNECT.
1099 1110
1100+++ 1111+++
1101*** 'url-user-agent' now defaults to 'default', and the User-Agent 1112*** 'url-user-agent' now defaults to 'default', and the User-Agent
@@ -1133,17 +1144,29 @@ to a format suitable for reverse lookup zone files.
1133+++ 1144+++
1134*** Enchant is now supported as a spell-checker. 1145*** Enchant is now supported as a spell-checker.
1135 1146
1136Enchant is a meta-spell-checker that uses providers 1147Enchant is a meta-spell-checker that uses providers such as Hunspell
1137such as Hunspell to do the actual checking. With it, users can use 1148to do the actual checking. With it, users can use spell-checkers not
1138spell-checkers not directly supported by Emacs, such as Voikko, Hspell 1149directly supported by Emacs, such as Voikko, Hspell and AppleSpell,
1139and AppleSpell, more easily share personal word-lists with other 1150more easily share personal word-lists with other programs, and
1140programs, and configure different spelling-checkers for different 1151configure different spelling-checkers for different languages.
1141languages. (Version 2.1.0 or later of Enchant is required.) 1152(Version 2.1.0 or later of Enchant is required.)
1142 1153
1143** Flymake 1154** Flymake
1144 1155
1145+++ 1156+++
1146*** Emacs no longer prompts the user before killing Flymake processes on exit. 1157*** Flymake has been completely redesigned
1158
1159Flymake now annotates arbitrary buffer regions, not just lines. It
1160supports arbitrary diagnostic types, not just errors and warnings (see
1161variable 'flymake-diagnostic-types-alist').
1162
1163It also supports multiple simultaneous backends, meaning that you can
1164check your buffer from different perspectives (see variable
1165'flymake-diagnostic-functions'). Backends for Emacs Lisp mode are
1166provided.
1167
1168The old Flymake behavior is preserved in the so-called "legacy
1169backend", which has been updated to benefit from the new UI features.
1147 1170
1148 1171
1149* New Modes and Packages in Emacs 26.1 1172* New Modes and Packages in Emacs 26.1
@@ -1159,10 +1182,10 @@ languages. (Version 2.1.0 or later of Enchant is required.)
1159mode for *.html files. This mode handles indentation, 1182mode for *.html files. This mode handles indentation,
1160fontification, and commenting for embedded JavaScript and CSS. 1183fontification, and commenting for embedded JavaScript and CSS.
1161 1184
1162** New mode 'conf-toml-mode' is a sub-mode of conf-mode, specialized 1185** New mode 'conf-toml-mode' is a sub-mode of 'conf-mode', specialized
1163 for editing TOML files. 1186for editing TOML files.
1164 1187
1165** New mode 'conf-desktop-mode' is a sub-mode of conf-unix-mode, 1188** New mode 'conf-desktop-mode' is a sub-mode of 'conf-unix-mode',
1166specialized for editing freedesktop.org desktop entries. 1189specialized for editing freedesktop.org desktop entries.
1167 1190
1168** New minor mode 'pixel-scroll-mode' provides smooth pixel-level scrolling. 1191** New minor mode 'pixel-scroll-mode' provides smooth pixel-level scrolling.
@@ -1174,11 +1197,11 @@ editing Less files.
1174* Incompatible Lisp Changes in Emacs 26.1 1197* Incompatible Lisp Changes in Emacs 26.1
1175 1198
1176--- 1199---
1177*** password-data is now a hash-table 1200** 'password-data' is now a hash-table so that 'password-read' can use
1178so that `password-read' can use any object for the `key' argument. 1201any object for the 'key' argument.
1179 1202
1180+++ 1203+++
1181*** Command 'dired-mark-extension' now automatically prepends a '.' to the 1204** Command 'dired-mark-extension' now automatically prepends a '.' to the
1182extension when not present. The new command 'dired-mark-suffix' behaves 1205extension when not present. The new command 'dired-mark-suffix' behaves
1183similarly but it doesn't prepend a '.'. 1206similarly but it doesn't prepend a '.'.
1184 1207
@@ -1202,25 +1225,29 @@ binding syntax as 'and-let*'.
1202--- 1225---
1203** 'C-up', 'C-down', 'C-left' and 'C-right' are now defined in term 1226** 'C-up', 'C-down', 'C-left' and 'C-right' are now defined in term
1204mode to send the same escape sequences that xterm does. This makes 1227mode to send the same escape sequences that xterm does. This makes
1205things like forward-word in readline work. 1228things like 'forward-word' in readline work.
1206 1229
1207--- 1230---
1208** hideshow mode got four key bindings that are analogous to outline 1231** hideshow mode got four key bindings that are analogous to outline
1209mode bindings: 'C-c @ C-a', 'C-c @ C-t', 'C-c @ C-d', and 'C-c @ C-e.' 1232mode bindings: 'C-c @ C-a', 'C-c @ C-t', 'C-c @ C-d', and 'C-c @ C-e'.
1210 1233
1211--- 1234---
1212** Customizable variable 'query-replace-from-to-separator' 1235** Customizable variable 'query-replace-from-to-separator'
1213now doesn't propertize the string value of the separator. 1236now doesn't propertize the string value of the separator.
1214Instead, text properties are added by query-replace-read-from. 1237Instead, text properties are added by 'query-replace-read-from'.
1215Additionally, the new nil value restores pre-24.5 behavior 1238Additionally, the new nil value restores pre-24.5 behavior
1216of not providing replacement pairs via the history. 1239of not providing replacement pairs via the history.
1217 1240
1218--- 1241---
1219** Some obsolete functions, variables, and faces have been removed: 1242** Some obsolete functions, variables, and faces have been removed:
1220*** make-variable-frame-local. Variables cannot be frame-local any more. 1243
1221*** From subr.el: window-dot, set-window-dot, read-input, show-buffer, 1244*** 'make-variable-frame-local'. Variables cannot be frame-local any more.
1222eval-current-buffer, string-to-int 1245
1223*** icomplete-prospects-length. 1246*** From subr.el: 'window-dot', 'set-window-dot', 'read-input',
1247'show-buffer', 'eval-current-buffer', 'string-to-int'.
1248
1249*** 'icomplete-prospects-length'.
1250
1224*** All the default-FOO variables that hold the default value of the 1251*** All the default-FOO variables that hold the default value of the
1225FOO variable. Use 'default-value' and 'setq-default' to access and 1252FOO variable. Use 'default-value' and 'setq-default' to access and
1226change FOO, respectively. The exhaustive list of removed variables is: 1253change FOO, respectively. The exhaustive list of removed variables is:
@@ -1238,7 +1265,8 @@ change FOO, respectively. The exhaustive list of removed variables is:
1238'default-cursor-in-non-selected-windows', 1265'default-cursor-in-non-selected-windows',
1239'default-buffer-file-coding-system', 'default-major-mode', and 1266'default-buffer-file-coding-system', 'default-major-mode', and
1240'default-enable-multibyte-characters'. 1267'default-enable-multibyte-characters'.
1241*** Many variables obsoleted in 22.1 referring to face symbols 1268
1269*** Many variables obsoleted in 22.1 referring to face symbols.
1242 1270
1243+++ 1271+++
1244** The variable 'text-quoting-style' is now a customizable option. It 1272** The variable 'text-quoting-style' is now a customizable option. It
@@ -1253,9 +1281,9 @@ now generate less chatter and more-compact diagnostics. The auxiliary
1253function 'check-declare-errmsg' has been removed. 1281function 'check-declare-errmsg' has been removed.
1254 1282
1255+++ 1283+++
1256** The regular expression character class [:blank:] now matches 1284** The regular expression character class '[:blank:]' now matches
1257Unicode horizontal whitespace as defined in the Unicode Technical 1285Unicode horizontal whitespace as defined in the Unicode Technical
1258Standard #18. If you only want to match space and tab, use [ \t] 1286Standard #18. If you only want to match space and tab, use '[ \t]'
1259instead. 1287instead.
1260 1288
1261+++ 1289+++
@@ -1277,8 +1305,8 @@ characters: ‘’‛“”‟〞"', unless they are escaped with backslash.
1277 1305
1278+++ 1306+++
1279** 'default-file-name-coding-system' now defaults to a coding system 1307** 'default-file-name-coding-system' now defaults to a coding system
1280that does not process CRLF. For example, it defaults to utf-8-unix 1308that does not process CRLF. For example, it defaults to 'utf-8-unix'
1281instead of to utf-8. Before this change, Emacs would sometimes 1309instead of to 'utf-8'. Before this change, Emacs would sometimes
1282mishandle file names containing these control characters. 1310mishandle file names containing these control characters.
1283 1311
1284+++ 1312+++
@@ -1349,9 +1377,10 @@ documentation and had inherent races that led to security holes. A
1349call like (rename-file C D) that used the old, undocumented behavior 1377call like (rename-file C D) that used the old, undocumented behavior
1350can be written as (rename-file C (file-name-as-directory D)), a 1378can be written as (rename-file C (file-name-as-directory D)), a
1351formulation portable to both older and newer versions of Emacs. 1379formulation portable to both older and newer versions of Emacs.
1352Affected functions include add-name-to-file, copy-directory, 1380Affected functions include 'add-name-to-file', 'copy-directory',
1353copy-file, format-write-file, gnus-copy-file, make-symbolic-link, 1381'copy-file', 'format-write-file', 'gnus-copy-file',
1354rename-file, thumbs-rename-images, and write-file. 1382'make-symbolic-link', 'rename-file', 'thumbs-rename-images', and
1383'write-file'.
1355 1384
1356--- 1385---
1357** The list returned by 'overlays-at' is now in decreasing priority order. 1386** The list returned by 'overlays-at' is now in decreasing priority order.
@@ -1361,12 +1390,22 @@ non-nil, but the code returned the list in the increasing order of
1361priority instead. Now the code does what the documentation says it 1390priority instead. Now the code does what the documentation says it
1362should do. 1391should do.
1363 1392
1393+++
1394** 'format' now avoids allocating a new string in more cases.
1395'format' was previously documented to return a newly-allocated string,
1396but this documentation was not correct, as (eq x (format x)) returned
1397t when x was the empty string. 'format' is no longer documented to
1398return a newly-allocated string, and the implementation now takes
1399advantage of the doc change to avoid making copies of strings in
1400common cases like (format "foo") and (format "%s" "foo").
1401
1364--- 1402---
1365** The function 'eldoc-message' now accepts a single argument. 1403** The function 'eldoc-message' now accepts a single argument.
1366Programs that called it with multiple arguments before should pass 1404Programs that called it with multiple arguments before should pass
1367them through 'format' first. Even that is discouraged: for ElDoc 1405them through 'format' first. Even that is discouraged: for ElDoc
1368support, you should set 'eldoc-documentation-function' instead of 1406support, you should set 'eldoc-documentation-function' instead of
1369calling 'eldoc-message' directly. 1407calling 'eldoc-message' directly.
1408
1370 1409
1371* Lisp Changes in Emacs 26.1 1410* Lisp Changes in Emacs 26.1
1372 1411
@@ -1425,9 +1464,7 @@ range of indentation.
1425** New optional argument TEXT in 'make-temp-file'. 1464** New optional argument TEXT in 'make-temp-file'.
1426 1465
1427--- 1466---
1428** New function `define-symbol-prop'. 1467** New function 'define-symbol-prop'.
1429
1430** Checksum/Hash
1431 1468
1432+++ 1469+++
1433** New function 'secure-hash-algorithms' to list the algorithms that 1470** New function 'secure-hash-algorithms' to list the algorithms that
@@ -1509,7 +1546,7 @@ function instead of 'subr-arity'.
1509** New function 'region-bounds' can be used in the interactive spec 1546** New function 'region-bounds' can be used in the interactive spec
1510to provide region boundaries (for rectangular regions more than one) 1547to provide region boundaries (for rectangular regions more than one)
1511to an interactively callable function as a single argument instead of 1548to an interactively callable function as a single argument instead of
1512two separate arguments region-beginning and region-end. 1549two separate arguments 'region-beginning' and 'region-end'.
1513 1550
1514+++ 1551+++
1515** 'parse-partial-sexp' state has a new element. Element 10 is 1552** 'parse-partial-sexp' state has a new element. Element 10 is
@@ -1539,34 +1576,27 @@ compares their numerical values. According to this predicate,
1539 1576
1540--- 1577---
1541** Numeric comparisons and 'logb' no longer return incorrect answers 1578** Numeric comparisons and 'logb' no longer return incorrect answers
1542due to internal rounding errors. For example, (< most-positive-fixnum 1579due to internal rounding errors. For example, '(< most-positive-fixnum
1543(+ 1.0 most-positive-fixnum)) now correctly returns t on 64-bit hosts. 1580(+ 1.0 most-positive-fixnum))' now correctly returns t on 64-bit hosts.
1544 1581
1545--- 1582---
1546** The functions 'ffloor', 'fceiling', 'ftruncate' and 'fround' now 1583** The functions 'ffloor', 'fceiling', 'ftruncate' and 'fround' now
1547accept only floating-point arguments, as per their documentation. 1584accept only floating-point arguments, as per their documentation.
1548Formerly, they quietly accepted integer arguments and sometimes 1585Formerly, they quietly accepted integer arguments and sometimes
1549returned nonsensical answers, e.g., (< N (ffloor N)) could return t. 1586returned nonsensical answers, e.g., '(< N (ffloor N))' could return t.
1550 1587
1551--- 1588---
1552** On hosts like GNU/Linux x86-64 where a 'long double' fraction 1589** On hosts like GNU/Linux x86-64 where a 'long double' fraction
1553contains at least EMACS_INT_WIDTH - 3 bits, 'format' no longer returns 1590contains at least EMACS_INT_WIDTH - 3 bits, 'format' no longer returns
1554incorrect answers due to internal rounding errors when formatting 1591incorrect answers due to internal rounding errors when formatting
1555Emacs integers with %e, %f, or %g conversions. For example, on these 1592Emacs integers with '%e', '%f', or '%g' conversions. For example, on
1556hosts (eql N (string-to-number (format "%.0f" N))) now returns t for 1593these hosts '(eql N (string-to-number (format "%.0f" N)))' now returns
1557all Emacs integers N. 1594t for all Emacs integers N.
1558
1559+++
1560** 'format' is no longer documented to return a newly-allocated string.
1561This documentation was not correct, as (eq x (format x)) returned t
1562when x was the empty string. 'format' now takes advantage of the doc
1563change to avoid making copies of strings in common cases like (format
1564"foo") and (format "%s" "foo").
1565 1595
1566--- 1596---
1567** Calls that accept floating-point integers (for use on hosts with 1597** Calls that accept floating-point integers (for use on hosts with
1568limited integer range) now signal an error if arguments are not 1598limited integer range) now signal an error if arguments are not
1569integral. For example (decode-char 'ascii 0.5) now signals an error. 1599integral. For example '(decode-char 'ascii 0.5)' now signals an error.
1570 1600
1571+++ 1601+++
1572** The new function 'char-from-name' converts a Unicode name string 1602** The new function 'char-from-name' converts a Unicode name string
@@ -1601,7 +1631,7 @@ ABBR is a time zone abbreviation. The affected functions are
1601'format-time-string', and 'set-time-zone-rule'. 1631'format-time-string', and 'set-time-zone-rule'.
1602 1632
1603+++ 1633+++
1604** 'format-time-string' now formats "%q" to the calendar quarter. 1634** 'format-time-string' now formats '%q' to the calendar quarter.
1605 1635
1606+++ 1636+++
1607** New built-in function 'mapcan'. 1637** New built-in function 'mapcan'.
@@ -1678,7 +1708,7 @@ run.
1678frame's outer border. 1708frame's outer border.
1679 1709
1680+++ 1710+++
1681*** New frame parameters and changed semantics for older ones 1711*** New frame parameters and changed semantics for older ones:
1682 1712
1683+++ 1713+++
1684**** 'z-group' positions a frame above or below all others. 1714**** 'z-group' positions a frame above or below all others.
@@ -1689,8 +1719,8 @@ frame.
1689 1719
1690+++ 1720+++
1691**** 'parent-frame' makes a frame the child frame of another Emacs 1721**** 'parent-frame' makes a frame the child frame of another Emacs
1692frame. The section "Child Frames" in the Elisp manual describes the 1722frame. The section "(elisp) Child Frames" in the ELisp manual
1693intrinsics of that relationship. 1723describes the intrinsics of that relationship.
1694 1724
1695+++ 1725+++
1696**** 'delete-before' triggers deletion of one frame before that of 1726**** 'delete-before' triggers deletion of one frame before that of
@@ -1706,7 +1736,7 @@ frame.
1706 1736
1707+++ 1737+++
1708**** 'skip-taskbar' removes a frame's icon from the taskbar and has 1738**** 'skip-taskbar' removes a frame's icon from the taskbar and has
1709Alt-<TAB> skip this frame. 1739'Alt-<TAB>' skip this frame.
1710 1740
1711+++ 1741+++
1712**** 'no-focus-on-map' avoids that a frame gets input focus when mapped. 1742**** 'no-focus-on-map' avoids that a frame gets input focus when mapped.
@@ -1775,19 +1805,18 @@ internal border.
1775WINDOW for redisplay. 1805WINDOW for redisplay.
1776 1806
1777+++ 1807+++
1778*** Support for side windows is now official. 1808*** Support for side windows is now official. The display action
1779The display action function 'display-buffer-in-side-window' will 1809function 'display-buffer-in-side-window' will display its buffer in a
1780display its buffer in a side window. Functions for toggling all side 1810side window. Functions for toggling all side windows on a frame,
1781windows on a frame, changing and reversing the layout of side windows 1811changing and reversing the layout of side windows and returning the
1782and returning the main (major non-side) window of a frame are 1812main (major non-side) window of a frame are provided. For details
1783provided. For details consult the section "Side Windows" in the Elisp 1813consult the section "(elisp) Side Windows" in the ELisp manual.
1784manual.
1785 1814
1786+++ 1815+++
1787*** Support for atomic windows - rectangular compositions of windows 1816*** Support for atomic windows - rectangular compositions of windows
1788treated by 'split-window', 'delete-window' and 'delete-other-windows' 1817treated by 'split-window', 'delete-window' and 'delete-other-windows'
1789like a single live window - is now official. For details consult the 1818like a single live window - is now official. For details consult the
1790section "Atomic Windows" in the Elisp manual. 1819section "(elisp) Atomic Windows" in the ELisp manual.
1791 1820
1792+++ 1821+++
1793*** New 'display-buffer' alist entry 'window-parameters' allows to 1822*** New 'display-buffer' alist entry 'window-parameters' allows to
@@ -1833,30 +1862,38 @@ window's body.
1833 1862
1834+++ 1863+++
1835*** The semantics of 'mouse-autoselect-window' has changed slightly. 1864*** The semantics of 'mouse-autoselect-window' has changed slightly.
1836For details see the section "Mouse Window Auto-selection" in the Elisp 1865For details see the section "(elisp) Mouse Window Auto-selection" in
1837manual. 1866the ELisp manual.
1867
1868---
1869*** 'select-frame-by-name' now may return a frame on another display
1870if it does not find a suitable one on the current display.
1838 1871
1839--- 1872---
1840** 'tcl-auto-fill-mode' is now declared obsolete. Its functionality 1873** 'tcl-auto-fill-mode' is now declared obsolete. Its functionality
1841can be replicated simply by setting 'comment-auto-fill-only-comments'. 1874can be replicated simply by setting 'comment-auto-fill-only-comments'.
1842 1875
1843** New pcase pattern 'rx' to match against a rx-style regular expression. 1876** New pcase pattern 'rx' to match against an rx-style regular expression.
1844For details, see the doc string of 'rx--pcase-macroexpander'. 1877For details, see the doc string of 'rx--pcase-macroexpander'.
1845 1878
1846--- 1879---
1847** New functions to set region from secondary selection and vice versa. 1880** New functions to set region from secondary selection and vice versa.
1848The new functions 'secondary-selection-to-region' and 1881The new functions 'secondary-selection-to-region' and
1849'secondary-selection-from-region' let you set the beginning and the 1882'secondary-selection-from-region' let you set the beginning and the
1850end of the region from those of the secondary selection and vise 1883end of the region from those of the secondary selection and vice
1851versa. 1884versa.
1852 1885
1886** New function 'lgstring-remove-glyph' can be used to modify a
1887gstring returned by the underlying layout engine (e.g. m17n-flt,
1888uniscribe).
1889
1853 1890
1854* Changes in Emacs 26.1 on Non-Free Operating Systems 1891* Changes in Emacs 26.1 on Non-Free Operating Systems
1855 1892
1856+++ 1893+++
1857** Intercepting hotkeys on Windows 7 and later now works better. 1894** Intercepting hotkeys on Windows 7 and later now works better.
1858The new keyboard hooking code properly grabs system hotkeys such as 1895The new keyboard hooking code properly grabs system hotkeys such as
1859Win-* and Alt-TAB, in a way that Emacs can get at them before the 1896'Win-*' and 'Alt-TAB', in a way that Emacs can get at them before the
1860system. This makes the 'w32-register-hot-key' functionality work 1897system. This makes the 'w32-register-hot-key' functionality work
1861again on all versions of MS-Windows starting with Windows 7. On 1898again on all versions of MS-Windows starting with Windows 7. On
1862Windows NT and later you can now register any hotkey combination. (On 1899Windows NT and later you can now register any hotkey combination. (On