diff options
| author | Eli Zaretskii | 2023-07-23 03:16:35 -0400 |
|---|---|---|
| committer | Eli Zaretskii | 2023-07-23 03:16:35 -0400 |
| commit | 76a142e265df742b2fdd3d220607a46fcbc30e1a (patch) | |
| tree | bc7027f17fce116b78d2addee970626d93d28de8 | |
| parent | ee20b50dfeded512ecdc784421f8bbe97161d729 (diff) | |
| download | emacs-76a142e265df742b2fdd3d220607a46fcbc30e1a.tar.gz emacs-76a142e265df742b2fdd3d220607a46fcbc30e1a.zip | |
; * etc/NEWS: Prepare for Emacs 29.1 release.
Do not merge to master.
| -rw-r--r-- | etc/NEWS | 714 |
1 files changed, 0 insertions, 714 deletions
| @@ -15,16 +15,9 @@ in older Emacs versions. | |||
| 15 | You can narrow news to a specific version by calling 'view-emacs-news' | 15 | You can narrow news to a specific version by calling 'view-emacs-news' |
| 16 | with a prefix argument or by typing 'C-u C-h C-n'. | 16 | with a prefix argument or by typing 'C-u C-h C-n'. |
| 17 | 17 | ||
| 18 | Temporary note: | ||
| 19 | +++ indicates that all relevant manuals in doc/ have been updated. | ||
| 20 | --- means no change in the manuals is needed. | ||
| 21 | When you add a new item, use the appropriate mark if you are sure it | ||
| 22 | applies, and please also update docstrings as needed. | ||
| 23 | |||
| 24 | 18 | ||
| 25 | * Installation Changes in Emacs 29.1 | 19 | * Installation Changes in Emacs 29.1 |
| 26 | 20 | ||
| 27 | --- | ||
| 28 | ** Ahead-of-time native compilation can now be requested via configure. | 21 | ** Ahead-of-time native compilation can now be requested via configure. |
| 29 | Use '--with-native-compilation=aot' to request that all the Lisp files | 22 | Use '--with-native-compilation=aot' to request that all the Lisp files |
| 30 | in the Emacs tree should be natively compiled ahead of time. (This is | 23 | in the Emacs tree should be natively compiled ahead of time. (This is |
| @@ -32,7 +25,6 @@ slow on most machines.) | |||
| 32 | 25 | ||
| 33 | This feature existed in Emacs 28.1, but was less easy to request. | 26 | This feature existed in Emacs 28.1, but was less easy to request. |
| 34 | 27 | ||
| 35 | +++ | ||
| 36 | ** Emacs can be built with the tree-sitter parsing library. | 28 | ** Emacs can be built with the tree-sitter parsing library. |
| 37 | This library, together with separate grammar libraries for each | 29 | This library, together with separate grammar libraries for each |
| 38 | language, provides incremental parsing capabilities for several | 30 | language, provides incremental parsing capabilities for several |
| @@ -85,26 +77,22 @@ available from their sites, as these libraries are in constant | |||
| 85 | development and occasionally add features and fix important bugs to | 77 | development and occasionally add features and fix important bugs to |
| 86 | follow the advances in the programming languages they support. | 78 | follow the advances in the programming languages they support. |
| 87 | 79 | ||
| 88 | +++ | ||
| 89 | ** Emacs can be built with built-in support for accessing SQLite databases. | 80 | ** Emacs can be built with built-in support for accessing SQLite databases. |
| 90 | This uses the popular sqlite3 library, and can be disabled by using | 81 | This uses the popular sqlite3 library, and can be disabled by using |
| 91 | the '--without-sqlite3' option to the 'configure' script. | 82 | the '--without-sqlite3' option to the 'configure' script. |
| 92 | 83 | ||
| 93 | +++ | ||
| 94 | ** Support for the WebP image format. | 84 | ** Support for the WebP image format. |
| 95 | This support is built by default when the libwebp library is | 85 | This support is built by default when the libwebp library is |
| 96 | available, and includes support for animated WebP images. To disable | 86 | available, and includes support for animated WebP images. To disable |
| 97 | WebP support, use the '--without-webp' configure flag. Image | 87 | WebP support, use the '--without-webp' configure flag. Image |
| 98 | specifiers can now use ':type webp'. | 88 | specifiers can now use ':type webp'. |
| 99 | 89 | ||
| 100 | --- | ||
| 101 | ** Emacs now installs the ".pdmp" file using a unique fingerprint in the name. | 90 | ** Emacs now installs the ".pdmp" file using a unique fingerprint in the name. |
| 102 | The file is typically installed using a file name akin to | 91 | The file is typically installed using a file name akin to |
| 103 | "...dir/libexec/emacs/29.1/x86_64-pc-linux-gnu/emacs-<fingerprint>.pdmp". | 92 | "...dir/libexec/emacs/29.1/x86_64-pc-linux-gnu/emacs-<fingerprint>.pdmp". |
| 104 | If a constant file name is required, the file can be renamed to | 93 | If a constant file name is required, the file can be renamed to |
| 105 | "emacs.pdmp", and Emacs will find it during startup anyway. | 94 | "emacs.pdmp", and Emacs will find it during startup anyway. |
| 106 | 95 | ||
| 107 | --- | ||
| 108 | ** Emacs on X now uses XInput 2 for input events. | 96 | ** Emacs on X now uses XInput 2 for input events. |
| 109 | If your X server has support and you have the XInput 2 development | 97 | If your X server has support and you have the XInput 2 development |
| 110 | headers installed, Emacs will use the X Input Extension for handling | 98 | headers installed, Emacs will use the X Input Extension for handling |
| @@ -114,7 +102,6 @@ option '--without-xinput2' to disable this support. | |||
| 114 | '(featurep 'xinput2)' can be used to test for the presence of XInput 2 | 102 | '(featurep 'xinput2)' can be used to test for the presence of XInput 2 |
| 115 | support from Lisp programs. | 103 | support from Lisp programs. |
| 116 | 104 | ||
| 117 | --- | ||
| 118 | ** Emacs can now be optionally built with the Cairo XCB backend. | 105 | ** Emacs can now be optionally built with the Cairo XCB backend. |
| 119 | Configure Emacs with the '--with-cairo-xcb' option to use the Cairo | 106 | Configure Emacs with the '--with-cairo-xcb' option to use the Cairo |
| 120 | XCB backend; the default is not to use it. This backend makes Emacs | 107 | XCB backend; the default is not to use it. This backend makes Emacs |
| @@ -124,7 +111,6 @@ a display connection to the same terminal; this could happen, for | |||
| 124 | example, if you repeatedly visit files via emacsclient in a single | 111 | example, if you repeatedly visit files via emacsclient in a single |
| 125 | client frame, each time deleting the frame with 'C-x C-c'. | 112 | client frame, each time deleting the frame with 'C-x C-c'. |
| 126 | 113 | ||
| 127 | +++ | ||
| 128 | ** Emacs now supports being built with pure GTK. | 114 | ** Emacs now supports being built with pure GTK. |
| 129 | To use this option, make sure the GTK 3 (version 3.22.23 or later) and | 115 | To use this option, make sure the GTK 3 (version 3.22.23 or later) and |
| 130 | Cairo development files are installed, and configure Emacs with the | 116 | Cairo development files are installed, and configure Emacs with the |
| @@ -142,7 +128,6 @@ automatically switch to text-mode interface (thus emulating '-nw') if | |||
| 142 | it cannot determine the default display; it will instead complain and | 128 | it cannot determine the default display; it will instead complain and |
| 143 | ask you to invoke it with the explicit '-nw' option. | 129 | ask you to invoke it with the explicit '-nw' option. |
| 144 | 130 | ||
| 145 | +++ | ||
| 146 | ** Emacs has been ported to the Haiku operating system. | 131 | ** Emacs has been ported to the Haiku operating system. |
| 147 | The configuration process should automatically detect and build for | 132 | The configuration process should automatically detect and build for |
| 148 | Haiku. There is also an optional window-system port to Haiku, which | 133 | Haiku. There is also an optional window-system port to Haiku, which |
| @@ -160,7 +145,6 @@ Unlike X, there is no compile-time option to enable or disable | |||
| 160 | double-buffering; it is always enabled. To disable it, change the | 145 | double-buffering; it is always enabled. To disable it, change the |
| 161 | frame parameter 'inhibit-double-buffering' instead. | 146 | frame parameter 'inhibit-double-buffering' instead. |
| 162 | 147 | ||
| 163 | --- | ||
| 164 | ** Emacs no longer reduces the size of the Japanese dictionary. | 148 | ** Emacs no longer reduces the size of the Japanese dictionary. |
| 165 | Building Emacs includes generation of a Japanese dictionary, which is | 149 | Building Emacs includes generation of a Japanese dictionary, which is |
| 166 | used by Japanese input methods. Previously, the build included a step | 150 | used by Japanese input methods. Previously, the build included a step |
| @@ -175,7 +159,6 @@ by saying | |||
| 175 | 159 | ||
| 176 | after deleting "lisp/leim/ja-dic/ja-dic.el". | 160 | after deleting "lisp/leim/ja-dic/ja-dic.el". |
| 177 | 161 | ||
| 178 | --- | ||
| 179 | ** The docstrings of preloaded files are not in "etc/DOC" any more. | 162 | ** The docstrings of preloaded files are not in "etc/DOC" any more. |
| 180 | Instead, they're fetched as needed from the corresponding ".elc" | 163 | Instead, they're fetched as needed from the corresponding ".elc" |
| 181 | files, as was already the case for all the non-preloaded files. | 164 | files, as was already the case for all the non-preloaded files. |
| @@ -183,7 +166,6 @@ files, as was already the case for all the non-preloaded files. | |||
| 183 | 166 | ||
| 184 | * Startup Changes in Emacs 29.1 | 167 | * Startup Changes in Emacs 29.1 |
| 185 | 168 | ||
| 186 | +++ | ||
| 187 | ** '--batch' and '--script' now adjust the garbage collection levels. | 169 | ** '--batch' and '--script' now adjust the garbage collection levels. |
| 188 | These switches now set 'gc-cons-percentage' to 1.0 (up from the | 170 | These switches now set 'gc-cons-percentage' to 1.0 (up from the |
| 189 | default of 0.1). This means that batch processes will typically use | 171 | default of 0.1). This means that batch processes will typically use |
| @@ -191,7 +173,6 @@ more memory than before, but use less time doing garbage collection. | |||
| 191 | Batch jobs that are supposed to run for a long time should adjust the | 173 | Batch jobs that are supposed to run for a long time should adjust the |
| 192 | limit back down again. | 174 | limit back down again. |
| 193 | 175 | ||
| 194 | +++ | ||
| 195 | ** Emacs can now be used more easily in an executable script. | 176 | ** Emacs can now be used more easily in an executable script. |
| 196 | If you start an executable script with | 177 | If you start an executable script with |
| 197 | 178 | ||
| @@ -202,16 +183,13 @@ and then execute the rest of the script file as Emacs Lisp. When it | |||
| 202 | reaches the end of the script, Emacs will exit with an exit code from | 183 | reaches the end of the script, Emacs will exit with an exit code from |
| 203 | the value of the final form. | 184 | the value of the final form. |
| 204 | 185 | ||
| 205 | +++ | ||
| 206 | ** Emacs now supports setting 'user-emacs-directory' via '--init-directory'. | 186 | ** Emacs now supports setting 'user-emacs-directory' via '--init-directory'. |
| 207 | Use the '--init-directory' command-line option to set | 187 | Use the '--init-directory' command-line option to set |
| 208 | 'user-emacs-directory'. | 188 | 'user-emacs-directory'. |
| 209 | 189 | ||
| 210 | +++ | ||
| 211 | ** Emacs now has a '--fingerprint' option. | 190 | ** Emacs now has a '--fingerprint' option. |
| 212 | This will output a string identifying the current Emacs build, and exit. | 191 | This will output a string identifying the current Emacs build, and exit. |
| 213 | 192 | ||
| 214 | +++ | ||
| 215 | ** New hook 'after-pdump-load-hook'. | 193 | ** New hook 'after-pdump-load-hook'. |
| 216 | This is run at the end of the Emacs startup process, and is meant to | 194 | This is run at the end of the Emacs startup process, and is meant to |
| 217 | be used to reinitialize data structures that would normally be done at | 195 | be used to reinitialize data structures that would normally be done at |
| @@ -219,14 +197,12 @@ load time. | |||
| 219 | 197 | ||
| 220 | ** Native Compilation | 198 | ** Native Compilation |
| 221 | 199 | ||
| 222 | +++ | ||
| 223 | *** New command 'native-compile-prune-cache'. | 200 | *** New command 'native-compile-prune-cache'. |
| 224 | This command deletes old subdirectories of the eln cache (but not the | 201 | This command deletes old subdirectories of the eln cache (but not the |
| 225 | ones for the current Emacs version). Note that subdirectories of the | 202 | ones for the current Emacs version). Note that subdirectories of the |
| 226 | system directory where the "*.eln" files are installed (usually, the | 203 | system directory where the "*.eln" files are installed (usually, the |
| 227 | last entry in 'native-comp-eln-load-path') are not deleted. | 204 | last entry in 'native-comp-eln-load-path') are not deleted. |
| 228 | 205 | ||
| 229 | +++ | ||
| 230 | *** New function 'startup-redirect-eln-cache'. | 206 | *** New function 'startup-redirect-eln-cache'. |
| 231 | This function can be called in your init files to change the | 207 | This function can be called in your init files to change the |
| 232 | user-specific directory where Emacs stores the "*.eln" files produced | 208 | user-specific directory where Emacs stores the "*.eln" files produced |
| @@ -237,7 +213,6 @@ of 'user-emacs-directory'. | |||
| 237 | 213 | ||
| 238 | * Incompatible changes in Emacs 29.1 | 214 | * Incompatible changes in Emacs 29.1 |
| 239 | 215 | ||
| 240 | +++ | ||
| 241 | ** The image commands have changed key bindings. | 216 | ** The image commands have changed key bindings. |
| 242 | In previous Emacs versions, the '+', '-' and 'r' keys were bound when | 217 | In previous Emacs versions, the '+', '-' and 'r' keys were bound when |
| 243 | point was over an image. In Emacs 29.1, additional commands have been | 218 | point was over an image. In Emacs 29.1, additional commands have been |
| @@ -247,7 +222,6 @@ moved to the 'i' prefix keymap, so '+' is now 'i +', '-' is now 'i -', | |||
| 247 | and 'r' is now 'i r'. In addition, these commands are now repeating, | 222 | and 'r' is now 'i r'. In addition, these commands are now repeating, |
| 248 | so you can rotate an image twice by saying 'i r r', for instance. | 223 | so you can rotate an image twice by saying 'i r r', for instance. |
| 249 | 224 | ||
| 250 | +++ | ||
| 251 | ** Emacs now picks the correct coding-system for X input methods. | 225 | ** Emacs now picks the correct coding-system for X input methods. |
| 252 | Previously, Emacs would use 'locale-coding-system' for input | 226 | Previously, Emacs would use 'locale-coding-system' for input |
| 253 | methods, which could in some circumstances be incorrect, especially | 227 | methods, which could in some circumstances be incorrect, especially |
| @@ -260,7 +234,6 @@ changed the coding system used to decode X keyboard input must adjust | |||
| 260 | their customizations to 'locale-coding-system' to the variable | 234 | their customizations to 'locale-coding-system' to the variable |
| 261 | 'x-input-coding-system' instead. | 235 | 'x-input-coding-system' instead. |
| 262 | 236 | ||
| 263 | +++ | ||
| 264 | ** Bookmarks no longer include context for encrypted files. | 237 | ** Bookmarks no longer include context for encrypted files. |
| 265 | If you're visiting an encrypted file, setting a bookmark no longer | 238 | If you're visiting an encrypted file, setting a bookmark no longer |
| 266 | includes excerpts from that buffer in the bookmarks file. This is | 239 | includes excerpts from that buffer in the bookmarks file. This is |
| @@ -268,7 +241,6 @@ implemented by the new hook 'bookmark-inhibit-context-functions', | |||
| 268 | where packages can register a function which returns non-nil for file | 241 | where packages can register a function which returns non-nil for file |
| 269 | names to be excluded from adding such excerpts. | 242 | names to be excluded from adding such excerpts. |
| 270 | 243 | ||
| 271 | --- | ||
| 272 | ** 'show-paren-mode' is now disabled in 'special-mode' buffers. | 244 | ** 'show-paren-mode' is now disabled in 'special-mode' buffers. |
| 273 | In Emacs versions previous to Emacs 28.1, 'show-paren-mode' defaulted | 245 | In Emacs versions previous to Emacs 28.1, 'show-paren-mode' defaulted |
| 274 | off. In Emacs 28.1, the mode was switched on in all buffers. In | 246 | off. In Emacs 28.1, the mode was switched on in all buffers. In |
| @@ -279,7 +251,6 @@ init file: | |||
| 279 | 251 | ||
| 280 | (setopt show-paren-predicate t) | 252 | (setopt show-paren-predicate t) |
| 281 | 253 | ||
| 282 | +++ | ||
| 283 | ** Explicitly-set read-only state is preserved when reverting a buffer. | 254 | ** Explicitly-set read-only state is preserved when reverting a buffer. |
| 284 | If you use the 'C-x C-q' command to change the read-only state of the | 255 | If you use the 'C-x C-q' command to change the read-only state of the |
| 285 | buffer and then revert it, Emacs would previously use the file | 256 | buffer and then revert it, Emacs would previously use the file |
| @@ -287,14 +258,12 @@ permission bits to determine whether the buffer should be read-only | |||
| 287 | after reverting the buffer. Emacs now remembers the decision made in | 258 | after reverting the buffer. Emacs now remembers the decision made in |
| 288 | 'C-x C-q'. | 259 | 'C-x C-q'. |
| 289 | 260 | ||
| 290 | --- | ||
| 291 | ** The Gtk selection face is no longer used for the region. | 261 | ** The Gtk selection face is no longer used for the region. |
| 292 | The combination of a Gtk-controlled background and a foreground color | 262 | The combination of a Gtk-controlled background and a foreground color |
| 293 | controlled by the internal Emacs machinery led to low-contrast faces | 263 | controlled by the internal Emacs machinery led to low-contrast faces |
| 294 | in common default setups. Emacs now uses the same 'region' face on | 264 | in common default setups. Emacs now uses the same 'region' face on |
| 295 | Gtk and non-Gtk setups. | 265 | Gtk and non-Gtk setups. |
| 296 | 266 | ||
| 297 | --- | ||
| 298 | ** 'C-h f' and 'C-h x' may now require confirmation when you press 'RET'. | 267 | ** 'C-h f' and 'C-h x' may now require confirmation when you press 'RET'. |
| 299 | If the text in the minibuffer cannot be completed to a single function | 268 | If the text in the minibuffer cannot be completed to a single function |
| 300 | or command, typing 'RET' will not automatically complete to the shortest | 269 | or command, typing 'RET' will not automatically complete to the shortest |
| @@ -306,12 +275,10 @@ second 'RET'. | |||
| 306 | 275 | ||
| 307 | ** Dired | 276 | ** Dired |
| 308 | 277 | ||
| 309 | --- | ||
| 310 | *** 'w' ('dired-copy-filename-as-kill') has changed behavior. | 278 | *** 'w' ('dired-copy-filename-as-kill') has changed behavior. |
| 311 | If there are several files marked, file names containing space and | 279 | If there are several files marked, file names containing space and |
| 312 | quote characters will be quoted "like this". | 280 | quote characters will be quoted "like this". |
| 313 | 281 | ||
| 314 | --- | ||
| 315 | *** The 'd' command now more consistently skips dot files. | 282 | *** The 'd' command now more consistently skips dot files. |
| 316 | In previous Emacs versions, commands like 'C-u 10 d' would put the "D" | 283 | In previous Emacs versions, commands like 'C-u 10 d' would put the "D" |
| 317 | mark on the next ten files, no matter whether they were dot files | 284 | mark on the next ten files, no matter whether they were dot files |
| @@ -319,10 +286,8 @@ mark on the next ten files, no matter whether they were dot files | |||
| 319 | mouse (in 'transient-mark-mode') and then hitting 'd' would skip dot | 286 | mouse (in 'transient-mark-mode') and then hitting 'd' would skip dot |
| 320 | files. These now work equivalently. | 287 | files. These now work equivalently. |
| 321 | 288 | ||
| 322 | +++ | ||
| 323 | ** Warning about "eager macro-expansion failure" is now an error. | 289 | ** Warning about "eager macro-expansion failure" is now an error. |
| 324 | 290 | ||
| 325 | --- | ||
| 326 | ** Previously, the X "reverseVideo" value at startup was heeded for all frames. | 291 | ** Previously, the X "reverseVideo" value at startup was heeded for all frames. |
| 327 | This meant that if you had a "reverseVideo" resource on the initial | 292 | This meant that if you had a "reverseVideo" resource on the initial |
| 328 | display, and then opened up a new frame on a display without any | 293 | display, and then opened up a new frame on a display without any |
| @@ -330,26 +295,21 @@ explicit "reverseVideo" setting, it would get heeded there, too. (This | |||
| 330 | included terminal frames.) In Emacs 29, the "reverseVideo" X resource | 295 | included terminal frames.) In Emacs 29, the "reverseVideo" X resource |
| 331 | is handled like all the other X resources, and set on a per-frame basis. | 296 | is handled like all the other X resources, and set on a per-frame basis. |
| 332 | 297 | ||
| 333 | +++ | ||
| 334 | ** 'E' in 'query-replace' now edits the replacement with exact case. | 298 | ** 'E' in 'query-replace' now edits the replacement with exact case. |
| 335 | Previously, this command did the same as 'e'. | 299 | Previously, this command did the same as 'e'. |
| 336 | 300 | ||
| 337 | --- | ||
| 338 | ** '/ a' in "*Packages*" buffer now limits by archive name(s) instead of regexp. | 301 | ** '/ a' in "*Packages*" buffer now limits by archive name(s) instead of regexp. |
| 339 | 302 | ||
| 340 | +++ | ||
| 341 | ** Setting the goal columns now also affects '<prior>' and '<next>'. | 303 | ** Setting the goal columns now also affects '<prior>' and '<next>'. |
| 342 | Previously, 'C-x C-n' only affected 'next-line' and 'previous-line', | 304 | Previously, 'C-x C-n' only affected 'next-line' and 'previous-line', |
| 343 | but it now also affects 'scroll-up-command' and 'scroll-down-command'. | 305 | but it now also affects 'scroll-up-command' and 'scroll-down-command'. |
| 344 | 306 | ||
| 345 | --- | ||
| 346 | ** Isearch in "*Help*" and "*info*" now char-folds quote characters by default. | 307 | ** Isearch in "*Help*" and "*info*" now char-folds quote characters by default. |
| 347 | This means that you can say 'C-s `foo' (GRAVE ACCENT) if the buffer | 308 | This means that you can say 'C-s `foo' (GRAVE ACCENT) if the buffer |
| 348 | contains "‘foo" (LEFT SINGLE QUOTATION MARK) and the like. These | 309 | contains "‘foo" (LEFT SINGLE QUOTATION MARK) and the like. These |
| 349 | quotation characters look somewhat similar in some fonts. To switch | 310 | quotation characters look somewhat similar in some fonts. To switch |
| 350 | this off, disable the new 'isearch-fold-quotes-mode' minor mode. | 311 | this off, disable the new 'isearch-fold-quotes-mode' minor mode. |
| 351 | 312 | ||
| 352 | --- | ||
| 353 | ** Sorting commands no longer necessarily change modification status. | 313 | ** Sorting commands no longer necessarily change modification status. |
| 354 | In earlier Emacs versions, commands like 'sort-lines' would always | 314 | In earlier Emacs versions, commands like 'sort-lines' would always |
| 355 | change buffer modification status to "modified", whether they changed | 315 | change buffer modification status to "modified", whether they changed |
| @@ -357,19 +317,16 @@ something in the buffer or not. This has been changed: the buffer is | |||
| 357 | marked as modified only if the sorting ended up actually changing the | 317 | marked as modified only if the sorting ended up actually changing the |
| 358 | contents of the buffer. | 318 | contents of the buffer. |
| 359 | 319 | ||
| 360 | --- | ||
| 361 | ** 'string-lines' handles trailing newlines differently. | 320 | ** 'string-lines' handles trailing newlines differently. |
| 362 | It no longer returns an empty final string if the string ends with a | 321 | It no longer returns an empty final string if the string ends with a |
| 363 | newline. | 322 | newline. |
| 364 | 323 | ||
| 365 | --- | ||
| 366 | ** 'TAB' and '<backtab>' are now bound in 'button-map'. | 324 | ** 'TAB' and '<backtab>' are now bound in 'button-map'. |
| 367 | This means that if point is on a button, 'TAB' will take you to the | 325 | This means that if point is on a button, 'TAB' will take you to the |
| 368 | next button, even if the mode has bound it to something else. This | 326 | next button, even if the mode has bound it to something else. This |
| 369 | also means that 'TAB' on a button in an 'outline-minor-mode' heading | 327 | also means that 'TAB' on a button in an 'outline-minor-mode' heading |
| 370 | will move point instead of collapsing the outline. | 328 | will move point instead of collapsing the outline. |
| 371 | 329 | ||
| 372 | --- | ||
| 373 | ** 'outline-minor-mode-cycle-map' is now parent of 'outline-minor-mode'. | 330 | ** 'outline-minor-mode-cycle-map' is now parent of 'outline-minor-mode'. |
| 374 | Instead of adding text property 'keymap' with 'outline-minor-mode-cycle' | 331 | Instead of adding text property 'keymap' with 'outline-minor-mode-cycle' |
| 375 | on outline headings in 'outline-minor-mode', the keymap | 332 | on outline headings in 'outline-minor-mode', the keymap |
| @@ -378,12 +335,10 @@ But keybindings in 'outline-minor-mode-cycle' still take effect | |||
| 378 | only on outline headings because they are bound with the help of | 335 | only on outline headings because they are bound with the help of |
| 379 | 'outline-minor-mode-cycle--bind' that checks if point is on a heading. | 336 | 'outline-minor-mode-cycle--bind' that checks if point is on a heading. |
| 380 | 337 | ||
| 381 | --- | ||
| 382 | ** 'Info-default-directory-list' is no longer populated at Emacs startup. | 338 | ** 'Info-default-directory-list' is no longer populated at Emacs startup. |
| 383 | If you have code in your init file that removes directories from | 339 | If you have code in your init file that removes directories from |
| 384 | 'Info-default-directory-list', this will no longer work. | 340 | 'Info-default-directory-list', this will no longer work. |
| 385 | 341 | ||
| 386 | --- | ||
| 387 | ** 'C-k' no longer deletes files in 'ido-mode'. | 342 | ** 'C-k' no longer deletes files in 'ido-mode'. |
| 388 | To get the previous action back, put something like the following in | 343 | To get the previous action back, put something like the following in |
| 389 | your Init file: | 344 | your Init file: |
| @@ -391,14 +346,12 @@ your Init file: | |||
| 391 | (require 'ido) | 346 | (require 'ido) |
| 392 | (keymap-set ido-file-completion-map "C-k" #'ido-delete-file-at-head) | 347 | (keymap-set ido-file-completion-map "C-k" #'ido-delete-file-at-head) |
| 393 | 348 | ||
| 394 | --- | ||
| 395 | ** New user option 'term-clear-full-screen-programs'. | 349 | ** New user option 'term-clear-full-screen-programs'. |
| 396 | By default, term.el will now work like most terminals when displaying | 350 | By default, term.el will now work like most terminals when displaying |
| 397 | full-screen programs: When they exit, the output is cleared, leaving | 351 | full-screen programs: When they exit, the output is cleared, leaving |
| 398 | what was displayed in the window before the programs started. Set | 352 | what was displayed in the window before the programs started. Set |
| 399 | this user option to nil to revert back to the old behavior. | 353 | this user option to nil to revert back to the old behavior. |
| 400 | 354 | ||
| 401 | --- | ||
| 402 | ** Support for old EIEIO functions is not autoloaded any more. | 355 | ** Support for old EIEIO functions is not autoloaded any more. |
| 403 | You need an explicit '(require 'eieio-compat)' to use 'defmethod' | 356 | You need an explicit '(require 'eieio-compat)' to use 'defmethod' |
| 404 | and 'defgeneric' (which were made obsolete in Emacs 25.1 by | 357 | and 'defgeneric' (which were made obsolete in Emacs 25.1 by |
| @@ -406,11 +359,9 @@ and 'defgeneric' (which were made obsolete in Emacs 25.1 by | |||
| 406 | Similarly you might need to '(require 'eieio-compat)' before loading | 359 | Similarly you might need to '(require 'eieio-compat)' before loading |
| 407 | files that were compiled with an old EIEIO (Emacs<25). | 360 | files that were compiled with an old EIEIO (Emacs<25). |
| 408 | 361 | ||
| 409 | --- | ||
| 410 | ** 'C-x 8 .' has been moved to 'C-x 8 . .'. | 362 | ** 'C-x 8 .' has been moved to 'C-x 8 . .'. |
| 411 | This is to open up the 'C-x 8 .' map to bind further characters there. | 363 | This is to open up the 'C-x 8 .' map to bind further characters there. |
| 412 | 364 | ||
| 413 | --- | ||
| 414 | ** 'C-x 8 =' has been moved to 'C-x 8 = ='. | 365 | ** 'C-x 8 =' has been moved to 'C-x 8 = ='. |
| 415 | You can now use 'C-x 8 =' to insert several characters with macron; | 366 | You can now use 'C-x 8 =' to insert several characters with macron; |
| 416 | for example, 'C-x 8 = a' will insert U+0101 LATIN SMALL LETTER A WITH | 367 | for example, 'C-x 8 = a' will insert U+0101 LATIN SMALL LETTER A WITH |
| @@ -424,12 +375,10 @@ For consistency with remote connections, Eshell now uses 'exec-path' | |||
| 424 | to determine the execution path on the local or remote system, instead | 375 | to determine the execution path on the local or remote system, instead |
| 425 | of using the PATH environment variable directly. | 376 | of using the PATH environment variable directly. |
| 426 | 377 | ||
| 427 | --- | ||
| 428 | *** 'source' and '.' no longer accept the '--help' option. | 378 | *** 'source' and '.' no longer accept the '--help' option. |
| 429 | This is for compatibility with the shell versions of these commands, | 379 | This is for compatibility with the shell versions of these commands, |
| 430 | which don't handle options like '--help' in any special way. | 380 | which don't handle options like '--help' in any special way. |
| 431 | 381 | ||
| 432 | +++ | ||
| 433 | *** String delimiters in argument predicates/modifiers are more restricted. | 382 | *** String delimiters in argument predicates/modifiers are more restricted. |
| 434 | Previously, some argument predicates/modifiers allowed arbitrary | 383 | Previously, some argument predicates/modifiers allowed arbitrary |
| 435 | characters as string delimiters. To provide more unified behavior | 384 | characters as string delimiters. To provide more unified behavior |
| @@ -438,11 +387,9 @@ been restricted to "...", '...', /.../, |...|, (...), [...], <...>, | |||
| 438 | and {...}. See the "(eshell) Argument Predication and Modification" | 387 | and {...}. See the "(eshell) Argument Predication and Modification" |
| 439 | node in the Eshell manual for more details. | 388 | node in the Eshell manual for more details. |
| 440 | 389 | ||
| 441 | +++ | ||
| 442 | *** Eshell pipelines now only pipe stdout by default. | 390 | *** Eshell pipelines now only pipe stdout by default. |
| 443 | To pipe both stdout and stderr, use the '|&' operator instead of '|'. | 391 | To pipe both stdout and stderr, use the '|&' operator instead of '|'. |
| 444 | 392 | ||
| 445 | --- | ||
| 446 | ** The 'delete-forward-char' command now deletes by grapheme clusters. | 393 | ** The 'delete-forward-char' command now deletes by grapheme clusters. |
| 447 | This command is by default bound to the '<Delete>' function key | 394 | This command is by default bound to the '<Delete>' function key |
| 448 | (a.k.a. '<deletechar>'). When invoked without a prefix argument or | 395 | (a.k.a. '<deletechar>'). When invoked without a prefix argument or |
| @@ -452,12 +399,10 @@ example, if point is before an Emoji sequence, pressing '<Delete>' | |||
| 452 | will delete the entire sequence, not just a single character at its | 399 | will delete the entire sequence, not just a single character at its |
| 453 | beginning. | 400 | beginning. |
| 454 | 401 | ||
| 455 | +++ | ||
| 456 | ** 'load-history' does not treat autoloads specially any more. | 402 | ** 'load-history' does not treat autoloads specially any more. |
| 457 | An autoload definition appears just as a '(defun . NAME)' and the | 403 | An autoload definition appears just as a '(defun . NAME)' and the |
| 458 | '(t . NAME)' entries are not generated any more. | 404 | '(t . NAME)' entries are not generated any more. |
| 459 | 405 | ||
| 460 | --- | ||
| 461 | ** The Tamil input methods no longer insert Tamil digits. | 406 | ** The Tamil input methods no longer insert Tamil digits. |
| 462 | The input methods 'tamil-itrans' and 'tamil-inscript' no longer insert | 407 | The input methods 'tamil-itrans' and 'tamil-inscript' no longer insert |
| 463 | the Tamil digits, as those digit characters are not used nowadays by | 408 | the Tamil digits, as those digit characters are not used nowadays by |
| @@ -465,7 +410,6 @@ speakers of the Tamil language. To get back the previous behavior, | |||
| 465 | use the new 'tamil-itrans-digits' and 'tamil-inscript-digits' input | 410 | use the new 'tamil-itrans-digits' and 'tamil-inscript-digits' input |
| 466 | methods instead. | 411 | methods instead. |
| 467 | 412 | ||
| 468 | +++ | ||
| 469 | ** New variable 'current-time-list' governing default timestamp form. | 413 | ** New variable 'current-time-list' governing default timestamp form. |
| 470 | Functions like 'current-time' now yield '(TICKS . HZ)' timestamps if | 414 | Functions like 'current-time' now yield '(TICKS . HZ)' timestamps if |
| 471 | this new variable is nil. The variable defaults to t, which means | 415 | this new variable is nil. The variable defaults to t, which means |
| @@ -476,7 +420,6 @@ Developers are encouraged to test timestamp-related code with this | |||
| 476 | variable set to nil, as it will default to nil in a future Emacs | 420 | variable set to nil, as it will default to nil in a future Emacs |
| 477 | version and will be removed some time after that. | 421 | version and will be removed some time after that. |
| 478 | 422 | ||
| 479 | +++ | ||
| 480 | ** Functions that recreate the "*scratch*" buffer now also initialize it. | 423 | ** Functions that recreate the "*scratch*" buffer now also initialize it. |
| 481 | When functions like 'other-buffer' and 'server-execute' recreate | 424 | When functions like 'other-buffer' and 'server-execute' recreate |
| 482 | "*scratch*", they now also insert 'initial-scratch-message' and set | 425 | "*scratch*", they now also insert 'initial-scratch-message' and set |
| @@ -484,7 +427,6 @@ the major mode according to 'initial-major-mode', like at Emacs | |||
| 484 | startup. Previously, these functions ignored | 427 | startup. Previously, these functions ignored |
| 485 | 'initial-scratch-message' and left "*scratch*" in 'fundamental-mode'. | 428 | 'initial-scratch-message' and left "*scratch*" in 'fundamental-mode'. |
| 486 | 429 | ||
| 487 | --- | ||
| 488 | ** Naming of Image-Dired thumbnail files has changed. | 430 | ** Naming of Image-Dired thumbnail files has changed. |
| 489 | Names of thumbnail files generated when 'image-dired-thumbnail-storage' | 431 | Names of thumbnail files generated when 'image-dired-thumbnail-storage' |
| 490 | is 'image-dired' now always end in ".jpg". This fixes various issues | 432 | is 'image-dired' now always end in ".jpg". This fixes various issues |
| @@ -493,25 +435,21 @@ will not be used in Emacs 29, and vice-versa. If disk space is an | |||
| 493 | issue, consider deleting the 'image-dired-dir' directory (usually | 435 | issue, consider deleting the 'image-dired-dir' directory (usually |
| 494 | "~/.emacs.d/image-dired/") after upgrading to Emacs 29. | 436 | "~/.emacs.d/image-dired/") after upgrading to Emacs 29. |
| 495 | 437 | ||
| 496 | --- | ||
| 497 | ** The 'rlogin' method in the URL library is now obsolete. | 438 | ** The 'rlogin' method in the URL library is now obsolete. |
| 498 | Emacs will now display a warning if you request a URL like | 439 | Emacs will now display a warning if you request a URL like |
| 499 | "rlogin://foo@example.org". | 440 | "rlogin://foo@example.org". |
| 500 | 441 | ||
| 501 | --- | ||
| 502 | ** Setting 'url-gateway-method' to 'rlogin' is now obsolete. | 442 | ** Setting 'url-gateway-method' to 'rlogin' is now obsolete. |
| 503 | Emacs will now display a warning when setting it to that value. | 443 | Emacs will now display a warning when setting it to that value. |
| 504 | The user options 'url-gateway-rlogin-host', | 444 | The user options 'url-gateway-rlogin-host', |
| 505 | 'url-gateway-rlogin-parameters', and 'url-gateway-rlogin-user-name' | 445 | 'url-gateway-rlogin-parameters', and 'url-gateway-rlogin-user-name' |
| 506 | are also obsolete. | 446 | are also obsolete. |
| 507 | 447 | ||
| 508 | --- | ||
| 509 | ** The user function 'url-irc-function' now takes a SCHEME argument. | 448 | ** The user function 'url-irc-function' now takes a SCHEME argument. |
| 510 | The user option 'url-irc-function' is now called with a sixth argument | 449 | The user option 'url-irc-function' is now called with a sixth argument |
| 511 | corresponding to the scheme portion of the target URL. For example, | 450 | corresponding to the scheme portion of the target URL. For example, |
| 512 | this would be "ircs" for a URL like "ircs://irc.libera.chat". | 451 | this would be "ircs" for a URL like "ircs://irc.libera.chat". |
| 513 | 452 | ||
| 514 | --- | ||
| 515 | ** The linum.el library is now obsolete. | 453 | ** The linum.el library is now obsolete. |
| 516 | We recommend using either the built-in 'display-line-numbers-mode', or | 454 | We recommend using either the built-in 'display-line-numbers-mode', or |
| 517 | the 'nlinum' package from GNU ELPA instead. The former has better | 455 | the 'nlinum' package from GNU ELPA instead. The former has better |
| @@ -536,40 +474,31 @@ performance, but the latter is closer to a drop-in replacement. | |||
| 536 | 474 | ||
| 537 | (require 'linum) | 475 | (require 'linum) |
| 538 | 476 | ||
| 539 | --- | ||
| 540 | ** The thumbs.el library is now obsolete. | 477 | ** The thumbs.el library is now obsolete. |
| 541 | We recommend using the 'image-dired' command instead. | 478 | We recommend using the 'image-dired' command instead. |
| 542 | 479 | ||
| 543 | --- | ||
| 544 | ** The autoarg.el library is now marked obsolete. | 480 | ** The autoarg.el library is now marked obsolete. |
| 545 | This library provides the 'autoarg-mode' and 'autoarg-kp-mode' minor | 481 | This library provides the 'autoarg-mode' and 'autoarg-kp-mode' minor |
| 546 | modes to emulate the behavior of the historical editor Twenex Emacs. | 482 | modes to emulate the behavior of the historical editor Twenex Emacs. |
| 547 | We believe it is no longer useful. | 483 | We believe it is no longer useful. |
| 548 | 484 | ||
| 549 | --- | ||
| 550 | ** The quickurl.el library is now obsolete. | 485 | ** The quickurl.el library is now obsolete. |
| 551 | Use 'abbrev', 'skeleton' or 'tempo' instead. | 486 | Use 'abbrev', 'skeleton' or 'tempo' instead. |
| 552 | 487 | ||
| 553 | --- | ||
| 554 | ** The rlogin.el library, and the 'rsh' command are now obsolete. | 488 | ** The rlogin.el library, and the 'rsh' command are now obsolete. |
| 555 | Use something like 'M-x shell RET ssh <host> RET' instead. | 489 | Use something like 'M-x shell RET ssh <host> RET' instead. |
| 556 | 490 | ||
| 557 | --- | ||
| 558 | ** The url-about.el library is now obsolete. | 491 | ** The url-about.el library is now obsolete. |
| 559 | 492 | ||
| 560 | --- | ||
| 561 | ** The autoload.el library is now obsolete. | 493 | ** The autoload.el library is now obsolete. |
| 562 | It is superseded by the new loaddefs-gen.el library. | 494 | It is superseded by the new loaddefs-gen.el library. |
| 563 | 495 | ||
| 564 | --- | ||
| 565 | ** The netrc.el library is now obsolete. | 496 | ** The netrc.el library is now obsolete. |
| 566 | Use the 'auth-source-netrc-parse-all' function in auth-source.el | 497 | Use the 'auth-source-netrc-parse-all' function in auth-source.el |
| 567 | instead. | 498 | instead. |
| 568 | 499 | ||
| 569 | --- | ||
| 570 | ** The url-dired.el library is now obsolete. | 500 | ** The url-dired.el library is now obsolete. |
| 571 | 501 | ||
| 572 | --- | ||
| 573 | ** The fast-lock.el and lazy-lock.el libraries have been removed. | 502 | ** The fast-lock.el and lazy-lock.el libraries have been removed. |
| 574 | They have been obsolete since Emacs 22.1. | 503 | They have been obsolete since Emacs 22.1. |
| 575 | 504 | ||
| @@ -577,7 +506,6 @@ The variable 'font-lock-support-mode' is occasionally useful for | |||
| 577 | debugging purposes. It is now a regular variable (instead of a user | 506 | debugging purposes. It is now a regular variable (instead of a user |
| 578 | option) and can be set to nil to disable Just-in-time Lock mode. | 507 | option) and can be set to nil to disable Just-in-time Lock mode. |
| 579 | 508 | ||
| 580 | +++ | ||
| 581 | ** The 'utf-8-auto' coding-system now produces BOM on encoding. | 509 | ** The 'utf-8-auto' coding-system now produces BOM on encoding. |
| 582 | This is actually a bugfix, since this is how 'utf-8-auto' was | 510 | This is actually a bugfix, since this is how 'utf-8-auto' was |
| 583 | documented from day one; it just didn't behave according to | 511 | documented from day one; it just didn't behave according to |
| @@ -594,7 +522,6 @@ encoding, only for decoding. | |||
| 594 | 522 | ||
| 595 | * Changes in Emacs 29.1 | 523 | * Changes in Emacs 29.1 |
| 596 | 524 | ||
| 597 | +++ | ||
| 598 | ** New user option 'major-mode-remap-alist' to specify favorite major modes. | 525 | ** New user option 'major-mode-remap-alist' to specify favorite major modes. |
| 599 | This user option lets you remap the default modes (e.g. 'perl-mode' or | 526 | This user option lets you remap the default modes (e.g. 'perl-mode' or |
| 600 | 'latex-mode') to your favorite ones (e.g. 'cperl-mode' or | 527 | 'latex-mode') to your favorite ones (e.g. 'cperl-mode' or |
| @@ -603,15 +530,12 @@ undesirable side effects. | |||
| 603 | This applies to all modes specified via 'auto-mode-alist', file-local | 530 | This applies to all modes specified via 'auto-mode-alist', file-local |
| 604 | variables, etc. | 531 | variables, etc. |
| 605 | 532 | ||
| 606 | --- | ||
| 607 | ** Emacs now supports Unicode Standard version 15.0. | 533 | ** Emacs now supports Unicode Standard version 15.0. |
| 608 | 534 | ||
| 609 | --- | ||
| 610 | ** New user option 'electric-quote-replace-consecutive'. | 535 | ** New user option 'electric-quote-replace-consecutive'. |
| 611 | This allows you to disable the default behavior of consecutive single | 536 | This allows you to disable the default behavior of consecutive single |
| 612 | quotes being replaced with a double quote. | 537 | quotes being replaced with a double quote. |
| 613 | 538 | ||
| 614 | --- | ||
| 615 | ** Emacs is now capable of editing files with very long lines. | 539 | ** Emacs is now capable of editing files with very long lines. |
| 616 | The display of long lines has been optimized, and Emacs should no | 540 | The display of long lines has been optimized, and Emacs should no |
| 617 | longer choke when a buffer on display contains long lines. The | 541 | longer choke when a buffer on display contains long lines. The |
| @@ -648,7 +572,6 @@ access portions of the buffer outside of the narrowed region. | |||
| 648 | The new function 'long-line-optimizations-p' returns non-nil when | 572 | The new function 'long-line-optimizations-p' returns non-nil when |
| 649 | these optimizations are in effect in the current buffer. | 573 | these optimizations are in effect in the current buffer. |
| 650 | 574 | ||
| 651 | +++ | ||
| 652 | ** New command to change the font size globally. | 575 | ** New command to change the font size globally. |
| 653 | To increase the font size, type 'C-x C-M-+' or 'C-x C-M-='; to | 576 | To increase the font size, type 'C-x C-M-+' or 'C-x C-M-='; to |
| 654 | decrease it, type 'C-x C-M--'; to restore the font size, type 'C-x | 577 | decrease it, type 'C-x C-M--'; to restore the font size, type 'C-x |
| @@ -660,7 +583,6 @@ increase and decrease the font size globally. Additionally, the | |||
| 660 | user option 'global-text-scale-adjust-resizes-frames' controls whether | 583 | user option 'global-text-scale-adjust-resizes-frames' controls whether |
| 661 | the frames are resized when the font size is changed. | 584 | the frames are resized when the font size is changed. |
| 662 | 585 | ||
| 663 | --- | ||
| 664 | ** New config variable 'syntax-wholeline-max' to reduce the cost of long lines. | 586 | ** New config variable 'syntax-wholeline-max' to reduce the cost of long lines. |
| 665 | This variable is used by some operations (mostly syntax-propertization | 587 | This variable is used by some operations (mostly syntax-propertization |
| 666 | and font-locking) to treat lines longer than this variable as if they | 588 | and font-locking) to treat lines longer than this variable as if they |
| @@ -672,13 +594,11 @@ can recover the previous behavior with: | |||
| 672 | 594 | ||
| 673 | (setq syntax-wholeline-max most-positive-fixnum) | 595 | (setq syntax-wholeline-max most-positive-fixnum) |
| 674 | 596 | ||
| 675 | --- | ||
| 676 | ** New bindings in 'find-function-setup-keys' for 'find-library'. | 597 | ** New bindings in 'find-function-setup-keys' for 'find-library'. |
| 677 | When 'find-function-setup-keys' is enabled, 'C-x L' is now bound to | 598 | When 'find-function-setup-keys' is enabled, 'C-x L' is now bound to |
| 678 | 'find-library', 'C-x 4 L' is now bound to 'find-library-other-window' | 599 | 'find-library', 'C-x 4 L' is now bound to 'find-library-other-window' |
| 679 | and 'C-x 5 L' is now bound to 'find-library-other-frame'. | 600 | and 'C-x 5 L' is now bound to 'find-library-other-frame'. |
| 680 | 601 | ||
| 681 | +++ | ||
| 682 | ** New key binding after 'M-x' or 'M-X': 'M-X'. | 602 | ** New key binding after 'M-x' or 'M-X': 'M-X'. |
| 683 | Emacs allows different completion predicates to be used with 'M-x' | 603 | Emacs allows different completion predicates to be used with 'M-x' |
| 684 | (i.e., 'execute-extended-command') via the | 604 | (i.e., 'execute-extended-command') via the |
| @@ -688,10 +608,8 @@ especially relevant to the current buffer. Emacs now allows toggling | |||
| 688 | between these modes while the user is inputting a command by hitting | 608 | between these modes while the user is inputting a command by hitting |
| 689 | 'M-X' while in the minibuffer. | 609 | 'M-X' while in the minibuffer. |
| 690 | 610 | ||
| 691 | --- | ||
| 692 | ** Interactively, 'kill-buffer' will now offer to save the buffer if unsaved. | 611 | ** Interactively, 'kill-buffer' will now offer to save the buffer if unsaved. |
| 693 | 612 | ||
| 694 | --- | ||
| 695 | ** New commands 'duplicate-line' and 'duplicate-dwim'. | 613 | ** New commands 'duplicate-line' and 'duplicate-dwim'. |
| 696 | 'duplicate-line' duplicates the current line the specified number of times. | 614 | 'duplicate-line' duplicates the current line the specified number of times. |
| 697 | 'duplicate-dwim' duplicates the region if it is active. If not, it | 615 | 'duplicate-dwim' duplicates the region if it is active. If not, it |
| @@ -700,10 +618,8 @@ duplicated on its right-hand side. The new user option | |||
| 700 | 'duplicate-line-final-position' specifies where to move point | 618 | 'duplicate-line-final-position' specifies where to move point |
| 701 | after duplicating a line. | 619 | after duplicating a line. |
| 702 | 620 | ||
| 703 | --- | ||
| 704 | ** Files with the ".eld" extension are now visited in 'lisp-data-mode'. | 621 | ** Files with the ".eld" extension are now visited in 'lisp-data-mode'. |
| 705 | 622 | ||
| 706 | +++ | ||
| 707 | ** 'network-lookup-address-info' can now check numeric IP address validity. | 623 | ** 'network-lookup-address-info' can now check numeric IP address validity. |
| 708 | Specifying 'numeric' as the new optional HINTS argument makes it | 624 | Specifying 'numeric' as the new optional HINTS argument makes it |
| 709 | check if the passed address is a valid IPv4/IPv6 address (without DNS | 625 | check if the passed address is a valid IPv4/IPv6 address (without DNS |
| @@ -712,23 +628,19 @@ traffic). | |||
| 712 | (network-lookup-address-info "127.1" 'ipv4 'numeric) | 628 | (network-lookup-address-info "127.1" 'ipv4 'numeric) |
| 713 | => ([127 0 0 1 0]) | 629 | => ([127 0 0 1 0]) |
| 714 | 630 | ||
| 715 | +++ | ||
| 716 | ** New command 'find-sibling-file'. | 631 | ** New command 'find-sibling-file'. |
| 717 | This command jumps to a file considered a "sibling file", which is | 632 | This command jumps to a file considered a "sibling file", which is |
| 718 | determined according to the new user option 'find-sibling-rules'. | 633 | determined according to the new user option 'find-sibling-rules'. |
| 719 | 634 | ||
| 720 | +++ | ||
| 721 | ** New user option 'delete-selection-temporary-region'. | 635 | ** New user option 'delete-selection-temporary-region'. |
| 722 | When non-nil, 'delete-selection-mode' will only delete the temporary | 636 | When non-nil, 'delete-selection-mode' will only delete the temporary |
| 723 | regions (usually set by mouse-dragging or shift-selection). | 637 | regions (usually set by mouse-dragging or shift-selection). |
| 724 | 638 | ||
| 725 | +++ | ||
| 726 | ** New user option 'switch-to-prev-buffer-skip-regexp'. | 639 | ** New user option 'switch-to-prev-buffer-skip-regexp'. |
| 727 | This should be a regexp or a list of regexps; buffers whose names | 640 | This should be a regexp or a list of regexps; buffers whose names |
| 728 | match those regexps will be ignored by 'switch-to-prev-buffer' and | 641 | match those regexps will be ignored by 'switch-to-prev-buffer' and |
| 729 | 'switch-to-next-buffer'. | 642 | 'switch-to-next-buffer'. |
| 730 | 643 | ||
| 731 | +++ | ||
| 732 | ** New command 'rename-visited-file'. | 644 | ** New command 'rename-visited-file'. |
| 733 | This command renames the file visited by the current buffer by moving | 645 | This command renames the file visited by the current buffer by moving |
| 734 | it to a new name or location, and also makes the buffer visit this new | 646 | it to a new name or location, and also makes the buffer visit this new |
| @@ -736,19 +648,16 @@ file. | |||
| 736 | 648 | ||
| 737 | ** Menus | 649 | ** Menus |
| 738 | 650 | ||
| 739 | --- | ||
| 740 | *** The entries following the buffers in the "Buffers" menu can now be altered. | 651 | *** The entries following the buffers in the "Buffers" menu can now be altered. |
| 741 | Change the 'menu-bar-buffers-menu-command-entries' variable to alter | 652 | Change the 'menu-bar-buffers-menu-command-entries' variable to alter |
| 742 | the entries that follow the buffer list. | 653 | the entries that follow the buffer list. |
| 743 | 654 | ||
| 744 | --- | ||
| 745 | ** 'delete-process' is now a command. | 655 | ** 'delete-process' is now a command. |
| 746 | When called interactively, it will kill the process running in the | 656 | When called interactively, it will kill the process running in the |
| 747 | current buffer (if any). This can be useful if you have runaway | 657 | current buffer (if any). This can be useful if you have runaway |
| 748 | output in the current buffer (from a process or a network connection), | 658 | output in the current buffer (from a process or a network connection), |
| 749 | and want to stop it. | 659 | and want to stop it. |
| 750 | 660 | ||
| 751 | +++ | ||
| 752 | ** New command 'restart-emacs'. | 661 | ** New command 'restart-emacs'. |
| 753 | This is like 'save-buffers-kill-emacs', but instead of just killing | 662 | This is like 'save-buffers-kill-emacs', but instead of just killing |
| 754 | the current Emacs process at the end, it starts a new Emacs process | 663 | the current Emacs process at the end, it starts a new Emacs process |
| @@ -759,66 +668,54 @@ process. | |||
| 759 | 668 | ||
| 760 | ** Drag and Drop | 669 | ** Drag and Drop |
| 761 | 670 | ||
| 762 | +++ | ||
| 763 | *** New user option 'mouse-drag-mode-line-buffer'. | 671 | *** New user option 'mouse-drag-mode-line-buffer'. |
| 764 | If non-nil, dragging on the buffer name part of the mode-line will | 672 | If non-nil, dragging on the buffer name part of the mode-line will |
| 765 | drag the buffer's associated file to other programs. This option is | 673 | drag the buffer's associated file to other programs. This option is |
| 766 | currently only available on X, Haiku and Nextstep (GNUstep or macOS). | 674 | currently only available on X, Haiku and Nextstep (GNUstep or macOS). |
| 767 | 675 | ||
| 768 | +++ | ||
| 769 | *** New user option 'mouse-drag-and-drop-region-cross-program'. | 676 | *** New user option 'mouse-drag-and-drop-region-cross-program'. |
| 770 | If non-nil, this option allows dragging text in the region from Emacs | 677 | If non-nil, this option allows dragging text in the region from Emacs |
| 771 | to another program. | 678 | to another program. |
| 772 | 679 | ||
| 773 | --- | ||
| 774 | *** New user option 'mouse-drag-and-drop-region-scroll-margin'. | 680 | *** New user option 'mouse-drag-and-drop-region-scroll-margin'. |
| 775 | If non-nil, this option allows scrolling a window while dragging text | 681 | If non-nil, this option allows scrolling a window while dragging text |
| 776 | around without a scroll wheel. | 682 | around without a scroll wheel. |
| 777 | 683 | ||
| 778 | +++ | ||
| 779 | *** The value of 'mouse-drag-copy-region' can now be the symbol 'non-empty'. | 684 | *** The value of 'mouse-drag-copy-region' can now be the symbol 'non-empty'. |
| 780 | This prevents mouse drag gestures from putting empty strings onto the | 685 | This prevents mouse drag gestures from putting empty strings onto the |
| 781 | kill ring. | 686 | kill ring. |
| 782 | 687 | ||
| 783 | +++ | ||
| 784 | *** New user options 'dnd-indicate-insertion-point' and 'dnd-scroll-margin'. | 688 | *** New user options 'dnd-indicate-insertion-point' and 'dnd-scroll-margin'. |
| 785 | These options allow adjusting point and scrolling a window when | 689 | These options allow adjusting point and scrolling a window when |
| 786 | dragging items from another program. | 690 | dragging items from another program. |
| 787 | 691 | ||
| 788 | +++ | ||
| 789 | *** The X Direct Save (XDS) protocol is now supported. | 692 | *** The X Direct Save (XDS) protocol is now supported. |
| 790 | This means dropping an image or file link from programs such as | 693 | This means dropping an image or file link from programs such as |
| 791 | Firefox will no longer create a temporary file in a random directory, | 694 | Firefox will no longer create a temporary file in a random directory, |
| 792 | instead asking you where to save the file first. | 695 | instead asking you where to save the file first. |
| 793 | 696 | ||
| 794 | +++ | ||
| 795 | ** New user option 'record-all-keys'. | 697 | ** New user option 'record-all-keys'. |
| 796 | If non-nil, this option will force recording of all input keys, | 698 | If non-nil, this option will force recording of all input keys, |
| 797 | including those typed in response to passwords prompt (this was the | 699 | including those typed in response to passwords prompt (this was the |
| 798 | previous behavior). The default is nil, which inhibits recording of | 700 | previous behavior). The default is nil, which inhibits recording of |
| 799 | passwords. | 701 | passwords. |
| 800 | 702 | ||
| 801 | +++ | ||
| 802 | ** New function 'command-query'. | 703 | ** New function 'command-query'. |
| 803 | This function makes its argument command prompt the user for | 704 | This function makes its argument command prompt the user for |
| 804 | confirmation before executing. | 705 | confirmation before executing. |
| 805 | 706 | ||
| 806 | +++ | ||
| 807 | ** The 'disabled' property of a command's symbol can now be a list. | 707 | ** The 'disabled' property of a command's symbol can now be a list. |
| 808 | The first element of the list should be the symbol 'query', which will | 708 | The first element of the list should be the symbol 'query', which will |
| 809 | cause the command disabled this way prompt the user with a y/n or a | 709 | cause the command disabled this way prompt the user with a y/n or a |
| 810 | yes/no question before executing. The new function 'command-query' is | 710 | yes/no question before executing. The new function 'command-query' is |
| 811 | a convenient method of making commands disabled in this way. | 711 | a convenient method of making commands disabled in this way. |
| 812 | 712 | ||
| 813 | --- | ||
| 814 | ** 'count-words' will now report buffer totals if given a prefix. | 713 | ** 'count-words' will now report buffer totals if given a prefix. |
| 815 | Without a prefix, it will only report the word count for the narrowed | 714 | Without a prefix, it will only report the word count for the narrowed |
| 816 | part of the buffer. | 715 | part of the buffer. |
| 817 | 716 | ||
| 818 | +++ | ||
| 819 | ** 'count-words' will now report sentence count when used interactively. | 717 | ** 'count-words' will now report sentence count when used interactively. |
| 820 | 718 | ||
| 821 | +++ | ||
| 822 | ** New user option 'set-message-functions'. | 719 | ** New user option 'set-message-functions'. |
| 823 | It allows more flexible control of how echo-area messages are displayed | 720 | It allows more flexible control of how echo-area messages are displayed |
| 824 | by adding functions to this list. The default value is a list of one | 721 | by adding functions to this list. The default value is a list of one |
| @@ -829,29 +726,24 @@ specifying, via 'inhibit-message-regexps', the list of messages whose | |||
| 829 | display should be inhibited; and 'set-multi-message' that accumulates | 726 | display should be inhibited; and 'set-multi-message' that accumulates |
| 830 | recent messages and displays them stacked together. | 727 | recent messages and displays them stacked together. |
| 831 | 728 | ||
| 832 | --- | ||
| 833 | ** New user option 'find-library-include-other-files'. | 729 | ** New user option 'find-library-include-other-files'. |
| 834 | If set to nil, commands like 'find-library' will only include library | 730 | If set to nil, commands like 'find-library' will only include library |
| 835 | files in the completion candidates. The default is t, which preserves | 731 | files in the completion candidates. The default is t, which preserves |
| 836 | previous behavior, whereby non-library files could also be included. | 732 | previous behavior, whereby non-library files could also be included. |
| 837 | 733 | ||
| 838 | +++ | ||
| 839 | ** New command 'sqlite-mode-open-file' for examining an sqlite3 file. | 734 | ** New command 'sqlite-mode-open-file' for examining an sqlite3 file. |
| 840 | This uses the new 'sqlite-mode' which allows listing the tables in a | 735 | This uses the new 'sqlite-mode' which allows listing the tables in a |
| 841 | DB file, and examining and modifying the columns and the contents of | 736 | DB file, and examining and modifying the columns and the contents of |
| 842 | those tables. | 737 | those tables. |
| 843 | 738 | ||
| 844 | --- | ||
| 845 | ** 'write-file' will now copy some file mode bits. | 739 | ** 'write-file' will now copy some file mode bits. |
| 846 | If the current buffer is visiting a file that is executable, the | 740 | If the current buffer is visiting a file that is executable, the |
| 847 | 'C-x C-w' command will now make the new file executable, too. | 741 | 'C-x C-w' command will now make the new file executable, too. |
| 848 | 742 | ||
| 849 | +++ | ||
| 850 | ** New user option 'process-error-pause-time'. | 743 | ** New user option 'process-error-pause-time'. |
| 851 | This determines how long to pause Emacs after a process | 744 | This determines how long to pause Emacs after a process |
| 852 | filter/sentinel error has been handled. | 745 | filter/sentinel error has been handled. |
| 853 | 746 | ||
| 854 | +++ | ||
| 855 | ** New faces for font-lock. | 747 | ** New faces for font-lock. |
| 856 | These faces are primarily meant for use with tree-sitter. They are: | 748 | These faces are primarily meant for use with tree-sitter. They are: |
| 857 | 'font-lock-bracket-face', 'font-lock-delimiter-face', | 749 | 'font-lock-bracket-face', 'font-lock-delimiter-face', |
| @@ -861,40 +753,33 @@ These faces are primarily meant for use with tree-sitter. They are: | |||
| 861 | 'font-lock-property-use-face', 'font-lock-punctuation-face', | 753 | 'font-lock-property-use-face', 'font-lock-punctuation-face', |
| 862 | 'font-lock-regexp-face', and 'font-lock-variable-use-face'. | 754 | 'font-lock-regexp-face', and 'font-lock-variable-use-face'. |
| 863 | 755 | ||
| 864 | +++ | ||
| 865 | ** New face 'variable-pitch-text'. | 756 | ** New face 'variable-pitch-text'. |
| 866 | This face is like 'variable-pitch' (from which it inherits), but is | 757 | This face is like 'variable-pitch' (from which it inherits), but is |
| 867 | slightly larger, which should help with the visual size differences | 758 | slightly larger, which should help with the visual size differences |
| 868 | between the default, non-proportional font and proportional fonts when | 759 | between the default, non-proportional font and proportional fonts when |
| 869 | mixed. | 760 | mixed. |
| 870 | 761 | ||
| 871 | +++ | ||
| 872 | ** New face 'mode-line-active'. | 762 | ** New face 'mode-line-active'. |
| 873 | This inherits from the 'mode-line' face, but is the face actually used | 763 | This inherits from the 'mode-line' face, but is the face actually used |
| 874 | on the mode lines (along with 'mode-line-inactive'). | 764 | on the mode lines (along with 'mode-line-inactive'). |
| 875 | 765 | ||
| 876 | +++ | ||
| 877 | ** New face attribute pseudo-value 'reset'. | 766 | ** New face attribute pseudo-value 'reset'. |
| 878 | This value stands for the value of the corresponding attribute of the | 767 | This value stands for the value of the corresponding attribute of the |
| 879 | 'default' face. It can be used to reset attribute values produced by | 768 | 'default' face. It can be used to reset attribute values produced by |
| 880 | inheriting from other faces. | 769 | inheriting from other faces. |
| 881 | 770 | ||
| 882 | +++ | ||
| 883 | ** New X resource "borderThickness". | 771 | ** New X resource "borderThickness". |
| 884 | This controls the thickness of the external borders of the menu bars | 772 | This controls the thickness of the external borders of the menu bars |
| 885 | and pop-up menus. | 773 | and pop-up menus. |
| 886 | 774 | ||
| 887 | +++ | ||
| 888 | ** New X resource "inputStyle". | 775 | ** New X resource "inputStyle". |
| 889 | This controls the style of the pre-edit and status areas of X input | 776 | This controls the style of the pre-edit and status areas of X input |
| 890 | methods. | 777 | methods. |
| 891 | 778 | ||
| 892 | +++ | ||
| 893 | ** New X resources "highlightForeground" and "highlightBackground". | 779 | ** New X resources "highlightForeground" and "highlightBackground". |
| 894 | Only in the Lucid build, this controls colors used for highlighted | 780 | Only in the Lucid build, this controls colors used for highlighted |
| 895 | menu item widgets. | 781 | menu item widgets. |
| 896 | 782 | ||
| 897 | +++ | ||
| 898 | ** On X, Emacs now tries to synchronize window resize with the window manager. | 783 | ** On X, Emacs now tries to synchronize window resize with the window manager. |
| 899 | This leads to less flicker and empty areas of a frame being displayed | 784 | This leads to less flicker and empty areas of a frame being displayed |
| 900 | when a frame is being resized. Unfortunately, it does not work on | 785 | when a frame is being resized. Unfortunately, it does not work on |
| @@ -902,7 +787,6 @@ some ancient buggy window managers, so if Emacs appears to freeze, but | |||
| 902 | is still responsive to input, you can turn it off by setting the X | 787 | is still responsive to input, you can turn it off by setting the X |
| 903 | resource "synchronizeResize" to "off". | 788 | resource "synchronizeResize" to "off". |
| 904 | 789 | ||
| 905 | +++ | ||
| 906 | ** On X, Emacs can optionally synchronize display with the graphics hardware. | 790 | ** On X, Emacs can optionally synchronize display with the graphics hardware. |
| 907 | When this is enabled by setting the X resource "synchronizeResize" to | 791 | When this is enabled by setting the X resource "synchronizeResize" to |
| 908 | "extended", frame content "tearing" is drastically reduced. This is | 792 | "extended", frame content "tearing" is drastically reduced. This is |
| @@ -914,22 +798,18 @@ https://fishsoup.net/misc/wm-spec-synchronization.html). | |||
| 914 | This behavior can be toggled on and off via the frame parameter | 798 | This behavior can be toggled on and off via the frame parameter |
| 915 | 'use-frame-synchronization'. | 799 | 'use-frame-synchronization'. |
| 916 | 800 | ||
| 917 | +++ | ||
| 918 | ** New frame parameter 'alpha-background' and X resource "alphaBackground". | 801 | ** New frame parameter 'alpha-background' and X resource "alphaBackground". |
| 919 | This controls the opacity of the text background when running on a | 802 | This controls the opacity of the text background when running on a |
| 920 | composited display. | 803 | composited display. |
| 921 | 804 | ||
| 922 | +++ | ||
| 923 | ** New frame parameter 'shaded'. | 805 | ** New frame parameter 'shaded'. |
| 924 | With window managers which support this, it controls whether or not a | 806 | With window managers which support this, it controls whether or not a |
| 925 | frame's contents will be hidden, leaving only the title bar on display. | 807 | frame's contents will be hidden, leaving only the title bar on display. |
| 926 | 808 | ||
| 927 | --- | ||
| 928 | ** New user option 'x-gtk-use-native-input'. | 809 | ** New user option 'x-gtk-use-native-input'. |
| 929 | This controls whether or not GTK input methods are used by Emacs, | 810 | This controls whether or not GTK input methods are used by Emacs, |
| 930 | instead of XIM input methods. Defaults to nil. | 811 | instead of XIM input methods. Defaults to nil. |
| 931 | 812 | ||
| 932 | +++ | ||
| 933 | ** New user option 'use-system-tooltips'. | 813 | ** New user option 'use-system-tooltips'. |
| 934 | This controls whether to use the toolkit tooltips, or Emacs's own | 814 | This controls whether to use the toolkit tooltips, or Emacs's own |
| 935 | native implementation of tooltips as small frames. This option is | 815 | native implementation of tooltips as small frames. This option is |
| @@ -938,13 +818,11 @@ support, and defaults to t, which makes Emacs use the toolkit | |||
| 938 | tooltips. The existing GTK-specific option | 818 | tooltips. The existing GTK-specific option |
| 939 | 'x-gtk-use-system-tooltips' is now an alias of this new option. | 819 | 'x-gtk-use-system-tooltips' is now an alias of this new option. |
| 940 | 820 | ||
| 941 | +++ | ||
| 942 | ** Non-native tooltips are now supported on Nextstep. | 821 | ** Non-native tooltips are now supported on Nextstep. |
| 943 | This means Emacs built with GNUstep or built on macOS is now able to | 822 | This means Emacs built with GNUstep or built on macOS is now able to |
| 944 | display different faces and images inside tooltips when the | 823 | display different faces and images inside tooltips when the |
| 945 | 'use-system-tooltips' user option is nil. | 824 | 'use-system-tooltips' user option is nil. |
| 946 | 825 | ||
| 947 | --- | ||
| 948 | ** New minor mode 'pixel-scroll-precision-mode'. | 826 | ** New minor mode 'pixel-scroll-precision-mode'. |
| 949 | When enabled, and if your mouse supports it, you can scroll the | 827 | When enabled, and if your mouse supports it, you can scroll the |
| 950 | display up or down at pixel resolution, according to what your mouse | 828 | display up or down at pixel resolution, according to what your mouse |
| @@ -954,20 +832,17 @@ scrolls. | |||
| 954 | 832 | ||
| 955 | ** Terminal Emacs | 833 | ** Terminal Emacs |
| 956 | 834 | ||
| 957 | --- | ||
| 958 | *** Emacs will now use 24-bit colors on terminals that support "Tc" capability. | 835 | *** Emacs will now use 24-bit colors on terminals that support "Tc" capability. |
| 959 | This is in addition to previously-supported ways of discovering 24-bit | 836 | This is in addition to previously-supported ways of discovering 24-bit |
| 960 | color support: either via the "RGB" or "setf24" capabilities, or if | 837 | color support: either via the "RGB" or "setf24" capabilities, or if |
| 961 | the 'COLORTERM' environment variable is set to the value "truecolor". | 838 | the 'COLORTERM' environment variable is set to the value "truecolor". |
| 962 | 839 | ||
| 963 | --- | ||
| 964 | *** Select active regions with xterm selection support. | 840 | *** Select active regions with xterm selection support. |
| 965 | On terminals with xterm "setSelection" support, the active region may be | 841 | On terminals with xterm "setSelection" support, the active region may be |
| 966 | saved to the X primary selection, following the | 842 | saved to the X primary selection, following the |
| 967 | 'select-active-regions' variable. This support is enabled when | 843 | 'select-active-regions' variable. This support is enabled when |
| 968 | 'tty-select-active-regions' is non-nil. | 844 | 'tty-select-active-regions' is non-nil. |
| 969 | 845 | ||
| 970 | --- | ||
| 971 | *** New command to set up display of unsupported characters. | 846 | *** New command to set up display of unsupported characters. |
| 972 | The new command 'standard-display-by-replacement-char' produces Lisp | 847 | The new command 'standard-display-by-replacement-char' produces Lisp |
| 973 | code that sets up the 'standard-display-table' to use a replacement | 848 | code that sets up the 'standard-display-table' to use a replacement |
| @@ -977,7 +852,6 @@ This feature is most useful with the Linux console and similar | |||
| 977 | terminals, where Emacs has a reliable way of determining which | 852 | terminals, where Emacs has a reliable way of determining which |
| 978 | characters have glyphs in the font loaded into the terminal's memory. | 853 | characters have glyphs in the font loaded into the terminal's memory. |
| 979 | 854 | ||
| 980 | --- | ||
| 981 | *** New functions to set terminal output buffer size. | 855 | *** New functions to set terminal output buffer size. |
| 982 | The new functions 'tty--set-output-buffer-size' and | 856 | The new functions 'tty--set-output-buffer-size' and |
| 983 | 'tty--output-buffer-size' allow setting and retrieving the output | 857 | 'tty--output-buffer-size' allow setting and retrieving the output |
| @@ -989,89 +863,72 @@ at the end of display update. | |||
| 989 | 863 | ||
| 990 | ** ERT | 864 | ** ERT |
| 991 | 865 | ||
| 992 | +++ | ||
| 993 | *** New ERT variables 'ert-batch-print-length' and 'ert-batch-print-level'. | 866 | *** New ERT variables 'ert-batch-print-length' and 'ert-batch-print-level'. |
| 994 | These variables will override 'print-length' and 'print-level' when | 867 | These variables will override 'print-length' and 'print-level' when |
| 995 | printing Lisp values in ERT batch test results. | 868 | printing Lisp values in ERT batch test results. |
| 996 | 869 | ||
| 997 | --- | ||
| 998 | *** Redefining an ERT test in batch mode now signals an error. | 870 | *** Redefining an ERT test in batch mode now signals an error. |
| 999 | Executing 'ert-deftest' with the same name as an existing test causes | 871 | Executing 'ert-deftest' with the same name as an existing test causes |
| 1000 | the previous definition to be discarded, which was probably not | 872 | the previous definition to be discarded, which was probably not |
| 1001 | intended when this occurs in batch mode. To remedy the error, rename | 873 | intended when this occurs in batch mode. To remedy the error, rename |
| 1002 | tests so that they all have unique names. | 874 | tests so that they all have unique names. |
| 1003 | 875 | ||
| 1004 | +++ | ||
| 1005 | *** ERT can generate JUnit test reports. | 876 | *** ERT can generate JUnit test reports. |
| 1006 | When environment variable 'EMACS_TEST_JUNIT_REPORT' is set, ERT | 877 | When environment variable 'EMACS_TEST_JUNIT_REPORT' is set, ERT |
| 1007 | generates a JUnit test report under this file name. This is useful | 878 | generates a JUnit test report under this file name. This is useful |
| 1008 | for Emacs integration into CI/CD test environments. | 879 | for Emacs integration into CI/CD test environments. |
| 1009 | 880 | ||
| 1010 | --- | ||
| 1011 | *** Unbound test symbols now signal an 'ert-test-unbound' error. | 881 | *** Unbound test symbols now signal an 'ert-test-unbound' error. |
| 1012 | This affects the 'ert-select-tests' function and its callers. | 882 | This affects the 'ert-select-tests' function and its callers. |
| 1013 | 883 | ||
| 1014 | ** Emoji | 884 | ** Emoji |
| 1015 | 885 | ||
| 1016 | +++ | ||
| 1017 | *** Emacs now has several new methods for inserting Emoji. | 886 | *** Emacs now has several new methods for inserting Emoji. |
| 1018 | The Emoji commands are under the new 'C-x 8 e' prefix. | 887 | The Emoji commands are under the new 'C-x 8 e' prefix. |
| 1019 | 888 | ||
| 1020 | +++ | ||
| 1021 | *** New command 'emoji-insert' (bound to 'C-x 8 e e' and 'C-x 8 e i'). | 889 | *** New command 'emoji-insert' (bound to 'C-x 8 e e' and 'C-x 8 e i'). |
| 1022 | This command guides you through various Emoji categories and | 890 | This command guides you through various Emoji categories and |
| 1023 | combinations in a graphical menu system. | 891 | combinations in a graphical menu system. |
| 1024 | 892 | ||
| 1025 | +++ | ||
| 1026 | *** New command 'emoji-search' (bound to 'C-x 8 e s'). | 893 | *** New command 'emoji-search' (bound to 'C-x 8 e s'). |
| 1027 | This command lets you search for and insert an Emoji based on names. | 894 | This command lets you search for and insert an Emoji based on names. |
| 1028 | 895 | ||
| 1029 | +++ | ||
| 1030 | *** New command 'emoji-list' (bound to 'C-x 8 e l'). | 896 | *** New command 'emoji-list' (bound to 'C-x 8 e l'). |
| 1031 | This command lists all Emoji (categorized by themes) in a special | 897 | This command lists all Emoji (categorized by themes) in a special |
| 1032 | buffer and lets you choose one of them to insert. | 898 | buffer and lets you choose one of them to insert. |
| 1033 | 899 | ||
| 1034 | --- | ||
| 1035 | *** New command 'emoji-recent' (bound to 'C-x 8 e r'). | 900 | *** New command 'emoji-recent' (bound to 'C-x 8 e r'). |
| 1036 | This command lets you choose among the Emoji you have recently | 901 | This command lets you choose among the Emoji you have recently |
| 1037 | inserted and insert it. | 902 | inserted and insert it. |
| 1038 | 903 | ||
| 1039 | +++ | ||
| 1040 | *** New command 'emoji-describe' (bound to 'C-x 8 e d'). | 904 | *** New command 'emoji-describe' (bound to 'C-x 8 e d'). |
| 1041 | This command will tell you the name of the Emoji at point. (It also | 905 | This command will tell you the name of the Emoji at point. (It also |
| 1042 | works for non-Emoji characters.) | 906 | works for non-Emoji characters.) |
| 1043 | 907 | ||
| 1044 | --- | ||
| 1045 | *** New commands 'emoji-zoom-increase' and 'emoji-zoom-decrease'. | 908 | *** New commands 'emoji-zoom-increase' and 'emoji-zoom-decrease'. |
| 1046 | These are bound to 'C-x 8 e +' and 'C-x 8 e -', respectively. They | 909 | These are bound to 'C-x 8 e +' and 'C-x 8 e -', respectively. They |
| 1047 | can be used on any character, but are mainly useful for Emoji. | 910 | can be used on any character, but are mainly useful for Emoji. |
| 1048 | 911 | ||
| 1049 | --- | ||
| 1050 | *** New command 'emoji-zoom-reset'. | 912 | *** New command 'emoji-zoom-reset'. |
| 1051 | This is bound to 'C-x 8 e 0', and undoes any size changes performed by | 913 | This is bound to 'C-x 8 e 0', and undoes any size changes performed by |
| 1052 | 'emoji-zoom-increase' and 'emoji-zoom-decrease'. | 914 | 'emoji-zoom-increase' and 'emoji-zoom-decrease'. |
| 1053 | 915 | ||
| 1054 | --- | ||
| 1055 | *** New input method 'emoji'. | 916 | *** New input method 'emoji'. |
| 1056 | This allows you to enter Emoji using short strings, eg ':face_palm:' | 917 | This allows you to enter Emoji using short strings, eg ':face_palm:' |
| 1057 | or ':scream:'. | 918 | or ':scream:'. |
| 1058 | 919 | ||
| 1059 | ** Help | 920 | ** Help |
| 1060 | 921 | ||
| 1061 | --- | ||
| 1062 | *** Variable values displayed by 'C-h v' in "*Help*" are now fontified. | 922 | *** Variable values displayed by 'C-h v' in "*Help*" are now fontified. |
| 1063 | 923 | ||
| 1064 | +++ | ||
| 1065 | *** New user option 'help-clean-buttons'. | 924 | *** New user option 'help-clean-buttons'. |
| 1066 | If non-nil, link buttons in "*Help*" buffers will have any surrounding | 925 | If non-nil, link buttons in "*Help*" buffers will have any surrounding |
| 1067 | quotes removed. | 926 | quotes removed. |
| 1068 | 927 | ||
| 1069 | --- | ||
| 1070 | *** 'M-x apropos-variable' output now includes values of variables. | 928 | *** 'M-x apropos-variable' output now includes values of variables. |
| 1071 | Such an apropos buffer is more easily viewed with outlining after | 929 | Such an apropos buffer is more easily viewed with outlining after |
| 1072 | enabling 'outline-minor-mode' in 'apropos-mode'. | 930 | enabling 'outline-minor-mode' in 'apropos-mode'. |
| 1073 | 931 | ||
| 1074 | +++ | ||
| 1075 | *** New docstring syntax to indicate that symbols shouldn't be links. | 932 | *** New docstring syntax to indicate that symbols shouldn't be links. |
| 1076 | When displaying docstrings in "*Help*" buffers, strings that are | 933 | When displaying docstrings in "*Help*" buffers, strings that are |
| 1077 | "`like-this'" are made into links (if they point to a bound | 934 | "`like-this'" are made into links (if they point to a bound |
| @@ -1080,12 +937,10 @@ about values that are symbols that happen to have the same names as | |||
| 1080 | functions/variables. To inhibit this buttonification, use the new | 937 | functions/variables. To inhibit this buttonification, use the new |
| 1081 | "\\+`like-this'" syntax. | 938 | "\\+`like-this'" syntax. |
| 1082 | 939 | ||
| 1083 | +++ | ||
| 1084 | *** New user option 'help-window-keep-selected'. | 940 | *** New user option 'help-window-keep-selected'. |
| 1085 | If non-nil, commands to show the info manual and the source will reuse | 941 | If non-nil, commands to show the info manual and the source will reuse |
| 1086 | the same window in which the "*Help*" buffer is shown. | 942 | the same window in which the "*Help*" buffer is shown. |
| 1087 | 943 | ||
| 1088 | --- | ||
| 1089 | *** Commands like 'C-h f' have changed how they describe menu bindings. | 944 | *** Commands like 'C-h f' have changed how they describe menu bindings. |
| 1090 | For instance, previously a command might be described as having the | 945 | For instance, previously a command might be described as having the |
| 1091 | following bindings: | 946 | following bindings: |
| @@ -1097,56 +952,45 @@ This has been changed to: | |||
| 1097 | It is bound to <open> and C-x C-f. | 952 | It is bound to <open> and C-x C-f. |
| 1098 | It can also be invoked from the menu: File → Visit New File... | 953 | It can also be invoked from the menu: File → Visit New File... |
| 1099 | 954 | ||
| 1100 | +++ | ||
| 1101 | *** The 'C-h .' command now accepts a prefix argument. | 955 | *** The 'C-h .' command now accepts a prefix argument. |
| 1102 | 'C-u C-h .' would previously inhibit displaying a warning message if | 956 | 'C-u C-h .' would previously inhibit displaying a warning message if |
| 1103 | there was no local help at point. This has been changed to call | 957 | there was no local help at point. This has been changed to call |
| 1104 | 'button-describe'/'widget-describe' and display button/widget help | 958 | 'button-describe'/'widget-describe' and display button/widget help |
| 1105 | instead. | 959 | instead. |
| 1106 | 960 | ||
| 1107 | --- | ||
| 1108 | *** New user option 'help-enable-variable-value-editing'. | 961 | *** New user option 'help-enable-variable-value-editing'. |
| 1109 | If enabled, 'e' on a value in "*Help*" will pop you to a new buffer | 962 | If enabled, 'e' on a value in "*Help*" will pop you to a new buffer |
| 1110 | where you can edit the value. This is not enabled by default, because | 963 | where you can edit the value. This is not enabled by default, because |
| 1111 | it is easy to make an edit that yields an invalid result. | 964 | it is easy to make an edit that yields an invalid result. |
| 1112 | 965 | ||
| 1113 | --- | ||
| 1114 | *** 'C-h b' uses outlining by default. | 966 | *** 'C-h b' uses outlining by default. |
| 1115 | Set 'describe-bindings-outline' to nil to get back the old behavior. | 967 | Set 'describe-bindings-outline' to nil to get back the old behavior. |
| 1116 | 968 | ||
| 1117 | --- | ||
| 1118 | *** Jumping to function/variable source now saves mark before moving point. | 969 | *** Jumping to function/variable source now saves mark before moving point. |
| 1119 | Jumping to source from a "*Help*" buffer moves point when the source | 970 | Jumping to source from a "*Help*" buffer moves point when the source |
| 1120 | buffer is already open. Now, the old point is pushed onto mark ring. | 971 | buffer is already open. Now, the old point is pushed onto mark ring. |
| 1121 | 972 | ||
| 1122 | +++ | ||
| 1123 | *** New key bindings in "*Help*" buffers: 'n' and 'p'. | 973 | *** New key bindings in "*Help*" buffers: 'n' and 'p'. |
| 1124 | These will take you (respectively) to the next and previous "page". | 974 | These will take you (respectively) to the next and previous "page". |
| 1125 | 975 | ||
| 1126 | --- | ||
| 1127 | *** 'describe-char' now also outputs the name of Emoji sequences. | 976 | *** 'describe-char' now also outputs the name of Emoji sequences. |
| 1128 | 977 | ||
| 1129 | +++ | ||
| 1130 | *** New key binding in "*Help*" buffer: 'I'. | 978 | *** New key binding in "*Help*" buffer: 'I'. |
| 1131 | This will take you to the Emacs Lisp manual entry for the item | 979 | This will take you to the Emacs Lisp manual entry for the item |
| 1132 | displayed, if any. | 980 | displayed, if any. |
| 1133 | 981 | ||
| 1134 | --- | ||
| 1135 | *** The 'C-h m' ('describe-mode') "*Help*" buffer has been reformatted. | 982 | *** The 'C-h m' ('describe-mode') "*Help*" buffer has been reformatted. |
| 1136 | It now only includes local minor modes at the start, and the global | 983 | It now only includes local minor modes at the start, and the global |
| 1137 | minor modes are listed after the major mode. | 984 | minor modes are listed after the major mode. |
| 1138 | 985 | ||
| 1139 | +++ | ||
| 1140 | *** The user option 'help-window-select' now affects apropos commands. | 986 | *** The user option 'help-window-select' now affects apropos commands. |
| 1141 | The apropos commands will now select the apropos window if | 987 | The apropos commands will now select the apropos window if |
| 1142 | 'help-window-select' is non-nil. | 988 | 'help-window-select' is non-nil. |
| 1143 | 989 | ||
| 1144 | --- | ||
| 1145 | *** 'describe-keymap' now considers the symbol at point. | 990 | *** 'describe-keymap' now considers the symbol at point. |
| 1146 | If the symbol at point is a keymap, 'describe-keymap' suggests it as | 991 | If the symbol at point is a keymap, 'describe-keymap' suggests it as |
| 1147 | the default candidate. | 992 | the default candidate. |
| 1148 | 993 | ||
| 1149 | --- | ||
| 1150 | *** New command 'help-quick' displays an overview of common commands. | 994 | *** New command 'help-quick' displays an overview of common commands. |
| 1151 | The command pops up a buffer at the bottom of the screen with a few | 995 | The command pops up a buffer at the bottom of the screen with a few |
| 1152 | helpful commands for various tasks. You can toggle the display using | 996 | helpful commands for various tasks. You can toggle the display using |
| @@ -1157,7 +1001,6 @@ See the file "etc/ORG-NEWS" for user-visible changes in Org. | |||
| 1157 | 1001 | ||
| 1158 | ** Outline Mode | 1002 | ** Outline Mode |
| 1159 | 1003 | ||
| 1160 | +++ | ||
| 1161 | *** Support for customizing the default visibility state of headings. | 1004 | *** Support for customizing the default visibility state of headings. |
| 1162 | Customize the user option 'outline-default-state' to define what | 1005 | Customize the user option 'outline-default-state' to define what |
| 1163 | headings will be visible initially, after Outline mode is turned on. | 1006 | headings will be visible initially, after Outline mode is turned on. |
| @@ -1169,7 +1012,6 @@ subtree has long lines or is itself too long. | |||
| 1169 | 1012 | ||
| 1170 | ** Outline Minor Mode | 1013 | ** Outline Minor Mode |
| 1171 | 1014 | ||
| 1172 | +++ | ||
| 1173 | *** New user option 'outline-minor-mode-use-buttons'. | 1015 | *** New user option 'outline-minor-mode-use-buttons'. |
| 1174 | If non-nil, Outline Minor Mode will use buttons to hide/show outlines | 1016 | If non-nil, Outline Minor Mode will use buttons to hide/show outlines |
| 1175 | in addition to the ellipsis. The default is nil, but in 'help-mode' | 1017 | in addition to the ellipsis. The default is nil, but in 'help-mode' |
| @@ -1178,7 +1020,6 @@ buffer, and you can use 'RET' to cycle outline visibility. When | |||
| 1178 | the value is 'in-margins', Outline Minor Mode uses the window margins | 1020 | the value is 'in-margins', Outline Minor Mode uses the window margins |
| 1179 | for buttons that hide/show outlines. | 1021 | for buttons that hide/show outlines. |
| 1180 | 1022 | ||
| 1181 | +++ | ||
| 1182 | *** Buttons and headings now have their own keymaps. | 1023 | *** Buttons and headings now have their own keymaps. |
| 1183 | 'outline-button-icon-map', 'outline-overlay-button-map', and | 1024 | 'outline-button-icon-map', 'outline-overlay-button-map', and |
| 1184 | 'outline-inserted-button-map' are now available as defined keymaps | 1025 | 'outline-inserted-button-map' are now available as defined keymaps |
| @@ -1186,19 +1027,16 @@ instead of being anonymous keymaps. | |||
| 1186 | 1027 | ||
| 1187 | ** Windows | 1028 | ** Windows |
| 1188 | 1029 | ||
| 1189 | +++ | ||
| 1190 | *** New commands 'split-root-window-below' and 'split-root-window-right'. | 1030 | *** New commands 'split-root-window-below' and 'split-root-window-right'. |
| 1191 | These commands split the root window in two, and are bound to 'C-x w 2' | 1031 | These commands split the root window in two, and are bound to 'C-x w 2' |
| 1192 | and 'C-x w 3', respectively. A number of other useful window-related | 1032 | and 'C-x w 3', respectively. A number of other useful window-related |
| 1193 | commands are now available with key sequences that start with the | 1033 | commands are now available with key sequences that start with the |
| 1194 | 'C-x w' prefix. | 1034 | 'C-x w' prefix. |
| 1195 | 1035 | ||
| 1196 | +++ | ||
| 1197 | *** New display action 'display-buffer-full-frame'. | 1036 | *** New display action 'display-buffer-full-frame'. |
| 1198 | This action removes other windows from the frame when displaying a | 1037 | This action removes other windows from the frame when displaying a |
| 1199 | buffer on that frame. | 1038 | buffer on that frame. |
| 1200 | 1039 | ||
| 1201 | +++ | ||
| 1202 | *** 'display-buffer' now can set up the body size of the chosen window. | 1040 | *** 'display-buffer' now can set up the body size of the chosen window. |
| 1203 | For example, a 'display-buffer-alist' entry of | 1041 | For example, a 'display-buffer-alist' entry of |
| 1204 | 1042 | ||
| @@ -1207,35 +1045,29 @@ For example, a 'display-buffer-alist' entry of | |||
| 1207 | will make the body of the chosen window 40 columns wide. For the | 1045 | will make the body of the chosen window 40 columns wide. For the |
| 1208 | height use 'window-height' and 'body-lines', respectively. | 1046 | height use 'window-height' and 'body-lines', respectively. |
| 1209 | 1047 | ||
| 1210 | +++ | ||
| 1211 | *** 'display-buffer' provides more options for using an existing window. | 1048 | *** 'display-buffer' provides more options for using an existing window. |
| 1212 | The display buffer action functions 'display-buffer-use-some-window' and | 1049 | The display buffer action functions 'display-buffer-use-some-window' and |
| 1213 | 'display-buffer-use-least-recent-window' now honor the action alist | 1050 | 'display-buffer-use-least-recent-window' now honor the action alist |
| 1214 | entry 'window-min-height' as well as the entries listed below to make | 1051 | entry 'window-min-height' as well as the entries listed below to make |
| 1215 | the display of several buffers in a row more amenable. | 1052 | the display of several buffers in a row more amenable. |
| 1216 | 1053 | ||
| 1217 | +++ | ||
| 1218 | *** New buffer display action alist entry 'lru-frames'. | 1054 | *** New buffer display action alist entry 'lru-frames'. |
| 1219 | This allows specifying which frames 'display-buffer' should consider | 1055 | This allows specifying which frames 'display-buffer' should consider |
| 1220 | when using a window that shows another buffer. It is interpreted as | 1056 | when using a window that shows another buffer. It is interpreted as |
| 1221 | per the ALL-FRAMES argument of 'get-lru-window'. | 1057 | per the ALL-FRAMES argument of 'get-lru-window'. |
| 1222 | 1058 | ||
| 1223 | +++ | ||
| 1224 | *** New buffer display action alist entry 'lru-time'. | 1059 | *** New buffer display action alist entry 'lru-time'. |
| 1225 | 'display-buffer' will ignore windows with a use time higher than this | 1060 | 'display-buffer' will ignore windows with a use time higher than this |
| 1226 | when using a window that shows another buffer. | 1061 | when using a window that shows another buffer. |
| 1227 | 1062 | ||
| 1228 | +++ | ||
| 1229 | *** New buffer display action alist entry 'bump-use-time'. | 1063 | *** New buffer display action alist entry 'bump-use-time'. |
| 1230 | This has 'display-buffer' bump the use time of any window it returns, | 1064 | This has 'display-buffer' bump the use time of any window it returns, |
| 1231 | making it a less likely candidate for displaying another buffer. | 1065 | making it a less likely candidate for displaying another buffer. |
| 1232 | 1066 | ||
| 1233 | +++ | ||
| 1234 | *** New buffer display action alist entry 'window-min-width'. | 1067 | *** New buffer display action alist entry 'window-min-width'. |
| 1235 | This allows specifying a preferred minimum width of the window used to | 1068 | This allows specifying a preferred minimum width of the window used to |
| 1236 | display a buffer. | 1069 | display a buffer. |
| 1237 | 1070 | ||
| 1238 | --- | ||
| 1239 | *** You can specify on which window 'scroll-other-window' operates. | 1071 | *** You can specify on which window 'scroll-other-window' operates. |
| 1240 | This is controlled by the new 'other-window-scroll-default' variable, | 1072 | This is controlled by the new 'other-window-scroll-default' variable, |
| 1241 | which should be set to a function that returns a window. When this | 1073 | which should be set to a function that returns a window. When this |
| @@ -1243,7 +1075,6 @@ variable is nil, 'next-window' is used. | |||
| 1243 | 1075 | ||
| 1244 | ** Frames | 1076 | ** Frames |
| 1245 | 1077 | ||
| 1246 | +++ | ||
| 1247 | *** Deleted frames can now be undeleted. | 1078 | *** Deleted frames can now be undeleted. |
| 1248 | The 16 most recently deleted frames can be undeleted with 'C-x 5 u' when | 1079 | The 16 most recently deleted frames can be undeleted with 'C-x 5 u' when |
| 1249 | 'undelete-frame-mode' is enabled. Without a prefix argument, undelete | 1080 | 'undelete-frame-mode' is enabled. Without a prefix argument, undelete |
| @@ -1251,7 +1082,6 @@ the most recently deleted frame. With a numerical prefix argument | |||
| 1251 | between 1 and 16, where 1 is the most recently deleted frame, undelete | 1082 | between 1 and 16, where 1 is the most recently deleted frame, undelete |
| 1252 | the corresponding deleted frame. | 1083 | the corresponding deleted frame. |
| 1253 | 1084 | ||
| 1254 | +++ | ||
| 1255 | *** The variable 'icon-title-format' can now have the value t. | 1085 | *** The variable 'icon-title-format' can now have the value t. |
| 1256 | That value means to use 'frame-title-format' for iconified frames. | 1086 | That value means to use 'frame-title-format' for iconified frames. |
| 1257 | This is useful with some window managers and desktop environments | 1087 | This is useful with some window managers and desktop environments |
| @@ -1261,24 +1091,20 @@ same no matter if the frame is iconified or not. | |||
| 1261 | 1091 | ||
| 1262 | ** Tab Bars and Tab Lines | 1092 | ** Tab Bars and Tab Lines |
| 1263 | 1093 | ||
| 1264 | --- | ||
| 1265 | *** New user option 'tab-bar-auto-width' to automatically determine tab width. | 1094 | *** New user option 'tab-bar-auto-width' to automatically determine tab width. |
| 1266 | This option is non-nil by default, which resizes tab-bar tabs so that | 1095 | This option is non-nil by default, which resizes tab-bar tabs so that |
| 1267 | their width is evenly distributed across the tab bar. A companion | 1096 | their width is evenly distributed across the tab bar. A companion |
| 1268 | option 'tab-bar-auto-width-max' controls the maximum width of a tab | 1097 | option 'tab-bar-auto-width-max' controls the maximum width of a tab |
| 1269 | before its name on display is truncated. | 1098 | before its name on display is truncated. |
| 1270 | 1099 | ||
| 1271 | --- | ||
| 1272 | *** 'C-x t RET' creates a new tab when the provided tab name doesn't exist. | 1100 | *** 'C-x t RET' creates a new tab when the provided tab name doesn't exist. |
| 1273 | It prompts for the name of a tab and switches to it, creating a new | 1101 | It prompts for the name of a tab and switches to it, creating a new |
| 1274 | tab if no tab exists by that name. | 1102 | tab if no tab exists by that name. |
| 1275 | 1103 | ||
| 1276 | --- | ||
| 1277 | *** New keymap 'tab-bar-history-mode-map'. | 1104 | *** New keymap 'tab-bar-history-mode-map'. |
| 1278 | By default, it contains 'C-c <left>' and 'C-c <right>' to browse | 1105 | By default, it contains 'C-c <left>' and 'C-c <right>' to browse |
| 1279 | the history of tab window configurations back and forward. | 1106 | the history of tab window configurations back and forward. |
| 1280 | 1107 | ||
| 1281 | --- | ||
| 1282 | ** Better detection of text suspiciously reordered on display. | 1108 | ** Better detection of text suspiciously reordered on display. |
| 1283 | The function 'bidi-find-overridden-directionality' has been extended | 1109 | The function 'bidi-find-overridden-directionality' has been extended |
| 1284 | to detect reordering effects produced by embeddings and isolates | 1110 | to detect reordering effects produced by embeddings and isolates |
| @@ -1289,17 +1115,14 @@ suspicious and could be malicious. | |||
| 1289 | 1115 | ||
| 1290 | ** Emacs Server and Client | 1116 | ** Emacs Server and Client |
| 1291 | 1117 | ||
| 1292 | +++ | ||
| 1293 | *** New command-line option '-r'/'--reuse-frame' for emacsclient. | 1118 | *** New command-line option '-r'/'--reuse-frame' for emacsclient. |
| 1294 | With this command-line option, Emacs reuses an existing graphical client | 1119 | With this command-line option, Emacs reuses an existing graphical client |
| 1295 | frame if one exists; otherwise it creates a new frame. | 1120 | frame if one exists; otherwise it creates a new frame. |
| 1296 | 1121 | ||
| 1297 | +++ | ||
| 1298 | *** New command-line option '-w N'/'--timeout=N' for emacsclient. | 1122 | *** New command-line option '-w N'/'--timeout=N' for emacsclient. |
| 1299 | With this command-line option, emacsclient will exit if Emacs does not | 1123 | With this command-line option, emacsclient will exit if Emacs does not |
| 1300 | respond within N seconds. The default is to wait forever. | 1124 | respond within N seconds. The default is to wait forever. |
| 1301 | 1125 | ||
| 1302 | +++ | ||
| 1303 | *** 'server-stop-automatically' can be used to automatically stop the server. | 1126 | *** 'server-stop-automatically' can be used to automatically stop the server. |
| 1304 | The Emacs server will be automatically stopped when certain conditions | 1127 | The Emacs server will be automatically stopped when certain conditions |
| 1305 | are met. The conditions are determined by the argument to | 1128 | are met. The conditions are determined by the argument to |
| @@ -1308,17 +1131,14 @@ are met. The conditions are determined by the argument to | |||
| 1308 | 1131 | ||
| 1309 | ** Rcirc | 1132 | ** Rcirc |
| 1310 | 1133 | ||
| 1311 | +++ | ||
| 1312 | *** New command 'rcirc-when'. | 1134 | *** New command 'rcirc-when'. |
| 1313 | This shows the reception time of the message at point (if available). | 1135 | This shows the reception time of the message at point (if available). |
| 1314 | 1136 | ||
| 1315 | +++ | ||
| 1316 | *** New user option 'rcirc-cycle-completion-flag'. | 1137 | *** New user option 'rcirc-cycle-completion-flag'. |
| 1317 | Rcirc now uses the default 'completion-at-point' mechanism. The | 1138 | Rcirc now uses the default 'completion-at-point' mechanism. The |
| 1318 | conventional IRC behavior of completing by cycling through the | 1139 | conventional IRC behavior of completing by cycling through the |
| 1319 | available options can be restored by enabling this option. | 1140 | available options can be restored by enabling this option. |
| 1320 | 1141 | ||
| 1321 | +++ | ||
| 1322 | *** New user option 'rcirc-bridge-bot-alist'. | 1142 | *** New user option 'rcirc-bridge-bot-alist'. |
| 1323 | If you are in a channel where a bot is responsible for bridging | 1143 | If you are in a channel where a bot is responsible for bridging |
| 1324 | between networks, you can use this variable to make these messages | 1144 | between networks, you can use this variable to make these messages |
| @@ -1334,7 +1154,6 @@ to be reformatted into | |||
| 1334 | 1154 | ||
| 1335 | 09:47 <john> I am not on IRC | 1155 | 09:47 <john> I am not on IRC |
| 1336 | 1156 | ||
| 1337 | --- | ||
| 1338 | *** New formatting commands. | 1157 | *** New formatting commands. |
| 1339 | Most IRC clients (including rcirc) support basic formatting using | 1158 | Most IRC clients (including rcirc) support basic formatting using |
| 1340 | control codes. Under the 'C-c C-f' prefix a few commands have been | 1159 | control codes. Under the 'C-c C-f' prefix a few commands have been |
| @@ -1344,15 +1163,12 @@ to be highlighted in bold. | |||
| 1344 | 1163 | ||
| 1345 | ** Imenu | 1164 | ** Imenu |
| 1346 | 1165 | ||
| 1347 | +++ | ||
| 1348 | *** 'imenu' is now bound to 'M-g i' globally. | 1166 | *** 'imenu' is now bound to 'M-g i' globally. |
| 1349 | 1167 | ||
| 1350 | --- | ||
| 1351 | *** New function 'imenu-flush-cache'. | 1168 | *** New function 'imenu-flush-cache'. |
| 1352 | Use it if you want Imenu to forget the buffer's index alist and | 1169 | Use it if you want Imenu to forget the buffer's index alist and |
| 1353 | recreate it anew next time 'imenu' is invoked. | 1170 | recreate it anew next time 'imenu' is invoked. |
| 1354 | 1171 | ||
| 1355 | --- | ||
| 1356 | ** Emacs is now capable of abandoning a window's redisplay that takes too long. | 1172 | ** Emacs is now capable of abandoning a window's redisplay that takes too long. |
| 1357 | This is controlled by the new variable 'max-redisplay-ticks'. If that | 1173 | This is controlled by the new variable 'max-redisplay-ticks'. If that |
| 1358 | variable is set to a non-zero value, display of a window will be | 1174 | variable is set to a non-zero value, display of a window will be |
| @@ -1366,19 +1182,16 @@ lines.) | |||
| 1366 | 1182 | ||
| 1367 | * Editing Changes in Emacs 29.1 | 1183 | * Editing Changes in Emacs 29.1 |
| 1368 | 1184 | ||
| 1369 | +++ | ||
| 1370 | ** 'M-SPC' is now bound to 'cycle-spacing'. | 1185 | ** 'M-SPC' is now bound to 'cycle-spacing'. |
| 1371 | Formerly it invoked 'just-one-space'. The actions performed by | 1186 | Formerly it invoked 'just-one-space'. The actions performed by |
| 1372 | 'cycle-spacing' and their order can now be customized via the user | 1187 | 'cycle-spacing' and their order can now be customized via the user |
| 1373 | option 'cycle-spacing-actions'. | 1188 | option 'cycle-spacing-actions'. |
| 1374 | 1189 | ||
| 1375 | --- | ||
| 1376 | ** 'zap-to-char' and 'zap-up-to-char' are case-sensitive for upper-case chars. | 1190 | ** 'zap-to-char' and 'zap-up-to-char' are case-sensitive for upper-case chars. |
| 1377 | These commands now behave as case-sensitive for interactive calls when | 1191 | These commands now behave as case-sensitive for interactive calls when |
| 1378 | they are invoked with an uppercase character, regardless of the value | 1192 | they are invoked with an uppercase character, regardless of the value |
| 1379 | of 'case-fold-search'. | 1193 | of 'case-fold-search'. |
| 1380 | 1194 | ||
| 1381 | --- | ||
| 1382 | ** 'scroll-other-window' and 'scroll-other-window-down' now respect remapping. | 1195 | ** 'scroll-other-window' and 'scroll-other-window-down' now respect remapping. |
| 1383 | These commands (bound to 'C-M-v' and 'C-M-V') used to scroll the other | 1196 | These commands (bound to 'C-M-v' and 'C-M-V') used to scroll the other |
| 1384 | windows without looking at customizations in that other window. These | 1197 | windows without looking at customizations in that other window. These |
| @@ -1387,7 +1200,6 @@ in that other window, and then call the remapped function instead. In | |||
| 1387 | addition, these commands now also respect the | 1200 | addition, these commands now also respect the |
| 1388 | 'scroll-error-top-bottom' user option. | 1201 | 'scroll-error-top-bottom' user option. |
| 1389 | 1202 | ||
| 1390 | --- | ||
| 1391 | ** Indentation of 'cl-flet' and 'cl-labels' has changed. | 1203 | ** Indentation of 'cl-flet' and 'cl-labels' has changed. |
| 1392 | These forms now indent like this: | 1204 | These forms now indent like this: |
| 1393 | 1205 | ||
| @@ -1398,32 +1210,26 @@ These forms now indent like this: | |||
| 1398 | This change also affects 'cl-macrolet', 'cl-flet*' and | 1210 | This change also affects 'cl-macrolet', 'cl-flet*' and |
| 1399 | 'cl-symbol-macrolet'. | 1211 | 'cl-symbol-macrolet'. |
| 1400 | 1212 | ||
| 1401 | +++ | ||
| 1402 | ** New user option 'translate-upper-case-key-bindings'. | 1213 | ** New user option 'translate-upper-case-key-bindings'. |
| 1403 | Set this option to nil to inhibit the default translation of upper | 1214 | Set this option to nil to inhibit the default translation of upper |
| 1404 | case keys to their lower case variants. | 1215 | case keys to their lower case variants. |
| 1405 | 1216 | ||
| 1406 | +++ | ||
| 1407 | ** New command 'ensure-empty-lines'. | 1217 | ** New command 'ensure-empty-lines'. |
| 1408 | This command increases (or decreases) the number of empty lines before | 1218 | This command increases (or decreases) the number of empty lines before |
| 1409 | point. | 1219 | point. |
| 1410 | 1220 | ||
| 1411 | --- | ||
| 1412 | ** Improved mouse behavior with auto-scrolling modes. | 1221 | ** Improved mouse behavior with auto-scrolling modes. |
| 1413 | When clicking inside the 'scroll-margin' or 'hscroll-margin' region, | 1222 | When clicking inside the 'scroll-margin' or 'hscroll-margin' region, |
| 1414 | point is now moved only when releasing the mouse button. This no | 1223 | point is now moved only when releasing the mouse button. This no |
| 1415 | longer results in a bogus selection, unless the mouse has also been | 1224 | longer results in a bogus selection, unless the mouse has also been |
| 1416 | dragged. | 1225 | dragged. |
| 1417 | 1226 | ||
| 1418 | +++ | ||
| 1419 | ** 'kill-ring-max' now defaults to 120. | 1227 | ** 'kill-ring-max' now defaults to 120. |
| 1420 | 1228 | ||
| 1421 | --- | ||
| 1422 | ** New user option 'yank-menu-max-items'. | 1229 | ** New user option 'yank-menu-max-items'. |
| 1423 | Customize this option to limit the number of entries in the menu | 1230 | Customize this option to limit the number of entries in the menu |
| 1424 | "Edit → Paste from Kill Menu". The default is 60. | 1231 | "Edit → Paste from Kill Menu". The default is 60. |
| 1425 | 1232 | ||
| 1426 | --- | ||
| 1427 | ** New user option 'copy-region-blink-predicate'. | 1233 | ** New user option 'copy-region-blink-predicate'. |
| 1428 | By default, when copying a region with 'kill-ring-save', Emacs only | 1234 | By default, when copying a region with 'kill-ring-save', Emacs only |
| 1429 | blinks point and mark when the region is not denoted visually, that | 1235 | blinks point and mark when the region is not denoted visually, that |
| @@ -1435,12 +1241,10 @@ this user option to 'always'. To disable blinking unconditionally, | |||
| 1435 | either set this option to 'ignore', or set 'copy-region-blink-delay' | 1241 | either set this option to 'ignore', or set 'copy-region-blink-delay' |
| 1436 | to 0. | 1242 | to 0. |
| 1437 | 1243 | ||
| 1438 | +++ | ||
| 1439 | ** Performing a pinch gesture on a touchpad now increases the text scale. | 1244 | ** Performing a pinch gesture on a touchpad now increases the text scale. |
| 1440 | 1245 | ||
| 1441 | ** Show Paren Mode | 1246 | ** Show Paren Mode |
| 1442 | 1247 | ||
| 1443 | +++ | ||
| 1444 | *** New user option 'show-paren-context-when-offscreen'. | 1248 | *** New user option 'show-paren-context-when-offscreen'. |
| 1445 | When non-nil, if the point is in a closing delimiter and the opening | 1249 | When non-nil, if the point is in a closing delimiter and the opening |
| 1446 | delimiter is offscreen, shows some context around the opening | 1250 | delimiter is offscreen, shows some context around the opening |
| @@ -1454,19 +1258,16 @@ echo area. | |||
| 1454 | 1258 | ||
| 1455 | ** Comint | 1259 | ** Comint |
| 1456 | 1260 | ||
| 1457 | +++ | ||
| 1458 | *** 'comint-term-environment' is now aware of connection-local variables. | 1261 | *** 'comint-term-environment' is now aware of connection-local variables. |
| 1459 | The user option 'comint-terminfo-terminal' and the variable | 1262 | The user option 'comint-terminfo-terminal' and the variable |
| 1460 | 'system-uses-terminfo' can now be set as connection-local variables to | 1263 | 'system-uses-terminfo' can now be set as connection-local variables to |
| 1461 | change the terminal used on a remote host. | 1264 | change the terminal used on a remote host. |
| 1462 | 1265 | ||
| 1463 | --- | ||
| 1464 | *** New user option 'comint-delete-old-input'. | 1266 | *** New user option 'comint-delete-old-input'. |
| 1465 | When nil, this prevents comint from deleting the current input when | 1267 | When nil, this prevents comint from deleting the current input when |
| 1466 | inserting previous input using '<mouse-2>'. The default is t, to | 1268 | inserting previous input using '<mouse-2>'. The default is t, to |
| 1467 | preserve previous behavior. | 1269 | preserve previous behavior. |
| 1468 | 1270 | ||
| 1469 | --- | ||
| 1470 | *** New minor mode 'comint-fontify-input-mode'. | 1271 | *** New minor mode 'comint-fontify-input-mode'. |
| 1471 | This minor mode is enabled by default in "*shell*" and "*ielm*" | 1272 | This minor mode is enabled by default in "*shell*" and "*ielm*" |
| 1472 | buffers. It fontifies input text according to 'shell-mode' or | 1273 | buffers. It fontifies input text according to 'shell-mode' or |
| @@ -1476,7 +1277,6 @@ you don't want to enable input fontification by default. | |||
| 1476 | 1277 | ||
| 1477 | ** Mwheel | 1278 | ** Mwheel |
| 1478 | 1279 | ||
| 1479 | --- | ||
| 1480 | *** New user options for alternate wheel events. | 1280 | *** New user options for alternate wheel events. |
| 1481 | The user options 'mouse-wheel-down-alternate-event' and | 1281 | The user options 'mouse-wheel-down-alternate-event' and |
| 1482 | 'mouse-wheel-up-alternate-event' as well as the variables | 1282 | 'mouse-wheel-up-alternate-event' as well as the variables |
| @@ -1486,19 +1286,16 @@ systems where two kinds of wheel events can be received. | |||
| 1486 | 1286 | ||
| 1487 | ** Internationalization | 1287 | ** Internationalization |
| 1488 | 1288 | ||
| 1489 | --- | ||
| 1490 | *** The '<Delete>' function key now allows deleting the entire composed sequence. | 1289 | *** The '<Delete>' function key now allows deleting the entire composed sequence. |
| 1491 | For the details, see the item about the 'delete-forward-char' command | 1290 | For the details, see the item about the 'delete-forward-char' command |
| 1492 | above. | 1291 | above. |
| 1493 | 1292 | ||
| 1494 | --- | ||
| 1495 | *** New user option 'composition-break-at-point'. | 1293 | *** New user option 'composition-break-at-point'. |
| 1496 | Setting it to a non-nil value temporarily disables automatic | 1294 | Setting it to a non-nil value temporarily disables automatic |
| 1497 | composition of character sequences at point, and thus makes it easier | 1295 | composition of character sequences at point, and thus makes it easier |
| 1498 | to edit such sequences by allowing point to "enter" the composed | 1296 | to edit such sequences by allowing point to "enter" the composed |
| 1499 | sequence. | 1297 | sequence. |
| 1500 | 1298 | ||
| 1501 | --- | ||
| 1502 | *** Support for many old scripts and writing systems. | 1299 | *** Support for many old scripts and writing systems. |
| 1503 | Emacs now supports, and has language-environments and input methods, | 1300 | Emacs now supports, and has language-environments and input methods, |
| 1504 | for several dozens of old scripts that were used in the past for | 1301 | for several dozens of old scripts that were used in the past for |
| @@ -1573,48 +1370,39 @@ environments are: | |||
| 1573 | 1370 | ||
| 1574 | Mongolian-cyrillic language environment | 1371 | Mongolian-cyrillic language environment |
| 1575 | 1372 | ||
| 1576 | --- | ||
| 1577 | *** The "Oriya" language environment was renamed to "Odia". | 1373 | *** The "Oriya" language environment was renamed to "Odia". |
| 1578 | This is to follow the change in the official name of the script. The | 1374 | This is to follow the change in the official name of the script. The |
| 1579 | 'oriya' input method was also renamed to 'odia'. However, the old | 1375 | 'oriya' input method was also renamed to 'odia'. However, the old |
| 1580 | name of the language environment and the input method are still | 1376 | name of the language environment and the input method are still |
| 1581 | supported. | 1377 | supported. |
| 1582 | 1378 | ||
| 1583 | --- | ||
| 1584 | *** New Greek translation of the Emacs tutorial. | 1379 | *** New Greek translation of the Emacs tutorial. |
| 1585 | Type 'C-u C-h t' to select it in case your language setup does not do | 1380 | Type 'C-u C-h t' to select it in case your language setup does not do |
| 1586 | so automatically. | 1381 | so automatically. |
| 1587 | 1382 | ||
| 1588 | --- | ||
| 1589 | *** New Ukrainian translation of the Emacs tutorial. | 1383 | *** New Ukrainian translation of the Emacs tutorial. |
| 1590 | 1384 | ||
| 1591 | --- | ||
| 1592 | *** New Farsi/Persian translation of the Emacs tutorial. | 1385 | *** New Farsi/Persian translation of the Emacs tutorial. |
| 1593 | 1386 | ||
| 1594 | --- | ||
| 1595 | *** New default phonetic input method for the Tamil language environment. | 1387 | *** New default phonetic input method for the Tamil language environment. |
| 1596 | The default input method for the Tamil language environment is now | 1388 | The default input method for the Tamil language environment is now |
| 1597 | "tamil-phonetic" which is a customizable phonetic input method. To | 1389 | "tamil-phonetic" which is a customizable phonetic input method. To |
| 1598 | change the input method's translation rules, customize the user option | 1390 | change the input method's translation rules, customize the user option |
| 1599 | 'tamil-translation-rules'. | 1391 | 'tamil-translation-rules'. |
| 1600 | 1392 | ||
| 1601 | --- | ||
| 1602 | *** New 'tamil99' input method for the Tamil language. | 1393 | *** New 'tamil99' input method for the Tamil language. |
| 1603 | This supports the keyboard layout specifically designed for the Tamil | 1394 | This supports the keyboard layout specifically designed for the Tamil |
| 1604 | language. | 1395 | language. |
| 1605 | 1396 | ||
| 1606 | --- | ||
| 1607 | *** New input method 'slovak-qwerty'. | 1397 | *** New input method 'slovak-qwerty'. |
| 1608 | This is a variant of the 'slovak' input method, which corresponds to | 1398 | This is a variant of the 'slovak' input method, which corresponds to |
| 1609 | the QWERTY Slovak keyboards. | 1399 | the QWERTY Slovak keyboards. |
| 1610 | 1400 | ||
| 1611 | --- | ||
| 1612 | *** New input method 'cyrillic-chuvash'. | 1401 | *** New input method 'cyrillic-chuvash'. |
| 1613 | This input method is based on the russian-computer input method, and | 1402 | This input method is based on the russian-computer input method, and |
| 1614 | is intended for typing in the Chuvash language written in the Cyrillic | 1403 | is intended for typing in the Chuvash language written in the Cyrillic |
| 1615 | script. | 1404 | script. |
| 1616 | 1405 | ||
| 1617 | --- | ||
| 1618 | *** New input method 'cyrillic-mongolian'. | 1406 | *** New input method 'cyrillic-mongolian'. |
| 1619 | This input method is for typing in the Mongolian language using the | 1407 | This input method is for typing in the Mongolian language using the |
| 1620 | Cyrillic script. It is the default input method for the new | 1408 | Cyrillic script. It is the default input method for the new |
| @@ -1625,23 +1413,19 @@ Mongolian-cyrillic language environment, see above. | |||
| 1625 | 1413 | ||
| 1626 | ** Ecomplete | 1414 | ** Ecomplete |
| 1627 | 1415 | ||
| 1628 | --- | ||
| 1629 | *** New commands 'ecomplete-edit' and 'ecomplete-remove'. | 1416 | *** New commands 'ecomplete-edit' and 'ecomplete-remove'. |
| 1630 | These allow you to (respectively) edit and bulk-remove entries from | 1417 | These allow you to (respectively) edit and bulk-remove entries from |
| 1631 | the ecomplete database. | 1418 | the ecomplete database. |
| 1632 | 1419 | ||
| 1633 | --- | ||
| 1634 | *** New user option 'ecomplete-auto-select'. | 1420 | *** New user option 'ecomplete-auto-select'. |
| 1635 | If non-nil and there's only one matching option, auto-select that. | 1421 | If non-nil and there's only one matching option, auto-select that. |
| 1636 | 1422 | ||
| 1637 | --- | ||
| 1638 | *** New user option 'ecomplete-filter-regexp'. | 1423 | *** New user option 'ecomplete-filter-regexp'. |
| 1639 | If non-nil, this user option describes what entries not to add to the | 1424 | If non-nil, this user option describes what entries not to add to the |
| 1640 | database stored on disk. | 1425 | database stored on disk. |
| 1641 | 1426 | ||
| 1642 | ** Auth Source | 1427 | ** Auth Source |
| 1643 | 1428 | ||
| 1644 | +++ | ||
| 1645 | *** New user option 'auth-source-pass-extra-query-keywords'. | 1429 | *** New user option 'auth-source-pass-extra-query-keywords'. |
| 1646 | Whether to recognize additional keyword params, like ':max' and | 1430 | Whether to recognize additional keyword params, like ':max' and |
| 1647 | ':require', as well as accept lists of query terms paired with | 1431 | ':require', as well as accept lists of query terms paired with |
| @@ -1650,13 +1434,11 @@ unique to auth-source-pass, such as wildcard subdomain matching. | |||
| 1650 | 1434 | ||
| 1651 | ** Dired | 1435 | ** Dired |
| 1652 | 1436 | ||
| 1653 | +++ | ||
| 1654 | *** 'dired-guess-shell-command' moved from dired-x to dired. | 1437 | *** 'dired-guess-shell-command' moved from dired-x to dired. |
| 1655 | This means that 'dired-do-shell-command' will now provide smarter | 1438 | This means that 'dired-do-shell-command' will now provide smarter |
| 1656 | defaults without first having to require 'dired-x'. See the node | 1439 | defaults without first having to require 'dired-x'. See the node |
| 1657 | "(emacs) Shell Command Guessing" in the Emacs manual for more details. | 1440 | "(emacs) Shell Command Guessing" in the Emacs manual for more details. |
| 1658 | 1441 | ||
| 1659 | --- | ||
| 1660 | *** 'dired-clean-up-buffers-too' moved from dired-x to dired. | 1442 | *** 'dired-clean-up-buffers-too' moved from dired-x to dired. |
| 1661 | This means that Dired now offers to kill buffers visiting files and | 1443 | This means that Dired now offers to kill buffers visiting files and |
| 1662 | dirs when they are deleted in Dired. Before, you had to require | 1444 | dirs when they are deleted in Dired. Before, you had to require |
| @@ -1665,20 +1447,16 @@ customize the user option 'dired-clean-up-buffers-too' to nil. The | |||
| 1665 | related user option 'dired-clean-confirm-killing-deleted-buffers' | 1447 | related user option 'dired-clean-confirm-killing-deleted-buffers' |
| 1666 | (which see) has also been moved to 'dired'. | 1448 | (which see) has also been moved to 'dired'. |
| 1667 | 1449 | ||
| 1668 | +++ | ||
| 1669 | *** 'dired-do-relsymlink' moved from dired-x to dired. | 1450 | *** 'dired-do-relsymlink' moved from dired-x to dired. |
| 1670 | The corresponding key 'Y' is now bound by default in Dired. | 1451 | The corresponding key 'Y' is now bound by default in Dired. |
| 1671 | 1452 | ||
| 1672 | +++ | ||
| 1673 | *** 'dired-do-relsymlink-regexp' moved from dired-x to dired. | 1453 | *** 'dired-do-relsymlink-regexp' moved from dired-x to dired. |
| 1674 | The corresponding key sequence '% Y' is now bound by default in Dired. | 1454 | The corresponding key sequence '% Y' is now bound by default in Dired. |
| 1675 | 1455 | ||
| 1676 | --- | ||
| 1677 | *** 'M-G' is now bound to 'dired-goto-subdir'. | 1456 | *** 'M-G' is now bound to 'dired-goto-subdir'. |
| 1678 | Before, that binding was only available if the dired-x package was | 1457 | Before, that binding was only available if the dired-x package was |
| 1679 | loaded. | 1458 | loaded. |
| 1680 | 1459 | ||
| 1681 | +++ | ||
| 1682 | *** 'dired-info' and 'dired-man' moved from dired-x to dired. | 1460 | *** 'dired-info' and 'dired-man' moved from dired-x to dired. |
| 1683 | The 'dired-info' and 'dired-man' commands have been moved from the | 1461 | The 'dired-info' and 'dired-man' commands have been moved from the |
| 1684 | dired-x package to dired. They have also been renamed to | 1462 | dired-x package to dired. They have also been renamed to |
| @@ -1696,29 +1474,24 @@ the following to your Init file: | |||
| 1696 | (keymap-set dired-mode-map "N" nil) | 1474 | (keymap-set dired-mode-map "N" nil) |
| 1697 | (keymap-set dired-mode-map "I" nil)) | 1475 | (keymap-set dired-mode-map "I" nil)) |
| 1698 | 1476 | ||
| 1699 | --- | ||
| 1700 | *** New command 'dired-do-eww'. | 1477 | *** New command 'dired-do-eww'. |
| 1701 | This command visits the file on the current line with EWW. | 1478 | This command visits the file on the current line with EWW. |
| 1702 | 1479 | ||
| 1703 | --- | ||
| 1704 | *** 'browse-url-of-dired-file' can now call the secondary browser. | 1480 | *** 'browse-url-of-dired-file' can now call the secondary browser. |
| 1705 | When invoked with a prefix arg, this will now call | 1481 | When invoked with a prefix arg, this will now call |
| 1706 | 'browse-url-secondary-browser-function' instead of the default | 1482 | 'browse-url-secondary-browser-function' instead of the default |
| 1707 | browser. 'browse-url-of-dired-file' is bound to 'W' by default in | 1483 | browser. 'browse-url-of-dired-file' is bound to 'W' by default in |
| 1708 | dired mode. | 1484 | dired mode. |
| 1709 | 1485 | ||
| 1710 | --- | ||
| 1711 | *** New user option 'dired-omit-lines'. | 1486 | *** New user option 'dired-omit-lines'. |
| 1712 | This is used by 'dired-omit-mode', and now allows you to hide based on | 1487 | This is used by 'dired-omit-mode', and now allows you to hide based on |
| 1713 | other things than just the file names. | 1488 | other things than just the file names. |
| 1714 | 1489 | ||
| 1715 | +++ | ||
| 1716 | *** New user option 'dired-mouse-drag-files'. | 1490 | *** New user option 'dired-mouse-drag-files'. |
| 1717 | If non-nil, dragging file names with the mouse in a Dired buffer will | 1491 | If non-nil, dragging file names with the mouse in a Dired buffer will |
| 1718 | initiate a drag-and-drop session allowing them to be opened in other | 1492 | initiate a drag-and-drop session allowing them to be opened in other |
| 1719 | programs. | 1493 | programs. |
| 1720 | 1494 | ||
| 1721 | +++ | ||
| 1722 | *** New user option 'dired-free-space'. | 1495 | *** New user option 'dired-free-space'. |
| 1723 | Dired will now, by default, include the free space in the first line | 1496 | Dired will now, by default, include the free space in the first line |
| 1724 | instead of having it on a separate line. To get the previous behavior | 1497 | instead of having it on a separate line. To get the previous behavior |
| @@ -1726,13 +1499,11 @@ back, say: | |||
| 1726 | 1499 | ||
| 1727 | (setopt dired-free-space 'separate) | 1500 | (setopt dired-free-space 'separate) |
| 1728 | 1501 | ||
| 1729 | --- | ||
| 1730 | *** New user option 'dired-make-directory-clickable'. | 1502 | *** New user option 'dired-make-directory-clickable'. |
| 1731 | If non-nil (which is the default), hitting 'RET' or 'mouse-1' on | 1503 | If non-nil (which is the default), hitting 'RET' or 'mouse-1' on |
| 1732 | the directory components at the directory displayed at the start of | 1504 | the directory components at the directory displayed at the start of |
| 1733 | the buffer will take you to that directory. | 1505 | the buffer will take you to that directory. |
| 1734 | 1506 | ||
| 1735 | --- | ||
| 1736 | *** Search and replace in Dired/Wdired supports more regexps. | 1507 | *** Search and replace in Dired/Wdired supports more regexps. |
| 1737 | For example, the regexp ".*" will match only characters that are part | 1508 | For example, the regexp ".*" will match only characters that are part |
| 1738 | of the file name. Also "^.*$" can be used to match at the beginning | 1509 | of the file name. Also "^.*$" can be used to match at the beginning |
| @@ -1743,31 +1514,26 @@ default). | |||
| 1743 | 1514 | ||
| 1744 | ** Elisp | 1515 | ** Elisp |
| 1745 | 1516 | ||
| 1746 | --- | ||
| 1747 | *** New command 'elisp-eval-region-or-buffer' (bound to 'C-c C-e'). | 1517 | *** New command 'elisp-eval-region-or-buffer' (bound to 'C-c C-e'). |
| 1748 | This command evals the forms in the active region or in the whole buffer. | 1518 | This command evals the forms in the active region or in the whole buffer. |
| 1749 | 1519 | ||
| 1750 | --- | ||
| 1751 | *** New commands 'elisp-byte-compile-file' and 'elisp-byte-compile-buffer'. | 1520 | *** New commands 'elisp-byte-compile-file' and 'elisp-byte-compile-buffer'. |
| 1752 | These commands (bound to 'C-c C-f' and 'C-c C-b', respectively) | 1521 | These commands (bound to 'C-c C-f' and 'C-c C-b', respectively) |
| 1753 | byte-compile the visited file and the current buffer, respectively. | 1522 | byte-compile the visited file and the current buffer, respectively. |
| 1754 | 1523 | ||
| 1755 | ** Games | 1524 | ** Games |
| 1756 | 1525 | ||
| 1757 | --- | ||
| 1758 | *** New user option 'tetris-allow-repetitions'. | 1526 | *** New user option 'tetris-allow-repetitions'. |
| 1759 | This controls how randomness is implemented (whether to use pure | 1527 | This controls how randomness is implemented (whether to use pure |
| 1760 | randomness as before, or to use a bag). | 1528 | randomness as before, or to use a bag). |
| 1761 | 1529 | ||
| 1762 | ** Battery | 1530 | ** Battery |
| 1763 | 1531 | ||
| 1764 | +++ | ||
| 1765 | *** New user option 'battery-update-functions'. | 1532 | *** New user option 'battery-update-functions'. |
| 1766 | This can be used to trigger actions based on the battery status. | 1533 | This can be used to trigger actions based on the battery status. |
| 1767 | 1534 | ||
| 1768 | ** DocView | 1535 | ** DocView |
| 1769 | 1536 | ||
| 1770 | --- | ||
| 1771 | *** doc-view can now generate SVG images when viewing PDF files. | 1537 | *** doc-view can now generate SVG images when viewing PDF files. |
| 1772 | If Emacs is built with SVG support, doc-view can generate SVG files | 1538 | If Emacs is built with SVG support, doc-view can generate SVG files |
| 1773 | when using MuPDF as the converter for PDF files, which generally leads | 1539 | when using MuPDF as the converter for PDF files, which generally leads |
| @@ -1781,14 +1547,12 @@ or can take a long time to render. | |||
| 1781 | 1547 | ||
| 1782 | ** Enriched Mode | 1548 | ** Enriched Mode |
| 1783 | 1549 | ||
| 1784 | +++ | ||
| 1785 | *** New command 'enriched-toggle-markup'. | 1550 | *** New command 'enriched-toggle-markup'. |
| 1786 | This allows you to see the markup in 'enriched-mode' buffers (e.g., | 1551 | This allows you to see the markup in 'enriched-mode' buffers (e.g., |
| 1787 | the "HELLO" file). Bound to 'M-o m' by default. | 1552 | the "HELLO" file). Bound to 'M-o m' by default. |
| 1788 | 1553 | ||
| 1789 | ** Shell Script Mode | 1554 | ** Shell Script Mode |
| 1790 | 1555 | ||
| 1791 | --- | ||
| 1792 | *** New user option 'sh-indent-statement-after-and'. | 1556 | *** New user option 'sh-indent-statement-after-and'. |
| 1793 | This controls how statements like the following are indented: | 1557 | This controls how statements like the following are indented: |
| 1794 | 1558 | ||
| @@ -1801,10 +1565,8 @@ command is installed. | |||
| 1801 | 1565 | ||
| 1802 | ** CC Mode | 1566 | ** CC Mode |
| 1803 | 1567 | ||
| 1804 | --- | ||
| 1805 | *** C++ Mode now supports most of the new features in the C++20 Standard. | 1568 | *** C++ Mode now supports most of the new features in the C++20 Standard. |
| 1806 | 1569 | ||
| 1807 | --- | ||
| 1808 | *** In Objective-C Mode, no extra types are recognized by default. | 1570 | *** In Objective-C Mode, no extra types are recognized by default. |
| 1809 | The default value of 'objc-font-lock-extra-types' has been changed to | 1571 | The default value of 'objc-font-lock-extra-types' has been changed to |
| 1810 | nil, since too many identifiers were getting misfontified as types. | 1572 | nil, since too many identifiers were getting misfontified as types. |
| @@ -1814,19 +1576,16 @@ doc string. | |||
| 1814 | 1576 | ||
| 1815 | ** Cperl Mode | 1577 | ** Cperl Mode |
| 1816 | 1578 | ||
| 1817 | --- | ||
| 1818 | *** New user option 'cperl-file-style'. | 1579 | *** New user option 'cperl-file-style'. |
| 1819 | This option determines the indentation style to be used. It can also | 1580 | This option determines the indentation style to be used. It can also |
| 1820 | be used as a file-local variable. | 1581 | be used as a file-local variable. |
| 1821 | 1582 | ||
| 1822 | ** Gud | 1583 | ** Gud |
| 1823 | 1584 | ||
| 1824 | --- | ||
| 1825 | *** 'gud-go' is now bound to 'C-c C-v'. | 1585 | *** 'gud-go' is now bound to 'C-c C-v'. |
| 1826 | If given a prefix, it will prompt for an argument to use for the | 1586 | If given a prefix, it will prompt for an argument to use for the |
| 1827 | run/continue command. | 1587 | run/continue command. |
| 1828 | 1588 | ||
| 1829 | --- | ||
| 1830 | *** 'perldb' now recognizes '-E'. | 1589 | *** 'perldb' now recognizes '-E'. |
| 1831 | As of Perl 5.10, 'perl -E 0' behaves like 'perl -e 0' but also activates | 1590 | As of Perl 5.10, 'perl -E 0' behaves like 'perl -e 0' but also activates |
| 1832 | all optional features of the Perl version in use. 'perldb' now uses | 1591 | all optional features of the Perl version in use. 'perldb' now uses |
| @@ -1834,27 +1593,23 @@ this invocation as its default. | |||
| 1834 | 1593 | ||
| 1835 | ** Customize | 1594 | ** Customize |
| 1836 | 1595 | ||
| 1837 | --- | ||
| 1838 | *** New command 'custom-toggle-hide-all-widgets'. | 1596 | *** New command 'custom-toggle-hide-all-widgets'. |
| 1839 | This is bound to 'H' and toggles whether to hide or show the widget | 1597 | This is bound to 'H' and toggles whether to hide or show the widget |
| 1840 | contents. | 1598 | contents. |
| 1841 | 1599 | ||
| 1842 | ** Diff Mode | 1600 | ** Diff Mode |
| 1843 | 1601 | ||
| 1844 | --- | ||
| 1845 | *** New user option 'diff-whitespace-style'. | 1602 | *** New user option 'diff-whitespace-style'. |
| 1846 | Sets the value of the buffer-local variable 'whitespace-style' in | 1603 | Sets the value of the buffer-local variable 'whitespace-style' in |
| 1847 | 'diff-mode' buffers. By default, this variable is '(face trailing)', | 1604 | 'diff-mode' buffers. By default, this variable is '(face trailing)', |
| 1848 | which preserves behavior of previous Emacs versions. | 1605 | which preserves behavior of previous Emacs versions. |
| 1849 | 1606 | ||
| 1850 | +++ | ||
| 1851 | *** New user option 'diff-add-log-use-relative-names'. | 1607 | *** New user option 'diff-add-log-use-relative-names'. |
| 1852 | If non-nil insert file names in ChangeLog skeletons relative to the | 1608 | If non-nil insert file names in ChangeLog skeletons relative to the |
| 1853 | VC root directory. | 1609 | VC root directory. |
| 1854 | 1610 | ||
| 1855 | ** Ispell | 1611 | ** Ispell |
| 1856 | 1612 | ||
| 1857 | --- | ||
| 1858 | *** 'ispell-region' and 'ispell-buffer' now push the mark. | 1613 | *** 'ispell-region' and 'ispell-buffer' now push the mark. |
| 1859 | These commands push onto the mark ring the location of the last | 1614 | These commands push onto the mark ring the location of the last |
| 1860 | misspelled word where corrections were offered, so that you can then | 1615 | misspelled word where corrections were offered, so that you can then |
| @@ -1862,73 +1617,60 @@ skip back to that location with 'C-x C-x'. | |||
| 1862 | 1617 | ||
| 1863 | ** Dabbrev | 1618 | ** Dabbrev |
| 1864 | 1619 | ||
| 1865 | --- | ||
| 1866 | *** New function 'dabbrev-capf' for use on 'completion-at-point-functions'. | 1620 | *** New function 'dabbrev-capf' for use on 'completion-at-point-functions'. |
| 1867 | 1621 | ||
| 1868 | +++ | ||
| 1869 | *** New user option 'dabbrev-ignored-buffer-modes'. | 1622 | *** New user option 'dabbrev-ignored-buffer-modes'. |
| 1870 | Buffers with major modes in this list will be ignored. By default, | 1623 | Buffers with major modes in this list will be ignored. By default, |
| 1871 | this includes "binary" buffers like 'archive-mode' and 'image-mode'. | 1624 | this includes "binary" buffers like 'archive-mode' and 'image-mode'. |
| 1872 | 1625 | ||
| 1873 | ** Package | 1626 | ** Package |
| 1874 | 1627 | ||
| 1875 | +++ | ||
| 1876 | *** New command 'package-upgrade'. | 1628 | *** New command 'package-upgrade'. |
| 1877 | This command allows you to upgrade packages without using 'list-packages'. | 1629 | This command allows you to upgrade packages without using 'list-packages'. |
| 1878 | A package that comes with the Emacs distribution can only be upgraded | 1630 | A package that comes with the Emacs distribution can only be upgraded |
| 1879 | after you install, once, a newer version from ELPA via the | 1631 | after you install, once, a newer version from ELPA via the |
| 1880 | package-menu displayed by 'list-packages'. | 1632 | package-menu displayed by 'list-packages'. |
| 1881 | 1633 | ||
| 1882 | +++ | ||
| 1883 | *** New command 'package-upgrade-all'. | 1634 | *** New command 'package-upgrade-all'. |
| 1884 | This command allows upgrading all packages without any queries. | 1635 | This command allows upgrading all packages without any queries. |
| 1885 | A package that comes with the Emacs distribution will only be upgraded | 1636 | A package that comes with the Emacs distribution will only be upgraded |
| 1886 | by this command after you install, once, a newer version of that | 1637 | by this command after you install, once, a newer version of that |
| 1887 | package from ELPA via the package-menu displayed by 'list-packages'. | 1638 | package from ELPA via the package-menu displayed by 'list-packages'. |
| 1888 | 1639 | ||
| 1889 | +++ | ||
| 1890 | *** New commands 'package-recompile' and 'package-recompile-all'. | 1640 | *** New commands 'package-recompile' and 'package-recompile-all'. |
| 1891 | These commands can be useful if the ".elc" files are out of date | 1641 | These commands can be useful if the ".elc" files are out of date |
| 1892 | (invalid byte code and macros). | 1642 | (invalid byte code and macros). |
| 1893 | 1643 | ||
| 1894 | +++ | ||
| 1895 | *** New DWIM action on 'x' in "*Packages*" buffer. | 1644 | *** New DWIM action on 'x' in "*Packages*" buffer. |
| 1896 | If no packages are marked, 'x' will install the package under point if | 1645 | If no packages are marked, 'x' will install the package under point if |
| 1897 | it isn't already, and remove it if it is installed. Customize the new | 1646 | it isn't already, and remove it if it is installed. Customize the new |
| 1898 | option 'package-menu-use-current-if-no-marks' to the nil value to get | 1647 | option 'package-menu-use-current-if-no-marks' to the nil value to get |
| 1899 | back the old behavior of signaling an error in that case. | 1648 | back the old behavior of signaling an error in that case. |
| 1900 | 1649 | ||
| 1901 | +++ | ||
| 1902 | *** New command 'package-vc-install'. | 1650 | *** New command 'package-vc-install'. |
| 1903 | Packages can now be installed directly from source by cloning from | 1651 | Packages can now be installed directly from source by cloning from |
| 1904 | their repository. | 1652 | their repository. |
| 1905 | 1653 | ||
| 1906 | +++ | ||
| 1907 | *** New command 'package-vc-install-from-checkout'. | 1654 | *** New command 'package-vc-install-from-checkout'. |
| 1908 | An existing checkout can now be loaded via package.el, by creating a | 1655 | An existing checkout can now be loaded via package.el, by creating a |
| 1909 | symbolic link from the usual package directory to the checkout. | 1656 | symbolic link from the usual package directory to the checkout. |
| 1910 | 1657 | ||
| 1911 | +++ | ||
| 1912 | *** New command 'package-vc-checkout'. | 1658 | *** New command 'package-vc-checkout'. |
| 1913 | Used to fetch the source of a package by cloning a repository without | 1659 | Used to fetch the source of a package by cloning a repository without |
| 1914 | activating the package. | 1660 | activating the package. |
| 1915 | 1661 | ||
| 1916 | +++ | ||
| 1917 | *** New command 'package-vc-prepare-patch'. | 1662 | *** New command 'package-vc-prepare-patch'. |
| 1918 | This command allows you to send patches to package maintainers, for | 1663 | This command allows you to send patches to package maintainers, for |
| 1919 | packages checked out using 'package-vc-install'. | 1664 | packages checked out using 'package-vc-install'. |
| 1920 | 1665 | ||
| 1921 | +++ | ||
| 1922 | *** New command 'package-report-bug'. | 1666 | *** New command 'package-report-bug'. |
| 1923 | This command helps you compose an email for sending bug reports to | 1667 | This command helps you compose an email for sending bug reports to |
| 1924 | package maintainers, and is bound to 'b' in the "*Packages*" buffer. | 1668 | package maintainers, and is bound to 'b' in the "*Packages*" buffer. |
| 1925 | 1669 | ||
| 1926 | +++ | ||
| 1927 | *** New user option 'package-vc-selected-packages'. | 1670 | *** New user option 'package-vc-selected-packages'. |
| 1928 | By customizing this user option you can specify specific packages to | 1671 | By customizing this user option you can specify specific packages to |
| 1929 | install. | 1672 | install. |
| 1930 | 1673 | ||
| 1931 | --- | ||
| 1932 | *** New user option 'package-install-upgrade-built-in'. | 1674 | *** New user option 'package-install-upgrade-built-in'. |
| 1933 | When enabled, 'package-install' will include in the list of | 1675 | When enabled, 'package-install' will include in the list of |
| 1934 | upgradeable packages those built-in packages (like Eglot and | 1676 | upgradeable packages those built-in packages (like Eglot and |
| @@ -1950,7 +1692,6 @@ setting in your early-init file. | |||
| 1950 | 1692 | ||
| 1951 | ** Emacs Sessions (Desktop) | 1693 | ** Emacs Sessions (Desktop) |
| 1952 | 1694 | ||
| 1953 | +++ | ||
| 1954 | *** New user option to load a locked desktop if locking Emacs is not running. | 1695 | *** New user option to load a locked desktop if locking Emacs is not running. |
| 1955 | The option 'desktop-load-locked-desktop' can now be set to the value | 1696 | The option 'desktop-load-locked-desktop' can now be set to the value |
| 1956 | 'check-pid', which means to allow loading a locked ".emacs.desktop" | 1697 | 'check-pid', which means to allow loading a locked ".emacs.desktop" |
| @@ -1962,7 +1703,6 @@ Emacs Sessions" node in the Emacs manual for more details. | |||
| 1962 | 1703 | ||
| 1963 | ** Miscellaneous | 1704 | ** Miscellaneous |
| 1964 | 1705 | ||
| 1965 | +++ | ||
| 1966 | *** New command 'scratch-buffer'. | 1706 | *** New command 'scratch-buffer'. |
| 1967 | This command switches to the "*scratch*" buffer. If "*scratch*" doesn't | 1707 | This command switches to the "*scratch*" buffer. If "*scratch*" doesn't |
| 1968 | exist, the command creates it first. You can use this command if you | 1708 | exist, the command creates it first. You can use this command if you |
| @@ -1970,31 +1710,26 @@ inadvertently delete the "*scratch*" buffer. | |||
| 1970 | 1710 | ||
| 1971 | ** Debugging | 1711 | ** Debugging |
| 1972 | 1712 | ||
| 1973 | --- | ||
| 1974 | *** 'q' in a "*Backtrace*" buffer no longer clears the buffer. | 1713 | *** 'q' in a "*Backtrace*" buffer no longer clears the buffer. |
| 1975 | Instead it just buries the buffer and switches the mode from | 1714 | Instead it just buries the buffer and switches the mode from |
| 1976 | 'debugger-mode' to 'backtrace-mode', since commands like 'e' are no | 1715 | 'debugger-mode' to 'backtrace-mode', since commands like 'e' are no |
| 1977 | longer available after exiting the recursive edit. | 1716 | longer available after exiting the recursive edit. |
| 1978 | 1717 | ||
| 1979 | +++ | ||
| 1980 | *** New user option 'debug-allow-recursive-debug'. | 1718 | *** New user option 'debug-allow-recursive-debug'. |
| 1981 | This user option controls whether the 'e' (in a "*Backtrace*" | 1719 | This user option controls whether the 'e' (in a "*Backtrace*" |
| 1982 | buffer or while edebugging) and 'C-x C-e' (while edebugging) commands | 1720 | buffer or while edebugging) and 'C-x C-e' (while edebugging) commands |
| 1983 | lead to a (further) backtrace. By default, this variable is nil, | 1721 | lead to a (further) backtrace. By default, this variable is nil, |
| 1984 | which is a change in behavior from previous Emacs versions. | 1722 | which is a change in behavior from previous Emacs versions. |
| 1985 | 1723 | ||
| 1986 | +++ | ||
| 1987 | *** 'e' in edebug can now take a prefix arg to pretty-print the results. | 1724 | *** 'e' in edebug can now take a prefix arg to pretty-print the results. |
| 1988 | When invoked with a prefix argument, as in 'C-u e', this command will | 1725 | When invoked with a prefix argument, as in 'C-u e', this command will |
| 1989 | pop up a new buffer and show the full pretty-printed value there. | 1726 | pop up a new buffer and show the full pretty-printed value there. |
| 1990 | 1727 | ||
| 1991 | +++ | ||
| 1992 | *** 'C-x C-e' now interprets a non-zero prefix arg to pretty-print the results. | 1728 | *** 'C-x C-e' now interprets a non-zero prefix arg to pretty-print the results. |
| 1993 | When invoked with a non-zero prefix argument, as in 'C-u C-x C-e', | 1729 | When invoked with a non-zero prefix argument, as in 'C-u C-x C-e', |
| 1994 | this command will pop up a new buffer and show the full pretty-printed | 1730 | this command will pop up a new buffer and show the full pretty-printed |
| 1995 | value there. | 1731 | value there. |
| 1996 | 1732 | ||
| 1997 | +++ | ||
| 1998 | *** You can now generate a backtrace from Lisp errors in redisplay. | 1733 | *** You can now generate a backtrace from Lisp errors in redisplay. |
| 1999 | To do this, set the new variable 'backtrace-on-redisplay-error' to a | 1734 | To do this, set the new variable 'backtrace-on-redisplay-error' to a |
| 2000 | non-nil value. The backtrace will be written to a special buffer | 1735 | non-nil value. The backtrace will be written to a special buffer |
| @@ -2003,18 +1738,15 @@ displayed in a window. | |||
| 2003 | 1738 | ||
| 2004 | ** Compile | 1739 | ** Compile |
| 2005 | 1740 | ||
| 2006 | +++ | ||
| 2007 | *** New user option 'compilation-hidden-output'. | 1741 | *** New user option 'compilation-hidden-output'. |
| 2008 | This regular expression can be used to make specific parts of | 1742 | This regular expression can be used to make specific parts of |
| 2009 | compilation output invisible. | 1743 | compilation output invisible. |
| 2010 | 1744 | ||
| 2011 | +++ | ||
| 2012 | *** The 'compilation-auto-jump-to-first-error' user option has been extended. | 1745 | *** The 'compilation-auto-jump-to-first-error' user option has been extended. |
| 2013 | It can now have the additional values 'if-location-known' (which will | 1746 | It can now have the additional values 'if-location-known' (which will |
| 2014 | only jump if the location of the first error is known), and | 1747 | only jump if the location of the first error is known), and |
| 2015 | 'first-known' (which will jump to the first known error location). | 1748 | 'first-known' (which will jump to the first known error location). |
| 2016 | 1749 | ||
| 2017 | +++ | ||
| 2018 | *** New user option 'compilation-max-output-line-length'. | 1750 | *** New user option 'compilation-max-output-line-length'. |
| 2019 | Lines longer than the value of this option will have their ends | 1751 | Lines longer than the value of this option will have their ends |
| 2020 | hidden, with a button to reveal the hidden text. This speeds up | 1752 | hidden, with a button to reveal the hidden text. This speeds up |
| @@ -2023,15 +1755,12 @@ value is 400; set to nil to disable hiding. | |||
| 2023 | 1755 | ||
| 2024 | ** Flymake | 1756 | ** Flymake |
| 2025 | 1757 | ||
| 2026 | +++ | ||
| 2027 | *** New user option 'flymake-mode-line-lighter'. | 1758 | *** New user option 'flymake-mode-line-lighter'. |
| 2028 | 1759 | ||
| 2029 | +++ | ||
| 2030 | ** New minor mode 'word-wrap-whitespace-mode' for extending 'word-wrap'. | 1760 | ** New minor mode 'word-wrap-whitespace-mode' for extending 'word-wrap'. |
| 2031 | This mode switches 'word-wrap' on, and breaks on all the whitespace | 1761 | This mode switches 'word-wrap' on, and breaks on all the whitespace |
| 2032 | characters instead of just 'SPC' and 'TAB'. | 1762 | characters instead of just 'SPC' and 'TAB'. |
| 2033 | 1763 | ||
| 2034 | --- | ||
| 2035 | ** New mode, 'emacs-news-mode', for editing the NEWS file. | 1764 | ** New mode, 'emacs-news-mode', for editing the NEWS file. |
| 2036 | This mode adds some highlighting, makes the 'M-q' command aware of the | 1765 | This mode adds some highlighting, makes the 'M-q' command aware of the |
| 2037 | format of NEWS entries, and has special commands for doing maintenance | 1766 | format of NEWS entries, and has special commands for doing maintenance |
| @@ -2040,13 +1769,11 @@ of the Emacs NEWS files. In addition, this mode turns on | |||
| 2040 | 'icon-preference') in the margins. To disable these icons, set | 1769 | 'icon-preference') in the margins. To disable these icons, set |
| 2041 | 'outline-minor-mode-use-buttons' to a nil value. | 1770 | 'outline-minor-mode-use-buttons' to a nil value. |
| 2042 | 1771 | ||
| 2043 | --- | ||
| 2044 | ** Kmacro | 1772 | ** Kmacro |
| 2045 | Kmacros are now OClosures and have a new constructor 'kmacro' which | 1773 | Kmacros are now OClosures and have a new constructor 'kmacro' which |
| 2046 | uses the 'key-parse' syntax. It replaces the old 'kmacro-lambda-form' | 1774 | uses the 'key-parse' syntax. It replaces the old 'kmacro-lambda-form' |
| 2047 | (which is now declared obsolete). | 1775 | (which is now declared obsolete). |
| 2048 | 1776 | ||
| 2049 | --- | ||
| 2050 | ** savehist.el can now truncate variables that are too long. | 1777 | ** savehist.el can now truncate variables that are too long. |
| 2051 | An element of user option 'savehist-additional-variables' can now be | 1778 | An element of user option 'savehist-additional-variables' can now be |
| 2052 | of the form '(VARIABLE . MAX-ELTS)', which means to truncate the | 1779 | of the form '(VARIABLE . MAX-ELTS)', which means to truncate the |
| @@ -2055,7 +1782,6 @@ before saving the value. | |||
| 2055 | 1782 | ||
| 2056 | ** Minibuffer and Completions | 1783 | ** Minibuffer and Completions |
| 2057 | 1784 | ||
| 2058 | +++ | ||
| 2059 | *** New commands for navigating completions from the minibuffer. | 1785 | *** New commands for navigating completions from the minibuffer. |
| 2060 | When the minibuffer is the current buffer, typing 'M-<up>' or | 1786 | When the minibuffer is the current buffer, typing 'M-<up>' or |
| 2061 | 'M-<down>' selects a previous/next completion candidate from the | 1787 | 'M-<down>' selects a previous/next completion candidate from the |
| @@ -2070,13 +1796,11 @@ exit the minibuffer. These keys are also available for in-buffer | |||
| 2070 | completion, but they don't insert candidates automatically, you need | 1796 | completion, but they don't insert candidates automatically, you need |
| 2071 | to type 'M-RET' to insert the selected candidate to the buffer. | 1797 | to type 'M-RET' to insert the selected candidate to the buffer. |
| 2072 | 1798 | ||
| 2073 | +++ | ||
| 2074 | *** Choosing a completion with a prefix argument doesn't exit the minibuffer. | 1799 | *** Choosing a completion with a prefix argument doesn't exit the minibuffer. |
| 2075 | This means that typing 'C-u RET' on a completion candidate in the | 1800 | This means that typing 'C-u RET' on a completion candidate in the |
| 2076 | "*Completions*" buffer inserts the completion into the minibuffer, | 1801 | "*Completions*" buffer inserts the completion into the minibuffer, |
| 2077 | but doesn't exit the minibuffer. | 1802 | but doesn't exit the minibuffer. |
| 2078 | 1803 | ||
| 2079 | +++ | ||
| 2080 | *** The "*Completions*" buffer can now be automatically selected. | 1804 | *** The "*Completions*" buffer can now be automatically selected. |
| 2081 | To enable this behavior, customize the user option | 1805 | To enable this behavior, customize the user option |
| 2082 | 'completion-auto-select' to t, then pressing 'TAB' will switch to the | 1806 | 'completion-auto-select' to t, then pressing 'TAB' will switch to the |
| @@ -2084,13 +1808,11 @@ To enable this behavior, customize the user option | |||
| 2084 | 'second-tab', then the first 'TAB' will display "*Completions*", and | 1808 | 'second-tab', then the first 'TAB' will display "*Completions*", and |
| 2085 | the second one will switch to the "*Completions*" buffer. | 1809 | the second one will switch to the "*Completions*" buffer. |
| 2086 | 1810 | ||
| 2087 | --- | ||
| 2088 | *** New user option 'completion-auto-wrap'. | 1811 | *** New user option 'completion-auto-wrap'. |
| 2089 | When non-nil, the commands 'next-completion' and 'previous-completion' | 1812 | When non-nil, the commands 'next-completion' and 'previous-completion' |
| 2090 | automatically wrap around on reaching the beginning or the end of | 1813 | automatically wrap around on reaching the beginning or the end of |
| 2091 | the "*Completions*" buffer. | 1814 | the "*Completions*" buffer. |
| 2092 | 1815 | ||
| 2093 | +++ | ||
| 2094 | *** New values for the 'completion-auto-help' user option. | 1816 | *** New values for the 'completion-auto-help' user option. |
| 2095 | There are two new values to control the way the "*Completions*" buffer | 1817 | There are two new values to control the way the "*Completions*" buffer |
| 2096 | behaves after pressing a 'TAB' if completion is not unique. The value | 1818 | behaves after pressing a 'TAB' if completion is not unique. The value |
| @@ -2099,61 +1821,51 @@ to complete. The value 'visual' is like 'always', but only updates | |||
| 2099 | the completions if they are already visible. The default value t | 1821 | the completions if they are already visible. The default value t |
| 2100 | always hides the completion buffer after some completion is made. | 1822 | always hides the completion buffer after some completion is made. |
| 2101 | 1823 | ||
| 2102 | --- | ||
| 2103 | *** New commands to complete the minibuffer history. | 1824 | *** New commands to complete the minibuffer history. |
| 2104 | 'minibuffer-complete-history' ('C-x <up>') is like 'minibuffer-complete' | 1825 | 'minibuffer-complete-history' ('C-x <up>') is like 'minibuffer-complete' |
| 2105 | but completes on the history items instead of the default completion | 1826 | but completes on the history items instead of the default completion |
| 2106 | table. 'minibuffer-complete-defaults' ('C-x <down>') completes | 1827 | table. 'minibuffer-complete-defaults' ('C-x <down>') completes |
| 2107 | on the list of default items. | 1828 | on the list of default items. |
| 2108 | 1829 | ||
| 2109 | +++ | ||
| 2110 | *** User option 'minibuffer-eldef-shorten-default' is now obsolete. | 1830 | *** User option 'minibuffer-eldef-shorten-default' is now obsolete. |
| 2111 | Customize the user option 'minibuffer-default-prompt-format' instead. | 1831 | Customize the user option 'minibuffer-default-prompt-format' instead. |
| 2112 | 1832 | ||
| 2113 | +++ | ||
| 2114 | *** New user option 'completions-sort'. | 1833 | *** New user option 'completions-sort'. |
| 2115 | This option controls the sorting of the completion candidates in | 1834 | This option controls the sorting of the completion candidates in |
| 2116 | the "*Completions*" buffer. Available styles are no sorting, | 1835 | the "*Completions*" buffer. Available styles are no sorting, |
| 2117 | alphabetical (the default), or a custom sort function. | 1836 | alphabetical (the default), or a custom sort function. |
| 2118 | 1837 | ||
| 2119 | +++ | ||
| 2120 | *** New user option 'completions-max-height'. | 1838 | *** New user option 'completions-max-height'. |
| 2121 | This option limits the height of the "*Completions*" buffer. | 1839 | This option limits the height of the "*Completions*" buffer. |
| 2122 | 1840 | ||
| 2123 | +++ | ||
| 2124 | *** New user option 'completions-header-format'. | 1841 | *** New user option 'completions-header-format'. |
| 2125 | This is a string to control the header line to show in the | 1842 | This is a string to control the header line to show in the |
| 2126 | "*Completions*" buffer before the list of completions. | 1843 | "*Completions*" buffer before the list of completions. |
| 2127 | If it contains "%s", that is replaced with the number of completions. | 1844 | If it contains "%s", that is replaced with the number of completions. |
| 2128 | If nil, the header line is not shown. | 1845 | If nil, the header line is not shown. |
| 2129 | 1846 | ||
| 2130 | +++ | ||
| 2131 | *** New user option 'completions-highlight-face'. | 1847 | *** New user option 'completions-highlight-face'. |
| 2132 | When this user option names a face, the current | 1848 | When this user option names a face, the current |
| 2133 | candidate in the "*Completions*" buffer is highlighted with that face. | 1849 | candidate in the "*Completions*" buffer is highlighted with that face. |
| 2134 | The nil value disables this highlighting. The default is to highlight | 1850 | The nil value disables this highlighting. The default is to highlight |
| 2135 | using the 'completions-highlight' face. | 1851 | using the 'completions-highlight' face. |
| 2136 | 1852 | ||
| 2137 | +++ | ||
| 2138 | *** You can now define abbrevs for the minibuffer modes. | 1853 | *** You can now define abbrevs for the minibuffer modes. |
| 2139 | 'minibuffer-mode-abbrev-table' and | 1854 | 'minibuffer-mode-abbrev-table' and |
| 2140 | 'minibuffer-inactive-mode-abbrev-table' are now defined. | 1855 | 'minibuffer-inactive-mode-abbrev-table' are now defined. |
| 2141 | 1856 | ||
| 2142 | ** Isearch and Replace | 1857 | ** Isearch and Replace |
| 2143 | 1858 | ||
| 2144 | +++ | ||
| 2145 | *** Changes in how Isearch responds to 'mouse-yank-at-point'. | 1859 | *** Changes in how Isearch responds to 'mouse-yank-at-point'. |
| 2146 | If a user does 'C-s' and then uses '<mouse-2>' ('mouse-yank-primary') | 1860 | If a user does 'C-s' and then uses '<mouse-2>' ('mouse-yank-primary') |
| 2147 | outside the echo area, Emacs will, by default, end the Isearch and | 1861 | outside the echo area, Emacs will, by default, end the Isearch and |
| 2148 | yank the text at mouse cursor. But if 'mouse-yank-at-point' is | 1862 | yank the text at mouse cursor. But if 'mouse-yank-at-point' is |
| 2149 | non-nil, the text will now be added to the Isearch instead. | 1863 | non-nil, the text will now be added to the Isearch instead. |
| 2150 | 1864 | ||
| 2151 | +++ | ||
| 2152 | *** Changes for values 'no' and 'no-ding' of 'isearch-wrap-pause'. | 1865 | *** Changes for values 'no' and 'no-ding' of 'isearch-wrap-pause'. |
| 2153 | Now with these values the search will wrap around not only on repeating | 1866 | Now with these values the search will wrap around not only on repeating |
| 2154 | with 'C-s C-s', but also after typing a character. | 1867 | with 'C-s C-s', but also after typing a character. |
| 2155 | 1868 | ||
| 2156 | +++ | ||
| 2157 | *** New user option 'char-fold-override'. | 1869 | *** New user option 'char-fold-override'. |
| 2158 | Non-nil means that the default definitions of equivalent characters | 1870 | Non-nil means that the default definitions of equivalent characters |
| 2159 | are overridden. | 1871 | are overridden. |
| @@ -2161,7 +1873,6 @@ are overridden. | |||
| 2161 | *** New command 'describe-char-fold-equivalences'. | 1873 | *** New command 'describe-char-fold-equivalences'. |
| 2162 | It displays character equivalences used by 'char-fold-to-regexp'. | 1874 | It displays character equivalences used by 'char-fold-to-regexp'. |
| 2163 | 1875 | ||
| 2164 | +++ | ||
| 2165 | *** New command 'isearch-emoji-by-name'. | 1876 | *** New command 'isearch-emoji-by-name'. |
| 2166 | It is bound to 'C-x 8 e RET' during an incremental search. The | 1877 | It is bound to 'C-x 8 e RET' during an incremental search. The |
| 2167 | command accepts the Unicode name of an Emoji (for example, "smiling | 1878 | command accepts the Unicode name of an Emoji (for example, "smiling |
| @@ -2170,7 +1881,6 @@ completion, and adds the Emoji into the search string. | |||
| 2170 | 1881 | ||
| 2171 | ** GDB/MI | 1882 | ** GDB/MI |
| 2172 | 1883 | ||
| 2173 | --- | ||
| 2174 | *** New user option 'gdb-debuginfod-enable-setting'. | 1884 | *** New user option 'gdb-debuginfod-enable-setting'. |
| 2175 | On capable platforms, GDB 10.1 and later can download missing source | 1885 | On capable platforms, GDB 10.1 and later can download missing source |
| 2176 | and debug info files from special-purpose servers, called "debuginfod | 1886 | and debug info files from special-purpose servers, called "debuginfod |
| @@ -2182,18 +1892,15 @@ that session. | |||
| 2182 | 1892 | ||
| 2183 | ** Glyphless Characters | 1893 | ** Glyphless Characters |
| 2184 | 1894 | ||
| 2185 | +++ | ||
| 2186 | *** New minor mode 'glyphless-display-mode'. | 1895 | *** New minor mode 'glyphless-display-mode'. |
| 2187 | This allows an easy way to toggle seeing all glyphless characters in | 1896 | This allows an easy way to toggle seeing all glyphless characters in |
| 2188 | the current buffer. | 1897 | the current buffer. |
| 2189 | 1898 | ||
| 2190 | --- | ||
| 2191 | *** The extra slot of 'glyphless-char-display' can now have cons values. | 1899 | *** The extra slot of 'glyphless-char-display' can now have cons values. |
| 2192 | The extra slot of the 'glyphless-char-display' char-table can now have | 1900 | The extra slot of the 'glyphless-char-display' char-table can now have |
| 2193 | values that are cons cells, specifying separate values for text-mode | 1901 | values that are cons cells, specifying separate values for text-mode |
| 2194 | and GUI terminals. | 1902 | and GUI terminals. |
| 2195 | 1903 | ||
| 2196 | +++ | ||
| 2197 | *** "Replacement character" feature for undisplayable characters on TTYs. | 1904 | *** "Replacement character" feature for undisplayable characters on TTYs. |
| 2198 | The 'acronym' method of displaying glyphless characters on text-mode | 1905 | The 'acronym' method of displaying glyphless characters on text-mode |
| 2199 | frames treats single-character acronyms specially: they are displayed | 1906 | frames treats single-character acronyms specially: they are displayed |
| @@ -2202,7 +1909,6 @@ without the surrounding '[..]' "box", thus in effect treating such | |||
| 2202 | 1909 | ||
| 2203 | ** Registers | 1910 | ** Registers |
| 2204 | 1911 | ||
| 2205 | +++ | ||
| 2206 | *** Buffer names can now be stored in registers. | 1912 | *** Buffer names can now be stored in registers. |
| 2207 | For instance, to enable jumping to the "*Messages*" buffer with | 1913 | For instance, to enable jumping to the "*Messages*" buffer with |
| 2208 | 'C-x r j m': | 1914 | 'C-x r j m': |
| @@ -2211,53 +1917,43 @@ For instance, to enable jumping to the "*Messages*" buffer with | |||
| 2211 | 1917 | ||
| 2212 | ** Pixel Fill | 1918 | ** Pixel Fill |
| 2213 | 1919 | ||
| 2214 | +++ | ||
| 2215 | *** This is a new package that deals with filling variable-pitch text. | 1920 | *** This is a new package that deals with filling variable-pitch text. |
| 2216 | 1921 | ||
| 2217 | +++ | ||
| 2218 | *** New function 'pixel-fill-region'. | 1922 | *** New function 'pixel-fill-region'. |
| 2219 | This fills the region to be no wider than a specified pixel width. | 1923 | This fills the region to be no wider than a specified pixel width. |
| 2220 | 1924 | ||
| 2221 | ** Info | 1925 | ** Info |
| 2222 | 1926 | ||
| 2223 | +++ | ||
| 2224 | *** Command 'info-apropos' now takes a prefix argument to search for regexps. | 1927 | *** Command 'info-apropos' now takes a prefix argument to search for regexps. |
| 2225 | 1928 | ||
| 2226 | --- | ||
| 2227 | *** New command 'Info-goto-node-web' and key binding 'G'. | 1929 | *** New command 'Info-goto-node-web' and key binding 'G'. |
| 2228 | This will take you to the "gnu.org" web server's version of the current | 1930 | This will take you to the "gnu.org" web server's version of the current |
| 2229 | info node. This command only works for the Emacs and Emacs Lisp manuals. | 1931 | info node. This command only works for the Emacs and Emacs Lisp manuals. |
| 2230 | 1932 | ||
| 2231 | ** Shortdoc | 1933 | ** Shortdoc |
| 2232 | 1934 | ||
| 2233 | --- | ||
| 2234 | *** New command 'shortdoc-copy-function-as-kill' bound to 'w'. | 1935 | *** New command 'shortdoc-copy-function-as-kill' bound to 'w'. |
| 2235 | It copies the name of the function near point into the kill ring. | 1936 | It copies the name of the function near point into the kill ring. |
| 2236 | 1937 | ||
| 2237 | --- | ||
| 2238 | *** 'N' and 'P' are now bound to 'shortdoc-{next,previous}-section'. | 1938 | *** 'N' and 'P' are now bound to 'shortdoc-{next,previous}-section'. |
| 2239 | This is in addition to the old keybindings 'C-c C-n' and 'C-c C-p'. | 1939 | This is in addition to the old keybindings 'C-c C-n' and 'C-c C-p'. |
| 2240 | 1940 | ||
| 2241 | ** VC | 1941 | ** VC |
| 2242 | 1942 | ||
| 2243 | --- | ||
| 2244 | *** New command 'vc-pull-and-push'. | 1943 | *** New command 'vc-pull-and-push'. |
| 2245 | This commands first does a "pull" command, and if that is successful, | 1944 | This commands first does a "pull" command, and if that is successful, |
| 2246 | does a "push" command afterwards. Currently supported in Git and Bzr. | 1945 | does a "push" command afterwards. Currently supported in Git and Bzr. |
| 2247 | 1946 | ||
| 2248 | +++ | ||
| 2249 | *** 'C-x v b' prefix key is used now for branch commands. | 1947 | *** 'C-x v b' prefix key is used now for branch commands. |
| 2250 | 'vc-print-branch-log' is bound to 'C-x v b l', and new commands are | 1948 | 'vc-print-branch-log' is bound to 'C-x v b l', and new commands are |
| 2251 | 'vc-create-branch' ('C-x v b c') and 'vc-switch-branch' ('C-x v b s'). | 1949 | 'vc-create-branch' ('C-x v b c') and 'vc-switch-branch' ('C-x v b s'). |
| 2252 | The VC Directory buffer now uses the prefix 'b' for these branch-related | 1950 | The VC Directory buffer now uses the prefix 'b' for these branch-related |
| 2253 | commands. | 1951 | commands. |
| 2254 | 1952 | ||
| 2255 | +++ | ||
| 2256 | *** New command 'vc-dir-mark-by-regexp' bound to '% m' and '* %'. | 1953 | *** New command 'vc-dir-mark-by-regexp' bound to '% m' and '* %'. |
| 2257 | This command marks files based on a regexp. If given a prefix | 1954 | This command marks files based on a regexp. If given a prefix |
| 2258 | argument, unmark instead. | 1955 | argument, unmark instead. |
| 2259 | 1956 | ||
| 2260 | +++ | ||
| 2261 | *** New command 'C-x v !' ('vc-edit-next-command'). | 1957 | *** New command 'C-x v !' ('vc-edit-next-command'). |
| 2262 | This prefix command requests editing of the next VC shell command | 1958 | This prefix command requests editing of the next VC shell command |
| 2263 | before execution. For example, in a Git repository, you can produce a | 1959 | before execution. For example, in a Git repository, you can produce a |
| @@ -2268,7 +1964,6 @@ The intention is that this command can be used to access a wide | |||
| 2268 | variety of version control system-specific functionality from VC | 1964 | variety of version control system-specific functionality from VC |
| 2269 | without complexifying either the VC command set or the backend API. | 1965 | without complexifying either the VC command set or the backend API. |
| 2270 | 1966 | ||
| 2271 | --- | ||
| 2272 | *** 'C-x v v' in a diffs buffer allows to commit only some of the changes. | 1967 | *** 'C-x v v' in a diffs buffer allows to commit only some of the changes. |
| 2273 | This command is intended to allow you to commit only some of the | 1968 | This command is intended to allow you to commit only some of the |
| 2274 | changes you have in your working tree. Begin by creating a buffer | 1969 | changes you have in your working tree. Begin by creating a buffer |
| @@ -2277,7 +1972,6 @@ with the changes against the last commit, e.g. with 'C-x v D' | |||
| 2277 | want to commit. Finally, type 'C-x v v' in that diff buffer to commit | 1972 | want to commit. Finally, type 'C-x v v' in that diff buffer to commit |
| 2278 | only part of your changes, those whose hunks were left in the buffer. | 1973 | only part of your changes, those whose hunks were left in the buffer. |
| 2279 | 1974 | ||
| 2280 | --- | ||
| 2281 | *** 'C-x v v' on an unregistered file will now use the most specific backend. | 1975 | *** 'C-x v v' on an unregistered file will now use the most specific backend. |
| 2282 | Previously, if you had an SVN-covered "~/" directory, and a Git-covered | 1976 | Previously, if you had an SVN-covered "~/" directory, and a Git-covered |
| 2283 | directory in "~/foo/bar", using 'C-x v v' on a new, unregistered file | 1977 | directory in "~/foo/bar", using 'C-x v v' on a new, unregistered file |
| @@ -2285,28 +1979,23 @@ directory in "~/foo/bar", using 'C-x v v' on a new, unregistered file | |||
| 2285 | in the Git repository in "~/foo/bar". This makes this command | 1979 | in the Git repository in "~/foo/bar". This makes this command |
| 2286 | consistent with 'vc-responsible-backend'. | 1980 | consistent with 'vc-responsible-backend'. |
| 2287 | 1981 | ||
| 2288 | --- | ||
| 2289 | *** Log Edit now fontifies long Git commit summary lines. | 1982 | *** Log Edit now fontifies long Git commit summary lines. |
| 2290 | Writing shorter summary lines avoids truncation in contexts in which | 1983 | Writing shorter summary lines avoids truncation in contexts in which |
| 2291 | Git commands display summary lines. See the two new user options | 1984 | Git commands display summary lines. See the two new user options |
| 2292 | 'vc-git-log-edit-summary-target-len' and 'vc-git-log-edit-summary-max-len'. | 1985 | 'vc-git-log-edit-summary-target-len' and 'vc-git-log-edit-summary-max-len'. |
| 2293 | 1986 | ||
| 2294 | --- | ||
| 2295 | *** New 'log-edit-headers-separator' face. | 1987 | *** New 'log-edit-headers-separator' face. |
| 2296 | It is used to style the line that separates the 'log-edit' headers | 1988 | It is used to style the line that separates the 'log-edit' headers |
| 2297 | from the 'log-edit' summary. | 1989 | from the 'log-edit' summary. |
| 2298 | 1990 | ||
| 2299 | --- | ||
| 2300 | *** The function 'vc-read-revision' accepts a new MULTIPLE argument. | 1991 | *** The function 'vc-read-revision' accepts a new MULTIPLE argument. |
| 2301 | If non-nil, multiple revisions can be queried. This is done using | 1992 | If non-nil, multiple revisions can be queried. This is done using |
| 2302 | 'completing-read-multiple'. | 1993 | 'completing-read-multiple'. |
| 2303 | 1994 | ||
| 2304 | --- | ||
| 2305 | *** New function 'vc-read-multiple-revisions'. | 1995 | *** New function 'vc-read-multiple-revisions'. |
| 2306 | This function invokes 'vc-read-revision' with a non-nil value for | 1996 | This function invokes 'vc-read-revision' with a non-nil value for |
| 2307 | MULTIPLE. | 1997 | MULTIPLE. |
| 2308 | 1998 | ||
| 2309 | +++ | ||
| 2310 | *** New command 'vc-prepare-patch'. | 1999 | *** New command 'vc-prepare-patch'. |
| 2311 | Patches for any version control system can be prepared using VC. The | 2000 | Patches for any version control system can be prepared using VC. The |
| 2312 | command will query what commits to send and will compose messages for | 2001 | command will query what commits to send and will compose messages for |
| @@ -2316,32 +2005,26 @@ modified by the user options 'vc-prepare-patches-separately' and | |||
| 2316 | 2005 | ||
| 2317 | ** Message | 2006 | ** Message |
| 2318 | 2007 | ||
| 2319 | --- | ||
| 2320 | *** New user option 'mml-attach-file-at-the-end'. | 2008 | *** New user option 'mml-attach-file-at-the-end'. |
| 2321 | If non-nil, 'C-c C-a' will put attached files at the end of the message. | 2009 | If non-nil, 'C-c C-a' will put attached files at the end of the message. |
| 2322 | 2010 | ||
| 2323 | --- | ||
| 2324 | *** Message Mode now supports image yanking. | 2011 | *** Message Mode now supports image yanking. |
| 2325 | 2012 | ||
| 2326 | +++ | ||
| 2327 | *** New user option 'message-server-alist'. | 2013 | *** New user option 'message-server-alist'. |
| 2328 | This controls automatic insertion of the "X-Message-SMTP-Method" | 2014 | This controls automatic insertion of the "X-Message-SMTP-Method" |
| 2329 | header before sending a message. | 2015 | header before sending a message. |
| 2330 | 2016 | ||
| 2331 | ** HTML Mode | 2017 | ** HTML Mode |
| 2332 | 2018 | ||
| 2333 | --- | ||
| 2334 | *** HTML Mode now supports "text/html" and "image/*" yanking. | 2019 | *** HTML Mode now supports "text/html" and "image/*" yanking. |
| 2335 | 2020 | ||
| 2336 | ** Texinfo Mode | 2021 | ** Texinfo Mode |
| 2337 | 2022 | ||
| 2338 | --- | ||
| 2339 | *** 'texinfo-mode' now has a specialized 'narrow-to-defun' definition. | 2023 | *** 'texinfo-mode' now has a specialized 'narrow-to-defun' definition. |
| 2340 | It narrows to the current node. | 2024 | It narrows to the current node. |
| 2341 | 2025 | ||
| 2342 | ** EUDC | 2026 | ** EUDC |
| 2343 | 2027 | ||
| 2344 | +++ | ||
| 2345 | *** Deprecations planned for next release. | 2028 | *** Deprecations planned for next release. |
| 2346 | After Emacs 29.1, some aspects of EUDC will be deprecated. The goal | 2029 | After Emacs 29.1, some aspects of EUDC will be deprecated. The goal |
| 2347 | of these deprecations is to simplify EUDC server configuration by | 2030 | of these deprecations is to simplify EUDC server configuration by |
| @@ -2361,20 +2044,17 @@ possible servers, instead of requiring a call to 'eudc-set-server' | |||
| 2361 | like it does in this release. The default value of | 2044 | like it does in this release. The default value of |
| 2362 | 'eudc-ignore-options-file' will be changed from nil to t. | 2045 | 'eudc-ignore-options-file' will be changed from nil to t. |
| 2363 | 2046 | ||
| 2364 | +++ | ||
| 2365 | *** New user option 'eudc-ignore-options-file' that defaults to nil. | 2047 | *** New user option 'eudc-ignore-options-file' that defaults to nil. |
| 2366 | The 'eudc-ignore-options-file' user option can be configured to ignore | 2048 | The 'eudc-ignore-options-file' user option can be configured to ignore |
| 2367 | the 'eudc-options-file' (typically "~/.emacs.d/eudc-options"). Most | 2049 | the 'eudc-options-file' (typically "~/.emacs.d/eudc-options"). Most |
| 2368 | users should configure this to t and put EUDC configuration in the | 2050 | users should configure this to t and put EUDC configuration in the |
| 2369 | main Emacs initialization file ("~/.emacs" or "~/.emacs.d/init.el"). | 2051 | main Emacs initialization file ("~/.emacs" or "~/.emacs.d/init.el"). |
| 2370 | 2052 | ||
| 2371 | +++ | ||
| 2372 | *** 'eudc-expansion-overwrites-query' to 'eudc-expansion-save-query-as-kill'. | 2053 | *** 'eudc-expansion-overwrites-query' to 'eudc-expansion-save-query-as-kill'. |
| 2373 | The user option 'eudc-expansion-overwrites-query' is renamed to | 2054 | The user option 'eudc-expansion-overwrites-query' is renamed to |
| 2374 | 'eudc-expansion-save-query-as-kill' to reflect the actual behavior of | 2055 | 'eudc-expansion-save-query-as-kill' to reflect the actual behavior of |
| 2375 | the user option. The former is kept as alias. | 2056 | the user option. The former is kept as alias. |
| 2376 | 2057 | ||
| 2377 | +++ | ||
| 2378 | *** New command 'eudc-expand-try-all'. | 2058 | *** New command 'eudc-expand-try-all'. |
| 2379 | This command can be used in place of 'eudc-expand-inline'. It takes a | 2059 | This command can be used in place of 'eudc-expand-inline'. It takes a |
| 2380 | prefix argument that causes 'eudc-expand-try-all' to return matches | 2060 | prefix argument that causes 'eudc-expand-try-all' to return matches |
| @@ -2382,7 +2062,6 @@ from all servers instead of just the matches from the first server to | |||
| 2382 | return any. This is useful for example, if one wants to search LDAP | 2062 | return any. This is useful for example, if one wants to search LDAP |
| 2383 | for a name that happens to match a contact in one's BBDB. | 2063 | for a name that happens to match a contact in one's BBDB. |
| 2384 | 2064 | ||
| 2385 | +++ | ||
| 2386 | *** New behavior and default for user option 'eudc-inline-expansion-format'. | 2065 | *** New behavior and default for user option 'eudc-inline-expansion-format'. |
| 2387 | EUDC inline expansion result formatting defaulted to | 2066 | EUDC inline expansion result formatting defaulted to |
| 2388 | 2067 | ||
| @@ -2402,25 +2081,21 @@ is called, and the returned values are used to populate the phrase and | |||
| 2402 | comment parts (see RFC 5322 for definitions). In both cases, the | 2081 | comment parts (see RFC 5322 for definitions). In both cases, the |
| 2403 | phrase part will be automatically quoted if necessary. | 2082 | phrase part will be automatically quoted if necessary. |
| 2404 | 2083 | ||
| 2405 | +++ | ||
| 2406 | *** New function 'eudc-capf-complete' with 'message-mode' integration. | 2084 | *** New function 'eudc-capf-complete' with 'message-mode' integration. |
| 2407 | EUDC can now contribute email addresses to 'completion-at-point' by | 2085 | EUDC can now contribute email addresses to 'completion-at-point' by |
| 2408 | adding the new function 'eudc-capf-complete' to | 2086 | adding the new function 'eudc-capf-complete' to |
| 2409 | 'completion-at-point-functions' in 'message-mode'. | 2087 | 'completion-at-point-functions' in 'message-mode'. |
| 2410 | 2088 | ||
| 2411 | +++ | ||
| 2412 | *** Additional attributes of query and results in eudcb-macos-contacts.el. | 2089 | *** Additional attributes of query and results in eudcb-macos-contacts.el. |
| 2413 | The EUDC back-end for the macOS Contacts app now provides a wider set | 2090 | The EUDC back-end for the macOS Contacts app now provides a wider set |
| 2414 | of attributes to use for queries, and delivers more attributes in | 2091 | of attributes to use for queries, and delivers more attributes in |
| 2415 | query results. | 2092 | query results. |
| 2416 | 2093 | ||
| 2417 | +++ | ||
| 2418 | *** New back-end for ecomplete. | 2094 | *** New back-end for ecomplete. |
| 2419 | A new back-end for ecomplete allows information from that database to | 2095 | A new back-end for ecomplete allows information from that database to |
| 2420 | be queried by EUDC, too. The attributes present in the EUDC query are | 2096 | be queried by EUDC, too. The attributes present in the EUDC query are |
| 2421 | used to select the entry type in the ecomplete database. | 2097 | used to select the entry type in the ecomplete database. |
| 2422 | 2098 | ||
| 2423 | +++ | ||
| 2424 | *** New back-end for mailabbrev. | 2099 | *** New back-end for mailabbrev. |
| 2425 | A new back-end for mailabbrev allows information from that database to | 2100 | A new back-end for mailabbrev allows information from that database to |
| 2426 | be queried by EUDC, too. Only the attributes 'email', 'name', and | 2101 | be queried by EUDC, too. Only the attributes 'email', 'name', and |
| @@ -2428,7 +2103,6 @@ be queried by EUDC, too. Only the attributes 'email', 'name', and | |||
| 2428 | 2103 | ||
| 2429 | ** EWW/SHR | 2104 | ** EWW/SHR |
| 2430 | 2105 | ||
| 2431 | +++ | ||
| 2432 | *** New user option to automatically rename EWW buffers. | 2106 | *** New user option to automatically rename EWW buffers. |
| 2433 | The 'eww-auto-rename-buffer' user option can be configured to rename | 2107 | The 'eww-auto-rename-buffer' user option can be configured to rename |
| 2434 | rendered web pages by using their title, URL, or a user-defined | 2108 | rendered web pages by using their title, URL, or a user-defined |
| @@ -2437,26 +2111,22 @@ of the resulting name is controlled by the user option | |||
| 2437 | 'eww-buffer-name-length'. By default, no automatic renaming is | 2111 | 'eww-buffer-name-length'. By default, no automatic renaming is |
| 2438 | performed. | 2112 | performed. |
| 2439 | 2113 | ||
| 2440 | +++ | ||
| 2441 | *** New user option 'shr-allowed-images'. | 2114 | *** New user option 'shr-allowed-images'. |
| 2442 | This complements 'shr-blocked-images', but allows specifying just the | 2115 | This complements 'shr-blocked-images', but allows specifying just the |
| 2443 | allowed images. | 2116 | allowed images. |
| 2444 | 2117 | ||
| 2445 | +++ | ||
| 2446 | *** New user option 'shr-use-xwidgets-for-media'. | 2118 | *** New user option 'shr-use-xwidgets-for-media'. |
| 2447 | If non-nil (and Emacs has been built with support for xwidgets), | 2119 | If non-nil (and Emacs has been built with support for xwidgets), |
| 2448 | display <video> elements with an xwidget. Note that this is | 2120 | display <video> elements with an xwidget. Note that this is |
| 2449 | experimental; it is known to crash Emacs on some systems, and just | 2121 | experimental; it is known to crash Emacs on some systems, and just |
| 2450 | doesn't work on other systems. Also see etc/PROBLEMS. | 2122 | doesn't work on other systems. Also see etc/PROBLEMS. |
| 2451 | 2123 | ||
| 2452 | +++ | ||
| 2453 | *** New user option 'eww-url-transformers'. | 2124 | *** New user option 'eww-url-transformers'. |
| 2454 | These are used to alter an URL before using it. By default it removes | 2125 | These are used to alter an URL before using it. By default it removes |
| 2455 | the common "utm_" trackers from URLs. | 2126 | the common "utm_" trackers from URLs. |
| 2456 | 2127 | ||
| 2457 | ** Find Dired | 2128 | ** Find Dired |
| 2458 | 2129 | ||
| 2459 | --- | ||
| 2460 | *** New command 'find-dired-with-command'. | 2130 | *** New command 'find-dired-with-command'. |
| 2461 | This enables users to run 'find-dired' with an arbitrary command, | 2131 | This enables users to run 'find-dired' with an arbitrary command, |
| 2462 | enabling running commands previously unsupported and also enabling new | 2132 | enabling running commands previously unsupported and also enabling new |
| @@ -2464,7 +2134,6 @@ commands to be built on top. | |||
| 2464 | 2134 | ||
| 2465 | ** Gnus | 2135 | ** Gnus |
| 2466 | 2136 | ||
| 2467 | +++ | ||
| 2468 | *** Tool bar changes in Gnus/Message. | 2137 | *** Tool bar changes in Gnus/Message. |
| 2469 | There were previously two styles of tool bars available in Gnus and | 2138 | There were previously two styles of tool bars available in Gnus and |
| 2470 | Message, referred to as 'gnus-summary-tool-bar-retro', | 2139 | Message, referred to as 'gnus-summary-tool-bar-retro', |
| @@ -2474,42 +2143,34 @@ Message, referred to as 'gnus-summary-tool-bar-retro', | |||
| 2474 | well as the icons used), and the "gnome" tool bars are now the only | 2143 | well as the icons used), and the "gnome" tool bars are now the only |
| 2475 | pre-defined toolbars. | 2144 | pre-defined toolbars. |
| 2476 | 2145 | ||
| 2477 | --- | ||
| 2478 | *** 'gnus-summary-up-thread' and 'gnus-summary-down-thread' bindings removed. | 2146 | *** 'gnus-summary-up-thread' and 'gnus-summary-down-thread' bindings removed. |
| 2479 | The 'gnus-summary-down-thread' binding to 'M-C-d' was shadowed by | 2147 | The 'gnus-summary-down-thread' binding to 'M-C-d' was shadowed by |
| 2480 | 'gnus-summary-read-document', and these commands are also available on | 2148 | 'gnus-summary-read-document', and these commands are also available on |
| 2481 | 'T u' and 'T d' respectively. | 2149 | 'T u' and 'T d' respectively. |
| 2482 | 2150 | ||
| 2483 | --- | ||
| 2484 | *** Gnus now uses a variable-pitch font in the headers by default. | 2151 | *** Gnus now uses a variable-pitch font in the headers by default. |
| 2485 | To get the monospace font back, you can put something like the | 2152 | To get the monospace font back, you can put something like the |
| 2486 | following in your ".gnus" file: | 2153 | following in your ".gnus" file: |
| 2487 | 2154 | ||
| 2488 | (set-face-attribute 'gnus-header nil :inherit 'unspecified) | 2155 | (set-face-attribute 'gnus-header nil :inherit 'unspecified) |
| 2489 | 2156 | ||
| 2490 | --- | ||
| 2491 | *** The default value of 'gnus-treat-fold-headers' is now 'head'. | 2157 | *** The default value of 'gnus-treat-fold-headers' is now 'head'. |
| 2492 | 2158 | ||
| 2493 | --- | ||
| 2494 | *** New face 'gnus-header'. | 2159 | *** New face 'gnus-header'. |
| 2495 | All other 'gnus-header-*' faces inherit from this face now. | 2160 | All other 'gnus-header-*' faces inherit from this face now. |
| 2496 | 2161 | ||
| 2497 | +++ | ||
| 2498 | *** New user option 'gnus-treat-emojize-symbols'. | 2162 | *** New user option 'gnus-treat-emojize-symbols'. |
| 2499 | If non-nil, symbols that have an Emoji representation will be | 2163 | If non-nil, symbols that have an Emoji representation will be |
| 2500 | displayed as emojis. The default is nil. | 2164 | displayed as emojis. The default is nil. |
| 2501 | 2165 | ||
| 2502 | +++ | ||
| 2503 | *** New command 'gnus-article-emojize-symbols'. | 2166 | *** New command 'gnus-article-emojize-symbols'. |
| 2504 | This is bound to 'W D e' and will display symbols that have Emoji | 2167 | This is bound to 'W D e' and will display symbols that have Emoji |
| 2505 | representation as Emoji. | 2168 | representation as Emoji. |
| 2506 | 2169 | ||
| 2507 | +++ | ||
| 2508 | *** New mu backend for gnus-search. | 2170 | *** New mu backend for gnus-search. |
| 2509 | Configuration is very similar to the notmuch and namazu backends. It | 2171 | Configuration is very similar to the notmuch and namazu backends. It |
| 2510 | supports the unified search syntax. | 2172 | supports the unified search syntax. |
| 2511 | 2173 | ||
| 2512 | --- | ||
| 2513 | *** 'gnus-html-image-cache-ttl' is now a seconds count. | 2174 | *** 'gnus-html-image-cache-ttl' is now a seconds count. |
| 2514 | Formerly it was a pair of numbers '(A B)' that represented 65536*A + B, | 2175 | Formerly it was a pair of numbers '(A B)' that represented 65536*A + B, |
| 2515 | to cater to older Emacs implementations that lacked bignums. | 2176 | to cater to older Emacs implementations that lacked bignums. |
| @@ -2517,7 +2178,6 @@ The older form still works but is undocumented. | |||
| 2517 | 2178 | ||
| 2518 | ** Rmail | 2179 | ** Rmail |
| 2519 | 2180 | ||
| 2520 | --- | ||
| 2521 | *** Rmail partial summaries can now be applied one on top of the other. | 2181 | *** Rmail partial summaries can now be applied one on top of the other. |
| 2522 | You can now narrow the set of messages selected by Rmail summary's | 2182 | You can now narrow the set of messages selected by Rmail summary's |
| 2523 | criteria (recipients, topic, senders, etc.) by making a summary of the | 2183 | criteria (recipients, topic, senders, etc.) by making a summary of the |
| @@ -2529,19 +2189,16 @@ to your selection. The new user option | |||
| 2529 | the filters is in effect; customize it to a non-nil value to enable | 2189 | the filters is in effect; customize it to a non-nil value to enable |
| 2530 | this feature. | 2190 | this feature. |
| 2531 | 2191 | ||
| 2532 | --- | ||
| 2533 | *** New Rmail summary: by thread. | 2192 | *** New Rmail summary: by thread. |
| 2534 | The new command 'rmail-summary-by-thread' produces a summary of | 2193 | The new command 'rmail-summary-by-thread' produces a summary of |
| 2535 | messages that belong to a single thread of discussion. | 2194 | messages that belong to a single thread of discussion. |
| 2536 | 2195 | ||
| 2537 | ** EIEIO | 2196 | ** EIEIO |
| 2538 | 2197 | ||
| 2539 | +++ | ||
| 2540 | *** 'slot-value' can now be used to access slots of 'cl-defstruct' objects. | 2198 | *** 'slot-value' can now be used to access slots of 'cl-defstruct' objects. |
| 2541 | 2199 | ||
| 2542 | ** Align | 2200 | ** Align |
| 2543 | 2201 | ||
| 2544 | --- | ||
| 2545 | *** Alignment in 'text-mode' has changed. | 2202 | *** Alignment in 'text-mode' has changed. |
| 2546 | Previously, 'M-x align' didn't do anything, and you had to say 'C-u | 2203 | Previously, 'M-x align' didn't do anything, and you had to say 'C-u |
| 2547 | M-x align' for it to work. This has now been changed. The default | 2204 | M-x align' for it to work. This has now been changed. The default |
| @@ -2550,12 +2207,10 @@ for inexperienced users to use. | |||
| 2550 | 2207 | ||
| 2551 | ** Help | 2208 | ** Help |
| 2552 | 2209 | ||
| 2553 | --- | ||
| 2554 | *** New mode, 'emacs-news-view-mode', for viewing the NEWS file. | 2210 | *** New mode, 'emacs-news-view-mode', for viewing the NEWS file. |
| 2555 | This mode is used by the 'C-h N' command, and adds buttons to manual | 2211 | This mode is used by the 'C-h N' command, and adds buttons to manual |
| 2556 | entries and symbol references. | 2212 | entries and symbol references. |
| 2557 | 2213 | ||
| 2558 | --- | ||
| 2559 | *** New user option 'help-link-key-to-documentation'. | 2214 | *** New user option 'help-link-key-to-documentation'. |
| 2560 | When this option is non-nil (which is the default), key bindings | 2215 | When this option is non-nil (which is the default), key bindings |
| 2561 | displayed in the "*Help*" buffer will be linked to the documentation | 2216 | displayed in the "*Help*" buffer will be linked to the documentation |
| @@ -2564,7 +2219,6 @@ key bindings and functions (such as 'C-h b'). | |||
| 2564 | 2219 | ||
| 2565 | ** Info Look | 2220 | ** Info Look |
| 2566 | 2221 | ||
| 2567 | --- | ||
| 2568 | *** info-look specs can now be expanded at run time instead of a load time. | 2222 | *** info-look specs can now be expanded at run time instead of a load time. |
| 2569 | The new ':doc-spec-function' element can be used to compute the | 2223 | The new ':doc-spec-function' element can be used to compute the |
| 2570 | ':doc-spec' element when the user asks for info on that particular | 2224 | ':doc-spec' element when the user asks for info on that particular |
| @@ -2572,19 +2226,16 @@ mode (instead of at load time). | |||
| 2572 | 2226 | ||
| 2573 | ** Ansi Color | 2227 | ** Ansi Color |
| 2574 | 2228 | ||
| 2575 | --- | ||
| 2576 | *** Support for ANSI 256-color and 24-bit colors. | 2229 | *** Support for ANSI 256-color and 24-bit colors. |
| 2577 | 256-color and 24-bit color codes are now handled by ANSI color | 2230 | 256-color and 24-bit color codes are now handled by ANSI color |
| 2578 | filters and displayed with the specified color. | 2231 | filters and displayed with the specified color. |
| 2579 | 2232 | ||
| 2580 | ** Term Mode | 2233 | ** Term Mode |
| 2581 | 2234 | ||
| 2582 | --- | ||
| 2583 | *** New user option 'term-bind-function-keys'. | 2235 | *** New user option 'term-bind-function-keys'. |
| 2584 | If non-nil, 'term-mode' will pass the function keys on to the | 2236 | If non-nil, 'term-mode' will pass the function keys on to the |
| 2585 | underlying shell instead of using the normal Emacs bindings. | 2237 | underlying shell instead of using the normal Emacs bindings. |
| 2586 | 2238 | ||
| 2587 | --- | ||
| 2588 | *** Support for ANSI 256-color and 24-bit colors, italic and other fonts. | 2239 | *** Support for ANSI 256-color and 24-bit colors, italic and other fonts. |
| 2589 | 'term-mode' can now display 256-color and 24-bit color codes. It can | 2240 | 'term-mode' can now display 256-color and 24-bit color codes. It can |
| 2590 | also handle ANSI codes for faint, italic and blinking text, displaying | 2241 | also handle ANSI codes for faint, italic and blinking text, displaying |
| @@ -2592,17 +2243,14 @@ it with new 'term-{faint,italic,slow-blink,fast-blink}' faces. | |||
| 2592 | 2243 | ||
| 2593 | ** Project | 2244 | ** Project |
| 2594 | 2245 | ||
| 2595 | +++ | ||
| 2596 | *** 'project-find-file' and 'project-or-external-find-file' can include all. | 2246 | *** 'project-find-file' and 'project-or-external-find-file' can include all. |
| 2597 | The commands 'project-find-file' and 'project-or-external-find-file' | 2247 | The commands 'project-find-file' and 'project-or-external-find-file' |
| 2598 | now accept a prefix argument, which is interpreted to mean "include | 2248 | now accept a prefix argument, which is interpreted to mean "include |
| 2599 | all files". | 2249 | all files". |
| 2600 | 2250 | ||
| 2601 | +++ | ||
| 2602 | *** New command 'project-list-buffers' bound to 'C-x p C-b'. | 2251 | *** New command 'project-list-buffers' bound to 'C-x p C-b'. |
| 2603 | This command displays a list of buffers from the current project. | 2252 | This command displays a list of buffers from the current project. |
| 2604 | 2253 | ||
| 2605 | +++ | ||
| 2606 | *** 'project-kill-buffers' can display the list of buffers to kill. | 2254 | *** 'project-kill-buffers' can display the list of buffers to kill. |
| 2607 | Customize the user option 'project-kill-buffers-display-buffer-list' | 2255 | Customize the user option 'project-kill-buffers-display-buffer-list' |
| 2608 | to enable the display of the buffer list. | 2256 | to enable the display of the buffer list. |
| @@ -2614,19 +2262,16 @@ or projects outside of VCS repositories. | |||
| 2614 | As a consequence, the 'VC project backend' is formally renamed to | 2262 | As a consequence, the 'VC project backend' is formally renamed to |
| 2615 | 'VC-aware project backend'. | 2263 | 'VC-aware project backend'. |
| 2616 | 2264 | ||
| 2617 | +++ | ||
| 2618 | *** New user option 'project-vc-include-untracked'. | 2265 | *** New user option 'project-vc-include-untracked'. |
| 2619 | If non-nil, files untracked by a VCS are considered to be part of | 2266 | If non-nil, files untracked by a VCS are considered to be part of |
| 2620 | the project by a VC project based on that VCS. | 2267 | the project by a VC project based on that VCS. |
| 2621 | 2268 | ||
| 2622 | ** Xref | 2269 | ** Xref |
| 2623 | 2270 | ||
| 2624 | +++ | ||
| 2625 | *** New command 'xref-go-forward'. | 2271 | *** New command 'xref-go-forward'. |
| 2626 | It is bound to 'C-M-,' and jumps to the location where you previously | 2272 | It is bound to 'C-M-,' and jumps to the location where you previously |
| 2627 | invoked 'xref-go-back' ('M-,', also known as 'xref-pop-marker-stack'). | 2273 | invoked 'xref-go-back' ('M-,', also known as 'xref-pop-marker-stack'). |
| 2628 | 2274 | ||
| 2629 | +++ | ||
| 2630 | *** The depth of the Xref marker stack is now infinite. | 2275 | *** The depth of the Xref marker stack is now infinite. |
| 2631 | The implementation of the Xref marker stack was changed in a way that | 2276 | The implementation of the Xref marker stack was changed in a way that |
| 2632 | allows as many places to be saved on the stack as needed, limited only | 2277 | allows as many places to be saved on the stack as needed, limited only |
| @@ -2634,19 +2279,15 @@ by the available memory. Therefore, the variables | |||
| 2634 | 'find-tag-marker-ring-length' and 'xref-marker-ring-length' are now | 2279 | 'find-tag-marker-ring-length' and 'xref-marker-ring-length' are now |
| 2635 | obsolete and unused; setting them has no effect. | 2280 | obsolete and unused; setting them has no effect. |
| 2636 | 2281 | ||
| 2637 | +++ | ||
| 2638 | *** 'xref-query-replace-in-results' prompting change. | 2282 | *** 'xref-query-replace-in-results' prompting change. |
| 2639 | This command no longer prompts for FROM when called without prefix | 2283 | This command no longer prompts for FROM when called without prefix |
| 2640 | argument. This makes the most common case faster: replacing entire | 2284 | argument. This makes the most common case faster: replacing entire |
| 2641 | matches. | 2285 | matches. |
| 2642 | 2286 | ||
| 2643 | +++ | ||
| 2644 | *** New command 'xref-find-references-and-replace' to rename one identifier. | 2287 | *** New command 'xref-find-references-and-replace' to rename one identifier. |
| 2645 | 2288 | ||
| 2646 | --- | ||
| 2647 | *** New variable 'xref-current-item' (renamed from a private version). | 2289 | *** New variable 'xref-current-item' (renamed from a private version). |
| 2648 | 2290 | ||
| 2649 | --- | ||
| 2650 | *** New function 'xref-show-xrefs'. | 2291 | *** New function 'xref-show-xrefs'. |
| 2651 | 2292 | ||
| 2652 | *** 'outline-minor-mode' is supported in Xref buffers. | 2293 | *** 'outline-minor-mode' is supported in Xref buffers. |
| @@ -2655,12 +2296,10 @@ You can enable outlining by adding 'outline-minor-mode' to | |||
| 2655 | 2296 | ||
| 2656 | ** File Notifications | 2297 | ** File Notifications |
| 2657 | 2298 | ||
| 2658 | +++ | ||
| 2659 | *** The new command 'file-notify-rm-all-watches' removes all file notifications. | 2299 | *** The new command 'file-notify-rm-all-watches' removes all file notifications. |
| 2660 | 2300 | ||
| 2661 | ** Sql | 2301 | ** Sql |
| 2662 | 2302 | ||
| 2663 | --- | ||
| 2664 | *** Sql now supports sending of passwords in-process. | 2303 | *** Sql now supports sending of passwords in-process. |
| 2665 | To improve security, if an sql product has ':password-in-comint' set | 2304 | To improve security, if an sql product has ':password-in-comint' set |
| 2666 | to t, a password supplied via the minibuffer will be sent in-process, | 2305 | to t, a password supplied via the minibuffer will be sent in-process, |
| @@ -2668,54 +2307,44 @@ as opposed to via the command-line. | |||
| 2668 | 2307 | ||
| 2669 | ** Image Mode | 2308 | ** Image Mode |
| 2670 | 2309 | ||
| 2671 | +++ | ||
| 2672 | *** New command 'image-transform-fit-to-window'. | 2310 | *** New command 'image-transform-fit-to-window'. |
| 2673 | This command fits the image to the current window by scaling down or | 2311 | This command fits the image to the current window by scaling down or |
| 2674 | up as necessary. Unlike 'image-transform-fit-both', this can scale | 2312 | up as necessary. Unlike 'image-transform-fit-both', this can scale |
| 2675 | the image up as well as down. It is bound to 's w' in Image Mode by | 2313 | the image up as well as down. It is bound to 's w' in Image Mode by |
| 2676 | default. | 2314 | default. |
| 2677 | 2315 | ||
| 2678 | --- | ||
| 2679 | *** New command 'image-mode-wallpaper-set'. | 2316 | *** New command 'image-mode-wallpaper-set'. |
| 2680 | This command sets the desktop background to the current image. It is | 2317 | This command sets the desktop background to the current image. It is |
| 2681 | bound to 'W' in Image Mode by default. | 2318 | bound to 'W' in Image Mode by default. |
| 2682 | 2319 | ||
| 2683 | +++ | ||
| 2684 | *** 'image-transform-fit-to-{height,width}' are now obsolete. | 2320 | *** 'image-transform-fit-to-{height,width}' are now obsolete. |
| 2685 | Use the new command 'image-transform-fit-to-window' instead. | 2321 | Use the new command 'image-transform-fit-to-window' instead. |
| 2686 | The keybinding for 'image-transform-fit-to-width' is now 's i'. | 2322 | The keybinding for 'image-transform-fit-to-width' is now 's i'. |
| 2687 | 2323 | ||
| 2688 | --- | ||
| 2689 | *** User option 'image-auto-resize' can now be set to 'fit-window'. | 2324 | *** User option 'image-auto-resize' can now be set to 'fit-window'. |
| 2690 | This works like 'image-transform-fit-to-window'. | 2325 | This works like 'image-transform-fit-to-window'. |
| 2691 | 2326 | ||
| 2692 | --- | ||
| 2693 | *** New user option 'image-auto-resize-max-scale-percent'. | 2327 | *** New user option 'image-auto-resize-max-scale-percent'. |
| 2694 | The new 'fit-window' option will never scale an image more than this | 2328 | The new 'fit-window' option will never scale an image more than this |
| 2695 | much (in percent). It is nil by default, which means no limit. | 2329 | much (in percent). It is nil by default, which means no limit. |
| 2696 | 2330 | ||
| 2697 | --- | ||
| 2698 | *** New user option 'image-text-based-formats'. | 2331 | *** New user option 'image-text-based-formats'. |
| 2699 | This controls whether or not to show a message, when opening certain | 2332 | This controls whether or not to show a message, when opening certain |
| 2700 | image formats, explaining how to edit it as text. The default is to | 2333 | image formats, explaining how to edit it as text. The default is to |
| 2701 | show this message for SVG and XPM. | 2334 | show this message for SVG and XPM. |
| 2702 | 2335 | ||
| 2703 | +++ | ||
| 2704 | *** New command 'image-transform-set-percent'. | 2336 | *** New command 'image-transform-set-percent'. |
| 2705 | It allows resizing the image to a percentage of its original size, and | 2337 | It allows resizing the image to a percentage of its original size, and |
| 2706 | is bound to 's p' in Image mode. | 2338 | is bound to 's p' in Image mode. |
| 2707 | 2339 | ||
| 2708 | +++ | ||
| 2709 | *** 'image-transform-original' renamed to 'image-transform-reset-to-original'. | 2340 | *** 'image-transform-original' renamed to 'image-transform-reset-to-original'. |
| 2710 | The old name was confusing, and is now an obsolete function alias. | 2341 | The old name was confusing, and is now an obsolete function alias. |
| 2711 | 2342 | ||
| 2712 | +++ | ||
| 2713 | *** 'image-transform-reset' renamed to 'image-transform-reset-to-initial'. | 2343 | *** 'image-transform-reset' renamed to 'image-transform-reset-to-initial'. |
| 2714 | The old name was confusing, and is now an obsolete function alias. | 2344 | The old name was confusing, and is now an obsolete function alias. |
| 2715 | 2345 | ||
| 2716 | ** Images | 2346 | ** Images |
| 2717 | 2347 | ||
| 2718 | +++ | ||
| 2719 | *** New commands 'image-crop' and 'image-cut'. | 2348 | *** New commands 'image-crop' and 'image-cut'. |
| 2720 | These commands allow interactively cropping/cutting the image at | 2349 | These commands allow interactively cropping/cutting the image at |
| 2721 | point. The commands are bound to keys 'i c' and 'i x' (respectively) | 2350 | point. The commands are bound to keys 'i c' and 'i x' (respectively) |
| @@ -2723,25 +2352,21 @@ in the local keymap over images. They rely on external programs, by | |||
| 2723 | default "convert" from ImageMagick, to do the actual cropping/eliding | 2352 | default "convert" from ImageMagick, to do the actual cropping/eliding |
| 2724 | of the image file. | 2353 | of the image file. |
| 2725 | 2354 | ||
| 2726 | +++ | ||
| 2727 | *** New commands 'image-flip-horizontally' and 'image-flip-vertically'. | 2355 | *** New commands 'image-flip-horizontally' and 'image-flip-vertically'. |
| 2728 | These commands horizontally and vertically flip the image under point, | 2356 | These commands horizontally and vertically flip the image under point, |
| 2729 | and are bound to 'i h' and 'i v', respectively. | 2357 | and are bound to 'i h' and 'i v', respectively. |
| 2730 | 2358 | ||
| 2731 | +++ | ||
| 2732 | *** Users can now add special image conversion functions. | 2359 | *** Users can now add special image conversion functions. |
| 2733 | This is done via 'image-converter-add-handler'. | 2360 | This is done via 'image-converter-add-handler'. |
| 2734 | 2361 | ||
| 2735 | ** Image Dired | 2362 | ** Image Dired |
| 2736 | 2363 | ||
| 2737 | +++ | ||
| 2738 | *** 'image-dired-image-mode' is now based on 'image-mode'. | 2364 | *** 'image-dired-image-mode' is now based on 'image-mode'. |
| 2739 | This avoids converting images in the background, and makes Image-Dired | 2365 | This avoids converting images in the background, and makes Image-Dired |
| 2740 | noticeably faster. New keybindings from 'image-mode' are now | 2366 | noticeably faster. New keybindings from 'image-mode' are now |
| 2741 | available in the "*image-dired-display-image*" buffer; press '?' or | 2367 | available in the "*image-dired-display-image*" buffer; press '?' or |
| 2742 | 'h' in that buffer to see the full list. | 2368 | 'h' in that buffer to see the full list. |
| 2743 | 2369 | ||
| 2744 | --- | ||
| 2745 | *** Navigation and marking commands now work in image display buffer. | 2370 | *** Navigation and marking commands now work in image display buffer. |
| 2746 | The following new bindings have been added: | 2371 | The following new bindings have been added: |
| 2747 | - 'n', 'SPC' => 'image-dired-display-next' | 2372 | - 'n', 'SPC' => 'image-dired-display-next' |
| @@ -2750,52 +2375,43 @@ The following new bindings have been added: | |||
| 2750 | - 'd' => 'image-dired-flag-thumb-original-file' | 2375 | - 'd' => 'image-dired-flag-thumb-original-file' |
| 2751 | - 'u' => 'image-dired-unmark-thumb-original-file' | 2376 | - 'u' => 'image-dired-unmark-thumb-original-file' |
| 2752 | 2377 | ||
| 2753 | --- | ||
| 2754 | *** New command 'image-dired-unmark-all-marks'. | 2378 | *** New command 'image-dired-unmark-all-marks'. |
| 2755 | It removes all marks from all files in the thumbnail and the | 2379 | It removes all marks from all files in the thumbnail and the |
| 2756 | associated Dired buffer, and is bound to 'U' in the thumbnail and | 2380 | associated Dired buffer, and is bound to 'U' in the thumbnail and |
| 2757 | display buffer. | 2381 | display buffer. |
| 2758 | 2382 | ||
| 2759 | --- | ||
| 2760 | *** New command 'image-dired-do-flagged-delete'. | 2383 | *** New command 'image-dired-do-flagged-delete'. |
| 2761 | It deletes all flagged files, and is bound to 'x' in the thumbnail | 2384 | It deletes all flagged files, and is bound to 'x' in the thumbnail |
| 2762 | buffer. It replaces the command 'image-dired-delete-marked', which is | 2385 | buffer. It replaces the command 'image-dired-delete-marked', which is |
| 2763 | now an obsolete alias. | 2386 | now an obsolete alias. |
| 2764 | 2387 | ||
| 2765 | --- | ||
| 2766 | *** New command 'image-dired-copy-filename-as-kill'. | 2388 | *** New command 'image-dired-copy-filename-as-kill'. |
| 2767 | It copies the name of the marked or current image to the kill ring, | 2389 | It copies the name of the marked or current image to the kill ring, |
| 2768 | and is bound to 'w' in the thumbnail buffer. | 2390 | and is bound to 'w' in the thumbnail buffer. |
| 2769 | 2391 | ||
| 2770 | --- | ||
| 2771 | *** New command 'image-dired-wallpaper-set'. | 2392 | *** New command 'image-dired-wallpaper-set'. |
| 2772 | This command sets the desktop background to the image at point in the | 2393 | This command sets the desktop background to the image at point in the |
| 2773 | thumbnail buffer. It is bound to 'W' by default. | 2394 | thumbnail buffer. It is bound to 'W' by default. |
| 2774 | 2395 | ||
| 2775 | --- | ||
| 2776 | *** 'image-dired-slideshow-start' is now bound to 'S'. | 2396 | *** 'image-dired-slideshow-start' is now bound to 'S'. |
| 2777 | It is bound in both the thumbnail and display buffer, and no longer | 2397 | It is bound in both the thumbnail and display buffer, and no longer |
| 2778 | prompts for a timeout; use a numerical prefix (e.g. 'C-u 8 S') to set | 2398 | prompts for a timeout; use a numerical prefix (e.g. 'C-u 8 S') to set |
| 2779 | the timeout. | 2399 | the timeout. |
| 2780 | 2400 | ||
| 2781 | --- | ||
| 2782 | *** New user option 'image-dired-marking-shows-next'. | 2401 | *** New user option 'image-dired-marking-shows-next'. |
| 2783 | If this option is non-nil (the default), marking, unmarking or | 2402 | If this option is non-nil (the default), marking, unmarking or |
| 2784 | flagging an image in either the thumbnail or display buffer shows the | 2403 | flagging an image in either the thumbnail or display buffer shows the |
| 2785 | next image. | 2404 | next image. |
| 2786 | 2405 | ||
| 2787 | --- | ||
| 2788 | *** New face 'image-dired-thumb-flagged'. | 2406 | *** New face 'image-dired-thumb-flagged'. |
| 2789 | If 'image-dired-thumb-mark' is non-nil (the default), this face is | 2407 | If 'image-dired-thumb-mark' is non-nil (the default), this face is |
| 2790 | used for images that are flagged for deletion in the Dired buffer | 2408 | used for images that are flagged for deletion in the Dired buffer |
| 2791 | associated with Image-Dired. | 2409 | associated with Image-Dired. |
| 2792 | 2410 | ||
| 2793 | --- | ||
| 2794 | *** Image information is now shown in the header line of the thumbnail buffer. | 2411 | *** Image information is now shown in the header line of the thumbnail buffer. |
| 2795 | This replaces the message that most navigation commands in the | 2412 | This replaces the message that most navigation commands in the |
| 2796 | thumbnail buffer used to show at the bottom of the screen. | 2413 | thumbnail buffer used to show at the bottom of the screen. |
| 2797 | 2414 | ||
| 2798 | --- | ||
| 2799 | *** New specifiers for 'image-dired-display-properties-format'. | 2415 | *** New specifiers for 'image-dired-display-properties-format'. |
| 2800 | This is used to format the new header line. The new specifiers are: | 2416 | This is used to format the new header line. The new specifiers are: |
| 2801 | "%d" for the name of the directory that the file is in, "%n" for | 2417 | "%d" for the name of the directory that the file is in, "%n" for |
| @@ -2806,7 +2422,6 @@ old format, add this to your Init file: | |||
| 2806 | 2422 | ||
| 2807 | (setopt image-dired-display-properties-format "%b: %f (%t): %c") | 2423 | (setopt image-dired-display-properties-format "%b: %f (%t): %c") |
| 2808 | 2424 | ||
| 2809 | --- | ||
| 2810 | *** New faces for the header line of the thumbnail buffer. | 2425 | *** New faces for the header line of the thumbnail buffer. |
| 2811 | These faces correspond to different parts of the header line, as | 2426 | These faces correspond to different parts of the header line, as |
| 2812 | specified in 'image-dired-display-properties-format': | 2427 | specified in 'image-dired-display-properties-format': |
| @@ -2815,37 +2430,31 @@ specified in 'image-dired-display-properties-format': | |||
| 2815 | - 'image-dired-thumb-header-file-size' | 2430 | - 'image-dired-thumb-header-file-size' |
| 2816 | - 'image-dired-thumb-header-image-count' | 2431 | - 'image-dired-thumb-header-image-count' |
| 2817 | 2432 | ||
| 2818 | --- | ||
| 2819 | *** PDF support. | 2433 | *** PDF support. |
| 2820 | Image-Dired now displays thumbnails for PDF files. Type 'RET' on a | 2434 | Image-Dired now displays thumbnails for PDF files. Type 'RET' on a |
| 2821 | PDF file in the thumbnail buffer to visit the corresponding PDF. | 2435 | PDF file in the thumbnail buffer to visit the corresponding PDF. |
| 2822 | 2436 | ||
| 2823 | --- | ||
| 2824 | *** Support GraphicsMagick command line tools. | 2437 | *** Support GraphicsMagick command line tools. |
| 2825 | Support for the GraphicsMagick command line tool ("gm") has been | 2438 | Support for the GraphicsMagick command line tool ("gm") has been |
| 2826 | added, and is used when it is available instead of ImageMagick. | 2439 | added, and is used when it is available instead of ImageMagick. |
| 2827 | 2440 | ||
| 2828 | --- | ||
| 2829 | *** Support Thumbnail Managing Standard v0.9.0 (Dec 2020). | 2441 | *** Support Thumbnail Managing Standard v0.9.0 (Dec 2020). |
| 2830 | This standard allows sharing generated thumbnails across different | 2442 | This standard allows sharing generated thumbnails across different |
| 2831 | programs. Version 0.9.0 adds two larger thumbnail sizes: 512x512 and | 2443 | programs. Version 0.9.0 adds two larger thumbnail sizes: 512x512 and |
| 2832 | 1024x1024 pixels. See the user option 'image-dired-thumbnail-storage' | 2444 | 1024x1024 pixels. See the user option 'image-dired-thumbnail-storage' |
| 2833 | to use it; it is not enabled by default. | 2445 | to use it; it is not enabled by default. |
| 2834 | 2446 | ||
| 2835 | --- | ||
| 2836 | *** Reduce dependency on external "exiftool" program. | 2447 | *** Reduce dependency on external "exiftool" program. |
| 2837 | The 'image-dired-copy-with-exif-file-name' command no longer requires | 2448 | The 'image-dired-copy-with-exif-file-name' command no longer requires |
| 2838 | an external "exiftool" program to be available. The user options | 2449 | an external "exiftool" program to be available. The user options |
| 2839 | 'image-dired-cmd-read-exif-data-program' and | 2450 | 'image-dired-cmd-read-exif-data-program' and |
| 2840 | 'image-dired-cmd-read-exif-data-options' are now obsolete. | 2451 | 'image-dired-cmd-read-exif-data-options' are now obsolete. |
| 2841 | 2452 | ||
| 2842 | --- | ||
| 2843 | *** Support for bookmark.el. | 2453 | *** Support for bookmark.el. |
| 2844 | The command 'bookmark-set' (bound to 'C-x r m') is now supported in | 2454 | The command 'bookmark-set' (bound to 'C-x r m') is now supported in |
| 2845 | the thumbnail view, and will create a bookmark that opens the current | 2455 | the thumbnail view, and will create a bookmark that opens the current |
| 2846 | directory in Image-Dired. | 2456 | directory in Image-Dired. |
| 2847 | 2457 | ||
| 2848 | --- | ||
| 2849 | *** The 'image-dired-slideshow-start' command no longer prompts. | 2458 | *** The 'image-dired-slideshow-start' command no longer prompts. |
| 2850 | It no longer inconveniently prompts for a number of images and a | 2459 | It no longer inconveniently prompts for a number of images and a |
| 2851 | delay: it runs indefinitely, but stops automatically on any command. | 2460 | delay: it runs indefinitely, but stops automatically on any command. |
| @@ -2853,7 +2462,6 @@ You can set the delay with a prefix argument, or a negative prefix | |||
| 2853 | argument to prompt for a delay. Customize the user option | 2462 | argument to prompt for a delay. Customize the user option |
| 2854 | 'image-dired-slideshow-delay' to change the default from 5 seconds. | 2463 | 'image-dired-slideshow-delay' to change the default from 5 seconds. |
| 2855 | 2464 | ||
| 2856 | +++ | ||
| 2857 | *** 'image-dired-show-all-from-dir-max-files' increased to 1000. | 2465 | *** 'image-dired-show-all-from-dir-max-files' increased to 1000. |
| 2858 | This user option controls asking for confirmation when starting | 2466 | This user option controls asking for confirmation when starting |
| 2859 | Image-Dired in a directory with many files. Since Image-Dired creates | 2467 | Image-Dired in a directory with many files. Since Image-Dired creates |
| @@ -2861,17 +2469,13 @@ thumbnails in the background in recent versions, this is not as | |||
| 2861 | important as it used to be. You can now also customize this option to | 2469 | important as it used to be. You can now also customize this option to |
| 2862 | nil to disable this confirmation completely. | 2470 | nil to disable this confirmation completely. |
| 2863 | 2471 | ||
| 2864 | --- | ||
| 2865 | *** 'image-dired-thumb-size' increased to 128. | 2472 | *** 'image-dired-thumb-size' increased to 128. |
| 2866 | 2473 | ||
| 2867 | +++ | ||
| 2868 | *** 'image-dired-db-file' renamed to 'image-dired-tags-db-file'. | 2474 | *** 'image-dired-db-file' renamed to 'image-dired-tags-db-file'. |
| 2869 | 2475 | ||
| 2870 | --- | ||
| 2871 | *** 'image-dired-display-image-mode' renamed to 'image-dired-image-mode'. | 2476 | *** 'image-dired-display-image-mode' renamed to 'image-dired-image-mode'. |
| 2872 | The corresponding keymap is now named 'image-dired-image-mode-map'. | 2477 | The corresponding keymap is now named 'image-dired-image-mode-map'. |
| 2873 | 2478 | ||
| 2874 | +++ | ||
| 2875 | *** Some commands have been renamed to be shorter. | 2479 | *** Some commands have been renamed to be shorter. |
| 2876 | - 'image-dired-display-thumbnail-original-image' has been renamed to | 2480 | - 'image-dired-display-thumbnail-original-image' has been renamed to |
| 2877 | 'image-dired-display-this'. | 2481 | 'image-dired-display-this'. |
| @@ -2881,25 +2485,21 @@ The corresponding keymap is now named 'image-dired-image-mode-map'. | |||
| 2881 | to 'image-dired-display-previous'. | 2485 | to 'image-dired-display-previous'. |
| 2882 | The old names are now obsolete aliases. | 2486 | The old names are now obsolete aliases. |
| 2883 | 2487 | ||
| 2884 | --- | ||
| 2885 | *** 'image-dired-thumb-{height,width}' are now obsolete. | 2488 | *** 'image-dired-thumb-{height,width}' are now obsolete. |
| 2886 | Customize 'image-dired-thumb-size' instead, which will set both the | 2489 | Customize 'image-dired-thumb-size' instead, which will set both the |
| 2887 | height and width. | 2490 | height and width. |
| 2888 | 2491 | ||
| 2889 | --- | ||
| 2890 | *** HTML image gallery generation is now obsolete. | 2492 | *** HTML image gallery generation is now obsolete. |
| 2891 | The 'image-dired-gallery-generate' command and these user options are | 2493 | The 'image-dired-gallery-generate' command and these user options are |
| 2892 | now obsolete: 'image-dired-gallery-thumb-image-root-url', | 2494 | now obsolete: 'image-dired-gallery-thumb-image-root-url', |
| 2893 | 'image-dired-gallery-hidden-tags', 'image-dired-gallery-dir', | 2495 | 'image-dired-gallery-hidden-tags', 'image-dired-gallery-dir', |
| 2894 | 'image-dired-gallery-image-root-url'. | 2496 | 'image-dired-gallery-image-root-url'. |
| 2895 | 2497 | ||
| 2896 | --- | ||
| 2897 | *** 'image-dired-rotate-thumbnail-{left,right}' are now obsolete. | 2498 | *** 'image-dired-rotate-thumbnail-{left,right}' are now obsolete. |
| 2898 | Instead, use commands 'image-dired-refresh-thumb' to generate a new | 2499 | Instead, use commands 'image-dired-refresh-thumb' to generate a new |
| 2899 | thumbnail, or 'image-rotate' to rotate the thumbnail without updating | 2500 | thumbnail, or 'image-rotate' to rotate the thumbnail without updating |
| 2900 | the thumbnail file. | 2501 | the thumbnail file. |
| 2901 | 2502 | ||
| 2902 | +++ | ||
| 2903 | *** Some commands and user options are now obsolete. | 2503 | *** Some commands and user options are now obsolete. |
| 2904 | Since 'image-dired-display-image-mode' is now based on 'image-mode', | 2504 | Since 'image-dired-display-image-mode' is now based on 'image-mode', |
| 2905 | some commands and user options are no longer needed and are now obsolete: | 2505 | some commands and user options are no longer needed and are now obsolete: |
| @@ -2913,66 +2513,54 @@ some commands and user options are no longer needed and are now obsolete: | |||
| 2913 | 2513 | ||
| 2914 | ** Exif | 2514 | ** Exif |
| 2915 | 2515 | ||
| 2916 | --- | ||
| 2917 | *** New function 'exif-field'. | 2516 | *** New function 'exif-field'. |
| 2918 | This is a convenience function to extract the field data from | 2517 | This is a convenience function to extract the field data from |
| 2919 | 'exif-parse-file' and 'exif-parse-buffer'. | 2518 | 'exif-parse-file' and 'exif-parse-buffer'. |
| 2920 | 2519 | ||
| 2921 | ** Bookmarks | 2520 | ** Bookmarks |
| 2922 | 2521 | ||
| 2923 | --- | ||
| 2924 | *** 'list-bookmarks' now includes a type column. | 2522 | *** 'list-bookmarks' now includes a type column. |
| 2925 | Types are registered via a 'bookmark-handler-type' symbol property on | 2523 | Types are registered via a 'bookmark-handler-type' symbol property on |
| 2926 | the jumping function. | 2524 | the jumping function. |
| 2927 | 2525 | ||
| 2928 | +++ | ||
| 2929 | *** 'bookmark-sort-flag' can now be set to 'last-modified'. | 2526 | *** 'bookmark-sort-flag' can now be set to 'last-modified'. |
| 2930 | This will display bookmark list from most recently set to least | 2527 | This will display bookmark list from most recently set to least |
| 2931 | recently set. | 2528 | recently set. |
| 2932 | 2529 | ||
| 2933 | --- | ||
| 2934 | *** When editing a bookmark annotation, 'C-c C-k' will now cancel. | 2530 | *** When editing a bookmark annotation, 'C-c C-k' will now cancel. |
| 2935 | It is bound to the new command 'bookmark-edit-annotation-cancel'. | 2531 | It is bound to the new command 'bookmark-edit-annotation-cancel'. |
| 2936 | 2532 | ||
| 2937 | --- | ||
| 2938 | *** New user option 'bookmark-fringe-mark'. | 2533 | *** New user option 'bookmark-fringe-mark'. |
| 2939 | This option controls the bitmap used to indicate bookmarks in the | 2534 | This option controls the bitmap used to indicate bookmarks in the |
| 2940 | fringe (or nil to disable showing this marker). | 2535 | fringe (or nil to disable showing this marker). |
| 2941 | 2536 | ||
| 2942 | ** Xwidget | 2537 | ** Xwidget |
| 2943 | 2538 | ||
| 2944 | --- | ||
| 2945 | *** New user option 'xwidget-webkit-buffer-name-format'. | 2539 | *** New user option 'xwidget-webkit-buffer-name-format'. |
| 2946 | This option controls how xwidget-webkit buffers are named. | 2540 | This option controls how xwidget-webkit buffers are named. |
| 2947 | 2541 | ||
| 2948 | --- | ||
| 2949 | *** New user option 'xwidget-webkit-cookie-file'. | 2542 | *** New user option 'xwidget-webkit-cookie-file'. |
| 2950 | This option controls whether the xwidget-webkit buffers save cookies | 2543 | This option controls whether the xwidget-webkit buffers save cookies |
| 2951 | set by web pages, and if so, in which file to save them. | 2544 | set by web pages, and if so, in which file to save them. |
| 2952 | 2545 | ||
| 2953 | +++ | ||
| 2954 | *** New minor mode 'xwidget-webkit-edit-mode'. | 2546 | *** New minor mode 'xwidget-webkit-edit-mode'. |
| 2955 | When this mode is enabled, self-inserting characters and other common | 2547 | When this mode is enabled, self-inserting characters and other common |
| 2956 | web browser shortcut keys are redefined to send themselves to the | 2548 | web browser shortcut keys are redefined to send themselves to the |
| 2957 | WebKit widget. | 2549 | WebKit widget. |
| 2958 | 2550 | ||
| 2959 | +++ | ||
| 2960 | *** New minor mode 'xwidget-webkit-isearch-mode'. | 2551 | *** New minor mode 'xwidget-webkit-isearch-mode'. |
| 2961 | This mode acts similarly to incremental search, and allows searching | 2552 | This mode acts similarly to incremental search, and allows searching |
| 2962 | the contents of a WebKit widget. In xwidget-webkit mode, it is bound | 2553 | the contents of a WebKit widget. In xwidget-webkit mode, it is bound |
| 2963 | to 'C-s' and 'C-r'. | 2554 | to 'C-s' and 'C-r'. |
| 2964 | 2555 | ||
| 2965 | +++ | ||
| 2966 | *** New command 'xwidget-webkit-browse-history'. | 2556 | *** New command 'xwidget-webkit-browse-history'. |
| 2967 | This command displays a buffer containing the page load history of | 2557 | This command displays a buffer containing the page load history of |
| 2968 | the current WebKit widget, and allows you to navigate it. | 2558 | the current WebKit widget, and allows you to navigate it. |
| 2969 | 2559 | ||
| 2970 | --- | ||
| 2971 | *** On X, the WebKit inspector is now available inside xwidgets. | 2560 | *** On X, the WebKit inspector is now available inside xwidgets. |
| 2972 | To access the inspector, right click on the widget and select "Inspect | 2561 | To access the inspector, right click on the widget and select "Inspect |
| 2973 | Element". | 2562 | Element". |
| 2974 | 2563 | ||
| 2975 | --- | ||
| 2976 | *** "Open in New Window" in a WebKit widget's context menu now works. | 2564 | *** "Open in New Window" in a WebKit widget's context menu now works. |
| 2977 | The newly created buffer will be displayed via 'display-buffer', which | 2565 | The newly created buffer will be displayed via 'display-buffer', which |
| 2978 | can be customized through the usual mechanism of 'display-buffer-alist' | 2566 | can be customized through the usual mechanism of 'display-buffer-alist' |
| @@ -2980,31 +2568,26 @@ and friends. | |||
| 2980 | 2568 | ||
| 2981 | ** Tramp | 2569 | ** Tramp |
| 2982 | 2570 | ||
| 2983 | +++ | ||
| 2984 | *** New connection methods "docker", "podman" and "kubernetes". | 2571 | *** New connection methods "docker", "podman" and "kubernetes". |
| 2985 | They allow accessing containers provided by Docker and similar | 2572 | They allow accessing containers provided by Docker and similar |
| 2986 | programs. | 2573 | programs. |
| 2987 | 2574 | ||
| 2988 | --- | ||
| 2989 | *** Tramp supports abbreviating remote home directories now. | 2575 | *** Tramp supports abbreviating remote home directories now. |
| 2990 | When calling 'abbreviate-file-name' on a Tramp file name, the result | 2576 | When calling 'abbreviate-file-name' on a Tramp file name, the result |
| 2991 | will abbreviate the user's home directory, for example by abbreviating | 2577 | will abbreviate the user's home directory, for example by abbreviating |
| 2992 | "/ssh:user@host:/home/user" to "/ssh:user@host:~". | 2578 | "/ssh:user@host:/home/user" to "/ssh:user@host:~". |
| 2993 | 2579 | ||
| 2994 | +++ | ||
| 2995 | *** New user option 'tramp-use-scp-direct-remote-copying'. | 2580 | *** New user option 'tramp-use-scp-direct-remote-copying'. |
| 2996 | When set to non-nil, Tramp does not copy files between two remote | 2581 | When set to non-nil, Tramp does not copy files between two remote |
| 2997 | hosts via a local copy in its temporary directory, but lets the 'scp' | 2582 | hosts via a local copy in its temporary directory, but lets the 'scp' |
| 2998 | command do this job. | 2583 | command do this job. |
| 2999 | 2584 | ||
| 3000 | +++ | ||
| 3001 | *** Proper password prompts for methods "doas", "sudo" and "sudoedit". | 2585 | *** Proper password prompts for methods "doas", "sudo" and "sudoedit". |
| 3002 | The password prompts for these methods reflect now the credentials of | 2586 | The password prompts for these methods reflect now the credentials of |
| 3003 | the user requesting such a connection, and not of the user who is the | 2587 | the user requesting such a connection, and not of the user who is the |
| 3004 | target. This has always been needed, just the password prompt and the | 2588 | target. This has always been needed, just the password prompt and the |
| 3005 | related 'auth-sources' entry were wrong. | 2589 | related 'auth-sources' entry were wrong. |
| 3006 | 2590 | ||
| 3007 | +++ | ||
| 3008 | *** New user option 'tramp-completion-use-cache'. | 2591 | *** New user option 'tramp-completion-use-cache'. |
| 3009 | During user and host name completion in the minibuffer, results from | 2592 | During user and host name completion in the minibuffer, results from |
| 3010 | Tramp's connection cache are taken into account. This can be disabled | 2593 | Tramp's connection cache are taken into account. This can be disabled |
| @@ -3012,41 +2595,34 @@ by setting the user option 'tramp-completion-use-cache' to nil. | |||
| 3012 | 2595 | ||
| 3013 | ** Browse URL | 2596 | ** Browse URL |
| 3014 | 2597 | ||
| 3015 | --- | ||
| 3016 | *** New user option 'browse-url-default-scheme'. | 2598 | *** New user option 'browse-url-default-scheme'. |
| 3017 | This user option decides which URL scheme that 'browse-url' and | 2599 | This user option decides which URL scheme that 'browse-url' and |
| 3018 | related functions will use by default. For example, you could | 2600 | related functions will use by default. For example, you could |
| 3019 | customize this to "https" to always prefer HTTPS URLs. | 2601 | customize this to "https" to always prefer HTTPS URLs. |
| 3020 | 2602 | ||
| 3021 | --- | ||
| 3022 | *** New user option 'browse-url-irc-function'. | 2603 | *** New user option 'browse-url-irc-function'. |
| 3023 | This option specifies a function for opening "irc://" links. It | 2604 | This option specifies a function for opening "irc://" links. It |
| 3024 | defaults to the new function 'browse-url-irc'. | 2605 | defaults to the new function 'browse-url-irc'. |
| 3025 | 2606 | ||
| 3026 | --- | ||
| 3027 | *** New function 'browse-url-irc'. | 2607 | *** New function 'browse-url-irc'. |
| 3028 | This multipurpose autoloaded function can be used for opening "irc://" | 2608 | This multipurpose autoloaded function can be used for opening "irc://" |
| 3029 | and "ircs://" URLS by any caller that passes a URL string as an initial | 2609 | and "ircs://" URLS by any caller that passes a URL string as an initial |
| 3030 | arg. | 2610 | arg. |
| 3031 | 2611 | ||
| 3032 | --- | ||
| 3033 | *** Support for the Netscape web browser has been removed. | 2612 | *** Support for the Netscape web browser has been removed. |
| 3034 | This support has been obsolete since Emacs 25.1. The final version of | 2613 | This support has been obsolete since Emacs 25.1. The final version of |
| 3035 | the Netscape web browser was released in February, 2008. | 2614 | the Netscape web browser was released in February, 2008. |
| 3036 | 2615 | ||
| 3037 | --- | ||
| 3038 | *** Support for the Galeon web browser has been removed. | 2616 | *** Support for the Galeon web browser has been removed. |
| 3039 | This support has been obsolete since Emacs 25.1. The final version of | 2617 | This support has been obsolete since Emacs 25.1. The final version of |
| 3040 | the Galeon web browser was released in September, 2008. | 2618 | the Galeon web browser was released in September, 2008. |
| 3041 | 2619 | ||
| 3042 | --- | ||
| 3043 | *** Support for the Mozilla web browser is now obsolete. | 2620 | *** Support for the Mozilla web browser is now obsolete. |
| 3044 | Note that this historical web browser is different from Mozilla | 2621 | Note that this historical web browser is different from Mozilla |
| 3045 | Firefox; it is its predecessor. | 2622 | Firefox; it is its predecessor. |
| 3046 | 2623 | ||
| 3047 | ** Python Mode | 2624 | ** Python Mode |
| 3048 | 2625 | ||
| 3049 | +++ | ||
| 3050 | *** Project shells and a new user option 'python-shell-dedicated'. | 2626 | *** Project shells and a new user option 'python-shell-dedicated'. |
| 3051 | When called with a prefix argument, 'run-python' now offers the choice | 2627 | When called with a prefix argument, 'run-python' now offers the choice |
| 3052 | of creating a shell dedicated to the current project. This shell runs | 2628 | of creating a shell dedicated to the current project. This shell runs |
| @@ -3058,13 +2634,10 @@ project-dedicated or global) is specified by the new | |||
| 3058 | 2634 | ||
| 3059 | ** Ruby Mode | 2635 | ** Ruby Mode |
| 3060 | 2636 | ||
| 3061 | --- | ||
| 3062 | *** New user option 'ruby-toggle-block-space-before-parameters'. | 2637 | *** New user option 'ruby-toggle-block-space-before-parameters'. |
| 3063 | 2638 | ||
| 3064 | --- | ||
| 3065 | *** Support for endless methods. | 2639 | *** Support for endless methods. |
| 3066 | 2640 | ||
| 3067 | --- | ||
| 3068 | *** New user options that determine indentation logic. | 2641 | *** New user options that determine indentation logic. |
| 3069 | 'ruby-method-params-indent', 'ruby-block-indent', | 2642 | 'ruby-method-params-indent', 'ruby-block-indent', |
| 3070 | 'ruby-after-operator-indent', 'ruby-method-call-indent', | 2643 | 'ruby-after-operator-indent', 'ruby-method-call-indent', |
| @@ -3073,7 +2646,6 @@ explanations and examples. | |||
| 3073 | 2646 | ||
| 3074 | ** Eshell | 2647 | ** Eshell |
| 3075 | 2648 | ||
| 3076 | +++ | ||
| 3077 | *** New feature to easily bypass Eshell's own pipelining. | 2649 | *** New feature to easily bypass Eshell's own pipelining. |
| 3078 | Prefixing '|', '<' or '>' with an asterisk, i.e. '*|', '*<' or '*>', | 2650 | Prefixing '|', '<' or '>' with an asterisk, i.e. '*|', '*<' or '*>', |
| 3079 | will cause the whole command to be passed to the operating system | 2651 | will cause the whole command to be passed to the operating system |
| @@ -3082,7 +2654,6 @@ support for pipelines which will move a lot of data. See section | |||
| 3082 | "Running Shell Pipelines Natively" in the Eshell manual, node | 2654 | "Running Shell Pipelines Natively" in the Eshell manual, node |
| 3083 | "(eshell) Pipelines". | 2655 | "(eshell) Pipelines". |
| 3084 | 2656 | ||
| 3085 | +++ | ||
| 3086 | *** New module to help supplying absolute file names to remote commands. | 2657 | *** New module to help supplying absolute file names to remote commands. |
| 3087 | After enabling the new 'eshell-elecslash' module, typing a forward | 2658 | After enabling the new 'eshell-elecslash' module, typing a forward |
| 3088 | slash as the first character of a command line argument will | 2659 | slash as the first character of a command line argument will |
| @@ -3093,40 +2664,34 @@ commands are Lisp function or external when supplying absolute file | |||
| 3093 | name arguments. See the "(eshell) Electric forward slash" node in the | 2664 | name arguments. See the "(eshell) Electric forward slash" node in the |
| 3094 | Eshell manual for details. | 2665 | Eshell manual for details. |
| 3095 | 2666 | ||
| 3096 | +++ | ||
| 3097 | *** Improved support for redirection operators in Eshell. | 2667 | *** Improved support for redirection operators in Eshell. |
| 3098 | Eshell now supports a wider variety of redirection operators. For | 2668 | Eshell now supports a wider variety of redirection operators. For |
| 3099 | example, you can now redirect both stdout and stderr via '&>' or | 2669 | example, you can now redirect both stdout and stderr via '&>' or |
| 3100 | duplicate one output handle to another via 'NEW-FD>&OLD-FD'. For more | 2670 | duplicate one output handle to another via 'NEW-FD>&OLD-FD'. For more |
| 3101 | information, see the "(eshell) Redirection" node in the Eshell manual. | 2671 | information, see the "(eshell) Redirection" node in the Eshell manual. |
| 3102 | 2672 | ||
| 3103 | +++ | ||
| 3104 | *** New eshell built-in command 'doas'. | 2673 | *** New eshell built-in command 'doas'. |
| 3105 | The privilege-escalation program 'doas' has been added to the existing | 2674 | The privilege-escalation program 'doas' has been added to the existing |
| 3106 | 'su' and 'sudo' commands from the 'eshell-tramp' module. The external | 2675 | 'su' and 'sudo' commands from the 'eshell-tramp' module. The external |
| 3107 | command may still be accessed by using '*doas'. | 2676 | command may still be accessed by using '*doas'. |
| 3108 | 2677 | ||
| 3109 | +++ | ||
| 3110 | *** Double-quoting an Eshell expansion now treats the result as a single string. | 2678 | *** Double-quoting an Eshell expansion now treats the result as a single string. |
| 3111 | If an Eshell expansion like '$FOO' is surrounded by double quotes, the | 2679 | If an Eshell expansion like '$FOO' is surrounded by double quotes, the |
| 3112 | result will always be a single string, no matter the type that would | 2680 | result will always be a single string, no matter the type that would |
| 3113 | otherwise be returned. | 2681 | otherwise be returned. |
| 3114 | 2682 | ||
| 3115 | +++ | ||
| 3116 | *** Concatenating Eshell expansions now works more similarly to other shells. | 2683 | *** Concatenating Eshell expansions now works more similarly to other shells. |
| 3117 | When concatenating an Eshell expansion that returns a list, "adjacent" | 2684 | When concatenating an Eshell expansion that returns a list, "adjacent" |
| 3118 | elements of each operand are now concatenated together, | 2685 | elements of each operand are now concatenated together, |
| 3119 | e.g. '$(list "a" "b")c' returns '("a" "bc")'. See the "(eshell) | 2686 | e.g. '$(list "a" "b")c' returns '("a" "bc")'. See the "(eshell) |
| 3120 | Expansion" node in the Eshell manual for more details. | 2687 | Expansion" node in the Eshell manual for more details. |
| 3121 | 2688 | ||
| 3122 | +++ | ||
| 3123 | *** Eshell subcommands with multiline numeric output return lists of numbers. | 2689 | *** Eshell subcommands with multiline numeric output return lists of numbers. |
| 3124 | If every line of the output of an Eshell subcommand like '${COMMAND}' | 2690 | If every line of the output of an Eshell subcommand like '${COMMAND}' |
| 3125 | is numeric, the result will be a list of numbers (or a single number | 2691 | is numeric, the result will be a list of numbers (or a single number |
| 3126 | if only one line of output). Previously, this only converted numbers | 2692 | if only one line of output). Previously, this only converted numbers |
| 3127 | when there was a single line of output. | 2693 | when there was a single line of output. |
| 3128 | 2694 | ||
| 3129 | --- | ||
| 3130 | *** Built-in Eshell commands now follow Posix/GNU argument syntax conventions. | 2695 | *** Built-in Eshell commands now follow Posix/GNU argument syntax conventions. |
| 3131 | Built-in commands in Eshell now accept command-line options with | 2696 | Built-in commands in Eshell now accept command-line options with |
| 3132 | values passed as a single token, such as '-oVALUE' or | 2697 | values passed as a single token, such as '-oVALUE' or |
| @@ -3134,13 +2699,11 @@ values passed as a single token, such as '-oVALUE' or | |||
| 3134 | 'eshell-eval-using-options' macro. See "Defining new built-in | 2699 | 'eshell-eval-using-options' macro. See "Defining new built-in |
| 3135 | commands" in the "(eshell) Built-ins" node of the Eshell manual. | 2700 | commands" in the "(eshell) Built-ins" node of the Eshell manual. |
| 3136 | 2701 | ||
| 3137 | --- | ||
| 3138 | *** Eshell globs ending with "/" now match only directories. | 2702 | *** Eshell globs ending with "/" now match only directories. |
| 3139 | Additionally, globs ending with "**/" or "***/" no longer raise an | 2703 | Additionally, globs ending with "**/" or "***/" no longer raise an |
| 3140 | error, and now expand to all directories recursively (following | 2704 | error, and now expand to all directories recursively (following |
| 3141 | symlinks in the latter case). | 2705 | symlinks in the latter case). |
| 3142 | 2706 | ||
| 3143 | +++ | ||
| 3144 | *** Lisp forms in Eshell now treat a nil result as a failed exit status. | 2707 | *** Lisp forms in Eshell now treat a nil result as a failed exit status. |
| 3145 | When executing a command that looks like '(lisp form)' and returns | 2708 | When executing a command that looks like '(lisp form)' and returns |
| 3146 | nil, Eshell will set the exit status (available in the '$?' | 2709 | nil, Eshell will set the exit status (available in the '$?' |
| @@ -3150,12 +2713,10 @@ conditionals. To change this behavior, customize the new | |||
| 3150 | 2713 | ||
| 3151 | ** Shell | 2714 | ** Shell |
| 3152 | 2715 | ||
| 3153 | --- | ||
| 3154 | *** New user option 'shell-kill-buffer-on-exit'. | 2716 | *** New user option 'shell-kill-buffer-on-exit'. |
| 3155 | Enabling this will automatically kill a "*shell*" buffer as soon as | 2717 | Enabling this will automatically kill a "*shell*" buffer as soon as |
| 3156 | the shell session terminates. | 2718 | the shell session terminates. |
| 3157 | 2719 | ||
| 3158 | --- | ||
| 3159 | *** New minor mode 'shell-highlight-undef-mode'. | 2720 | *** New minor mode 'shell-highlight-undef-mode'. |
| 3160 | Customize 'shell-highlight-undef-enable' to t if you want to enable | 2721 | Customize 'shell-highlight-undef-enable' to t if you want to enable |
| 3161 | this minor mode in "*shell*" buffers. It will highlight undefined | 2722 | this minor mode in "*shell*" buffers. It will highlight undefined |
| @@ -3163,13 +2724,11 @@ commands with a warning face as you type. | |||
| 3163 | 2724 | ||
| 3164 | ** Calc | 2725 | ** Calc |
| 3165 | 2726 | ||
| 3166 | +++ | ||
| 3167 | *** New user option 'calc-kill-line-numbering'. | 2727 | *** New user option 'calc-kill-line-numbering'. |
| 3168 | Set it to nil to exclude line numbering from kills and copies. | 2728 | Set it to nil to exclude line numbering from kills and copies. |
| 3169 | 2729 | ||
| 3170 | ** Hierarchy | 2730 | ** Hierarchy |
| 3171 | 2731 | ||
| 3172 | +++ | ||
| 3173 | *** Tree Display can delay computation of children. | 2732 | *** Tree Display can delay computation of children. |
| 3174 | 'hierarchy-add-tree' and 'hierarchy-add-trees' have an optional | 2733 | 'hierarchy-add-tree' and 'hierarchy-add-trees' have an optional |
| 3175 | argument which allows tree-widget display to be activated and computed | 2734 | argument which allows tree-widget display to be activated and computed |
| @@ -3177,7 +2736,6 @@ only when the user expands the node. | |||
| 3177 | 2736 | ||
| 3178 | ** Proced | 2737 | ** Proced |
| 3179 | 2738 | ||
| 3180 | --- | ||
| 3181 | *** proced.el shows system processes of remote hosts. | 2739 | *** proced.el shows system processes of remote hosts. |
| 3182 | When 'default-directory' is remote, and 'proced' is invoked with a | 2740 | When 'default-directory' is remote, and 'proced' is invoked with a |
| 3183 | negative argument like 'C-u - proced', the system processes of that | 2741 | negative argument like 'C-u - proced', the system processes of that |
| @@ -3185,7 +2743,6 @@ remote host are shown. Alternatively, the user option | |||
| 3185 | 'proced-show-remote-processes' can be set to non-nil. | 2743 | 'proced-show-remote-processes' can be set to non-nil. |
| 3186 | 'proced-signal-function' has been marked obsolete. | 2744 | 'proced-signal-function' has been marked obsolete. |
| 3187 | 2745 | ||
| 3188 | --- | ||
| 3189 | *** Proced can now optionally show process details in color. | 2746 | *** Proced can now optionally show process details in color. |
| 3190 | New user option 'proced-enable-color-flag' enables coloring of Proced | 2747 | New user option 'proced-enable-color-flag' enables coloring of Proced |
| 3191 | buffers. This option is disabled by default; customize it to a | 2748 | buffers. This option is disabled by default; customize it to a |
| @@ -3193,36 +2750,30 @@ non-nil value to enable colors. | |||
| 3193 | 2750 | ||
| 3194 | ** Miscellaneous | 2751 | ** Miscellaneous |
| 3195 | 2752 | ||
| 3196 | --- | ||
| 3197 | *** New user option 'webjump-use-internal-browser'. | 2753 | *** New user option 'webjump-use-internal-browser'. |
| 3198 | When non-nil, WebJump will use an internal browser to open web pages, | 2754 | When non-nil, WebJump will use an internal browser to open web pages, |
| 3199 | instead of the default external browser. | 2755 | instead of the default external browser. |
| 3200 | 2756 | ||
| 3201 | +++ | ||
| 3202 | *** New user option 'font-lock-ignore'. | 2757 | *** New user option 'font-lock-ignore'. |
| 3203 | This option provides a mechanism to selectively disable font-lock | 2758 | This option provides a mechanism to selectively disable font-lock |
| 3204 | keyword-driven fontifications. | 2759 | keyword-driven fontifications. |
| 3205 | 2760 | ||
| 3206 | --- | ||
| 3207 | *** New user option 'auto-save-visited-predicate'. | 2761 | *** New user option 'auto-save-visited-predicate'. |
| 3208 | This user option is a predicate function which is called by | 2762 | This user option is a predicate function which is called by |
| 3209 | 'auto-save-visited-mode' to decide whether or not to save a buffer. | 2763 | 'auto-save-visited-mode' to decide whether or not to save a buffer. |
| 3210 | You can use it to automatically save only specific buffers, for | 2764 | You can use it to automatically save only specific buffers, for |
| 3211 | example buffers using a particular mode or in some directory. | 2765 | example buffers using a particular mode or in some directory. |
| 3212 | 2766 | ||
| 3213 | --- | ||
| 3214 | *** New user option 'remote-file-name-inhibit-auto-save-visited'. | 2767 | *** New user option 'remote-file-name-inhibit-auto-save-visited'. |
| 3215 | If this user option is non-nil, 'auto-save-visited-mode' will not | 2768 | If this user option is non-nil, 'auto-save-visited-mode' will not |
| 3216 | auto-save remote buffers. The default is nil. | 2769 | auto-save remote buffers. The default is nil. |
| 3217 | 2770 | ||
| 3218 | +++ | ||
| 3219 | *** New package vtable.el for formatting tabular data. | 2771 | *** New package vtable.el for formatting tabular data. |
| 3220 | This package allows formatting data using variable-pitch fonts. | 2772 | This package allows formatting data using variable-pitch fonts. |
| 3221 | The resulting tables can display text in variable pitch fonts, text | 2773 | The resulting tables can display text in variable pitch fonts, text |
| 3222 | using fonts of different sizes, and images. See the "(vtable) Top" | 2774 | using fonts of different sizes, and images. See the "(vtable) Top" |
| 3223 | manual for more details. | 2775 | manual for more details. |
| 3224 | 2776 | ||
| 3225 | --- | ||
| 3226 | *** New minor mode 'elide-head-mode'. | 2777 | *** New minor mode 'elide-head-mode'. |
| 3227 | Enabling this minor mode turns on hiding header material, like | 2778 | Enabling this minor mode turns on hiding header material, like |
| 3228 | 'elide-head' does; disabling it shows the header. The commands | 2779 | 'elide-head' does; disabling it shows the header. The commands |
| @@ -3241,27 +2792,22 @@ filtered out. | |||
| 3241 | The list of handlers (already covering OSC 7 and 8) has been extended | 2792 | The list of handlers (already covering OSC 7 and 8) has been extended |
| 3242 | with a handler for OSC 2, the command to set a window title. | 2793 | with a handler for OSC 2, the command to set a window title. |
| 3243 | 2794 | ||
| 3244 | --- | ||
| 3245 | *** 'recentf-mode' now uses abbreviated file names by default. | 2795 | *** 'recentf-mode' now uses abbreviated file names by default. |
| 3246 | This means that e.g. "/home/foo/bar" is now displayed as "~/bar". | 2796 | This means that e.g. "/home/foo/bar" is now displayed as "~/bar". |
| 3247 | Customize the user option 'recentf-filename-handlers' to nil to get | 2797 | Customize the user option 'recentf-filename-handlers' to nil to get |
| 3248 | back the old behavior. | 2798 | back the old behavior. |
| 3249 | 2799 | ||
| 3250 | --- | ||
| 3251 | *** New command 'recentf-open'. | 2800 | *** New command 'recentf-open'. |
| 3252 | This command prompts for a recently opened file in the minibuffer, and | 2801 | This command prompts for a recently opened file in the minibuffer, and |
| 3253 | visits it. | 2802 | visits it. |
| 3254 | 2803 | ||
| 3255 | --- | ||
| 3256 | *** 'ffap-machine-at-point' no longer pings hosts by default. | 2804 | *** 'ffap-machine-at-point' no longer pings hosts by default. |
| 3257 | It will now simply look at a hostname to determine if it is valid, | 2805 | It will now simply look at a hostname to determine if it is valid, |
| 3258 | instead of also trying to ping it. Customize the user option | 2806 | instead of also trying to ping it. Customize the user option |
| 3259 | 'ffap-machine-p-known' to 'ping' to get the old behavior back. | 2807 | 'ffap-machine-p-known' to 'ping' to get the old behavior back. |
| 3260 | 2808 | ||
| 3261 | --- | ||
| 3262 | *** The 'run-dig' command is now obsolete; use 'dig' instead. | 2809 | *** The 'run-dig' command is now obsolete; use 'dig' instead. |
| 3263 | 2810 | ||
| 3264 | --- | ||
| 3265 | *** Some 'bib-mode' commands and variables have been renamed. | 2811 | *** Some 'bib-mode' commands and variables have been renamed. |
| 3266 | To respect Emacs naming conventions, the variable 'unread-bib-file' | 2812 | To respect Emacs naming conventions, the variable 'unread-bib-file' |
| 3267 | has been renamed to 'bib-unread-file'. The following commands have | 2813 | has been renamed to 'bib-unread-file'. The following commands have |
| @@ -3271,36 +2817,29 @@ also been renamed: | |||
| 3271 | 'mark-bib' to 'bib-mark' | 2817 | 'mark-bib' to 'bib-mark' |
| 3272 | 'unread-bib' to 'bib-unread' | 2818 | 'unread-bib' to 'bib-unread' |
| 3273 | 2819 | ||
| 3274 | --- | ||
| 3275 | *** 'outlineify-sticky' command is renamed to 'allout-outlinify-sticky'. | 2820 | *** 'outlineify-sticky' command is renamed to 'allout-outlinify-sticky'. |
| 3276 | The old name is still available as an obsolete function alias. | 2821 | The old name is still available as an obsolete function alias. |
| 3277 | 2822 | ||
| 3278 | --- | ||
| 3279 | *** The url-irc library now understands "ircs://" links. | 2823 | *** The url-irc library now understands "ircs://" links. |
| 3280 | 2824 | ||
| 3281 | --- | ||
| 3282 | *** New command 'world-clock-copy-time-as-kill' for 'world-clock-mode'. | 2825 | *** New command 'world-clock-copy-time-as-kill' for 'world-clock-mode'. |
| 3283 | It copies the current line into the kill ring. | 2826 | It copies the current line into the kill ring. |
| 3284 | 2827 | ||
| 3285 | --- | ||
| 3286 | *** 'edit-abbrevs' now uses font-locking. | 2828 | *** 'edit-abbrevs' now uses font-locking. |
| 3287 | The new face 'abbrev-table-name' is used to display the abbrev table | 2829 | The new face 'abbrev-table-name' is used to display the abbrev table |
| 3288 | name. | 2830 | name. |
| 3289 | 2831 | ||
| 3290 | --- | ||
| 3291 | *** New key binding 'O' in "*Buffer List*". | 2832 | *** New key binding 'O' in "*Buffer List*". |
| 3292 | This key is now bound to 'Buffer-menu-view-other-window', which will | 2833 | This key is now bound to 'Buffer-menu-view-other-window', which will |
| 3293 | view this line's buffer in View mode in another window. | 2834 | view this line's buffer in View mode in another window. |
| 3294 | 2835 | ||
| 3295 | ** Scheme Mode | 2836 | ** Scheme Mode |
| 3296 | 2837 | ||
| 3297 | --- | ||
| 3298 | *** Auto-detection of Scheme library files. | 2838 | *** Auto-detection of Scheme library files. |
| 3299 | Emacs now automatically enables the Scheme mode when opening R6RS | 2839 | Emacs now automatically enables the Scheme mode when opening R6RS |
| 3300 | Scheme Library Source (".sls") files and R7RS Scheme Library | 2840 | Scheme Library Source (".sls") files and R7RS Scheme Library |
| 3301 | Definition (".sld") files. | 2841 | Definition (".sld") files. |
| 3302 | 2842 | ||
| 3303 | --- | ||
| 3304 | *** Imenu members for R6RS and R7RS library members. | 2843 | *** Imenu members for R6RS and R7RS library members. |
| 3305 | Imenu now lists the members directly nested in R6RS Scheme libraries | 2844 | Imenu now lists the members directly nested in R6RS Scheme libraries |
| 3306 | ('library') and R7RS libraries ('define-library'). | 2845 | ('library') and R7RS libraries ('define-library'). |
| @@ -3308,7 +2847,6 @@ Imenu now lists the members directly nested in R6RS Scheme libraries | |||
| 3308 | 2847 | ||
| 3309 | * New Modes and Packages in Emacs 29.1 | 2848 | * New Modes and Packages in Emacs 29.1 |
| 3310 | 2849 | ||
| 3311 | +++ | ||
| 3312 | ** Eglot: Emacs Client for the Language Server Protocol. | 2850 | ** Eglot: Emacs Client for the Language Server Protocol. |
| 3313 | Emacs now comes with the Eglot package, which enhances various Emacs | 2851 | Emacs now comes with the Eglot package, which enhances various Emacs |
| 3314 | features, such as completion, documentation, error detection, etc., | 2852 | features, such as completion, documentation, error detection, etc., |
| @@ -3320,7 +2858,6 @@ If you want to be able to use 'package-install' to upgrade Eglot to | |||
| 3320 | newer versions released on GNU ELPA, customize the new option | 2858 | newer versions released on GNU ELPA, customize the new option |
| 3321 | 'package-install-upgrade-built-in' to a non-nil value. | 2859 | 'package-install-upgrade-built-in' to a non-nil value. |
| 3322 | 2860 | ||
| 3323 | +++ | ||
| 3324 | ** use-package: Declarative package configuration. | 2861 | ** use-package: Declarative package configuration. |
| 3325 | use-package is now shipped with Emacs. It provides the 'use-package' | 2862 | use-package is now shipped with Emacs. It provides the 'use-package' |
| 3326 | macro, which allows you to isolate package configuration in your init | 2863 | macro, which allows you to isolate package configuration in your init |
| @@ -3331,7 +2868,6 @@ If you want to be able to use 'package-install' to upgrade use-package | |||
| 3331 | to newer versions released on GNU ELPA, customize the new option | 2868 | to newer versions released on GNU ELPA, customize the new option |
| 3332 | 'package-install-upgrade-built-in' to a non-nil value. | 2869 | 'package-install-upgrade-built-in' to a non-nil value. |
| 3333 | 2870 | ||
| 3334 | --- | ||
| 3335 | ** New package 'wallpaper'. | 2871 | ** New package 'wallpaper'. |
| 3336 | This package provides the command 'wallpaper-set', which sets the | 2872 | This package provides the command 'wallpaper-set', which sets the |
| 3337 | desktop background image. Depending on the system and the desktop, | 2873 | desktop background image. Depending on the system and the desktop, |
| @@ -3341,7 +2877,6 @@ detected automatically in most cases. It can also be customized | |||
| 3341 | manually if needed, using the new user options 'wallpaper-command' and | 2877 | manually if needed, using the new user options 'wallpaper-command' and |
| 3342 | 'wallpaper-command-args'. | 2878 | 'wallpaper-command-args'. |
| 3343 | 2879 | ||
| 3344 | +++ | ||
| 3345 | ** New package 'oclosure'. | 2880 | ** New package 'oclosure'. |
| 3346 | This allows the creation of OClosures, which are "functions with | 2881 | This allows the creation of OClosures, which are "functions with |
| 3347 | slots" or "function objects" that expose additional information about | 2882 | slots" or "function objects" that expose additional information about |
| @@ -3349,33 +2884,27 @@ themselves. Use the new macros 'oclosure-define' and | |||
| 3349 | 'oclosure-lambda' to create OClosures. See the "(elisp) OClosures" | 2884 | 'oclosure-lambda' to create OClosures. See the "(elisp) OClosures" |
| 3350 | node for more information. | 2885 | node for more information. |
| 3351 | 2886 | ||
| 3352 | +++ | ||
| 3353 | *** New generic function 'oclosure-interactive-form'. | 2887 | *** New generic function 'oclosure-interactive-form'. |
| 3354 | Used by 'interactive-form' when called on an OClosure. | 2888 | Used by 'interactive-form' when called on an OClosure. |
| 3355 | This allows specific OClosure types to compute their interactive specs | 2889 | This allows specific OClosure types to compute their interactive specs |
| 3356 | on demand rather than precompute them when created. | 2890 | on demand rather than precompute them when created. |
| 3357 | 2891 | ||
| 3358 | --- | ||
| 3359 | ** New theme 'leuven-dark'. | 2892 | ** New theme 'leuven-dark'. |
| 3360 | This is a dark version of the 'leuven' theme. | 2893 | This is a dark version of the 'leuven' theme. |
| 3361 | 2894 | ||
| 3362 | +++ | ||
| 3363 | ** New mode 'erts-mode'. | 2895 | ** New mode 'erts-mode'. |
| 3364 | This mode is used to edit files geared towards testing actions in | 2896 | This mode is used to edit files geared towards testing actions in |
| 3365 | Emacs buffers, like indentation and the like. The new ert function | 2897 | Emacs buffers, like indentation and the like. The new ert function |
| 3366 | 'ert-test-erts-file' is used to parse these files. | 2898 | 'ert-test-erts-file' is used to parse these files. |
| 3367 | 2899 | ||
| 3368 | --- | ||
| 3369 | ** New major mode 'js-json-mode'. | 2900 | ** New major mode 'js-json-mode'. |
| 3370 | This is a lightweight variant of 'js-mode' that is used by default | 2901 | This is a lightweight variant of 'js-mode' that is used by default |
| 3371 | when visiting JSON files. | 2902 | when visiting JSON files. |
| 3372 | 2903 | ||
| 3373 | +++ | ||
| 3374 | ** New major mode 'csharp-mode'. | 2904 | ** New major mode 'csharp-mode'. |
| 3375 | A major mode based on CC Mode for editing programs in the C# language. | 2905 | A major mode based on CC Mode for editing programs in the C# language. |
| 3376 | This mode is auto-enabled for files with the ".cs" extension. | 2906 | This mode is auto-enabled for files with the ".cs" extension. |
| 3377 | 2907 | ||
| 3378 | +++ | ||
| 3379 | ** New major modes based on the tree-sitter library. | 2908 | ** New major modes based on the tree-sitter library. |
| 3380 | These new major modes are available if Emacs was built with the | 2909 | These new major modes are available if Emacs was built with the |
| 3381 | tree-sitter library. They provide support for font-locking, | 2910 | tree-sitter library. They provide support for font-locking, |
| @@ -3417,96 +2946,77 @@ If a language grammar library required by a mode is not found in any | |||
| 3417 | of the above places, the mode will display a warning when you try to | 2946 | of the above places, the mode will display a warning when you try to |
| 3418 | turn it on. | 2947 | turn it on. |
| 3419 | 2948 | ||
| 3420 | +++ | ||
| 3421 | *** New major mode 'typescript-ts-mode'. | 2949 | *** New major mode 'typescript-ts-mode'. |
| 3422 | A major mode based on the tree-sitter library for editing programs | 2950 | A major mode based on the tree-sitter library for editing programs |
| 3423 | in the TypeScript language. | 2951 | in the TypeScript language. |
| 3424 | 2952 | ||
| 3425 | +++ | ||
| 3426 | *** New major mode 'tsx-ts-mode'. | 2953 | *** New major mode 'tsx-ts-mode'. |
| 3427 | A major mode based on the tree-sitter library for editing programs | 2954 | A major mode based on the tree-sitter library for editing programs |
| 3428 | in the TypeScript language, with support for TSX. | 2955 | in the TypeScript language, with support for TSX. |
| 3429 | 2956 | ||
| 3430 | +++ | ||
| 3431 | *** New major mode 'c-ts-mode'. | 2957 | *** New major mode 'c-ts-mode'. |
| 3432 | An optional major mode based on the tree-sitter library for editing | 2958 | An optional major mode based on the tree-sitter library for editing |
| 3433 | programs in the C language. | 2959 | programs in the C language. |
| 3434 | 2960 | ||
| 3435 | +++ | ||
| 3436 | *** New major mode 'c++-ts-mode'. | 2961 | *** New major mode 'c++-ts-mode'. |
| 3437 | An optional major mode based on the tree-sitter library for editing | 2962 | An optional major mode based on the tree-sitter library for editing |
| 3438 | programs in the C++ language. | 2963 | programs in the C++ language. |
| 3439 | 2964 | ||
| 3440 | +++ | ||
| 3441 | *** New command 'c-or-c++-ts-mode'. | 2965 | *** New command 'c-or-c++-ts-mode'. |
| 3442 | A command that automatically guesses the language of a header file, | 2966 | A command that automatically guesses the language of a header file, |
| 3443 | and enables either 'c-ts-mode' or 'c++-ts-mode' accordingly. | 2967 | and enables either 'c-ts-mode' or 'c++-ts-mode' accordingly. |
| 3444 | 2968 | ||
| 3445 | +++ | ||
| 3446 | *** New major mode 'java-ts-mode'. | 2969 | *** New major mode 'java-ts-mode'. |
| 3447 | An optional major mode based on the tree-sitter library for editing | 2970 | An optional major mode based on the tree-sitter library for editing |
| 3448 | programs in the Java language. | 2971 | programs in the Java language. |
| 3449 | 2972 | ||
| 3450 | +++ | ||
| 3451 | *** New major mode 'python-ts-mode'. | 2973 | *** New major mode 'python-ts-mode'. |
| 3452 | An optional major mode based on the tree-sitter library for editing | 2974 | An optional major mode based on the tree-sitter library for editing |
| 3453 | programs in the Python language. | 2975 | programs in the Python language. |
| 3454 | 2976 | ||
| 3455 | +++ | ||
| 3456 | *** New major mode 'css-ts-mode'. | 2977 | *** New major mode 'css-ts-mode'. |
| 3457 | An optional major mode based on the tree-sitter library for editing | 2978 | An optional major mode based on the tree-sitter library for editing |
| 3458 | CSS (Cascading Style Sheets). | 2979 | CSS (Cascading Style Sheets). |
| 3459 | 2980 | ||
| 3460 | +++ | ||
| 3461 | *** New major mode 'json-ts-mode'. | 2981 | *** New major mode 'json-ts-mode'. |
| 3462 | An optional major mode based on the tree-sitter library for editing | 2982 | An optional major mode based on the tree-sitter library for editing |
| 3463 | programs in the JSON language. | 2983 | programs in the JSON language. |
| 3464 | 2984 | ||
| 3465 | +++ | ||
| 3466 | *** New major mode 'csharp-ts-mode'. | 2985 | *** New major mode 'csharp-ts-mode'. |
| 3467 | An optional major mode based on the tree-sitter library for editing | 2986 | An optional major mode based on the tree-sitter library for editing |
| 3468 | programs in the C# language. | 2987 | programs in the C# language. |
| 3469 | 2988 | ||
| 3470 | +++ | ||
| 3471 | *** New major mode 'bash-ts-mode'. | 2989 | *** New major mode 'bash-ts-mode'. |
| 3472 | Am optional major mode based on the tree-sitter library for editing | 2990 | Am optional major mode based on the tree-sitter library for editing |
| 3473 | Bash shell scripts. | 2991 | Bash shell scripts. |
| 3474 | 2992 | ||
| 3475 | +++ | ||
| 3476 | *** New major mode 'dockerfile-ts-mode'. | 2993 | *** New major mode 'dockerfile-ts-mode'. |
| 3477 | A major mode based on the tree-sitter library for editing | 2994 | A major mode based on the tree-sitter library for editing |
| 3478 | Dockerfiles. | 2995 | Dockerfiles. |
| 3479 | 2996 | ||
| 3480 | +++ | ||
| 3481 | *** New major mode 'cmake-ts-mode'. | 2997 | *** New major mode 'cmake-ts-mode'. |
| 3482 | A major mode based on the tree-sitter library for editing CMake files. | 2998 | A major mode based on the tree-sitter library for editing CMake files. |
| 3483 | 2999 | ||
| 3484 | +++ | ||
| 3485 | *** New major mode 'toml-ts-mode'. | 3000 | *** New major mode 'toml-ts-mode'. |
| 3486 | An optional major mode based on the tree-sitter library for editing | 3001 | An optional major mode based on the tree-sitter library for editing |
| 3487 | files written in TOML, a format for writing configuration files. | 3002 | files written in TOML, a format for writing configuration files. |
| 3488 | 3003 | ||
| 3489 | +++ | ||
| 3490 | *** New major mode 'go-ts-mode'. | 3004 | *** New major mode 'go-ts-mode'. |
| 3491 | A major mode based on the tree-sitter library for editing programs in | 3005 | A major mode based on the tree-sitter library for editing programs in |
| 3492 | the Go language. | 3006 | the Go language. |
| 3493 | 3007 | ||
| 3494 | +++ | ||
| 3495 | *** New major mode 'go-mod-ts-mode'. | 3008 | *** New major mode 'go-mod-ts-mode'. |
| 3496 | A major mode based on the tree-sitter library for editing "go.mod" | 3009 | A major mode based on the tree-sitter library for editing "go.mod" |
| 3497 | files. | 3010 | files. |
| 3498 | 3011 | ||
| 3499 | +++ | ||
| 3500 | *** New major mode 'yaml-ts-mode'. | 3012 | *** New major mode 'yaml-ts-mode'. |
| 3501 | A major mode based on the tree-sitter library for editing files | 3013 | A major mode based on the tree-sitter library for editing files |
| 3502 | written in YAML. | 3014 | written in YAML. |
| 3503 | 3015 | ||
| 3504 | +++ | ||
| 3505 | *** New major mode 'rust-ts-mode'. | 3016 | *** New major mode 'rust-ts-mode'. |
| 3506 | A major mode based on the tree-sitter library for editing programs in | 3017 | A major mode based on the tree-sitter library for editing programs in |
| 3507 | the Rust language. | 3018 | the Rust language. |
| 3508 | 3019 | ||
| 3509 | --- | ||
| 3510 | *** New major mode 'ruby-ts-mode'. | 3020 | *** New major mode 'ruby-ts-mode'. |
| 3511 | An optional major mode based on the tree-sitter library for editing | 3021 | An optional major mode based on the tree-sitter library for editing |
| 3512 | programs in the Ruby language. | 3022 | programs in the Ruby language. |
| @@ -3514,7 +3024,6 @@ programs in the Ruby language. | |||
| 3514 | 3024 | ||
| 3515 | * Incompatible Lisp Changes in Emacs 29.1 | 3025 | * Incompatible Lisp Changes in Emacs 29.1 |
| 3516 | 3026 | ||
| 3517 | +++ | ||
| 3518 | ** The implementation of overlays has changed. | 3027 | ** The implementation of overlays has changed. |
| 3519 | Emacs now uses an implementation of overlays that is much more | 3028 | Emacs now uses an implementation of overlays that is much more |
| 3520 | efficient than the original one, and should speed up all the | 3029 | efficient than the original one, and should speed up all the |
| @@ -3528,7 +3037,6 @@ or user level, with the exception of better performance and the order | |||
| 3528 | of overlays returned by functions that don't promise any particular | 3037 | of overlays returned by functions that don't promise any particular |
| 3529 | order. | 3038 | order. |
| 3530 | 3039 | ||
| 3531 | --- | ||
| 3532 | *** The function 'overlay-recenter' is now a no-op. | 3040 | *** The function 'overlay-recenter' is now a no-op. |
| 3533 | This function does nothing, and in particular has no effect on the | 3041 | This function does nothing, and in particular has no effect on the |
| 3534 | value returned by 'overlay-lists'. The purpose of 'overlay-recenter' | 3042 | value returned by 'overlay-lists'. The purpose of 'overlay-recenter' |
| @@ -3538,30 +3046,25 @@ is efficient regardless of their position, and there's no longer any | |||
| 3538 | need to "optimize" the lookup, nor any notion of a "center" of the | 3046 | need to "optimize" the lookup, nor any notion of a "center" of the |
| 3539 | overlays. | 3047 | overlays. |
| 3540 | 3048 | ||
| 3541 | --- | ||
| 3542 | *** The function 'overlay-lists' returns one unified list of overlays. | 3049 | *** The function 'overlay-lists' returns one unified list of overlays. |
| 3543 | This function used to return a cons of two lists, one with overlays | 3050 | This function used to return a cons of two lists, one with overlays |
| 3544 | before the "center" position, the other after that "center". It now | 3051 | before the "center" position, the other after that "center". It now |
| 3545 | returns a list whose 'car' is the list of all the buffer overlays, and | 3052 | returns a list whose 'car' is the list of all the buffer overlays, and |
| 3546 | whose 'cdr' is always nil. | 3053 | whose 'cdr' is always nil. |
| 3547 | 3054 | ||
| 3548 | +++ | ||
| 3549 | ** 'format-prompt' now uses 'substitute-command-keys'. | 3055 | ** 'format-prompt' now uses 'substitute-command-keys'. |
| 3550 | This means that both the prompt and 'minibuffer-default-prompt-format' | 3056 | This means that both the prompt and 'minibuffer-default-prompt-format' |
| 3551 | will have key definitions and single quotes handled specially. | 3057 | will have key definitions and single quotes handled specially. |
| 3552 | 3058 | ||
| 3553 | +++ | ||
| 3554 | ** New function 'substitute-quotes'. | 3059 | ** New function 'substitute-quotes'. |
| 3555 | This function works like 'substitute-command-keys' but only | 3060 | This function works like 'substitute-command-keys' but only |
| 3556 | substitutes quote characters. | 3061 | substitutes quote characters. |
| 3557 | 3062 | ||
| 3558 | --- | ||
| 3559 | ** 'find-image' now uses 'create-image'. | 3063 | ** 'find-image' now uses 'create-image'. |
| 3560 | This means that images found through 'find-image' also have | 3064 | This means that images found through 'find-image' also have |
| 3561 | auto-scaling applied. (This only makes a difference on HiDPI | 3065 | auto-scaling applied. (This only makes a difference on HiDPI |
| 3562 | displays.) | 3066 | displays.) |
| 3563 | 3067 | ||
| 3564 | +++ | ||
| 3565 | ** Changes in how "raw" in-memory XBM images are specified. | 3068 | ** Changes in how "raw" in-memory XBM images are specified. |
| 3566 | Some years back Emacs gained the ability to scale images, and you | 3069 | Some years back Emacs gained the ability to scale images, and you |
| 3567 | could then specify ':width' and ':height' when using 'create-image' on all | 3070 | could then specify ':width' and ':height' when using 'create-image' on all |
| @@ -3573,7 +3076,6 @@ has been changed, and ':width'/':height' now works as with all other image | |||
| 3573 | formats, and the way to specify the width/height of the "raw" | 3076 | formats, and the way to specify the width/height of the "raw" |
| 3574 | in-memory format is now by using ':data-width' and ':data-height'. | 3077 | in-memory format is now by using ':data-width' and ':data-height'. |
| 3575 | 3078 | ||
| 3576 | +++ | ||
| 3577 | ** "loaddefs.el" generation has been reimplemented. | 3079 | ** "loaddefs.el" generation has been reimplemented. |
| 3578 | The various "loaddefs.el" files in the Emacs tree (which contain | 3080 | The various "loaddefs.el" files in the Emacs tree (which contain |
| 3579 | information about autoloads, built-in packages and package prefixes) | 3081 | information about autoloads, built-in packages and package prefixes) |
| @@ -3589,19 +3091,16 @@ Previously, ';;;###' specs inside a top-level form (i.e., something | |||
| 3589 | like '(when ... ;;;### ...)' would be ignored. They are now parsed as | 3091 | like '(when ... ;;;### ...)' would be ignored. They are now parsed as |
| 3590 | usual. | 3092 | usual. |
| 3591 | 3093 | ||
| 3592 | --- | ||
| 3593 | ** Themes have special autoload cookies. | 3094 | ** Themes have special autoload cookies. |
| 3594 | All built-in themes are scraped for ';;;###theme-autoload' cookies | 3095 | All built-in themes are scraped for ';;;###theme-autoload' cookies |
| 3595 | that are loaded along with the regular auto-loaded code. | 3096 | that are loaded along with the regular auto-loaded code. |
| 3596 | 3097 | ||
| 3597 | +++ | ||
| 3598 | ** 'buffer-modified-p' has been extended. | 3098 | ** 'buffer-modified-p' has been extended. |
| 3599 | This function was previously documented to return only nil or t. This | 3099 | This function was previously documented to return only nil or t. This |
| 3600 | has been changed to nil/'autosaved'/non-nil. The new 'autosaved' | 3100 | has been changed to nil/'autosaved'/non-nil. The new 'autosaved' |
| 3601 | value means that the buffer is modified, but that it hasn't been | 3101 | value means that the buffer is modified, but that it hasn't been |
| 3602 | modified since the time of last auto-save. | 3102 | modified since the time of last auto-save. |
| 3603 | 3103 | ||
| 3604 | --- | ||
| 3605 | ** 'with-silent-modifications' also restores buffer autosave status. | 3104 | ** 'with-silent-modifications' also restores buffer autosave status. |
| 3606 | 'with-silent-modifications' is a macro meant to be used by the font | 3105 | 'with-silent-modifications' is a macro meant to be used by the font |
| 3607 | locking machinery to allow applying text properties without changing | 3106 | locking machinery to allow applying text properties without changing |
| @@ -3610,7 +3109,6 @@ buffer autosave status, so applying font locking to a modified buffer | |||
| 3610 | that had already been auto-saved would trigger another auto-saving. | 3109 | that had already been auto-saved would trigger another auto-saving. |
| 3611 | This is no longer the case. | 3110 | This is no longer the case. |
| 3612 | 3111 | ||
| 3613 | --- | ||
| 3614 | ** 'prin1' doesn't always escape "." and "?" in symbols any more. | 3112 | ** 'prin1' doesn't always escape "." and "?" in symbols any more. |
| 3615 | Previously, symbols like 'foo.bar' would be printed by 'prin1' as | 3113 | Previously, symbols like 'foo.bar' would be printed by 'prin1' as |
| 3616 | "foo\.bar". This now prints as "foo.bar" instead. The Emacs Lisp | 3114 | "foo\.bar". This now prints as "foo.bar" instead. The Emacs Lisp |
| @@ -3626,19 +3124,16 @@ If the "." and "?" characters are the first character in the symbol, | |||
| 3626 | they will still be escaped, so the '.foo' symbol is still printed as | 3124 | they will still be escaped, so the '.foo' symbol is still printed as |
| 3627 | "\.foo" and the '?bar' symbol is still printed as "\?bar". | 3125 | "\.foo" and the '?bar' symbol is still printed as "\?bar". |
| 3628 | 3126 | ||
| 3629 | +++ | ||
| 3630 | ** Remapping 'mode-line' face no longer works as expected. | 3127 | ** Remapping 'mode-line' face no longer works as expected. |
| 3631 | 'mode-line' is now the parent face of the new 'mode-line-active' face, | 3128 | 'mode-line' is now the parent face of the new 'mode-line-active' face, |
| 3632 | and remapping parent of basic faces does not work reliably. | 3129 | and remapping parent of basic faces does not work reliably. |
| 3633 | Instead of remapping 'mode-line', you have to remap 'mode-line-active'. | 3130 | Instead of remapping 'mode-line', you have to remap 'mode-line-active'. |
| 3634 | 3131 | ||
| 3635 | +++ | ||
| 3636 | ** 'make-process' has been extended to support ptys when ':stderr' is set. | 3132 | ** 'make-process' has been extended to support ptys when ':stderr' is set. |
| 3637 | Previously, setting ':stderr' to a non-nil value would force the | 3133 | Previously, setting ':stderr' to a non-nil value would force the |
| 3638 | process's connection to use pipes. Now, Emacs will use a pty for | 3134 | process's connection to use pipes. Now, Emacs will use a pty for |
| 3639 | stdin and stdout if requested no matter the value of ':stderr'. | 3135 | stdin and stdout if requested no matter the value of ':stderr'. |
| 3640 | 3136 | ||
| 3641 | --- | ||
| 3642 | ** User option 'mail-source-ignore-errors' is now obsolete. | 3137 | ** User option 'mail-source-ignore-errors' is now obsolete. |
| 3643 | The whole mechanism for prompting users to continue in case of | 3138 | The whole mechanism for prompting users to continue in case of |
| 3644 | mail-source errors has been removed, so this option is no longer | 3139 | mail-source errors has been removed, so this option is no longer |
| @@ -3646,7 +3141,6 @@ needed. | |||
| 3646 | 3141 | ||
| 3647 | ** Fonts | 3142 | ** Fonts |
| 3648 | 3143 | ||
| 3649 | --- | ||
| 3650 | *** Emacs now supports 'medium' fonts. | 3144 | *** Emacs now supports 'medium' fonts. |
| 3651 | Emacs previously didn't distinguish between the 'regular'/'normal' | 3145 | Emacs previously didn't distinguish between the 'regular'/'normal' |
| 3652 | weight and the 'medium' weight, but it now also supports the (heavier) | 3146 | weight and the 'medium' weight, but it now also supports the (heavier) |
| @@ -3655,7 +3149,6 @@ weight and the 'medium' weight, but it now also supports the (heavier) | |||
| 3655 | font spec. In these cases, replacing ":weight 'normal" with ":weight | 3149 | font spec. In these cases, replacing ":weight 'normal" with ":weight |
| 3656 | 'medium" should fix the issue. | 3150 | 'medium" should fix the issue. |
| 3657 | 3151 | ||
| 3658 | --- | ||
| 3659 | ** Keymap descriptions by Help commands have changed. | 3152 | ** Keymap descriptions by Help commands have changed. |
| 3660 | 'help--describe-command', 'C-h b' and associated functions that output | 3153 | 'help--describe-command', 'C-h b' and associated functions that output |
| 3661 | keymap descriptions have changed. In particular, prefix commands are | 3154 | keymap descriptions have changed. In particular, prefix commands are |
| @@ -3664,7 +3157,6 @@ functions output "[closure]"/"[lambda]". You can get back the old | |||
| 3664 | behavior of including prefix commands by customizing the new option | 3157 | behavior of including prefix commands by customizing the new option |
| 3665 | 'describe-bindings-show-prefix-commands' to a non-nil value. | 3158 | 'describe-bindings-show-prefix-commands' to a non-nil value. |
| 3666 | 3159 | ||
| 3667 | --- | ||
| 3668 | ** 'downcase' details have changed slightly. | 3160 | ** 'downcase' details have changed slightly. |
| 3669 | In certain locales, changing the case of an ASCII-range character may | 3161 | In certain locales, changing the case of an ASCII-range character may |
| 3670 | turn it into a multibyte character, most notably with "I" in Turkish | 3162 | turn it into a multibyte character, most notably with "I" in Turkish |
| @@ -3676,13 +3168,11 @@ get proper locale-dependent downcasing, the string has to be converted | |||
| 3676 | to multibyte first. (This goes for the other case-changing functions, | 3168 | to multibyte first. (This goes for the other case-changing functions, |
| 3677 | too.) | 3169 | too.) |
| 3678 | 3170 | ||
| 3679 | --- | ||
| 3680 | ** Functions in 'tramp-foreign-file-name-handler-alist' have changed. | 3171 | ** Functions in 'tramp-foreign-file-name-handler-alist' have changed. |
| 3681 | Functions to determine which Tramp file name handler to use are now | 3172 | Functions to determine which Tramp file name handler to use are now |
| 3682 | passed a file name in dissected form (via 'tramp-dissect-file-name') | 3173 | passed a file name in dissected form (via 'tramp-dissect-file-name') |
| 3683 | instead of in string form. | 3174 | instead of in string form. |
| 3684 | 3175 | ||
| 3685 | --- | ||
| 3686 | ** 'def' indentation changes. | 3176 | ** 'def' indentation changes. |
| 3687 | In 'emacs-lisp-mode', forms with a symbol with a name that start with | 3177 | In 'emacs-lisp-mode', forms with a symbol with a name that start with |
| 3688 | "def" have been automatically indented as if they were 'defun'-like | 3178 | "def" have been automatically indented as if they were 'defun'-like |
| @@ -3702,33 +3192,26 @@ like: | |||
| 3702 | 3192 | ||
| 3703 | (put 'defzot 'lisp-indent-function 'defun) | 3193 | (put 'defzot 'lisp-indent-function 'defun) |
| 3704 | 3194 | ||
| 3705 | --- | ||
| 3706 | ** The 'inhibit-changing-match-data' variable is now obsolete. | 3195 | ** The 'inhibit-changing-match-data' variable is now obsolete. |
| 3707 | Instead, functions like 'string-match' and 'looking-at' now take an | 3196 | Instead, functions like 'string-match' and 'looking-at' now take an |
| 3708 | optional INHIBIT-MODIFY argument. | 3197 | optional INHIBIT-MODIFY argument. |
| 3709 | 3198 | ||
| 3710 | --- | ||
| 3711 | ** 'gnus-define-keys' is now obsolete. | 3199 | ** 'gnus-define-keys' is now obsolete. |
| 3712 | Use 'define-keymap' instead. | 3200 | Use 'define-keymap' instead. |
| 3713 | 3201 | ||
| 3714 | --- | ||
| 3715 | ** MozRepl has been removed from js.el. | 3202 | ** MozRepl has been removed from js.el. |
| 3716 | MozRepl was removed from Firefox in 2017, so this code doesn't work | 3203 | MozRepl was removed from Firefox in 2017, so this code doesn't work |
| 3717 | with recent versions of Firefox. | 3204 | with recent versions of Firefox. |
| 3718 | 3205 | ||
| 3719 | --- | ||
| 3720 | ** The function 'image-dired-get-exif-data' is now obsolete. | 3206 | ** The function 'image-dired-get-exif-data' is now obsolete. |
| 3721 | Use 'exif-parse-file' and 'exif-field' instead. | 3207 | Use 'exif-parse-file' and 'exif-field' instead. |
| 3722 | 3208 | ||
| 3723 | --- | ||
| 3724 | ** 'insert-directory' alternatives should not change the free disk space line. | 3209 | ** 'insert-directory' alternatives should not change the free disk space line. |
| 3725 | This change is now applied in 'dired-insert-directory'. | 3210 | This change is now applied in 'dired-insert-directory'. |
| 3726 | 3211 | ||
| 3727 | --- | ||
| 3728 | ** 'compilation-last-buffer' is (finally) declared obsolete. | 3212 | ** 'compilation-last-buffer' is (finally) declared obsolete. |
| 3729 | It has been obsolete since Emacs 22.1, actually. | 3213 | It has been obsolete since Emacs 22.1, actually. |
| 3730 | 3214 | ||
| 3731 | --- | ||
| 3732 | ** Calling 'lsh' now elicits a byte-compiler warning. | 3215 | ** Calling 'lsh' now elicits a byte-compiler warning. |
| 3733 | 'lsh' behaves in somewhat surprising and platform-dependent ways for | 3216 | 'lsh' behaves in somewhat surprising and platform-dependent ways for |
| 3734 | negative arguments, and is generally slower than 'ash', which should be | 3217 | negative arguments, and is generally slower than 'ash', which should be |
| @@ -3736,7 +3219,6 @@ used instead. This warning can be suppressed by surrounding calls to | |||
| 3736 | 'lsh' with the construct '(with-suppressed-warnings ((suspicious lsh)) ...)', | 3219 | 'lsh' with the construct '(with-suppressed-warnings ((suspicious lsh)) ...)', |
| 3737 | but switching to 'ash' is generally much preferable. | 3220 | but switching to 'ash' is generally much preferable. |
| 3738 | 3221 | ||
| 3739 | --- | ||
| 3740 | ** Some functions and variables obsolete since Emacs 24 have been removed: | 3222 | ** Some functions and variables obsolete since Emacs 24 have been removed: |
| 3741 | 'Buffer-menu-buffer+size-width', 'Electric-buffer-menu-mode', | 3223 | 'Buffer-menu-buffer+size-width', 'Electric-buffer-menu-mode', |
| 3742 | 'Info-edit-map', 'allout-abbreviate-flattened-numbering', | 3224 | 'Info-edit-map', 'allout-abbreviate-flattened-numbering', |
| @@ -3834,7 +3316,6 @@ but switching to 'ash' is generally much preferable. | |||
| 3834 | 'which-func-mode' (function), 'window-system-version', | 3316 | 'which-func-mode' (function), 'window-system-version', |
| 3835 | 'winner-mode-leave-hook', 'x-cut-buffer-or-selection-value'. | 3317 | 'winner-mode-leave-hook', 'x-cut-buffer-or-selection-value'. |
| 3836 | 3318 | ||
| 3837 | --- | ||
| 3838 | ** Some functions and variables obsolete since Emacs 23 have been removed: | 3319 | ** Some functions and variables obsolete since Emacs 23 have been removed: |
| 3839 | 'find-emacs-lisp-shadows', 'newsticker-cache-filename', | 3320 | 'find-emacs-lisp-shadows', 'newsticker-cache-filename', |
| 3840 | 'process-filter-multibyte-p', 'redisplay-end-trigger-functions', | 3321 | 'process-filter-multibyte-p', 'redisplay-end-trigger-functions', |
| @@ -3842,17 +3323,14 @@ but switching to 'ash' is generally much preferable. | |||
| 3842 | 'unify-8859-on-decoding-mode', 'unify-8859-on-encoding-mode', | 3323 | 'unify-8859-on-decoding-mode', 'unify-8859-on-encoding-mode', |
| 3843 | 'vc-arch-command', 'window-redisplay-end-trigger', 'x-selection'. | 3324 | 'vc-arch-command', 'window-redisplay-end-trigger', 'x-selection'. |
| 3844 | 3325 | ||
| 3845 | --- | ||
| 3846 | ** Some functions and variables obsolete since Emacs 21 or 22 have been removed: | 3326 | ** Some functions and variables obsolete since Emacs 21 or 22 have been removed: |
| 3847 | 'c-toggle-auto-state', 'find-file-not-found-hooks', | 3327 | 'c-toggle-auto-state', 'find-file-not-found-hooks', |
| 3848 | 'ls-lisp-dired-ignore-case', 'query-replace-regexp-eval'. | 3328 | 'ls-lisp-dired-ignore-case', 'query-replace-regexp-eval'. |
| 3849 | 3329 | ||
| 3850 | +++ | ||
| 3851 | ** New generic function 'function-documentation'. | 3330 | ** New generic function 'function-documentation'. |
| 3852 | It can dynamically generate a raw docstring depending on the type of a | 3331 | It can dynamically generate a raw docstring depending on the type of a |
| 3853 | function. Used mainly for docstrings of OClosures. | 3332 | function. Used mainly for docstrings of OClosures. |
| 3854 | 3333 | ||
| 3855 | +++ | ||
| 3856 | ** Base64 encoding no longer tolerates latin-1 input. | 3334 | ** Base64 encoding no longer tolerates latin-1 input. |
| 3857 | The functions 'base64-encode-string', 'base64url-encode-string', | 3335 | The functions 'base64-encode-string', 'base64url-encode-string', |
| 3858 | 'base64-encode-region' and 'base64url-encode-region' no longer accept | 3336 | 'base64-encode-region' and 'base64url-encode-region' no longer accept |
| @@ -3860,24 +3338,20 @@ characters in the range U+0080..U+00FF as substitutes for single bytes | |||
| 3860 | in the range 128..255, but signal an error for all multibyte characters. | 3338 | in the range 128..255, but signal an error for all multibyte characters. |
| 3861 | The input must be unibyte encoded text. | 3339 | The input must be unibyte encoded text. |
| 3862 | 3340 | ||
| 3863 | +++ | ||
| 3864 | ** The 'clone-indirect-buffer-hook' is now run by 'make-indirect-buffer'. | 3341 | ** The 'clone-indirect-buffer-hook' is now run by 'make-indirect-buffer'. |
| 3865 | It was previously only run by 'clone-indirect-buffer' and | 3342 | It was previously only run by 'clone-indirect-buffer' and |
| 3866 | 'clone-indirect-buffer-other-window'. Since 'make-indirect-buffer' is | 3343 | 'clone-indirect-buffer-other-window'. Since 'make-indirect-buffer' is |
| 3867 | called by both of these, the hook is now run by all 3 of these | 3344 | called by both of these, the hook is now run by all 3 of these |
| 3868 | functions. | 3345 | functions. |
| 3869 | 3346 | ||
| 3870 | --- | ||
| 3871 | ** '?\' at the end of a line now signals an error. | 3347 | ** '?\' at the end of a line now signals an error. |
| 3872 | Previously, it produced a nonsense value, -1, that was never intended. | 3348 | Previously, it produced a nonsense value, -1, that was never intended. |
| 3873 | 3349 | ||
| 3874 | --- | ||
| 3875 | ** Some libraries obsolete since Emacs 24.1 and 24.3 have been removed: | 3350 | ** Some libraries obsolete since Emacs 24.1 and 24.3 have been removed: |
| 3876 | abbrevlist.el, assoc.el, complete.el, cust-print.el, | 3351 | abbrevlist.el, assoc.el, complete.el, cust-print.el, |
| 3877 | erc-hecomplete.el, mailpost.el, mouse-sel.el, old-emacs-lock.el, | 3352 | erc-hecomplete.el, mailpost.el, mouse-sel.el, old-emacs-lock.el, |
| 3878 | patcomp.el, pc-mode.el, pc-select.el, s-region.el, and sregex.el. | 3353 | patcomp.el, pc-mode.el, pc-select.el, s-region.el, and sregex.el. |
| 3879 | 3354 | ||
| 3880 | +++ | ||
| 3881 | ** Many seldom-used generalized variables have been made obsolete. | 3355 | ** Many seldom-used generalized variables have been made obsolete. |
| 3882 | Emacs has a number of rather obscure generalized variables defined, | 3356 | Emacs has a number of rather obscure generalized variables defined, |
| 3883 | that, for instance, allowed you to say things like: | 3357 | that, for instance, allowed you to say things like: |
| @@ -3903,7 +3377,6 @@ The following generalized variables have been made obsolete: | |||
| 3903 | 'standard-case-table', 'syntax-table', 'visited-file-modtime', | 3377 | 'standard-case-table', 'syntax-table', 'visited-file-modtime', |
| 3904 | 'window-height', 'window-width', and 'x-get-secondary-selection'. | 3378 | 'window-height', 'window-width', and 'x-get-secondary-selection'. |
| 3905 | 3379 | ||
| 3906 | --- | ||
| 3907 | ** The 'dotimes' loop variable can no longer be manipulated in the loop body. | 3380 | ** The 'dotimes' loop variable can no longer be manipulated in the loop body. |
| 3908 | Previously, the 'dotimes' loop counter could be modified inside the | 3381 | Previously, the 'dotimes' loop counter could be modified inside the |
| 3909 | loop body, but only in code using dynamic binding. Now the behavior | 3382 | loop body, but only in code using dynamic binding. Now the behavior |
| @@ -3919,7 +3392,6 @@ now always prints the numbers 0 .. 9. | |||
| 3919 | 3392 | ||
| 3920 | * Lisp Changes in Emacs 29.1 | 3393 | * Lisp Changes in Emacs 29.1 |
| 3921 | 3394 | ||
| 3922 | +++ | ||
| 3923 | ** Interpreted closures are "safe for space". | 3395 | ** Interpreted closures are "safe for space". |
| 3924 | As was already the case for byte-compiled closures, instead of capturing | 3396 | As was already the case for byte-compiled closures, instead of capturing |
| 3925 | the whole current lexical environment, interpreted closures now only | 3397 | the whole current lexical environment, interpreted closures now only |
| @@ -3928,55 +3400,45 @@ The previous behavior could occasionally lead to memory leaks or | |||
| 3928 | to problems where a printed closure would not be 'read'able because | 3400 | to problems where a printed closure would not be 'read'able because |
| 3929 | of an un'read'able value in an unrelated lexical variable. | 3401 | of an un'read'able value in an unrelated lexical variable. |
| 3930 | 3402 | ||
| 3931 | +++ | ||
| 3932 | ** New accessor function 'file-attribute-file-identifier'. | 3403 | ** New accessor function 'file-attribute-file-identifier'. |
| 3933 | It returns the list of the inode number and device identifier | 3404 | It returns the list of the inode number and device identifier |
| 3934 | retrieved by 'file-attributes'. This value can be used to identify a | 3405 | retrieved by 'file-attributes'. This value can be used to identify a |
| 3935 | file uniquely. The device identifier can be a single number or (for | 3406 | file uniquely. The device identifier can be a single number or (for |
| 3936 | remote files) a cons of 2 numbers. | 3407 | remote files) a cons of 2 numbers. |
| 3937 | 3408 | ||
| 3938 | +++ | ||
| 3939 | ** New macro 'while-let'. | 3409 | ** New macro 'while-let'. |
| 3940 | This is like 'when-let', but repeats until a binding form is nil. | 3410 | This is like 'when-let', but repeats until a binding form is nil. |
| 3941 | 3411 | ||
| 3942 | +++ | ||
| 3943 | ** New function 'make-obsolete-generalized-variable'. | 3412 | ** New function 'make-obsolete-generalized-variable'. |
| 3944 | This can be used to mark setters used by 'setf' as obsolete, and the | 3413 | This can be used to mark setters used by 'setf' as obsolete, and the |
| 3945 | byte-compiler will then warn about using them. | 3414 | byte-compiler will then warn about using them. |
| 3946 | 3415 | ||
| 3947 | +++ | ||
| 3948 | ** New functions 'pos-eol' and 'pos-bol'. | 3416 | ** New functions 'pos-eol' and 'pos-bol'. |
| 3949 | These are like 'line-end-position' and 'line-beginning-position' | 3417 | These are like 'line-end-position' and 'line-beginning-position' |
| 3950 | (respectively), but ignore fields (and are more efficient). | 3418 | (respectively), but ignore fields (and are more efficient). |
| 3951 | 3419 | ||
| 3952 | +++ | ||
| 3953 | ** New function 'compiled-function-p'. | 3420 | ** New function 'compiled-function-p'. |
| 3954 | This returns non-nil if its argument is either a built-in, or a | 3421 | This returns non-nil if its argument is either a built-in, or a |
| 3955 | byte-compiled, or a natively-compiled function object, or a function | 3422 | byte-compiled, or a natively-compiled function object, or a function |
| 3956 | loaded from a dynamic module. | 3423 | loaded from a dynamic module. |
| 3957 | 3424 | ||
| 3958 | --- | ||
| 3959 | ** 'deactivate-mark' can have new value 'dont-save'. | 3425 | ** 'deactivate-mark' can have new value 'dont-save'. |
| 3960 | This value means that Emacs should deactivate the mark as usual, but | 3426 | This value means that Emacs should deactivate the mark as usual, but |
| 3961 | without setting the primary selection, if 'select-active-regions' is | 3427 | without setting the primary selection, if 'select-active-regions' is |
| 3962 | enabled. | 3428 | enabled. |
| 3963 | 3429 | ||
| 3964 | +++ | ||
| 3965 | ** New 'declare' form 'interactive-args'. | 3430 | ** New 'declare' form 'interactive-args'. |
| 3966 | This can be used to specify what forms to put into 'command-history' | 3431 | This can be used to specify what forms to put into 'command-history' |
| 3967 | when executing commands interactively. | 3432 | when executing commands interactively. |
| 3968 | 3433 | ||
| 3969 | +++ | ||
| 3970 | ** The FORM argument of 'time-convert' is mandatory. | 3434 | ** The FORM argument of 'time-convert' is mandatory. |
| 3971 | 'time-convert' can still be called without it, as before, but the | 3435 | 'time-convert' can still be called without it, as before, but the |
| 3972 | compiler now emits a warning about this deprecated usage. | 3436 | compiler now emits a warning about this deprecated usage. |
| 3973 | 3437 | ||
| 3974 | +++ | ||
| 3975 | ** Emacs now supports user-customizable and themable icons. | 3438 | ** Emacs now supports user-customizable and themable icons. |
| 3976 | These can be used for buttons in buffers and the like. See the | 3439 | These can be used for buttons in buffers and the like. See the |
| 3977 | "(elisp) Icons" and "(emacs) Icons" nodes in the manuals for details. | 3440 | "(elisp) Icons" and "(emacs) Icons" nodes in the manuals for details. |
| 3978 | 3441 | ||
| 3979 | +++ | ||
| 3980 | ** New arguments MESSAGE and TIMEOUT of 'set-transient-map'. | 3442 | ** New arguments MESSAGE and TIMEOUT of 'set-transient-map'. |
| 3981 | MESSAGE specifies a message to display after activating the transient | 3443 | MESSAGE specifies a message to display after activating the transient |
| 3982 | map, including a special formatting spec to list available keys. | 3444 | map, including a special formatting spec to list available keys. |
| @@ -3984,7 +3446,6 @@ TIMEOUT is the idle time after which to deactivate the transient map. | |||
| 3984 | The default timeout value can be defined by the new variable | 3446 | The default timeout value can be defined by the new variable |
| 3985 | 'set-transient-map-timeout'. | 3447 | 'set-transient-map-timeout'. |
| 3986 | 3448 | ||
| 3987 | +++ | ||
| 3988 | ** New forms 'with-restriction' and 'without-restriction'. | 3449 | ** New forms 'with-restriction' and 'without-restriction'. |
| 3989 | These forms can be used as enhanced alternatives to the | 3450 | These forms can be used as enhanced alternatives to the |
| 3990 | 'save-restriction' form combined with, respectively, | 3451 | 'save-restriction' form combined with, respectively, |
| @@ -3994,88 +3455,70 @@ See the "(elisp) Narrowing" node for details. | |||
| 3994 | 3455 | ||
| 3995 | ** Connection Local Variables | 3456 | ** Connection Local Variables |
| 3996 | 3457 | ||
| 3997 | +++ | ||
| 3998 | *** Some connection-local variables are now user options. | 3458 | *** Some connection-local variables are now user options. |
| 3999 | The variables 'connection-local-profile-alist' and | 3459 | The variables 'connection-local-profile-alist' and |
| 4000 | 'connection-local-criteria-alist' are now user options, in order to | 3460 | 'connection-local-criteria-alist' are now user options, in order to |
| 4001 | make it more convenient to inspect and modify them. | 3461 | make it more convenient to inspect and modify them. |
| 4002 | 3462 | ||
| 4003 | +++ | ||
| 4004 | *** New function 'connection-local-update-profile-variables'. | 3463 | *** New function 'connection-local-update-profile-variables'. |
| 4005 | This function allows to modify the settings of an existing | 3464 | This function allows to modify the settings of an existing |
| 4006 | connection-local profile. | 3465 | connection-local profile. |
| 4007 | 3466 | ||
| 4008 | +++ | ||
| 4009 | *** New macro 'with-connection-local-application-variables'. | 3467 | *** New macro 'with-connection-local-application-variables'. |
| 4010 | This macro works like 'with-connection-local-variables', but it allows | 3468 | This macro works like 'with-connection-local-variables', but it allows |
| 4011 | using another application instead of 'tramp'. This is useful when | 3469 | using another application instead of 'tramp'. This is useful when |
| 4012 | running code in a buffer where Tramp has already set some | 3470 | running code in a buffer where Tramp has already set some |
| 4013 | connection-local variables. | 3471 | connection-local variables. |
| 4014 | 3472 | ||
| 4015 | +++ | ||
| 4016 | *** New macro 'setq-connection-local'. | 3473 | *** New macro 'setq-connection-local'. |
| 4017 | This allows dynamically setting variable values for a particular | 3474 | This allows dynamically setting variable values for a particular |
| 4018 | connection within the body of 'with-connection-local-{application-}variables'. | 3475 | connection within the body of 'with-connection-local-{application-}variables'. |
| 4019 | See the "(elisp) Connection Local Variables" node in the Lisp | 3476 | See the "(elisp) Connection Local Variables" node in the Lisp |
| 4020 | Reference manual for more information. | 3477 | Reference manual for more information. |
| 4021 | 3478 | ||
| 4022 | +++ | ||
| 4023 | ** 'plist-get', 'plist-put' and 'plist-member' are no longer limited to 'eq'. | 3479 | ** 'plist-get', 'plist-put' and 'plist-member' are no longer limited to 'eq'. |
| 4024 | These function now take an optional comparison PREDICATE argument. | 3480 | These function now take an optional comparison PREDICATE argument. |
| 4025 | 3481 | ||
| 4026 | +++ | ||
| 4027 | ** 'read-multiple-choice' can now use long-form answers. | 3482 | ** 'read-multiple-choice' can now use long-form answers. |
| 4028 | 3483 | ||
| 4029 | +++ | ||
| 4030 | ** 'M-s c' in 'read-regexp' now toggles case folding. | 3484 | ** 'M-s c' in 'read-regexp' now toggles case folding. |
| 4031 | 3485 | ||
| 4032 | +++ | ||
| 4033 | ** 'completing-read' now allows a function as its REQUIRE-MATCH argument. | 3486 | ** 'completing-read' now allows a function as its REQUIRE-MATCH argument. |
| 4034 | This function is called to see whether what the user has typed is a | 3487 | This function is called to see whether what the user has typed is a |
| 4035 | match. This is also available from functions that call | 3488 | match. This is also available from functions that call |
| 4036 | 'completing-read', like 'read-file-name'. | 3489 | 'completing-read', like 'read-file-name'. |
| 4037 | 3490 | ||
| 4038 | +++ | ||
| 4039 | ** 'posn-col-row' can now give position data based on windows. | 3491 | ** 'posn-col-row' can now give position data based on windows. |
| 4040 | Previously, it reported data only based on the frame. | 3492 | Previously, it reported data only based on the frame. |
| 4041 | 3493 | ||
| 4042 | +++ | ||
| 4043 | ** 'file-expand-wildcards' can now also take a regexp as PATTERN argument. | 3494 | ** 'file-expand-wildcards' can now also take a regexp as PATTERN argument. |
| 4044 | 3495 | ||
| 4045 | --- | ||
| 4046 | ** vc-mtn (the VC backend for Monotone) has been made obsolete. | 3496 | ** vc-mtn (the VC backend for Monotone) has been made obsolete. |
| 4047 | 3497 | ||
| 4048 | +++ | ||
| 4049 | ** 'gui-set-selection' can specify different values for different data types. | 3498 | ** 'gui-set-selection' can specify different values for different data types. |
| 4050 | If DATA is a string, then its text properties are searched for values | 3499 | If DATA is a string, then its text properties are searched for values |
| 4051 | for each specific data type while the selection is being converted. | 3500 | for each specific data type while the selection is being converted. |
| 4052 | 3501 | ||
| 4053 | --- | ||
| 4054 | ** New eldoc function 'elisp-eldoc-var-docstring-with-value'. | 3502 | ** New eldoc function 'elisp-eldoc-var-docstring-with-value'. |
| 4055 | This function includes the current value of the variable in eldoc display | 3503 | This function includes the current value of the variable in eldoc display |
| 4056 | and can be used as a more detailed alternative to 'elisp-eldoc-var-docstring'. | 3504 | and can be used as a more detailed alternative to 'elisp-eldoc-var-docstring'. |
| 4057 | 3505 | ||
| 4058 | +++ | ||
| 4059 | ** 'save-some-buffers' can now be extended to save other things. | 3506 | ** 'save-some-buffers' can now be extended to save other things. |
| 4060 | Traditionally, 'save-some-buffers' saved buffers, and also saved | 3507 | Traditionally, 'save-some-buffers' saved buffers, and also saved |
| 4061 | abbrevs. This has been generalized via the | 3508 | abbrevs. This has been generalized via the |
| 4062 | 'save-some-buffers-functions' variable, and packages can now register | 3509 | 'save-some-buffers-functions' variable, and packages can now register |
| 4063 | things to be saved. | 3510 | things to be saved. |
| 4064 | 3511 | ||
| 4065 | +++ | ||
| 4066 | ** New function 'string-equal-ignore-case'. | 3512 | ** New function 'string-equal-ignore-case'. |
| 4067 | This compares strings ignoring case differences. | 3513 | This compares strings ignoring case differences. |
| 4068 | 3514 | ||
| 4069 | +++ | ||
| 4070 | ** 'symbol-file' can now report natively-compiled ".eln" files. | 3515 | ** 'symbol-file' can now report natively-compiled ".eln" files. |
| 4071 | If Emacs was built with native-compilation enabled, Lisp programs can | 3516 | If Emacs was built with native-compilation enabled, Lisp programs can |
| 4072 | now call 'symbol-file' with the new optional 3rd argument non-nil to | 3517 | now call 'symbol-file' with the new optional 3rd argument non-nil to |
| 4073 | request the name of the ".eln" file which defined a given symbol. | 3518 | request the name of the ".eln" file which defined a given symbol. |
| 4074 | 3519 | ||
| 4075 | +++ | ||
| 4076 | ** New macro 'with-memoization' provides a very primitive form of memoization. | 3520 | ** New macro 'with-memoization' provides a very primitive form of memoization. |
| 4077 | 3521 | ||
| 4078 | +++ | ||
| 4079 | ** 'max-char' can now report the maximum codepoint according to Unicode. | 3522 | ** 'max-char' can now report the maximum codepoint according to Unicode. |
| 4080 | When called with a new optional argument UNICODE non-nil, 'max-char' | 3523 | When called with a new optional argument UNICODE non-nil, 'max-char' |
| 4081 | will now report the maximum valid codepoint defined by the Unicode | 3524 | will now report the maximum valid codepoint defined by the Unicode |
| @@ -4083,46 +3526,37 @@ Standard. | |||
| 4083 | 3526 | ||
| 4084 | ** Seq | 3527 | ** Seq |
| 4085 | 3528 | ||
| 4086 | +++ | ||
| 4087 | *** New function 'seq-split'. | 3529 | *** New function 'seq-split'. |
| 4088 | This returns a list of sub-sequences of the specified sequence. | 3530 | This returns a list of sub-sequences of the specified sequence. |
| 4089 | 3531 | ||
| 4090 | +++ | ||
| 4091 | *** New function 'seq-remove-at-position'. | 3532 | *** New function 'seq-remove-at-position'. |
| 4092 | This function returns a copy of the specified sequence with the | 3533 | This function returns a copy of the specified sequence with the |
| 4093 | element at a given (zero-based) index removed. | 3534 | element at a given (zero-based) index removed. |
| 4094 | 3535 | ||
| 4095 | +++ | ||
| 4096 | *** New function 'seq-positions'. | 3536 | *** New function 'seq-positions'. |
| 4097 | This returns a list of the (zero-based) indices of elements matching a | 3537 | This returns a list of the (zero-based) indices of elements matching a |
| 4098 | given predicate in the specified sequence. | 3538 | given predicate in the specified sequence. |
| 4099 | 3539 | ||
| 4100 | +++ | ||
| 4101 | *** New function 'seq-keep'. | 3540 | *** New function 'seq-keep'. |
| 4102 | This is like 'seq-map', but removes all nil results from the returned | 3541 | This is like 'seq-map', but removes all nil results from the returned |
| 4103 | list. | 3542 | list. |
| 4104 | 3543 | ||
| 4105 | ** Themes | 3544 | ** Themes |
| 4106 | 3545 | ||
| 4107 | --- | ||
| 4108 | *** New hooks 'enable-theme-functions' and 'disable-theme-functions'. | 3546 | *** New hooks 'enable-theme-functions' and 'disable-theme-functions'. |
| 4109 | These are run after enabling and disabling a theme, respectively. | 3547 | These are run after enabling and disabling a theme, respectively. |
| 4110 | 3548 | ||
| 4111 | --- | ||
| 4112 | *** Themes can now be made obsolete. | 3549 | *** Themes can now be made obsolete. |
| 4113 | Using 'make-obsolete' on a theme is now supported. This will make | 3550 | Using 'make-obsolete' on a theme is now supported. This will make |
| 4114 | 'load-theme' issue a warning when loading the theme. | 3551 | 'load-theme' issue a warning when loading the theme. |
| 4115 | 3552 | ||
| 4116 | +++ | ||
| 4117 | ** New hook 'display-monitors-changed-functions'. | 3553 | ** New hook 'display-monitors-changed-functions'. |
| 4118 | It is called whenever the configuration of different monitors on a | 3554 | It is called whenever the configuration of different monitors on a |
| 4119 | display changes. | 3555 | display changes. |
| 4120 | 3556 | ||
| 4121 | +++ | ||
| 4122 | ** 'prin1' and 'prin1-to-string' now take an optional OVERRIDES argument. | 3557 | ** 'prin1' and 'prin1-to-string' now take an optional OVERRIDES argument. |
| 4123 | This argument can be used to override values of print-related settings. | 3558 | This argument can be used to override values of print-related settings. |
| 4124 | 3559 | ||
| 4125 | +++ | ||
| 4126 | ** New minor mode 'header-line-indent-mode'. | 3560 | ** New minor mode 'header-line-indent-mode'. |
| 4127 | This is meant to be used by Lisp programs that show a header line | 3561 | This is meant to be used by Lisp programs that show a header line |
| 4128 | which should be kept aligned with the buffer contents when the user | 3562 | which should be kept aligned with the buffer contents when the user |
| @@ -4130,12 +3564,10 @@ switches 'display-line-numbers-mode' on or off, and when the width of | |||
| 4130 | line-number display changes. See the "(elisp) Header Lines" node in | 3564 | line-number display changes. See the "(elisp) Header Lines" node in |
| 4131 | the Emacs Lisp Reference manual for more information. | 3565 | the Emacs Lisp Reference manual for more information. |
| 4132 | 3566 | ||
| 4133 | +++ | ||
| 4134 | ** New global minor mode 'lost-selection-mode'. | 3567 | ** New global minor mode 'lost-selection-mode'. |
| 4135 | This global minor mode makes Emacs deactivate the mark in all buffers | 3568 | This global minor mode makes Emacs deactivate the mark in all buffers |
| 4136 | when the primary selection is obtained by another program. | 3569 | when the primary selection is obtained by another program. |
| 4137 | 3570 | ||
| 4138 | --- | ||
| 4139 | ** On X, Emacs will try to preserve selection ownership when a frame is deleted. | 3571 | ** On X, Emacs will try to preserve selection ownership when a frame is deleted. |
| 4140 | This means that if you make Emacs the owner of a selection, such as by | 3572 | This means that if you make Emacs the owner of a selection, such as by |
| 4141 | selecting some text into the clipboard or primary selection, and then | 3573 | selecting some text into the clipboard or primary selection, and then |
| @@ -4144,13 +3576,11 @@ contents of that selection into other programs as long as another | |||
| 4144 | frame is open on the same display. This behavior can be disabled by | 3576 | frame is open on the same display. This behavior can be disabled by |
| 4145 | setting the user option 'x-auto-preserve-selections' to nil. | 3577 | setting the user option 'x-auto-preserve-selections' to nil. |
| 4146 | 3578 | ||
| 4147 | +++ | ||
| 4148 | ** New predicate 'char-uppercase-p'. | 3579 | ** New predicate 'char-uppercase-p'. |
| 4149 | This returns non-nil if its argument its an uppercase character. | 3580 | This returns non-nil if its argument its an uppercase character. |
| 4150 | 3581 | ||
| 4151 | ** Byte Compilation | 3582 | ** Byte Compilation |
| 4152 | 3583 | ||
| 4153 | --- | ||
| 4154 | *** Byte compilation will now warn about some quoting mistakes in docstrings. | 3584 | *** Byte compilation will now warn about some quoting mistakes in docstrings. |
| 4155 | When writing code snippets that contains the "'" character (APOSTROPHE), | 3585 | When writing code snippets that contains the "'" character (APOSTROPHE), |
| 4156 | that quote character has to be escaped to avoid Emacs displaying it as | 3586 | that quote character has to be escaped to avoid Emacs displaying it as |
| @@ -4164,7 +3594,6 @@ QUOTATION MARK directly. In both these cases, if these characters | |||
| 4164 | should really be present in the docstring, they should be quoted with | 3594 | should really be present in the docstring, they should be quoted with |
| 4165 | "\=". | 3595 | "\=". |
| 4166 | 3596 | ||
| 4167 | --- | ||
| 4168 | *** Byte compilation will now warn about some malformed 'defcustom' types. | 3597 | *** Byte compilation will now warn about some malformed 'defcustom' types. |
| 4169 | It is very common to write 'defcustom' types on the form: | 3598 | It is very common to write 'defcustom' types on the form: |
| 4170 | 3599 | ||
| @@ -4174,137 +3603,111 @@ I.e., double-quoting the 'bar', which is almost never the correct | |||
| 4174 | value. The byte compiler will now issue a warning if it encounters | 3603 | value. The byte compiler will now issue a warning if it encounters |
| 4175 | these forms. | 3604 | these forms. |
| 4176 | 3605 | ||
| 4177 | +++ | ||
| 4178 | ** 'restore-buffer-modified-p' can now alter buffer auto-save state. | 3606 | ** 'restore-buffer-modified-p' can now alter buffer auto-save state. |
| 4179 | With a FLAG value of 'autosaved', it will mark the buffer as having | 3607 | With a FLAG value of 'autosaved', it will mark the buffer as having |
| 4180 | been auto-saved since the time of last modification. | 3608 | been auto-saved since the time of last modification. |
| 4181 | 3609 | ||
| 4182 | --- | ||
| 4183 | ** New minor mode 'isearch-fold-quotes-mode'. | 3610 | ** New minor mode 'isearch-fold-quotes-mode'. |
| 4184 | This sets up 'search-default-mode' so that quote characters are | 3611 | This sets up 'search-default-mode' so that quote characters are |
| 4185 | char-folded into each other. It is used, by default, in "*Help*" and | 3612 | char-folded into each other. It is used, by default, in "*Help*" and |
| 4186 | "*info*" buffers. | 3613 | "*info*" buffers. |
| 4187 | 3614 | ||
| 4188 | +++ | ||
| 4189 | ** New macro 'buffer-local-set-state'. | 3615 | ** New macro 'buffer-local-set-state'. |
| 4190 | This is a helper macro to be used by minor modes that wish to restore | 3616 | This is a helper macro to be used by minor modes that wish to restore |
| 4191 | buffer-local variables back to their original states when the mode is | 3617 | buffer-local variables back to their original states when the mode is |
| 4192 | switched off. | 3618 | switched off. |
| 4193 | 3619 | ||
| 4194 | --- | ||
| 4195 | ** New macro 'with-buffer-unmodified-if-unchanged'. | 3620 | ** New macro 'with-buffer-unmodified-if-unchanged'. |
| 4196 | If the buffer is marked as unmodified, and code does modifications | 3621 | If the buffer is marked as unmodified, and code does modifications |
| 4197 | that, in total, means that the buffer is identical to the buffer | 3622 | that, in total, means that the buffer is identical to the buffer |
| 4198 | before, mark the buffer as unmodified again. | 3623 | before, mark the buffer as unmodified again. |
| 4199 | 3624 | ||
| 4200 | --- | ||
| 4201 | ** New function 'malloc-trim'. | 3625 | ** New function 'malloc-trim'. |
| 4202 | This function allows returning unused memory back to the operating | 3626 | This function allows returning unused memory back to the operating |
| 4203 | system, and is mainly meant as a debugging tool. It is currently | 3627 | system, and is mainly meant as a debugging tool. It is currently |
| 4204 | available only when Emacs was built with glibc as the C library. | 3628 | available only when Emacs was built with glibc as the C library. |
| 4205 | 3629 | ||
| 4206 | --- | ||
| 4207 | ** 'x-show-tip' no longer hard-codes a timeout default. | 3630 | ** 'x-show-tip' no longer hard-codes a timeout default. |
| 4208 | The new variable 'x-show-tooltip-timeout' allows the user to alter | 3631 | The new variable 'x-show-tooltip-timeout' allows the user to alter |
| 4209 | this for packages that don't use 'tooltip-show', but instead call the | 3632 | this for packages that don't use 'tooltip-show', but instead call the |
| 4210 | lower level function directly. | 3633 | lower level function directly. |
| 4211 | 3634 | ||
| 4212 | --- | ||
| 4213 | ** New function 'current-cpu-time'. | 3635 | ** New function 'current-cpu-time'. |
| 4214 | It gives access to the CPU time used by the Emacs process, for | 3636 | It gives access to the CPU time used by the Emacs process, for |
| 4215 | example for benchmarking purposes. | 3637 | example for benchmarking purposes. |
| 4216 | 3638 | ||
| 4217 | --- | ||
| 4218 | ** New function 'string-edit'. | 3639 | ** New function 'string-edit'. |
| 4219 | This is meant to be used when the user has to edit a (potentially) | 3640 | This is meant to be used when the user has to edit a (potentially) |
| 4220 | long string. It pops up a new buffer where you can edit the string, | 3641 | long string. It pops up a new buffer where you can edit the string, |
| 4221 | and the provided callback is called when the user types 'C-c C-c'. | 3642 | and the provided callback is called when the user types 'C-c C-c'. |
| 4222 | 3643 | ||
| 4223 | +++ | ||
| 4224 | ** New function 'read-string-from-buffer'. | 3644 | ** New function 'read-string-from-buffer'. |
| 4225 | This is a modal version of 'string-edit', and can be used as an | 3645 | This is a modal version of 'string-edit', and can be used as an |
| 4226 | alternative to 'read-string'. | 3646 | alternative to 'read-string'. |
| 4227 | 3647 | ||
| 4228 | +++ | ||
| 4229 | ** The return value of 'clear-message-function' is not ignored anymore. | 3648 | ** The return value of 'clear-message-function' is not ignored anymore. |
| 4230 | If the function returns 'dont-clear-message', then the message is not | 3649 | If the function returns 'dont-clear-message', then the message is not |
| 4231 | cleared, with the assumption that the function cleared it itself. | 3650 | cleared, with the assumption that the function cleared it itself. |
| 4232 | 3651 | ||
| 4233 | +++ | ||
| 4234 | ** The local variables section now supports defining fallback modes. | 3652 | ** The local variables section now supports defining fallback modes. |
| 4235 | This was previously only available when using a property line (i.e., | 3653 | This was previously only available when using a property line (i.e., |
| 4236 | putting the modes on the first line of a file). | 3654 | putting the modes on the first line of a file). |
| 4237 | 3655 | ||
| 4238 | +++ | ||
| 4239 | ** New function 'flush-standard-output'. | 3656 | ** New function 'flush-standard-output'. |
| 4240 | This enables display of lines that don't end in a newline from | 3657 | This enables display of lines that don't end in a newline from |
| 4241 | batch-based Emacs scripts. | 3658 | batch-based Emacs scripts. |
| 4242 | 3659 | ||
| 4243 | +++ | ||
| 4244 | ** New convenience function 'buttonize-region'. | 3660 | ** New convenience function 'buttonize-region'. |
| 4245 | This works like 'buttonize', but for a region instead of a string. | 3661 | This works like 'buttonize', but for a region instead of a string. |
| 4246 | 3662 | ||
| 4247 | +++ | ||
| 4248 | ** 'macroexp-let2*' can omit TEST argument and use single-var bindings. | 3663 | ** 'macroexp-let2*' can omit TEST argument and use single-var bindings. |
| 4249 | 3664 | ||
| 4250 | +++ | ||
| 4251 | ** New macro-writing macros, 'cl-with-gensyms' and 'cl-once-only'. | 3665 | ** New macro-writing macros, 'cl-with-gensyms' and 'cl-once-only'. |
| 4252 | See the "(cl) Macro-Writing Macros" manual section for descriptions. | 3666 | See the "(cl) Macro-Writing Macros" manual section for descriptions. |
| 4253 | 3667 | ||
| 4254 | +++ | ||
| 4255 | ** New variable 'last-event-device' and new function 'device-class'. | 3668 | ** New variable 'last-event-device' and new function 'device-class'. |
| 4256 | On X Windows, 'last-event-device' specifies the input extension device | 3669 | On X Windows, 'last-event-device' specifies the input extension device |
| 4257 | from which the last input event originated, and 'device-class' can be | 3670 | from which the last input event originated, and 'device-class' can be |
| 4258 | used to determine the type of an input device. | 3671 | used to determine the type of an input device. |
| 4259 | 3672 | ||
| 4260 | +++ | ||
| 4261 | ** Variable 'track-mouse' can have a new value 'drag-source'. | 3673 | ** Variable 'track-mouse' can have a new value 'drag-source'. |
| 4262 | This means the same as 'dropping', but modifies the mouse position | 3674 | This means the same as 'dropping', but modifies the mouse position |
| 4263 | list in reported motion events if there is no frame underneath the | 3675 | list in reported motion events if there is no frame underneath the |
| 4264 | mouse pointer. | 3676 | mouse pointer. |
| 4265 | 3677 | ||
| 4266 | +++ | ||
| 4267 | ** New functions for dragging items from Emacs to other programs. | 3678 | ** New functions for dragging items from Emacs to other programs. |
| 4268 | The new functions 'x-begin-drag', 'dnd-begin-file-drag', | 3679 | The new functions 'x-begin-drag', 'dnd-begin-file-drag', |
| 4269 | 'dnd-begin-drag-files', and 'dnd-direct-save' allow dragging contents | 3680 | 'dnd-begin-drag-files', and 'dnd-direct-save' allow dragging contents |
| 4270 | (such as files and text) from Emacs to other programs. | 3681 | (such as files and text) from Emacs to other programs. |
| 4271 | 3682 | ||
| 4272 | --- | ||
| 4273 | ** New function 'ietf-drums-parse-date-string'. | 3683 | ** New function 'ietf-drums-parse-date-string'. |
| 4274 | This function parses RFC5322 (and RFC822) date strings, and should be | 3684 | This function parses RFC5322 (and RFC822) date strings, and should be |
| 4275 | used instead of 'parse-time-string' when parsing data that's standards | 3685 | used instead of 'parse-time-string' when parsing data that's standards |
| 4276 | compliant. | 3686 | compliant. |
| 4277 | 3687 | ||
| 4278 | +++ | ||
| 4279 | ** New macro 'setopt'. | 3688 | ** New macro 'setopt'. |
| 4280 | This is like 'setq', but is meant to be used for user options instead | 3689 | This is like 'setq', but is meant to be used for user options instead |
| 4281 | of plain variables, and uses 'custom-set'/'set-default' to set them. | 3690 | of plain variables, and uses 'custom-set'/'set-default' to set them. |
| 4282 | 3691 | ||
| 4283 | +++ | ||
| 4284 | ** New utility predicate 'mode-line-window-selected-p'. | 3692 | ** New utility predicate 'mode-line-window-selected-p'. |
| 4285 | This is meant to be used from ':eval' mode line constructs to create | 3693 | This is meant to be used from ':eval' mode line constructs to create |
| 4286 | different mode line looks for selected and unselected windows. | 3694 | different mode line looks for selected and unselected windows. |
| 4287 | 3695 | ||
| 4288 | +++ | ||
| 4289 | ** New variable 'messages-buffer-name'. | 3696 | ** New variable 'messages-buffer-name'. |
| 4290 | This variable (defaulting to "*Messages*") allows packages to override | 3697 | This variable (defaulting to "*Messages*") allows packages to override |
| 4291 | where messages are logged. | 3698 | where messages are logged. |
| 4292 | 3699 | ||
| 4293 | +++ | ||
| 4294 | ** New function 'readablep'. | 3700 | ** New function 'readablep'. |
| 4295 | This function says whether an object can be written out and then | 3701 | This function says whether an object can be written out and then |
| 4296 | read back by the Emacs Lisp reader. | 3702 | read back by the Emacs Lisp reader. |
| 4297 | 3703 | ||
| 4298 | +++ | ||
| 4299 | ** New variable 'print-unreadable-function'. | 3704 | ** New variable 'print-unreadable-function'. |
| 4300 | This variable allows changing how Emacs prints unreadable objects. | 3705 | This variable allows changing how Emacs prints unreadable objects. |
| 4301 | 3706 | ||
| 4302 | --- | ||
| 4303 | ** The user option 'polling-period' now accepts floating point values. | 3707 | ** The user option 'polling-period' now accepts floating point values. |
| 4304 | This means Emacs can now poll for input during Lisp execution more | 3708 | This means Emacs can now poll for input during Lisp execution more |
| 4305 | frequently than once in a second. | 3709 | frequently than once in a second. |
| 4306 | 3710 | ||
| 4307 | --- | ||
| 4308 | ** New function 'bidi-string-strip-control-characters'. | 3711 | ** New function 'bidi-string-strip-control-characters'. |
| 4309 | This utility function is meant for displaying strings when it is | 3712 | This utility function is meant for displaying strings when it is |
| 4310 | essential that there's no bidirectional context. It removes all the | 3713 | essential that there's no bidirectional context. It removes all the |
| @@ -4312,67 +3715,54 @@ bidirectional formatting control characters (such as RLM, LRO, PDF, | |||
| 4312 | etc.) from its argument string. The characters it removes are listed | 3715 | etc.) from its argument string. The characters it removes are listed |
| 4313 | in the value of 'bidi-control-characters'. | 3716 | in the value of 'bidi-control-characters'. |
| 4314 | 3717 | ||
| 4315 | --- | ||
| 4316 | ** The Gnus range functions have been moved to a new library, range.el. | 3718 | ** The Gnus range functions have been moved to a new library, range.el. |
| 4317 | All the old names have been made obsolete. | 3719 | All the old names have been made obsolete. |
| 4318 | 3720 | ||
| 4319 | +++ | ||
| 4320 | ** New function 'function-alias-p'. | 3721 | ** New function 'function-alias-p'. |
| 4321 | This predicate says whether an object is a function alias, and if it | 3722 | This predicate says whether an object is a function alias, and if it |
| 4322 | is, the alias chain is returned. | 3723 | is, the alias chain is returned. |
| 4323 | 3724 | ||
| 4324 | +++ | ||
| 4325 | ** New variable 'lisp-directory' holds the directory of Emacs's own Lisp files. | 3725 | ** New variable 'lisp-directory' holds the directory of Emacs's own Lisp files. |
| 4326 | 3726 | ||
| 4327 | +++ | ||
| 4328 | ** New facility for handling session state: 'multisession-value'. | 3727 | ** New facility for handling session state: 'multisession-value'. |
| 4329 | This can be used as a convenient way to store (simple) application | 3728 | This can be used as a convenient way to store (simple) application |
| 4330 | state, and the command 'list-multisession-values' allows users to list | 3729 | state, and the command 'list-multisession-values' allows users to list |
| 4331 | (and edit) this data. | 3730 | (and edit) this data. |
| 4332 | 3731 | ||
| 4333 | +++ | ||
| 4334 | ** New function 'get-display-property'. | 3732 | ** New function 'get-display-property'. |
| 4335 | This is like 'get-text-property', but works on the 'display' text | 3733 | This is like 'get-text-property', but works on the 'display' text |
| 4336 | property. | 3734 | property. |
| 4337 | 3735 | ||
| 4338 | +++ | ||
| 4339 | ** New function 'add-display-text-property'. | 3736 | ** New function 'add-display-text-property'. |
| 4340 | This is like 'put-text-property', but works on the 'display' text | 3737 | This is like 'put-text-property', but works on the 'display' text |
| 4341 | property. | 3738 | property. |
| 4342 | 3739 | ||
| 4343 | +++ | ||
| 4344 | ** New 'min-width' 'display' property. | 3740 | ** New 'min-width' 'display' property. |
| 4345 | This allows setting a minimum display width for a region of text. | 3741 | This allows setting a minimum display width for a region of text. |
| 4346 | 3742 | ||
| 4347 | +++ | ||
| 4348 | ** New 'cursor-face' text property. | 3743 | ** New 'cursor-face' text property. |
| 4349 | This uses 'cursor-face' instead of the default face when cursor is on or | 3744 | This uses 'cursor-face' instead of the default face when cursor is on or |
| 4350 | near the character and 'cursor-face-highlight-mode' is enabled. The | 3745 | near the character and 'cursor-face-highlight-mode' is enabled. The |
| 4351 | user option 'cursor-face-highlight-nonselected-window' is similar to | 3746 | user option 'cursor-face-highlight-nonselected-window' is similar to |
| 4352 | 'highlight-nonselected-windows', but for this property. | 3747 | 'highlight-nonselected-windows', but for this property. |
| 4353 | 3748 | ||
| 4354 | +++ | ||
| 4355 | ** New event type 'touch-end'. | 3749 | ** New event type 'touch-end'. |
| 4356 | This event is sent whenever the user's finger moves off the mouse | 3750 | This event is sent whenever the user's finger moves off the mouse |
| 4357 | wheel on some mice, or when the user's finger moves off the touchpad. | 3751 | wheel on some mice, or when the user's finger moves off the touchpad. |
| 4358 | 3752 | ||
| 4359 | +++ | ||
| 4360 | ** New event type 'pinch'. | 3753 | ** New event type 'pinch'. |
| 4361 | This event is sent when a user performs a pinch gesture on a touchpad, | 3754 | This event is sent when a user performs a pinch gesture on a touchpad, |
| 4362 | which is comprised of placing two fingers on the touchpad and moving | 3755 | which is comprised of placing two fingers on the touchpad and moving |
| 4363 | them towards or away from each other. | 3756 | them towards or away from each other. |
| 4364 | 3757 | ||
| 4365 | +++ | ||
| 4366 | ** New hook 'x-pre-popup-menu-hook'. | 3758 | ** New hook 'x-pre-popup-menu-hook'. |
| 4367 | This hook is run before 'x-popup-menu' is about to display a | 3759 | This hook is run before 'x-popup-menu' is about to display a |
| 4368 | deck-of-cards menu on screen. | 3760 | deck-of-cards menu on screen. |
| 4369 | 3761 | ||
| 4370 | --- | ||
| 4371 | ** New hook 'post-select-region-hook'. | 3762 | ** New hook 'post-select-region-hook'. |
| 4372 | This hook is run immediately after 'select-active-regions'. It causes | 3763 | This hook is run immediately after 'select-active-regions'. It causes |
| 4373 | the region to be set as the primary selection. | 3764 | the region to be set as the primary selection. |
| 4374 | 3765 | ||
| 4375 | +++ | ||
| 4376 | ** New function 'buffer-match-p'. | 3766 | ** New function 'buffer-match-p'. |
| 4377 | Check if a buffer satisfies some condition. Some examples for | 3767 | Check if a buffer satisfies some condition. Some examples for |
| 4378 | conditions can be regular expressions that match a buffer name, a | 3768 | conditions can be regular expressions that match a buffer name, a |
| @@ -4380,19 +3770,16 @@ cons-cell like '(major-mode . shell-mode)' that matches any buffer | |||
| 4380 | where 'major-mode' is 'shell-mode' or a combination with a condition | 3770 | where 'major-mode' is 'shell-mode' or a combination with a condition |
| 4381 | like '(and "\\`\\*.+\\*\\'" (major-mode . special-mode))'. | 3771 | like '(and "\\`\\*.+\\*\\'" (major-mode . special-mode))'. |
| 4382 | 3772 | ||
| 4383 | +++ | ||
| 4384 | ** New function 'match-buffers'. | 3773 | ** New function 'match-buffers'. |
| 4385 | It uses 'buffer-match-p' to gather a list of buffers that match a | 3774 | It uses 'buffer-match-p' to gather a list of buffers that match a |
| 4386 | condition. | 3775 | condition. |
| 4387 | 3776 | ||
| 4388 | --- | ||
| 4389 | ** New optional arguments TEXT-FACE and DEFAULT-FACE for 'tooltip-show'. | 3777 | ** New optional arguments TEXT-FACE and DEFAULT-FACE for 'tooltip-show'. |
| 4390 | They allow changing the faces used for the tooltip text and frame | 3778 | They allow changing the faces used for the tooltip text and frame |
| 4391 | colors of the resulting tooltip frame from the default 'tooltip' face. | 3779 | colors of the resulting tooltip frame from the default 'tooltip' face. |
| 4392 | 3780 | ||
| 4393 | ** Text Security and Suspiciousness | 3781 | ** Text Security and Suspiciousness |
| 4394 | 3782 | ||
| 4395 | +++ | ||
| 4396 | *** New library textsec.el. | 3783 | *** New library textsec.el. |
| 4397 | This library contains a number of checks for whether a string is | 3784 | This library contains a number of checks for whether a string is |
| 4398 | "suspicious". This usually means that the string contains characters | 3785 | "suspicious". This usually means that the string contains characters |
| @@ -4400,7 +3787,6 @@ that have glyphs that can be confused with other, more commonly used | |||
| 4400 | glyphs, or contains bidirectional (or other) formatting characters | 3787 | glyphs, or contains bidirectional (or other) formatting characters |
| 4401 | that may be used to confuse a user. | 3788 | that may be used to confuse a user. |
| 4402 | 3789 | ||
| 4403 | +++ | ||
| 4404 | *** New user option 'textsec-check'. | 3790 | *** New user option 'textsec-check'. |
| 4405 | If non-nil (which is the default), Emacs packages that are vulnerable | 3791 | If non-nil (which is the default), Emacs packages that are vulnerable |
| 4406 | to attackers trying to confuse the users will use the textsec library | 3792 | to attackers trying to confuse the users will use the textsec library |
| @@ -4410,7 +3796,6 @@ Message mode will query the user if the user is sending mail to a | |||
| 4410 | suspicious address. If this variable is nil, these checks are | 3796 | suspicious address. If this variable is nil, these checks are |
| 4411 | disabled. | 3797 | disabled. |
| 4412 | 3798 | ||
| 4413 | +++ | ||
| 4414 | *** New function 'textsec-suspicious-p'. | 3799 | *** New function 'textsec-suspicious-p'. |
| 4415 | This is the main function Emacs applications should be using to check | 3800 | This is the main function Emacs applications should be using to check |
| 4416 | whether a string is suspicious. It heeds the 'textsec-check' user | 3801 | whether a string is suspicious. It heeds the 'textsec-check' user |
| @@ -4418,13 +3803,11 @@ option. | |||
| 4418 | 3803 | ||
| 4419 | ** Keymaps and Key Definitions | 3804 | ** Keymaps and Key Definitions |
| 4420 | 3805 | ||
| 4421 | +++ | ||
| 4422 | *** 'where-is-internal' can now filter events marked as non key events. | 3806 | *** 'where-is-internal' can now filter events marked as non key events. |
| 4423 | If a command maps to a key binding like '[some-event]', and 'some-event' | 3807 | If a command maps to a key binding like '[some-event]', and 'some-event' |
| 4424 | has a symbol plist containing a non-nil 'non-key-event' property, then | 3808 | has a symbol plist containing a non-nil 'non-key-event' property, then |
| 4425 | that binding is ignored by 'where-is-internal'. | 3809 | that binding is ignored by 'where-is-internal'. |
| 4426 | 3810 | ||
| 4427 | +++ | ||
| 4428 | *** New functions for defining and manipulating keystrokes. | 3811 | *** New functions for defining and manipulating keystrokes. |
| 4429 | These all take the syntax defined by 'key-valid-p', which is basically | 3812 | These all take the syntax defined by 'key-valid-p', which is basically |
| 4430 | the same syntax as the one accepted by the 'kbd' macro. None of the | 3813 | the same syntax as the one accepted by the 'kbd' macro. None of the |
| @@ -4432,68 +3815,51 @@ older functions have been deprecated or altered, but they are now | |||
| 4432 | de-emphasized in the documentation, and we encourage Lisp programs to | 3815 | de-emphasized in the documentation, and we encourage Lisp programs to |
| 4433 | switch to these new functions. | 3816 | switch to these new functions. |
| 4434 | 3817 | ||
| 4435 | +++ | ||
| 4436 | *** Use 'keymap-set' instead of 'define-key'. | 3818 | *** Use 'keymap-set' instead of 'define-key'. |
| 4437 | 3819 | ||
| 4438 | +++ | ||
| 4439 | *** Use 'keymap-global-set' instead of 'global-set-key'. | 3820 | *** Use 'keymap-global-set' instead of 'global-set-key'. |
| 4440 | 3821 | ||
| 4441 | +++ | ||
| 4442 | *** Use 'keymap-local-set' instead of 'local-set-key'. | 3822 | *** Use 'keymap-local-set' instead of 'local-set-key'. |
| 4443 | 3823 | ||
| 4444 | +++ | ||
| 4445 | *** Use 'keymap-global-unset' instead of 'global-unset-key'. | 3824 | *** Use 'keymap-global-unset' instead of 'global-unset-key'. |
| 4446 | 3825 | ||
| 4447 | +++ | ||
| 4448 | *** Use 'keymap-local-unset' instead of 'local-unset-key'. | 3826 | *** Use 'keymap-local-unset' instead of 'local-unset-key'. |
| 4449 | 3827 | ||
| 4450 | +++ | ||
| 4451 | *** Use 'keymap-substitute' instead of 'substitute-key-definition'. | 3828 | *** Use 'keymap-substitute' instead of 'substitute-key-definition'. |
| 4452 | 3829 | ||
| 4453 | +++ | ||
| 4454 | *** Use 'keymap-set-after' instead of 'define-key-after'. | 3830 | *** Use 'keymap-set-after' instead of 'define-key-after'. |
| 4455 | 3831 | ||
| 4456 | +++ | ||
| 4457 | *** Use 'keymap-lookup' instead of 'lookup-key' and 'key-binding'. | 3832 | *** Use 'keymap-lookup' instead of 'lookup-key' and 'key-binding'. |
| 4458 | 3833 | ||
| 4459 | +++ | ||
| 4460 | *** Use 'keymap-local-lookup' instead of 'local-key-binding'. | 3834 | *** Use 'keymap-local-lookup' instead of 'local-key-binding'. |
| 4461 | 3835 | ||
| 4462 | +++ | ||
| 4463 | *** Use 'keymap-global-lookup' instead of 'global-key-binding'. | 3836 | *** Use 'keymap-global-lookup' instead of 'global-key-binding'. |
| 4464 | 3837 | ||
| 4465 | +++ | ||
| 4466 | *** 'define-key' now takes an optional REMOVE argument. | 3838 | *** 'define-key' now takes an optional REMOVE argument. |
| 4467 | If non-nil, remove the definition from the keymap. This is subtly | 3839 | If non-nil, remove the definition from the keymap. This is subtly |
| 4468 | different from setting a definition to nil: when the keymap has a | 3840 | different from setting a definition to nil: when the keymap has a |
| 4469 | parent such a definition will shadow the parent's definition. | 3841 | parent such a definition will shadow the parent's definition. |
| 4470 | 3842 | ||
| 4471 | +++ | ||
| 4472 | *** 'read-multiple-choice' now takes an optional SHOW-HELP argument. | 3843 | *** 'read-multiple-choice' now takes an optional SHOW-HELP argument. |
| 4473 | If non-nil, show the help buffer immediately, before any user input. | 3844 | If non-nil, show the help buffer immediately, before any user input. |
| 4474 | 3845 | ||
| 4475 | +++ | ||
| 4476 | *** New function 'key-valid-p'. | 3846 | *** New function 'key-valid-p'. |
| 4477 | The 'kbd' function is quite permissive, and will try to return | 3847 | The 'kbd' function is quite permissive, and will try to return |
| 4478 | something usable even if the syntax of the argument isn't completely | 3848 | something usable even if the syntax of the argument isn't completely |
| 4479 | correct. The 'key-valid-p' predicate does a stricter check of the | 3849 | correct. The 'key-valid-p' predicate does a stricter check of the |
| 4480 | syntax. | 3850 | syntax. |
| 4481 | 3851 | ||
| 4482 | --- | ||
| 4483 | *** New function 'key-parse'. | 3852 | *** New function 'key-parse'. |
| 4484 | This is like 'kbd', but only returns vectors instead of a mix of | 3853 | This is like 'kbd', but only returns vectors instead of a mix of |
| 4485 | vectors and strings. | 3854 | vectors and strings. |
| 4486 | 3855 | ||
| 4487 | +++ | ||
| 4488 | *** New ':type' for 'defcustom' for keys. | 3856 | *** New ':type' for 'defcustom' for keys. |
| 4489 | The new 'key' type can be used for options that should be a valid key | 3857 | The new 'key' type can be used for options that should be a valid key |
| 4490 | according to 'key-valid-p'. The type 'key-sequence' is now obsolete. | 3858 | according to 'key-valid-p'. The type 'key-sequence' is now obsolete. |
| 4491 | 3859 | ||
| 4492 | +++ | ||
| 4493 | ** New function 'define-keymap'. | 3860 | ** New function 'define-keymap'. |
| 4494 | This function allows defining a number of keystrokes with one form. | 3861 | This function allows defining a number of keystrokes with one form. |
| 4495 | 3862 | ||
| 4496 | +++ | ||
| 4497 | ** New macro 'defvar-keymap'. | 3863 | ** New macro 'defvar-keymap'. |
| 4498 | This macro allows defining keymap variables more conveniently. | 3864 | This macro allows defining keymap variables more conveniently. |
| 4499 | 3865 | ||
| @@ -4503,11 +3869,9 @@ advanced usage: | |||
| 4503 | 3869 | ||
| 4504 | :repeat (:enter (commands ...) :exit (commands ...)) | 3870 | :repeat (:enter (commands ...) :exit (commands ...)) |
| 4505 | 3871 | ||
| 4506 | --- | ||
| 4507 | ** 'kbd' can now be used in built-in, preloaded libraries. | 3872 | ** 'kbd' can now be used in built-in, preloaded libraries. |
| 4508 | It no longer depends on edmacro.el and cl-lib.el. | 3873 | It no longer depends on edmacro.el and cl-lib.el. |
| 4509 | 3874 | ||
| 4510 | +++ | ||
| 4511 | ** New substitution in docstrings and 'substitute-command-keys'. | 3875 | ** New substitution in docstrings and 'substitute-command-keys'. |
| 4512 | Use \\`KEYSEQ' to insert a literal key sequence "KEYSEQ" (for example | 3876 | Use \\`KEYSEQ' to insert a literal key sequence "KEYSEQ" (for example |
| 4513 | \\`C-k') in a docstring or when calling 'substitute-command-keys', | 3877 | \\`C-k') in a docstring or when calling 'substitute-command-keys', |
| @@ -4516,7 +3880,6 @@ be used only when a key sequence has no corresponding command, for | |||
| 4516 | example when it is read directly with 'read-key-sequence'. It must be | 3880 | example when it is read directly with 'read-key-sequence'. It must be |
| 4517 | a valid key sequence according to 'key-valid-p'. | 3881 | a valid key sequence according to 'key-valid-p'. |
| 4518 | 3882 | ||
| 4519 | --- | ||
| 4520 | ** 'lookup-key' is more permissive when searching for extended menu items. | 3883 | ** 'lookup-key' is more permissive when searching for extended menu items. |
| 4521 | In Emacs 28.1, the behavior of 'lookup-key' was changed: when looking | 3884 | In Emacs 28.1, the behavior of 'lookup-key' was changed: when looking |
| 4522 | for a menu item '[menu-bar Foo-Bar]', first try to find an exact | 3885 | for a menu item '[menu-bar Foo-Bar]', first try to find an exact |
| @@ -4528,61 +3891,49 @@ an exact match, then the lowercased '[menu-bar foo\ bar]' and finally | |||
| 4528 | '[menu-bar foo-bar]'. This further improves backwards-compatibility | 3891 | '[menu-bar foo-bar]'. This further improves backwards-compatibility |
| 4529 | when converting menus to use 'easy-menu-define'. | 3892 | when converting menus to use 'easy-menu-define'. |
| 4530 | 3893 | ||
| 4531 | +++ | ||
| 4532 | ** New function 'file-name-split'. | 3894 | ** New function 'file-name-split'. |
| 4533 | This returns a list of all the components of a file name. | 3895 | This returns a list of all the components of a file name. |
| 4534 | 3896 | ||
| 4535 | +++ | ||
| 4536 | ** New function 'file-name-parent-directory'. | 3897 | ** New function 'file-name-parent-directory'. |
| 4537 | This returns the parent directory of a file name. | 3898 | This returns the parent directory of a file name. |
| 4538 | 3899 | ||
| 4539 | +++ | ||
| 4540 | ** New macro 'with-undo-amalgamate'. | 3900 | ** New macro 'with-undo-amalgamate'. |
| 4541 | It records a particular sequence of operations as a single undo step. | 3901 | It records a particular sequence of operations as a single undo step. |
| 4542 | 3902 | ||
| 4543 | +++ | ||
| 4544 | ** New command 'yank-media'. | 3903 | ** New command 'yank-media'. |
| 4545 | This command supports yanking non-plain-text media like images and | 3904 | This command supports yanking non-plain-text media like images and |
| 4546 | HTML from other applications into Emacs. It is only supported in | 3905 | HTML from other applications into Emacs. It is only supported in |
| 4547 | modes that have registered support for it, and only on capable | 3906 | modes that have registered support for it, and only on capable |
| 4548 | platforms. | 3907 | platforms. |
| 4549 | 3908 | ||
| 4550 | +++ | ||
| 4551 | ** New command 'yank-media-types'. | 3909 | ** New command 'yank-media-types'. |
| 4552 | This command lets you examine all data in the current selection and | 3910 | This command lets you examine all data in the current selection and |
| 4553 | the clipboard, and insert it into the buffer. | 3911 | the clipboard, and insert it into the buffer. |
| 4554 | 3912 | ||
| 4555 | +++ | ||
| 4556 | ** New variable 'yank-transform-functions'. | 3913 | ** New variable 'yank-transform-functions'. |
| 4557 | This variable allows the user to alter the string to be inserted. | 3914 | This variable allows the user to alter the string to be inserted. |
| 4558 | 3915 | ||
| 4559 | --- | ||
| 4560 | ** New command 'yank-in-context'. | 3916 | ** New command 'yank-in-context'. |
| 4561 | This command tries to preserve string/comment syntax when yanking. | 3917 | This command tries to preserve string/comment syntax when yanking. |
| 4562 | 3918 | ||
| 4563 | --- | ||
| 4564 | ** New function 'minibuffer-lazy-highlight-setup'. | 3919 | ** New function 'minibuffer-lazy-highlight-setup'. |
| 4565 | This function allows setting up the minibuffer so that lazy | 3920 | This function allows setting up the minibuffer so that lazy |
| 4566 | highlighting of its content is applied in the original window. | 3921 | highlighting of its content is applied in the original window. |
| 4567 | 3922 | ||
| 4568 | +++ | ||
| 4569 | ** New text property 'inhibit-isearch'. | 3923 | ** New text property 'inhibit-isearch'. |
| 4570 | If set, 'isearch' will skip these areas, which can be useful (for | 3924 | If set, 'isearch' will skip these areas, which can be useful (for |
| 4571 | instance) when covering huge amounts of data (that has no meaningful | 3925 | instance) when covering huge amounts of data (that has no meaningful |
| 4572 | searchable data, like image data) with a 'display' text property. | 3926 | searchable data, like image data) with a 'display' text property. |
| 4573 | 3927 | ||
| 4574 | +++ | ||
| 4575 | ** 'insert-image' now takes an INHIBIT-ISEARCH optional argument. | 3928 | ** 'insert-image' now takes an INHIBIT-ISEARCH optional argument. |
| 4576 | It marks the image with the 'inhibit-isearch' text property, which | 3929 | It marks the image with the 'inhibit-isearch' text property, which |
| 4577 | inhibits 'isearch' matching the STRING argument. | 3930 | inhibits 'isearch' matching the STRING argument. |
| 4578 | 3931 | ||
| 4579 | --- | ||
| 4580 | ** New variable 'replace-regexp-function'. | 3932 | ** New variable 'replace-regexp-function'. |
| 4581 | Function to call to convert the entered FROM string to an Emacs | 3933 | Function to call to convert the entered FROM string to an Emacs |
| 4582 | regexp in 'query-replace' and similar commands. It can be used to | 3934 | regexp in 'query-replace' and similar commands. It can be used to |
| 4583 | implement a different regexp syntax for search/replace. | 3935 | implement a different regexp syntax for search/replace. |
| 4584 | 3936 | ||
| 4585 | --- | ||
| 4586 | ** New variables to customize defaults of FROM for 'query-replace*' commands. | 3937 | ** New variables to customize defaults of FROM for 'query-replace*' commands. |
| 4587 | The new variable 'query-replace-read-from-default' can be set to a | 3938 | The new variable 'query-replace-read-from-default' can be set to a |
| 4588 | function that returns the default value of FROM when 'query-replace' | 3939 | function that returns the default value of FROM when 'query-replace' |
| @@ -4598,59 +3949,49 @@ default value from the previous FROM-TO pair. | |||
| 4598 | 3949 | ||
| 4599 | ** Lisp pretty-printer ('pp') | 3950 | ** Lisp pretty-printer ('pp') |
| 4600 | 3951 | ||
| 4601 | --- | ||
| 4602 | *** New function 'pp-emacs-lisp-code'. | 3952 | *** New function 'pp-emacs-lisp-code'. |
| 4603 | 'pp' formats general Lisp sexps. This function does much the same, | 3953 | 'pp' formats general Lisp sexps. This function does much the same, |
| 4604 | but applies formatting rules appropriate for Emacs Lisp code. Note | 3954 | but applies formatting rules appropriate for Emacs Lisp code. Note |
| 4605 | that this could currently be quite slow, and is thus appropriate only | 3955 | that this could currently be quite slow, and is thus appropriate only |
| 4606 | for relatively small code fragments. | 3956 | for relatively small code fragments. |
| 4607 | 3957 | ||
| 4608 | --- | ||
| 4609 | *** New user option 'pp-use-max-width'. | 3958 | *** New user option 'pp-use-max-width'. |
| 4610 | If non-nil, 'pp' and all 'pp-*' commands that format the results, will | 3959 | If non-nil, 'pp' and all 'pp-*' commands that format the results, will |
| 4611 | attempt to limit the line length when formatting long lists and | 3960 | attempt to limit the line length when formatting long lists and |
| 4612 | vectors. This uses 'pp-emacs-lisp-code', and thus could be slow for | 3961 | vectors. This uses 'pp-emacs-lisp-code', and thus could be slow for |
| 4613 | large lists. | 3962 | large lists. |
| 4614 | 3963 | ||
| 4615 | +++ | ||
| 4616 | ** New function 'file-has-changed-p'. | 3964 | ** New function 'file-has-changed-p'. |
| 4617 | This convenience function is useful when writing code that parses | 3965 | This convenience function is useful when writing code that parses |
| 4618 | files at run-time, and allows Lisp programs to re-parse files only | 3966 | files at run-time, and allows Lisp programs to re-parse files only |
| 4619 | when they have changed. | 3967 | when they have changed. |
| 4620 | 3968 | ||
| 4621 | +++ | ||
| 4622 | ** 'abbreviate-file-name' now respects magic file name handlers. | 3969 | ** 'abbreviate-file-name' now respects magic file name handlers. |
| 4623 | 3970 | ||
| 4624 | --- | ||
| 4625 | ** New function 'font-has-char-p'. | 3971 | ** New function 'font-has-char-p'. |
| 4626 | This can be used to check whether a specific font has a glyph for a | 3972 | This can be used to check whether a specific font has a glyph for a |
| 4627 | character. | 3973 | character. |
| 4628 | 3974 | ||
| 4629 | +++ | ||
| 4630 | ** 'window-text-pixel-size' now accepts a new argument IGNORE-LINE-AT-END. | 3975 | ** 'window-text-pixel-size' now accepts a new argument IGNORE-LINE-AT-END. |
| 4631 | This controls whether or not the last screen line of the text being | 3976 | This controls whether or not the last screen line of the text being |
| 4632 | measured will be counted for the purpose of calculating the text | 3977 | measured will be counted for the purpose of calculating the text |
| 4633 | dimensions. | 3978 | dimensions. |
| 4634 | 3979 | ||
| 4635 | +++ | ||
| 4636 | ** 'window-text-pixel-size' understands a new meaning of FROM. | 3980 | ** 'window-text-pixel-size' understands a new meaning of FROM. |
| 4637 | Specifying a cons as the FROM argument allows to start measuring text | 3981 | Specifying a cons as the FROM argument allows to start measuring text |
| 4638 | from a specified amount of pixels above or below a position. | 3982 | from a specified amount of pixels above or below a position. |
| 4639 | 3983 | ||
| 4640 | +++ | ||
| 4641 | ** 'window-body-width' and 'window-body-height' can use remapped faces. | 3984 | ** 'window-body-width' and 'window-body-height' can use remapped faces. |
| 4642 | Specifying 'remap' as the PIXELWISE argument now checks if the default | 3985 | Specifying 'remap' as the PIXELWISE argument now checks if the default |
| 4643 | face was remapped, and if so, uses the remapped face to determine the | 3986 | face was remapped, and if so, uses the remapped face to determine the |
| 4644 | character width/height. | 3987 | character width/height. |
| 4645 | 3988 | ||
| 4646 | +++ | ||
| 4647 | ** 'set-window-vscroll' now accepts a new argument PRESERVE-VSCROLL-P. | 3989 | ** 'set-window-vscroll' now accepts a new argument PRESERVE-VSCROLL-P. |
| 4648 | This means the vscroll will not be reset when set on a window that is | 3990 | This means the vscroll will not be reset when set on a window that is |
| 4649 | "frozen" due to a mini-window being resized. | 3991 | "frozen" due to a mini-window being resized. |
| 4650 | 3992 | ||
| 4651 | ** XDG Support | 3993 | ** XDG Support |
| 4652 | 3994 | ||
| 4653 | --- | ||
| 4654 | *** New function 'xdg-state-home'. | 3995 | *** New function 'xdg-state-home'. |
| 4655 | It returns the new 'XDG_STATE_HOME' environment variable. It should | 3996 | It returns the new 'XDG_STATE_HOME' environment variable. It should |
| 4656 | point to a file name that "contains state data that should persist | 3997 | point to a file name that "contains state data that should persist |
| @@ -4659,7 +4000,6 @@ enough to the user that it should be stored in $XDG_DATA_HOME". | |||
| 4659 | (This variable was introduced in the XDG Base Directory Specification | 4000 | (This variable was introduced in the XDG Base Directory Specification |
| 4660 | version 0.8 released on May 8, 2021.) | 4001 | version 0.8 released on May 8, 2021.) |
| 4661 | 4002 | ||
| 4662 | --- | ||
| 4663 | *** New function 'xdg-current-desktop'. | 4003 | *** New function 'xdg-current-desktop'. |
| 4664 | It returns a list of strings, corresponding to the colon-separated | 4004 | It returns a list of strings, corresponding to the colon-separated |
| 4665 | list of names in the 'XDG_CURRENT_DESKTOP' environment variable, which | 4005 | list of names in the 'XDG_CURRENT_DESKTOP' environment variable, which |
| @@ -4667,83 +4007,68 @@ identify the current desktop environment. | |||
| 4667 | (This variable was introduced in XDG Desktop Entry Specification | 4007 | (This variable was introduced in XDG Desktop Entry Specification |
| 4668 | version 1.2.) | 4008 | version 1.2.) |
| 4669 | 4009 | ||
| 4670 | --- | ||
| 4671 | *** New function 'xdg-session-type'. | 4010 | *** New function 'xdg-session-type'. |
| 4672 | It returns the 'XDG_SESSION_TYPE' environment variable. (This is not | 4011 | It returns the 'XDG_SESSION_TYPE' environment variable. (This is not |
| 4673 | part of any official standard; see the man page pam_systemd(8) for | 4012 | part of any official standard; see the man page pam_systemd(8) for |
| 4674 | more information.) | 4013 | more information.) |
| 4675 | 4014 | ||
| 4676 | +++ | ||
| 4677 | ** New macro 'with-delayed-message'. | 4015 | ** New macro 'with-delayed-message'. |
| 4678 | This macro is like 'progn', but will output the specified message if | 4016 | This macro is like 'progn', but will output the specified message if |
| 4679 | the body takes longer to execute than the specified timeout. | 4017 | the body takes longer to execute than the specified timeout. |
| 4680 | 4018 | ||
| 4681 | --- | ||
| 4682 | ** New function 'funcall-with-delayed-message'. | 4019 | ** New function 'funcall-with-delayed-message'. |
| 4683 | This function is like 'funcall', but will output the specified message | 4020 | This function is like 'funcall', but will output the specified message |
| 4684 | if the function takes longer to execute than the specified timeout. | 4021 | if the function takes longer to execute than the specified timeout. |
| 4685 | 4022 | ||
| 4686 | ** Locale | 4023 | ** Locale |
| 4687 | 4024 | ||
| 4688 | --- | ||
| 4689 | *** New variable 'current-locale-environment'. | 4025 | *** New variable 'current-locale-environment'. |
| 4690 | This holds the value of the previous call to 'set-locale-environment'. | 4026 | This holds the value of the previous call to 'set-locale-environment'. |
| 4691 | 4027 | ||
| 4692 | --- | ||
| 4693 | *** New macro 'with-locale-environment'. | 4028 | *** New macro 'with-locale-environment'. |
| 4694 | This macro can be used to change the locale temporarily while | 4029 | This macro can be used to change the locale temporarily while |
| 4695 | executing code. | 4030 | executing code. |
| 4696 | 4031 | ||
| 4697 | ** Table | 4032 | ** Table |
| 4698 | 4033 | ||
| 4699 | --- | ||
| 4700 | *** New user option 'table-latex-environment'. | 4034 | *** New user option 'table-latex-environment'. |
| 4701 | This allows switching between "table" and "tabular". | 4035 | This allows switching between "table" and "tabular". |
| 4702 | 4036 | ||
| 4703 | ** Tabulated List Mode | 4037 | ** Tabulated List Mode |
| 4704 | 4038 | ||
| 4705 | +++ | ||
| 4706 | *** A column can now be set to an image descriptor. | 4039 | *** A column can now be set to an image descriptor. |
| 4707 | The 'tabulated-list-entries' variable now supports using an image | 4040 | The 'tabulated-list-entries' variable now supports using an image |
| 4708 | descriptor, which means to insert an image in that column instead of | 4041 | descriptor, which means to insert an image in that column instead of |
| 4709 | text. See the documentation string of that variable for details. | 4042 | text. See the documentation string of that variable for details. |
| 4710 | 4043 | ||
| 4711 | +++ | ||
| 4712 | ** ':keys' in 'menu-item' can now be a function. | 4044 | ** ':keys' in 'menu-item' can now be a function. |
| 4713 | If so, it is called whenever the menu is computed, and can be used to | 4045 | If so, it is called whenever the menu is computed, and can be used to |
| 4714 | calculate the keys dynamically. | 4046 | calculate the keys dynamically. |
| 4715 | 4047 | ||
| 4716 | +++ | ||
| 4717 | ** New major mode 'clean-mode'. | 4048 | ** New major mode 'clean-mode'. |
| 4718 | This is a new major mode meant for debugging. It kills absolutely all | 4049 | This is a new major mode meant for debugging. It kills absolutely all |
| 4719 | local variables and removes overlays and text properties. | 4050 | local variables and removes overlays and text properties. |
| 4720 | 4051 | ||
| 4721 | +++ | ||
| 4722 | ** 'kill-all-local-variables' can now kill all local variables. | 4052 | ** 'kill-all-local-variables' can now kill all local variables. |
| 4723 | If given the new optional KILL-PERMANENT argument, it also kills | 4053 | If given the new optional KILL-PERMANENT argument, it also kills |
| 4724 | permanent local variables. | 4054 | permanent local variables. |
| 4725 | 4055 | ||
| 4726 | +++ | ||
| 4727 | ** Third 'mapconcat' argument SEPARATOR is now optional. | 4056 | ** Third 'mapconcat' argument SEPARATOR is now optional. |
| 4728 | An explicit nil always meant the empty string, now it can be left out. | 4057 | An explicit nil always meant the empty string, now it can be left out. |
| 4729 | 4058 | ||
| 4730 | +++ | ||
| 4731 | ** New function 'image-at-point-p'. | 4059 | ** New function 'image-at-point-p'. |
| 4732 | This function returns t if point is on a valid image, and nil | 4060 | This function returns t if point is on a valid image, and nil |
| 4733 | otherwise. | 4061 | otherwise. |
| 4734 | 4062 | ||
| 4735 | +++ | ||
| 4736 | ** New function 'buffer-text-pixel-size'. | 4063 | ** New function 'buffer-text-pixel-size'. |
| 4737 | This is similar to 'window-text-pixel-size', but can be used when the | 4064 | This is similar to 'window-text-pixel-size', but can be used when the |
| 4738 | buffer isn't displayed. | 4065 | buffer isn't displayed. |
| 4739 | 4066 | ||
| 4740 | +++ | ||
| 4741 | ** New function 'string-pixel-width'. | 4067 | ** New function 'string-pixel-width'. |
| 4742 | This returns the width of a string in pixels. This can be useful when | 4068 | This returns the width of a string in pixels. This can be useful when |
| 4743 | dealing with variable pitch fonts and glyphs that have widths that | 4069 | dealing with variable pitch fonts and glyphs that have widths that |
| 4744 | aren't integer multiples of the default font. | 4070 | aren't integer multiples of the default font. |
| 4745 | 4071 | ||
| 4746 | +++ | ||
| 4747 | ** New function 'string-glyph-split'. | 4072 | ** New function 'string-glyph-split'. |
| 4748 | This function splits a string into a list of strings representing | 4073 | This function splits a string into a list of strings representing |
| 4749 | separate glyphs. This takes into account combining characters and | 4074 | separate glyphs. This takes into account combining characters and |
| @@ -4752,13 +4077,11 @@ display as a single unit. | |||
| 4752 | 4077 | ||
| 4753 | ** Xwidget | 4078 | ** Xwidget |
| 4754 | 4079 | ||
| 4755 | +++ | ||
| 4756 | *** The function 'make-xwidget' now accepts an optional RELATED argument. | 4080 | *** The function 'make-xwidget' now accepts an optional RELATED argument. |
| 4757 | This argument is used as another widget for the newly created WebKit | 4081 | This argument is used as another widget for the newly created WebKit |
| 4758 | widget to share settings and subprocesses with. It must be another | 4082 | widget to share settings and subprocesses with. It must be another |
| 4759 | WebKit widget. | 4083 | WebKit widget. |
| 4760 | 4084 | ||
| 4761 | +++ | ||
| 4762 | *** New function 'xwidget-perform-lispy-event'. | 4085 | *** New function 'xwidget-perform-lispy-event'. |
| 4763 | This function allows you to send events to xwidgets. Usually, some | 4086 | This function allows you to send events to xwidgets. Usually, some |
| 4764 | equivalent of the event will be sent, but there is no guarantee of | 4087 | equivalent of the event will be sent, but there is no guarantee of |
| @@ -4766,33 +4089,27 @@ what the widget will actually receive. | |||
| 4766 | 4089 | ||
| 4767 | On GTK+, only key and function key events are implemented. | 4090 | On GTK+, only key and function key events are implemented. |
| 4768 | 4091 | ||
| 4769 | +++ | ||
| 4770 | *** New function 'xwidget-webkit-load-html'. | 4092 | *** New function 'xwidget-webkit-load-html'. |
| 4771 | This function is used to load HTML text into WebKit xwidgets | 4093 | This function is used to load HTML text into WebKit xwidgets |
| 4772 | directly, in contrast to creating a temporary file to hold the | 4094 | directly, in contrast to creating a temporary file to hold the |
| 4773 | markup, and passing the URI of the file as an argument to | 4095 | markup, and passing the URI of the file as an argument to |
| 4774 | 'xwidget-webkit-goto-uri'. | 4096 | 'xwidget-webkit-goto-uri'. |
| 4775 | 4097 | ||
| 4776 | +++ | ||
| 4777 | *** New functions for performing searches on WebKit xwidgets. | 4098 | *** New functions for performing searches on WebKit xwidgets. |
| 4778 | Some new functions, such as 'xwidget-webkit-search', have been added | 4099 | Some new functions, such as 'xwidget-webkit-search', have been added |
| 4779 | for performing searches on WebKit xwidgets. | 4100 | for performing searches on WebKit xwidgets. |
| 4780 | 4101 | ||
| 4781 | +++ | ||
| 4782 | *** New function 'xwidget-webkit-back-forward-list'. | 4102 | *** New function 'xwidget-webkit-back-forward-list'. |
| 4783 | This function returns the history of page-loads in a WebKit xwidget. | 4103 | This function returns the history of page-loads in a WebKit xwidget. |
| 4784 | 4104 | ||
| 4785 | +++ | ||
| 4786 | *** New function 'xwidget-webkit-estimated-load-progress'. | 4105 | *** New function 'xwidget-webkit-estimated-load-progress'. |
| 4787 | This function returns the estimated progress of page loading in a | 4106 | This function returns the estimated progress of page loading in a |
| 4788 | WebKit xwidget. | 4107 | WebKit xwidget. |
| 4789 | 4108 | ||
| 4790 | +++ | ||
| 4791 | *** New function 'xwidget-webkit-stop-loading'. | 4109 | *** New function 'xwidget-webkit-stop-loading'. |
| 4792 | This function terminates all data transfer during page loads in a | 4110 | This function terminates all data transfer during page loads in a |
| 4793 | WebKit xwidget. | 4111 | WebKit xwidget. |
| 4794 | 4112 | ||
| 4795 | +++ | ||
| 4796 | *** 'load-changed' xwidget events are now more detailed. | 4113 | *** 'load-changed' xwidget events are now more detailed. |
| 4797 | In particular, they can now have different arguments based on the | 4114 | In particular, they can now have different arguments based on the |
| 4798 | state of the WebKit widget. 'load-finished' is sent when a load has | 4115 | state of the WebKit widget. 'load-finished' is sent when a load has |
| @@ -4800,84 +4117,68 @@ completed, 'load-started' when a load first starts, 'load-redirected' | |||
| 4800 | after a redirect, and 'load-committed' when the WebKit widget first | 4117 | after a redirect, and 'load-committed' when the WebKit widget first |
| 4801 | commits to the load. | 4118 | commits to the load. |
| 4802 | 4119 | ||
| 4803 | +++ | ||
| 4804 | *** New event type 'xwidget-display-event'. | 4120 | *** New event type 'xwidget-display-event'. |
| 4805 | These events are sent whenever an xwidget requests that Emacs displays | 4121 | These events are sent whenever an xwidget requests that Emacs displays |
| 4806 | another xwidget. The only arguments to this event are the xwidget | 4122 | another xwidget. The only arguments to this event are the xwidget |
| 4807 | that should be displayed, and the xwidget that asked to display it. | 4123 | that should be displayed, and the xwidget that asked to display it. |
| 4808 | 4124 | ||
| 4809 | +++ | ||
| 4810 | *** New function 'xwidget-webkit-set-cookie-storage-file'. | 4125 | *** New function 'xwidget-webkit-set-cookie-storage-file'. |
| 4811 | This function is used to control where and if an xwidget stores | 4126 | This function is used to control where and if an xwidget stores |
| 4812 | cookies set by web pages on disk. | 4127 | cookies set by web pages on disk. |
| 4813 | 4128 | ||
| 4814 | --- | ||
| 4815 | ** New variable 'help-buffer-under-preparation'. | 4129 | ** New variable 'help-buffer-under-preparation'. |
| 4816 | This variable is bound to t during the preparation of a "*Help*" buffer. | 4130 | This variable is bound to t during the preparation of a "*Help*" buffer. |
| 4817 | 4131 | ||
| 4818 | +++ | ||
| 4819 | ** Timestamps like '(1 . 1000)' now work without warnings being generated. | 4132 | ** Timestamps like '(1 . 1000)' now work without warnings being generated. |
| 4820 | For example, '(time-add nil '(1 . 1000))' no longer warns that the | 4133 | For example, '(time-add nil '(1 . 1000))' no longer warns that the |
| 4821 | '(1 . 1000)' acts like '(1000 . 1000000)'. This warning, which was a | 4134 | '(1 . 1000)' acts like '(1000 . 1000000)'. This warning, which was a |
| 4822 | temporary transition aid for Emacs 27, has served its purpose. | 4135 | temporary transition aid for Emacs 27, has served its purpose. |
| 4823 | 4136 | ||
| 4824 | +++ | ||
| 4825 | ** 'encode-time' now also accepts a 6-element list with just time and date. | 4137 | ** 'encode-time' now also accepts a 6-element list with just time and date. |
| 4826 | '(encode-time (list SECOND MINUTE HOUR DAY MONTH YEAR))' is now short for | 4138 | '(encode-time (list SECOND MINUTE HOUR DAY MONTH YEAR))' is now short for |
| 4827 | '(encode-time (list SECOND MINUTE HOUR DAY MONTH YEAR nil -1 nil))'. | 4139 | '(encode-time (list SECOND MINUTE HOUR DAY MONTH YEAR nil -1 nil))'. |
| 4828 | 4140 | ||
| 4829 | +++ | ||
| 4830 | ** 'date-to-time' now accepts arguments that lack month, day, or time. | 4141 | ** 'date-to-time' now accepts arguments that lack month, day, or time. |
| 4831 | The function now assumes the earliest possible values if its argument | 4142 | The function now assumes the earliest possible values if its argument |
| 4832 | lacks month, day, or time. For example, (date-to-time "2021-12-04") | 4143 | lacks month, day, or time. For example, (date-to-time "2021-12-04") |
| 4833 | now assumes a time of "00:00" instead of signaling an error. | 4144 | now assumes a time of "00:00" instead of signaling an error. |
| 4834 | 4145 | ||
| 4835 | +++ | ||
| 4836 | ** 'format-seconds' now allows suppressing zero-value trailing elements. | 4146 | ** 'format-seconds' now allows suppressing zero-value trailing elements. |
| 4837 | The new "%x" non-printing control character will suppress zero-value | 4147 | The new "%x" non-printing control character will suppress zero-value |
| 4838 | elements that appear after "%x". | 4148 | elements that appear after "%x". |
| 4839 | 4149 | ||
| 4840 | +++ | ||
| 4841 | ** New events for taking advantage of touchscreen devices. | 4150 | ** New events for taking advantage of touchscreen devices. |
| 4842 | The events 'touchscreen-begin', 'touchscreen-update', and | 4151 | The events 'touchscreen-begin', 'touchscreen-update', and |
| 4843 | 'touchscreen-end' have been added to take better advantage of | 4152 | 'touchscreen-end' have been added to take better advantage of |
| 4844 | touch-capable display panels. | 4153 | touch-capable display panels. |
| 4845 | 4154 | ||
| 4846 | +++ | ||
| 4847 | ** New error symbol 'permission-denied'. | 4155 | ** New error symbol 'permission-denied'. |
| 4848 | This is a subcategory of 'file-error', and is signaled when some file | 4156 | This is a subcategory of 'file-error', and is signaled when some file |
| 4849 | operation fails because the OS doesn't allow Emacs to access a file or | 4157 | operation fails because the OS doesn't allow Emacs to access a file or |
| 4850 | a directory. | 4158 | a directory. |
| 4851 | 4159 | ||
| 4852 | +++ | ||
| 4853 | ** The ':underline' face attribute now accepts a new property. | 4160 | ** The ':underline' face attribute now accepts a new property. |
| 4854 | The property ':position' now specifies the position of the underline | 4161 | The property ':position' now specifies the position of the underline |
| 4855 | when used as part of a property list specification for the | 4162 | when used as part of a property list specification for the |
| 4856 | ':underline' attribute. | 4163 | ':underline' attribute. |
| 4857 | 4164 | ||
| 4858 | +++ | ||
| 4859 | ** 'defalias' records a more precise history of definitions. | 4165 | ** 'defalias' records a more precise history of definitions. |
| 4860 | This is recorded in the 'function-history' symbol property. | 4166 | This is recorded in the 'function-history' symbol property. |
| 4861 | 4167 | ||
| 4862 | --- | ||
| 4863 | ** New hook 'save-place-after-find-file-hook'. | 4168 | ** New hook 'save-place-after-find-file-hook'. |
| 4864 | This is called at the end of 'save-place-find-file-hook'. | 4169 | This is called at the end of 'save-place-find-file-hook'. |
| 4865 | 4170 | ||
| 4866 | --- | ||
| 4867 | ** 'indian-tml-base-table' no longer translates digits. | 4171 | ** 'indian-tml-base-table' no longer translates digits. |
| 4868 | Use 'indian-tml-base-digits-table' if you want digits translation. | 4172 | Use 'indian-tml-base-digits-table' if you want digits translation. |
| 4869 | 4173 | ||
| 4870 | --- | ||
| 4871 | ** 'indian-tml-itrans-v5-hash' no longer translates digits. | 4174 | ** 'indian-tml-itrans-v5-hash' no longer translates digits. |
| 4872 | Use 'indian-tml-itrans-digits-v5-hash' if you want digits | 4175 | Use 'indian-tml-itrans-digits-v5-hash' if you want digits |
| 4873 | translation. | 4176 | translation. |
| 4874 | 4177 | ||
| 4875 | +++ | ||
| 4876 | ** 'shell-quote-argument' has a new optional argument POSIX. | 4178 | ** 'shell-quote-argument' has a new optional argument POSIX. |
| 4877 | This is useful when quoting shell arguments for a remote shell | 4179 | This is useful when quoting shell arguments for a remote shell |
| 4878 | invocation. Such shells are POSIX conformant by default. | 4180 | invocation. Such shells are POSIX conformant by default. |
| 4879 | 4181 | ||
| 4880 | +++ | ||
| 4881 | ** 'make-process' can set connection type independently for input and output. | 4182 | ** 'make-process' can set connection type independently for input and output. |
| 4882 | When calling 'make-process', communication via pty can be enabled | 4183 | When calling 'make-process', communication via pty can be enabled |
| 4883 | selectively for just input or output by passing a cons cell for | 4184 | selectively for just input or output by passing a cons cell for |
| @@ -4886,14 +4187,12 @@ later, you can determine whether a particular stream for a process | |||
| 4886 | uses a pty by passing one of 'stdin', 'stdout', or 'stderr' as the | 4187 | uses a pty by passing one of 'stdin', 'stdout', or 'stderr' as the |
| 4887 | second argument to 'process-tty-name'. | 4188 | second argument to 'process-tty-name'. |
| 4888 | 4189 | ||
| 4889 | +++ | ||
| 4890 | ** 'signal-process' now consults the list 'signal-process-functions'. | 4190 | ** 'signal-process' now consults the list 'signal-process-functions'. |
| 4891 | This is to determine which function has to be called in order to | 4191 | This is to determine which function has to be called in order to |
| 4892 | deliver the signal. This allows Tramp to send the signal to remote | 4192 | deliver the signal. This allows Tramp to send the signal to remote |
| 4893 | asynchronous processes. The hitherto existing implementation has been | 4193 | asynchronous processes. The hitherto existing implementation has been |
| 4894 | moved to 'internal-default-signal-process'. | 4194 | moved to 'internal-default-signal-process'. |
| 4895 | 4195 | ||
| 4896 | +++ | ||
| 4897 | ** Some system information functions honor remote systems now. | 4196 | ** Some system information functions honor remote systems now. |
| 4898 | 'list-system-processes' returns remote process IDs. | 4197 | 'list-system-processes' returns remote process IDs. |
| 4899 | 'memory-info' returns memory information of remote systems. | 4198 | 'memory-info' returns memory information of remote systems. |
| @@ -4905,21 +4204,17 @@ remote. In order to preserve the old behavior, bind | |||
| 4905 | (let ((default-directory temporary-file-directory)) | 4204 | (let ((default-directory temporary-file-directory)) |
| 4906 | (list-system-processes)) | 4205 | (list-system-processes)) |
| 4907 | 4206 | ||
| 4908 | +++ | ||
| 4909 | ** New functions 'take' and 'ntake'. | 4207 | ** New functions 'take' and 'ntake'. |
| 4910 | '(take N LIST)' returns the first N elements of LIST; 'ntake' does | 4208 | '(take N LIST)' returns the first N elements of LIST; 'ntake' does |
| 4911 | the same but works by modifying LIST destructively. | 4209 | the same but works by modifying LIST destructively. |
| 4912 | 4210 | ||
| 4913 | --- | ||
| 4914 | ** 'string-split' is now an alias for 'split-string'. | 4211 | ** 'string-split' is now an alias for 'split-string'. |
| 4915 | 4212 | ||
| 4916 | +++ | ||
| 4917 | ** 'format-spec' now accepts functions in the replacement. | 4213 | ** 'format-spec' now accepts functions in the replacement. |
| 4918 | The function is called only when used in the format string. This is | 4214 | The function is called only when used in the format string. This is |
| 4919 | useful to avoid side-effects such as prompting, when the value is not | 4215 | useful to avoid side-effects such as prompting, when the value is not |
| 4920 | actually being used for anything. | 4216 | actually being used for anything. |
| 4921 | 4217 | ||
| 4922 | +++ | ||
| 4923 | ** The variable 'max-specpdl-size' has been made obsolete. | 4218 | ** The variable 'max-specpdl-size' has been made obsolete. |
| 4924 | Now 'max-lisp-eval-depth' alone is used for limiting Lisp recursion | 4219 | Now 'max-lisp-eval-depth' alone is used for limiting Lisp recursion |
| 4925 | and stack usage. 'max-specpdl-size' is still present as a plain | 4220 | and stack usage. 'max-specpdl-size' is still present as a plain |
| @@ -4933,11 +4228,9 @@ set is too big to transfer to Emacs every time a completion is | |||
| 4933 | needed. The table uses new 'external' completion style exclusively | 4228 | needed. The table uses new 'external' completion style exclusively |
| 4934 | and cannot work with regular styles such as 'basic' or 'flex'. | 4229 | and cannot work with regular styles such as 'basic' or 'flex'. |
| 4935 | 4230 | ||
| 4936 | +++ | ||
| 4937 | ** Magic file name handlers for 'make-directory-internal' are no longer needed. | 4231 | ** Magic file name handlers for 'make-directory-internal' are no longer needed. |
| 4938 | Instead, Emacs uses the already-existing 'make-directory' handlers. | 4232 | Instead, Emacs uses the already-existing 'make-directory' handlers. |
| 4939 | 4233 | ||
| 4940 | +++ | ||
| 4941 | ** '(make-directory DIR t)' returns non-nil if DIR already exists. | 4234 | ** '(make-directory DIR t)' returns non-nil if DIR already exists. |
| 4942 | This can let a caller know whether it created DIR. Formerly, | 4235 | This can let a caller know whether it created DIR. Formerly, |
| 4943 | 'make-directory's return value was unspecified. | 4236 | 'make-directory's return value was unspecified. |
| @@ -4947,7 +4240,6 @@ This can let a caller know whether it created DIR. Formerly, | |||
| 4947 | 4240 | ||
| 4948 | ** MS-Windows | 4241 | ** MS-Windows |
| 4949 | 4242 | ||
| 4950 | --- | ||
| 4951 | *** Emacs now supports double-buffering on MS-Windows to reduce display flicker. | 4243 | *** Emacs now supports double-buffering on MS-Windows to reduce display flicker. |
| 4952 | (This was supported on Free systems since Emacs 26.1.) | 4244 | (This was supported on Free systems since Emacs 26.1.) |
| 4953 | 4245 | ||
| @@ -4962,14 +4254,12 @@ selected frame by evaluating | |||
| 4962 | 4254 | ||
| 4963 | (modify-frame-parameters nil '((inhibit-double-buffering . t))) | 4255 | (modify-frame-parameters nil '((inhibit-double-buffering . t))) |
| 4964 | 4256 | ||
| 4965 | +++ | ||
| 4966 | *** Emacs now supports system dark mode. | 4257 | *** Emacs now supports system dark mode. |
| 4967 | On Windows 10 (version 1809 and higher) and Windows 11, Emacs will now | 4258 | On Windows 10 (version 1809 and higher) and Windows 11, Emacs will now |
| 4968 | follow the system's dark mode: GUI frames use the appropriate light or | 4259 | follow the system's dark mode: GUI frames use the appropriate light or |
| 4969 | dark title bar and scroll bars, based on the user's Windows-wide color | 4260 | dark title bar and scroll bars, based on the user's Windows-wide color |
| 4970 | settings. | 4261 | settings. |
| 4971 | 4262 | ||
| 4972 | --- | ||
| 4973 | *** Emacs now uses native image APIs to display some image formats. | 4263 | *** Emacs now uses native image APIs to display some image formats. |
| 4974 | On Windows 2000 and later, Emacs now defaults to using the native | 4264 | On Windows 2000 and later, Emacs now defaults to using the native |
| 4975 | image APIs for displaying the BMP, GIF, JPEG, PNG, and TIFF images. | 4265 | image APIs for displaying the BMP, GIF, JPEG, PNG, and TIFF images. |
| @@ -4982,12 +4272,10 @@ The use of native image APIs is controlled by the variable | |||
| 4982 | 'w32-use-native-image-API', whose value now defaults to t on systems | 4272 | 'w32-use-native-image-API', whose value now defaults to t on systems |
| 4983 | where those APIs are available. | 4273 | where those APIs are available. |
| 4984 | 4274 | ||
| 4985 | +++ | ||
| 4986 | *** Emacs now supports display of BMP images using native image APIs. | 4275 | *** Emacs now supports display of BMP images using native image APIs. |
| 4987 | When 'w32-use-native-image-API' is non-nil, Emacs on MS-Windows now | 4276 | When 'w32-use-native-image-API' is non-nil, Emacs on MS-Windows now |
| 4988 | has built-in support for displaying BMP images. | 4277 | has built-in support for displaying BMP images. |
| 4989 | 4278 | ||
| 4990 | --- | ||
| 4991 | *** GUI Yes/No dialogs now include a "Cancel" button. | 4279 | *** GUI Yes/No dialogs now include a "Cancel" button. |
| 4992 | The "Cancel" button is in addition to "Yes" and "No", and is intended | 4280 | The "Cancel" button is in addition to "Yes" and "No", and is intended |
| 4993 | to allow users to quit the dialog, as an equivalent of 'C-g' when Emacs | 4281 | to allow users to quit the dialog, as an equivalent of 'C-g' when Emacs |
| @@ -4998,12 +4286,10 @@ two buttons: "Yes" and "No". | |||
| 4998 | 4286 | ||
| 4999 | ** Cygwin | 4287 | ** Cygwin |
| 5000 | 4288 | ||
| 5001 | --- | ||
| 5002 | *** 'process-attributes' is now implemented. | 4289 | *** 'process-attributes' is now implemented. |
| 5003 | 4290 | ||
| 5004 | ** macOS | 4291 | ** macOS |
| 5005 | 4292 | ||
| 5006 | +++ | ||
| 5007 | *** The 'ns-popup-font-panel' command has been removed. | 4293 | *** The 'ns-popup-font-panel' command has been removed. |
| 5008 | Use the general command 'M-x menu-set-font' instead. | 4294 | Use the general command 'M-x menu-set-font' instead. |
| 5009 | 4295 | ||