diff options
| author | Eli Zaretskii | 2022-12-25 14:54:33 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2022-12-25 14:54:33 +0200 |
| commit | dad73e4de194f6f652c22fcd542d8796926d4ec6 (patch) | |
| tree | 07c5b1c46beb4f226a07f4d12a3edf5892996339 | |
| parent | 72786ae237e66ff42385a2ac36f422ebb21072df (diff) | |
| download | emacs-dad73e4de194f6f652c22fcd542d8796926d4ec6.tar.gz emacs-dad73e4de194f6f652c22fcd542d8796926d4ec6.zip | |
; Review and fix NEWS and related documentation
* etc/NEWS: Fix wording, punctuation, and markup.
* lisp/emacs-lisp/subr-x.el (string-glyph-split): Doc fix.
* doc/lispref/display.texi (Displaying Messages): Document
'set-message-functions'.
| -rw-r--r-- | doc/lispref/display.texi | 14 | ||||
| -rw-r--r-- | etc/NEWS | 559 | ||||
| -rw-r--r-- | lisp/emacs-lisp/subr-x.el | 5 |
3 files changed, 338 insertions, 240 deletions
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 4111a86aa7e..e67b99b769c 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi | |||
| @@ -346,6 +346,20 @@ The default value is the function that clears the message displayed in | |||
| 346 | an active minibuffer. | 346 | an active minibuffer. |
| 347 | @end defvar | 347 | @end defvar |
| 348 | 348 | ||
| 349 | @defopt set-message-functions | ||
| 350 | The value of this user option is a list of functions to be called for | ||
| 351 | handling display of echo-area messages. Each function is called with | ||
| 352 | one argument, the text of the message to display. If the function | ||
| 353 | returns a string, that string replaces the original message, and the | ||
| 354 | next function in the list is called with the new message text. If the | ||
| 355 | function returns @code{nil}, the next function in the list is called | ||
| 356 | with the same text; if the last function in the list returns | ||
| 357 | @code{nil}, the message text is displayed in the echo area. If the | ||
| 358 | function returns a non-@code{nil} value that is not a string, the | ||
| 359 | message is considered to be handled, and no further functions in the | ||
| 360 | list are called. | ||
| 361 | @end defopt | ||
| 362 | |||
| 349 | @defvar inhibit-message | 363 | @defvar inhibit-message |
| 350 | When this variable is non-@code{nil}, @code{message} and related functions | 364 | When this variable is non-@code{nil}, @code{message} and related functions |
| 351 | will not use the Echo Area to display messages. | 365 | will not use the Echo Area to display messages. |
| @@ -106,7 +106,7 @@ If a constant file name is required, the file can be renamed to | |||
| 106 | "emacs.pdmp", and Emacs will find it during startup anyway. | 106 | "emacs.pdmp", and Emacs will find it during startup anyway. |
| 107 | 107 | ||
| 108 | --- | 108 | --- |
| 109 | ** Emacs now uses XInput 2 for input events. | 109 | ** Emacs on X now uses XInput 2 for input events. |
| 110 | If your X server has support and you have the XInput 2 development | 110 | If your X server has support and you have the XInput 2 development |
| 111 | headers installed, Emacs will use the X Input Extension for handling | 111 | headers installed, Emacs will use the X Input Extension for handling |
| 112 | input. If this causes problems, you can configure Emacs with the | 112 | input. If this causes problems, you can configure Emacs with the |
| @@ -115,6 +115,19 @@ option '--without-xinput2' to disable this support. | |||
| 115 | '(featurep 'xinput2)' can be used to test for the presence of XInput 2 | 115 | '(featurep 'xinput2)' can be used to test for the presence of XInput 2 |
| 116 | support from Lisp programs. | 116 | support from Lisp programs. |
| 117 | 117 | ||
| 118 | +++ | ||
| 119 | ** Emacs now supports being built with pure GTK. | ||
| 120 | To use this option, make sure the GTK 3 (version 3.22.23 or later) and | ||
| 121 | Cairo development files are installed, and configure Emacs with the | ||
| 122 | option '--with-pgtk'. Unlike the default X and GTK build, the | ||
| 123 | resulting Emacs binary will work on any underlying window system | ||
| 124 | supported by GDK, such as Wayland and Broadway. We recommend that you | ||
| 125 | use this configuration only if you are running a window system other | ||
| 126 | than X that's supported by GDK. Running this configuration on X is | ||
| 127 | known to have problems, such as undesirable frame positioning and | ||
| 128 | various issues with keyboard input of sequences such as 'C-;' and | ||
| 129 | 'C-S-u'. | ||
| 130 | |||
| 118 | --- | 131 | --- |
| 119 | ** Emacs no longer reduces the size of the Japanese dictionary. | 132 | ** Emacs no longer reduces the size of the Japanese dictionary. |
| 120 | Building Emacs includes generation of a Japanese dictionary, which is | 133 | Building Emacs includes generation of a Japanese dictionary, which is |
| @@ -130,23 +143,10 @@ by saying | |||
| 130 | 143 | ||
| 131 | after deleting "lisp/leim/ja-dic/ja-dic.el". | 144 | after deleting "lisp/leim/ja-dic/ja-dic.el". |
| 132 | 145 | ||
| 133 | +++ | ||
| 134 | ** Emacs now supports being built with pure GTK. | ||
| 135 | To use this option, make sure the GTK 3 (version 3.22.23 or later) and | ||
| 136 | Cairo development files are installed, and configure Emacs with the | ||
| 137 | option '--with-pgtk'. Unlike the default X and GTK build, the | ||
| 138 | resulting Emacs binary will work on any underlying window system | ||
| 139 | supported by GDK, such as Wayland and Broadway. We do not recommend | ||
| 140 | that you use this configuration, unless you are running a window | ||
| 141 | system that's supported by GDK other than X. Running this | ||
| 142 | configuration on X is known to have problems, such as undesirable | ||
| 143 | frame positioning and various issues with keyboard input of sequences | ||
| 144 | such as 'C-;' and 'C-S-u'. | ||
| 145 | |||
| 146 | --- | 146 | --- |
| 147 | ** The docstrings of preloaded files are not in "etc/DOC" any more. | 147 | ** The docstrings of preloaded files are not in "etc/DOC" any more. |
| 148 | Instead, they're fetched as needed from the corresponding ".elc" file, | 148 | Instead, they're fetched as needed from the corresponding ".elc" |
| 149 | as was already the case for all the non-preloaded files. | 149 | files, as was already the case for all the non-preloaded files. |
| 150 | 150 | ||
| 151 | 151 | ||
| 152 | * Startup Changes in Emacs 29.1 | 152 | * Startup Changes in Emacs 29.1 |
| @@ -172,16 +172,18 @@ the value of the final form. | |||
| 172 | 172 | ||
| 173 | +++ | 173 | +++ |
| 174 | ** Emacs now supports setting 'user-emacs-directory' via '--init-directory'. | 174 | ** Emacs now supports setting 'user-emacs-directory' via '--init-directory'. |
| 175 | Use the '--init-directory' command-line option to set | ||
| 176 | 'user-emacs-directory'. | ||
| 175 | 177 | ||
| 176 | +++ | 178 | +++ |
| 177 | ** Emacs now has a '--fingerprint' option. | 179 | ** Emacs now has a '--fingerprint' option. |
| 178 | This will output a string identifying the current Emacs build. | 180 | This will output a string identifying the current Emacs build, and exit. |
| 179 | 181 | ||
| 180 | +++ | 182 | +++ |
| 181 | ** New hook 'after-pdump-load-hook'. | 183 | ** New hook 'after-pdump-load-hook'. |
| 182 | This is run at the end of the Emacs startup process, and is meant to | 184 | This is run at the end of the Emacs startup process, and is meant to |
| 183 | be used to reinitialize structures that would normally be done at load | 185 | be used to reinitialize data structures that would normally be done at |
| 184 | time. | 186 | load time. |
| 185 | 187 | ||
| 186 | ** Native Compilation | 188 | ** Native Compilation |
| 187 | 189 | ||
| @@ -189,13 +191,15 @@ time. | |||
| 189 | *** New variable 'inhibit-automatic-native-compilation'. | 191 | *** New variable 'inhibit-automatic-native-compilation'. |
| 190 | If set, Emacs will inhibit native compilation (and won't write | 192 | If set, Emacs will inhibit native compilation (and won't write |
| 191 | anything to the eln cache automatically). The variable is initialized | 193 | anything to the eln cache automatically). The variable is initialized |
| 192 | from the 'EMACS_INHIBIT_AUTOMATIC_NATIVE_COMPILATION' environment | 194 | during Emacs startup from the environment variable |
| 193 | variable on Emacs startup. | 195 | 'EMACS_INHIBIT_AUTOMATIC_NATIVE_COMPILATION'. |
| 194 | 196 | ||
| 195 | --- | 197 | --- |
| 196 | *** New command 'native-compile-prune-cache'. | 198 | *** New command 'native-compile-prune-cache'. |
| 197 | This command deletes older eln cache entries (but not the ones for | 199 | This command deletes old subdirectories of the eln cache (but not the |
| 198 | the current Emacs version). | 200 | ones for the current Emacs version). Note that subdirectories of the |
| 201 | system directory where the "*.eln" files are installed (usually, the | ||
| 202 | last entry in 'native-comp-eln-load-path') are not deleted. | ||
| 199 | 203 | ||
| 200 | --- | 204 | --- |
| 201 | *** New function 'startup-redirect-eln-cache'. | 205 | *** New function 'startup-redirect-eln-cache'. |
| @@ -219,12 +223,12 @@ moved to the 'i' keymap, so '+' is now 'i +', '-' is now 'i -', and | |||
| 219 | you can rotate an image twice by saying 'i r r', for instance. | 223 | you can rotate an image twice by saying 'i r r', for instance. |
| 220 | 224 | ||
| 221 | +++ | 225 | +++ |
| 222 | ** Emacs now picks the correct coding system for X input methods. | 226 | ** Emacs now picks the correct coding-system for X input methods. |
| 223 | Previously, Emacs would use the locale coding system for input | 227 | Previously, Emacs would use 'locale-coding-system' for input |
| 224 | methods, which could in some circumstances be incorrect, especially | 228 | methods, which could in some circumstances be incorrect, especially |
| 225 | when the input method chose to fall back to some other coding system. | 229 | when the input method chose to fall back to some other coding system. |
| 226 | 230 | ||
| 227 | Now, Emacs automatically detects the coding system used by input | 231 | Emacs now automatically detects the coding-system used by input |
| 228 | methods, and uses that to decode input in preference to the value of | 232 | methods, and uses that to decode input in preference to the value of |
| 229 | 'locale-coding-system'. This unfortunately means that users who have | 233 | 'locale-coding-system'. This unfortunately means that users who have |
| 230 | changed the coding system used to decode X keyboard input must adjust | 234 | changed the coding system used to decode X keyboard input must adjust |
| @@ -244,7 +248,7 @@ names to be excluded from adding such excerpts. | |||
| 244 | In Emacs versions previous to Emacs 28.1, 'show-paren-mode' defaulted | 248 | In Emacs versions previous to Emacs 28.1, 'show-paren-mode' defaulted |
| 245 | off. In Emacs 28.1, the mode was switched on in all buffers. In | 249 | off. In Emacs 28.1, the mode was switched on in all buffers. In |
| 246 | Emacs 29.1, this was changed to be switched on in all editing-related | 250 | Emacs 29.1, this was changed to be switched on in all editing-related |
| 247 | buffers, but not in buffers that inherit from 'special-mode'. To get | 251 | buffers, but not in buffers that inherit from 'special-mode'. To go |
| 248 | back to how things worked in Emacs 28.1, put the following in your | 252 | back to how things worked in Emacs 28.1, put the following in your |
| 249 | init file: | 253 | init file: |
| 250 | 254 | ||
| @@ -291,7 +295,7 @@ mouse (in 'transient-mark-mode') and then hitting 'd' would skip dot | |||
| 291 | files. These now work equivalently. | 295 | files. These now work equivalently. |
| 292 | 296 | ||
| 293 | +++ | 297 | +++ |
| 294 | ** Warning about "eager macro-expansion failure" is changed into an error. | 298 | ** Warning about "eager macro-expansion failure" is now an error. |
| 295 | 299 | ||
| 296 | --- | 300 | --- |
| 297 | ** Previously, the X "reverseVideo" value at startup was heeded for all frames. | 301 | ** Previously, the X "reverseVideo" value at startup was heeded for all frames. |
| @@ -324,9 +328,9 @@ this off, disable the new 'isearch-fold-quotes-mode' minor mode. | |||
| 324 | ** Sorting commands no longer necessarily change modification status. | 328 | ** Sorting commands no longer necessarily change modification status. |
| 325 | In earlier Emacs versions, commands like 'M-x sort-lines' would always | 329 | In earlier Emacs versions, commands like 'M-x sort-lines' would always |
| 326 | change buffer modification status to "modified", whether they changed | 330 | change buffer modification status to "modified", whether they changed |
| 327 | something in the buffer or not. This has been changed: The buffer is | 331 | something in the buffer or not. This has been changed: the buffer is |
| 328 | marked as modified only if the sorting ended up changing the contents | 332 | marked as modified only if the sorting ended up actually changing the |
| 329 | of the buffer. | 333 | contents of the buffer. |
| 330 | 334 | ||
| 331 | --- | 335 | --- |
| 332 | ** 'string-lines' handles trailing newlines differently. | 336 | ** 'string-lines' handles trailing newlines differently. |
| @@ -355,7 +359,7 @@ your Init file: | |||
| 355 | 359 | ||
| 356 | --- | 360 | --- |
| 357 | ** New user option 'term-clear-full-screen-programs'. | 361 | ** New user option 'term-clear-full-screen-programs'. |
| 358 | By default, term will now work like most terminals when displaying | 362 | By default, term.el will now work like most terminals when displaying |
| 359 | full-screen programs: When they exit, the output is cleared, leaving | 363 | full-screen programs: When they exit, the output is cleared, leaving |
| 360 | what was displayed in the window before the programs started. Set | 364 | what was displayed in the window before the programs started. Set |
| 361 | this user option to nil to revert back to the old behavior. | 365 | this user option to nil to revert back to the old behavior. |
| @@ -452,8 +456,8 @@ Names of thumbnail files generated when 'image-dired-thumbnail-storage' | |||
| 452 | is 'image-dired' now always end in ".jpg". This fixes various issues | 456 | is 'image-dired' now always end in ".jpg". This fixes various issues |
| 453 | on different platforms, but means that thumbnails generated in Emacs 28 | 457 | on different platforms, but means that thumbnails generated in Emacs 28 |
| 454 | will not be used in Emacs 29, and vice-versa. If disk space is an | 458 | will not be used in Emacs 29, and vice-versa. If disk space is an |
| 455 | issue, consider deleting the 'image-dired-dir' directory after | 459 | issue, consider deleting the 'image-dired-dir' directory (usually |
| 456 | upgrading (usually "~/.emacs.d/image-dired/"). | 460 | "~/.emacs.d/image-dired/") after upgrading to Emacs 29. |
| 457 | 461 | ||
| 458 | --- | 462 | --- |
| 459 | ** The 'rlogin' method in the URL library is now obsolete. | 463 | ** The 'rlogin' method in the URL library is now obsolete. |
| @@ -506,7 +510,7 @@ We recommend using 'M-x image-dired' instead. | |||
| 506 | ** The autoarg.el library is now marked obsolete. | 510 | ** The autoarg.el library is now marked obsolete. |
| 507 | This library provides the 'autoarg-mode' and 'autoarg-kp-mode' minor | 511 | This library provides the 'autoarg-mode' and 'autoarg-kp-mode' minor |
| 508 | modes to emulate the behavior of the historical editor Twenex Emacs. | 512 | modes to emulate the behavior of the historical editor Twenex Emacs. |
| 509 | It is believed to no longer be useful. | 513 | We believe it is no longer useful. |
| 510 | 514 | ||
| 511 | --- | 515 | --- |
| 512 | ** The quickurl.el library is now obsolete. | 516 | ** The quickurl.el library is now obsolete. |
| @@ -521,7 +525,7 @@ Use something like 'M-x shell RET ssh <host> RET' instead. | |||
| 521 | 525 | ||
| 522 | --- | 526 | --- |
| 523 | ** The autoload.el library is now obsolete. | 527 | ** The autoload.el library is now obsolete. |
| 524 | It is superseded by the loaddefs-gen.el library. | 528 | It is superseded by the new loaddefs-gen.el library. |
| 525 | 529 | ||
| 526 | --- | 530 | --- |
| 527 | ** The netrc.el library is now obsolete. | 531 | ** The netrc.el library is now obsolete. |
| @@ -566,7 +570,8 @@ optimizations are in effect. | |||
| 566 | 570 | ||
| 567 | A companion variable 'large-hscroll-threshold' controls when another | 571 | A companion variable 'large-hscroll-threshold' controls when another |
| 568 | set of display optimizations are in effect, which are aimed | 572 | set of display optimizations are in effect, which are aimed |
| 569 | specifically at speeding up display of long lines that are truncated. | 573 | specifically at speeding up display of long lines that are truncated |
| 574 | on display. | ||
| 570 | 575 | ||
| 571 | If you still experience slowdowns while editing files with long lines, | 576 | If you still experience slowdowns while editing files with long lines, |
| 572 | this may be due to line truncation, or to one of the enabled minor | 577 | this may be due to line truncation, or to one of the enabled minor |
| @@ -594,14 +599,15 @@ increase and decrease the font size globally. Additionally, the | |||
| 594 | user option 'global-text-scale-adjust-resizes-frames' controls whether | 599 | user option 'global-text-scale-adjust-resizes-frames' controls whether |
| 595 | the frames are resized when the font size is changed. | 600 | the frames are resized when the font size is changed. |
| 596 | 601 | ||
| 602 | --- | ||
| 597 | ** New config variable 'syntax-wholeline-max' to reduce the cost of long lines. | 603 | ** New config variable 'syntax-wholeline-max' to reduce the cost of long lines. |
| 598 | This variable is used by some operations (mostly syntax-propertization | 604 | This variable is used by some operations (mostly syntax-propertization |
| 599 | and font-locking) to treat lines longer than this variable as if they | 605 | and font-locking) to treat lines longer than this variable as if they |
| 600 | were made up of various smaller lines. This can help reduce the | 606 | were made up of various smaller lines. This can help reduce the |
| 601 | slowdowns seen in buffers made of a single long line, but can also | 607 | slowdowns seen in buffers made of a single long line, but can also |
| 602 | cause misbehavior in the presence of such long lines (tho most of that | 608 | cause misbehavior in the presence of such long lines (though most of |
| 603 | misbehavior should usually be limited to mis-highlighting). You can | 609 | that misbehavior should usually be limited to mis-highlighting). You |
| 604 | recover the previous behavior with: | 610 | can recover the previous behavior with: |
| 605 | 611 | ||
| 606 | (setq syntax-wholeline-max most-positive-fixnum) | 612 | (setq syntax-wholeline-max most-positive-fixnum) |
| 607 | 613 | ||
| @@ -616,7 +622,7 @@ and 'C-x 5 L' is now bound to 'find-library-other-frame'. | |||
| 616 | Emacs allows different completion predicates to be used with 'M-x' | 622 | Emacs allows different completion predicates to be used with 'M-x' |
| 617 | (i.e., 'execute-extended-command') via the | 623 | (i.e., 'execute-extended-command') via the |
| 618 | 'read-extended-command-predicate' user option. Emacs also has the | 624 | 'read-extended-command-predicate' user option. Emacs also has the |
| 619 | 'M-X' (note upper case) command, which only displays commands | 625 | 'M-X' (note upper case X) command, which only displays commands |
| 620 | especially relevant to the current buffer. Emacs now allows toggling | 626 | especially relevant to the current buffer. Emacs now allows toggling |
| 621 | between these modes while the user is inputting a command by hitting | 627 | between these modes while the user is inputting a command by hitting |
| 622 | 'M-X' while in the minibuffer. | 628 | 'M-X' while in the minibuffer. |
| @@ -662,7 +668,8 @@ match those regexps will be ignored by 'switch-to-prev-buffer' and | |||
| 662 | +++ | 668 | +++ |
| 663 | ** New command 'rename-visited-file'. | 669 | ** New command 'rename-visited-file'. |
| 664 | This command renames the file visited by the current buffer by moving | 670 | This command renames the file visited by the current buffer by moving |
| 665 | it to a new location, and also makes the buffer visit this new file. | 671 | it to a new name or location, and also makes the buffer visit this new |
| 672 | file. | ||
| 666 | 673 | ||
| 667 | ** Menus | 674 | ** Menus |
| 668 | 675 | ||
| @@ -687,19 +694,21 @@ the current Emacs process at the end, it starts a new Emacs process | |||
| 687 | optional parameters to restart instead of just killing the current | 694 | optional parameters to restart instead of just killing the current |
| 688 | process. | 695 | process. |
| 689 | 696 | ||
| 697 | ** Drag and Drop | ||
| 698 | |||
| 690 | +++ | 699 | +++ |
| 691 | ** New user option 'mouse-drag-mode-line-buffer'. | 700 | *** New user option 'mouse-drag-mode-line-buffer'. |
| 692 | If non-nil, dragging on the buffer name part of the mode-line will | 701 | If non-nil, dragging on the buffer name part of the mode-line will |
| 693 | drag the buffer's associated file to other programs. This option is | 702 | drag the buffer's associated file to other programs. This option is |
| 694 | currently only available on X, Haiku and Nextstep (GNUstep or macOS). | 703 | currently only available on X, Haiku and Nextstep (GNUstep or macOS). |
| 695 | 704 | ||
| 696 | +++ | 705 | +++ |
| 697 | ** New user option 'mouse-drag-and-drop-region-cross-program'. | 706 | *** New user option 'mouse-drag-and-drop-region-cross-program'. |
| 698 | If non-nil, this option allows dragging text in the region from Emacs | 707 | If non-nil, this option allows dragging text in the region from Emacs |
| 699 | to another program. | 708 | to another program. |
| 700 | 709 | ||
| 701 | --- | 710 | --- |
| 702 | ** New user option 'mouse-drag-and-drop-region-scroll-margin'. | 711 | *** New user option 'mouse-drag-and-drop-region-scroll-margin'. |
| 703 | If non-nil, this option allows scrolling a window while dragging text | 712 | If non-nil, this option allows scrolling a window while dragging text |
| 704 | around without a scroll wheel. | 713 | around without a scroll wheel. |
| 705 | 714 | ||
| @@ -709,12 +718,12 @@ This prevents mouse drag gestures from putting empty strings onto the | |||
| 709 | kill ring. | 718 | kill ring. |
| 710 | 719 | ||
| 711 | +++ | 720 | +++ |
| 712 | ** New user options 'dnd-indicate-insertion-point' and 'dnd-scroll-margin'. | 721 | *** New user options 'dnd-indicate-insertion-point' and 'dnd-scroll-margin'. |
| 713 | These options allow adjusting point and scrolling a window when | 722 | These options allow adjusting point and scrolling a window when |
| 714 | dragging items from another program. | 723 | dragging items from another program. |
| 715 | 724 | ||
| 716 | +++ | 725 | +++ |
| 717 | ** The X Direct Save (XDS) protocol is now supported. | 726 | *** The X Direct Save (XDS) protocol is now supported. |
| 718 | This means dropping an image or file link from programs such as | 727 | This means dropping an image or file link from programs such as |
| 719 | Firefox will no longer create a temporary file in a random directory, | 728 | Firefox will no longer create a temporary file in a random directory, |
| 720 | instead asking you where to save the file first. | 729 | instead asking you where to save the file first. |
| @@ -746,6 +755,7 @@ part of the buffer. | |||
| 746 | +++ | 755 | +++ |
| 747 | ** 'count-words' will now report sentence count when used interactively. | 756 | ** 'count-words' will now report sentence count when used interactively. |
| 748 | 757 | ||
| 758 | +++ | ||
| 749 | ** New user option 'set-message-functions'. | 759 | ** New user option 'set-message-functions'. |
| 750 | It allows selecting more functions for 'set-message-function' | 760 | It allows selecting more functions for 'set-message-function' |
| 751 | in addition to the default function that handles messages | 761 | in addition to the default function that handles messages |
| @@ -884,6 +894,7 @@ This is in addition to previously-supported ways of discovering 24-bit | |||
| 884 | color support: either via the "RGB" or "setf24" capabilities, or if | 894 | color support: either via the "RGB" or "setf24" capabilities, or if |
| 885 | the 'COLORTERM' environment variable is set to the value "truecolor". | 895 | the 'COLORTERM' environment variable is set to the value "truecolor". |
| 886 | 896 | ||
| 897 | --- | ||
| 887 | *** Select active regions with xterm selection support. | 898 | *** Select active regions with xterm selection support. |
| 888 | On terminals with xterm setSelection support, the active region may be | 899 | On terminals with xterm setSelection support, the active region may be |
| 889 | saved to the X primary selection, following the | 900 | saved to the X primary selection, following the |
| @@ -895,7 +906,8 @@ saved to the X primary selection, following the | |||
| 895 | The new command 'standard-display-by-replacement-char' produces Lisp | 906 | The new command 'standard-display-by-replacement-char' produces Lisp |
| 896 | code that sets up the 'standard-display-table' to use a replacement | 907 | code that sets up the 'standard-display-table' to use a replacement |
| 897 | character for display of characters that the text-mode terminal | 908 | character for display of characters that the text-mode terminal |
| 898 | doesn't support. It is most useful with the Linux console and similar | 909 | doesn't support. This code is intended to be used in your init files. |
| 910 | This feature is most useful with the Linux console and similar | ||
| 899 | terminals, where Emacs has a reliable way of determining which | 911 | terminals, where Emacs has a reliable way of determining which |
| 900 | characters have glyphs in the font loaded into the terminal's memory. | 912 | characters have glyphs in the font loaded into the terminal's memory. |
| 901 | 913 | ||
| @@ -936,7 +948,7 @@ This affects the 'ert-select-tests' function and its callers. | |||
| 936 | ** Emoji | 948 | ** Emoji |
| 937 | 949 | ||
| 938 | +++ | 950 | +++ |
| 939 | *** Emacs now has several new methods for inserting Emojis. | 951 | *** Emacs now has several new methods for inserting Emoji. |
| 940 | The Emoji commands are under the new 'C-x 8 e' prefix. | 952 | The Emoji commands are under the new 'C-x 8 e' prefix. |
| 941 | 953 | ||
| 942 | +++ | 954 | +++ |
| @@ -946,42 +958,42 @@ combinations in a graphical menu system. | |||
| 946 | 958 | ||
| 947 | +++ | 959 | +++ |
| 948 | *** New command 'emoji-search' (bound to 'C-x 8 e s'). | 960 | *** New command 'emoji-search' (bound to 'C-x 8 e s'). |
| 949 | This command lets you search for Emojis based on names. | 961 | This command lets you search for Emoji based on names. |
| 950 | 962 | ||
| 951 | +++ | 963 | +++ |
| 952 | *** New command 'emoji-list' (bound to 'C-x 8 e l'). | 964 | *** New command 'emoji-list' (bound to 'C-x 8 e l'). |
| 953 | This command lists all Emojis (categorized by themes) in a special | 965 | This command lists all Emoji (categorized by themes) in a special |
| 954 | buffer and lets you choose one of them. | 966 | buffer and lets you choose one of them. |
| 955 | 967 | ||
| 956 | --- | 968 | --- |
| 957 | *** New command 'emoji-recent' (bound to 'C-x 8 e r'). | 969 | *** New command 'emoji-recent' (bound to 'C-x 8 e r'). |
| 958 | This command lets you choose among the Emojis you have recently | 970 | This command lets you choose among the Emoji you have recently |
| 959 | inserted. | 971 | inserted. |
| 960 | 972 | ||
| 961 | +++ | 973 | +++ |
| 962 | *** New command 'emoji-describe' (bound to 'C-x 8 e d'). | 974 | *** New command 'emoji-describe' (bound to 'C-x 8 e d'). |
| 963 | This command will tell you the name of the Emoji at point. (This | 975 | This command will tell you the name of the Emoji at point. (It also |
| 964 | command also works for non-Emoji characters.) | 976 | works for non-Emoji characters.) |
| 965 | 977 | ||
| 966 | --- | 978 | --- |
| 967 | *** New commands 'emoji-zoom-increase' and 'emoji-zoom-decrease'. | 979 | *** New commands 'emoji-zoom-increase' and 'emoji-zoom-decrease'. |
| 968 | These are bound to 'C-x 8 e +' and 'C-x 8 e -', respectively. They | 980 | These are bound to 'C-x 8 e +' and 'C-x 8 e -', respectively. They |
| 969 | can be used on any character, but are mainly useful for emoji. | 981 | can be used on any character, but are mainly useful for Emoji. |
| 970 | 982 | ||
| 971 | --- | 983 | --- |
| 972 | *** New input method 'emoji'. | 984 | *** New input method 'emoji'. |
| 973 | This allows you to enter emoji using short strings, eg ':face_palm:' | 985 | This allows you to enter Emoji using short strings, eg ':face_palm:' |
| 974 | or ':scream:'. | 986 | or ':scream:'. |
| 975 | 987 | ||
| 976 | ** Help | 988 | ** Help |
| 977 | 989 | ||
| 978 | --- | 990 | --- |
| 979 | *** Variable values displayed by 'C-h v' in "*Help*" are now font-locked. | 991 | *** Variable values displayed by 'C-h v' in "*Help*" are now fontified. |
| 980 | 992 | ||
| 981 | +++ | 993 | +++ |
| 982 | *** New user option 'help-clean-buttons'. | 994 | *** New user option 'help-clean-buttons'. |
| 983 | If non-nil, link buttons in "*Help*" will have any surrounding quotes | 995 | If non-nil, link buttons in "*Help*" buffers will have any surrounding |
| 984 | removed. | 996 | quotes removed. |
| 985 | 997 | ||
| 986 | --- | 998 | --- |
| 987 | *** 'M-x apropos-variable' output now includes values of variables. | 999 | *** 'M-x apropos-variable' output now includes values of variables. |
| @@ -992,13 +1004,13 @@ When displaying docstrings in "*Help*" buffers, strings that are | |||
| 992 | "`like-this'" are made into links (if they point to a bound | 1004 | "`like-this'" are made into links (if they point to a bound |
| 993 | function/variable). This can lead to false positives when talking | 1005 | function/variable). This can lead to false positives when talking |
| 994 | about values that are symbols that happen to have the same names as | 1006 | about values that are symbols that happen to have the same names as |
| 995 | functions/variables. To inhibit this buttonification, the new | 1007 | functions/variables. To inhibit this buttonification, use the new |
| 996 | "\\+`like-this'" syntax can be used. | 1008 | "\\+`like-this'" syntax. |
| 997 | 1009 | ||
| 998 | +++ | 1010 | +++ |
| 999 | *** New user option 'help-window-keep-selected'. | 1011 | *** New user option 'help-window-keep-selected'. |
| 1000 | If non-nil, commands to show the info manual and the source will reuse | 1012 | If non-nil, commands to show the info manual and the source will reuse |
| 1001 | the same window the "*Help*" buffer is shown in. | 1013 | the same window in which the "*Help*" buffer is shown. |
| 1002 | 1014 | ||
| 1003 | --- | 1015 | --- |
| 1004 | *** Commands like 'C-h f' have changed how they describe menu bindings. | 1016 | *** Commands like 'C-h f' have changed how they describe menu bindings. |
| @@ -1027,19 +1039,19 @@ it's easy to make an edit that yields an invalid result. | |||
| 1027 | 1039 | ||
| 1028 | --- | 1040 | --- |
| 1029 | *** 'C-h b' uses outlining by default. | 1041 | *** 'C-h b' uses outlining by default. |
| 1030 | Set 'describe-bindings-outline' to nil to get the old behavior. | 1042 | Set 'describe-bindings-outline' to nil to get back the old behavior. |
| 1031 | 1043 | ||
| 1032 | --- | 1044 | --- |
| 1033 | *** Jumping to function/variable source now saves mark before moving point. | 1045 | *** Jumping to function/variable source now saves mark before moving point. |
| 1034 | Jumping to source from "*Help*" buffer moves the point when the source | 1046 | Jumping to source from a "*Help*" buffer moves point when the source |
| 1035 | buffer is already open. Now, the old point is pushed to mark ring. | 1047 | buffer is already open. Now, the old point is pushed onto mark ring. |
| 1036 | 1048 | ||
| 1037 | +++ | 1049 | +++ |
| 1038 | *** New key bindings in "*Help*" buffers: 'n' and 'p'. | 1050 | *** New key bindings in "*Help*" buffers: 'n' and 'p'. |
| 1039 | These will take you (respectively) to the next and previous "page". | 1051 | These will take you (respectively) to the next and previous "page". |
| 1040 | 1052 | ||
| 1041 | --- | 1053 | --- |
| 1042 | *** 'describe-char' now also outputs the name of emoji combinations. | 1054 | *** 'describe-char' now also outputs the name of Emoji sequences. |
| 1043 | 1055 | ||
| 1044 | +++ | 1056 | +++ |
| 1045 | *** New key binding in "*Help*" buffer: 'I'. | 1057 | *** New key binding in "*Help*" buffer: 'I'. |
| @@ -1067,7 +1079,7 @@ The command pops up a buffer at the bottom of the screen with a few | |||
| 1067 | helpful commands for various tasks. You can toggle the display using | 1079 | helpful commands for various tasks. You can toggle the display using |
| 1068 | 'C-h q'. | 1080 | 'C-h q'. |
| 1069 | 1081 | ||
| 1070 | ** Emacs 29.1 comes with Org v9.6. | 1082 | ** Emacs now comes with Org v9.6. |
| 1071 | See the file ORG-NEWS for user-visible changes in Org. | 1083 | See the file ORG-NEWS for user-visible changes in Org. |
| 1072 | 1084 | ||
| 1073 | ** Outline Mode | 1085 | ** Outline Mode |
| @@ -1075,12 +1087,12 @@ See the file ORG-NEWS for user-visible changes in Org. | |||
| 1075 | +++ | 1087 | +++ |
| 1076 | *** Support for customizing the default visibility state of headings. | 1088 | *** Support for customizing the default visibility state of headings. |
| 1077 | Customize the user option 'outline-default-state' to define what | 1089 | Customize the user option 'outline-default-state' to define what |
| 1078 | headings will be visible after Outline mode is turned on. When equal | 1090 | headings will be visible initially, after Outline mode is turned on. |
| 1079 | to a number, the user option 'outline-default-rules' determines the | 1091 | When the value is a number, the user option 'outline-default-rules' |
| 1080 | visibility of the subtree starting at the corresponding level. Values | 1092 | determines the visibility of the subtree starting at the corresponding |
| 1081 | are provided to control showing a heading subtree depending on whether | 1093 | level. Values are provided to control showing a heading subtree |
| 1082 | the heading matches a regexp, or on whether its subtree has long lines | 1094 | depending on whether the heading matches a regexp, or on whether its |
| 1083 | or is itself too long. | 1095 | subtree has long lines or is itself too long. |
| 1084 | 1096 | ||
| 1085 | ** Outline Minor Mode | 1097 | ** Outline Minor Mode |
| 1086 | 1098 | ||
| @@ -1088,10 +1100,10 @@ or is itself too long. | |||
| 1088 | *** New user option 'outline-minor-mode-use-buttons'. | 1100 | *** New user option 'outline-minor-mode-use-buttons'. |
| 1089 | If non-nil, Outline Minor Mode will use buttons to hide/show outlines | 1101 | If non-nil, Outline Minor Mode will use buttons to hide/show outlines |
| 1090 | in addition to the ellipsis. The default is nil, but in 'help-mode' | 1102 | in addition to the ellipsis. The default is nil, but in 'help-mode' |
| 1091 | it has the value 'insert' that inserts the buttons directly to the | 1103 | it has the value 'insert' that inserts the buttons directly into the |
| 1092 | buffer where you can use 'RET' to cycle outline visibility. When | 1104 | buffer, and you can use 'RET' to cycle outline visibility. When |
| 1093 | the value is 'in-margins', Outline Minor Mode uses the window margins | 1105 | the value is 'in-margins', Outline Minor Mode uses the window margins |
| 1094 | to hide/show outlines. | 1106 | to hide/show buttons. |
| 1095 | 1107 | ||
| 1096 | ** Windows | 1108 | ** Windows |
| 1097 | 1109 | ||
| @@ -1099,17 +1111,19 @@ to hide/show outlines. | |||
| 1099 | *** New commands 'split-root-window-below' and 'split-root-window-right'. | 1111 | *** New commands 'split-root-window-below' and 'split-root-window-right'. |
| 1100 | These commands split the root window in two, and are bound to 'C-x w 2' | 1112 | These commands split the root window in two, and are bound to 'C-x w 2' |
| 1101 | and 'C-x w 3', respectively. A number of other useful window-related | 1113 | and 'C-x w 3', respectively. A number of other useful window-related |
| 1102 | commands are now available on the 'C-x w' prefix. | 1114 | commands are now available with key sequences that start with the |
| 1115 | 'C-x w' prefix. | ||
| 1103 | 1116 | ||
| 1104 | +++ | 1117 | +++ |
| 1105 | *** New user option 'display-buffer-avoid-small-windows'. | 1118 | *** New user option 'display-buffer-avoid-small-windows'. |
| 1106 | If non-nil, this should be a window height, a number. Windows smaller | 1119 | If non-nil, this should be a window height in lines, a number. |
| 1107 | than this will be avoided by 'display-buffer', if possible. | 1120 | Windows smaller than this will be avoided by 'display-buffer', if |
| 1121 | possible. | ||
| 1108 | 1122 | ||
| 1109 | +++ | 1123 | +++ |
| 1110 | *** New display action 'display-buffer-full-frame'. | 1124 | *** New display action 'display-buffer-full-frame'. |
| 1111 | This action removes other windows on the frame when displaying a | 1125 | This action removes other windows from the frame when displaying a |
| 1112 | buffer. | 1126 | buffer on that frame. |
| 1113 | 1127 | ||
| 1114 | +++ | 1128 | +++ |
| 1115 | *** 'display-buffer' now can set up the body size of the chosen window. | 1129 | *** 'display-buffer' now can set up the body size of the chosen window. |
| @@ -1118,10 +1132,10 @@ For example, a 'display-buffer-alist' entry of | |||
| 1118 | '(window-width . (body-columns . 40))' | 1132 | '(window-width . (body-columns . 40))' |
| 1119 | 1133 | ||
| 1120 | will make the body of the chosen window 40 columns wide. For the | 1134 | will make the body of the chosen window 40 columns wide. For the |
| 1121 | height use 'window-height' in combination with 'body-lines'. | 1135 | height use 'window-height' and 'body-lines', respectively. |
| 1122 | 1136 | ||
| 1123 | --- | 1137 | --- |
| 1124 | *** You can customize which window 'scroll-other-window' operates on. | 1138 | *** You can customize on which window 'scroll-other-window' operates. |
| 1125 | This is controlled by the new 'other-window-scroll-default' user option. | 1139 | This is controlled by the new 'other-window-scroll-default' user option. |
| 1126 | 1140 | ||
| 1127 | ** Frames | 1141 | ** Frames |
| @@ -1145,6 +1159,8 @@ before its name on display is truncated. | |||
| 1145 | 1159 | ||
| 1146 | --- | 1160 | --- |
| 1147 | *** 'C-x t RET' creates a new tab when the provided tab name doesn't exist. | 1161 | *** 'C-x t RET' creates a new tab when the provided tab name doesn't exist. |
| 1162 | It prompts for the name of a tab and switches to it, creating a new | ||
| 1163 | tab if no tab exists by that name. | ||
| 1148 | 1164 | ||
| 1149 | --- | 1165 | --- |
| 1150 | *** New keymap 'tab-bar-history-mode-map'. | 1166 | *** New keymap 'tab-bar-history-mode-map'. |
| @@ -1211,7 +1227,7 @@ Most IRC clients (including rcirc) support basic formatting using | |||
| 1211 | control codes. Under the 'C-c C-f' prefix a few commands have been | 1227 | control codes. Under the 'C-c C-f' prefix a few commands have been |
| 1212 | added to insert these automatically. For example, if a region is | 1228 | added to insert these automatically. For example, if a region is |
| 1213 | active and 'C-c C-f C-b' is invoked, markup is inserted for the region | 1229 | active and 'C-c C-f C-b' is invoked, markup is inserted for the region |
| 1214 | to be highlighted bold. | 1230 | to be highlighted in bold. |
| 1215 | 1231 | ||
| 1216 | ** Imenu | 1232 | ** Imenu |
| 1217 | 1233 | ||
| @@ -1223,13 +1239,16 @@ to be highlighted bold. | |||
| 1223 | Use it if you want Imenu to forget the buffer's index alist and | 1239 | Use it if you want Imenu to forget the buffer's index alist and |
| 1224 | recreate it anew next time 'imenu' is invoked. | 1240 | recreate it anew next time 'imenu' is invoked. |
| 1225 | 1241 | ||
| 1226 | +++ | 1242 | --- |
| 1227 | ** Emacs is now capable of abandoning a window's redisplay that takes too long. | 1243 | ** Emacs is now capable of abandoning a window's redisplay that takes too long. |
| 1228 | This is controlled by the new variable 'max-redisplay-ticks'. If that | 1244 | This is controlled by the new variable 'max-redisplay-ticks'. If that |
| 1229 | variable is set to a non-zero value, display of a window will be | 1245 | variable is set to a non-zero value, display of a window will be |
| 1230 | aborted after that many low-level redisplay operations, thus | 1246 | aborted after that many low-level redisplay operations, thus |
| 1231 | preventing Emacs from becoming wedged when visiting files with very | 1247 | preventing Emacs from becoming wedged when visiting files with very |
| 1232 | long lines. | 1248 | long lines. The default is zero, which disables the feature: Emacs |
| 1249 | will wait forever for redisplay to finish. (We believe you won't need | ||
| 1250 | this feature, given the ability to display buffers with very long | ||
| 1251 | lines.) | ||
| 1233 | 1252 | ||
| 1234 | * Editing Changes in Emacs 29.1 | 1253 | * Editing Changes in Emacs 29.1 |
| 1235 | 1254 | ||
| @@ -1242,15 +1261,15 @@ option 'cycle-spacing-actions'. | |||
| 1242 | --- | 1261 | --- |
| 1243 | ** 'zap-to-char' and 'zap-up-to-char' are case-sensitive for upper-case chars. | 1262 | ** 'zap-to-char' and 'zap-up-to-char' are case-sensitive for upper-case chars. |
| 1244 | These commands now behave as case-sensitive for interactive calls when | 1263 | These commands now behave as case-sensitive for interactive calls when |
| 1245 | they are invoked with an uppercase character, regardless of the | 1264 | they are invoked with an uppercase character, regardless of the value |
| 1246 | 'case-fold-search' value. | 1265 | of 'case-fold-search'. |
| 1247 | 1266 | ||
| 1248 | --- | 1267 | --- |
| 1249 | ** 'scroll-other-window' and 'scroll-other-window-down' now respect remapping. | 1268 | ** 'scroll-other-window' and 'scroll-other-window-down' now respect remapping. |
| 1250 | These commands (bound to 'C-M-v' and 'C-M-V') used to scroll the other | 1269 | These commands (bound to 'C-M-v' and 'C-M-V') used to scroll the other |
| 1251 | windows without looking a customizations in that other window. These | 1270 | windows without looking at customizations in that other window. These |
| 1252 | functions now check whether they have been rebound in the buffer in | 1271 | functions now check whether they have been rebound in the buffer shown |
| 1253 | that other window, and then call the remapped function instead. In | 1272 | in that other window, and then call the remapped function instead. In |
| 1254 | addition, these commands now also respect the | 1273 | addition, these commands now also respect the |
| 1255 | 'scroll-error-top-bottom' user option. | 1274 | 'scroll-error-top-bottom' user option. |
| 1256 | 1275 | ||
| @@ -1267,8 +1286,8 @@ This change also affects 'cl-macrolet', 'cl-flet*' and | |||
| 1267 | 1286 | ||
| 1268 | +++ | 1287 | +++ |
| 1269 | ** New user option 'translate-upper-case-key-bindings'. | 1288 | ** New user option 'translate-upper-case-key-bindings'. |
| 1270 | Set this option to nil to inhibit translating upper case keys to lower | 1289 | Set this option to nil to inhibit the default translation of upper |
| 1271 | case keys. | 1290 | case keys to their lower case variants. |
| 1272 | 1291 | ||
| 1273 | +++ | 1292 | +++ |
| 1274 | ** New command 'ensure-empty-lines'. | 1293 | ** New command 'ensure-empty-lines'. |
| @@ -1279,8 +1298,8 @@ point. | |||
| 1279 | ** Improved mouse behavior with auto-scrolling modes. | 1298 | ** Improved mouse behavior with auto-scrolling modes. |
| 1280 | When clicking inside the 'scroll-margin' or 'hscroll-margin' region, | 1299 | When clicking inside the 'scroll-margin' or 'hscroll-margin' region, |
| 1281 | point is now moved only when releasing the mouse button. This no | 1300 | point is now moved only when releasing the mouse button. This no |
| 1282 | longer results in a bogus selection, unless the mouse has been | 1301 | longer results in a bogus selection, unless the mouse has also been |
| 1283 | effectively dragged. | 1302 | dragged. |
| 1284 | 1303 | ||
| 1285 | +++ | 1304 | +++ |
| 1286 | ** 'kill-ring-max' now defaults to 120. | 1305 | ** 'kill-ring-max' now defaults to 120. |
| @@ -1301,10 +1320,11 @@ When non-nil, if the point is in a closing delimiter and the opening | |||
| 1301 | delimiter is offscreen, shows some context around the opening | 1320 | delimiter is offscreen, shows some context around the opening |
| 1302 | delimiter in the echo area. The default is nil. | 1321 | delimiter in the echo area. The default is nil. |
| 1303 | 1322 | ||
| 1304 | May also be set to the symbols 'overlay' or 'child-frame', in which | 1323 | This option can also be set to the symbols 'overlay' or 'child-frame', |
| 1305 | case the context is shown in an overlay or child-frame at the top-left | 1324 | in which case the context is shown in an overlay or child-frame at the |
| 1306 | of the current window. The latter option requires a graphical frame. | 1325 | top-left of the current window. The latter option requires a |
| 1307 | On non-graphical frames, the context is shown in the echo area. | 1326 | graphical frame. On non-graphical frames, the context is shown in the |
| 1327 | echo area. | ||
| 1308 | 1328 | ||
| 1309 | ** Comint | 1329 | ** Comint |
| 1310 | 1330 | ||
| @@ -1318,7 +1338,7 @@ change the terminal used on a remote host. | |||
| 1318 | *** New user option 'comint-delete-old-input'. | 1338 | *** New user option 'comint-delete-old-input'. |
| 1319 | When nil, this prevents comint from deleting the current input when | 1339 | When nil, this prevents comint from deleting the current input when |
| 1320 | inserting previous input using '<mouse-2>'. The default is t, to | 1340 | inserting previous input using '<mouse-2>'. The default is t, to |
| 1321 | preserve past behavior. | 1341 | preserve previous behavior. |
| 1322 | 1342 | ||
| 1323 | --- | 1343 | --- |
| 1324 | *** New minor mode 'comint-fontify-input-mode'. | 1344 | *** New minor mode 'comint-fontify-input-mode'. |
| @@ -1339,55 +1359,88 @@ support systems where two kinds of wheel events can be received. | |||
| 1339 | 1359 | ||
| 1340 | ** Internationalization changes | 1360 | ** Internationalization changes |
| 1341 | 1361 | ||
| 1362 | --- | ||
| 1342 | *** The <Delete> function key now allows deleting the entire composed sequence. | 1363 | *** The <Delete> function key now allows deleting the entire composed sequence. |
| 1343 | For the details, see the item about the 'delete-forward-char' command | 1364 | For the details, see the item about the 'delete-forward-char' command |
| 1344 | above. | 1365 | above. |
| 1345 | 1366 | ||
| 1367 | --- | ||
| 1346 | *** New user option 'composition-break-at-point'. | 1368 | *** New user option 'composition-break-at-point'. |
| 1347 | Setting it to a non-nil value temporarily disables automatic | 1369 | Setting it to a non-nil value temporarily disables automatic |
| 1348 | composition of character sequences at point, and thus makes it easier | 1370 | composition of character sequences at point, and thus makes it easier |
| 1349 | to edit such sequences by allowing point to "enter" the sequence. | 1371 | to edit such sequences by allowing point to "enter" the composed |
| 1372 | sequence. | ||
| 1350 | 1373 | ||
| 1351 | --- | 1374 | --- |
| 1352 | *** Support for many old scripts and writing systems. | 1375 | *** Support for many old scripts and writing systems. |
| 1353 | Emacs now supports and has language-environments and input methods for | 1376 | Emacs now supports, and has language-environments and input methods, |
| 1354 | several dozens of old scripts that were used in the past for various | 1377 | for several dozens of old scripts that were used in the past for |
| 1355 | languages. For each such script Emacs now has font-selection and | 1378 | various languages. For each such script Emacs now has font-selection |
| 1356 | character composition rules, a language environment, and an input | 1379 | and character composition rules, a language environment, and an input |
| 1357 | method. The newly-added scripts and the corresponding language | 1380 | method. The newly-added scripts and the corresponding language |
| 1358 | environments are: | 1381 | environments are: |
| 1359 | 1382 | ||
| 1360 | Tai Tham script and the Northern Thai language environment | 1383 | Tai Tham script and the Northern Thai language environment |
| 1361 | Brahmi script and language environment | 1384 | |
| 1362 | Kaithi script and language environment | 1385 | Brahmi script and language environment |
| 1363 | Tirhuta script and language environment | 1386 | |
| 1364 | Sharada script and language environment | 1387 | Kaithi script and language environment |
| 1365 | Siddham script and language environment | 1388 | |
| 1366 | Syloti Nagri script and language environment | 1389 | Tirhuta script and language environment |
| 1367 | Modi script and language environment | 1390 | |
| 1368 | Baybayin script and Tagalog language environment | 1391 | Sharada script and language environment |
| 1369 | Hanunoo script and language environment | 1392 | |
| 1370 | Buhid script and language environment | 1393 | Siddham script and language environment |
| 1371 | Tagbanwa script and language environment | 1394 | |
| 1372 | Limbu script and language environment | 1395 | Syloti Nagri script and language environment |
| 1373 | Balinese script and language environment | 1396 | |
| 1374 | Javanese script and language environment | 1397 | Modi script and language environment |
| 1375 | Sundanese script and language environment | 1398 | |
| 1376 | Batak script and language environment | 1399 | Baybayin script and Tagalog language environment |
| 1377 | Rejang script and language environment | 1400 | |
| 1378 | Makasar script and language environment | 1401 | Hanunoo script and language environment |
| 1379 | Lontara script and language environment | 1402 | |
| 1380 | Hanifi Rohingya script and language environment | 1403 | Buhid script and language environment |
| 1381 | Grantha script and language environment | 1404 | |
| 1382 | Kharoshthi script and language environment | 1405 | Tagbanwa script and language environment |
| 1383 | Lepcha script and language environment | 1406 | |
| 1384 | Meetei Mayek script and language environment | 1407 | Limbu script and language environment |
| 1385 | Adlam script and language environment | 1408 | |
| 1386 | Mende Kikakui script and language environment | 1409 | Balinese script and language environment |
| 1387 | Wancho script and language environment | 1410 | |
| 1388 | Toto script and language environment | 1411 | Javanese script and language environment |
| 1389 | Gothic script and language environment | 1412 | |
| 1390 | Coptic script and language environment | 1413 | Sundanese script and language environment |
| 1414 | |||
| 1415 | Batak script and language environment | ||
| 1416 | |||
| 1417 | Rejang script and language environment | ||
| 1418 | |||
| 1419 | Makasar script and language environment | ||
| 1420 | |||
| 1421 | Lontara script and language environment | ||
| 1422 | |||
| 1423 | Hanifi Rohingya script and language environment | ||
| 1424 | |||
| 1425 | Grantha script and language environment | ||
| 1426 | |||
| 1427 | Kharoshthi script and language environment | ||
| 1428 | |||
| 1429 | Lepcha script and language environment | ||
| 1430 | |||
| 1431 | Meetei Mayek script and language environment | ||
| 1432 | |||
| 1433 | Adlam script and language environment | ||
| 1434 | |||
| 1435 | Mende Kikakui script and language environment | ||
| 1436 | |||
| 1437 | Wancho script and language environment | ||
| 1438 | |||
| 1439 | Toto script and language environment | ||
| 1440 | |||
| 1441 | Gothic script and language environment | ||
| 1442 | |||
| 1443 | Coptic script and language environment | ||
| 1391 | 1444 | ||
| 1392 | --- | 1445 | --- |
| 1393 | *** The "Oriya" language environment was renamed to "Odia". | 1446 | *** The "Oriya" language environment was renamed to "Odia". |
| @@ -1423,8 +1476,9 @@ the QWERTY Slovak keyboards. | |||
| 1423 | 1476 | ||
| 1424 | --- | 1477 | --- |
| 1425 | *** New input method 'cyrillic-chuvash'. | 1478 | *** New input method 'cyrillic-chuvash'. |
| 1426 | This input method is based on the russian-computer, and is intended | 1479 | This input method is based on the russian-computer input method, and |
| 1427 | for the Chuvash language written in the Cyrillic script. | 1480 | is intended for typing in the Chuvash language written in the Cyrillic |
| 1481 | script. | ||
| 1428 | 1482 | ||
| 1429 | 1483 | ||
| 1430 | * Changes in Specialized Modes and Packages in Emacs 29.1 | 1484 | * Changes in Specialized Modes and Packages in Emacs 29.1 |
| @@ -1506,6 +1560,40 @@ the following to your Init file: | |||
| 1506 | *** New command 'dired-do-eww'. | 1560 | *** New command 'dired-do-eww'. |
| 1507 | This command visits the file on the current line with EWW. | 1561 | This command visits the file on the current line with EWW. |
| 1508 | 1562 | ||
| 1563 | --- | ||
| 1564 | *** New user option 'dired-omit-lines'. | ||
| 1565 | This is used by 'dired-omit-mode', and now allows you to hide based on | ||
| 1566 | other things than just the file names. | ||
| 1567 | |||
| 1568 | +++ | ||
| 1569 | *** New user option 'dired-mouse-drag-files'. | ||
| 1570 | If non-nil, dragging file names with the mouse in a Dired buffer will | ||
| 1571 | initiate a drag-and-drop session allowing them to be opened in other | ||
| 1572 | programs. | ||
| 1573 | |||
| 1574 | +++ | ||
| 1575 | *** New user option 'dired-free-space'. | ||
| 1576 | Dired will now, by default, include the free space in the first line | ||
| 1577 | instead of having it on a separate line. To get the previous behavior | ||
| 1578 | back, say: | ||
| 1579 | |||
| 1580 | (setq dired-free-space 'separate) | ||
| 1581 | |||
| 1582 | --- | ||
| 1583 | *** New user option 'dired-make-directory-clickable'. | ||
| 1584 | If non-nil (which is the default), hitting 'RET' or 'mouse-1' on | ||
| 1585 | the directory components at the directory displayed at the start of | ||
| 1586 | the buffer will take you to that directory. | ||
| 1587 | |||
| 1588 | --- | ||
| 1589 | *** Search and replace in Dired/Wdired supports more regexps. | ||
| 1590 | For example, the regexp ".*" will match only characters that are part | ||
| 1591 | of the file name. Also "^.*$" can be used to match at the beginning | ||
| 1592 | of the file name and at the end of the file name. This is used only | ||
| 1593 | when searching on file names. In Wdired this can be used when the new | ||
| 1594 | user option 'wdired-search-replace-filenames' is non-nil (which is the | ||
| 1595 | default). | ||
| 1596 | |||
| 1509 | ** Elisp | 1597 | ** Elisp |
| 1510 | 1598 | ||
| 1511 | --- | 1599 | --- |
| @@ -1522,7 +1610,7 @@ byte-compile the visited file and the current buffer, respectively. | |||
| 1522 | --- | 1610 | --- |
| 1523 | *** New user option 'tetris-allow-repetitions'. | 1611 | *** New user option 'tetris-allow-repetitions'. |
| 1524 | This controls how randomness is implemented (whether to use pure | 1612 | This controls how randomness is implemented (whether to use pure |
| 1525 | randomness as before or whether to use a bag). | 1613 | randomness as before, or to use a bag). |
| 1526 | 1614 | ||
| 1527 | ** Battery | 1615 | ** Battery |
| 1528 | 1616 | ||
| @@ -1553,7 +1641,7 @@ command is installed. | |||
| 1553 | ** CC Mode | 1641 | ** CC Mode |
| 1554 | 1642 | ||
| 1555 | --- | 1643 | --- |
| 1556 | *** C++ Mode now supports most of the new features in the C++20 standard. | 1644 | *** C++ Mode now supports most of the new features in the C++20 Standard. |
| 1557 | 1645 | ||
| 1558 | ** Cperl Mode | 1646 | ** Cperl Mode |
| 1559 | 1647 | ||
| @@ -1566,8 +1654,8 @@ be used as a file-local variable. | |||
| 1566 | 1654 | ||
| 1567 | --- | 1655 | --- |
| 1568 | *** 'gud-go' is now bound to 'C-c C-v'. | 1656 | *** 'gud-go' is now bound to 'C-c C-v'. |
| 1569 | If given a prefix, it will query the user for an argument to use for | 1657 | If given a prefix, it will prompt for an argument to use for the |
| 1570 | the run/continue command. | 1658 | run/continue command. |
| 1571 | 1659 | ||
| 1572 | --- | 1660 | --- |
| 1573 | *** 'perldb' now recognizes '-E'. | 1661 | *** 'perldb' now recognizes '-E'. |
| @@ -1588,7 +1676,7 @@ contents. | |||
| 1588 | *** New user option 'diff-whitespace-style'. | 1676 | *** New user option 'diff-whitespace-style'. |
| 1589 | Sets the value of the buffer-local variable 'whitespace-style' in | 1677 | Sets the value of the buffer-local variable 'whitespace-style' in |
| 1590 | 'diff-mode' buffers. By default, this variable is '(face trailing)', | 1678 | 'diff-mode' buffers. By default, this variable is '(face trailing)', |
| 1591 | which preserves behavior from previous Emacs versions. | 1679 | which preserves behavior of previous Emacs versions. |
| 1592 | 1680 | ||
| 1593 | +++ | 1681 | +++ |
| 1594 | *** New user option 'diff-add-log-use-relative-names'. | 1682 | *** New user option 'diff-add-log-use-relative-names'. |
| @@ -1636,8 +1724,8 @@ it isn't already, and remove it if it is installed. | |||
| 1636 | 1724 | ||
| 1637 | +++ | 1725 | +++ |
| 1638 | *** New command 'package-vc-install'. | 1726 | *** New command 'package-vc-install'. |
| 1639 | Packages can now be installed directly from source by cloning from a | 1727 | Packages can now be installed directly from source by cloning from |
| 1640 | repository. | 1728 | their repository. |
| 1641 | 1729 | ||
| 1642 | +++ | 1730 | +++ |
| 1643 | *** New command 'package-vc-install-from-checkout'. | 1731 | *** New command 'package-vc-install-from-checkout'. |
| @@ -1673,7 +1761,7 @@ The option 'desktop-load-locked-desktop' can now be set to the value | |||
| 1673 | file if the Emacs process which locked it is no longer running on the | 1761 | file if the Emacs process which locked it is no longer running on the |
| 1674 | local machine. This allows avoiding questions about locked desktop | 1762 | local machine. This allows avoiding questions about locked desktop |
| 1675 | files when the Emacs session which locked it crashes, or was otherwise | 1763 | files when the Emacs session which locked it crashes, or was otherwise |
| 1676 | interrupted, and didn't exit gracefully. See the "(emacs) Saving | 1764 | interrupted and didn't exit gracefully. See the "(emacs) Saving |
| 1677 | Emacs Sessions" node in the Emacs manual for more details. | 1765 | Emacs Sessions" node in the Emacs manual for more details. |
| 1678 | 1766 | ||
| 1679 | ** Miscellaneous | 1767 | ** Miscellaneous |
| @@ -1732,9 +1820,10 @@ only jump if the location of the first error is known), and | |||
| 1732 | 1820 | ||
| 1733 | +++ | 1821 | +++ |
| 1734 | *** New user option 'compilation-max-output-line-length'. | 1822 | *** New user option 'compilation-max-output-line-length'. |
| 1735 | Lines longer than this will have the ends hidden, with a button to | 1823 | Lines longer than the value of this variable will have their ends |
| 1736 | reveal the hidden text. This speeds up operations like grepping on | 1824 | hidden, with a button to reveal the hidden text. This speeds up |
| 1737 | files that have few newlines. | 1825 | operations like grepping on files that have few newlines. The default |
| 1826 | value is 400; set to nil to disable hiding. | ||
| 1738 | 1827 | ||
| 1739 | ** Flymake | 1828 | ** Flymake |
| 1740 | 1829 | ||
| @@ -1748,12 +1837,12 @@ characters instead of just 'SPC' and 'TAB'. | |||
| 1748 | 1837 | ||
| 1749 | --- | 1838 | --- |
| 1750 | ** New mode, 'emacs-news-mode', for editing the NEWS file. | 1839 | ** New mode, 'emacs-news-mode', for editing the NEWS file. |
| 1751 | This mode adds some highlighting, fixes the 'M-q' command, and has | 1840 | This mode adds some highlighting, makes the 'M-q' command aware of the |
| 1752 | commands for doing maintenance of the Emacs NEWS files. In addition, | 1841 | format of NEWS entries, and has special commands for doing maintenance |
| 1753 | this mode turns on 'outline-minor-mode', and thus displays | 1842 | of the Emacs NEWS files. In addition, this mode turns on |
| 1754 | customizable icons (see 'icon-preference') in the margins. To | 1843 | 'outline-minor-mode', and thus displays customizable icons (see |
| 1755 | disable these icons, set 'outline-minor-mode-use-buttons' to a | 1844 | 'icon-preference') in the margins. To disable these icons, set |
| 1756 | nil value. | 1845 | 'outline-minor-mode-use-buttons' to a nil value. |
| 1757 | 1846 | ||
| 1758 | --- | 1847 | --- |
| 1759 | ** Kmacro | 1848 | ** Kmacro |
| @@ -1808,6 +1897,7 @@ to complete. The value 'visual' is like 'always', but only updates | |||
| 1808 | the completions if they are already visible. The default value t | 1897 | the completions if they are already visible. The default value t |
| 1809 | always hides the completion buffer after some completion is made. | 1898 | always hides the completion buffer after some completion is made. |
| 1810 | 1899 | ||
| 1900 | --- | ||
| 1811 | *** New commands to complete the minibuffer history. | 1901 | *** New commands to complete the minibuffer history. |
| 1812 | 'minibuffer-complete-history' ('C-x <up>') is like 'minibuffer-complete' | 1902 | 'minibuffer-complete-history' ('C-x <up>') is like 'minibuffer-complete' |
| 1813 | but completes on the history items instead of the default completion | 1903 | but completes on the history items instead of the default completion |
| @@ -1830,16 +1920,17 @@ This option limits the height of the "*Completions*" buffer. | |||
| 1830 | 1920 | ||
| 1831 | +++ | 1921 | +++ |
| 1832 | *** New user option 'completions-header-format'. | 1922 | *** New user option 'completions-header-format'. |
| 1833 | This is a string to control the heading line to show in the | 1923 | This is a string to control the header line to show in the |
| 1834 | "*Completions*" buffer before the list of completions. | 1924 | "*Completions*" buffer before the list of completions. |
| 1835 | If it contains "%s", that is replaced with the number of completions. | 1925 | If it contains "%s", that is replaced with the number of completions. |
| 1836 | If nil, the heading line is not shown. | 1926 | If nil, the header line is not shown. |
| 1837 | 1927 | ||
| 1838 | +++ | 1928 | +++ |
| 1839 | *** New user option 'completions-highlight-face'. | 1929 | *** New user option 'completions-highlight-face'. |
| 1840 | When this user option names a face, the current | 1930 | When this user option names a face, the current |
| 1841 | candidate in the "*Completions*" buffer is highlighted with that face. | 1931 | candidate in the "*Completions*" buffer is highlighted with that face. |
| 1842 | The nil value disables this highlighting. | 1932 | The nil value disables this highlighting. The default is to highlight |
| 1933 | using the 'completions-highlight' face. | ||
| 1843 | 1934 | ||
| 1844 | +++ | 1935 | +++ |
| 1845 | *** Choosing a completion with a prefix argument doesn't exit the minibuffer. | 1936 | *** Choosing a completion with a prefix argument doesn't exit the minibuffer. |
| @@ -1848,7 +1939,7 @@ This means that typing 'C-u RET' on a completion candidate in the | |||
| 1848 | but doesn't exit the minibuffer. | 1939 | but doesn't exit the minibuffer. |
| 1849 | 1940 | ||
| 1850 | +++ | 1941 | +++ |
| 1851 | *** You can now define abbrevs for the fundamental minibuffer modes. | 1942 | *** You can now define abbrevs for the minibuffer modes. |
| 1852 | 'minibuffer-mode-abbrev-table' and | 1943 | 'minibuffer-mode-abbrev-table' and |
| 1853 | 'minibuffer-inactive-mode-abbrev-table' are now defined. | 1944 | 'minibuffer-inactive-mode-abbrev-table' are now defined. |
| 1854 | 1945 | ||
| @@ -1944,7 +2035,7 @@ This is in addition to the old keybindings 'C-c C-n' and 'C-c C-p'. | |||
| 1944 | --- | 2035 | --- |
| 1945 | *** New command 'vc-pull-and-push'. | 2036 | *** New command 'vc-pull-and-push'. |
| 1946 | This commands first does a "pull" command, and if that is successful, | 2037 | This commands first does a "pull" command, and if that is successful, |
| 1947 | do a "push" command afterwards. | 2038 | does a "push" command afterwards. |
| 1948 | 2039 | ||
| 1949 | +++ | 2040 | +++ |
| 1950 | *** 'C-x v b' prefix key is used now for branch commands. | 2041 | *** 'C-x v b' prefix key is used now for branch commands. |
| @@ -1983,7 +2074,7 @@ in the Git repository in "~/foo/bar". This makes this command | |||
| 1983 | consistent with 'vc-responsible-backend'. | 2074 | consistent with 'vc-responsible-backend'. |
| 1984 | 2075 | ||
| 1985 | --- | 2076 | --- |
| 1986 | *** Log Edit now font locks long Git commit summary lines. | 2077 | *** Log Edit now fontifies long Git commit summary lines. |
| 1987 | Writing shorter summary lines avoids truncation in contexts in which | 2078 | Writing shorter summary lines avoids truncation in contexts in which |
| 1988 | Git commands display summary lines. See the two new user options | 2079 | Git commands display summary lines. See the two new user options |
| 1989 | 'vc-git-log-edit-summary-target-len' and 'vc-git-log-edit-summary-max-len'. | 2080 | 'vc-git-log-edit-summary-target-len' and 'vc-git-log-edit-summary-max-len'. |
| @@ -2192,13 +2283,13 @@ All other 'gnus-header-*' faces inherit from this face now. | |||
| 2192 | 2283 | ||
| 2193 | +++ | 2284 | +++ |
| 2194 | *** New user option 'gnus-treat-emojize-symbols'. | 2285 | *** New user option 'gnus-treat-emojize-symbols'. |
| 2195 | If non-nil, symbols that have an emoji representation will be | 2286 | If non-nil, symbols that have an Emoji representation will be |
| 2196 | displayed as emojis. The default is nil. | 2287 | displayed as emojis. The default is nil. |
| 2197 | 2288 | ||
| 2198 | +++ | 2289 | +++ |
| 2199 | *** New command 'gnus-article-emojize-symbols'. | 2290 | *** New command 'gnus-article-emojize-symbols'. |
| 2200 | This is bound to 'W D e' and will display symbols that have emoji | 2291 | This is bound to 'W D e' and will display symbols that have Emoji |
| 2201 | representation as emojis. | 2292 | representation as Emoji. |
| 2202 | 2293 | ||
| 2203 | +++ | 2294 | +++ |
| 2204 | *** New mu backend for gnus-search. | 2295 | *** New mu backend for gnus-search. |
| @@ -2310,6 +2401,11 @@ or projects outside of VCS repositories. | |||
| 2310 | As a consequence, the 'VC project backend' is formally renamed to | 2401 | As a consequence, the 'VC project backend' is formally renamed to |
| 2311 | 'VC-aware project backend'. | 2402 | 'VC-aware project backend'. |
| 2312 | 2403 | ||
| 2404 | +++ | ||
| 2405 | *** New user option 'project-vc-include-untracked'. | ||
| 2406 | If non-nil, files untracked by a VCS are considered to be part of | ||
| 2407 | the project by a VC project based on that VCS. | ||
| 2408 | |||
| 2313 | ** Xref | 2409 | ** Xref |
| 2314 | 2410 | ||
| 2315 | +++ | 2411 | +++ |
| @@ -2494,7 +2590,7 @@ PDF file in the thumbnail buffer to visit the corresponding PDF. | |||
| 2494 | --- | 2590 | --- |
| 2495 | *** Support GraphicsMagick command line tools. | 2591 | *** Support GraphicsMagick command line tools. |
| 2496 | Support for the GraphicsMagick command line tool ("gm") has been | 2592 | Support for the GraphicsMagick command line tool ("gm") has been |
| 2497 | added, and is used instead of ImageMagick when it is available. | 2593 | added, and is used when it is available instead of ImageMagick. |
| 2498 | 2594 | ||
| 2499 | --- | 2595 | --- |
| 2500 | *** Support Thumbnail Managing Standard v0.9.0 (Dec 2020). | 2596 | *** Support Thumbnail Managing Standard v0.9.0 (Dec 2020). |
| @@ -2582,42 +2678,6 @@ some commands and user options are no longer needed and are now obsolete: | |||
| 2582 | 'image-dired-display-window-width-correction', | 2678 | 'image-dired-display-window-width-correction', |
| 2583 | 'image-dired-temp-image-file'. | 2679 | 'image-dired-temp-image-file'. |
| 2584 | 2680 | ||
| 2585 | ** Dired | ||
| 2586 | |||
| 2587 | --- | ||
| 2588 | *** New user option 'dired-omit-lines'. | ||
| 2589 | This is used by 'dired-omit-mode', and now allows you to hide based on | ||
| 2590 | other things than just the file names. | ||
| 2591 | |||
| 2592 | +++ | ||
| 2593 | *** New user option 'dired-mouse-drag-files'. | ||
| 2594 | If non-nil, dragging file names with the mouse in a Dired buffer will | ||
| 2595 | initiate a drag-and-drop session allowing them to be opened in other | ||
| 2596 | programs. | ||
| 2597 | |||
| 2598 | +++ | ||
| 2599 | *** New user option 'dired-free-space'. | ||
| 2600 | Dired will now, by default, include the free space in the first line | ||
| 2601 | instead of having it on a separate line. To get the previous behavior | ||
| 2602 | back, say: | ||
| 2603 | |||
| 2604 | (setq dired-free-space 'separate) | ||
| 2605 | |||
| 2606 | --- | ||
| 2607 | *** New user option 'dired-make-directory-clickable'. | ||
| 2608 | If non-nil (which is the default), hitting 'RET' or 'mouse-1' on | ||
| 2609 | the directory components at the directory displayed at the start of | ||
| 2610 | the buffer will take you to that directory. | ||
| 2611 | |||
| 2612 | --- | ||
| 2613 | *** Search and replace in Dired/Wdired supports more regexps. | ||
| 2614 | For example, the regexp ".*" will match only characters that are part | ||
| 2615 | of the file name. Also "^.*$" can be used to match at the beginning | ||
| 2616 | of the file name and at the end of the file name. This is used only | ||
| 2617 | when searching on file names. In Wdired this can be used when the new | ||
| 2618 | user option 'wdired-search-replace-filenames' is non-nil (which is the | ||
| 2619 | default). | ||
| 2620 | |||
| 2621 | ** Bookmarks | 2681 | ** Bookmarks |
| 2622 | 2682 | ||
| 2623 | --- | 2683 | --- |
| @@ -2830,7 +2890,7 @@ if only one line of output). Previously, this only converted numbers | |||
| 2830 | when there was a single line of output. | 2890 | when there was a single line of output. |
| 2831 | 2891 | ||
| 2832 | --- | 2892 | --- |
| 2833 | *** Built-in Eshell commands now follow POSIX/GNU argument syntax conventions. | 2893 | *** Built-in Eshell commands now follow Posix/GNU argument syntax conventions. |
| 2834 | Built-in commands in Eshell now accept command-line options with | 2894 | Built-in commands in Eshell now accept command-line options with |
| 2835 | values passed as a single token, such as '-oVALUE' or | 2895 | values passed as a single token, such as '-oVALUE' or |
| 2836 | '--option=VALUE'. New commands can take advantage of this with the | 2896 | '--option=VALUE'. New commands can take advantage of this with the |
| @@ -2944,11 +3004,6 @@ filtered out. | |||
| 2944 | The list of handlers (already covering OSC 7 and 8) has been extended | 3004 | The list of handlers (already covering OSC 7 and 8) has been extended |
| 2945 | with a handler for OSC 2, the command to set a window title. | 3005 | with a handler for OSC 2, the command to set a window title. |
| 2946 | 3006 | ||
| 2947 | +++ | ||
| 2948 | *** New user option 'project-vc-include-untracked'. | ||
| 2949 | If non-nil, files untracked by a VCS are considered to be part of | ||
| 2950 | the project by a VC project based on that VCS. | ||
| 2951 | |||
| 2952 | --- | 3007 | --- |
| 2953 | *** 'recentf-mode' now uses abbreviated file names by default. | 3008 | *** 'recentf-mode' now uses abbreviated file names by default. |
| 2954 | This means that e.g. "/home/foo/bar" is now displayed as "~/bar". | 3009 | This means that e.g. "/home/foo/bar" is now displayed as "~/bar". |
| @@ -3012,7 +3067,7 @@ Protocol (LSP). | |||
| 3012 | 3067 | ||
| 3013 | +++ | 3068 | +++ |
| 3014 | *** use-package: Declarative package configuration. | 3069 | *** use-package: Declarative package configuration. |
| 3015 | use-package is shipped with Emacs. It provides the 'use-package' | 3070 | use-package is now shipped with Emacs. It provides the 'use-package' |
| 3016 | macro, which allows you to isolate package configuration in your init | 3071 | macro, which allows you to isolate package configuration in your init |
| 3017 | file in a way that is declarative, tidy, and performance-oriented. | 3072 | file in a way that is declarative, tidy, and performance-oriented. |
| 3018 | See the new Info manual "(use-package) Top" for more. | 3073 | See the new Info manual "(use-package) Top" for more. |
| @@ -3037,8 +3092,8 @@ manually if needed, using the new user options 'wallpaper-command' and | |||
| 3037 | 3092 | ||
| 3038 | +++ | 3093 | +++ |
| 3039 | ** New package 'oclosure'. | 3094 | ** New package 'oclosure'. |
| 3040 | Allows the creation of "functions with slots" or "function objects" | 3095 | This allows the creation of "functions with slots" or "function |
| 3041 | via the macros 'oclosure-define' and 'oclosure-lambda'. | 3096 | objects" via the macros 'oclosure-define' and 'oclosure-lambda'. |
| 3042 | 3097 | ||
| 3043 | +++ | 3098 | +++ |
| 3044 | *** New generic function 'oclosure-interactive-form'. | 3099 | *** New generic function 'oclosure-interactive-form'. |
| @@ -3061,10 +3116,12 @@ Emacs buffers, like indentation and the like. The new ert function | |||
| 3061 | This is a lightweight variant of 'js-mode' that is used by default | 3116 | This is a lightweight variant of 'js-mode' that is used by default |
| 3062 | when visiting JSON files. | 3117 | when visiting JSON files. |
| 3063 | 3118 | ||
| 3119 | +++ | ||
| 3064 | ** New major mode 'csharp-mode'. | 3120 | ** New major mode 'csharp-mode'. |
| 3065 | A major mode based on CC Mode for editing programs in the C# language. | 3121 | A major mode based on CC Mode for editing programs in the C# language. |
| 3066 | This mode is auto-enabled for files with the ".cs" extension. | 3122 | This mode is auto-enabled for files with the ".cs" extension. |
| 3067 | 3123 | ||
| 3124 | +++ | ||
| 3068 | ** New major modes based on the tree-sitter library. | 3125 | ** New major modes based on the tree-sitter library. |
| 3069 | These new major modes are available if Emacs was built with the | 3126 | These new major modes are available if Emacs was built with the |
| 3070 | tree-sitter library. They provide support for font-locking, | 3127 | tree-sitter library. They provide support for font-locking, |
| @@ -3095,77 +3152,94 @@ If a language grammar library required by a mode is not found in any | |||
| 3095 | of the above places, the mode will signal an error when you try to | 3152 | of the above places, the mode will signal an error when you try to |
| 3096 | turn it on. | 3153 | turn it on. |
| 3097 | 3154 | ||
| 3155 | +++ | ||
| 3098 | *** New major mode 'typescript-ts-mode'. | 3156 | *** New major mode 'typescript-ts-mode'. |
| 3099 | A major mode based on the tree-sitter library for editing programs | 3157 | A major mode based on the tree-sitter library for editing programs |
| 3100 | in the TypeScript language. This mode is auto-enabled for files with | 3158 | in the TypeScript language. This mode is auto-enabled for files with |
| 3101 | the ".ts" extension. | 3159 | the ".ts" extension. |
| 3102 | 3160 | ||
| 3161 | +++ | ||
| 3103 | *** New major mode 'tsx-ts-mode'. | 3162 | *** New major mode 'tsx-ts-mode'. |
| 3104 | A major mode based on the tree-sitter library for editing programs | 3163 | A major mode based on the tree-sitter library for editing programs |
| 3105 | in the TypeScript language, with support for TSX. This mode is | 3164 | in the TypeScript language, with support for TSX. This mode is |
| 3106 | auto-enabled for files with the ".tsx" extension. | 3165 | auto-enabled for files with the ".tsx" extension. |
| 3107 | 3166 | ||
| 3167 | +++ | ||
| 3108 | *** New major mode 'c-ts-mode'. | 3168 | *** New major mode 'c-ts-mode'. |
| 3109 | An optional major mode based on the tree-sitter library for editing | 3169 | An optional major mode based on the tree-sitter library for editing |
| 3110 | programs in the C language. | 3170 | programs in the C language. |
| 3111 | 3171 | ||
| 3172 | +++ | ||
| 3112 | *** New major mode 'c++-ts-mode'. | 3173 | *** New major mode 'c++-ts-mode'. |
| 3113 | An optional major mode based on the tree-sitter library for editing | 3174 | An optional major mode based on the tree-sitter library for editing |
| 3114 | programs in the C++ language. | 3175 | programs in the C++ language. |
| 3115 | 3176 | ||
| 3177 | +++ | ||
| 3116 | *** New major mode 'java-ts-mode'. | 3178 | *** New major mode 'java-ts-mode'. |
| 3117 | An optional major mode based on the tree-sitter library for editing | 3179 | An optional major mode based on the tree-sitter library for editing |
| 3118 | programs in the Java language. | 3180 | programs in the Java language. |
| 3119 | 3181 | ||
| 3182 | +++ | ||
| 3120 | *** New major mode 'python-ts-mode'. | 3183 | *** New major mode 'python-ts-mode'. |
| 3121 | An optional major mode based on the tree-sitter library for editing | 3184 | An optional major mode based on the tree-sitter library for editing |
| 3122 | programs in the Python language. | 3185 | programs in the Python language. |
| 3123 | 3186 | ||
| 3187 | +++ | ||
| 3124 | *** New major mode 'css-ts-mode'. | 3188 | *** New major mode 'css-ts-mode'. |
| 3125 | An optional major mode based on the tree-sitter library for editing | 3189 | An optional major mode based on the tree-sitter library for editing |
| 3126 | CSS (Cascading Style Sheets). | 3190 | CSS (Cascading Style Sheets). |
| 3127 | 3191 | ||
| 3192 | +++ | ||
| 3128 | *** New major mode 'json-ts-mode'. | 3193 | *** New major mode 'json-ts-mode'. |
| 3129 | An optional major mode based on the tree-sitter library for editing | 3194 | An optional major mode based on the tree-sitter library for editing |
| 3130 | programs in the JSON language. | 3195 | programs in the JSON language. |
| 3131 | 3196 | ||
| 3197 | +++ | ||
| 3132 | *** New major mode 'csharp-ts-mode'. | 3198 | *** New major mode 'csharp-ts-mode'. |
| 3133 | An optional major mode based on the tree-sitter library for editing | 3199 | An optional major mode based on the tree-sitter library for editing |
| 3134 | programs in the C# language. | 3200 | programs in the C# language. |
| 3135 | 3201 | ||
| 3202 | +++ | ||
| 3136 | *** New major mode 'bash-ts-mode'. | 3203 | *** New major mode 'bash-ts-mode'. |
| 3137 | Am optional major mode based on the tree-sitter library for editing | 3204 | Am optional major mode based on the tree-sitter library for editing |
| 3138 | Bash shell scripts. | 3205 | Bash shell scripts. |
| 3139 | 3206 | ||
| 3207 | +++ | ||
| 3140 | *** New major mode 'dockerfile-ts-mode'. | 3208 | *** New major mode 'dockerfile-ts-mode'. |
| 3141 | A major mode based on the tree-sitter library for editing | 3209 | A major mode based on the tree-sitter library for editing |
| 3142 | Dockerfiles. This mode is auto-enabled for files which are named | 3210 | Dockerfiles. This mode is auto-enabled for files which are named |
| 3143 | "Dockerfile", have the "Dockerfile." prefix, or have the ".dockerfile" | 3211 | "Dockerfile", have the "Dockerfile." prefix, or have the ".dockerfile" |
| 3144 | extension. | 3212 | extension. |
| 3145 | 3213 | ||
| 3214 | +++ | ||
| 3146 | *** New major mode 'cmake-ts-mode'. | 3215 | *** New major mode 'cmake-ts-mode'. |
| 3147 | A major mode based on the tree-sitter library for editing CMake files. | 3216 | A major mode based on the tree-sitter library for editing CMake files. |
| 3148 | It is auto-enabled for files whose name is "CMakeLists.txt" or whose | 3217 | It is auto-enabled for files whose name is "CMakeLists.txt" or whose |
| 3149 | extension is ".cmake". | 3218 | extension is ".cmake". |
| 3150 | 3219 | ||
| 3220 | +++ | ||
| 3151 | *** New major mode 'toml-ts-mode'. | 3221 | *** New major mode 'toml-ts-mode'. |
| 3152 | A major mode based on the tree-sitter library for editing files | 3222 | A major mode based on the tree-sitter library for editing files |
| 3153 | written in TOML, a format for writing configuration files. It is | 3223 | written in TOML, a format for writing configuration files. It is |
| 3154 | auto-enabled for files with the ".toml" extension. | 3224 | auto-enabled for files with the ".toml" extension. |
| 3155 | 3225 | ||
| 3226 | +++ | ||
| 3156 | *** New major mode 'go-ts-mode'. | 3227 | *** New major mode 'go-ts-mode'. |
| 3157 | A major mode based on the tree-sitter library for editing programs in | 3228 | A major mode based on the tree-sitter library for editing programs in |
| 3158 | the Go language. It is auto-enabled for files with the ".go" extension. | 3229 | the Go language. It is auto-enabled for files with the ".go" extension. |
| 3159 | 3230 | ||
| 3231 | +++ | ||
| 3160 | *** New major mode 'go-mod-ts-mode'. | 3232 | *** New major mode 'go-mod-ts-mode'. |
| 3161 | A major mode based on the tree-sitter library for editing "go.mod" | 3233 | A major mode based on the tree-sitter library for editing "go.mod" |
| 3162 | files. It is auto-enabled for files which are named "go.mod". | 3234 | files. It is auto-enabled for files which are named "go.mod". |
| 3163 | 3235 | ||
| 3236 | +++ | ||
| 3164 | *** New major mode 'yaml-ts-mode'. | 3237 | *** New major mode 'yaml-ts-mode'. |
| 3165 | A major mode based on the tree-sitter library for editing files | 3238 | A major mode based on the tree-sitter library for editing files |
| 3166 | written in YAML. It is auto-enabled for files with the ".yaml" or | 3239 | written in YAML. It is auto-enabled for files with the ".yaml" or |
| 3167 | ".yml" extensions. | 3240 | ".yml" extensions. |
| 3168 | 3241 | ||
| 3242 | +++ | ||
| 3169 | *** New major mode 'rust-ts-mode'. | 3243 | *** New major mode 'rust-ts-mode'. |
| 3170 | A major mode based on the tree-sitter library for editing programs in | 3244 | A major mode based on the tree-sitter library for editing programs in |
| 3171 | the Rust language. It is auto-enabled for files with the ".rs" extension. | 3245 | the Rust language. It is auto-enabled for files with the ".rs" extension. |
| @@ -3187,15 +3261,17 @@ or user level, with the exception of better performance and the order | |||
| 3187 | of overlays returned by functions that don't promise any particular | 3261 | of overlays returned by functions that don't promise any particular |
| 3188 | order. | 3262 | order. |
| 3189 | 3263 | ||
| 3264 | --- | ||
| 3190 | *** The function 'overlay-recenter' is now a no-op. | 3265 | *** The function 'overlay-recenter' is now a no-op. |
| 3191 | This function does nothing, and in particular has no effect on the | 3266 | This function does nothing, and in particular has no effect on the |
| 3192 | value returned by 'overlay-lists'. The purpose of 'overlay-recenter' | 3267 | value returned by 'overlay-lists'. The purpose of 'overlay-recenter' |
| 3193 | was to allow more efficient lookup of overlays around certain buffer | 3268 | was to allow more efficient lookup of overlays around a certain buffer |
| 3194 | position; however with the new implementation the lookup of overlays | 3269 | position; however with the new implementation the lookup of overlays |
| 3195 | is efficient regardless of their position, and there's no longer any | 3270 | is efficient regardless of their position, and there's no longer any |
| 3196 | need to "optimize" the lookup, nor any notion of "center" of the | 3271 | need to "optimize" the lookup, nor any notion of a "center" of the |
| 3197 | overlays. | 3272 | overlays. |
| 3198 | 3273 | ||
| 3274 | --- | ||
| 3199 | *** The function 'overlay-lists' returns one unified list of overlays. | 3275 | *** The function 'overlay-lists' returns one unified list of overlays. |
| 3200 | This function used to return a cons of two lists, one with overlays | 3276 | This function used to return a cons of two lists, one with overlays |
| 3201 | before the "center" position, the other after that "center". It now | 3277 | before the "center" position, the other after that "center". It now |
| @@ -3219,7 +3295,7 @@ auto-scaling applied. (This only makes a difference on HiDPI | |||
| 3219 | displays.) | 3295 | displays.) |
| 3220 | 3296 | ||
| 3221 | +++ | 3297 | +++ |
| 3222 | ** Changes to "raw" in-memory xbm images are specified. | 3298 | ** Changes in how "raw" in-memory xbm images are specified. |
| 3223 | Some years back Emacs gained the ability to scale images, and you | 3299 | Some years back Emacs gained the ability to scale images, and you |
| 3224 | could then specify ':width' and ':height' when using 'create-image' on all | 3300 | could then specify ':width' and ':height' when using 'create-image' on all |
| 3225 | image types -- except xbm images, because this format already used the | 3301 | image types -- except xbm images, because this format already used the |
| @@ -3244,7 +3320,7 @@ signal an error in any file.) | |||
| 3244 | In addition, files are scanned in a slightly different way. | 3320 | In addition, files are scanned in a slightly different way. |
| 3245 | Previously, ';;;###' specs inside a top-level form (i.e., something | 3321 | Previously, ';;;###' specs inside a top-level form (i.e., something |
| 3246 | like '(when ... ;;;### ...)' would be ignored. They are now parsed as | 3322 | like '(when ... ;;;### ...)' would be ignored. They are now parsed as |
| 3247 | normal. | 3323 | usual. |
| 3248 | 3324 | ||
| 3249 | --- | 3325 | --- |
| 3250 | ** Themes have special autoload cookies. | 3326 | ** Themes have special autoload cookies. |
| @@ -3284,7 +3360,7 @@ they will still be escaped, so the '.foo' symbol is still printed as | |||
| 3284 | "\.foo" and the '?bar' symbol is still printed as "\?bar". | 3360 | "\.foo" and the '?bar' symbol is still printed as "\?bar". |
| 3285 | 3361 | ||
| 3286 | +++ | 3362 | +++ |
| 3287 | ** Remapping 'mode-line' no longer works as expected. | 3363 | ** Remapping 'mode-line' face no longer works as expected. |
| 3288 | 'mode-line' is now the parent face of the new 'mode-line-active' face, | 3364 | 'mode-line' is now the parent face of the new 'mode-line-active' face, |
| 3289 | and remapping parent of basic faces does not work reliably. | 3365 | and remapping parent of basic faces does not work reliably. |
| 3290 | Instead of remapping 'mode-line', you have to remap 'mode-line-active'. | 3366 | Instead of remapping 'mode-line', you have to remap 'mode-line-active'. |
| @@ -3307,10 +3383,10 @@ needed. | |||
| 3307 | *** Emacs now supports 'medium' fonts. | 3383 | *** Emacs now supports 'medium' fonts. |
| 3308 | Emacs previously didn't distinguish between the 'regular'/'normal' | 3384 | Emacs previously didn't distinguish between the 'regular'/'normal' |
| 3309 | weight and the 'medium' weight, but it now also supports the (heavier) | 3385 | weight and the 'medium' weight, but it now also supports the (heavier) |
| 3310 | 'medium' weight. However, this means that if you previously specified | 3386 | 'medium' weight. However, this means that if you specify a weight of |
| 3311 | a weight of 'normal' and the font doesn't have this weight, Emacs | 3387 | 'normal' and the font doesn't have this weight, Emacs won't find the |
| 3312 | won't find the font spec. In these cases, replacing ":weight 'normal" | 3388 | font spec. In these cases, replacing ":weight 'normal" with ":weight |
| 3313 | with ":weight 'medium" should fix the issue. | 3389 | 'medium" should fix the issue. |
| 3314 | 3390 | ||
| 3315 | --- | 3391 | --- |
| 3316 | ** Keymap descriptions have changed. | 3392 | ** Keymap descriptions have changed. |
| @@ -3505,9 +3581,8 @@ but switching to 'ash' is generally much preferable. | |||
| 3505 | 3581 | ||
| 3506 | +++ | 3582 | +++ |
| 3507 | ** New generic function 'function-documentation'. | 3583 | ** New generic function 'function-documentation'. |
| 3508 | Can dynamically generate a raw docstring depending on the type of | 3584 | It can dynamically generate a raw docstring depending on the type of a |
| 3509 | a function. | 3585 | function. Used mainly for docstrings of OClosures. |
| 3510 | Used mainly for docstrings of OClosures. | ||
| 3511 | 3586 | ||
| 3512 | +++ | 3587 | +++ |
| 3513 | ** Base64 encoding no longer tolerates latin-1 input. | 3588 | ** Base64 encoding no longer tolerates latin-1 input. |
| @@ -3515,7 +3590,7 @@ The functions 'base64-encode-string', 'base64url-encode-string', | |||
| 3515 | 'base64-encode-region' and 'base64url-encode-region' no longer accept | 3590 | 'base64-encode-region' and 'base64url-encode-region' no longer accept |
| 3516 | characters in the range U+0080..U+00FF as substitutes for single bytes | 3591 | characters in the range U+0080..U+00FF as substitutes for single bytes |
| 3517 | in the range 128..255, but signal an error for all multibyte characters. | 3592 | in the range 128..255, but signal an error for all multibyte characters. |
| 3518 | The input must be encoded text. | 3593 | The input must be unibyte encoded text. |
| 3519 | 3594 | ||
| 3520 | +++ | 3595 | +++ |
| 3521 | ** The 'clone-indirect-buffer-hook' is now run by 'make-indirect-buffer'. | 3596 | ** The 'clone-indirect-buffer-hook' is now run by 'make-indirect-buffer'. |
| @@ -3667,7 +3742,7 @@ These function now take an optional comparison predicate argument. | |||
| 3667 | 3742 | ||
| 3668 | +++ | 3743 | +++ |
| 3669 | ** 'completing-read' now allows a function as its REQUIRE-MATCH argument. | 3744 | ** 'completing-read' now allows a function as its REQUIRE-MATCH argument. |
| 3670 | This function is called to see whether what the user has typed in is a | 3745 | This function is called to see whether what the user has typed is a |
| 3671 | match. This is also available from functions that call | 3746 | match. This is also available from functions that call |
| 3672 | 'completing-read', like 'read-file-name'. | 3747 | 'completing-read', like 'read-file-name'. |
| 3673 | 3748 | ||
| @@ -3679,10 +3754,10 @@ Previously, it reported data only based on the frame. | |||
| 3679 | ** 'file-expand-wildcards' can now also take a regexp as PATTERN argument. | 3754 | ** 'file-expand-wildcards' can now also take a regexp as PATTERN argument. |
| 3680 | 3755 | ||
| 3681 | --- | 3756 | --- |
| 3682 | ** vc-mtn (the backend for Monotone) has been made obsolete. | 3757 | ** vc-mtn (the VC backend for Monotone) has been made obsolete. |
| 3683 | 3758 | ||
| 3684 | +++ | 3759 | +++ |
| 3685 | ** 'gui-set-selection' can now specify different values for different data types. | 3760 | ** 'gui-set-selection' can specify different values for different data types. |
| 3686 | If DATA is a string, then its text properties are searched for values | 3761 | If DATA is a string, then its text properties are searched for values |
| 3687 | for each specific data type while the selection is being converted. | 3762 | for each specific data type while the selection is being converted. |
| 3688 | 3763 | ||
| @@ -3702,6 +3777,7 @@ things to be saved. | |||
| 3702 | ** New function 'string-equal-ignore-case'. | 3777 | ** New function 'string-equal-ignore-case'. |
| 3703 | This compares strings ignoring case differences. | 3778 | This compares strings ignoring case differences. |
| 3704 | 3779 | ||
| 3780 | +++ | ||
| 3705 | ** 'symbol-file' can now report natively-compiled ".eln" files. | 3781 | ** 'symbol-file' can now report natively-compiled ".eln" files. |
| 3706 | If Emacs was built with native-compilation enabled, Lisp programs can | 3782 | If Emacs was built with native-compilation enabled, Lisp programs can |
| 3707 | now call 'symbol-file' with the new optional 3rd argument non-nil to | 3783 | now call 'symbol-file' with the new optional 3rd argument non-nil to |
| @@ -3838,7 +3914,7 @@ available only when Emacs was built with glibc as the C library. | |||
| 3838 | 3914 | ||
| 3839 | --- | 3915 | --- |
| 3840 | ** 'x-show-tip' no longer hard-codes a timeout default. | 3916 | ** 'x-show-tip' no longer hard-codes a timeout default. |
| 3841 | The new 'x-show-tooltip-timeout' variable allows the user to alter | 3917 | The new variable 'x-show-tooltip-timeout' allows the user to alter |
| 3842 | this for packages that don't use 'tooltip-show', but instead call the | 3918 | this for packages that don't use 'tooltip-show', but instead call the |
| 3843 | lower level function directly. | 3919 | lower level function directly. |
| 3844 | 3920 | ||
| @@ -3850,8 +3926,8 @@ example for benchmarking purposes. | |||
| 3850 | --- | 3926 | --- |
| 3851 | ** New function 'string-edit'. | 3927 | ** New function 'string-edit'. |
| 3852 | This is meant to be used when the user has to edit a (potentially) | 3928 | This is meant to be used when the user has to edit a (potentially) |
| 3853 | long string. It pops you to a new buffer where you can edit the | 3929 | long string. It pops up a new buffer where you can edit the string, |
| 3854 | string, and a callback is called when the user types 'C-c C-c'. | 3930 | and a callback is called when the user types 'C-c C-c'. |
| 3855 | 3931 | ||
| 3856 | +++ | 3932 | +++ |
| 3857 | ** New function 'read-string-from-buffer'. | 3933 | ** New function 'read-string-from-buffer'. |
| @@ -3870,8 +3946,8 @@ putting the modes on the first line of a file). | |||
| 3870 | 3946 | ||
| 3871 | +++ | 3947 | +++ |
| 3872 | ** New function 'flush-standard-output'. | 3948 | ** New function 'flush-standard-output'. |
| 3873 | This enables you to display incomplete lines from batch-based Emacs | 3949 | This enables display of lines that don't end in a newline from |
| 3874 | scripts. | 3950 | batch-based Emacs scripts. |
| 3875 | 3951 | ||
| 3876 | +++ | 3952 | +++ |
| 3877 | ** New convenience function 'buttonize-region'. | 3953 | ** New convenience function 'buttonize-region'. |
| @@ -3891,7 +3967,7 @@ from which the last input event originated, and 'device-class' can be | |||
| 3891 | used to determine the type of an input device. | 3967 | used to determine the type of an input device. |
| 3892 | 3968 | ||
| 3893 | +++ | 3969 | +++ |
| 3894 | ** 'track-mouse' can be a new value 'drag-source'. | 3970 | ** 'track-mouse' can have a new value 'drag-source'. |
| 3895 | This means the same as 'dropping', but modifies the mouse position | 3971 | This means the same as 'dropping', but modifies the mouse position |
| 3896 | list in reported motion events if there is no frame underneath the | 3972 | list in reported motion events if there is no frame underneath the |
| 3897 | mouse pointer. | 3973 | mouse pointer. |
| @@ -3940,7 +4016,10 @@ frequently than once in a second. | |||
| 3940 | --- | 4016 | --- |
| 3941 | ** New function 'bidi-string-strip-control-characters'. | 4017 | ** New function 'bidi-string-strip-control-characters'. |
| 3942 | This utility function is meant for displaying strings when it's | 4018 | This utility function is meant for displaying strings when it's |
| 3943 | essential that there's no bidirectional context. | 4019 | essential that there's no bidirectional context. It removes all the |
| 4020 | bidirectional formatting control characters (such as RLM, LRO, PDF, | ||
| 4021 | etc.) from its argument string. The characters it removes are listed | ||
| 4022 | in the value of 'bidi-control-characters'. | ||
| 3944 | 4023 | ||
| 3945 | --- | 4024 | --- |
| 3946 | ** The Gnus range functions have been moved to a new library, range.el. | 4025 | ** The Gnus range functions have been moved to a new library, range.el. |
| @@ -4037,8 +4116,8 @@ to attackers trying to confuse the users will use the textsec library | |||
| 4037 | to mark suspicious text. For instance shr/eww will mark suspicious | 4116 | to mark suspicious text. For instance shr/eww will mark suspicious |
| 4038 | URLs and links, Gnus will mark suspicious From addresses, and | 4117 | URLs and links, Gnus will mark suspicious From addresses, and |
| 4039 | Message mode will query the user if the user is sending mail to a | 4118 | Message mode will query the user if the user is sending mail to a |
| 4040 | suspicious address. If this variable is nil, these checks aren't | 4119 | suspicious address. If this variable is nil, these checks are |
| 4041 | performed. | 4120 | disabled. |
| 4042 | 4121 | ||
| 4043 | +++ | 4122 | +++ |
| 4044 | *** New function 'textsec-suspicious-p'. | 4123 | *** New function 'textsec-suspicious-p'. |
| @@ -4357,7 +4436,8 @@ aren't integer multiples of the default font. | |||
| 4357 | ** New function 'string-glyph-split'. | 4436 | ** New function 'string-glyph-split'. |
| 4358 | This function splits a string into a list of strings representing | 4437 | This function splits a string into a list of strings representing |
| 4359 | separate glyphs. This takes into account combining characters and | 4438 | separate glyphs. This takes into account combining characters and |
| 4360 | grapheme clusters. | 4439 | grapheme clusters, by treating each sequence of characters composed on |
| 4440 | display as a single unit. | ||
| 4361 | 4441 | ||
| 4362 | --- | 4442 | --- |
| 4363 | ** 'lookup-key' is more permissive when searching for extended menu items. | 4443 | ** 'lookup-key' is more permissive when searching for extended menu items. |
| @@ -4448,9 +4528,10 @@ temporary transition aid for Emacs 27, has served its purpose. | |||
| 4448 | '(encode-time (list SECOND MINUTE HOUR DAY MONTH YEAR nil -1 nil))'. | 4528 | '(encode-time (list SECOND MINUTE HOUR DAY MONTH YEAR nil -1 nil))'. |
| 4449 | 4529 | ||
| 4450 | +++ | 4530 | +++ |
| 4451 | ** 'date-to-time' now assumes earliest values if its argument lacks | 4531 | ** 'date-to-time' now accepts arguments that lacks month, day, or time. |
| 4452 | month, day, or time. For example, (date-to-time "2021-12-04") now | 4532 | The function now assumes the earliest possible values if its argument |
| 4453 | assumes a time of 00:00 instead of signaling an error. | 4533 | lacks month, day, or time. For example, (date-to-time "2021-12-04") |
| 4534 | now assumes a time of 00:00 instead of signaling an error. | ||
| 4454 | 4535 | ||
| 4455 | +++ | 4536 | +++ |
| 4456 | ** 'format-seconds' now allows suppressing zero-value trailing elements. | 4537 | ** 'format-seconds' now allows suppressing zero-value trailing elements. |
diff --git a/lisp/emacs-lisp/subr-x.el b/lisp/emacs-lisp/subr-x.el index 4896f4c2937..415f8db52ca 100644 --- a/lisp/emacs-lisp/subr-x.el +++ b/lisp/emacs-lisp/subr-x.el | |||
| @@ -333,7 +333,10 @@ as the new values of the bound variables in the recursive invocation." | |||
| 333 | ;;;###autoload | 333 | ;;;###autoload |
| 334 | (defun string-glyph-split (string) | 334 | (defun string-glyph-split (string) |
| 335 | "Split STRING into a list of strings representing separate glyphs. | 335 | "Split STRING into a list of strings representing separate glyphs. |
| 336 | This takes into account combining characters and grapheme clusters." | 336 | This takes into account combining characters and grapheme clusters: |
| 337 | if compositions are enbaled, each sequence of characters composed | ||
| 338 | on display into a single grapheme cluster is treated as a single | ||
| 339 | indivisible unit." | ||
| 337 | (let ((result nil) | 340 | (let ((result nil) |
| 338 | (start 0) | 341 | (start 0) |
| 339 | comp) | 342 | comp) |