diff options
| author | Eli Zaretskii | 2022-04-13 16:52:50 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2022-04-13 16:52:50 +0300 |
| commit | 5a14406ecfbd1efd03a00c49a84c19d31bb77f48 (patch) | |
| tree | 0ef3345816636a1530806b2585ba1f40c30c84de /etc | |
| parent | be42fdc6dc60bec1d14065d04dc43b693398c591 (diff) | |
| parent | f2ae39829812098d8269eafbc0fcb98959ee5bb7 (diff) | |
| download | emacs-5a14406ecfbd1efd03a00c49a84c19d31bb77f48.tar.gz emacs-5a14406ecfbd1efd03a00c49a84c19d31bb77f48.zip | |
Merge from origin/emacs-28
# Conflicts:
# etc/NEWS
# lisp/desktop.el
# lisp/dired.el
Diffstat (limited to 'etc')
| -rw-r--r-- | etc/NEWS.28 | 691 |
1 files changed, 0 insertions, 691 deletions
diff --git a/etc/NEWS.28 b/etc/NEWS.28 index 84041d79c20..995de8d3177 100644 --- a/etc/NEWS.28 +++ b/etc/NEWS.28 | |||
| @@ -15,12 +15,6 @@ 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 28.1 | 19 | * Installation Changes in Emacs 28.1 |
| 26 | 20 | ||
| @@ -58,30 +52,25 @@ still be available when HarfBuzz is supported, but will not be used by | |||
| 58 | default. We strongly recommend building with HarfBuzz support. 'x' is | 52 | default. We strongly recommend building with HarfBuzz support. 'x' is |
| 59 | still a valid backend. | 53 | still a valid backend. |
| 60 | 54 | ||
| 61 | --- | ||
| 62 | ** 'configure' now warns about building with libXft support. | 55 | ** 'configure' now warns about building with libXft support. |
| 63 | libXft is unmaintained, and causes a number of problems with modern | 56 | libXft is unmaintained, and causes a number of problems with modern |
| 64 | fonts including but not limited to crashes; support for it may be | 57 | fonts including but not limited to crashes; support for it may be |
| 65 | removed in a future version of Emacs. Please consider using | 58 | removed in a future version of Emacs. Please consider using |
| 66 | Cairo + HarfBuzz instead. | 59 | Cairo + HarfBuzz instead. |
| 67 | 60 | ||
| 68 | --- | ||
| 69 | ** 'configure' now warns about not using HarfBuzz if using Cairo. | 61 | ** 'configure' now warns about not using HarfBuzz if using Cairo. |
| 70 | We want to encourage people to use the most modern font features | 62 | We want to encourage people to use the most modern font features |
| 71 | available, and this is the Cairo graphics library + HarfBuzz for font | 63 | available, and this is the Cairo graphics library + HarfBuzz for font |
| 72 | shaping, so 'configure' now recommends that combination. | 64 | shaping, so 'configure' now recommends that combination. |
| 73 | 65 | ||
| 74 | --- | ||
| 75 | ** Building without double buffering support. | 66 | ** Building without double buffering support. |
| 76 | 'configure --with-xdbe=no' can now be used to disable double buffering | 67 | 'configure --with-xdbe=no' can now be used to disable double buffering |
| 77 | at build time. | 68 | at build time. |
| 78 | 69 | ||
| 79 | --- | ||
| 80 | ** The configure option '--without-makeinfo' has been removed. | 70 | ** The configure option '--without-makeinfo' has been removed. |
| 81 | This was only ever relevant when building from a repository checkout. | 71 | This was only ever relevant when building from a repository checkout. |
| 82 | This now requires makeinfo, which is part of the texinfo package. | 72 | This now requires makeinfo, which is part of the texinfo package. |
| 83 | 73 | ||
| 84 | --- | ||
| 85 | ** New configure option '--disable-year2038'. | 74 | ** New configure option '--disable-year2038'. |
| 86 | This causes Emacs to use only 32-bit time_t on platforms that have | 75 | This causes Emacs to use only 32-bit time_t on platforms that have |
| 87 | both 32- and 64-bit time_t. This may help when linking Emacs with a | 76 | both 32- and 64-bit time_t. This may help when linking Emacs with a |
| @@ -90,16 +79,13 @@ currently affects only 32-bit ARM and x86 running GNU/Linux with glibc | |||
| 90 | 2.34 and later. Emacs now defaults to 64-bit time_t on these | 79 | 2.34 and later. Emacs now defaults to 64-bit time_t on these |
| 91 | platforms. | 80 | platforms. |
| 92 | 81 | ||
| 93 | --- | ||
| 94 | ** Support for building with '-fcheck-pointer-bounds' has been removed. | 82 | ** Support for building with '-fcheck-pointer-bounds' has been removed. |
| 95 | GCC has withdrawn the '-fcheck-pointer-bounds' option and support for | 83 | GCC has withdrawn the '-fcheck-pointer-bounds' option and support for |
| 96 | its implementation has been removed from the Linux kernel. | 84 | its implementation has been removed from the Linux kernel. |
| 97 | 85 | ||
| 98 | --- | ||
| 99 | ** The ftx font backend driver has been removed. | 86 | ** The ftx font backend driver has been removed. |
| 100 | It was declared obsolete in Emacs 27.1. | 87 | It was declared obsolete in Emacs 27.1. |
| 101 | 88 | ||
| 102 | --- | ||
| 103 | ** Emacs no longer supports old OpenBSD systems. | 89 | ** Emacs no longer supports old OpenBSD systems. |
| 104 | OpenBSD 5.3 and older releases are no longer supported, as they lack | 90 | OpenBSD 5.3 and older releases are no longer supported, as they lack |
| 105 | proper pty support that Emacs needs. | 91 | proper pty support that Emacs needs. |
| @@ -107,13 +93,11 @@ proper pty support that Emacs needs. | |||
| 107 | 93 | ||
| 108 | * Startup Changes in Emacs 28.1 | 94 | * Startup Changes in Emacs 28.1 |
| 109 | 95 | ||
| 110 | --- | ||
| 111 | ** In GTK builds, Emacs now supports startup notification. | 96 | ** In GTK builds, Emacs now supports startup notification. |
| 112 | This means that Emacs won't steal keyboard focus upon startup | 97 | This means that Emacs won't steal keyboard focus upon startup |
| 113 | (when started via the Desktop) if the user is typing into another | 98 | (when started via the Desktop) if the user is typing into another |
| 114 | application. | 99 | application. |
| 115 | 100 | ||
| 116 | --- | ||
| 117 | ** Errors in 'kill-emacs-hook' no longer prevent Emacs from shutting down. | 101 | ** Errors in 'kill-emacs-hook' no longer prevent Emacs from shutting down. |
| 118 | If a function in that hook signals an error in an interactive Emacs, | 102 | If a function in that hook signals an error in an interactive Emacs, |
| 119 | the user will be prompted on whether to continue. If the user doesn't | 103 | the user will be prompted on whether to continue. If the user doesn't |
| @@ -136,7 +120,6 @@ lacks the terminfo database, you can instruct Emacs to support 24-bit | |||
| 136 | true color by setting 'COLORTERM=truecolor' in the environment. This is | 120 | true color by setting 'COLORTERM=truecolor' in the environment. This is |
| 137 | useful on systems such as FreeBSD which ships only with "etc/termcap". | 121 | useful on systems such as FreeBSD which ships only with "etc/termcap". |
| 138 | 122 | ||
| 139 | --- | ||
| 140 | ** File names given on the command line are now be pushed onto history. | 123 | ** File names given on the command line are now be pushed onto history. |
| 141 | The file names will be pushed onto 'file-name-history', like the names | 124 | The file names will be pushed onto 'file-name-history', like the names |
| 142 | of files visited via 'C-x C-f' and other commands. | 125 | of files visited via 'C-x C-f' and other commands. |
| @@ -144,10 +127,8 @@ of files visited via 'C-x C-f' and other commands. | |||
| 144 | 127 | ||
| 145 | * Changes in Emacs 28.1 | 128 | * Changes in Emacs 28.1 |
| 146 | 129 | ||
| 147 | --- | ||
| 148 | ** Emacs now supports Unicode Standard version 14.0. | 130 | ** Emacs now supports Unicode Standard version 14.0. |
| 149 | 131 | ||
| 150 | +++ | ||
| 151 | ** Improved support for Emoji. | 132 | ** Improved support for Emoji. |
| 152 | On capable systems, Emacs now correctly displays Emoji and Emoji | 133 | On capable systems, Emacs now correctly displays Emoji and Emoji |
| 153 | sequences by default, provided that a suitable font is available to | 134 | sequences by default, provided that a suitable font is available to |
| @@ -171,20 +152,17 @@ the above example. (Previously, the Emoji characters were assigned to | |||
| 171 | the 'symbol' script, together with other symbol and punctuation | 152 | the 'symbol' script, together with other symbol and punctuation |
| 172 | characters.) | 153 | characters.) |
| 173 | 154 | ||
| 174 | +++ | ||
| 175 | ** 'glyphless-char-display-control' now applies to Variation Selectors. | 155 | ** 'glyphless-char-display-control' now applies to Variation Selectors. |
| 176 | VS-1 through VS-16 are now displayed as 'thin-space' by default when | 156 | VS-1 through VS-16 are now displayed as 'thin-space' by default when |
| 177 | not composed with previous characters (typically, as part of Emoji | 157 | not composed with previous characters (typically, as part of Emoji |
| 178 | sequences). | 158 | sequences). |
| 179 | 159 | ||
| 180 | +++ | ||
| 181 | ** New command 'execute-extended-command-for-buffer'. | 160 | ** New command 'execute-extended-command-for-buffer'. |
| 182 | This new command, bound to 'M-S-x', works like | 161 | This new command, bound to 'M-S-x', works like |
| 183 | 'execute-extended-command', but limits the set of commands to the | 162 | 'execute-extended-command', but limits the set of commands to the |
| 184 | commands that have been determined to be particularly useful with the | 163 | commands that have been determined to be particularly useful with the |
| 185 | current mode. | 164 | current mode. |
| 186 | 165 | ||
| 187 | +++ | ||
| 188 | ** New user option 'read-extended-command-predicate'. | 166 | ** New user option 'read-extended-command-predicate'. |
| 189 | This user option controls how 'M-x' performs completion of commands when | 167 | This user option controls how 'M-x' performs completion of commands when |
| 190 | you type 'TAB'. By default, any command that matches what you have | 168 | you type 'TAB'. By default, any command that matches what you have |
| @@ -193,36 +171,30 @@ option to exclude commands that are not applicable to the current | |||
| 193 | buffer's major and minor modes, and respect the command's completion | 171 | buffer's major and minor modes, and respect the command's completion |
| 194 | predicate (if any). | 172 | predicate (if any). |
| 195 | 173 | ||
| 196 | +++ | ||
| 197 | ** Completion on 'M-x' shows key bindings for commands. | 174 | ** Completion on 'M-x' shows key bindings for commands. |
| 198 | When 'suggest-key-bindings' is non-nil (as it is by default), the | 175 | When 'suggest-key-bindings' is non-nil (as it is by default), the |
| 199 | completion list popped up by 'M-x' shows the key bindings for all the | 176 | completion list popped up by 'M-x' shows the key bindings for all the |
| 200 | commands shown in the list of candidate completions that have a key | 177 | commands shown in the list of candidate completions that have a key |
| 201 | binding. | 178 | binding. |
| 202 | 179 | ||
| 203 | +++ | ||
| 204 | ** New user option 'completions-detailed'. | 180 | ** New user option 'completions-detailed'. |
| 205 | When non-nil, some commands like 'describe-symbol' show more detailed | 181 | When non-nil, some commands like 'describe-symbol' show more detailed |
| 206 | completions with more information in completion prefix and suffix. | 182 | completions with more information in completion prefix and suffix. |
| 207 | The default is nil. | 183 | The default is nil. |
| 208 | 184 | ||
| 209 | --- | ||
| 210 | ** 'C-s' in 'M-x' now once again searches over completions. | 185 | ** 'C-s' in 'M-x' now once again searches over completions. |
| 211 | In Emacs 23, typing 'M-x' ('read-extended-command') and then 'C-s' (to | 186 | In Emacs 23, typing 'M-x' ('read-extended-command') and then 'C-s' (to |
| 212 | do an interactive search) would search over possible completions. | 187 | do an interactive search) would search over possible completions. |
| 213 | This was lost in Emacs 24, but is now back again. | 188 | This was lost in Emacs 24, but is now back again. |
| 214 | 189 | ||
| 215 | +++ | ||
| 216 | ** User option 'completions-format' supports a new value 'one-column'. | 190 | ** User option 'completions-format' supports a new value 'one-column'. |
| 217 | 191 | ||
| 218 | +++ | ||
| 219 | ** New system for displaying documentation for groups of functions. | 192 | ** New system for displaying documentation for groups of functions. |
| 220 | This can either be used by saying 'M-x shortdoc-display-group' and | 193 | This can either be used by saying 'M-x shortdoc-display-group' and |
| 221 | choosing a group, or clicking a button in the "*Help*" buffers when | 194 | choosing a group, or clicking a button in the "*Help*" buffers when |
| 222 | looking at the doc string of a function that belongs to one of these | 195 | looking at the doc string of a function that belongs to one of these |
| 223 | groups. | 196 | groups. |
| 224 | 197 | ||
| 225 | +++ | ||
| 226 | ** New minor mode 'context-menu-mode' for context menus popped by 'mouse-3'. | 198 | ** New minor mode 'context-menu-mode' for context menus popped by 'mouse-3'. |
| 227 | When this mode is enabled, clicking 'down-mouse-3' (usually, the | 199 | When this mode is enabled, clicking 'down-mouse-3' (usually, the |
| 228 | right mouse button) anywhere in the buffer pops up a menu whose | 200 | right mouse button) anywhere in the buffer pops up a menu whose |
| @@ -232,7 +204,6 @@ by customizing the user option 'context-menu-functions'. You can also | |||
| 232 | invoke the context menu by pressing 'S-<F10>' or, on macOS, by | 204 | invoke the context menu by pressing 'S-<F10>' or, on macOS, by |
| 233 | clicking 'C-down-mouse-1'. | 205 | clicking 'C-down-mouse-1'. |
| 234 | 206 | ||
| 235 | +++ | ||
| 236 | ** A new keymap for buffer actions has been added. | 207 | ** A new keymap for buffer actions has been added. |
| 237 | The 'C-x x' keymap now holds keystrokes for various buffer-oriented | 208 | The 'C-x x' keymap now holds keystrokes for various buffer-oriented |
| 238 | commands. The new keystrokes are 'C-x x g' ('revert-buffer-quick'), | 209 | commands. The new keystrokes are 'C-x x g' ('revert-buffer-quick'), |
| @@ -240,34 +211,29 @@ commands. The new keystrokes are 'C-x x g' ('revert-buffer-quick'), | |||
| 240 | ('clone-buffer'), 'C-x x i' ('insert-buffer'), 'C-x x t' | 211 | ('clone-buffer'), 'C-x x i' ('insert-buffer'), 'C-x x t' |
| 241 | ('toggle-truncate-lines') and 'C-x x f' ('font-lock-update'). | 212 | ('toggle-truncate-lines') and 'C-x x f' ('font-lock-update'). |
| 242 | 213 | ||
| 243 | +++ | ||
| 244 | ** Modifiers now go outside angle brackets in pretty-printed key bindings. | 214 | ** Modifiers now go outside angle brackets in pretty-printed key bindings. |
| 245 | For example, 'RET' with Control and Meta modifiers is now shown as | 215 | For example, 'RET' with Control and Meta modifiers is now shown as |
| 246 | 'C-M-<return>' instead of '<C-M-return>'. Either variant can be used | 216 | 'C-M-<return>' instead of '<C-M-return>'. Either variant can be used |
| 247 | as input; functions such as 'kbd' and 'read-kbd-macro' accept both | 217 | as input; functions such as 'kbd' and 'read-kbd-macro' accept both |
| 248 | styles as equivalent (they have done so for a long time). | 218 | styles as equivalent (they have done so for a long time). |
| 249 | 219 | ||
| 250 | --- | ||
| 251 | ** 'eval-expression' no longer signals an error on incomplete expressions. | 220 | ** 'eval-expression' no longer signals an error on incomplete expressions. |
| 252 | Previously, typing 'M-: ( RET' would result in Emacs saying "End of | 221 | Previously, typing 'M-: ( RET' would result in Emacs saying "End of |
| 253 | file during parsing" and dropping out of the minibuffer. The user | 222 | file during parsing" and dropping out of the minibuffer. The user |
| 254 | would have to type 'M-: M-p' to edit and redo the expression. Now | 223 | would have to type 'M-: M-p' to edit and redo the expression. Now |
| 255 | Emacs will echo the message and allow the user to continue editing. | 224 | Emacs will echo the message and allow the user to continue editing. |
| 256 | 225 | ||
| 257 | +++ | ||
| 258 | ** 'eval-last-sexp' now handles 'defvar'/'defcustom'/'defface' specially. | 226 | ** 'eval-last-sexp' now handles 'defvar'/'defcustom'/'defface' specially. |
| 259 | This command would previously not redefine values defined by these | 227 | This command would previously not redefine values defined by these |
| 260 | forms, but this command has now been changed to work more like | 228 | forms, but this command has now been changed to work more like |
| 261 | 'eval-defun', and reset the values as specified. | 229 | 'eval-defun', and reset the values as specified. |
| 262 | 230 | ||
| 263 | --- | ||
| 264 | ** New user option 'use-short-answers'. | 231 | ** New user option 'use-short-answers'. |
| 265 | When non-nil, the function 'y-or-n-p' is used instead of | 232 | When non-nil, the function 'y-or-n-p' is used instead of |
| 266 | 'yes-or-no-p'. This eliminates the need to define an alias that maps | 233 | 'yes-or-no-p'. This eliminates the need to define an alias that maps |
| 267 | one to another in the init file. The same user option also controls | 234 | one to another in the init file. The same user option also controls |
| 268 | whether the function 'read-answer' accepts short answers. | 235 | whether the function 'read-answer' accepts short answers. |
| 269 | 236 | ||
| 270 | +++ | ||
| 271 | ** New user option 'kill-buffer-delete-auto-save-files'. | 237 | ** New user option 'kill-buffer-delete-auto-save-files'. |
| 272 | If non-nil, killing a buffer that has an auto-save file will prompt | 238 | If non-nil, killing a buffer that has an auto-save file will prompt |
| 273 | the user for whether that auto-save file should be deleted. (Note | 239 | the user for whether that auto-save file should be deleted. (Note |
| @@ -277,37 +243,31 @@ unsaved changes, but this has apparently not worked for several | |||
| 277 | decades, so the documented semantics of this variable has been changed | 243 | decades, so the documented semantics of this variable has been changed |
| 278 | to match the behavior.) | 244 | to match the behavior.) |
| 279 | 245 | ||
| 280 | +++ | ||
| 281 | ** New user option 'next-error-message-highlight'. | 246 | ** New user option 'next-error-message-highlight'. |
| 282 | In addition to a fringe arrow, 'next-error' error may now optionally | 247 | In addition to a fringe arrow, 'next-error' error may now optionally |
| 283 | highlight the current error message in the 'next-error' buffer. | 248 | highlight the current error message in the 'next-error' buffer. |
| 284 | This user option can be also customized to keep highlighting on all | 249 | This user option can be also customized to keep highlighting on all |
| 285 | visited errors, so you can have an overview what errors were already visited. | 250 | visited errors, so you can have an overview what errors were already visited. |
| 286 | 251 | ||
| 287 | --- | ||
| 288 | ** New choice 'next-error-quit-window' for 'next-error-found-function'. | 252 | ** New choice 'next-error-quit-window' for 'next-error-found-function'. |
| 289 | When 'next-error-found-function' is customized to 'next-error-quit-window', | 253 | When 'next-error-found-function' is customized to 'next-error-quit-window', |
| 290 | then typing the numeric prefix argument 0 before the command 'next-error' | 254 | then typing the numeric prefix argument 0 before the command 'next-error' |
| 291 | will quit the source window after visiting the next occurrence. | 255 | will quit the source window after visiting the next occurrence. |
| 292 | 256 | ||
| 293 | +++ | ||
| 294 | ** New user option 'file-preserve-symlinks-on-save'. | 257 | ** New user option 'file-preserve-symlinks-on-save'. |
| 295 | This controls what Emacs does when saving buffers that visit files via | 258 | This controls what Emacs does when saving buffers that visit files via |
| 296 | symbolic links, and 'file-precious-flag' is non-nil. | 259 | symbolic links, and 'file-precious-flag' is non-nil. |
| 297 | 260 | ||
| 298 | +++ | ||
| 299 | ** New user option 'copy-directory-create-symlink'. | 261 | ** New user option 'copy-directory-create-symlink'. |
| 300 | If non-nil, will make 'copy-directory' (when used on a symbolic | 262 | If non-nil, will make 'copy-directory' (when used on a symbolic |
| 301 | link) copy the link instead of following the link. The default is | 263 | link) copy the link instead of following the link. The default is |
| 302 | nil, so the default behavior is unchanged. | 264 | nil, so the default behavior is unchanged. |
| 303 | 265 | ||
| 304 | +++ | ||
| 305 | ** New user option 'ignored-local-variable-values'. | 266 | ** New user option 'ignored-local-variable-values'. |
| 306 | This is the opposite of 'safe-local-variable-values' -- it's an alist | 267 | This is the opposite of 'safe-local-variable-values' -- it's an alist |
| 307 | of variable-value pairs that are to be ignored when reading a | 268 | of variable-value pairs that are to be ignored when reading a |
| 308 | local-variables section of a file. | 269 | local-variables section of a file. |
| 309 | 270 | ||
| 310 | --- | ||
| 311 | ** Specific warnings can now be disabled from the warning buffer. | 271 | ** Specific warnings can now be disabled from the warning buffer. |
| 312 | When a warning is displayed to the user, the resulting buffer now has | 272 | When a warning is displayed to the user, the resulting buffer now has |
| 313 | buttons which allow making permanent changes to the treatment of that | 273 | buttons which allow making permanent changes to the treatment of that |
| @@ -315,21 +275,17 @@ warning. Automatic showing of the warning can be disabled (although | |||
| 315 | it is still logged to the "*Messages*" buffer), or the warning can be | 275 | it is still logged to the "*Messages*" buffer), or the warning can be |
| 316 | disabled entirely. | 276 | disabled entirely. |
| 317 | 277 | ||
| 318 | +++ | ||
| 319 | ** ".dir-locals.el" now supports setting 'auto-mode-alist'. | 278 | ** ".dir-locals.el" now supports setting 'auto-mode-alist'. |
| 320 | The new 'auto-mode-alist' specification in ".dir-locals.el" files can | 279 | The new 'auto-mode-alist' specification in ".dir-locals.el" files can |
| 321 | now be used to override the global 'auto-mode-alist' in the current | 280 | now be used to override the global 'auto-mode-alist' in the current |
| 322 | directory tree. | 281 | directory tree. |
| 323 | 282 | ||
| 324 | --- | ||
| 325 | ** User option 'uniquify-buffer-name-style' can now be a function. | 283 | ** User option 'uniquify-buffer-name-style' can now be a function. |
| 326 | This user option can be one of the predefined styles or a function to | 284 | This user option can be one of the predefined styles or a function to |
| 327 | personalize the uniquified buffer name. | 285 | personalize the uniquified buffer name. |
| 328 | 286 | ||
| 329 | --- | ||
| 330 | ** 'remove-hook' is now an interactive command. | 287 | ** 'remove-hook' is now an interactive command. |
| 331 | 288 | ||
| 332 | --- | ||
| 333 | ** 'expand-file-name' now checks for null bytes in filenames. | 289 | ** 'expand-file-name' now checks for null bytes in filenames. |
| 334 | The function will now check for null bytes in both NAME and | 290 | The function will now check for null bytes in both NAME and |
| 335 | DEFAULT-DIRECTORY arguments, as well as in the 'default-directory' | 291 | DEFAULT-DIRECTORY arguments, as well as in the 'default-directory' |
| @@ -339,22 +295,18 @@ This means that practically all file-related operations will now check | |||
| 339 | file names for null bytes, thus avoiding subtle bugs with silently | 295 | file names for null bytes, thus avoiding subtle bugs with silently |
| 340 | using only the part of file name up to the first null byte. | 296 | using only the part of file name up to the first null byte. |
| 341 | 297 | ||
| 342 | --- | ||
| 343 | ** Frames | 298 | ** Frames |
| 344 | 299 | ||
| 345 | +++ | ||
| 346 | *** The key prefix 'C-x 5 5' displays next command buffer in a new frame. | 300 | *** The key prefix 'C-x 5 5' displays next command buffer in a new frame. |
| 347 | It's bound to the command 'other-frame-prefix' that requests the buffer | 301 | It's bound to the command 'other-frame-prefix' that requests the buffer |
| 348 | of the next command to be displayed in a new frame. | 302 | of the next command to be displayed in a new frame. |
| 349 | 303 | ||
| 350 | +++ | ||
| 351 | *** New command 'clone-frame' (bound to 'C-x 5 c'). | 304 | *** New command 'clone-frame' (bound to 'C-x 5 c'). |
| 352 | This is like 'C-x 5 2', but uses the window configuration and frame | 305 | This is like 'C-x 5 2', but uses the window configuration and frame |
| 353 | parameters of the current frame instead of 'default-frame-alist'. | 306 | parameters of the current frame instead of 'default-frame-alist'. |
| 354 | When called interactively with a prefix arg, the window configuration | 307 | When called interactively with a prefix arg, the window configuration |
| 355 | is not cloned. | 308 | is not cloned. |
| 356 | 309 | ||
| 357 | --- | ||
| 358 | *** Default values of 'frame-title-format' and 'icon-title-format' have changed. | 310 | *** Default values of 'frame-title-format' and 'icon-title-format' have changed. |
| 359 | These variables are used to display the title bar of visible frames | 311 | These variables are used to display the title bar of visible frames |
| 360 | and the title bar of an iconified frame. They now show the name of | 312 | and the title bar of an iconified frame. They now show the name of |
| @@ -365,68 +317,56 @@ your init file: | |||
| 365 | (setq frame-title-format '(multiple-frames "%b" | 317 | (setq frame-title-format '(multiple-frames "%b" |
| 366 | ("" invocation-name "@" system-name))) | 318 | ("" invocation-name "@" system-name))) |
| 367 | 319 | ||
| 368 | +++ | ||
| 369 | *** New frame parameter 'drag-with-tab-line'. | 320 | *** New frame parameter 'drag-with-tab-line'. |
| 370 | This parameter, similar to 'drag-with-header-line', allows moving frames | 321 | This parameter, similar to 'drag-with-header-line', allows moving frames |
| 371 | by dragging the tab lines of their topmost windows with the mouse. | 322 | by dragging the tab lines of their topmost windows with the mouse. |
| 372 | 323 | ||
| 373 | +++ | ||
| 374 | *** New optional behavior of 'delete-other-frames'. | 324 | *** New optional behavior of 'delete-other-frames'. |
| 375 | When invoked with a prefix argument, 'delete-other-frames' now | 325 | When invoked with a prefix argument, 'delete-other-frames' now |
| 376 | iconifies frames, rather than deleting them. | 326 | iconifies frames, rather than deleting them. |
| 377 | 327 | ||
| 378 | --- | ||
| 379 | *** Commands 'set-frame-width' and 'set-frame-height' now prompt for values. | 328 | *** Commands 'set-frame-width' and 'set-frame-height' now prompt for values. |
| 380 | These commands now prompt for the value via the minibuffer, instead of | 329 | These commands now prompt for the value via the minibuffer, instead of |
| 381 | requiring the user to specify the value via the prefix argument. | 330 | requiring the user to specify the value via the prefix argument. |
| 382 | 331 | ||
| 383 | ** Windows | 332 | ** Windows |
| 384 | 333 | ||
| 385 | +++ | ||
| 386 | *** The key prefix 'C-x 4 1' displays next command buffer in the same window. | 334 | *** The key prefix 'C-x 4 1' displays next command buffer in the same window. |
| 387 | It's bound to the command 'same-window-prefix' that requests the buffer | 335 | It's bound to the command 'same-window-prefix' that requests the buffer |
| 388 | of the next command to be displayed in the same window. | 336 | of the next command to be displayed in the same window. |
| 389 | 337 | ||
| 390 | +++ | ||
| 391 | *** The key prefix 'C-x 4 4' displays next command buffer in a new window. | 338 | *** The key prefix 'C-x 4 4' displays next command buffer in a new window. |
| 392 | It's bound to the command 'other-window-prefix' that requests the buffer | 339 | It's bound to the command 'other-window-prefix' that requests the buffer |
| 393 | of the next command to be displayed in a new window. | 340 | of the next command to be displayed in a new window. |
| 394 | 341 | ||
| 395 | +++ | ||
| 396 | *** New command 'recenter-other-window', bound to 'S-M-C-l'. | 342 | *** New command 'recenter-other-window', bound to 'S-M-C-l'. |
| 397 | Like 'recenter-top-bottom', but acting on the other window. | 343 | Like 'recenter-top-bottom', but acting on the other window. |
| 398 | 344 | ||
| 399 | +++ | ||
| 400 | *** New user option 'delete-window-choose-selected'. | 345 | *** New user option 'delete-window-choose-selected'. |
| 401 | This allows specifying how Emacs chooses which window will be the | 346 | This allows specifying how Emacs chooses which window will be the |
| 402 | frame's selected window after the currently selected window is | 347 | frame's selected window after the currently selected window is |
| 403 | deleted. | 348 | deleted. |
| 404 | 349 | ||
| 405 | +++ | ||
| 406 | *** New argument NO-OTHER for some window functions. | 350 | *** New argument NO-OTHER for some window functions. |
| 407 | 'get-lru-window', 'get-mru-window' and 'get-largest-window' now accept a | 351 | 'get-lru-window', 'get-mru-window' and 'get-largest-window' now accept a |
| 408 | new optional argument NO-OTHER which, if non-nil, avoids returning a | 352 | new optional argument NO-OTHER which, if non-nil, avoids returning a |
| 409 | window whose 'no-other-window' parameter is non-nil. | 353 | window whose 'no-other-window' parameter is non-nil. |
| 410 | 354 | ||
| 411 | +++ | ||
| 412 | *** New 'display-buffer' function 'display-buffer-use-least-recent-window'. | 355 | *** New 'display-buffer' function 'display-buffer-use-least-recent-window'. |
| 413 | This is like 'display-buffer-use-some-window', but won't reuse the | 356 | This is like 'display-buffer-use-some-window', but won't reuse the |
| 414 | current window, and when called repeatedly will try not to reuse a | 357 | current window, and when called repeatedly will try not to reuse a |
| 415 | previously selected window. | 358 | previously selected window. |
| 416 | 359 | ||
| 417 | +++ | ||
| 418 | *** New function 'window-bump-use-time'. | 360 | *** New function 'window-bump-use-time'. |
| 419 | This updates the use time of a window. | 361 | This updates the use time of a window. |
| 420 | 362 | ||
| 421 | ** Minibuffer | 363 | ** Minibuffer |
| 422 | 364 | ||
| 423 | +++ | ||
| 424 | *** Minibuffer scrolling is now conservative by default. | 365 | *** Minibuffer scrolling is now conservative by default. |
| 425 | This is controlled by the new variable 'scroll-minibuffer-conservatively'. | 366 | This is controlled by the new variable 'scroll-minibuffer-conservatively'. |
| 426 | It is t by default; setting it to nil will cause scrolling in the | 367 | It is t by default; setting it to nil will cause scrolling in the |
| 427 | minibuffer obey the value of 'scroll-conservatively'. | 368 | minibuffer obey the value of 'scroll-conservatively'. |
| 428 | 369 | ||
| 429 | +++ | ||
| 430 | *** Improved handling of minibuffers on switching frames. | 370 | *** Improved handling of minibuffers on switching frames. |
| 431 | By default, when you switch to another frame, an active minibuffer now | 371 | By default, when you switch to another frame, an active minibuffer now |
| 432 | moves to the newly selected frame. Nevertheless, the effect of what | 372 | moves to the newly selected frame. Nevertheless, the effect of what |
| @@ -439,14 +379,12 @@ behavior, which mixed these two, can be approximated by customizing | |||
| 439 | 'minibuffer-follows-selected-frame' to a value which is neither nil | 379 | 'minibuffer-follows-selected-frame' to a value which is neither nil |
| 440 | nor t. | 380 | nor t. |
| 441 | 381 | ||
| 442 | +++ | ||
| 443 | *** New user option 'read-minibuffer-restore-windows'. | 382 | *** New user option 'read-minibuffer-restore-windows'. |
| 444 | When customized to nil, it uses 'minibuffer-restore-windows' in | 383 | When customized to nil, it uses 'minibuffer-restore-windows' in |
| 445 | 'minibuffer-exit-hook' to remove only the window showing the | 384 | 'minibuffer-exit-hook' to remove only the window showing the |
| 446 | "*Completions*" buffer, but keeps all other windows created | 385 | "*Completions*" buffer, but keeps all other windows created |
| 447 | while the minibuffer was active. | 386 | while the minibuffer was active. |
| 448 | 387 | ||
| 449 | --- | ||
| 450 | *** New variable 'redisplay-adhoc-scroll-in-resize-mini-windows'. | 388 | *** New variable 'redisplay-adhoc-scroll-in-resize-mini-windows'. |
| 451 | Customizing it to nil will disable the ad-hoc auto-scrolling of | 389 | Customizing it to nil will disable the ad-hoc auto-scrolling of |
| 452 | minibuffer text shown in mini-windows when resizing those windows. | 390 | minibuffer text shown in mini-windows when resizing those windows. |
| @@ -457,13 +395,11 @@ cases anyway. | |||
| 457 | 395 | ||
| 458 | ** Mode Line | 396 | ** Mode Line |
| 459 | 397 | ||
| 460 | +++ | ||
| 461 | *** New user option 'mode-line-compact'. | 398 | *** New user option 'mode-line-compact'. |
| 462 | If non-nil, repeating spaces are compressed into a single space. If | 399 | If non-nil, repeating spaces are compressed into a single space. If |
| 463 | 'long', this is only done when the mode line is longer than the | 400 | 'long', this is only done when the mode line is longer than the |
| 464 | current window width (in columns). | 401 | current window width (in columns). |
| 465 | 402 | ||
| 466 | +++ | ||
| 467 | *** New user options to control format of line/column numbers in the mode line. | 403 | *** New user options to control format of line/column numbers in the mode line. |
| 468 | 'mode-line-position-line-format' is the line number format (when | 404 | 'mode-line-position-line-format' is the line number format (when |
| 469 | 'line-number-mode' is on), 'mode-line-position-column-format' is | 405 | 'line-number-mode' is on), 'mode-line-position-column-format' is |
| @@ -473,16 +409,13 @@ both modes are on). | |||
| 473 | 409 | ||
| 474 | ** Tab Bars and Tab Lines | 410 | ** Tab Bars and Tab Lines |
| 475 | 411 | ||
| 476 | +++ | ||
| 477 | *** The prefix key 'C-x t t' can be used to display a buffer in a new tab. | 412 | *** The prefix key 'C-x t t' can be used to display a buffer in a new tab. |
| 478 | Typing 'C-x t t' before a command will cause the buffer shown by that | 413 | Typing 'C-x t t' before a command will cause the buffer shown by that |
| 479 | command to be displayed in a new tab. 'C-x t t' is bound to the | 414 | command to be displayed in a new tab. 'C-x t t' is bound to the |
| 480 | command 'other-tab-prefix'. | 415 | command 'other-tab-prefix'. |
| 481 | 416 | ||
| 482 | +++ | ||
| 483 | *** New command 'C-x t C-r' to open file read-only in the other tab. | 417 | *** New command 'C-x t C-r' to open file read-only in the other tab. |
| 484 | 418 | ||
| 485 | +++ | ||
| 486 | *** The tab bar now supports more mouse commands. | 419 | *** The tab bar now supports more mouse commands. |
| 487 | Clicking 'mouse-2' closes the tab, 'mouse-3' displays the context menu | 420 | Clicking 'mouse-2' closes the tab, 'mouse-3' displays the context menu |
| 488 | with items that operate on the clicked tab. Dragging the tab with | 421 | with items that operate on the clicked tab. Dragging the tab with |
| @@ -490,20 +423,17 @@ with items that operate on the clicked tab. Dragging the tab with | |||
| 490 | scrolling switches to the previous/next tab, and holding the Shift key | 423 | scrolling switches to the previous/next tab, and holding the Shift key |
| 491 | during scrolling moves the tab to the left/right. | 424 | during scrolling moves the tab to the left/right. |
| 492 | 425 | ||
| 493 | +++ | ||
| 494 | *** Frame-specific appearance of the tab bar when 'tab-bar-show' is a number. | 426 | *** Frame-specific appearance of the tab bar when 'tab-bar-show' is a number. |
| 495 | When 'tab-bar-show' is a number, the tab bar on different frames can | 427 | When 'tab-bar-show' is a number, the tab bar on different frames can |
| 496 | be shown or hidden independently, as determined by the number of tabs | 428 | be shown or hidden independently, as determined by the number of tabs |
| 497 | on each frame compared to the numerical value of 'tab-bar-show'. | 429 | on each frame compared to the numerical value of 'tab-bar-show'. |
| 498 | 430 | ||
| 499 | +++ | ||
| 500 | *** New command 'toggle-frame-tab-bar'. | 431 | *** New command 'toggle-frame-tab-bar'. |
| 501 | It can be used to enable/disable the tab bar on the currently selected | 432 | It can be used to enable/disable the tab bar on the currently selected |
| 502 | frame regardless of the values of 'tab-bar-mode' and 'tab-bar-show'. | 433 | frame regardless of the values of 'tab-bar-mode' and 'tab-bar-show'. |
| 503 | This allows enabling/disabling the tab bar independently on different | 434 | This allows enabling/disabling the tab bar independently on different |
| 504 | frames. | 435 | frames. |
| 505 | 436 | ||
| 506 | +++ | ||
| 507 | *** New user option 'tab-bar-format' defines a list of tab bar items. | 437 | *** New user option 'tab-bar-format' defines a list of tab bar items. |
| 508 | When it contains 'tab-bar-format-global' (possibly appended after | 438 | When it contains 'tab-bar-format-global' (possibly appended after |
| 509 | 'tab-bar-format-align-right'), then after enabling 'display-time-mode' | 439 | 'tab-bar-format-align-right'), then after enabling 'display-time-mode' |
| @@ -512,7 +442,6 @@ aligned to the right on the tab bar instead of on the mode line. | |||
| 512 | When 'tab-bar-format-tabs' is replaced with 'tab-bar-format-tabs-groups', | 442 | When 'tab-bar-format-tabs' is replaced with 'tab-bar-format-tabs-groups', |
| 513 | the tab bar displays tab groups. | 443 | the tab bar displays tab groups. |
| 514 | 444 | ||
| 515 | +++ | ||
| 516 | *** New optional key binding for 'tab-last'. | 445 | *** New optional key binding for 'tab-last'. |
| 517 | If you customize the user option 'tab-bar-select-tab-modifiers' to | 446 | If you customize the user option 'tab-bar-select-tab-modifiers' to |
| 518 | allow selecting tabs using their index numbers, the '<MODIFIER>-9' key | 447 | allow selecting tabs using their index numbers, the '<MODIFIER>-9' key |
| @@ -522,20 +451,16 @@ is any of the modifiers in the list that is the value of | |||
| 522 | which count from the last tab: 1 is the last tab, 2 the one before | 451 | which count from the last tab: 1 is the last tab, 2 the one before |
| 523 | that, etc. | 452 | that, etc. |
| 524 | 453 | ||
| 525 | --- | ||
| 526 | *** New command 'tab-duplicate' bound to 'C-x t n'. | 454 | *** New command 'tab-duplicate' bound to 'C-x t n'. |
| 527 | 455 | ||
| 528 | --- | ||
| 529 | *** 'C-x t N' creates a new tab at the specified absolute position. | 456 | *** 'C-x t N' creates a new tab at the specified absolute position. |
| 530 | The position is provided as prefix arg, and specifies an index that | 457 | The position is provided as prefix arg, and specifies an index that |
| 531 | starts at 1. Negative values count from the end of the tab bar. | 458 | starts at 1. Negative values count from the end of the tab bar. |
| 532 | 459 | ||
| 533 | --- | ||
| 534 | *** 'C-x t M' moves the current tab to the specified absolute position. | 460 | *** 'C-x t M' moves the current tab to the specified absolute position. |
| 535 | The position is provided as prefix arg, whose interpretation is as in | 461 | The position is provided as prefix arg, whose interpretation is as in |
| 536 | 'C-x t N'. | 462 | 'C-x t N'. |
| 537 | 463 | ||
| 538 | --- | ||
| 539 | *** 'C-x t G' assigns a tab to a named group of tabs. | 464 | *** 'C-x t G' assigns a tab to a named group of tabs. |
| 540 | 'tab-close-group' closes all tabs that belong to the selected group. | 465 | 'tab-close-group' closes all tabs that belong to the selected group. |
| 541 | The user option 'tab-bar-new-tab-group' defines the default group of | 466 | The user option 'tab-bar-new-tab-group' defines the default group of |
| @@ -543,18 +468,14 @@ new tabs. After customizing 'tab-bar-tab-post-change-group-functions' | |||
| 543 | to 'tab-bar-move-tab-to-group', changing the group of a tab will also | 468 | to 'tab-bar-move-tab-to-group', changing the group of a tab will also |
| 544 | move it closer to other tabs in the same group. | 469 | move it closer to other tabs in the same group. |
| 545 | 470 | ||
| 546 | --- | ||
| 547 | *** New user option 'tab-bar-tab-name-format-function'. | 471 | *** New user option 'tab-bar-tab-name-format-function'. |
| 548 | 472 | ||
| 549 | --- | ||
| 550 | *** New user option 'tab-line-tab-name-format-function'. | 473 | *** New user option 'tab-line-tab-name-format-function'. |
| 551 | 474 | ||
| 552 | --- | ||
| 553 | *** The tabs in the tab line can now be scrolled using horizontal scroll. | 475 | *** The tabs in the tab line can now be scrolled using horizontal scroll. |
| 554 | If your mouse or trackpad supports it, you can now scroll tabs when | 476 | If your mouse or trackpad supports it, you can now scroll tabs when |
| 555 | the mouse pointer is in the tab line by scrolling left or right. | 477 | the mouse pointer is in the tab line by scrolling left or right. |
| 556 | 478 | ||
| 557 | --- | ||
| 558 | *** New tab-line faces and user options. | 479 | *** New tab-line faces and user options. |
| 559 | The face 'tab-line-tab-special' is used for tabs whose buffers are | 480 | The face 'tab-line-tab-special' is used for tabs whose buffers are |
| 560 | special, i.e. buffers that don't visit a file. The face | 481 | special, i.e. buffers that don't visit a file. The face |
| @@ -569,17 +490,14 @@ in other ways. | |||
| 569 | 490 | ||
| 570 | ** Mouse wheel | 491 | ** Mouse wheel |
| 571 | 492 | ||
| 572 | --- | ||
| 573 | *** Mouse wheel scrolling now defaults to one line at a time. | 493 | *** Mouse wheel scrolling now defaults to one line at a time. |
| 574 | 494 | ||
| 575 | --- | ||
| 576 | *** Mouse wheel scrolling now works on more parts of frame's display. | 495 | *** Mouse wheel scrolling now works on more parts of frame's display. |
| 577 | When using 'mouse-wheel-mode', the mouse wheel will now scroll also when | 496 | When using 'mouse-wheel-mode', the mouse wheel will now scroll also when |
| 578 | the mouse cursor is on the scroll bars, fringes, margins, header line, | 497 | the mouse cursor is on the scroll bars, fringes, margins, header line, |
| 579 | and mode line. ('mouse-wheel-mode' is enabled by default on most graphical | 498 | and mode line. ('mouse-wheel-mode' is enabled by default on most graphical |
| 580 | displays.) | 499 | displays.) |
| 581 | 500 | ||
| 582 | +++ | ||
| 583 | *** Mouse wheel scrolling with Shift modifier now scrolls horizontally. | 501 | *** Mouse wheel scrolling with Shift modifier now scrolls horizontally. |
| 584 | This works in text buffers and over images. Typing a numeric prefix arg | 502 | This works in text buffers and over images. Typing a numeric prefix arg |
| 585 | (e.g. 'M-5') before starting horizontal scrolling changes its step value. | 503 | (e.g. 'M-5') before starting horizontal scrolling changes its step value. |
| @@ -587,10 +505,8 @@ The value is saved in the user option 'mouse-wheel-scroll-amount-horizontal'. | |||
| 587 | 505 | ||
| 588 | ** Customize | 506 | ** Customize |
| 589 | 507 | ||
| 590 | --- | ||
| 591 | *** Customize buffers can now be reverted with 'C-x x g'. | 508 | *** Customize buffers can now be reverted with 'C-x x g'. |
| 592 | 509 | ||
| 593 | --- | ||
| 594 | *** Most customize commands now hide obsolete user options. | 510 | *** Most customize commands now hide obsolete user options. |
| 595 | Obsolete user options are no longer shown in the listings produced by | 511 | Obsolete user options are no longer shown in the listings produced by |
| 596 | the commands 'customize', 'customize-group', 'customize-apropos' and | 512 | the commands 'customize', 'customize-group', 'customize-apropos' and |
| @@ -599,35 +515,28 @@ the commands 'customize', 'customize-group', 'customize-apropos' and | |||
| 599 | To customize obsolete user options, use 'customize-option' or | 515 | To customize obsolete user options, use 'customize-option' or |
| 600 | 'customize-saved'. | 516 | 'customize-saved'. |
| 601 | 517 | ||
| 602 | --- | ||
| 603 | *** New SVG icons for checkboxes and arrows. | 518 | *** New SVG icons for checkboxes and arrows. |
| 604 | They will be used automatically instead of the old icons. If Emacs is | 519 | They will be used automatically instead of the old icons. If Emacs is |
| 605 | built without SVG support, the old icons will be used instead. | 520 | built without SVG support, the old icons will be used instead. |
| 606 | 521 | ||
| 607 | ** Help | 522 | ** Help |
| 608 | 523 | ||
| 609 | --- | ||
| 610 | *** The order of things displayed in the "*Help*" buffer has been changed. | 524 | *** The order of things displayed in the "*Help*" buffer has been changed. |
| 611 | The indented "administrative" block (containing the "probably | 525 | The indented "administrative" block (containing the "probably |
| 612 | introduced" and "other relevant functions" (and similar things) has | 526 | introduced" and "other relevant functions" (and similar things) has |
| 613 | been moved to after the doc string. | 527 | been moved to after the doc string. |
| 614 | 528 | ||
| 615 | +++ | ||
| 616 | *** New command 'describe-command' shows help for a command. | 529 | *** New command 'describe-command' shows help for a command. |
| 617 | This can be used instead of 'describe-function' for interactive | 530 | This can be used instead of 'describe-function' for interactive |
| 618 | commands and is globally bound to 'C-h x'. | 531 | commands and is globally bound to 'C-h x'. |
| 619 | 532 | ||
| 620 | +++ | ||
| 621 | *** New command 'describe-keymap' describes keybindings in a keymap. | 533 | *** New command 'describe-keymap' describes keybindings in a keymap. |
| 622 | 534 | ||
| 623 | --- | ||
| 624 | *** New command 'apropos-function'. | 535 | *** New command 'apropos-function'. |
| 625 | This works like 'C-u M-x apropos-command' but is more discoverable. | 536 | This works like 'C-u M-x apropos-command' but is more discoverable. |
| 626 | 537 | ||
| 627 | --- | ||
| 628 | *** New keybinding 'C-h R' prompts for an Info manual and displays it. | 538 | *** New keybinding 'C-h R' prompts for an Info manual and displays it. |
| 629 | 539 | ||
| 630 | --- | ||
| 631 | *** Keybindings in 'help-mode' use the new 'help-key-binding' face. | 540 | *** Keybindings in 'help-mode' use the new 'help-key-binding' face. |
| 632 | This face is added by 'substitute-command-keys' to any "\[command]" | 541 | This face is added by 'substitute-command-keys' to any "\[command]" |
| 633 | substitution. The return value of that function should consequently | 542 | substitution. The return value of that function should consequently |
| @@ -638,17 +547,14 @@ with the new optional argument NO-FACE non-nil. | |||
| 638 | Note that the new face will also be used in tooltips. When using the | 547 | Note that the new face will also be used in tooltips. When using the |
| 639 | GTK toolkit, this is only true if 'x-gtk-use-system-tooltips' is t. | 548 | GTK toolkit, this is only true if 'x-gtk-use-system-tooltips' is t. |
| 640 | 549 | ||
| 641 | +++ | ||
| 642 | *** New user option 'help-enable-symbol-autoload'. | 550 | *** New user option 'help-enable-symbol-autoload'. |
| 643 | If non-nil, displaying help for an autoloaded function whose | 551 | If non-nil, displaying help for an autoloaded function whose |
| 644 | 'autoload' form provides no documentation string will try to load the | 552 | 'autoload' form provides no documentation string will try to load the |
| 645 | file it's from. This will give more extensive help for such | 553 | file it's from. This will give more extensive help for such |
| 646 | functions. | 554 | functions. |
| 647 | 555 | ||
| 648 | --- | ||
| 649 | *** The 'help-for-help' ('C-h C-h') screen has been redesigned. | 556 | *** The 'help-for-help' ('C-h C-h') screen has been redesigned. |
| 650 | 557 | ||
| 651 | +++ | ||
| 652 | *** New convenience commands with short keys in the "*Help*" buffer. | 558 | *** New convenience commands with short keys in the "*Help*" buffer. |
| 653 | New command 'help-view-source' ('s') will view the source file (if | 559 | New command 'help-view-source' ('s') will view the source file (if |
| 654 | any) of the current help topic. New command 'help-goto-info' ('i') | 560 | any) of the current help topic. New command 'help-goto-info' ('i') |
| @@ -656,79 +562,65 @@ will look up the current symbol (if any) in Info. New command | |||
| 656 | 'help-customize' ('c') will customize the user option or the face | 562 | 'help-customize' ('c') will customize the user option or the face |
| 657 | (if any) whose doc string is being shown in the "*Help*" buffer. | 563 | (if any) whose doc string is being shown in the "*Help*" buffer. |
| 658 | 564 | ||
| 659 | --- | ||
| 660 | *** New user option 'describe-bindings-outline'. | 565 | *** New user option 'describe-bindings-outline'. |
| 661 | It enables outlines in the output buffer of 'describe-bindings' that | 566 | It enables outlines in the output buffer of 'describe-bindings' that |
| 662 | can provide a better overview in a long list of available bindings. | 567 | can provide a better overview in a long list of available bindings. |
| 663 | 568 | ||
| 664 | +++ | ||
| 665 | *** New commands to describe buttons and widgets. | 569 | *** New commands to describe buttons and widgets. |
| 666 | 'widget-describe' (on a widget) will pop up the "*Help*" buffer and | 570 | 'widget-describe' (on a widget) will pop up the "*Help*" buffer and |
| 667 | give a description of the properties. Likewise 'button-describe' does | 571 | give a description of the properties. Likewise 'button-describe' does |
| 668 | the same for a button. | 572 | the same for a button. |
| 669 | 573 | ||
| 670 | --- | ||
| 671 | *** Improved "find definition" feature of "*Help*" buffers. | 574 | *** Improved "find definition" feature of "*Help*" buffers. |
| 672 | Now clicking on the link to find the definition of functions generated | 575 | Now clicking on the link to find the definition of functions generated |
| 673 | by 'cl-defstruct', or variables generated by 'define-derived-mode', | 576 | by 'cl-defstruct', or variables generated by 'define-derived-mode', |
| 674 | for example, will go to the exact place where they are defined. | 577 | for example, will go to the exact place where they are defined. |
| 675 | 578 | ||
| 676 | --- | ||
| 677 | *** New commands 'apropos-next-symbol' and 'apropos-previous-symbol'. | 579 | *** New commands 'apropos-next-symbol' and 'apropos-previous-symbol'. |
| 678 | These new navigation commands are bound to 'n' and 'p' in | 580 | These new navigation commands are bound to 'n' and 'p' in |
| 679 | 'apropos-mode'. | 581 | 'apropos-mode'. |
| 680 | 582 | ||
| 681 | --- | ||
| 682 | *** The command 'view-lossage' can now be invoked from the menu bar. | 583 | *** The command 'view-lossage' can now be invoked from the menu bar. |
| 683 | The menu bar "Help" menu now has a "Show Recent Inputs" item under the | 584 | The menu bar "Help" menu now has a "Show Recent Inputs" item under the |
| 684 | "Describe" sub-menu. | 585 | "Describe" sub-menu. |
| 685 | 586 | ||
| 686 | +++ | ||
| 687 | *** New command 'lossage-size'. | 587 | *** New command 'lossage-size'. |
| 688 | It allows users to change the maximum number of keystrokes and | 588 | It allows users to change the maximum number of keystrokes and |
| 689 | commands recorded for the purpose of 'view-lossage'. | 589 | commands recorded for the purpose of 'view-lossage'. |
| 690 | 590 | ||
| 691 | --- | ||
| 692 | *** Closing the "*Help*" buffer from the toolbar now buries the buffer. | 591 | *** Closing the "*Help*" buffer from the toolbar now buries the buffer. |
| 693 | In previous Emacs versions, the "*Help*" buffer was killed instead when | 592 | In previous Emacs versions, the "*Help*" buffer was killed instead when |
| 694 | clicking the "X" icon in the tool bar. | 593 | clicking the "X" icon in the tool bar. |
| 695 | 594 | ||
| 696 | --- | ||
| 697 | *** 'g' ('revert-buffer') in 'help-mode' no longer requires confirmation. | 595 | *** 'g' ('revert-buffer') in 'help-mode' no longer requires confirmation. |
| 698 | 596 | ||
| 699 | ** File Locks | 597 | ** File Locks |
| 700 | 598 | ||
| 701 | +++ | ||
| 702 | *** New user option 'lock-file-name-transforms'. | 599 | *** New user option 'lock-file-name-transforms'. |
| 703 | This option allows controlling where lock files are written. It uses | 600 | This option allows controlling where lock files are written. It uses |
| 704 | the same syntax as 'auto-save-file-name-transforms'. | 601 | the same syntax as 'auto-save-file-name-transforms'. |
| 705 | 602 | ||
| 706 | +++ | ||
| 707 | *** New user option 'remote-file-name-inhibit-locks'. | 603 | *** New user option 'remote-file-name-inhibit-locks'. |
| 708 | When non-nil, this option suppresses lock files for remote files. | 604 | When non-nil, this option suppresses lock files for remote files. |
| 709 | Default is nil. | 605 | Default is nil. |
| 710 | 606 | ||
| 711 | +++ | ||
| 712 | *** New minor mode 'lock-file-mode'. | 607 | *** New minor mode 'lock-file-mode'. |
| 713 | This command, called interactively, toggles the local value of | 608 | This command, called interactively, toggles the local value of |
| 714 | 'create-lockfiles' in the current buffer. | 609 | 'create-lockfiles' in the current buffer. |
| 715 | 610 | ||
| 716 | ** Emacs Server | 611 | ** Emacs Server |
| 717 | 612 | ||
| 718 | +++ | ||
| 719 | *** New user option 'server-client-instructions'. | 613 | *** New user option 'server-client-instructions'. |
| 720 | When emacsclient connects, Emacs will (by default) output a message | 614 | When emacsclient connects, Emacs will (by default) output a message |
| 721 | about how to exit the client frame. If 'server-client-instructions' | 615 | about how to exit the client frame. If 'server-client-instructions' |
| 722 | is set to nil, this message is inhibited. | 616 | is set to nil, this message is inhibited. |
| 723 | 617 | ||
| 724 | +++ | ||
| 725 | *** New command 'server-edit-abort'. | 618 | *** New command 'server-edit-abort'. |
| 726 | This command (not bound to any key by default) can be used to abort | 619 | This command (not bound to any key by default) can be used to abort |
| 727 | an edit instead of marking it as "Done" (which the 'C-x #' command | 620 | an edit instead of marking it as "Done" (which the 'C-x #' command |
| 728 | does). The 'emacsclient' program exits with an abnormal status as | 621 | does). The 'emacsclient' program exits with an abnormal status as |
| 729 | result of this command. | 622 | result of this command. |
| 730 | 623 | ||
| 731 | +++ | ||
| 732 | *** New desktop integration for connecting to the server. | 624 | *** New desktop integration for connecting to the server. |
| 733 | If your operating system's desktop environment is | 625 | If your operating system's desktop environment is |
| 734 | freedesktop.org-compatible (which is true of most GNU/Linux and other | 626 | freedesktop.org-compatible (which is true of most GNU/Linux and other |
| @@ -739,25 +631,20 @@ running. | |||
| 739 | 631 | ||
| 740 | ** Miscellaneous | 632 | ** Miscellaneous |
| 741 | 633 | ||
| 742 | +++ | ||
| 743 | *** New command 'font-lock-update', bound to 'C-x x f'. | 634 | *** New command 'font-lock-update', bound to 'C-x x f'. |
| 744 | This command updates the syntax highlighting in this buffer. | 635 | This command updates the syntax highlighting in this buffer. |
| 745 | 636 | ||
| 746 | +++ | ||
| 747 | *** New command 'memory-report'. | 637 | *** New command 'memory-report'. |
| 748 | This command opens a new buffer called "*Memory Report*" and gives a | 638 | This command opens a new buffer called "*Memory Report*" and gives a |
| 749 | summary of where Emacs is using memory currently. | 639 | summary of where Emacs is using memory currently. |
| 750 | 640 | ||
| 751 | +++ | ||
| 752 | *** New command 'submit-emacs-patch'. | 641 | *** New command 'submit-emacs-patch'. |
| 753 | This works like 'report-emacs-bug', but is more geared towards sending | 642 | This works like 'report-emacs-bug', but is more geared towards sending |
| 754 | patches to the Emacs issue tracker. | 643 | patches to the Emacs issue tracker. |
| 755 | 644 | ||
| 756 | --- | ||
| 757 | *** New face 'apropos-button'. | 645 | *** New face 'apropos-button'. |
| 758 | Applies to buttons that indicate a face. | 646 | Applies to buttons that indicate a face. |
| 759 | 647 | ||
| 760 | +++ | ||
| 761 | *** New face 'font-lock-doc-markup-face'. | 648 | *** New face 'font-lock-doc-markup-face'. |
| 762 | Intended for documentation mark-up syntax and tags inside text that | 649 | Intended for documentation mark-up syntax and tags inside text that |
| 763 | uses 'font-lock-doc-face', which it should appropriately stand out | 650 | uses 'font-lock-doc-face', which it should appropriately stand out |
| @@ -766,41 +653,34 @@ documentation comments in program source code by language-specific | |||
| 766 | modes, for mark-up conventions like Haddock, Javadoc or Doxygen. By | 653 | modes, for mark-up conventions like Haddock, Javadoc or Doxygen. By |
| 767 | default this face inherits from 'font-lock-constant-face'. | 654 | default this face inherits from 'font-lock-constant-face'. |
| 768 | 655 | ||
| 769 | +++ | ||
| 770 | *** New face box style 'flat-button'. | 656 | *** New face box style 'flat-button'. |
| 771 | This is a plain 2D button, but uses the background color instead of | 657 | This is a plain 2D button, but uses the background color instead of |
| 772 | the foreground color. | 658 | the foreground color. |
| 773 | 659 | ||
| 774 | --- | ||
| 775 | *** New faces 'shortdoc-heading' and 'shortdoc-section'. | 660 | *** New faces 'shortdoc-heading' and 'shortdoc-section'. |
| 776 | Applied to shortdoc headings and sections. | 661 | Applied to shortdoc headings and sections. |
| 777 | 662 | ||
| 778 | --- | ||
| 779 | *** New face 'separator-line'. | 663 | *** New face 'separator-line'. |
| 780 | This is used by 'make-separator-line' (see below). | 664 | This is used by 'make-separator-line' (see below). |
| 781 | 665 | ||
| 782 | +++ | ||
| 783 | *** 'redisplay-skip-fontification-on-input' helps Emacs keep up with fast input. | 666 | *** 'redisplay-skip-fontification-on-input' helps Emacs keep up with fast input. |
| 784 | This is another attempt to solve the problem of handling high key repeat rate | 667 | This is another attempt to solve the problem of handling high key repeat rate |
| 785 | and other "slow scrolling" situations. It is hoped it behaves better | 668 | and other "slow scrolling" situations. It is hoped it behaves better |
| 786 | than 'fast-but-imprecise-scrolling' and 'jit-lock-defer-time'. | 669 | than 'fast-but-imprecise-scrolling' and 'jit-lock-defer-time'. |
| 787 | It is not enabled by default. | 670 | It is not enabled by default. |
| 788 | 671 | ||
| 789 | --- | ||
| 790 | *** Obsolete aliases are no longer hidden from command completion. | 672 | *** Obsolete aliases are no longer hidden from command completion. |
| 791 | Completion of command names now considers obsolete aliases as | 673 | Completion of command names now considers obsolete aliases as |
| 792 | candidates, if they were marked obsolete in the current major version | 674 | candidates, if they were marked obsolete in the current major version |
| 793 | of Emacs. Invoking a command via an obsolete alias now mentions the | 675 | of Emacs. Invoking a command via an obsolete alias now mentions the |
| 794 | obsolescence fact and shows the new name of the command. | 676 | obsolescence fact and shows the new name of the command. |
| 795 | 677 | ||
| 796 | +++ | ||
| 797 | *** Support for '(box . SIZE)' 'cursor-type'. | 678 | *** Support for '(box . SIZE)' 'cursor-type'. |
| 798 | By default, 'box' cursor always has a filled box shape. But if you | 679 | By default, 'box' cursor always has a filled box shape. But if you |
| 799 | specify 'cursor-type' to be '(box . SIZE)', the cursor becomes a hollow | 680 | specify 'cursor-type' to be '(box . SIZE)', the cursor becomes a hollow |
| 800 | box if the point is on an image larger than SIZE pixels in any | 681 | box if the point is on an image larger than SIZE pixels in any |
| 801 | dimension. | 682 | dimension. |
| 802 | 683 | ||
| 803 | +++ | ||
| 804 | *** The user can now customize how "default" values are prompted for. | 684 | *** The user can now customize how "default" values are prompted for. |
| 805 | The new utility function 'format-prompt' has been added which uses the | 685 | The new utility function 'format-prompt' has been added which uses the |
| 806 | new 'minibuffer-default-prompt-format' user option to format "default" | 686 | new 'minibuffer-default-prompt-format' user option to format "default" |
| @@ -810,7 +690,6 @@ number [10]", or not have the default displayed at all, like "Enter a | |||
| 810 | number". (This only affects callers that were altered to use | 690 | number". (This only affects callers that were altered to use |
| 811 | 'format-prompt'.) | 691 | 'format-prompt'.) |
| 812 | 692 | ||
| 813 | --- | ||
| 814 | *** New help window when Emacs prompts before opening a large file. | 693 | *** New help window when Emacs prompts before opening a large file. |
| 815 | Commands like 'find-file' or 'visit-tags-table' ask to visit a file | 694 | Commands like 'find-file' or 'visit-tags-table' ask to visit a file |
| 816 | normally or literally when the file is larger than a certain size (by | 695 | normally or literally when the file is larger than a certain size (by |
| @@ -818,20 +697,17 @@ default, 9.5 MiB). Press '?' or 'C-h' in that prompt to read more | |||
| 818 | about the different options to visit a file, how you can disable the | 697 | about the different options to visit a file, how you can disable the |
| 819 | prompt, and how you can tweak the file size threshold. | 698 | prompt, and how you can tweak the file size threshold. |
| 820 | 699 | ||
| 821 | +++ | ||
| 822 | *** Emacs now defaults to UTF-8 instead of ISO-8859-1. | 700 | *** Emacs now defaults to UTF-8 instead of ISO-8859-1. |
| 823 | This is only for the default, where the user has set no 'LANG' (or | 701 | This is only for the default, where the user has set no 'LANG' (or |
| 824 | similar) variable or environment. This change should lead to no | 702 | similar) variable or environment. This change should lead to no |
| 825 | user-visible changes for normal usage. | 703 | user-visible changes for normal usage. |
| 826 | 704 | ||
| 827 | --- | ||
| 828 | *** 'global-display-fill-column-indicator-mode' skips some buffers. | 705 | *** 'global-display-fill-column-indicator-mode' skips some buffers. |
| 829 | By default, turning on 'global-display-fill-column-indicator-mode' | 706 | By default, turning on 'global-display-fill-column-indicator-mode' |
| 830 | doesn't turn on 'display-fill-column-indicator-mode' in special-mode | 707 | doesn't turn on 'display-fill-column-indicator-mode' in special-mode |
| 831 | buffers. This can be controlled by customizing the user option | 708 | buffers. This can be controlled by customizing the user option |
| 832 | 'global-display-fill-column-indicator-modes'. | 709 | 'global-display-fill-column-indicator-modes'. |
| 833 | 710 | ||
| 834 | +++ | ||
| 835 | *** 'nobreak-char-display' now also affects all non-ASCII space characters. | 711 | *** 'nobreak-char-display' now also affects all non-ASCII space characters. |
| 836 | Previously, this was limited only to 'NO-BREAK SPACE' and hyphen | 712 | Previously, this was limited only to 'NO-BREAK SPACE' and hyphen |
| 837 | characters. Now it also covers the rest of the non-ASCII Unicode | 713 | characters. Now it also covers the rest of the non-ASCII Unicode |
| @@ -840,7 +716,6 @@ non-ASCII characters are displayed as themselves when | |||
| 840 | 'nobreak-char-display' is t, i.e. they are not replaced on display | 716 | 'nobreak-char-display' is t, i.e. they are not replaced on display |
| 841 | with the ASCII space and hyphen characters. | 717 | with the ASCII space and hyphen characters. |
| 842 | 718 | ||
| 843 | --- | ||
| 844 | *** New backward compatibility variable 'nobreak-char-ascii-display'. | 719 | *** New backward compatibility variable 'nobreak-char-ascii-display'. |
| 845 | This variable is nil by default, and non-ASCII space and hyphen | 720 | This variable is nil by default, and non-ASCII space and hyphen |
| 846 | characters are displayed as themselves, even if 'nobreak-char-display' | 721 | characters are displayed as themselves, even if 'nobreak-char-display' |
| @@ -854,7 +729,6 @@ t. You may need this on text-mode terminals that produce messed up | |||
| 854 | display when non-ASCII spaces and hyphens are written to the display. | 729 | display when non-ASCII spaces and hyphens are written to the display. |
| 855 | (This variable is only effective when 'nobreak-char-display' is t.) | 730 | (This variable is only effective when 'nobreak-char-display' is t.) |
| 856 | 731 | ||
| 857 | +++ | ||
| 858 | *** Improved support for terminal emulators that encode the Meta flag. | 732 | *** Improved support for terminal emulators that encode the Meta flag. |
| 859 | Some terminal emulators set the 8th bit of Meta characters, and then | 733 | Some terminal emulators set the 8th bit of Meta characters, and then |
| 860 | encode the resulting character code as if it were non-ASCII character | 734 | encode the resulting character code as if it were non-ASCII character |
| @@ -865,7 +739,6 @@ Meta characters to Emacs, e.g., send "ESC x" when the user types | |||
| 865 | emulators by using the new input-meta-mode with the special value | 739 | emulators by using the new input-meta-mode with the special value |
| 866 | 'encoded' with these terminal emulators. | 740 | 'encoded' with these terminal emulators. |
| 867 | 741 | ||
| 868 | --- | ||
| 869 | *** 'auto-composition-mode' can now be selectively disabled on some TTYs. | 742 | *** 'auto-composition-mode' can now be selectively disabled on some TTYs. |
| 870 | Some text-mode terminals produce display glitches trying to compose | 743 | Some text-mode terminals produce display glitches trying to compose |
| 871 | characters. The 'auto-composition-mode' can now have a string value | 744 | characters. The 'auto-composition-mode' can now have a string value |
| @@ -874,14 +747,12 @@ function compares equal with that string, automatic composition will | |||
| 874 | be disabled in windows shown on that terminal. The Linux terminal | 747 | be disabled in windows shown on that terminal. The Linux terminal |
| 875 | sets this up by default. | 748 | sets this up by default. |
| 876 | 749 | ||
| 877 | --- | ||
| 878 | *** Support for the 'strike-through' face attribute on TTY frames. | 750 | *** Support for the 'strike-through' face attribute on TTY frames. |
| 879 | If your terminal's termcap or terminfo database entry has the 'smxx' | 751 | If your terminal's termcap or terminfo database entry has the 'smxx' |
| 880 | capability defined, Emacs will now emit the prescribed escape | 752 | capability defined, Emacs will now emit the prescribed escape |
| 881 | sequences necessary to render faces with the 'strike-through' | 753 | sequences necessary to render faces with the 'strike-through' |
| 882 | attribute on TTY frames. | 754 | attribute on TTY frames. |
| 883 | 755 | ||
| 884 | --- | ||
| 885 | *** TTY menu navigation is now supported in 'xterm-mouse-mode'. | 756 | *** TTY menu navigation is now supported in 'xterm-mouse-mode'. |
| 886 | TTY menus support mouse navigation and selection when 'xterm-mouse-mode' | 757 | TTY menus support mouse navigation and selection when 'xterm-mouse-mode' |
| 887 | is active. When run on a terminal, clicking on the menu bar with the | 758 | is active. When run on a terminal, clicking on the menu bar with the |
| @@ -889,19 +760,15 @@ mouse now pops up a TTY menu by default instead of running the command | |||
| 889 | 'tmm-menubar'. To restore the old behavior, set the user option | 760 | 'tmm-menubar'. To restore the old behavior, set the user option |
| 890 | 'tty-menu-open-use-tmm' to non-nil. | 761 | 'tty-menu-open-use-tmm' to non-nil. |
| 891 | 762 | ||
| 892 | --- | ||
| 893 | *** 'M-x report-emacs-bug' will no longer include "Recent messages" section. | 763 | *** 'M-x report-emacs-bug' will no longer include "Recent messages" section. |
| 894 | These were taken from the "*Messages*" buffer, and may inadvertently | 764 | These were taken from the "*Messages*" buffer, and may inadvertently |
| 895 | leak information from the reporting user. | 765 | leak information from the reporting user. |
| 896 | 766 | ||
| 897 | --- | ||
| 898 | *** 'C-u M-x dig' will now prompt for a query type to use. | 767 | *** 'C-u M-x dig' will now prompt for a query type to use. |
| 899 | 768 | ||
| 900 | --- | ||
| 901 | *** Rudimentary support for the 'st' terminal emulator. | 769 | *** Rudimentary support for the 'st' terminal emulator. |
| 902 | Emacs now supports 256 color display on the 'st' terminal emulator. | 770 | Emacs now supports 256 color display on the 'st' terminal emulator. |
| 903 | 771 | ||
| 904 | +++ | ||
| 905 | *** Update IRC-related references to point to Libera.Chat. | 772 | *** Update IRC-related references to point to Libera.Chat. |
| 906 | The Free Software Foundation and the GNU Project have moved their | 773 | The Free Software Foundation and the GNU Project have moved their |
| 907 | official IRC channels from the Freenode network to Libera.Chat. For the | 774 | official IRC channels from the Freenode network to Libera.Chat. For the |
| @@ -921,12 +788,10 @@ https://lists.gnu.org/archive/html/info-gnu-emacs/2021-06/msg00000.html | |||
| 921 | 788 | ||
| 922 | * Incompatible Editing Changes in Emacs 28.1 | 789 | * Incompatible Editing Changes in Emacs 28.1 |
| 923 | 790 | ||
| 924 | --- | ||
| 925 | ** 'toggle-truncate-lines' now disables 'visual-line-mode'. | 791 | ** 'toggle-truncate-lines' now disables 'visual-line-mode'. |
| 926 | This is for symmetry with 'visual-line-mode', which disables | 792 | This is for symmetry with 'visual-line-mode', which disables |
| 927 | 'truncate-lines'. | 793 | 'truncate-lines'. |
| 928 | 794 | ||
| 929 | --- | ||
| 930 | ** 'electric-indent-mode' now also indents inside strings and comments. | 795 | ** 'electric-indent-mode' now also indents inside strings and comments. |
| 931 | (This only happens when indentation function also supports this.) | 796 | (This only happens when indentation function also supports this.) |
| 932 | 797 | ||
| @@ -935,7 +800,6 @@ To recover the previous behavior you can use: | |||
| 935 | (add-hook 'electric-indent-functions | 800 | (add-hook 'electric-indent-functions |
| 936 | (lambda (_) (if (nth 8 (syntax-ppss)) 'no-indent))) | 801 | (lambda (_) (if (nth 8 (syntax-ppss)) 'no-indent))) |
| 937 | 802 | ||
| 938 | --- | ||
| 939 | ** The 'M-o' ('facemenu-keymap') global binding has been removed. | 803 | ** The 'M-o' ('facemenu-keymap') global binding has been removed. |
| 940 | To restore the old binding, say something like: | 804 | To restore the old binding, say something like: |
| 941 | 805 | ||
| @@ -947,7 +811,6 @@ To restore the old binding, say something like: | |||
| 947 | The last two lines are not strictly necessary if you don't care about | 811 | The last two lines are not strictly necessary if you don't care about |
| 948 | having those two commands on the 'M-o' keymap; see the next section. | 812 | having those two commands on the 'M-o' keymap; see the next section. |
| 949 | 813 | ||
| 950 | --- | ||
| 951 | ** The 'M-o M-s' and 'M-o M-S' global bindings have been removed. | 814 | ** The 'M-o M-s' and 'M-o M-S' global bindings have been removed. |
| 952 | Use 'M-x center-line' and 'M-x center-paragraph' instead. See the | 815 | Use 'M-x center-line' and 'M-x center-paragraph' instead. See the |
| 953 | previous section for how to get back the old bindings. Alternatively, | 816 | previous section for how to get back the old bindings. Alternatively, |
| @@ -957,12 +820,10 @@ had before, you can add the following to your init file: | |||
| 957 | (define-key global-map "\M-o\M-s" 'center-line) | 820 | (define-key global-map "\M-o\M-s" 'center-line) |
| 958 | (define-key global-map "\M-o\M-S" 'center-paragraph) | 821 | (define-key global-map "\M-o\M-S" 'center-paragraph) |
| 959 | 822 | ||
| 960 | --- | ||
| 961 | ** The 'M-o M-o' global binding has been removed. | 823 | ** The 'M-o M-o' global binding has been removed. |
| 962 | Use 'M-x font-lock-fontify-block' instead, or the new 'C-x x f' | 824 | Use 'M-x font-lock-fontify-block' instead, or the new 'C-x x f' |
| 963 | command, which updates the syntax highlighting in the current buffer. | 825 | command, which updates the syntax highlighting in the current buffer. |
| 964 | 826 | ||
| 965 | --- | ||
| 966 | ** The escape sequence '\e[29~' in Xterm is now mapped to 'menu'. | 827 | ** The escape sequence '\e[29~' in Xterm is now mapped to 'menu'. |
| 967 | Xterm sends this sequence for both 'F16' and 'Menu' keys | 828 | Xterm sends this sequence for both 'F16' and 'Menu' keys |
| 968 | It used to be mapped to 'print' but we couldn't find a terminal | 829 | It used to be mapped to 'print' but we couldn't find a terminal |
| @@ -970,26 +831,21 @@ that uses this sequence for any kind of 'Print' key. | |||
| 970 | This makes the Menu key (see https://en.wikipedia.org/wiki/Menu_key) | 831 | This makes the Menu key (see https://en.wikipedia.org/wiki/Menu_key) |
| 971 | work for 'context-menu-mode' in Xterm. | 832 | work for 'context-menu-mode' in Xterm. |
| 972 | 833 | ||
| 973 | --- | ||
| 974 | ** New user option 'xterm-store-paste-on-kill-ring'. | 834 | ** New user option 'xterm-store-paste-on-kill-ring'. |
| 975 | If non-nil (the default), Emacs pushes pasted text onto the kill ring | 835 | If non-nil (the default), Emacs pushes pasted text onto the kill ring |
| 976 | (if using an xterm-like terminal that supports bracketed paste). | 836 | (if using an xterm-like terminal that supports bracketed paste). |
| 977 | Setting this to nil inhibits that. | 837 | Setting this to nil inhibits that. |
| 978 | 838 | ||
| 979 | --- | ||
| 980 | ** 'vc-print-branch-log' shows the change log from its root directory. | 839 | ** 'vc-print-branch-log' shows the change log from its root directory. |
| 981 | It previously used to use the default directory. | 840 | It previously used to use the default directory. |
| 982 | 841 | ||
| 983 | --- | ||
| 984 | ** 'project-shell' and 'shell' now use 'pop-to-buffer-same-window'. | 842 | ** 'project-shell' and 'shell' now use 'pop-to-buffer-same-window'. |
| 985 | This is to keep the same behavior as Eshell. | 843 | This is to keep the same behavior as Eshell. |
| 986 | 844 | ||
| 987 | --- | ||
| 988 | ** In 'nroff-mode', 'center-line' is no longer bound to a key. | 845 | ** In 'nroff-mode', 'center-line' is no longer bound to a key. |
| 989 | The original key binding was 'M-s', which interfered with Isearch, | 846 | The original key binding was 'M-s', which interfered with Isearch, |
| 990 | since the latter uses 'M-s' as a prefix key of the search prefix map. | 847 | since the latter uses 'M-s' as a prefix key of the search prefix map. |
| 991 | 848 | ||
| 992 | --- | ||
| 993 | ** In 'f90-mode', the backslash character ('\') no longer escapes. | 849 | ** In 'f90-mode', the backslash character ('\') no longer escapes. |
| 994 | For about a decade, the backslash character has no longer had a | 850 | For about a decade, the backslash character has no longer had a |
| 995 | special escape syntax in Fortran F90. To get the old behavior back, | 851 | special escape syntax in Fortran F90. To get the old behavior back, |
| @@ -997,7 +853,6 @@ say something like: | |||
| 997 | 853 | ||
| 998 | (modify-syntax-entry ?\\ "\\" f90-mode-syntax-table) | 854 | (modify-syntax-entry ?\\ "\\" f90-mode-syntax-table) |
| 999 | 855 | ||
| 1000 | +++ | ||
| 1001 | ** Setting 'fill-column' to nil is obsolete. | 856 | ** Setting 'fill-column' to nil is obsolete. |
| 1002 | This undocumented use of 'fill-column' is now obsolete. To disable | 857 | This undocumented use of 'fill-column' is now obsolete. To disable |
| 1003 | auto filling, turn off 'auto-fill-mode' instead. | 858 | auto filling, turn off 'auto-fill-mode' instead. |
| @@ -1012,7 +867,6 @@ file: | |||
| 1012 | 867 | ||
| 1013 | ** Input methods | 868 | ** Input methods |
| 1014 | 869 | ||
| 1015 | +++ | ||
| 1016 | *** Emacs now supports "transient" input methods. | 870 | *** Emacs now supports "transient" input methods. |
| 1017 | A transient input method is enabled for inserting a single character, | 871 | A transient input method is enabled for inserting a single character, |
| 1018 | and is then automatically disabled. 'C-x \' temporarily enables the | 872 | and is then automatically disabled. 'C-x \' temporarily enables the |
| @@ -1024,33 +878,27 @@ character '½', and disable the 'compose' input method afterwards. | |||
| 1024 | You can use 'C-x \' in incremental search to insert a single character | 878 | You can use 'C-x \' in incremental search to insert a single character |
| 1025 | to the search string. | 879 | to the search string. |
| 1026 | 880 | ||
| 1027 | --- | ||
| 1028 | *** New input method 'compose' based on X Multi_key sequences. | 881 | *** New input method 'compose' based on X Multi_key sequences. |
| 1029 | 882 | ||
| 1030 | --- | ||
| 1031 | *** New input method 'iso-transl' with the same keys as 'C-x 8'. | 883 | *** New input method 'iso-transl' with the same keys as 'C-x 8'. |
| 1032 | After selecting it as a transient input method with 'C-u C-x \ | 884 | After selecting it as a transient input method with 'C-u C-x \ |
| 1033 | iso-transl RET', it supports the same key sequences as 'C-x 8', | 885 | iso-transl RET', it supports the same key sequences as 'C-x 8', |
| 1034 | so e.g. like 'C-x 8 [' inserts a left single quotation mark, | 886 | so e.g. like 'C-x 8 [' inserts a left single quotation mark, |
| 1035 | 'C-x \ [' does the same. | 887 | 'C-x \ [' does the same. |
| 1036 | 888 | ||
| 1037 | --- | ||
| 1038 | *** New user option 'read-char-by-name-sort'. | 889 | *** New user option 'read-char-by-name-sort'. |
| 1039 | It defines the sorting order of characters for completion of 'C-x 8 RET TAB' | 890 | It defines the sorting order of characters for completion of 'C-x 8 RET TAB' |
| 1040 | and can be customized to sort them by codepoints instead of character names. | 891 | and can be customized to sort them by codepoints instead of character names. |
| 1041 | Additionally, you can group characters by Unicode blocks after customizing | 892 | Additionally, you can group characters by Unicode blocks after customizing |
| 1042 | 'completions-group' and 'completions-group-sort'. | 893 | 'completions-group' and 'completions-group-sort'. |
| 1043 | 894 | ||
| 1044 | --- | ||
| 1045 | *** Improved language transliteration in Malayalam input methods. | 895 | *** Improved language transliteration in Malayalam input methods. |
| 1046 | Added a new Mozhi scheme. The inapplicable ITRANS scheme is now | 896 | Added a new Mozhi scheme. The inapplicable ITRANS scheme is now |
| 1047 | deprecated. Errors in the Inscript method were corrected. | 897 | deprecated. Errors in the Inscript method were corrected. |
| 1048 | 898 | ||
| 1049 | --- | ||
| 1050 | *** New input method 'cham'. | 899 | *** New input method 'cham'. |
| 1051 | There's also a Cham greeting in "etc/HELLO". | 900 | There's also a Cham greeting in "etc/HELLO". |
| 1052 | 901 | ||
| 1053 | --- | ||
| 1054 | *** New input methods for Lakota language orthographies. | 902 | *** New input methods for Lakota language orthographies. |
| 1055 | Two orthographies are represented here, the Suggested Lakota | 903 | Two orthographies are represented here, the Suggested Lakota |
| 1056 | Orthography and what is known as the White Hat Orthography. Input | 904 | Orthography and what is known as the White Hat Orthography. Input |
| @@ -1058,7 +906,6 @@ methods 'lakota-slo-prefix', 'lakota-slo-postfix', and | |||
| 1058 | 'lakota-white-hat-postfix' have been added. There is also a Lakota | 906 | 'lakota-white-hat-postfix' have been added. There is also a Lakota |
| 1059 | greeting in "etc/HELLO". | 907 | greeting in "etc/HELLO". |
| 1060 | 908 | ||
| 1061 | +++ | ||
| 1062 | ** Standalone 'M-y' allows interactive selection from previous kills. | 909 | ** Standalone 'M-y' allows interactive selection from previous kills. |
| 1063 | 'M-y' can now be typed after a command that is not a yank command. | 910 | 'M-y' can now be typed after a command that is not a yank command. |
| 1064 | When invoked like that, it prompts in the minibuffer for one of the | 911 | When invoked like that, it prompts in the minibuffer for one of the |
| @@ -1068,14 +915,12 @@ in Isearch can be invoked if you bind 'C-s M-y' to the command | |||
| 1068 | 'isearch-yank-pop'. When the user option 'yank-from-kill-ring-rotate' | 915 | 'isearch-yank-pop'. When the user option 'yank-from-kill-ring-rotate' |
| 1069 | is nil the kill ring is not rotated after 'yank-from-kill-ring'. | 916 | is nil the kill ring is not rotated after 'yank-from-kill-ring'. |
| 1070 | 917 | ||
| 1071 | +++ | ||
| 1072 | ** New user option 'word-wrap-by-category'. | 918 | ** New user option 'word-wrap-by-category'. |
| 1073 | When word-wrap is enabled, and this option is non-nil, that allows | 919 | When word-wrap is enabled, and this option is non-nil, that allows |
| 1074 | Emacs to break lines after more characters than just whitespace | 920 | Emacs to break lines after more characters than just whitespace |
| 1075 | characters. In particular, this significantly improves word-wrapping | 921 | characters. In particular, this significantly improves word-wrapping |
| 1076 | for CJK text mixed with Latin text. | 922 | for CJK text mixed with Latin text. |
| 1077 | 923 | ||
| 1078 | +++ | ||
| 1079 | ** New command 'undo-redo'. | 924 | ** New command 'undo-redo'. |
| 1080 | It undoes previous undo commands, but doesn't record itself as an | 925 | It undoes previous undo commands, but doesn't record itself as an |
| 1081 | undoable command. It is bound to 'C-?' and 'C-M-_', the first binding | 926 | undoable command. It is bound to 'C-?' and 'C-M-_', the first binding |
| @@ -1084,43 +929,35 @@ works well in graphical mode, and the second one is easy to hit on tty. | |||
| 1084 | For full conventional undo/redo behavior, you can also customize the | 929 | For full conventional undo/redo behavior, you can also customize the |
| 1085 | user option 'undo-no-redo' to t. | 930 | user option 'undo-no-redo' to t. |
| 1086 | 931 | ||
| 1087 | +++ | ||
| 1088 | ** New commands 'copy-matching-lines' and 'kill-matching-lines'. | 932 | ** New commands 'copy-matching-lines' and 'kill-matching-lines'. |
| 1089 | These commands are similar to the command 'flush-lines', | 933 | These commands are similar to the command 'flush-lines', |
| 1090 | but add the matching lines to the kill ring as a single string, | 934 | but add the matching lines to the kill ring as a single string, |
| 1091 | including the newlines that separate the lines. | 935 | including the newlines that separate the lines. |
| 1092 | 936 | ||
| 1093 | +++ | ||
| 1094 | ** New user option 'kill-transform-function'. | 937 | ** New user option 'kill-transform-function'. |
| 1095 | This can be used to transform (and suppress) strings from entering the | 938 | This can be used to transform (and suppress) strings from entering the |
| 1096 | kill ring. | 939 | kill ring. |
| 1097 | 940 | ||
| 1098 | +++ | ||
| 1099 | ** 'save-interprogram-paste-before-kill' can now be a number. | 941 | ** 'save-interprogram-paste-before-kill' can now be a number. |
| 1100 | In that case, it's interpreted as a limit on the size of the clipboard | 942 | In that case, it's interpreted as a limit on the size of the clipboard |
| 1101 | data that will be saved to the 'kill-ring' prior to killing text: if | 943 | data that will be saved to the 'kill-ring' prior to killing text: if |
| 1102 | the size of the clipboard data is greater than or equal to the limit, | 944 | the size of the clipboard data is greater than or equal to the limit, |
| 1103 | it will not be saved. | 945 | it will not be saved. |
| 1104 | 946 | ||
| 1105 | +++ | ||
| 1106 | ** New user option 'tab-first-completion'. | 947 | ** New user option 'tab-first-completion'. |
| 1107 | If 'tab-always-indent' is 'complete', this new user option can be used to | 948 | If 'tab-always-indent' is 'complete', this new user option can be used to |
| 1108 | further tweak whether to complete or indent. | 949 | further tweak whether to complete or indent. |
| 1109 | 950 | ||
| 1110 | --- | ||
| 1111 | ** 'indent-tabs-mode' is now a global minor mode instead of just a variable. | 951 | ** 'indent-tabs-mode' is now a global minor mode instead of just a variable. |
| 1112 | 952 | ||
| 1113 | +++ | ||
| 1114 | ** New choice 'permanent' for 'shift-select-mode'. | 953 | ** New choice 'permanent' for 'shift-select-mode'. |
| 1115 | When the mark was activated by shifted motion keys, non-shifted motion | 954 | When the mark was activated by shifted motion keys, non-shifted motion |
| 1116 | keys don't deactivate the mark after customizing 'shift-select-mode' | 955 | keys don't deactivate the mark after customizing 'shift-select-mode' |
| 1117 | to 'permanent'. Similarly, the active mark will not be deactivated by | 956 | to 'permanent'. Similarly, the active mark will not be deactivated by |
| 1118 | typing shifted motion keys. | 957 | typing shifted motion keys. |
| 1119 | 958 | ||
| 1120 | +++ | ||
| 1121 | ** The "Edit => Clear" menu item now obeys a rectangular region. | 959 | ** The "Edit => Clear" menu item now obeys a rectangular region. |
| 1122 | 960 | ||
| 1123 | +++ | ||
| 1124 | ** New command 'revert-buffer-with-fine-grain'. | 961 | ** New command 'revert-buffer-with-fine-grain'. |
| 1125 | Revert a buffer trying to be as non-destructive as possible, | 962 | Revert a buffer trying to be as non-destructive as possible, |
| 1126 | preserving markers, properties and overlays. The new variable | 963 | preserving markers, properties and overlays. The new variable |
| @@ -1128,18 +965,15 @@ preserving markers, properties and overlays. The new variable | |||
| 1128 | number of seconds that 'revert-buffer-with-fine-grain' should spend | 965 | number of seconds that 'revert-buffer-with-fine-grain' should spend |
| 1129 | trying to be non-destructive, with a default value of 2 seconds. | 966 | trying to be non-destructive, with a default value of 2 seconds. |
| 1130 | 967 | ||
| 1131 | +++ | ||
| 1132 | ** New command 'revert-buffer-quick'. | 968 | ** New command 'revert-buffer-quick'. |
| 1133 | This is bound to 'C-x x g' and is like 'revert-buffer', but prompts | 969 | This is bound to 'C-x x g' and is like 'revert-buffer', but prompts |
| 1134 | less. | 970 | less. |
| 1135 | 971 | ||
| 1136 | +++ | ||
| 1137 | ** New user option 'revert-buffer-quick-short-answers'. | 972 | ** New user option 'revert-buffer-quick-short-answers'. |
| 1138 | This controls how the new 'revert-buffer-quick' ('C-x x g') command | 973 | This controls how the new 'revert-buffer-quick' ('C-x x g') command |
| 1139 | prompts. A non-nil value will make it use 'y-or-n-p' rather than | 974 | prompts. A non-nil value will make it use 'y-or-n-p' rather than |
| 1140 | 'yes-or-no-p'. Defaults to nil. | 975 | 'yes-or-no-p'. Defaults to nil. |
| 1141 | 976 | ||
| 1142 | +++ | ||
| 1143 | ** New user option 'query-about-changed-file'. | 977 | ** New user option 'query-about-changed-file'. |
| 1144 | If non-nil (the default), Emacs prompts as before when re-visiting a | 978 | If non-nil (the default), Emacs prompts as before when re-visiting a |
| 1145 | file that has changed externally after it was visited the first time. | 979 | file that has changed externally after it was visited the first time. |
| @@ -1147,30 +981,25 @@ If nil, Emacs does not prompt, but instead shows the buffer with its | |||
| 1147 | contents before the change, and provides instructions how to revert | 981 | contents before the change, and provides instructions how to revert |
| 1148 | the buffer. | 982 | the buffer. |
| 1149 | 983 | ||
| 1150 | --- | ||
| 1151 | ** New value 'save-some-buffers-root' of 'save-some-buffers-default-predicate'. | 984 | ** New value 'save-some-buffers-root' of 'save-some-buffers-default-predicate'. |
| 1152 | When using this predicate, only buffers under the current project root | 985 | When using this predicate, only buffers under the current project root |
| 1153 | will be considered when saving buffers with 'save-some-buffers'. | 986 | will be considered when saving buffers with 'save-some-buffers'. |
| 1154 | 987 | ||
| 1155 | --- | ||
| 1156 | ** New user option 'save-place-abbreviate-file-names'. | 988 | ** New user option 'save-place-abbreviate-file-names'. |
| 1157 | This can simplify sharing the 'save-place-file' file across | 989 | This can simplify sharing the 'save-place-file' file across |
| 1158 | different hosts. | 990 | different hosts. |
| 1159 | 991 | ||
| 1160 | --- | ||
| 1161 | ** New user options 'copy-region-blink-delay' and 'delete-pair-blink-delay'. | 992 | ** New user options 'copy-region-blink-delay' and 'delete-pair-blink-delay'. |
| 1162 | 'copy-region-blink-delay' specifies a delay to indicate the region | 993 | 'copy-region-blink-delay' specifies a delay to indicate the region |
| 1163 | copied by 'kill-ring-save'. 'delete-pair-blink-delay' specifies | 994 | copied by 'kill-ring-save'. 'delete-pair-blink-delay' specifies |
| 1164 | a delay to show the paired character to delete. | 995 | a delay to show the paired character to delete. |
| 1165 | 996 | ||
| 1166 | --- | ||
| 1167 | ** 'zap-up-to-char' now uses 'read-char-from-minibuffer'. | 997 | ** 'zap-up-to-char' now uses 'read-char-from-minibuffer'. |
| 1168 | This allows navigating through the history of characters that have | 998 | This allows navigating through the history of characters that have |
| 1169 | been input. This is mostly useful for characters that have complex | 999 | been input. This is mostly useful for characters that have complex |
| 1170 | input methods where inputting the character again may involve many | 1000 | input methods where inputting the character again may involve many |
| 1171 | keystrokes. | 1001 | keystrokes. |
| 1172 | 1002 | ||
| 1173 | +++ | ||
| 1174 | ** Input history for 'goto-line' can now be made local to every buffer. | 1003 | ** Input history for 'goto-line' can now be made local to every buffer. |
| 1175 | In any event, line numbers used with 'goto-line' are kept in their own | 1004 | In any event, line numbers used with 'goto-line' are kept in their own |
| 1176 | history list. This should help make faster the process of finding | 1005 | history list. This should help make faster the process of finding |
| @@ -1178,7 +1007,6 @@ line numbers that were previously jumped to. By default, all buffers | |||
| 1178 | share a single history list. To make every buffer have its own | 1007 | share a single history list. To make every buffer have its own |
| 1179 | history list, customize the user option 'goto-line-history-local'. | 1008 | history list, customize the user option 'goto-line-history-local'. |
| 1180 | 1009 | ||
| 1181 | +++ | ||
| 1182 | ** New command 'goto-line-relative' for use in a narrowed buffer. | 1010 | ** New command 'goto-line-relative' for use in a narrowed buffer. |
| 1183 | It moves point to the line relative to the accessible portion of the | 1011 | It moves point to the line relative to the accessible portion of the |
| 1184 | narrowed buffer. 'M-g M-g' in Info is rebound to this command. | 1012 | narrowed buffer. 'M-g M-g' in Info is rebound to this command. |
| @@ -1186,7 +1014,6 @@ When 'widen-automatically' is non-nil, 'goto-line' widens the narrowed | |||
| 1186 | buffer to be able to move point to the inaccessible portion. | 1014 | buffer to be able to move point to the inaccessible portion. |
| 1187 | 'goto-line-relative' is bound to 'C-x n g'. | 1015 | 'goto-line-relative' is bound to 'C-x n g'. |
| 1188 | 1016 | ||
| 1189 | +++ | ||
| 1190 | ** 'goto-char' prompts for the character position. | 1017 | ** 'goto-char' prompts for the character position. |
| 1191 | When called interactively, 'goto-char' now offers the position at | 1018 | When called interactively, 'goto-char' now offers the position at |
| 1192 | point as the default. | 1019 | point as the default. |
| @@ -1195,11 +1022,9 @@ point as the default. | |||
| 1195 | Set the user option 'auto-save-visited-mode' buffer-locally to nil to | 1022 | Set the user option 'auto-save-visited-mode' buffer-locally to nil to |
| 1196 | achieve that. | 1023 | achieve that. |
| 1197 | 1024 | ||
| 1198 | +++ | ||
| 1199 | ** New command 'kdb-macro-redisplay' to force redisplay in keyboard macros. | 1025 | ** New command 'kdb-macro-redisplay' to force redisplay in keyboard macros. |
| 1200 | This command is bound to 'C-x C-k d'. | 1026 | This command is bound to 'C-x C-k d'. |
| 1201 | 1027 | ||
| 1202 | --- | ||
| 1203 | ** 'blink-cursor-mode' is now enabled by default regardless of the UI. | 1028 | ** 'blink-cursor-mode' is now enabled by default regardless of the UI. |
| 1204 | It used to be enabled when Emacs is started in GUI mode but not when started | 1029 | It used to be enabled when Emacs is started in GUI mode but not when started |
| 1205 | in text mode. The cursor still only actually blinks in GUI frames. | 1030 | in text mode. The cursor still only actually blinks in GUI frames. |
| @@ -1208,7 +1033,6 @@ in text mode. The cursor still only actually blinks in GUI frames. | |||
| 1208 | To go back to the previous behavior, customize the user option of the | 1033 | To go back to the previous behavior, customize the user option of the |
| 1209 | same name to nil. | 1034 | same name to nil. |
| 1210 | 1035 | ||
| 1211 | +++ | ||
| 1212 | ** New minor mode 'show-paren-local-mode'. | 1036 | ** New minor mode 'show-paren-local-mode'. |
| 1213 | It serves as a local counterpart for 'show-paren-mode', allowing you | 1037 | It serves as a local counterpart for 'show-paren-mode', allowing you |
| 1214 | to toggle it separately in different buffers. To use it only in | 1038 | to toggle it separately in different buffers. To use it only in |
| @@ -1221,7 +1045,6 @@ programming modes, for example, add the following to your init file: | |||
| 1221 | 1045 | ||
| 1222 | ** Isearch and Replace | 1046 | ** Isearch and Replace |
| 1223 | 1047 | ||
| 1224 | +++ | ||
| 1225 | *** Interactive regular expression search now uses faces for sub-groups. | 1048 | *** Interactive regular expression search now uses faces for sub-groups. |
| 1226 | E.g., 'C-M-s foo-\([0-9]+\)' will now use the 'isearch-group-1' face | 1049 | E.g., 'C-M-s foo-\([0-9]+\)' will now use the 'isearch-group-1' face |
| 1227 | on the part of the regexp that matches the sub-expression "[0-9]+". | 1050 | on the part of the regexp that matches the sub-expression "[0-9]+". |
| @@ -1233,12 +1056,10 @@ This is controlled by the 'search-highlight-submatches' user option. | |||
| 1233 | This feature is available only on terminals that have enough colors to | 1056 | This feature is available only on terminals that have enough colors to |
| 1234 | distinguish between sub-expression highlighting. | 1057 | distinguish between sub-expression highlighting. |
| 1235 | 1058 | ||
| 1236 | +++ | ||
| 1237 | *** Interactive regular expression replace now uses faces for sub-groups. | 1059 | *** Interactive regular expression replace now uses faces for sub-groups. |
| 1238 | Like 'search-highlight-submatches', this is controlled by the new user option | 1060 | Like 'search-highlight-submatches', this is controlled by the new user option |
| 1239 | 'query-replace-highlight-submatches'. | 1061 | 'query-replace-highlight-submatches'. |
| 1240 | 1062 | ||
| 1241 | +++ | ||
| 1242 | *** New key 'M-s M-.' starts isearch looking for the thing at point. | 1063 | *** New key 'M-s M-.' starts isearch looking for the thing at point. |
| 1243 | This key is bound to the new command 'isearch-forward-thing-at-point'. | 1064 | This key is bound to the new command 'isearch-forward-thing-at-point'. |
| 1244 | The new user option 'isearch-forward-thing-at-point' defines | 1065 | The new user option 'isearch-forward-thing-at-point' defines |
| @@ -1246,20 +1067,17 @@ a list of symbols to try to get the "thing" at point. By default, | |||
| 1246 | the first element of the list is 'region' that tries to yank | 1067 | the first element of the list is 'region' that tries to yank |
| 1247 | the currently active region to the search string. | 1068 | the currently active region to the search string. |
| 1248 | 1069 | ||
| 1249 | +++ | ||
| 1250 | *** New user option 'isearch-wrap-pause' defines how to wrap the search. | 1070 | *** New user option 'isearch-wrap-pause' defines how to wrap the search. |
| 1251 | There are choices to disable wrapping completely and to wrap immediately. | 1071 | There are choices to disable wrapping completely and to wrap immediately. |
| 1252 | When wrapping immediately, it consistently handles the numeric arguments | 1072 | When wrapping immediately, it consistently handles the numeric arguments |
| 1253 | of 'C-s' ('isearch-repeat-forward') and 'C-r' ('isearch-repeat-backward'), | 1073 | of 'C-s' ('isearch-repeat-forward') and 'C-r' ('isearch-repeat-backward'), |
| 1254 | continuing with the remaining count after wrapping. | 1074 | continuing with the remaining count after wrapping. |
| 1255 | 1075 | ||
| 1256 | +++ | ||
| 1257 | *** New user option 'isearch-repeat-on-direction-change'. | 1076 | *** New user option 'isearch-repeat-on-direction-change'. |
| 1258 | When this option is set, direction changes in Isearch move to another | 1077 | When this option is set, direction changes in Isearch move to another |
| 1259 | search match, if there is one, instead of moving point to the other | 1078 | search match, if there is one, instead of moving point to the other |
| 1260 | end of the current match. | 1079 | end of the current match. |
| 1261 | 1080 | ||
| 1262 | +++ | ||
| 1263 | *** New user option 'isearch-allow-motion'. | 1081 | *** New user option 'isearch-allow-motion'. |
| 1264 | When 'isearch-allow-motion' is set, the commands 'beginning-of-buffer', | 1082 | When 'isearch-allow-motion' is set, the commands 'beginning-of-buffer', |
| 1265 | 'end-of-buffer', 'scroll-up-command' and 'scroll-down-command', when | 1083 | 'end-of-buffer', 'scroll-up-command' and 'scroll-down-command', when |
| @@ -1271,14 +1089,12 @@ during Isearch by using their 'isearch-motion' property. The user | |||
| 1271 | option 'isearch-motion-changes-direction' controls whether the | 1089 | option 'isearch-motion-changes-direction' controls whether the |
| 1272 | direction of the search changes after a motion command. | 1090 | direction of the search changes after a motion command. |
| 1273 | 1091 | ||
| 1274 | +++ | ||
| 1275 | *** New user option 'lazy-highlight-no-delay-length'. | 1092 | *** New user option 'lazy-highlight-no-delay-length'. |
| 1276 | Lazy highlighting of matches in Isearch now starts immediately if the | 1093 | Lazy highlighting of matches in Isearch now starts immediately if the |
| 1277 | search string is at least this long. 'lazy-highlight-initial-delay' | 1094 | search string is at least this long. 'lazy-highlight-initial-delay' |
| 1278 | still applies for shorter search strings, which avoids flicker in the | 1095 | still applies for shorter search strings, which avoids flicker in the |
| 1279 | search buffer due to too many matches being highlighted. | 1096 | search buffer due to too many matches being highlighted. |
| 1280 | 1097 | ||
| 1281 | +++ | ||
| 1282 | *** The default 'search-whitespace-regexp' value has changed. | 1098 | *** The default 'search-whitespace-regexp' value has changed. |
| 1283 | This used to be "\\s-+", which meant that it was mode-dependent whether | 1099 | This used to be "\\s-+", which meant that it was mode-dependent whether |
| 1284 | newlines were included in the whitespace set. This has now been | 1100 | newlines were included in the whitespace set. This has now been |
| @@ -1286,52 +1102,43 @@ changed to only match spaces and tab characters. | |||
| 1286 | 1102 | ||
| 1287 | ** Dired | 1103 | ** Dired |
| 1288 | 1104 | ||
| 1289 | +++ | ||
| 1290 | *** New user option 'dired-kill-when-opening-new-dired-buffer'. | 1105 | *** New user option 'dired-kill-when-opening-new-dired-buffer'. |
| 1291 | If non-nil, Dired will kill the current buffer when selecting a new | 1106 | If non-nil, Dired will kill the current buffer when selecting a new |
| 1292 | directory to display. | 1107 | directory to display. |
| 1293 | 1108 | ||
| 1294 | +++ | ||
| 1295 | *** Behavior change on 'dired-do-chmod'. | 1109 | *** Behavior change on 'dired-do-chmod'. |
| 1296 | As a security precaution, Dired's 'M' command no longer follows | 1110 | As a security precaution, Dired's 'M' command no longer follows |
| 1297 | symbolic links. Instead, it changes the symbolic link's own mode; | 1111 | symbolic links. Instead, it changes the symbolic link's own mode; |
| 1298 | this always fails on platforms where such modes are immutable. | 1112 | this always fails on platforms where such modes are immutable. |
| 1299 | 1113 | ||
| 1300 | --- | ||
| 1301 | *** Behavior change on 'dired-clean-confirm-killing-deleted-buffers'. | 1114 | *** Behavior change on 'dired-clean-confirm-killing-deleted-buffers'. |
| 1302 | Previously, if 'dired-clean-up-buffers-too' was non-nil, and | 1115 | Previously, if 'dired-clean-up-buffers-too' was non-nil, and |
| 1303 | 'dired-clean-confirm-killing-deleted-buffers' was nil, the buffers | 1116 | 'dired-clean-confirm-killing-deleted-buffers' was nil, the buffers |
| 1304 | wouldn't be killed. This combination will now kill the buffers. | 1117 | wouldn't be killed. This combination will now kill the buffers. |
| 1305 | 1118 | ||
| 1306 | +++ | ||
| 1307 | *** New user option 'dired-switches-in-mode-line'. | 1119 | *** New user option 'dired-switches-in-mode-line'. |
| 1308 | This user option controls how 'ls' switches are displayed in the mode | 1120 | This user option controls how 'ls' switches are displayed in the mode |
| 1309 | line, and allows truncating them (to preserve space on the mode line) | 1121 | line, and allows truncating them (to preserve space on the mode line) |
| 1310 | or showing them literally, either instead of, or in addition to, | 1122 | or showing them literally, either instead of, or in addition to, |
| 1311 | displaying "by name" or "by date" sort order. | 1123 | displaying "by name" or "by date" sort order. |
| 1312 | 1124 | ||
| 1313 | +++ | ||
| 1314 | *** New user option 'dired-compress-directory-default-suffix'. | 1125 | *** New user option 'dired-compress-directory-default-suffix'. |
| 1315 | This user option controls the default suffix for compressing a | 1126 | This user option controls the default suffix for compressing a |
| 1316 | directory. If it's nil, ".tar.gz" will be used. Refer to | 1127 | directory. If it's nil, ".tar.gz" will be used. Refer to |
| 1317 | 'dired-compress-files-alist' for a list of supported suffixes. | 1128 | 'dired-compress-files-alist' for a list of supported suffixes. |
| 1318 | 1129 | ||
| 1319 | +++ | ||
| 1320 | *** New user option 'dired-compress-file-default-suffix'. | 1130 | *** New user option 'dired-compress-file-default-suffix'. |
| 1321 | This user option controls the default suffix for compressing files. | 1131 | This user option controls the default suffix for compressing files. |
| 1322 | If it's nil, ".gz" will be used. Refer to 'dired-compress-file-alist' | 1132 | If it's nil, ".gz" will be used. Refer to 'dired-compress-file-alist' |
| 1323 | for a list of supported suffixes. | 1133 | for a list of supported suffixes. |
| 1324 | 1134 | ||
| 1325 | --- | ||
| 1326 | *** Broken and circular links are shown with the 'dired-broken-symlink' face. | 1135 | *** Broken and circular links are shown with the 'dired-broken-symlink' face. |
| 1327 | 1136 | ||
| 1328 | --- | ||
| 1329 | *** '=' ('dired-diff') will now put all backup files into the 'M-n' history. | 1137 | *** '=' ('dired-diff') will now put all backup files into the 'M-n' history. |
| 1330 | When using '=' on a file with backup files, the default file to use | 1138 | When using '=' on a file with backup files, the default file to use |
| 1331 | for diffing is the newest backup file. You can now use 'M-n' to quickly | 1139 | for diffing is the newest backup file. You can now use 'M-n' to quickly |
| 1332 | select a different backup file instead. | 1140 | select a different backup file instead. |
| 1333 | 1141 | ||
| 1334 | +++ | ||
| 1335 | *** New user option 'dired-maybe-use-globstar'. | 1142 | *** New user option 'dired-maybe-use-globstar'. |
| 1336 | If set, enables globstar (recursive globbing) in shells that support | 1143 | If set, enables globstar (recursive globbing) in shells that support |
| 1337 | this feature, but have it turned off by default. This allows producing | 1144 | this feature, but have it turned off by default. This allows producing |
| @@ -1340,19 +1147,16 @@ subdirectories of a given directory. The new variable | |||
| 1340 | 'dired-enable-globstar-in-shell' lists which shells can have globstar | 1147 | 'dired-enable-globstar-in-shell' lists which shells can have globstar |
| 1341 | enabled, and how to enable it. | 1148 | enabled, and how to enable it. |
| 1342 | 1149 | ||
| 1343 | +++ | ||
| 1344 | *** New user option 'dired-copy-dereference'. | 1150 | *** New user option 'dired-copy-dereference'. |
| 1345 | If set to non-nil, Dired will dereference symbolic links when copying. | 1151 | If set to non-nil, Dired will dereference symbolic links when copying. |
| 1346 | This can be switched off on a per-usage basis by providing | 1152 | This can be switched off on a per-usage basis by providing |
| 1347 | 'dired-do-copy' with a 'C-u' prefix. | 1153 | 'dired-do-copy' with a 'C-u' prefix. |
| 1348 | 1154 | ||
| 1349 | --- | ||
| 1350 | *** New user option 'dired-do-revert-buffer'. | 1155 | *** New user option 'dired-do-revert-buffer'. |
| 1351 | Non-nil reverts the destination Dired buffer after performing one | 1156 | Non-nil reverts the destination Dired buffer after performing one |
| 1352 | of these operations: 'dired-do-copy', 'dired-do-rename', | 1157 | of these operations: 'dired-do-copy', 'dired-do-rename', |
| 1353 | 'dired-do-symlink', 'dired-do-hardlink'. | 1158 | 'dired-do-symlink', 'dired-do-hardlink'. |
| 1354 | 1159 | ||
| 1355 | --- | ||
| 1356 | *** New user option 'dired-mark-region'. | 1160 | *** New user option 'dired-mark-region'. |
| 1357 | This option affects all Dired commands that mark files. When non-nil | 1161 | This option affects all Dired commands that mark files. When non-nil |
| 1358 | and the region is active in Transient Mark mode, then Dired commands | 1162 | and the region is active in Transient Mark mode, then Dired commands |
| @@ -1360,12 +1164,10 @@ operate only on files in the active region. The values 'file' and | |||
| 1360 | 'line' of this user option define the details of marking the file at | 1164 | 'line' of this user option define the details of marking the file at |
| 1361 | the end of the region. | 1165 | the end of the region. |
| 1362 | 1166 | ||
| 1363 | +++ | ||
| 1364 | *** State changing VC operations are supported in Dired. | 1167 | *** State changing VC operations are supported in Dired. |
| 1365 | These operations are supported on files and directories via the new | 1168 | These operations are supported on files and directories via the new |
| 1366 | command 'dired-vc-next-action'. | 1169 | command 'dired-vc-next-action'. |
| 1367 | 1170 | ||
| 1368 | +++ | ||
| 1369 | *** 'dired-jump' and 'dired-jump-other-window' moved from 'dired-x' to 'dired'. | 1171 | *** 'dired-jump' and 'dired-jump-other-window' moved from 'dired-x' to 'dired'. |
| 1370 | The 'dired-jump' and 'dired-jump-other-window' commands have been | 1172 | The 'dired-jump' and 'dired-jump-other-window' commands have been |
| 1371 | moved from the 'dired-x' package to 'dired'. The user option | 1173 | moved from the 'dired-x' package to 'dired'. The user option |
| @@ -1378,25 +1180,21 @@ keys, add the following to your init file: | |||
| 1378 | (global-set-key "\C-x\C-j" nil) | 1180 | (global-set-key "\C-x\C-j" nil) |
| 1379 | (global-set-key "\C-x4\C-j" nil) | 1181 | (global-set-key "\C-x4\C-j" nil) |
| 1380 | 1182 | ||
| 1381 | --- | ||
| 1382 | *** 'dired-query' now uses 'read-char-from-minibuffer'. | 1183 | *** 'dired-query' now uses 'read-char-from-minibuffer'. |
| 1383 | Using it instead of 'read-char-choice' allows using 'C-x o' | 1184 | Using it instead of 'read-char-choice' allows using 'C-x o' |
| 1384 | to switch to the help window displayed after typing 'C-h'. | 1185 | to switch to the help window displayed after typing 'C-h'. |
| 1385 | 1186 | ||
| 1386 | +++ | ||
| 1387 | ** Emacs 28.1 comes with Org v9.5. | 1187 | ** Emacs 28.1 comes with Org v9.5. |
| 1388 | See the file ORG-NEWS for user-visible changes in Org. | 1188 | See the file ORG-NEWS for user-visible changes in Org. |
| 1389 | 1189 | ||
| 1390 | ** Outline | 1190 | ** Outline |
| 1391 | 1191 | ||
| 1392 | +++ | ||
| 1393 | *** New commands to cycle heading visibility. | 1192 | *** New commands to cycle heading visibility. |
| 1394 | Typing 'TAB' on a heading line cycles the current section between | 1193 | Typing 'TAB' on a heading line cycles the current section between |
| 1395 | "hide all", "subheadings", and "show all" states. Typing 'S-TAB' | 1194 | "hide all", "subheadings", and "show all" states. Typing 'S-TAB' |
| 1396 | anywhere in the buffer cycles the whole buffer between "only top-level | 1195 | anywhere in the buffer cycles the whole buffer between "only top-level |
| 1397 | headings", "all headings and subheadings", and "show all" states. | 1196 | headings", "all headings and subheadings", and "show all" states. |
| 1398 | 1197 | ||
| 1399 | +++ | ||
| 1400 | *** New user option 'outline-minor-mode-cycle'. | 1198 | *** New user option 'outline-minor-mode-cycle'. |
| 1401 | This user option customizes 'outline-minor-mode', with the difference | 1199 | This user option customizes 'outline-minor-mode', with the difference |
| 1402 | that 'TAB' and 'S-TAB' on heading lines cycle heading visibility. | 1200 | that 'TAB' and 'S-TAB' on heading lines cycle heading visibility. |
| @@ -1405,7 +1203,6 @@ Typing 'TAB' on a heading line cycles the current section between | |||
| 1405 | heading line cycles the whole buffer between "only top-level | 1203 | heading line cycles the whole buffer between "only top-level |
| 1406 | headings", "all headings and subheadings", and "show all" states. | 1204 | headings", "all headings and subheadings", and "show all" states. |
| 1407 | 1205 | ||
| 1408 | --- | ||
| 1409 | *** New user option 'outline-minor-mode-highlight'. | 1206 | *** New user option 'outline-minor-mode-highlight'. |
| 1410 | This user option customizes 'outline-minor-mode'. It puts | 1207 | This user option customizes 'outline-minor-mode'. It puts |
| 1411 | highlighting on heading lines using standard outline faces. This | 1208 | highlighting on heading lines using standard outline faces. This |
| @@ -1414,27 +1211,22 @@ major mode. | |||
| 1414 | 1211 | ||
| 1415 | ** Ispell | 1212 | ** Ispell |
| 1416 | 1213 | ||
| 1417 | +++ | ||
| 1418 | *** 'ispell-comments-and-strings' now accepts START and END arguments. | 1214 | *** 'ispell-comments-and-strings' now accepts START and END arguments. |
| 1419 | These arguments default to the active region when used interactively. | 1215 | These arguments default to the active region when used interactively. |
| 1420 | 1216 | ||
| 1421 | +++ | ||
| 1422 | *** New command 'ispell-comment-or-string-at-point'. | 1217 | *** New command 'ispell-comment-or-string-at-point'. |
| 1423 | 1218 | ||
| 1424 | --- | ||
| 1425 | *** New user option 'ispell-help-timeout'. | 1219 | *** New user option 'ispell-help-timeout'. |
| 1426 | This controls how long the ispell help (on the '?' key) is displayed. | 1220 | This controls how long the ispell help (on the '?' key) is displayed. |
| 1427 | 1221 | ||
| 1428 | ** Flyspell mode | 1222 | ** Flyspell mode |
| 1429 | 1223 | ||
| 1430 | +++ | ||
| 1431 | *** Corrections and actions menu can be optionally bound to 'mouse-3'. | 1224 | *** Corrections and actions menu can be optionally bound to 'mouse-3'. |
| 1432 | When Flyspell mode highlights a word as misspelled, you can click on | 1225 | When Flyspell mode highlights a word as misspelled, you can click on |
| 1433 | it to display a menu of possible corrections and actions. You can now | 1226 | it to display a menu of possible corrections and actions. You can now |
| 1434 | easily bind this menu to 'down-mouse-3' (usually the right mouse button) | 1227 | easily bind this menu to 'down-mouse-3' (usually the right mouse button) |
| 1435 | instead of 'mouse-2' (the default) by enabling 'context-menu-mode'. | 1228 | instead of 'mouse-2' (the default) by enabling 'context-menu-mode'. |
| 1436 | 1229 | ||
| 1437 | --- | ||
| 1438 | *** The current dictionary is now displayed in the minor mode lighter. | 1230 | *** The current dictionary is now displayed in the minor mode lighter. |
| 1439 | Clicking the dictionary name changes the current dictionary. | 1231 | Clicking the dictionary name changes the current dictionary. |
| 1440 | 1232 | ||
| @@ -1444,7 +1236,6 @@ Clicking the dictionary name changes the current dictionary. | |||
| 1444 | Thus, packages on NonGNU ELPA will appear by default in the list shown | 1236 | Thus, packages on NonGNU ELPA will appear by default in the list shown |
| 1445 | by 'list-packages'. | 1237 | by 'list-packages'. |
| 1446 | 1238 | ||
| 1447 | --- | ||
| 1448 | *** '/ s' ('package-menu-filter-by-status') changed parameter handling. | 1239 | *** '/ s' ('package-menu-filter-by-status') changed parameter handling. |
| 1449 | The command was documented to take a comma-separated list of statuses | 1240 | The command was documented to take a comma-separated list of statuses |
| 1450 | to filter by, but instead it used the parameter as a regexp. The | 1241 | to filter by, but instead it used the parameter as a regexp. The |
| @@ -1452,10 +1243,8 @@ command has been changed so that it now works as documented, and | |||
| 1452 | checks statuses not as a regexp, but instead an exact match from the | 1243 | checks statuses not as a regexp, but instead an exact match from the |
| 1453 | comma-separated list. | 1244 | comma-separated list. |
| 1454 | 1245 | ||
| 1455 | +++ | ||
| 1456 | *** New command 'package-browse-url' and keystroke 'w'. | 1246 | *** New command 'package-browse-url' and keystroke 'w'. |
| 1457 | 1247 | ||
| 1458 | +++ | ||
| 1459 | *** New commands to filter the package list. | 1248 | *** New commands to filter the package list. |
| 1460 | The filter commands are bound to the following keys: | 1249 | The filter commands are bound to the following keys: |
| 1461 | 1250 | ||
| @@ -1482,7 +1271,6 @@ run the native-compilation of the package files. (Be sure to leave | |||
| 1482 | Emacs running until these asynchronous subprocesses exit, or else the | 1271 | Emacs running until these asynchronous subprocesses exit, or else the |
| 1483 | native-compilation will be aborted when you exit Emacs.) | 1272 | native-compilation will be aborted when you exit Emacs.) |
| 1484 | 1273 | ||
| 1485 | --- | ||
| 1486 | *** Column widths in 'list-packages' display can now be customized. | 1274 | *** Column widths in 'list-packages' display can now be customized. |
| 1487 | See the new user options 'package-name-column-width', | 1275 | See the new user options 'package-name-column-width', |
| 1488 | 'package-version-column-width', 'package-status-column-width', and | 1276 | 'package-version-column-width', 'package-status-column-width', and |
| @@ -1490,7 +1278,6 @@ See the new user options 'package-name-column-width', | |||
| 1490 | 1278 | ||
| 1491 | ** Info | 1279 | ** Info |
| 1492 | 1280 | ||
| 1493 | --- | ||
| 1494 | *** New user option 'Info-warn-on-index-alternatives-wrap'. | 1281 | *** New user option 'Info-warn-on-index-alternatives-wrap'. |
| 1495 | This option affects what happens when using the ',' command after | 1282 | This option affects what happens when using the ',' command after |
| 1496 | looking up an entry with 'i' in info buffers. If non-nil (the | 1283 | looking up an entry with 'i' in info buffers. If non-nil (the |
| @@ -1500,7 +1287,6 @@ you to the first match. | |||
| 1500 | 1287 | ||
| 1501 | ** Abbrev mode | 1288 | ** Abbrev mode |
| 1502 | 1289 | ||
| 1503 | +++ | ||
| 1504 | *** Emacs can now suggest to use an abbrev based on text you type. | 1290 | *** Emacs can now suggest to use an abbrev based on text you type. |
| 1505 | A new user option, 'abbrev-suggest', enables the new abbrev suggestion | 1291 | A new user option, 'abbrev-suggest', enables the new abbrev suggestion |
| 1506 | feature. When enabled, if a user manually types a piece of text that | 1292 | feature. When enabled, if a user manually types a piece of text that |
| @@ -1510,17 +1296,14 @@ used instead. | |||
| 1510 | 1296 | ||
| 1511 | ** Bookmarks | 1297 | ** Bookmarks |
| 1512 | 1298 | ||
| 1513 | --- | ||
| 1514 | *** Bookmarks can now be targets for new tabs. | 1299 | *** Bookmarks can now be targets for new tabs. |
| 1515 | When the bookmark.el library is loaded, a customize choice is added | 1300 | When the bookmark.el library is loaded, a customize choice is added |
| 1516 | to 'tab-bar-new-tab-choice' for new tabs to show the bookmark list. | 1301 | to 'tab-bar-new-tab-choice' for new tabs to show the bookmark list. |
| 1517 | 1302 | ||
| 1518 | --- | ||
| 1519 | *** New user option 'bookmark-set-fringe-mark'. | 1303 | *** New user option 'bookmark-set-fringe-mark'. |
| 1520 | If non-nil, setting a bookmark will set a fringe mark on the current | 1304 | If non-nil, setting a bookmark will set a fringe mark on the current |
| 1521 | line, and jumping to a bookmark will also set this mark. | 1305 | line, and jumping to a bookmark will also set this mark. |
| 1522 | 1306 | ||
| 1523 | --- | ||
| 1524 | *** New user option 'bookmark-menu-confirm-deletion'. | 1307 | *** New user option 'bookmark-menu-confirm-deletion'. |
| 1525 | In Bookmark Menu mode, Emacs by default does not prompt for | 1308 | In Bookmark Menu mode, Emacs by default does not prompt for |
| 1526 | confirmation when you type 'x' to execute the deletion of bookmarks | 1309 | confirmation when you type 'x' to execute the deletion of bookmarks |
| @@ -1528,7 +1311,6 @@ that have been marked for deletion. However, if this new option is | |||
| 1528 | non-nil then Emacs will require confirmation with 'yes-or-no-p' before | 1311 | non-nil then Emacs will require confirmation with 'yes-or-no-p' before |
| 1529 | deleting. | 1312 | deleting. |
| 1530 | 1313 | ||
| 1531 | --- | ||
| 1532 | *** The 'list-bookmarks' menu is now based on 'tabulated-list-mode'. | 1314 | *** The 'list-bookmarks' menu is now based on 'tabulated-list-mode'. |
| 1533 | The interactive bookmark list will now benefit from features in | 1315 | The interactive bookmark list will now benefit from features in |
| 1534 | 'tabulated-list-mode' like sorting columns or changing column width. | 1316 | 'tabulated-list-mode' like sorting columns or changing column width. |
| @@ -1540,17 +1322,14 @@ The variables 'bookmark-bmenu-use-header-line' and | |||
| 1540 | 1322 | ||
| 1541 | ** Recentf | 1323 | ** Recentf |
| 1542 | 1324 | ||
| 1543 | --- | ||
| 1544 | *** The recentf files are no longer backed up. | 1325 | *** The recentf files are no longer backed up. |
| 1545 | 1326 | ||
| 1546 | --- | ||
| 1547 | *** 'recentf-auto-cleanup' now repeats daily when set to a time string. | 1327 | *** 'recentf-auto-cleanup' now repeats daily when set to a time string. |
| 1548 | When 'recentf-auto-cleanup' is set to a time string, it now repeats | 1328 | When 'recentf-auto-cleanup' is set to a time string, it now repeats |
| 1549 | every day, rather than only running once after the mode is turned on. | 1329 | every day, rather than only running once after the mode is turned on. |
| 1550 | 1330 | ||
| 1551 | ** Calc | 1331 | ** Calc |
| 1552 | 1332 | ||
| 1553 | --- | ||
| 1554 | *** The behavior when doing forward-delete has been changed. | 1333 | *** The behavior when doing forward-delete has been changed. |
| 1555 | Previously, using the 'C-d' command would delete the final number in | 1334 | Previously, using the 'C-d' command would delete the final number in |
| 1556 | the input field, no matter where point was. This has been changed to | 1335 | the input field, no matter where point was. This has been changed to |
| @@ -1558,42 +1337,35 @@ work more traditionally, with 'C-d' deleting the next character. | |||
| 1558 | Likewise, point isn't moved to the end of the string before inserting | 1337 | Likewise, point isn't moved to the end of the string before inserting |
| 1559 | digits. | 1338 | digits. |
| 1560 | 1339 | ||
| 1561 | +++ | ||
| 1562 | *** Setting the word size to zero disables word clipping. | 1340 | *** Setting the word size to zero disables word clipping. |
| 1563 | The word size normally clips the results of certain bit-oriented | 1341 | The word size normally clips the results of certain bit-oriented |
| 1564 | operations such as shifts and bitwise XOR. A word size of zero, set | 1342 | operations such as shifts and bitwise XOR. A word size of zero, set |
| 1565 | by 'b w', makes the operation have effect on the whole argument values | 1343 | by 'b w', makes the operation have effect on the whole argument values |
| 1566 | and the result is not truncated in any way. | 1344 | and the result is not truncated in any way. |
| 1567 | 1345 | ||
| 1568 | --- | ||
| 1569 | *** The '/' operator now has higher precedence in (La)TeX input mode. | 1346 | *** The '/' operator now has higher precedence in (La)TeX input mode. |
| 1570 | It no longer has lower precedence than '+' and '-'. | 1347 | It no longer has lower precedence than '+' and '-'. |
| 1571 | 1348 | ||
| 1572 | --- | ||
| 1573 | *** New user option 'calc-make-windows-dedicated'. | 1349 | *** New user option 'calc-make-windows-dedicated'. |
| 1574 | When this user option is non-nil, Calc will mark its windows as | 1350 | When this user option is non-nil, Calc will mark its windows as |
| 1575 | dedicated. | 1351 | dedicated. |
| 1576 | 1352 | ||
| 1577 | ** Calendar | 1353 | ** Calendar |
| 1578 | 1354 | ||
| 1579 | +++ | ||
| 1580 | *** New user option 'calendar-time-zone-style'. | 1355 | *** New user option 'calendar-time-zone-style'. |
| 1581 | If 'numeric', calendar functions (eg 'calendar-sunrise-sunset') that display | 1356 | If 'numeric', calendar functions (eg 'calendar-sunrise-sunset') that display |
| 1582 | time zones will use a form like "+0100" instead of "CET". | 1357 | time zones will use a form like "+0100" instead of "CET". |
| 1583 | 1358 | ||
| 1584 | ** Imenu | 1359 | ** Imenu |
| 1585 | 1360 | ||
| 1586 | +++ | ||
| 1587 | *** New user option 'imenu-max-index-time'. | 1361 | *** New user option 'imenu-max-index-time'. |
| 1588 | If creating the imenu index takes longer than specified by this | 1362 | If creating the imenu index takes longer than specified by this |
| 1589 | option (default 5 seconds), imenu indexing is stopped. | 1363 | option (default 5 seconds), imenu indexing is stopped. |
| 1590 | 1364 | ||
| 1591 | ** Ido | 1365 | ** Ido |
| 1592 | 1366 | ||
| 1593 | --- | ||
| 1594 | *** Switching on 'ido-mode' now also overrides 'ffap-file-finder'. | 1367 | *** Switching on 'ido-mode' now also overrides 'ffap-file-finder'. |
| 1595 | 1368 | ||
| 1596 | --- | ||
| 1597 | *** Killing virtual ido buffers interactively will make them go away. | 1369 | *** Killing virtual ido buffers interactively will make them go away. |
| 1598 | Previously, killing a virtual ido buffer with 'ido-kill-buffer' didn't | 1370 | Previously, killing a virtual ido buffer with 'ido-kill-buffer' didn't |
| 1599 | do anything. This has now been changed, and killing virtual buffers | 1371 | do anything. This has now been changed, and killing virtual buffers |
| @@ -1601,13 +1373,11 @@ with that command will remove the buffer from recentf. | |||
| 1601 | 1373 | ||
| 1602 | ** So Long | 1374 | ** So Long |
| 1603 | 1375 | ||
| 1604 | --- | ||
| 1605 | *** New 'so-long-predicate' function 'so-long-statistics-excessive-p'. | 1376 | *** New 'so-long-predicate' function 'so-long-statistics-excessive-p'. |
| 1606 | It efficiently detects the presence of a long line anywhere in the | 1377 | It efficiently detects the presence of a long line anywhere in the |
| 1607 | buffer using 'buffer-line-statistics' (see above). This is now the | 1378 | buffer using 'buffer-line-statistics' (see above). This is now the |
| 1608 | default predicate (replacing 'so-long-detected-long-line-p'). | 1379 | default predicate (replacing 'so-long-detected-long-line-p'). |
| 1609 | 1380 | ||
| 1610 | --- | ||
| 1611 | *** Default values 'so-long-threshold' and 'so-long-max-lines' increased. | 1381 | *** Default values 'so-long-threshold' and 'so-long-max-lines' increased. |
| 1612 | The values of these user options have been raised to 10000 bytes and 500 | 1382 | The values of these user options have been raised to 10000 bytes and 500 |
| 1613 | lines respectively, to reduce the likelihood of false-positives when | 1383 | lines respectively, to reduce the likelihood of false-positives when |
| @@ -1615,14 +1385,12 @@ lines respectively, to reduce the likelihood of false-positives when | |||
| 1615 | by the old predicate, as the new predicate knows the longest line in | 1385 | by the old predicate, as the new predicate knows the longest line in |
| 1616 | the entire buffer. | 1386 | the entire buffer. |
| 1617 | 1387 | ||
| 1618 | --- | ||
| 1619 | *** 'so-long-target-modes' now includes 'fundamental-mode' by default. | 1388 | *** 'so-long-target-modes' now includes 'fundamental-mode' by default. |
| 1620 | This means that 'global-so-long-mode' will also process files which were | 1389 | This means that 'global-so-long-mode' will also process files which were |
| 1621 | not recognised. (This only has an effect if 'set-auto-mode' chooses | 1390 | not recognised. (This only has an effect if 'set-auto-mode' chooses |
| 1622 | 'fundamental-mode'; buffers which are simply in 'fundamental-mode' by | 1391 | 'fundamental-mode'; buffers which are simply in 'fundamental-mode' by |
| 1623 | default are unaffected.) | 1392 | default are unaffected.) |
| 1624 | 1393 | ||
| 1625 | --- | ||
| 1626 | *** New user options to preserve modes and variables. | 1394 | *** New user options to preserve modes and variables. |
| 1627 | The new options 'so-long-mode-preserved-minor-modes' and | 1395 | The new options 'so-long-mode-preserved-minor-modes' and |
| 1628 | 'so-long-mode-preserved-variables' allow specified mode and variable | 1396 | 'so-long-mode-preserved-variables' allow specified mode and variable |
| @@ -1631,7 +1399,6 @@ mode. By default, these new options support 'view-mode'. | |||
| 1631 | 1399 | ||
| 1632 | ** Grep | 1400 | ** Grep |
| 1633 | 1401 | ||
| 1634 | +++ | ||
| 1635 | *** New user option 'grep-match-regexp' matches grep markers to highlight. | 1402 | *** New user option 'grep-match-regexp' matches grep markers to highlight. |
| 1636 | Grep emits SGR ANSI escape sequences to color its output. The new | 1403 | Grep emits SGR ANSI escape sequences to color its output. The new |
| 1637 | user option 'grep-match-regexp' holds the regular expression to match | 1404 | user option 'grep-match-regexp' holds the regular expression to match |
| @@ -1639,7 +1406,6 @@ the appropriate markers in order to provide highlighting in the source | |||
| 1639 | buffer. The user option can be customized to accommodate other | 1406 | buffer. The user option can be customized to accommodate other |
| 1640 | grep-like tools. | 1407 | grep-like tools. |
| 1641 | 1408 | ||
| 1642 | --- | ||
| 1643 | *** The 'lgrep' command now ignores directories. | 1409 | *** The 'lgrep' command now ignores directories. |
| 1644 | On systems where the grep command supports it, directories will be | 1410 | On systems where the grep command supports it, directories will be |
| 1645 | skipped. | 1411 | skipped. |
| @@ -1653,19 +1419,16 @@ any directory names on the 'find' command lines end in a slash. | |||
| 1653 | This change is for better compatibility with old versions of non-GNU | 1419 | This change is for better compatibility with old versions of non-GNU |
| 1654 | 'find', such as the one used on macOS. | 1420 | 'find', such as the one used on macOS. |
| 1655 | 1421 | ||
| 1656 | --- | ||
| 1657 | *** New utility function 'grep-file-at-point'. | 1422 | *** New utility function 'grep-file-at-point'. |
| 1658 | This returns the name of the file at point (if any) in 'grep-mode' | 1423 | This returns the name of the file at point (if any) in 'grep-mode' |
| 1659 | buffers. | 1424 | buffers. |
| 1660 | 1425 | ||
| 1661 | ** Shell | 1426 | ** Shell |
| 1662 | 1427 | ||
| 1663 | --- | ||
| 1664 | *** New command in 'shell-mode': 'shell-narrow-to-prompt'. | 1428 | *** New command in 'shell-mode': 'shell-narrow-to-prompt'. |
| 1665 | This is bound to 'C-x n d' in 'shell-mode' buffers, and narrows to the | 1429 | This is bound to 'C-x n d' in 'shell-mode' buffers, and narrows to the |
| 1666 | command line under point (and any following output). | 1430 | command line under point (and any following output). |
| 1667 | 1431 | ||
| 1668 | --- | ||
| 1669 | *** New user option 'shell-has-auto-cd'. | 1432 | *** New user option 'shell-has-auto-cd'. |
| 1670 | If non-nil, 'shell-mode' handles implicit "cd" commands, changing the | 1433 | If non-nil, 'shell-mode' handles implicit "cd" commands, changing the |
| 1671 | directory if the command is a directory. Useful for shells like "zsh" | 1434 | directory if the command is a directory. Useful for shells like "zsh" |
| @@ -1673,20 +1436,17 @@ that has this feature. | |||
| 1673 | 1436 | ||
| 1674 | ** Term mode | 1437 | ** Term mode |
| 1675 | 1438 | ||
| 1676 | --- | ||
| 1677 | *** New user option 'term-scroll-snap-to-bottom'. | 1439 | *** New user option 'term-scroll-snap-to-bottom'. |
| 1678 | By default, 'term' and 'ansi-term' will now recenter the buffer so | 1440 | By default, 'term' and 'ansi-term' will now recenter the buffer so |
| 1679 | that the prompt is on the final line in the window. Setting this new | 1441 | that the prompt is on the final line in the window. Setting this new |
| 1680 | user option to nil inhibits this behavior. | 1442 | user option to nil inhibits this behavior. |
| 1681 | 1443 | ||
| 1682 | --- | ||
| 1683 | *** New user option 'term-set-terminal-size'. | 1444 | *** New user option 'term-set-terminal-size'. |
| 1684 | If non-nil, the 'LINES' and 'COLUMNS' environment variables will be set | 1445 | If non-nil, the 'LINES' and 'COLUMNS' environment variables will be set |
| 1685 | based on the current window size. In previous versions of Emacs, this | 1446 | based on the current window size. In previous versions of Emacs, this |
| 1686 | was always done (and that could lead to odd displays when resizing the | 1447 | was always done (and that could lead to odd displays when resizing the |
| 1687 | window after starting). This variable defaults to nil. | 1448 | window after starting). This variable defaults to nil. |
| 1688 | 1449 | ||
| 1689 | --- | ||
| 1690 | *** 'term-mode' now supports "bright" color codes. | 1450 | *** 'term-mode' now supports "bright" color codes. |
| 1691 | "Bright" ANSI color codes are now displayed using the color values | 1451 | "Bright" ANSI color codes are now displayed using the color values |
| 1692 | defined in 'term-color-bright-*'. In addition, bold text with regular | 1452 | defined in 'term-color-bright-*'. In addition, bold text with regular |
| @@ -1695,15 +1455,12 @@ is non-nil. | |||
| 1695 | 1455 | ||
| 1696 | ** Eshell | 1456 | ** Eshell |
| 1697 | 1457 | ||
| 1698 | --- | ||
| 1699 | *** 'eshell-hist-ignoredups' can now also be used to mimic "erasedups" in bash. | 1458 | *** 'eshell-hist-ignoredups' can now also be used to mimic "erasedups" in bash. |
| 1700 | 1459 | ||
| 1701 | --- | ||
| 1702 | *** Environment variable 'INSIDE_EMACS' is now copied to subprocesses. | 1460 | *** Environment variable 'INSIDE_EMACS' is now copied to subprocesses. |
| 1703 | Its value contains the result of evaluating '(format "%s,eshell" | 1461 | Its value contains the result of evaluating '(format "%s,eshell" |
| 1704 | emacs-version)'. Other package names, like "tramp", could also be included. | 1462 | emacs-version)'. Other package names, like "tramp", could also be included. |
| 1705 | 1463 | ||
| 1706 | --- | ||
| 1707 | *** Eshell no longer re-initializes its keymap every call. | 1464 | *** Eshell no longer re-initializes its keymap every call. |
| 1708 | This allows users to use '(define-key eshell-mode-map ...)' as usual. | 1465 | This allows users to use '(define-key eshell-mode-map ...)' as usual. |
| 1709 | Some modules have their own minor mode now to account for these | 1466 | Some modules have their own minor mode now to account for these |
| @@ -1715,7 +1472,6 @@ will create a bookmark that opens the current directory in Eshell. | |||
| 1715 | 1472 | ||
| 1716 | ** Archive mode | 1473 | ** Archive mode |
| 1717 | 1474 | ||
| 1718 | --- | ||
| 1719 | *** Archive mode can now parse ".squashfs" files. | 1475 | *** Archive mode can now parse ".squashfs" files. |
| 1720 | 1476 | ||
| 1721 | *** Can now modify members of 'ar' archives. | 1477 | *** Can now modify members of 'ar' archives. |
| @@ -1727,7 +1483,6 @@ New user option 'archive-hidden-columns' and new command | |||
| 1727 | 'archive-hideshow-column' let you control which columns are displayed | 1483 | 'archive-hideshow-column' let you control which columns are displayed |
| 1728 | and which are kept hidden. | 1484 | and which are kept hidden. |
| 1729 | 1485 | ||
| 1730 | --- | ||
| 1731 | *** New command bound to 'C': 'archive-copy-file'. | 1486 | *** New command bound to 'C': 'archive-copy-file'. |
| 1732 | This command extracts the file at point and writes its data to a | 1487 | This command extracts the file at point and writes its data to a |
| 1733 | file. | 1488 | file. |
| @@ -1756,15 +1511,12 @@ symbol property to the browsing commands. With a new command | |||
| 1756 | 'browse-url-with-browser-kind', an URL can explicitly be browsed with | 1511 | 'browse-url-with-browser-kind', an URL can explicitly be browsed with |
| 1757 | either an internal or external browser. | 1512 | either an internal or external browser. |
| 1758 | 1513 | ||
| 1759 | --- | ||
| 1760 | *** Support for browsing of remote files. | 1514 | *** Support for browsing of remote files. |
| 1761 | If a remote file is specified, a local temporary copy of that file is | 1515 | If a remote file is specified, a local temporary copy of that file is |
| 1762 | passed to the browser. | 1516 | passed to the browser. |
| 1763 | 1517 | ||
| 1764 | --- | ||
| 1765 | *** Support for the conkeror browser is now obsolete. | 1518 | *** Support for the conkeror browser is now obsolete. |
| 1766 | 1519 | ||
| 1767 | --- | ||
| 1768 | *** Support for the Mosaic browser has been removed. | 1520 | *** Support for the Mosaic browser has been removed. |
| 1769 | This support has been obsolete since 25.1. | 1521 | This support has been obsolete since 25.1. |
| 1770 | 1522 | ||
| @@ -1775,7 +1527,6 @@ New key bindings have been added to 'completion-list-mode': 'n' and | |||
| 1775 | 'p' now navigate completions, and 'M-g M-c' switches to the | 1527 | 'p' now navigate completions, and 'M-g M-c' switches to the |
| 1776 | minibuffer and back to the completion list buffer. | 1528 | minibuffer and back to the completion list buffer. |
| 1777 | 1529 | ||
| 1778 | +++ | ||
| 1779 | ** Profiler | 1530 | ** Profiler |
| 1780 | The results displayed by 'profiler-report' now have the usage figures | 1531 | The results displayed by 'profiler-report' now have the usage figures |
| 1781 | at the left hand side followed by the function name. This is intended | 1532 | at the left hand side followed by the function name. This is intended |
| @@ -1785,12 +1536,10 @@ layout back. | |||
| 1785 | 1536 | ||
| 1786 | ** Icomplete | 1537 | ** Icomplete |
| 1787 | 1538 | ||
| 1788 | --- | ||
| 1789 | *** New user option 'icomplete-matches-format'. | 1539 | *** New user option 'icomplete-matches-format'. |
| 1790 | This allows controlling the current/total number of matches for the | 1540 | This allows controlling the current/total number of matches for the |
| 1791 | prompt prefix. | 1541 | prompt prefix. |
| 1792 | 1542 | ||
| 1793 | +++ | ||
| 1794 | *** New minor modes 'icomplete-vertical-mode' and 'fido-vertical-mode'. | 1543 | *** New minor modes 'icomplete-vertical-mode' and 'fido-vertical-mode'. |
| 1795 | These modes modify Icomplete ('icomplete-mode') and Fido | 1544 | These modes modify Icomplete ('icomplete-mode') and Fido |
| 1796 | ('fido-mode'), to display completion candidates vertically instead of | 1545 | ('fido-mode'), to display completion candidates vertically instead of |
| @@ -1799,20 +1548,16 @@ kept at the top. In Fido, completions scroll like a typical dropdown | |||
| 1799 | widget. Both these new minor modes will turn on their non-vertical | 1548 | widget. Both these new minor modes will turn on their non-vertical |
| 1800 | counterparts first, if they are not on already. | 1549 | counterparts first, if they are not on already. |
| 1801 | 1550 | ||
| 1802 | --- | ||
| 1803 | *** Default value of 'icomplete-compute-delay' has been changed to 0.15 s. | 1551 | *** Default value of 'icomplete-compute-delay' has been changed to 0.15 s. |
| 1804 | 1552 | ||
| 1805 | --- | ||
| 1806 | *** Default value of 'icomplete-max-delay-chars' has been changed to 2. | 1553 | *** Default value of 'icomplete-max-delay-chars' has been changed to 2. |
| 1807 | 1554 | ||
| 1808 | --- | ||
| 1809 | *** Reduced blinking while completing the next completions set. | 1555 | *** Reduced blinking while completing the next completions set. |
| 1810 | Icomplete doesn't hide the hint with the previously computed | 1556 | Icomplete doesn't hide the hint with the previously computed |
| 1811 | completions anymore when compute delay is in effect, or the previous | 1557 | completions anymore when compute delay is in effect, or the previous |
| 1812 | computation has been aborted by input. Instead it shows the previous | 1558 | computation has been aborted by input. Instead it shows the previous |
| 1813 | completions until the new ones are ready. | 1559 | completions until the new ones are ready. |
| 1814 | 1560 | ||
| 1815 | --- | ||
| 1816 | *** Change in meaning of 'icomplete-show-matches-on-no-input'. | 1561 | *** Change in meaning of 'icomplete-show-matches-on-no-input'. |
| 1817 | Previously, choosing a different completion with commands like 'C-.' | 1562 | Previously, choosing a different completion with commands like 'C-.' |
| 1818 | and then hitting 'RET' would choose the default completion. Doing this | 1563 | and then hitting 'RET' would choose the default completion. Doing this |
| @@ -1822,7 +1567,6 @@ with initial input as the default directory. | |||
| 1822 | 1567 | ||
| 1823 | ** Windmove | 1568 | ** Windmove |
| 1824 | 1569 | ||
| 1825 | +++ | ||
| 1826 | *** New user options to customize windmove keybindings. | 1570 | *** New user options to customize windmove keybindings. |
| 1827 | These options include 'windmove-default-keybindings', | 1571 | These options include 'windmove-default-keybindings', |
| 1828 | 'windmove-display-default-keybindings', | 1572 | 'windmove-display-default-keybindings', |
| @@ -1832,25 +1576,20 @@ Also new mode 'windmove-mode' enables the customized keybindings. | |||
| 1832 | 1576 | ||
| 1833 | ** Occur mode | 1577 | ** Occur mode |
| 1834 | 1578 | ||
| 1835 | --- | ||
| 1836 | *** New bindings in 'occur-mode'. | 1579 | *** New bindings in 'occur-mode'. |
| 1837 | The command 'next-error-no-select' is now bound to 'n' and | 1580 | The command 'next-error-no-select' is now bound to 'n' and |
| 1838 | 'previous-error-no-select' is bound to 'p'. | 1581 | 'previous-error-no-select' is bound to 'p'. |
| 1839 | 1582 | ||
| 1840 | --- | ||
| 1841 | *** New command 'recenter-current-error'. | 1583 | *** New command 'recenter-current-error'. |
| 1842 | It is bound to 'l' in Occur or compilation buffers, and recenters the | 1584 | It is bound to 'l' in Occur or compilation buffers, and recenters the |
| 1843 | current displayed occurrence/error. | 1585 | current displayed occurrence/error. |
| 1844 | 1586 | ||
| 1845 | --- | ||
| 1846 | *** Matches in target buffers are now highlighted as in 'compilation-mode'. | 1587 | *** Matches in target buffers are now highlighted as in 'compilation-mode'. |
| 1847 | The method of highlighting is specified by the user options | 1588 | The method of highlighting is specified by the user options |
| 1848 | 'next-error-highlight' and 'next-error-highlight-no-select'. | 1589 | 'next-error-highlight' and 'next-error-highlight-no-select'. |
| 1849 | 1590 | ||
| 1850 | --- | ||
| 1851 | *** A fringe arrow in the "*Occur*" buffer indicates the selected match. | 1591 | *** A fringe arrow in the "*Occur*" buffer indicates the selected match. |
| 1852 | 1592 | ||
| 1853 | --- | ||
| 1854 | *** Occur mode may use a different type for 'occur-target' property values. | 1593 | *** Occur mode may use a different type for 'occur-target' property values. |
| 1855 | The value was previously always a marker set to the start of the first | 1594 | The value was previously always a marker set to the start of the first |
| 1856 | match on the line but can now also be a list of '(BEGIN . END)' pairs | 1595 | match on the line but can now also be a list of '(BEGIN . END)' pairs |
| @@ -1861,10 +1600,8 @@ work as before. | |||
| 1861 | 1600 | ||
| 1862 | ** Emacs Lisp mode | 1601 | ** Emacs Lisp mode |
| 1863 | 1602 | ||
| 1864 | --- | ||
| 1865 | *** The mode-line now indicates whether we're using lexical or dynamic scoping. | 1603 | *** The mode-line now indicates whether we're using lexical or dynamic scoping. |
| 1866 | 1604 | ||
| 1867 | +++ | ||
| 1868 | *** A space between an open paren and a symbol changes the indentation rule. | 1605 | *** A space between an open paren and a symbol changes the indentation rule. |
| 1869 | The presence of a space between an open paren and a symbol now is | 1606 | The presence of a space between an open paren and a symbol now is |
| 1870 | taken as a statement by the programmer that this should be indented | 1607 | taken as a statement by the programmer that this should be indented |
| @@ -1876,37 +1613,31 @@ as a data list rather than as a piece of code. | |||
| 1876 | The mode provides refined highlighting of built-in functions, types, | 1613 | The mode provides refined highlighting of built-in functions, types, |
| 1877 | and variables. | 1614 | and variables. |
| 1878 | 1615 | ||
| 1879 | --- | ||
| 1880 | *** Lisp mode now uses 'common-lisp-indent-function'. | 1616 | *** Lisp mode now uses 'common-lisp-indent-function'. |
| 1881 | To revert to the previous behavior, | 1617 | To revert to the previous behavior, |
| 1882 | '(setq lisp-indent-function 'lisp-indent-function)' from 'lisp-mode-hook'. | 1618 | '(setq lisp-indent-function 'lisp-indent-function)' from 'lisp-mode-hook'. |
| 1883 | 1619 | ||
| 1884 | ** Change Logs and VC | 1620 | ** Change Logs and VC |
| 1885 | 1621 | ||
| 1886 | +++ | ||
| 1887 | *** 'vc-revert-show-diff' now has a third possible value: 'kill'. | 1622 | *** 'vc-revert-show-diff' now has a third possible value: 'kill'. |
| 1888 | If this user option is 'kill', then the diff buffer will be killed | 1623 | If this user option is 'kill', then the diff buffer will be killed |
| 1889 | after the 'vc-revert' action instead of buried. | 1624 | after the 'vc-revert' action instead of buried. |
| 1890 | 1625 | ||
| 1891 | --- | ||
| 1892 | *** More VC commands can be used from non-file buffers. | 1626 | *** More VC commands can be used from non-file buffers. |
| 1893 | The relevant commands are those that don't change the VC state. | 1627 | The relevant commands are those that don't change the VC state. |
| 1894 | The non-file buffers which can use VC commands are those that have | 1628 | The non-file buffers which can use VC commands are those that have |
| 1895 | their 'default-directory' under VC. | 1629 | their 'default-directory' under VC. |
| 1896 | 1630 | ||
| 1897 | --- | ||
| 1898 | *** New face 'log-view-commit-body'. | 1631 | *** New face 'log-view-commit-body'. |
| 1899 | This is used when expanding commit messages from 'vc-print-root-log' | 1632 | This is used when expanding commit messages from 'vc-print-root-log' |
| 1900 | and similar commands. | 1633 | and similar commands. |
| 1901 | 1634 | ||
| 1902 | --- | ||
| 1903 | *** New faces for 'vc-dir' buffers. | 1635 | *** New faces for 'vc-dir' buffers. |
| 1904 | Those are: 'vc-dir-header', 'vc-dir-header-value', 'vc-dir-directory', | 1636 | Those are: 'vc-dir-header', 'vc-dir-header-value', 'vc-dir-directory', |
| 1905 | 'vc-dir-file', 'vc-dir-mark-indicator', 'vc-dir-status-warning', | 1637 | 'vc-dir-file', 'vc-dir-mark-indicator', 'vc-dir-status-warning', |
| 1906 | 'vc-dir-status-edited', 'vc-dir-status-up-to-date', | 1638 | 'vc-dir-status-edited', 'vc-dir-status-up-to-date', |
| 1907 | 'vc-dir-status-ignored'. | 1639 | 'vc-dir-status-ignored'. |
| 1908 | 1640 | ||
| 1909 | --- | ||
| 1910 | *** The responsible VC backend is now the most specific one. | 1641 | *** The responsible VC backend is now the most specific one. |
| 1911 | 'vc-responsible-backend' loops over the backends in | 1642 | 'vc-responsible-backend' loops over the backends in |
| 1912 | 'vc-handled-backends' to determine which backend is responsible for a | 1643 | 'vc-handled-backends' to determine which backend is responsible for a |
| @@ -1914,41 +1645,32 @@ specific (unregistered) file. Previously, the first matching backend | |||
| 1914 | was chosen, but now the one with the most specific path is chosen (in | 1645 | was chosen, but now the one with the most specific path is chosen (in |
| 1915 | case there's a directory handled by one backend inside another). | 1646 | case there's a directory handled by one backend inside another). |
| 1916 | 1647 | ||
| 1917 | --- | ||
| 1918 | *** New command 'vc-dir-root' uses the root directory without asking. | 1648 | *** New command 'vc-dir-root' uses the root directory without asking. |
| 1919 | 1649 | ||
| 1920 | --- | ||
| 1921 | *** New commands 'vc-dir-mark-registered-files' (bound to '* r') and | 1650 | *** New commands 'vc-dir-mark-registered-files' (bound to '* r') and |
| 1922 | 'vc-dir-mark-unregistered-files'. | 1651 | 'vc-dir-mark-unregistered-files'. |
| 1923 | 1652 | ||
| 1924 | --- | ||
| 1925 | *** Support for bookmark.el. | 1653 | *** Support for bookmark.el. |
| 1926 | Bookmark locations can refer to VC directory buffers. | 1654 | Bookmark locations can refer to VC directory buffers. |
| 1927 | 1655 | ||
| 1928 | --- | ||
| 1929 | *** New user option 'vc-hg-create-bookmark'. | 1656 | *** New user option 'vc-hg-create-bookmark'. |
| 1930 | It controls whether a bookmark or branch will be created when you | 1657 | It controls whether a bookmark or branch will be created when you |
| 1931 | invoke 'C-u C-x v s' ('vc-create-tag'). | 1658 | invoke 'C-u C-x v s' ('vc-create-tag'). |
| 1932 | 1659 | ||
| 1933 | --- | ||
| 1934 | *** 'vc-hg' now uses 'hg summary' to populate extra 'vc-dir' headers. | 1660 | *** 'vc-hg' now uses 'hg summary' to populate extra 'vc-dir' headers. |
| 1935 | 1661 | ||
| 1936 | --- | ||
| 1937 | *** New user option 'vc-git-revision-complete-only-branches'. | 1662 | *** New user option 'vc-git-revision-complete-only-branches'. |
| 1938 | If non-nil, only branches and remotes are considered when doing | 1663 | If non-nil, only branches and remotes are considered when doing |
| 1939 | completion over Git branch names. The default is nil, which causes | 1664 | completion over Git branch names. The default is nil, which causes |
| 1940 | tags to be considered as well. | 1665 | tags to be considered as well. |
| 1941 | 1666 | ||
| 1942 | --- | ||
| 1943 | *** New user option 'vc-git-log-switches'. | 1667 | *** New user option 'vc-git-log-switches'. |
| 1944 | String or list of strings specifying switches for Git log under VC. | 1668 | String or list of strings specifying switches for Git log under VC. |
| 1945 | 1669 | ||
| 1946 | --- | ||
| 1947 | *** Command 'vc-switch-backend' is now obsolete. | 1670 | *** Command 'vc-switch-backend' is now obsolete. |
| 1948 | If you are still using it with any regularity, please file a bug | 1671 | If you are still using it with any regularity, please file a bug |
| 1949 | report with some details. | 1672 | report with some details. |
| 1950 | 1673 | ||
| 1951 | --- | ||
| 1952 | *** New variable 'vc-git-use-literal-pathspecs'. | 1674 | *** New variable 'vc-git-use-literal-pathspecs'. |
| 1953 | The Git backend's function now treat all file names "literally", where | 1675 | The Git backend's function now treat all file names "literally", where |
| 1954 | some of them previously could interpret file names (pathspecs) as | 1676 | some of them previously could interpret file names (pathspecs) as |
| @@ -1957,35 +1679,28 @@ the aforementioned variable to nil locally to avoid this. | |||
| 1957 | 1679 | ||
| 1958 | ** Gnus | 1680 | ** Gnus |
| 1959 | 1681 | ||
| 1960 | +++ | ||
| 1961 | *** New user option 'gnus-topic-display-predicate'. | 1682 | *** New user option 'gnus-topic-display-predicate'. |
| 1962 | This can be used to inhibit the display of some topics completely. | 1683 | This can be used to inhibit the display of some topics completely. |
| 1963 | 1684 | ||
| 1964 | +++ | ||
| 1965 | *** nnimap now supports the oauth2.el library. | 1685 | *** nnimap now supports the oauth2.el library. |
| 1966 | 1686 | ||
| 1967 | +++ | ||
| 1968 | *** New Summary buffer sort options for extra headers. | 1687 | *** New Summary buffer sort options for extra headers. |
| 1969 | The extra header sort option ('C-c C-s C-x') prompts for a header | 1688 | The extra header sort option ('C-c C-s C-x') prompts for a header |
| 1970 | and fails if no sort function has been defined. Sorting by | 1689 | and fails if no sort function has been defined. Sorting by |
| 1971 | Newsgroups ('C-c C-s C-u') has been pre-defined. | 1690 | Newsgroups ('C-c C-s C-u') has been pre-defined. |
| 1972 | 1691 | ||
| 1973 | +++ | ||
| 1974 | *** The '#' command in the Group and Summary buffer now toggles, | 1692 | *** The '#' command in the Group and Summary buffer now toggles, |
| 1975 | instead of sets, the process mark. | 1693 | instead of sets, the process mark. |
| 1976 | 1694 | ||
| 1977 | +++ | ||
| 1978 | *** New user option 'gnus-process-mark-toggle'. | 1695 | *** New user option 'gnus-process-mark-toggle'. |
| 1979 | If non-nil (the default), the '#' command in the Group and Summary | 1696 | If non-nil (the default), the '#' command in the Group and Summary |
| 1980 | buffers will toggle, instead of set, the process mark. | 1697 | buffers will toggle, instead of set, the process mark. |
| 1981 | 1698 | ||
| 1982 | +++ | ||
| 1983 | *** New user option 'gnus-registry-register-all'. | 1699 | *** New user option 'gnus-registry-register-all'. |
| 1984 | If non-nil (the default), create registry entries for all messages. | 1700 | If non-nil (the default), create registry entries for all messages. |
| 1985 | If nil, don't automatically create entries, they must be created | 1701 | If nil, don't automatically create entries, they must be created |
| 1986 | manually. | 1702 | manually. |
| 1987 | 1703 | ||
| 1988 | +++ | ||
| 1989 | *** New user options to customise the summary line specs "%[" and "%]". | 1704 | *** New user options to customise the summary line specs "%[" and "%]". |
| 1990 | Four new options introduced in customisation group | 1705 | Four new options introduced in customisation group |
| 1991 | 'gnus-summary-format'. These are 'gnus-sum-opening-bracket', | 1706 | 'gnus-summary-format'. These are 'gnus-sum-opening-bracket', |
| @@ -1998,29 +1713,24 @@ the value of 'gnus-sum-opening-bracket', but can also be | |||
| 1998 | normally display the value of 'gnus-sum-closing-bracket', but can also | 1713 | normally display the value of 'gnus-sum-closing-bracket', but can also |
| 1999 | be 'gnus-sum-closing-bracket-adopted' for the adopted articles. | 1714 | be 'gnus-sum-closing-bracket-adopted' for the adopted articles. |
| 2000 | 1715 | ||
| 2001 | +++ | ||
| 2002 | *** New user option 'gnus-paging-select-next'. | 1716 | *** New user option 'gnus-paging-select-next'. |
| 2003 | This controls what happens when using commands like 'SPC' and 'DEL' to | 1717 | This controls what happens when using commands like 'SPC' and 'DEL' to |
| 2004 | page the current article. If non-nil (the default), go to the | 1718 | page the current article. If non-nil (the default), go to the |
| 2005 | next/prev article, but if nil, do nothing at the end/start of the article. | 1719 | next/prev article, but if nil, do nothing at the end/start of the article. |
| 2006 | 1720 | ||
| 2007 | +++ | ||
| 2008 | *** New gnus-search library. | 1721 | *** New gnus-search library. |
| 2009 | A new unified search syntax which can be used across multiple | 1722 | A new unified search syntax which can be used across multiple |
| 2010 | supported search engines. Set 'gnus-search-use-parsed-queries' to | 1723 | supported search engines. Set 'gnus-search-use-parsed-queries' to |
| 2011 | non-nil to enable. | 1724 | non-nil to enable. |
| 2012 | 1725 | ||
| 2013 | +++ | ||
| 2014 | *** New value for user option 'smiley-style'. | 1726 | *** New value for user option 'smiley-style'. |
| 2015 | Smileys can now be rendered with emojis instead of small images when | 1727 | Smileys can now be rendered with emojis instead of small images when |
| 2016 | using the new 'emoji' value in 'smiley-style'. | 1728 | using the new 'emoji' value in 'smiley-style'. |
| 2017 | 1729 | ||
| 2018 | +++ | ||
| 2019 | *** New user option 'gnus-agent-eagerly-store-articles'. | 1730 | *** New user option 'gnus-agent-eagerly-store-articles'. |
| 2020 | If non-nil (which is the default), the Gnus Agent will store all read | 1731 | If non-nil (which is the default), the Gnus Agent will store all read |
| 2021 | articles in the Agent cache. | 1732 | articles in the Agent cache. |
| 2022 | 1733 | ||
| 2023 | +++ | ||
| 2024 | *** New user option 'gnus-global-groups'. | 1734 | *** New user option 'gnus-global-groups'. |
| 2025 | Gnus handles private groups differently from public (i.e., NNTP-like) | 1735 | Gnus handles private groups differently from public (i.e., NNTP-like) |
| 2026 | groups. Most importantly, Gnus doesn't download external images from | 1736 | groups. Most importantly, Gnus doesn't download external images from |
| @@ -2028,17 +1738,14 @@ mail-like groups. This can be overridden by putting group names in | |||
| 2028 | 'gnus-global-groups': Any group present in that list will be treated | 1738 | 'gnus-global-groups': Any group present in that list will be treated |
| 2029 | like a public group. | 1739 | like a public group. |
| 2030 | 1740 | ||
| 2031 | +++ | ||
| 2032 | *** New scoring types for the Date header. | 1741 | *** New scoring types for the Date header. |
| 2033 | You can now score based on the relative age of an article with the new | 1742 | You can now score based on the relative age of an article with the new |
| 2034 | '<' and '>' date scoring types. | 1743 | '<' and '>' date scoring types. |
| 2035 | 1744 | ||
| 2036 | +++ | ||
| 2037 | *** User-defined scoring is now possible. | 1745 | *** User-defined scoring is now possible. |
| 2038 | The new type is 'score-fn'. More information in the Gnus manual node | 1746 | The new type is 'score-fn'. More information in the Gnus manual node |
| 2039 | "(gnus) Score File Format". | 1747 | "(gnus) Score File Format". |
| 2040 | 1748 | ||
| 2041 | +++ | ||
| 2042 | *** New backend 'nnselect'. | 1749 | *** New backend 'nnselect'. |
| 2043 | The newly added 'nnselect' backend allows creating groups from an | 1750 | The newly added 'nnselect' backend allows creating groups from an |
| 2044 | arbitrary list of articles that may come from multiple groups and | 1751 | arbitrary list of articles that may come from multiple groups and |
| @@ -2061,35 +1768,29 @@ has been removed; its functionality is now available directly in the | |||
| 2061 | 'gnus-refer-thread-use-nnir' has been renamed to | 1768 | 'gnus-refer-thread-use-nnir' has been renamed to |
| 2062 | 'gnus-refer-thread-use-search'. | 1769 | 'gnus-refer-thread-use-search'. |
| 2063 | 1770 | ||
| 2064 | +++ | ||
| 2065 | *** New user option 'gnus-dbus-close-on-sleep'. | 1771 | *** New user option 'gnus-dbus-close-on-sleep'. |
| 2066 | On systems with D-Bus support, it is now possible to register a signal | 1772 | On systems with D-Bus support, it is now possible to register a signal |
| 2067 | to close all Gnus servers before the system sleeps. | 1773 | to close all Gnus servers before the system sleeps. |
| 2068 | 1774 | ||
| 2069 | +++ | ||
| 2070 | *** The key binding of 'gnus-summary-search-article-forward' has changed. | 1775 | *** The key binding of 'gnus-summary-search-article-forward' has changed. |
| 2071 | This command was previously on 'M-s' and shadowed the global 'M-s' | 1776 | This command was previously on 'M-s' and shadowed the global 'M-s' |
| 2072 | search prefix. The command has now been moved to 'M-s M-s'. (For | 1777 | search prefix. The command has now been moved to 'M-s M-s'. (For |
| 2073 | consistency, the 'M-s M-r' key binding has been added for the | 1778 | consistency, the 'M-s M-r' key binding has been added for the |
| 2074 | 'gnus-summary-search-article-backward' command.) | 1779 | 'gnus-summary-search-article-backward' command.) |
| 2075 | 1780 | ||
| 2076 | --- | ||
| 2077 | *** The value for "all" in the 'large-newsgroup-initial' group parameter has changed. | 1781 | *** The value for "all" in the 'large-newsgroup-initial' group parameter has changed. |
| 2078 | It was previously nil, which didn't work, because nil is | 1782 | It was previously nil, which didn't work, because nil is |
| 2079 | indistinguishable from not being present. The new value for "all" is | 1783 | indistinguishable from not being present. The new value for "all" is |
| 2080 | the symbol 'all'. | 1784 | the symbol 'all'. |
| 2081 | 1785 | ||
| 2082 | +++ | ||
| 2083 | *** The name of dependent Gnus sessions has changed from "slave" to "child". | 1786 | *** The name of dependent Gnus sessions has changed from "slave" to "child". |
| 2084 | The names of the commands 'gnus-slave', 'gnus-slave-no-server' and | 1787 | The names of the commands 'gnus-slave', 'gnus-slave-no-server' and |
| 2085 | 'gnus-slave-unplugged' have changed to 'gnus-child', | 1788 | 'gnus-slave-unplugged' have changed to 'gnus-child', |
| 2086 | 'gnus-child-no-server' and 'gnus-child-unplugged' respectively. | 1789 | 'gnus-child-no-server' and 'gnus-child-unplugged' respectively. |
| 2087 | 1790 | ||
| 2088 | +++ | ||
| 2089 | *** The 'W Q' summary mode command now takes a numerical prefix to | 1791 | *** The 'W Q' summary mode command now takes a numerical prefix to |
| 2090 | allow adjusting the fill width. | 1792 | allow adjusting the fill width. |
| 2091 | 1793 | ||
| 2092 | +++ | ||
| 2093 | *** New variable 'mm-inline-font-lock'. | 1794 | *** New variable 'mm-inline-font-lock'. |
| 2094 | This variable is supposed to be bound by callers to determine whether | 1795 | This variable is supposed to be bound by callers to determine whether |
| 2095 | inline MIME parts (that support it) are supposed to be font-locked or | 1796 | inline MIME parts (that support it) are supposed to be font-locked or |
| @@ -2097,23 +1798,19 @@ not. | |||
| 2097 | 1798 | ||
| 2098 | ** Message | 1799 | ** Message |
| 2099 | 1800 | ||
| 2100 | --- | ||
| 2101 | *** Respect 'message-forward-ignored-headers' more. | 1801 | *** Respect 'message-forward-ignored-headers' more. |
| 2102 | Previously, this user option would not be consulted if | 1802 | Previously, this user option would not be consulted if |
| 2103 | 'message-forward-show-mml' was nil and forwarding as MIME. | 1803 | 'message-forward-show-mml' was nil and forwarding as MIME. |
| 2104 | 1804 | ||
| 2105 | +++ | ||
| 2106 | *** New user option 'message-forward-included-mime-headers'. | 1805 | *** New user option 'message-forward-included-mime-headers'. |
| 2107 | This is used when forwarding messages as MIME, but not using MML. | 1806 | This is used when forwarding messages as MIME, but not using MML. |
| 2108 | 1807 | ||
| 2109 | +++ | ||
| 2110 | *** Message now supports the OpenPGP header. | 1808 | *** Message now supports the OpenPGP header. |
| 2111 | To generate these headers, add the new function | 1809 | To generate these headers, add the new function |
| 2112 | 'message-add-openpgp-header' to 'message-send-hook'. The header will | 1810 | 'message-add-openpgp-header' to 'message-send-hook'. The header will |
| 2113 | be generated according to the new 'message-openpgp-header' user | 1811 | be generated according to the new 'message-openpgp-header' user |
| 2114 | option. | 1812 | option. |
| 2115 | 1813 | ||
| 2116 | --- | ||
| 2117 | *** A change to how "Mail-Copies-To: never" is handled. | 1814 | *** A change to how "Mail-Copies-To: never" is handled. |
| 2118 | If a user has specified "Mail-Copies-To: never", and Message was asked | 1815 | If a user has specified "Mail-Copies-To: never", and Message was asked |
| 2119 | to do a "wide reply", some other arbitrary recipient would end up in | 1816 | to do a "wide reply", some other arbitrary recipient would end up in |
| @@ -2123,7 +1820,6 @@ you're responding to a specific person in particular. This has been | |||
| 2123 | changed so that all the recipients are put in the "To" header in these | 1820 | changed so that all the recipients are put in the "To" header in these |
| 2124 | instances. | 1821 | instances. |
| 2125 | 1822 | ||
| 2126 | +++ | ||
| 2127 | *** New command to start Emacs in Message mode to send an email. | 1823 | *** New command to start Emacs in Message mode to send an email. |
| 2128 | Emacs can be defined as a handler for the "x-scheme-handler/mailto" | 1824 | Emacs can be defined as a handler for the "x-scheme-handler/mailto" |
| 2129 | MIME type with the following command: "emacs -f message-mailto %u". | 1825 | MIME type with the following command: "emacs -f message-mailto %u". |
| @@ -2136,7 +1832,6 @@ Emacs with headers filled out according to the link, e.g. | |||
| 2136 | emacsclient, use "emacsclient -e '(message-mailto "%u")'" | 1832 | emacsclient, use "emacsclient -e '(message-mailto "%u")'" |
| 2137 | or "emacsclient-mail.desktop". | 1833 | or "emacsclient-mail.desktop". |
| 2138 | 1834 | ||
| 2139 | --- | ||
| 2140 | *** Change to default value of 'message-draft-headers' user option. | 1835 | *** Change to default value of 'message-draft-headers' user option. |
| 2141 | The 'Date' symbol has been removed from the default value, meaning that | 1836 | The 'Date' symbol has been removed from the default value, meaning that |
| 2142 | draft or delayed messages will get a date reflecting when the message | 1837 | draft or delayed messages will get a date reflecting when the message |
| @@ -2144,7 +1839,6 @@ was sent. To restore the original behavior of dating a message | |||
| 2144 | from when it is first saved or delayed, add the symbol 'Date' back to | 1839 | from when it is first saved or delayed, add the symbol 'Date' back to |
| 2145 | this user option. | 1840 | this user option. |
| 2146 | 1841 | ||
| 2147 | +++ | ||
| 2148 | *** New command to take screenshots. | 1842 | *** New command to take screenshots. |
| 2149 | In Message mode buffers, the 'C-c C-p' ('message-insert-screenshot') | 1843 | In Message mode buffers, the 'C-c C-p' ('message-insert-screenshot') |
| 2150 | command has been added. It depends on using an external program to | 1844 | command has been added. It depends on using an external program to |
| @@ -2152,30 +1846,25 @@ take the actual screenshot, and defaults to "ImageMagick import". | |||
| 2152 | 1846 | ||
| 2153 | ** Smtpmail | 1847 | ** Smtpmail |
| 2154 | 1848 | ||
| 2155 | +++ | ||
| 2156 | *** smtpmail now supports using the oauth2.el library. | 1849 | *** smtpmail now supports using the oauth2.el library. |
| 2157 | 1850 | ||
| 2158 | +++ | ||
| 2159 | *** New user option 'smtpmail-store-queue-variables'. | 1851 | *** New user option 'smtpmail-store-queue-variables'. |
| 2160 | If non-nil, SMTP variables will be stored together with the queued | 1852 | If non-nil, SMTP variables will be stored together with the queued |
| 2161 | messages, and will then be used when sending with command | 1853 | messages, and will then be used when sending with command |
| 2162 | 'smtpmail-send-queued-mail'. | 1854 | 'smtpmail-send-queued-mail'. |
| 2163 | 1855 | ||
| 2164 | +++ | ||
| 2165 | *** Allow direct selection of smtp authentication mechanism. | 1856 | *** Allow direct selection of smtp authentication mechanism. |
| 2166 | A server entry retrieved by auth-source can request a desired smtp | 1857 | A server entry retrieved by auth-source can request a desired smtp |
| 2167 | authentication mechanism by setting a value for the key 'smtp-auth'. | 1858 | authentication mechanism by setting a value for the key 'smtp-auth'. |
| 2168 | 1859 | ||
| 2169 | ** ElDoc | 1860 | ** ElDoc |
| 2170 | 1861 | ||
| 2171 | +++ | ||
| 2172 | *** New user option 'eldoc-echo-area-display-truncation-message'. | 1862 | *** New user option 'eldoc-echo-area-display-truncation-message'. |
| 2173 | If non-nil (the default), eldoc will display a message saying | 1863 | If non-nil (the default), eldoc will display a message saying |
| 2174 | something like "(Documentation truncated. Use `M-x eldoc-doc-buffer' | 1864 | something like "(Documentation truncated. Use `M-x eldoc-doc-buffer' |
| 2175 | to see rest)" when a message has been truncated. If nil, truncated | 1865 | to see rest)" when a message has been truncated. If nil, truncated |
| 2176 | messages will be marked with just "..." at the end. | 1866 | messages will be marked with just "..." at the end. |
| 2177 | 1867 | ||
| 2178 | +++ | ||
| 2179 | *** New hook 'eldoc-documentation-functions'. | 1868 | *** New hook 'eldoc-documentation-functions'. |
| 2180 | This hook is intended to be used for registering doc string functions. | 1869 | This hook is intended to be used for registering doc string functions. |
| 2181 | These functions don't need to produce the doc string right away, they | 1870 | These functions don't need to produce the doc string right away, they |
| @@ -2190,7 +1879,6 @@ functions receive the doc string composed according to | |||
| 2190 | the user. Examples of such functions would use the echo area, a | 1879 | the user. Examples of such functions would use the echo area, a |
| 2191 | separate buffer, or a tooltip. | 1880 | separate buffer, or a tooltip. |
| 2192 | 1881 | ||
| 2193 | +++ | ||
| 2194 | *** New user option 'eldoc-documentation-strategy'. | 1882 | *** New user option 'eldoc-documentation-strategy'. |
| 2195 | The built-in choices available for this user option let users compose | 1883 | The built-in choices available for this user option let users compose |
| 2196 | the results of 'eldoc-documentation-functions' in various ways, even | 1884 | the results of 'eldoc-documentation-functions' in various ways, even |
| @@ -2206,33 +1894,27 @@ it when producing a doc string. | |||
| 2206 | 1894 | ||
| 2207 | ** Tramp | 1895 | ** Tramp |
| 2208 | 1896 | ||
| 2209 | +++ | ||
| 2210 | *** New connection method "mtp". | 1897 | *** New connection method "mtp". |
| 2211 | It allows accessing media devices like cell phones, tablets or | 1898 | It allows accessing media devices like cell phones, tablets or |
| 2212 | cameras. | 1899 | cameras. |
| 2213 | 1900 | ||
| 2214 | +++ | ||
| 2215 | *** New connection method "sshfs". | 1901 | *** New connection method "sshfs". |
| 2216 | It allows accessing remote files via a file system mounted with | 1902 | It allows accessing remote files via a file system mounted with |
| 2217 | 'sshfs'. | 1903 | 'sshfs'. |
| 2218 | 1904 | ||
| 2219 | +++ | ||
| 2220 | *** Tramp supports SSH authentication via a hardware security key now. | 1905 | *** Tramp supports SSH authentication via a hardware security key now. |
| 2221 | This requires at least OpenSSH 8.2, and a FIDO U2F compatible | 1906 | This requires at least OpenSSH 8.2, and a FIDO U2F compatible |
| 2222 | security key, like yubikey, solokey, or nitrokey. | 1907 | security key, like yubikey, solokey, or nitrokey. |
| 2223 | 1908 | ||
| 2224 | +++ | ||
| 2225 | *** Trashed remote files are moved to the local trash directory. | 1909 | *** Trashed remote files are moved to the local trash directory. |
| 2226 | All remote files that are trashed are moved to the local trash | 1910 | All remote files that are trashed are moved to the local trash |
| 2227 | directory, except remote encrypted files, which are always deleted. | 1911 | directory, except remote encrypted files, which are always deleted. |
| 2228 | 1912 | ||
| 2229 | +++ | ||
| 2230 | *** New command 'tramp-crypt-add-directory'. | 1913 | *** New command 'tramp-crypt-add-directory'. |
| 2231 | This command marks a remote directory to contain only encrypted files. | 1914 | This command marks a remote directory to contain only encrypted files. |
| 2232 | See the "(tramp) Keeping files encrypted" node of the Tramp manual for | 1915 | See the "(tramp) Keeping files encrypted" node of the Tramp manual for |
| 2233 | details. This feature is experimental. | 1916 | details. This feature is experimental. |
| 2234 | 1917 | ||
| 2235 | +++ | ||
| 2236 | *** Support of direct asynchronous process invocation. | 1918 | *** Support of direct asynchronous process invocation. |
| 2237 | When Tramp connection property "direct-async-process" is set to | 1919 | When Tramp connection property "direct-async-process" is set to |
| 2238 | non-nil for a given connection, 'make-process' and 'start-file-process' | 1920 | non-nil for a given connection, 'make-process' and 'start-file-process' |
| @@ -2242,24 +1924,20 @@ performance of asynchronous remote processes" node of the Tramp manual | |||
| 2242 | for details, and also for a discussion or restrictions. This feature | 1924 | for details, and also for a discussion or restrictions. This feature |
| 2243 | is experimental. | 1925 | is experimental. |
| 2244 | 1926 | ||
| 2245 | +++ | ||
| 2246 | *** New user option 'tramp-debug-to-file'. | 1927 | *** New user option 'tramp-debug-to-file'. |
| 2247 | When non-nil, this user option instructs Tramp to mirror the debug | 1928 | When non-nil, this user option instructs Tramp to mirror the debug |
| 2248 | buffer to a file under the "/tmp/" directory. This is useful, if (in | 1929 | buffer to a file under the "/tmp/" directory. This is useful, if (in |
| 2249 | rare cases) Tramp blocks Emacs, and we need further debug information. | 1930 | rare cases) Tramp blocks Emacs, and we need further debug information. |
| 2250 | 1931 | ||
| 2251 | +++ | ||
| 2252 | *** Tramp supports lock files now. | 1932 | *** Tramp supports lock files now. |
| 2253 | In order to deactivate this, set user option | 1933 | In order to deactivate this, set user option |
| 2254 | 'remote-file-name-inhibit-locks' to t. | 1934 | 'remote-file-name-inhibit-locks' to t. |
| 2255 | 1935 | ||
| 2256 | +++ | ||
| 2257 | *** Writing sensitive data locally requires confirmation. | 1936 | *** Writing sensitive data locally requires confirmation. |
| 2258 | Writing auto-save, backup or lock files to the local temporary | 1937 | Writing auto-save, backup or lock files to the local temporary |
| 2259 | directory must be confirmed. In order to suppress this confirmation, | 1938 | directory must be confirmed. In order to suppress this confirmation, |
| 2260 | set user option 'tramp-allow-unsafe-temporary-files' to t. | 1939 | set user option 'tramp-allow-unsafe-temporary-files' to t. |
| 2261 | 1940 | ||
| 2262 | +++ | ||
| 2263 | *** 'make-directory' of a remote directory honors the default file modes. | 1941 | *** 'make-directory' of a remote directory honors the default file modes. |
| 2264 | 1942 | ||
| 2265 | ** GDB/MI | 1943 | ** GDB/MI |
| @@ -2268,7 +1946,6 @@ set user option 'tramp-allow-unsafe-temporary-files' to t. | |||
| 2268 | If non-nil, apply a register filter based on | 1946 | If non-nil, apply a register filter based on |
| 2269 | 'gdb-registers-filter-pattern-list'. | 1947 | 'gdb-registers-filter-pattern-list'. |
| 2270 | 1948 | ||
| 2271 | +++ | ||
| 2272 | *** gdb-mi can now save and restore window configurations. | 1949 | *** gdb-mi can now save and restore window configurations. |
| 2273 | Use 'gdb-save-window-configuration' to save window configuration to a | 1950 | Use 'gdb-save-window-configuration' to save window configuration to a |
| 2274 | file and 'gdb-load-window-configuration' to load from a file. These | 1951 | file and 'gdb-load-window-configuration' to load from a file. These |
| @@ -2276,31 +1953,26 @@ commands can also be accessed through the menu bar under "Gud => | |||
| 2276 | GDB-Windows". 'gdb-default-window-configuration-file', when non-nil, | 1953 | GDB-Windows". 'gdb-default-window-configuration-file', when non-nil, |
| 2277 | is loaded when GDB starts up. | 1954 | is loaded when GDB starts up. |
| 2278 | 1955 | ||
| 2279 | +++ | ||
| 2280 | *** gdb-mi can now restore window configuration after quitting. | 1956 | *** gdb-mi can now restore window configuration after quitting. |
| 2281 | Set 'gdb-restore-window-configuration-after-quit' to non-nil and Emacs | 1957 | Set 'gdb-restore-window-configuration-after-quit' to non-nil and Emacs |
| 2282 | will remember the window configuration before GDB started and restore | 1958 | will remember the window configuration before GDB started and restore |
| 2283 | it after GDB quits. A toggle button is also provided under "Gud => | 1959 | it after GDB quits. A toggle button is also provided under "Gud => |
| 2284 | GDB-Windows" menu item. | 1960 | GDB-Windows" menu item. |
| 2285 | 1961 | ||
| 2286 | +++ | ||
| 2287 | *** gdb-mi now has a better logic for displaying source buffers. | 1962 | *** gdb-mi now has a better logic for displaying source buffers. |
| 2288 | Now GDB only uses one source window to display source file by default. | 1963 | Now GDB only uses one source window to display source file by default. |
| 2289 | Customize 'gdb-max-source-window-count' to use more than one window. | 1964 | Customize 'gdb-max-source-window-count' to use more than one window. |
| 2290 | Control source file display by 'gdb-display-source-buffer-action'. | 1965 | Control source file display by 'gdb-display-source-buffer-action'. |
| 2291 | 1966 | ||
| 2292 | +++ | ||
| 2293 | *** The default value of 'gdb-mi-decode-strings' is now t. | 1967 | *** The default value of 'gdb-mi-decode-strings' is now t. |
| 2294 | This means that the default coding-system is now used to decode strings | 1968 | This means that the default coding-system is now used to decode strings |
| 2295 | and source file names from GDB. | 1969 | and source file names from GDB. |
| 2296 | 1970 | ||
| 2297 | ** Compilation mode | 1971 | ** Compilation mode |
| 2298 | 1972 | ||
| 2299 | --- | ||
| 2300 | *** New function 'ansi-color-compilation-filter'. | 1973 | *** New function 'ansi-color-compilation-filter'. |
| 2301 | This function is meant to be used in 'compilation-filter-hook'. | 1974 | This function is meant to be used in 'compilation-filter-hook'. |
| 2302 | 1975 | ||
| 2303 | --- | ||
| 2304 | *** New user option 'ansi-color-for-compilation-mode'. | 1976 | *** New user option 'ansi-color-for-compilation-mode'. |
| 2305 | This controls what 'ansi-color-compilation-filter' does. | 1977 | This controls what 'ansi-color-compilation-filter' does. |
| 2306 | 1978 | ||
| @@ -2310,7 +1982,6 @@ case-insensitive matching of messages when the old behavior is | |||
| 2310 | required, but the recommended solution is to use a correctly matching | 1982 | required, but the recommended solution is to use a correctly matching |
| 2311 | regexp instead. | 1983 | regexp instead. |
| 2312 | 1984 | ||
| 2313 | --- | ||
| 2314 | *** New user option 'compilation-search-all-directories'. | 1985 | *** New user option 'compilation-search-all-directories'. |
| 2315 | When doing parallel builds, directories and compilation errors may | 1986 | When doing parallel builds, directories and compilation errors may |
| 2316 | arrive in the "*compilation*" buffer out-of-order. If this option is | 1987 | arrive in the "*compilation*" buffer out-of-order. If this option is |
| @@ -2318,45 +1989,37 @@ non-nil (the default), Emacs will now search backwards in the buffer | |||
| 2318 | for any directory the file with errors may be in. If nil, this won't | 1989 | for any directory the file with errors may be in. If nil, this won't |
| 2319 | be done (and this restores how this previously worked). | 1990 | be done (and this restores how this previously worked). |
| 2320 | 1991 | ||
| 2321 | --- | ||
| 2322 | *** Messages from ShellCheck are now recognized. | 1992 | *** Messages from ShellCheck are now recognized. |
| 2323 | 1993 | ||
| 2324 | --- | ||
| 2325 | *** Messages from Visual Studio that mention column numbers are now recognized. | 1994 | *** Messages from Visual Studio that mention column numbers are now recognized. |
| 2326 | 1995 | ||
| 2327 | ** Hi Lock mode | 1996 | ** Hi Lock mode |
| 2328 | 1997 | ||
| 2329 | --- | ||
| 2330 | *** Matching in 'hi-lock-mode' can be case-sensitive. | 1998 | *** Matching in 'hi-lock-mode' can be case-sensitive. |
| 2331 | The matching is case-sensitive when a regexp contains upper case | 1999 | The matching is case-sensitive when a regexp contains upper case |
| 2332 | characters and 'search-upper-case' is non-nil. 'highlight-phrase' | 2000 | characters and 'search-upper-case' is non-nil. 'highlight-phrase' |
| 2333 | also uses 'search-whitespace-regexp' to substitute spaces in regexp | 2001 | also uses 'search-whitespace-regexp' to substitute spaces in regexp |
| 2334 | search. | 2002 | search. |
| 2335 | 2003 | ||
| 2336 | --- | ||
| 2337 | *** The default value of 'hi-lock-highlight-range' was enlarged. | 2004 | *** The default value of 'hi-lock-highlight-range' was enlarged. |
| 2338 | The new default value is 2000000 (2 megabytes). | 2005 | The new default value is 2000000 (2 megabytes). |
| 2339 | 2006 | ||
| 2340 | ** Whitespace mode | 2007 | ** Whitespace mode |
| 2341 | 2008 | ||
| 2342 | +++ | ||
| 2343 | *** New style 'missing-newline-at-eof'. | 2009 | *** New style 'missing-newline-at-eof'. |
| 2344 | If present in 'whitespace-style' (as it is by default), the final | 2010 | If present in 'whitespace-style' (as it is by default), the final |
| 2345 | character in the buffer will be highlighted if the buffer doesn't end | 2011 | character in the buffer will be highlighted if the buffer doesn't end |
| 2346 | with a newline. | 2012 | with a newline. |
| 2347 | 2013 | ||
| 2348 | --- | ||
| 2349 | *** The default 'whitespace-enable-predicate' predicate has changed. | 2014 | *** The default 'whitespace-enable-predicate' predicate has changed. |
| 2350 | It used to check elements in the list version of | 2015 | It used to check elements in the list version of |
| 2351 | 'whitespace-global-modes' with 'eq', but now uses 'derived-mode-p'. | 2016 | 'whitespace-global-modes' with 'eq', but now uses 'derived-mode-p'. |
| 2352 | 2017 | ||
| 2353 | ** Texinfo | 2018 | ** Texinfo |
| 2354 | 2019 | ||
| 2355 | --- | ||
| 2356 | *** New user option 'texinfo-texi2dvi-options'. | 2020 | *** New user option 'texinfo-texi2dvi-options'. |
| 2357 | This is used when invoking 'texi2dvi' from 'texinfo-tex-buffer'. | 2021 | This is used when invoking 'texi2dvi' from 'texinfo-tex-buffer'. |
| 2358 | 2022 | ||
| 2359 | --- | ||
| 2360 | *** New commands for moving in and between environments. | 2023 | *** New commands for moving in and between environments. |
| 2361 | An "environment" is something that ends with '@end'. The commands are | 2024 | An "environment" is something that ends with '@end'. The commands are |
| 2362 | 'C-c C-c C-f' (next end), 'C-c C-c C-b' (previous end), | 2025 | 'C-c C-c C-f' (next end), 'C-c C-c C-b' (previous end), |
| @@ -2366,19 +2029,16 @@ current environment. | |||
| 2366 | 2029 | ||
| 2367 | ** Rmail | 2030 | ** Rmail |
| 2368 | 2031 | ||
| 2369 | --- | ||
| 2370 | *** New user option 'rmail-re-abbrevs'. | 2032 | *** New user option 'rmail-re-abbrevs'. |
| 2371 | Its default value matches localized abbreviations of the "reply" | 2033 | Its default value matches localized abbreviations of the "reply" |
| 2372 | prefix on the Subject line in various languages. | 2034 | prefix on the Subject line in various languages. |
| 2373 | 2035 | ||
| 2374 | --- | ||
| 2375 | *** New user option 'rmail-show-message-set-modified'. | 2036 | *** New user option 'rmail-show-message-set-modified'. |
| 2376 | If set non-nil, showing an unseen message will set the Rmail buffer's | 2037 | If set non-nil, showing an unseen message will set the Rmail buffer's |
| 2377 | modified flag. The default is nil, to preserve the old behavior. | 2038 | modified flag. The default is nil, to preserve the old behavior. |
| 2378 | 2039 | ||
| 2379 | ** CC mode | 2040 | ** CC mode |
| 2380 | 2041 | ||
| 2381 | +++ | ||
| 2382 | *** Added support for Doxygen documentation style. | 2042 | *** Added support for Doxygen documentation style. |
| 2383 | 'doxygen' is now a valid 'c-doc-comment-style' which recognises all | 2043 | 'doxygen' is now a valid 'c-doc-comment-style' which recognises all |
| 2384 | comment styles supported by Doxygen (namely '///', '//!', '/** … */' | 2044 | comment styles supported by Doxygen (namely '///', '//!', '/** … */' |
| @@ -2393,7 +2053,6 @@ use 'doxygen' by default one might evaluate: | |||
| 2393 | 2053 | ||
| 2394 | or use it in a custom 'c-style'. | 2054 | or use it in a custom 'c-style'. |
| 2395 | 2055 | ||
| 2396 | +++ | ||
| 2397 | *** Added support to line up '?' and ':' of a ternary operator. | 2056 | *** Added support to line up '?' and ':' of a ternary operator. |
| 2398 | The new 'c-lineup-ternary-bodies' function can be used as a lineup | 2057 | The new 'c-lineup-ternary-bodies' function can be used as a lineup |
| 2399 | function to align question mark and colon which are part of a ternary | 2058 | function to align question mark and colon which are part of a ternary |
| @@ -2413,30 +2072,25 @@ To enable, add it to appropriate entries in 'c-offsets-alist', e.g.: | |||
| 2413 | 2072 | ||
| 2414 | ** Images | 2073 | ** Images |
| 2415 | 2074 | ||
| 2416 | --- | ||
| 2417 | *** You can explicitly specify base_uri for svg images. | 2075 | *** You can explicitly specify base_uri for svg images. |
| 2418 | ':base-uri' image property can be used to explicitly specify base_uri | 2076 | ':base-uri' image property can be used to explicitly specify base_uri |
| 2419 | for embedded images into svg. ':base-uri' is supported for both file | 2077 | for embedded images into svg. ':base-uri' is supported for both file |
| 2420 | and data svg images. | 2078 | and data svg images. |
| 2421 | 2079 | ||
| 2422 | +++ | ||
| 2423 | *** 'svg-embed-base-uri-image' added to embed images. | 2080 | *** 'svg-embed-base-uri-image' added to embed images. |
| 2424 | 'svg-embed-base-uri-image' can be used to embed images located | 2081 | 'svg-embed-base-uri-image' can be used to embed images located |
| 2425 | relatively to 'file-name-directory' of the ':base-uri' svg image property. | 2082 | relatively to 'file-name-directory' of the ':base-uri' svg image property. |
| 2426 | This works much faster than 'svg-embed'. | 2083 | This works much faster than 'svg-embed'. |
| 2427 | 2084 | ||
| 2428 | +++ | ||
| 2429 | *** New function 'image-cache-size'. | 2085 | *** New function 'image-cache-size'. |
| 2430 | This function returns the size of the current image cache, in bytes. | 2086 | This function returns the size of the current image cache, in bytes. |
| 2431 | 2087 | ||
| 2432 | --- | ||
| 2433 | *** Animated images stop automatically under high CPU pressure sooner. | 2088 | *** Animated images stop automatically under high CPU pressure sooner. |
| 2434 | Previously, an animated image would stop animating if any single image | 2089 | Previously, an animated image would stop animating if any single image |
| 2435 | took more than two seconds to display. The new algorithm maintains a | 2090 | took more than two seconds to display. The new algorithm maintains a |
| 2436 | decaying average of delays, and if this number gets too high, the | 2091 | decaying average of delays, and if this number gets too high, the |
| 2437 | animation is stopped. | 2092 | animation is stopped. |
| 2438 | 2093 | ||
| 2439 | +++ | ||
| 2440 | *** The 'n' and 'p' commands (next/previous image) now respect Dired order. | 2094 | *** The 'n' and 'p' commands (next/previous image) now respect Dired order. |
| 2441 | These commands would previously display the next/previous image in | 2095 | These commands would previously display the next/previous image in |
| 2442 | lexicographic order, but will now find the "parent" Dired buffer and | 2096 | lexicographic order, but will now find the "parent" Dired buffer and |
| @@ -2445,7 +2099,6 @@ sorted there. The commands have also been extended to work when the | |||
| 2445 | "parent" buffer is an archive mode (i.e., zip file or the like) or tar | 2099 | "parent" buffer is an archive mode (i.e., zip file or the like) or tar |
| 2446 | mode buffer. | 2100 | mode buffer. |
| 2447 | 2101 | ||
| 2448 | --- | ||
| 2449 | *** 'image-converter' is now restricted to formats in 'auto-mode-alist'. | 2102 | *** 'image-converter' is now restricted to formats in 'auto-mode-alist'. |
| 2450 | When using external image converters, the external program is queried | 2103 | When using external image converters, the external program is queried |
| 2451 | for what formats it supports. This list may contain formats that are | 2104 | for what formats it supports. This list may contain formats that are |
| @@ -2453,7 +2106,6 @@ problematic in some contexts (like PDFs), so this list is now filtered | |||
| 2453 | based on 'auto-mode-alist'. Only file names that map to 'image-mode' | 2106 | based on 'auto-mode-alist'. Only file names that map to 'image-mode' |
| 2454 | are now supported. | 2107 | are now supported. |
| 2455 | 2108 | ||
| 2456 | --- | ||
| 2457 | *** The background and foreground of images now default to face colors. | 2109 | *** The background and foreground of images now default to face colors. |
| 2458 | When an image doesn't specify a foreground or background color, Emacs | 2110 | When an image doesn't specify a foreground or background color, Emacs |
| 2459 | now uses colors from the face used to draw the surrounding text | 2111 | now uses colors from the face used to draw the surrounding text |
| @@ -2469,7 +2121,6 @@ To load images with the default frame colors use the ':foreground' and | |||
| 2469 | This change only affects image types that support foreground and | 2121 | This change only affects image types that support foreground and |
| 2470 | background colors or transparency, such as xbm, pbm, svg, png and gif. | 2122 | background colors or transparency, such as xbm, pbm, svg, png and gif. |
| 2471 | 2123 | ||
| 2472 | +++ | ||
| 2473 | *** Image smoothing can now be explicitly enabled or disabled. | 2124 | *** Image smoothing can now be explicitly enabled or disabled. |
| 2474 | Smoothing applies a bilinear filter while scaling or rotating an image | 2125 | Smoothing applies a bilinear filter while scaling or rotating an image |
| 2475 | to prevent aliasing and other unwanted effects. The new image | 2126 | to prevent aliasing and other unwanted effects. The new image |
| @@ -2479,13 +2130,11 @@ and nil to disable smoothing. | |||
| 2479 | The default behavior of smoothing on down-scaling and not smoothing | 2130 | The default behavior of smoothing on down-scaling and not smoothing |
| 2480 | on up-scaling remains unchanged. | 2131 | on up-scaling remains unchanged. |
| 2481 | 2132 | ||
| 2482 | +++ | ||
| 2483 | *** New user option 'image-transform-smoothing'. | 2133 | *** New user option 'image-transform-smoothing'. |
| 2484 | This controls whether to use smoothing or not for an image. Values | 2134 | This controls whether to use smoothing or not for an image. Values |
| 2485 | include nil (no smoothing), t (do smoothing) or a predicate function | 2135 | include nil (no smoothing), t (do smoothing) or a predicate function |
| 2486 | that's called with the image object and should return nil/t. | 2136 | that's called with the image object and should return nil/t. |
| 2487 | 2137 | ||
| 2488 | +++ | ||
| 2489 | *** SVG images now support user stylesheets. | 2138 | *** SVG images now support user stylesheets. |
| 2490 | The ':css' image attribute can be used to override the default CSS | 2139 | The ':css' image attribute can be used to override the default CSS |
| 2491 | stylesheet for an image. The default sets 'font-family' and | 2140 | stylesheet for an image. The default sets 'font-family' and |
| @@ -2494,7 +2143,6 @@ will match the font size in use where it is embedded. | |||
| 2494 | 2143 | ||
| 2495 | This feature relies on librsvg 2.48 or above being available. | 2144 | This feature relies on librsvg 2.48 or above being available. |
| 2496 | 2145 | ||
| 2497 | +++ | ||
| 2498 | *** Image properties support 'em' sizes. | 2146 | *** Image properties support 'em' sizes. |
| 2499 | Size image properties, for example ':height', ':max-height', etc., can | 2147 | Size image properties, for example ':height', ':max-height', etc., can |
| 2500 | be given a cons of the form '(SIZE . em)', where SIZE is an integer or | 2148 | be given a cons of the form '(SIZE . em)', where SIZE is an integer or |
| @@ -2503,42 +2151,35 @@ size, and 'em' is a symbol. | |||
| 2503 | 2151 | ||
| 2504 | ** EWW | 2152 | ** EWW |
| 2505 | 2153 | ||
| 2506 | +++ | ||
| 2507 | *** New user option 'eww-use-browse-url'. | 2154 | *** New user option 'eww-use-browse-url'. |
| 2508 | This is a regexp that can be set to alter how links are followed in eww. | 2155 | This is a regexp that can be set to alter how links are followed in eww. |
| 2509 | 2156 | ||
| 2510 | +++ | ||
| 2511 | *** New user option 'eww-retrieve-command'. | 2157 | *** New user option 'eww-retrieve-command'. |
| 2512 | This can be used to download data via an external command. If nil | 2158 | This can be used to download data via an external command. If nil |
| 2513 | (the default), then 'url-retrieve' is used. When 'sync', then | 2159 | (the default), then 'url-retrieve' is used. When 'sync', then |
| 2514 | 'url-retrieve-synchronously' is used. A list of strings specifies | 2160 | 'url-retrieve-synchronously' is used. A list of strings specifies |
| 2515 | an external program with parameters. | 2161 | an external program with parameters. |
| 2516 | 2162 | ||
| 2517 | +++ | ||
| 2518 | *** New Emacs command line convenience command. | 2163 | *** New Emacs command line convenience command. |
| 2519 | The 'eww-browse' command has been added, which allows you to register | 2164 | The 'eww-browse' command has been added, which allows you to register |
| 2520 | Emacs as a MIME handler for "text/x-uri", and will call 'eww' on the | 2165 | Emacs as a MIME handler for "text/x-uri", and will call 'eww' on the |
| 2521 | supplied URL. Usage example: "emacs -f eww-browse https://gnu.org". | 2166 | supplied URL. Usage example: "emacs -f eww-browse https://gnu.org". |
| 2522 | 2167 | ||
| 2523 | +++ | ||
| 2524 | *** 'eww-download-directory' will now use the XDG location, if defined. | 2168 | *** 'eww-download-directory' will now use the XDG location, if defined. |
| 2525 | However, if "~/Downloads/" already exists, that will continue to be | 2169 | However, if "~/Downloads/" already exists, that will continue to be |
| 2526 | used. | 2170 | used. |
| 2527 | 2171 | ||
| 2528 | --- | ||
| 2529 | *** The command 'eww-follow-link' now supports custom 'mailto:' handlers. | 2172 | *** The command 'eww-follow-link' now supports custom 'mailto:' handlers. |
| 2530 | The function that is invoked when clicking on or otherwise following a | 2173 | The function that is invoked when clicking on or otherwise following a |
| 2531 | 'mailto:' link in an EWW buffer can now be customized. For more | 2174 | 'mailto:' link in an EWW buffer can now be customized. For more |
| 2532 | information, see the related entry about 'shr-browse-url' below. | 2175 | information, see the related entry about 'shr-browse-url' below. |
| 2533 | 2176 | ||
| 2534 | --- | ||
| 2535 | *** Support for bookmark.el. | 2177 | *** Support for bookmark.el. |
| 2536 | The command 'bookmark-set' (bound to 'C-x r m') is now supported, and | 2178 | The command 'bookmark-set' (bound to 'C-x r m') is now supported, and |
| 2537 | will create a bookmark that opens the current URL in EWW. | 2179 | will create a bookmark that opens the current URL in EWW. |
| 2538 | 2180 | ||
| 2539 | ** SHR | 2181 | ** SHR |
| 2540 | 2182 | ||
| 2541 | --- | ||
| 2542 | *** The command 'shr-browse-url' now supports custom 'mailto:' handlers. | 2183 | *** The command 'shr-browse-url' now supports custom 'mailto:' handlers. |
| 2543 | Clicking on or otherwise following a 'mailto:' link in an HTML buffer | 2184 | Clicking on or otherwise following a 'mailto:' link in an HTML buffer |
| 2544 | rendered by SHR previously invoked the command 'browse-url-mail'. | 2185 | rendered by SHR previously invoked the command 'browse-url-mail'. |
| @@ -2546,7 +2187,6 @@ This is still the case by default, but if you customize | |||
| 2546 | 'browse-url-mailto-function' or 'browse-url-handlers' to call some | 2187 | 'browse-url-mailto-function' or 'browse-url-handlers' to call some |
| 2547 | other function, it will now be called instead of the default. | 2188 | other function, it will now be called instead of the default. |
| 2548 | 2189 | ||
| 2549 | --- | ||
| 2550 | *** New user option 'shr-offer-extend-specpdl'. | 2190 | *** New user option 'shr-offer-extend-specpdl'. |
| 2551 | If this is nil, rendering of HTML that requires enlarging | 2191 | If this is nil, rendering of HTML that requires enlarging |
| 2552 | 'max-specpdl-size', the number of Lisp variable bindings, will be | 2192 | 'max-specpdl-size', the number of Lisp variable bindings, will be |
| @@ -2554,7 +2194,6 @@ aborted, and Emacs will not ask you whether to enlarge | |||
| 2554 | 'max-specpdl-size' to complete the rendering. The default is t, which | 2194 | 'max-specpdl-size' to complete the rendering. The default is t, which |
| 2555 | preserves the original behavior. | 2195 | preserves the original behavior. |
| 2556 | 2196 | ||
| 2557 | +++ | ||
| 2558 | *** New user option 'shr-max-width'. | 2197 | *** New user option 'shr-max-width'. |
| 2559 | If this user option is non-nil, and 'shr-width' is nil, then SHR will | 2198 | If this user option is non-nil, and 'shr-width' is nil, then SHR will |
| 2560 | use the value of 'shr-max-width' to limit the width of the rendered | 2199 | use the value of 'shr-max-width' to limit the width of the rendered |
| @@ -2564,80 +2203,64 @@ to a more readable text. Customize it to nil to get the previous | |||
| 2564 | behavior of rendering as wide as the 'window-width' allows. If | 2203 | behavior of rendering as wide as the 'window-width' allows. If |
| 2565 | 'shr-width' is non-nil, it overrides this option. | 2204 | 'shr-width' is non-nil, it overrides this option. |
| 2566 | 2205 | ||
| 2567 | --- | ||
| 2568 | *** New faces for heading elements. | 2206 | *** New faces for heading elements. |
| 2569 | Those are 'shr-h1', 'shr-h2', 'shr-h3', 'shr-h4', 'shr-h5', 'shr-h6'. | 2207 | Those are 'shr-h1', 'shr-h2', 'shr-h3', 'shr-h4', 'shr-h5', 'shr-h6'. |
| 2570 | 2208 | ||
| 2571 | ** Project | 2209 | ** Project |
| 2572 | 2210 | ||
| 2573 | --- | ||
| 2574 | *** New user option 'project-vc-merge-submodules'. | 2211 | *** New user option 'project-vc-merge-submodules'. |
| 2575 | 2212 | ||
| 2576 | --- | ||
| 2577 | *** Project commands now have their own history. | 2213 | *** Project commands now have their own history. |
| 2578 | Previously used project directories are now suggested by all commands | 2214 | Previously used project directories are now suggested by all commands |
| 2579 | that prompt for a project directory. | 2215 | that prompt for a project directory. |
| 2580 | 2216 | ||
| 2581 | +++ | ||
| 2582 | *** New prefix keymap 'project-prefix-map'. | 2217 | *** New prefix keymap 'project-prefix-map'. |
| 2583 | Key sequences that invoke project-related commands start with the | 2218 | Key sequences that invoke project-related commands start with the |
| 2584 | prefix 'C-x p'. Type 'C-x p C-h' to show the full list. | 2219 | prefix 'C-x p'. Type 'C-x p C-h' to show the full list. |
| 2585 | 2220 | ||
| 2586 | +++ | ||
| 2587 | *** New commands 'project-dired', 'project-vc-dir', 'project-shell', | 2221 | *** New commands 'project-dired', 'project-vc-dir', 'project-shell', |
| 2588 | 'project-eshell'. These commands run Dired/VC-Dir and Shell/Eshell in | 2222 | 'project-eshell'. These commands run Dired/VC-Dir and Shell/Eshell in |
| 2589 | a project's root directory, respectively. | 2223 | a project's root directory, respectively. |
| 2590 | 2224 | ||
| 2591 | +++ | ||
| 2592 | *** New command 'project-compile'. | 2225 | *** New command 'project-compile'. |
| 2593 | This command runs compilation in the current project's root directory. | 2226 | This command runs compilation in the current project's root directory. |
| 2594 | 2227 | ||
| 2595 | +++ | ||
| 2596 | *** New command 'project-switch-project'. | 2228 | *** New command 'project-switch-project'. |
| 2597 | This command lets you "switch" to another project and run a project | 2229 | This command lets you "switch" to another project and run a project |
| 2598 | command chosen from a dispatch menu. | 2230 | command chosen from a dispatch menu. |
| 2599 | 2231 | ||
| 2600 | +++ | ||
| 2601 | *** New commands 'project-shell-command' and 'project-async-shell-command'. | 2232 | *** New commands 'project-shell-command' and 'project-async-shell-command'. |
| 2602 | These commands run 'shell-command' and 'async-shell-command' in a | 2233 | These commands run 'shell-command' and 'async-shell-command' in a |
| 2603 | project's root directory, respectively. | 2234 | project's root directory, respectively. |
| 2604 | 2235 | ||
| 2605 | +++ | ||
| 2606 | *** New user option 'project-list-file'. | 2236 | *** New user option 'project-list-file'. |
| 2607 | This specifies the file in which to save the list of known projects. | 2237 | This specifies the file in which to save the list of known projects. |
| 2608 | 2238 | ||
| 2609 | +++ | ||
| 2610 | *** New command 'project-remember-projects-under'. | 2239 | *** New command 'project-remember-projects-under'. |
| 2611 | This command can automatically locate and index projects in a | 2240 | This command can automatically locate and index projects in a |
| 2612 | directory and optionally also its subdirectories, storing them in | 2241 | directory and optionally also its subdirectories, storing them in |
| 2613 | 'project-list-file'. | 2242 | 'project-list-file'. |
| 2614 | 2243 | ||
| 2615 | +++ | ||
| 2616 | *** New commands 'project-forget-project' and 'project-forget-projects-under'. | 2244 | *** New commands 'project-forget-project' and 'project-forget-projects-under'. |
| 2617 | These commands let you interactively remove entries from the list of projects | 2245 | These commands let you interactively remove entries from the list of projects |
| 2618 | in 'project-list-file'. | 2246 | in 'project-list-file'. |
| 2619 | 2247 | ||
| 2620 | +++ | ||
| 2621 | *** New command 'project-forget-zombie-projects'. | 2248 | *** New command 'project-forget-zombie-projects'. |
| 2622 | This command detects indexed projects that have since been deleted, | 2249 | This command detects indexed projects that have since been deleted, |
| 2623 | and removes them from the list of known projects in 'project-list-file'. | 2250 | and removes them from the list of known projects in 'project-list-file'. |
| 2624 | 2251 | ||
| 2625 | --- | ||
| 2626 | *** 'project-find-file' now accepts non-existent file names. | 2252 | *** 'project-find-file' now accepts non-existent file names. |
| 2627 | This is to allow easy creation of files inside some nested | 2253 | This is to allow easy creation of files inside some nested |
| 2628 | sub-directory. | 2254 | sub-directory. |
| 2629 | 2255 | ||
| 2630 | +++ | ||
| 2631 | *** 'project-find-file' doesn't use the string at point as default input. | 2256 | *** 'project-find-file' doesn't use the string at point as default input. |
| 2632 | Now it's only suggested as part of the "future history", accessible | 2257 | Now it's only suggested as part of the "future history", accessible |
| 2633 | via 'M-n'. | 2258 | via 'M-n'. |
| 2634 | 2259 | ||
| 2635 | +++ | ||
| 2636 | *** New command 'project-find-dir' runs Dired in a directory inside project. | 2260 | *** New command 'project-find-dir' runs Dired in a directory inside project. |
| 2637 | 2261 | ||
| 2638 | ** Xref | 2262 | ** Xref |
| 2639 | 2263 | ||
| 2640 | +++ | ||
| 2641 | *** New user options to automatically show the first Xref match. | 2264 | *** New user options to automatically show the first Xref match. |
| 2642 | The new user option 'xref-auto-jump-to-first-definition' controls the | 2265 | The new user option 'xref-auto-jump-to-first-definition' controls the |
| 2643 | behavior of 'xref-find-definitions' and its variants, like | 2266 | behavior of 'xref-find-definitions' and its variants, like |
| @@ -2653,57 +2276,47 @@ visit. 'xref-auto-jump-to-first-xref' changes their behavior much in | |||
| 2653 | the same way as 'xref-auto-jump-to-first-definition' affects the | 2276 | the same way as 'xref-auto-jump-to-first-definition' affects the |
| 2654 | 'xref-find-definitions*' commands. | 2277 | 'xref-find-definitions*' commands. |
| 2655 | 2278 | ||
| 2656 | --- | ||
| 2657 | *** New user options 'xref-search-program' and 'xref-search-program-alist'. | 2279 | *** New user options 'xref-search-program' and 'xref-search-program-alist'. |
| 2658 | So far 'grep' and 'ripgrep' are supported. 'ripgrep' seems to offer better | 2280 | So far 'grep' and 'ripgrep' are supported. 'ripgrep' seems to offer better |
| 2659 | performance in certain cases, in particular for case-insensitive | 2281 | performance in certain cases, in particular for case-insensitive |
| 2660 | searches. | 2282 | searches. |
| 2661 | 2283 | ||
| 2662 | +++ | ||
| 2663 | *** New commands 'xref-prev-group' and 'xref-next-group'. | 2284 | *** New commands 'xref-prev-group' and 'xref-next-group'. |
| 2664 | These commands are bound respectively to 'P' and 'N', and navigate to | 2285 | These commands are bound respectively to 'P' and 'N', and navigate to |
| 2665 | the first item of the previous or next group in the "*xref*" buffer. | 2286 | the first item of the previous or next group in the "*xref*" buffer. |
| 2666 | 2287 | ||
| 2667 | --- | ||
| 2668 | *** New alternative value for 'xref-show-definitions-function': | 2288 | *** New alternative value for 'xref-show-definitions-function': |
| 2669 | 'xref-show-definitions-completing-read'. | 2289 | 'xref-show-definitions-completing-read'. |
| 2670 | 2290 | ||
| 2671 | --- | ||
| 2672 | *** The two existing alternatives for 'xref-show-definitions-function' | 2291 | *** The two existing alternatives for 'xref-show-definitions-function' |
| 2673 | have been renamed to have "proper" public names and documented | 2292 | have been renamed to have "proper" public names and documented |
| 2674 | ('xref-show-definitions-buffer' and | 2293 | ('xref-show-definitions-buffer' and |
| 2675 | 'xref-show-definitions-buffer-at-bottom'). | 2294 | 'xref-show-definitions-buffer-at-bottom'). |
| 2676 | 2295 | ||
| 2677 | +++ | ||
| 2678 | *** New command 'xref-quit-and-pop-marker-stack'. | 2296 | *** New command 'xref-quit-and-pop-marker-stack'. |
| 2679 | This command is bound to 'M-,' in "*xref*" buffers. This combination | 2297 | This command is bound to 'M-,' in "*xref*" buffers. This combination |
| 2680 | is easy to press semi-accidentally if the user wants to go back in the | 2298 | is easy to press semi-accidentally if the user wants to go back in the |
| 2681 | middle of choosing the exact definition to go to, and this should do | 2299 | middle of choosing the exact definition to go to, and this should do |
| 2682 | TRT. | 2300 | TRT. |
| 2683 | 2301 | ||
| 2684 | --- | ||
| 2685 | *** New value 'project-relative' for 'xref-file-name-display'. | 2302 | *** New value 'project-relative' for 'xref-file-name-display'. |
| 2686 | If chosen, file names in "*xref*" buffers will be displayed relative | 2303 | If chosen, file names in "*xref*" buffers will be displayed relative |
| 2687 | to the 'project-root' of the current project, when available. | 2304 | to the 'project-root' of the current project, when available. |
| 2688 | 2305 | ||
| 2689 | --- | ||
| 2690 | *** Prefix arg of 'xref-goto-xref' quits the "*xref*" buffer. | 2306 | *** Prefix arg of 'xref-goto-xref' quits the "*xref*" buffer. |
| 2691 | So typing 'C-u RET' in the "*xref*" buffer quits its window | 2307 | So typing 'C-u RET' in the "*xref*" buffer quits its window |
| 2692 | before navigating to the selected location. | 2308 | before navigating to the selected location. |
| 2693 | 2309 | ||
| 2694 | +++ | ||
| 2695 | *** The 'TAB' key binding in "*xref*" buffers is obsolete. | 2310 | *** The 'TAB' key binding in "*xref*" buffers is obsolete. |
| 2696 | Use 'C-u RET' instead. The 'TAB' binding in "*xref*" buffers is still | 2311 | Use 'C-u RET' instead. The 'TAB' binding in "*xref*" buffers is still |
| 2697 | supported, but we plan on removing it in a future version; at that | 2312 | supported, but we plan on removing it in a future version; at that |
| 2698 | time, the command 'xref-quit-and-goto-xref' will no longer have a key | 2313 | time, the command 'xref-quit-and-goto-xref' will no longer have a key |
| 2699 | binding in 'xref--xref-buffer-mode-map'. | 2314 | binding in 'xref--xref-buffer-mode-map'. |
| 2700 | 2315 | ||
| 2701 | --- | ||
| 2702 | *** New user option 'etags-xref-prefer-current-file'. | 2316 | *** New user option 'etags-xref-prefer-current-file'. |
| 2703 | When non-nil, matches for identifiers in the file visited by the | 2317 | When non-nil, matches for identifiers in the file visited by the |
| 2704 | current buffer will be shown first in the "*xref*" buffer. | 2318 | current buffer will be shown first in the "*xref*" buffer. |
| 2705 | 2319 | ||
| 2706 | +++ | ||
| 2707 | *** The etags Xref backend now honors 'tags-apropos-additional-actions'. | 2320 | *** The etags Xref backend now honors 'tags-apropos-additional-actions'. |
| 2708 | You can customize it to augment the output of 'xref-find-apropos', | 2321 | You can customize it to augment the output of 'xref-find-apropos', |
| 2709 | like it affected the output of 'tags-apropos', which is obsolete since | 2322 | like it affected the output of 'tags-apropos', which is obsolete since |
| @@ -2711,7 +2324,6 @@ Emacs 25.1. | |||
| 2711 | 2324 | ||
| 2712 | ** Battery | 2325 | ** Battery |
| 2713 | 2326 | ||
| 2714 | --- | ||
| 2715 | *** UPower is now the default battery status backend when available. | 2327 | *** UPower is now the default battery status backend when available. |
| 2716 | UPower support via the function 'battery-upower' was added in Emacs | 2328 | UPower support via the function 'battery-upower' was added in Emacs |
| 2717 | 26.1, but was disabled by default. It is now the default value of | 2329 | 26.1, but was disabled by default. It is now the default value of |
| @@ -2721,7 +2333,6 @@ service. The user options 'battery-upower-device' and | |||
| 2721 | whether to respond to status change notifications in addition to | 2333 | whether to respond to status change notifications in addition to |
| 2722 | polling, respectively. | 2334 | polling, respectively. |
| 2723 | 2335 | ||
| 2724 | --- | ||
| 2725 | *** A richer syntax can be used to format battery status information. | 2336 | *** A richer syntax can be used to format battery status information. |
| 2726 | The user options 'battery-mode-line-format' and | 2337 | The user options 'battery-mode-line-format' and |
| 2727 | 'battery-echo-area-format' now support the full formatting syntax of | 2338 | 'battery-echo-area-format' now support the full formatting syntax of |
| @@ -2731,7 +2342,6 @@ truncation, amongst other things. | |||
| 2731 | 2342 | ||
| 2732 | ** Bug Reference | 2343 | ** Bug Reference |
| 2733 | 2344 | ||
| 2734 | --- | ||
| 2735 | *** Bug reference mode uses auto-setup. | 2345 | *** Bug reference mode uses auto-setup. |
| 2736 | If 'bug-reference-mode' or 'bug-reference-prog-mode' have been | 2346 | If 'bug-reference-mode' or 'bug-reference-prog-mode' have been |
| 2737 | activated, their respective hook has been run, and both | 2347 | activated, their respective hook has been run, and both |
| @@ -2748,17 +2358,14 @@ variables 'bug-reference-setup-from-vc-alist', | |||
| 2748 | 2358 | ||
| 2749 | ** HTML mode | 2359 | ** HTML mode |
| 2750 | 2360 | ||
| 2751 | --- | ||
| 2752 | *** A new skeleton for adding relative URLs has been added. | 2361 | *** A new skeleton for adding relative URLs has been added. |
| 2753 | It's bound to the 'C-c C-c f' keystroke, and prompts for a local file | 2362 | It's bound to the 'C-c C-c f' keystroke, and prompts for a local file |
| 2754 | name. | 2363 | name. |
| 2755 | 2364 | ||
| 2756 | ** Widget | 2365 | ** Widget |
| 2757 | 2366 | ||
| 2758 | +++ | ||
| 2759 | *** 'widget-choose' now supports menus in extended format. | 2367 | *** 'widget-choose' now supports menus in extended format. |
| 2760 | 2368 | ||
| 2761 | --- | ||
| 2762 | *** The 'editable-list' widget now supports moving items up and down. | 2369 | *** The 'editable-list' widget now supports moving items up and down. |
| 2763 | You can now move items up and down by deleting and then reinserting | 2370 | You can now move items up and down by deleting and then reinserting |
| 2764 | them, using the 'DEL' and 'INS' buttons respectively. This is useful | 2371 | them, using the 'DEL' and 'INS' buttons respectively. This is useful |
| @@ -2767,62 +2374,50 @@ a list. | |||
| 2767 | 2374 | ||
| 2768 | ** Diff | 2375 | ** Diff |
| 2769 | 2376 | ||
| 2770 | --- | ||
| 2771 | *** New face 'diff-changed-unspecified'. | 2377 | *** New face 'diff-changed-unspecified'. |
| 2772 | This is used to highlight "changed" lines (those marked with '!') in | 2378 | This is used to highlight "changed" lines (those marked with '!') in |
| 2773 | context diffs, when 'diff-use-changed-face' is non-nil. | 2379 | context diffs, when 'diff-use-changed-face' is non-nil. |
| 2774 | 2380 | ||
| 2775 | --- | ||
| 2776 | *** New 'diff-mode' font locking face 'diff-error'. | 2381 | *** New 'diff-mode' font locking face 'diff-error'. |
| 2777 | This face is used for error messages from 'diff'. | 2382 | This face is used for error messages from 'diff'. |
| 2778 | 2383 | ||
| 2779 | +++ | ||
| 2780 | *** New command 'diff-refresh-hunk'. | 2384 | *** New command 'diff-refresh-hunk'. |
| 2781 | This new command (bound to 'C-c C-l') regenerates the current hunk. | 2385 | This new command (bound to 'C-c C-l') regenerates the current hunk. |
| 2782 | 2386 | ||
| 2783 | ** Thing at point | 2387 | ** Thing at point |
| 2784 | 2388 | ||
| 2785 | +++ | ||
| 2786 | *** New 'thing-at-point' target: 'existing-filename'. | 2389 | *** New 'thing-at-point' target: 'existing-filename'. |
| 2787 | This is like 'filename', but is a full path, and is nil if the file | 2390 | This is like 'filename', but is a full path, and is nil if the file |
| 2788 | doesn't exist. | 2391 | doesn't exist. |
| 2789 | 2392 | ||
| 2790 | +++ | ||
| 2791 | *** New 'thing-at-point' target: 'string'. | 2393 | *** New 'thing-at-point' target: 'string'. |
| 2792 | If point is inside a string, it returns that string. | 2394 | If point is inside a string, it returns that string. |
| 2793 | 2395 | ||
| 2794 | +++ | ||
| 2795 | *** New variable 'thing-at-point-provider-alist'. | 2396 | *** New variable 'thing-at-point-provider-alist'. |
| 2796 | This allows mode-specific alterations to how 'thing-at-point' works. | 2397 | This allows mode-specific alterations to how 'thing-at-point' works. |
| 2797 | 2398 | ||
| 2798 | --- | ||
| 2799 | *** 'thing-at-point' now respects fields. | 2399 | *** 'thing-at-point' now respects fields. |
| 2800 | 'thing-at-point' (and all functions that use it, like | 2400 | 'thing-at-point' (and all functions that use it, like |
| 2801 | 'symbol-at-point') will narrow to the current field (if any) before | 2401 | 'symbol-at-point') will narrow to the current field (if any) before |
| 2802 | trying to identify the thing at point. | 2402 | trying to identify the thing at point. |
| 2803 | 2403 | ||
| 2804 | --- | ||
| 2805 | *** New function 'thing-at-mouse'. | 2404 | *** New function 'thing-at-mouse'. |
| 2806 | This is like 'thing-at-point', but uses the mouse event position instead. | 2405 | This is like 'thing-at-point', but uses the mouse event position instead. |
| 2807 | 2406 | ||
| 2808 | ** Image Dired | 2407 | ** Image Dired |
| 2809 | 2408 | ||
| 2810 | +++ | ||
| 2811 | *** New user option 'image-dired-thumb-visible-marks'. | 2409 | *** New user option 'image-dired-thumb-visible-marks'. |
| 2812 | If non-nil (the default), use the new face 'image-dired-thumb-mark' | 2410 | If non-nil (the default), use the new face 'image-dired-thumb-mark' |
| 2813 | for marked images. | 2411 | for marked images. |
| 2814 | 2412 | ||
| 2815 | --- | ||
| 2816 | *** New command 'image-dired-delete-marked'. | 2413 | *** New command 'image-dired-delete-marked'. |
| 2817 | 2414 | ||
| 2818 | --- | ||
| 2819 | *** 'image-dired-mouse-toggle-mark' is now sensitive to the active region. | 2415 | *** 'image-dired-mouse-toggle-mark' is now sensitive to the active region. |
| 2820 | If the region is active, this command now toggles Dired marks of all | 2416 | If the region is active, this command now toggles Dired marks of all |
| 2821 | the thumbnails in the region. | 2417 | the thumbnails in the region. |
| 2822 | 2418 | ||
| 2823 | ** Flymake mode | 2419 | ** Flymake mode |
| 2824 | 2420 | ||
| 2825 | +++ | ||
| 2826 | *** New command 'flymake-show-project-diagnostics'. | 2421 | *** New command 'flymake-show-project-diagnostics'. |
| 2827 | This lists all diagnostics for buffers in the currently active | 2422 | This lists all diagnostics for buffers in the currently active |
| 2828 | project. The listing is similar to the one obtained by | 2423 | project. The listing is similar to the one obtained by |
| @@ -2831,7 +2426,6 @@ project-relative file name. For backends which support it, | |||
| 2831 | 'flymake-show-project-diagnostics' also lists diagnostics for files | 2426 | 'flymake-show-project-diagnostics' also lists diagnostics for files |
| 2832 | that have not yet been visited. | 2427 | that have not yet been visited. |
| 2833 | 2428 | ||
| 2834 | +++ | ||
| 2835 | *** New user options to customize Flymake's mode-line. | 2429 | *** New user options to customize Flymake's mode-line. |
| 2836 | The new user option 'flymake-mode-line-format' is a mix of strings and | 2430 | The new user option 'flymake-mode-line-format' is a mix of strings and |
| 2837 | symbols like 'flymake-mode-line-title', 'flymake-mode-line-exception' | 2431 | symbols like 'flymake-mode-line-title', 'flymake-mode-line-exception' |
| @@ -2842,7 +2436,6 @@ like 'flymake-mode-line-error-counter', | |||
| 2842 | 2436 | ||
| 2843 | ** Time | 2437 | ** Time |
| 2844 | 2438 | ||
| 2845 | --- | ||
| 2846 | *** 'display-time-world' has been renamed to 'world-clock'. | 2439 | *** 'display-time-world' has been renamed to 'world-clock'. |
| 2847 | 'world-clock' creates a buffer with an updating time display using | 2440 | 'world-clock' creates a buffer with an updating time display using |
| 2848 | several time zones. It is hoped that the new names are more | 2441 | several time zones. It is hoped that the new names are more |
| @@ -2865,21 +2458,17 @@ The following user options have been renamed: | |||
| 2865 | 2458 | ||
| 2866 | The old names are now obsolete. | 2459 | The old names are now obsolete. |
| 2867 | 2460 | ||
| 2868 | --- | ||
| 2869 | *** 'world-clock-mode' can no longer be turned on interactively. | 2461 | *** 'world-clock-mode' can no longer be turned on interactively. |
| 2870 | Use 'world-clock' to turn on that mode. | 2462 | Use 'world-clock' to turn on that mode. |
| 2871 | 2463 | ||
| 2872 | ** Python mode | 2464 | ** Python mode |
| 2873 | 2465 | ||
| 2874 | --- | ||
| 2875 | *** New user option 'python-forward-sexp-function'. | 2466 | *** New user option 'python-forward-sexp-function'. |
| 2876 | This allows the user easier customization of whether to use block-based | 2467 | This allows the user easier customization of whether to use block-based |
| 2877 | navigation or not. | 2468 | navigation or not. |
| 2878 | 2469 | ||
| 2879 | --- | ||
| 2880 | *** 'python-shell-interpreter' now defaults to python3 on systems with python3. | 2470 | *** 'python-shell-interpreter' now defaults to python3 on systems with python3. |
| 2881 | 2471 | ||
| 2882 | --- | ||
| 2883 | *** 'C-c C-r' can now be used on arbitrary regions. | 2472 | *** 'C-c C-r' can now be used on arbitrary regions. |
| 2884 | The command previously extended the start of the region to the start | 2473 | The command previously extended the start of the region to the start |
| 2885 | of the line, but will now actually send the marked region, as | 2474 | of the line, but will now actually send the marked region, as |
| @@ -2887,12 +2476,10 @@ documented. | |||
| 2887 | 2476 | ||
| 2888 | ** Ruby mode | 2477 | ** Ruby mode |
| 2889 | 2478 | ||
| 2890 | --- | ||
| 2891 | *** 'ruby-use-smie' is declared obsolete. | 2479 | *** 'ruby-use-smie' is declared obsolete. |
| 2892 | SMIE is now always enabled and 'ruby-use-smie' only controls whether | 2480 | SMIE is now always enabled and 'ruby-use-smie' only controls whether |
| 2893 | indentation is done using SMIE or with the old ad-hoc code. | 2481 | indentation is done using SMIE or with the old ad-hoc code. |
| 2894 | 2482 | ||
| 2895 | --- | ||
| 2896 | *** Indentation has changed when 'ruby-align-chained-calls' is non-nil. | 2483 | *** Indentation has changed when 'ruby-align-chained-calls' is non-nil. |
| 2897 | This previously used to align subsequent lines with the last sibling, | 2484 | This previously used to align subsequent lines with the last sibling, |
| 2898 | but it now aligns with the first sibling (which is the preferred style | 2485 | but it now aligns with the first sibling (which is the preferred style |
| @@ -2900,10 +2487,8 @@ in Ruby). | |||
| 2900 | 2487 | ||
| 2901 | ** CPerl mode | 2488 | ** CPerl mode |
| 2902 | 2489 | ||
| 2903 | --- | ||
| 2904 | *** New face 'perl-heredoc', used for heredoc elements. | 2490 | *** New face 'perl-heredoc', used for heredoc elements. |
| 2905 | 2491 | ||
| 2906 | --- | ||
| 2907 | *** The command 'cperl-set-style' offers the new value "PBP". | 2492 | *** The command 'cperl-set-style' offers the new value "PBP". |
| 2908 | This value customizes Emacs to use the style recommended in Damian | 2493 | This value customizes Emacs to use the style recommended in Damian |
| 2909 | Conway's book "Perl Best Practices" for indentation and formatting | 2494 | Conway's book "Perl Best Practices" for indentation and formatting |
| @@ -2911,20 +2496,17 @@ of conditionals. | |||
| 2911 | 2496 | ||
| 2912 | ** Perl mode | 2497 | ** Perl mode |
| 2913 | 2498 | ||
| 2914 | --- | ||
| 2915 | *** New face 'perl-non-scalar-variable'. | 2499 | *** New face 'perl-non-scalar-variable'. |
| 2916 | This is used to fontify non-scalar variables. | 2500 | This is used to fontify non-scalar variables. |
| 2917 | 2501 | ||
| 2918 | ** Octave mode | 2502 | ** Octave mode |
| 2919 | 2503 | ||
| 2920 | +++ | ||
| 2921 | *** Line continuations in double-quoted strings now use a backslash. | 2504 | *** Line continuations in double-quoted strings now use a backslash. |
| 2922 | Typing 'C-M-j' (bound to 'octave-indent-new-comment-line') now follows | 2505 | Typing 'C-M-j' (bound to 'octave-indent-new-comment-line') now follows |
| 2923 | the behavior introduced in Octave 3.8 of using a backslash as a line | 2506 | the behavior introduced in Octave 3.8 of using a backslash as a line |
| 2924 | continuation marker within double-quoted strings, and an ellipsis | 2507 | continuation marker within double-quoted strings, and an ellipsis |
| 2925 | everywhere else. | 2508 | everywhere else. |
| 2926 | 2509 | ||
| 2927 | +++ | ||
| 2928 | ** EasyPG | 2510 | ** EasyPG |
| 2929 | GPG key servers can now be queried for keys with the | 2511 | GPG key servers can now be queried for keys with the |
| 2930 | 'epa-search-keys' command. Keys can then be added to your | 2512 | 'epa-search-keys' command. Keys can then be added to your |
| @@ -2932,11 +2514,9 @@ personal key ring. | |||
| 2932 | 2514 | ||
| 2933 | ** Etags | 2515 | ** Etags |
| 2934 | 2516 | ||
| 2935 | +++ | ||
| 2936 | *** Etags now supports the Mercury programming language. | 2517 | *** Etags now supports the Mercury programming language. |
| 2937 | See https://mercurylang.org. | 2518 | See https://mercurylang.org. |
| 2938 | 2519 | ||
| 2939 | +++ | ||
| 2940 | *** Etags command line option '--declarations' now has Mercury-specific behavior. | 2520 | *** Etags command line option '--declarations' now has Mercury-specific behavior. |
| 2941 | All Mercury declarations are tagged by default. However, for | 2521 | All Mercury declarations are tagged by default. However, for |
| 2942 | compatibility with 'etags' support for Prolog, predicates and | 2522 | compatibility with 'etags' support for Prolog, predicates and |
| @@ -2945,7 +2525,6 @@ invoked with the '--declarations' command-line option. | |||
| 2945 | 2525 | ||
| 2946 | ** Comint | 2526 | ** Comint |
| 2947 | 2527 | ||
| 2948 | +++ | ||
| 2949 | *** Support for OSC escape sequences. | 2528 | *** Support for OSC escape sequences. |
| 2950 | Adding the new function 'comint-osc-process-output' to | 2529 | Adding the new function 'comint-osc-process-output' to |
| 2951 | 'comint-output-filter-functions' enables the interpretation of OSC | 2530 | 'comint-output-filter-functions' enables the interpretation of OSC |
| @@ -2955,18 +2534,15 @@ tracking, are acted upon. Adding more entries to | |||
| 2955 | 'comint-osc-handlers' allows a customized treatment of further escape | 2534 | 'comint-osc-handlers' allows a customized treatment of further escape |
| 2956 | sequences. | 2535 | sequences. |
| 2957 | 2536 | ||
| 2958 | +++ | ||
| 2959 | *** 'comint-delete-output' can now save deleted text in the kill-ring. | 2537 | *** 'comint-delete-output' can now save deleted text in the kill-ring. |
| 2960 | Interactively, 'C-u C-c C-o' triggers this new optional behavior. | 2538 | Interactively, 'C-u C-c C-o' triggers this new optional behavior. |
| 2961 | 2539 | ||
| 2962 | ** ANSI color | 2540 | ** ANSI color |
| 2963 | 2541 | ||
| 2964 | --- | ||
| 2965 | *** Colors are now defined by faces. | 2542 | *** Colors are now defined by faces. |
| 2966 | ANSI SGR codes now have corresponding faces to describe their | 2543 | ANSI SGR codes now have corresponding faces to describe their |
| 2967 | appearance, e.g. 'ansi-color-bold'. | 2544 | appearance, e.g. 'ansi-color-bold'. |
| 2968 | 2545 | ||
| 2969 | --- | ||
| 2970 | *** Support for "bright" color codes. | 2546 | *** Support for "bright" color codes. |
| 2971 | "Bright" ANSI color codes are now displayed when applying ANSI color | 2547 | "Bright" ANSI color codes are now displayed when applying ANSI color |
| 2972 | filters using the color values defined by the faces | 2548 | filters using the color values defined by the faces |
| @@ -2981,45 +2557,37 @@ user-visible changes in ERC. | |||
| 2981 | 2557 | ||
| 2982 | ** Xwidget Webkit mode | 2558 | ** Xwidget Webkit mode |
| 2983 | 2559 | ||
| 2984 | --- | ||
| 2985 | *** New xwidget commands. | 2560 | *** New xwidget commands. |
| 2986 | 'xwidget-webkit-uri' (return the current URL), 'xwidget-webkit-title' | 2561 | 'xwidget-webkit-uri' (return the current URL), 'xwidget-webkit-title' |
| 2987 | (return the current title), and 'xwidget-webkit-goto-history' (goto a | 2562 | (return the current title), and 'xwidget-webkit-goto-history' (goto a |
| 2988 | point in history). | 2563 | point in history). |
| 2989 | 2564 | ||
| 2990 | --- | ||
| 2991 | *** Downloading files from xwidget-webkit is now supported. | 2565 | *** Downloading files from xwidget-webkit is now supported. |
| 2992 | The new user option 'xwidget-webkit-download-dir' says where to download to. | 2566 | The new user option 'xwidget-webkit-download-dir' says where to download to. |
| 2993 | 2567 | ||
| 2994 | --- | ||
| 2995 | *** New command 'xwidget-webkit-clone-and-split-below'. | 2568 | *** New command 'xwidget-webkit-clone-and-split-below'. |
| 2996 | Open a new window below displaying the current URL. | 2569 | Open a new window below displaying the current URL. |
| 2997 | 2570 | ||
| 2998 | --- | ||
| 2999 | *** New command 'xwidget-webkit-clone-and-split-right'. | 2571 | *** New command 'xwidget-webkit-clone-and-split-right'. |
| 3000 | Open a new window to the right displaying the current URL. | 2572 | Open a new window to the right displaying the current URL. |
| 3001 | 2573 | ||
| 3002 | --- | ||
| 3003 | *** Pixel-based scrolling. | 2574 | *** Pixel-based scrolling. |
| 3004 | The 'xwidget-webkit-scroll-up', 'xwidget-webkit-scroll-down' commands | 2575 | The 'xwidget-webkit-scroll-up', 'xwidget-webkit-scroll-down' commands |
| 3005 | now supports scrolling arbitrary pixel values. It now treats the | 2576 | now supports scrolling arbitrary pixel values. It now treats the |
| 3006 | optional 2nd argument as the pixel values to scroll. | 2577 | optional 2nd argument as the pixel values to scroll. |
| 3007 | 2578 | ||
| 3008 | --- | ||
| 3009 | *** New commands for scrolling. | 2579 | *** New commands for scrolling. |
| 3010 | The new commands 'xwidget-webkit-scroll-up-line', | 2580 | The new commands 'xwidget-webkit-scroll-up-line', |
| 3011 | 'xwidget-webkit-scroll-down-line', 'xwidget-webkit-scroll-forward', | 2581 | 'xwidget-webkit-scroll-down-line', 'xwidget-webkit-scroll-forward', |
| 3012 | 'xwidget-webkit-scroll-backward' can be used to scroll webkit by the | 2582 | 'xwidget-webkit-scroll-backward' can be used to scroll webkit by the |
| 3013 | height of lines or width of chars. | 2583 | height of lines or width of chars. |
| 3014 | 2584 | ||
| 3015 | --- | ||
| 3016 | *** New user option 'xwidget-webkit-bookmark-jump-new-session'. | 2585 | *** New user option 'xwidget-webkit-bookmark-jump-new-session'. |
| 3017 | When non-nil, use a new xwidget webkit session after bookmark jump. | 2586 | When non-nil, use a new xwidget webkit session after bookmark jump. |
| 3018 | Otherwise, it will use 'xwidget-webkit-last-session'. | 2587 | Otherwise, it will use 'xwidget-webkit-last-session'. |
| 3019 | 2588 | ||
| 3020 | ** Checkdoc | 2589 | ** Checkdoc |
| 3021 | 2590 | ||
| 3022 | --- | ||
| 3023 | *** No longer warns about command substitutions by default. | 2591 | *** No longer warns about command substitutions by default. |
| 3024 | Checkdoc used to warn about "too many command substitutions" (as in | 2592 | Checkdoc used to warn about "too many command substitutions" (as in |
| 3025 | "\\[foo-command]"), even if you only used ten of them in a docstring. | 2593 | "\\[foo-command]"), even if you only used ten of them in a docstring. |
| @@ -3028,19 +2596,16 @@ substitutions before it becomes a performance issue, so this warning | |||
| 3028 | is now disabled by default. To re-enable this warning, customize the | 2596 | is now disabled by default. To re-enable this warning, customize the |
| 3029 | user option 'checkdoc-max-keyref-before-warn'. | 2597 | user option 'checkdoc-max-keyref-before-warn'. |
| 3030 | 2598 | ||
| 3031 | --- | ||
| 3032 | *** New user option 'checkdoc-column-zero-backslash-before-paren'. | 2599 | *** New user option 'checkdoc-column-zero-backslash-before-paren'. |
| 3033 | Checkdoc warns if there is a left parenthesis in column zero of a | 2600 | Checkdoc warns if there is a left parenthesis in column zero of a |
| 3034 | documentation string. That warning can now be disabled by customizing | 2601 | documentation string. That warning can now be disabled by customizing |
| 3035 | this new user option to nil. This is useful if you don't expect | 2602 | this new user option to nil. This is useful if you don't expect |
| 3036 | your code to be edited with an Emacs older than version 27.1. | 2603 | your code to be edited with an Emacs older than version 27.1. |
| 3037 | 2604 | ||
| 3038 | --- | ||
| 3039 | *** Now checks the prompt format for 'yes-or-no-p'. | 2605 | *** Now checks the prompt format for 'yes-or-no-p'. |
| 3040 | In addition to verifying the format of the prompt for 'y-or-n-p', | 2606 | In addition to verifying the format of the prompt for 'y-or-n-p', |
| 3041 | checkdoc will now check the format of 'yes-or-no-p'. | 2607 | checkdoc will now check the format of 'yes-or-no-p'. |
| 3042 | 2608 | ||
| 3043 | --- | ||
| 3044 | *** New command 'checkdoc-dired'. | 2609 | *** New command 'checkdoc-dired'. |
| 3045 | This can be used to run checkdoc on files from a Dired buffer. | 2610 | This can be used to run checkdoc on files from a Dired buffer. |
| 3046 | 2611 | ||
| @@ -3052,14 +2617,12 @@ this warning therefore mostly led to false positives. | |||
| 3052 | 2617 | ||
| 3053 | ** Enriched mode | 2618 | ** Enriched mode |
| 3054 | 2619 | ||
| 3055 | --- | ||
| 3056 | *** 'C-a' is by default no longer bound to 'beginning-of-line-text'. | 2620 | *** 'C-a' is by default no longer bound to 'beginning-of-line-text'. |
| 3057 | This is so 'C-a' works as in other modes, and in particular holding | 2621 | This is so 'C-a' works as in other modes, and in particular holding |
| 3058 | Shift while typing 'C-a', i.e. 'C-S-a', will now highlight the text. | 2622 | Shift while typing 'C-a', i.e. 'C-S-a', will now highlight the text. |
| 3059 | 2623 | ||
| 3060 | ** Gravatar | 2624 | ** Gravatar |
| 3061 | 2625 | ||
| 3062 | --- | ||
| 3063 | *** New user option 'gravatar-service' for host to query for gravatars. | 2626 | *** New user option 'gravatar-service' for host to query for gravatars. |
| 3064 | Defaults to 'gravatar', with 'unicornify' and 'libravatar' as options. | 2627 | Defaults to 'gravatar', with 'unicornify' and 'libravatar' as options. |
| 3065 | 2628 | ||
| @@ -3068,89 +2631,69 @@ Defaults to 'gravatar', with 'unicornify' and 'libravatar' as options. | |||
| 3068 | Functions and variables related to handling junk mail have been | 2631 | Functions and variables related to handling junk mail have been |
| 3069 | renamed to not associate color with sender quality. | 2632 | renamed to not associate color with sender quality. |
| 3070 | 2633 | ||
| 3071 | +++ | ||
| 3072 | *** New names for mh-junk interactive functions. | 2634 | *** New names for mh-junk interactive functions. |
| 3073 | Function 'mh-junk-whitelist' is renamed 'mh-junk-allowlist'. | 2635 | Function 'mh-junk-whitelist' is renamed 'mh-junk-allowlist'. |
| 3074 | Function 'mh-junk-blacklist' is renamed 'mh-junk-blocklist'. | 2636 | Function 'mh-junk-blacklist' is renamed 'mh-junk-blocklist'. |
| 3075 | 2637 | ||
| 3076 | +++ | ||
| 3077 | *** New binding for 'mh-junk-allowlist'. | 2638 | *** New binding for 'mh-junk-allowlist'. |
| 3078 | The key binding for 'mh-junk-allowlist' is changed from 'J w' to 'J a'. | 2639 | The key binding for 'mh-junk-allowlist' is changed from 'J w' to 'J a'. |
| 3079 | The old binding is supported but warns that it is obsolete. | 2640 | The old binding is supported but warns that it is obsolete. |
| 3080 | 2641 | ||
| 3081 | +++ | ||
| 3082 | *** New names for some hooks. | 2642 | *** New names for some hooks. |
| 3083 | 'mh-whitelist-msg-hook' is renamed 'mh-allowlist-msg-hook'. | 2643 | 'mh-whitelist-msg-hook' is renamed 'mh-allowlist-msg-hook'. |
| 3084 | 'mh-blacklist-msg-hook' is renamed 'mh-blocklist-msg-hook'. | 2644 | 'mh-blacklist-msg-hook' is renamed 'mh-blocklist-msg-hook'. |
| 3085 | 2645 | ||
| 3086 | +++ | ||
| 3087 | *** New names for some user options. | 2646 | *** New names for some user options. |
| 3088 | User option 'mh-whitelist-preserves-sequences-flag' is renamed | 2647 | User option 'mh-whitelist-preserves-sequences-flag' is renamed |
| 3089 | 'mh-allowlist-preserves-sequences-flag'. | 2648 | 'mh-allowlist-preserves-sequences-flag'. |
| 3090 | 2649 | ||
| 3091 | +++ | ||
| 3092 | *** New names for some faces. | 2650 | *** New names for some faces. |
| 3093 | Face 'mh-folder-blacklisted' is renamed 'mh-folder-blocklisted'. | 2651 | Face 'mh-folder-blacklisted' is renamed 'mh-folder-blocklisted'. |
| 3094 | Face 'mh-folder-whitelisted' is renamed 'mh-folder-allowlisted'. | 2652 | Face 'mh-folder-whitelisted' is renamed 'mh-folder-allowlisted'. |
| 3095 | 2653 | ||
| 3096 | ** Rcirc | 2654 | ** Rcirc |
| 3097 | 2655 | ||
| 3098 | +++ | ||
| 3099 | *** rcirc now supports SASL authentication. | 2656 | *** rcirc now supports SASL authentication. |
| 3100 | 2657 | ||
| 3101 | --- | ||
| 3102 | *** #emacs on Libera.chat has been added to 'rcirc-server-alist'. | 2658 | *** #emacs on Libera.chat has been added to 'rcirc-server-alist'. |
| 3103 | 2659 | ||
| 3104 | --- | ||
| 3105 | *** rcirc connects asynchronously. | 2660 | *** rcirc connects asynchronously. |
| 3106 | 2661 | ||
| 3107 | --- | ||
| 3108 | *** Integrate formatting into 'rcirc-send-string'. | 2662 | *** Integrate formatting into 'rcirc-send-string'. |
| 3109 | The function now accepts a variable number of arguments. | 2663 | The function now accepts a variable number of arguments. |
| 3110 | 2664 | ||
| 3111 | +++ | ||
| 3112 | *** Deprecate 'rcirc-command' in favor of 'rcirc-define-command'. | 2665 | *** Deprecate 'rcirc-command' in favor of 'rcirc-define-command'. |
| 3113 | The new macro handles multiple and optional arguments. | 2666 | The new macro handles multiple and optional arguments. |
| 3114 | 2667 | ||
| 3115 | --- | ||
| 3116 | *** Add basic IRCv3 support. | 2668 | *** Add basic IRCv3 support. |
| 3117 | This includes support for the capabilities: 'server-time', 'batch', | 2669 | This includes support for the capabilities: 'server-time', 'batch', |
| 3118 | 'message-ids', 'invite-notify', 'multi-prefix' and 'standard-replies'. | 2670 | 'message-ids', 'invite-notify', 'multi-prefix' and 'standard-replies'. |
| 3119 | 2671 | ||
| 3120 | --- | ||
| 3121 | *** Add mouse property support to 'rcirc-track-minor-mode'. | 2672 | *** Add mouse property support to 'rcirc-track-minor-mode'. |
| 3122 | 2673 | ||
| 3123 | --- | ||
| 3124 | *** Improve support for IRC markup codes. | 2674 | *** Improve support for IRC markup codes. |
| 3125 | 2675 | ||
| 3126 | --- | ||
| 3127 | *** Check 'auth-sources' for server passwords. | 2676 | *** Check 'auth-sources' for server passwords. |
| 3128 | 2677 | ||
| 3129 | +++ | ||
| 3130 | *** Implement repeated reconnection strategy. | 2678 | *** Implement repeated reconnection strategy. |
| 3131 | See 'rcirc-reconnect-attempts'. | 2679 | See 'rcirc-reconnect-attempts'. |
| 3132 | 2680 | ||
| 3133 | ** MPC | 2681 | ** MPC |
| 3134 | 2682 | ||
| 3135 | --- | ||
| 3136 | *** New command 'mpc-goto-playing-song'. | 2683 | *** New command 'mpc-goto-playing-song'. |
| 3137 | This command, bound to 'o' in any 'mpc-mode' buffer, moves point to | 2684 | This command, bound to 'o' in any 'mpc-mode' buffer, moves point to |
| 3138 | the currently playing song in the "*MPC-Songs*" buffer. | 2685 | the currently playing song in the "*MPC-Songs*" buffer. |
| 3139 | 2686 | ||
| 3140 | --- | ||
| 3141 | *** New user option 'mpc-cover-image-re'. | 2687 | *** New user option 'mpc-cover-image-re'. |
| 3142 | If non-nil, it is a regexp that should match a valid cover image. | 2688 | If non-nil, it is a regexp that should match a valid cover image. |
| 3143 | 2689 | ||
| 3144 | ** Miscellaneous | 2690 | ** Miscellaneous |
| 3145 | 2691 | ||
| 3146 | --- | ||
| 3147 | *** 'shell-script-mode' now supports 'outline-minor-mode'. | 2692 | *** 'shell-script-mode' now supports 'outline-minor-mode'. |
| 3148 | The outline headings have lines that start with "###". | 2693 | The outline headings have lines that start with "###". |
| 3149 | 2694 | ||
| 3150 | --- | ||
| 3151 | *** fileloop will now skip missing files instead of signalling an error. | 2695 | *** fileloop will now skip missing files instead of signalling an error. |
| 3152 | 2696 | ||
| 3153 | --- | ||
| 3154 | *** 'tabulated-list-mode' can now restore original display order. | 2697 | *** 'tabulated-list-mode' can now restore original display order. |
| 3155 | Many commands (like 'C-x C-b') are derived from 'tabulated-list-mode', | 2698 | Many commands (like 'C-x C-b') are derived from 'tabulated-list-mode', |
| 3156 | and that mode allows the user to sort on any column. There was | 2699 | and that mode allows the user to sort on any column. There was |
| @@ -3158,73 +2701,58 @@ previously no easy way to get back to the original displayed order | |||
| 3158 | after sorting, but giving a -1 numerical prefix to the sorting command | 2701 | after sorting, but giving a -1 numerical prefix to the sorting command |
| 3159 | will now restore the original order. | 2702 | will now restore the original order. |
| 3160 | 2703 | ||
| 3161 | --- | ||
| 3162 | *** 'M-left' and 'M-right' now move between columns in 'tabulated-list-mode'. | 2704 | *** 'M-left' and 'M-right' now move between columns in 'tabulated-list-mode'. |
| 3163 | 2705 | ||
| 3164 | --- | ||
| 3165 | *** New variable 'hl-line-overlay-priority'. | 2706 | *** New variable 'hl-line-overlay-priority'. |
| 3166 | This can be used to change the priority of the hl-line overlays. | 2707 | This can be used to change the priority of the hl-line overlays. |
| 3167 | 2708 | ||
| 3168 | +++ | ||
| 3169 | *** New command 'mailcap-view-file'. | 2709 | *** New command 'mailcap-view-file'. |
| 3170 | This command will open a viewer based on the file type, as determined | 2710 | This command will open a viewer based on the file type, as determined |
| 3171 | by "~/.mailcap" and related files and variables. | 2711 | by "~/.mailcap" and related files and variables. |
| 3172 | 2712 | ||
| 3173 | --- | ||
| 3174 | *** New user option 'remember-diary-regexp'. | 2713 | *** New user option 'remember-diary-regexp'. |
| 3175 | 2714 | ||
| 3176 | --- | ||
| 3177 | *** New user option 'remember-text-format-function'. | 2715 | *** New user option 'remember-text-format-function'. |
| 3178 | 2716 | ||
| 3179 | --- | ||
| 3180 | *** New user option 'authinfo-hide-elements'. | 2717 | *** New user option 'authinfo-hide-elements'. |
| 3181 | This can be set to nil to inhibit hiding passwords in ".authinfo" files. | 2718 | This can be set to nil to inhibit hiding passwords in ".authinfo" files. |
| 3182 | 2719 | ||
| 3183 | --- | ||
| 3184 | *** 'hexl-mode' scrolling commands now heed 'next-screen-context-lines'. | 2720 | *** 'hexl-mode' scrolling commands now heed 'next-screen-context-lines'. |
| 3185 | Previously, 'hexl-scroll-down' and 'hexl-scroll-up' would scroll | 2721 | Previously, 'hexl-scroll-down' and 'hexl-scroll-up' would scroll |
| 3186 | up/down an entire window, but they now work more like the standard | 2722 | up/down an entire window, but they now work more like the standard |
| 3187 | scrolling commands. | 2723 | scrolling commands. |
| 3188 | 2724 | ||
| 3189 | --- | ||
| 3190 | *** New user option 'bibtex-unify-case-function'. | 2725 | *** New user option 'bibtex-unify-case-function'. |
| 3191 | This new option allows the user to customize how case is converted | 2726 | This new option allows the user to customize how case is converted |
| 3192 | when unifying entries. | 2727 | when unifying entries. |
| 3193 | 2728 | ||
| 3194 | --- | ||
| 3195 | *** The user option 'bibtex-maintain-sorted-entries' now permits | 2729 | *** The user option 'bibtex-maintain-sorted-entries' now permits |
| 3196 | user-defined sorting schemes. | 2730 | user-defined sorting schemes. |
| 3197 | 2731 | ||
| 3198 | --- | ||
| 3199 | *** New user option 'reveal-auto-hide'. | 2732 | *** New user option 'reveal-auto-hide'. |
| 3200 | If non-nil (the default), revealed text is automatically hidden when | 2733 | If non-nil (the default), revealed text is automatically hidden when |
| 3201 | point leaves the text. If nil, the text is not hidden again. Instead the | 2734 | point leaves the text. If nil, the text is not hidden again. Instead the |
| 3202 | command 'reveal-hide-revealed' can be used to hide all the revealed text. | 2735 | command 'reveal-hide-revealed' can be used to hide all the revealed text. |
| 3203 | 2736 | ||
| 3204 | --- | ||
| 3205 | *** New user option 'ffap-file-name-with-spaces'. | 2737 | *** New user option 'ffap-file-name-with-spaces'. |
| 3206 | If non-nil, 'find-file-at-point' and friends will try to guess more | 2738 | If non-nil, 'find-file-at-point' and friends will try to guess more |
| 3207 | expansively to identify a file name with spaces. Default value is | 2739 | expansively to identify a file name with spaces. Default value is |
| 3208 | nil. | 2740 | nil. |
| 3209 | 2741 | ||
| 3210 | --- | ||
| 3211 | *** Two new commands for centering in 'doc-view-mode'. | 2742 | *** Two new commands for centering in 'doc-view-mode'. |
| 3212 | The new commands 'doc-view-center-page-horizontally' (bound to 'c h') | 2743 | The new commands 'doc-view-center-page-horizontally' (bound to 'c h') |
| 3213 | and 'doc-view-center-page-vertically' (bound to 'c v') center the page | 2744 | and 'doc-view-center-page-vertically' (bound to 'c v') center the page |
| 3214 | horizontally and vertically, respectively. | 2745 | horizontally and vertically, respectively. |
| 3215 | 2746 | ||
| 3216 | --- | ||
| 3217 | *** 'tempo-define-template' can now re-assign templates to tags. | 2747 | *** 'tempo-define-template' can now re-assign templates to tags. |
| 3218 | Previously, assigning a new template to an already defined tag had no | 2748 | Previously, assigning a new template to an already defined tag had no |
| 3219 | effect. | 2749 | effect. |
| 3220 | 2750 | ||
| 3221 | --- | ||
| 3222 | *** The width of the buffer-name column in 'list-buffers' is now dynamic. | 2751 | *** The width of the buffer-name column in 'list-buffers' is now dynamic. |
| 3223 | The width now depends on the width of the window, but will never be | 2752 | The width now depends on the width of the window, but will never be |
| 3224 | wider than the length of the longest buffer name, except that it will | 2753 | wider than the length of the longest buffer name, except that it will |
| 3225 | never be narrower than 19 characters. | 2754 | never be narrower than 19 characters. |
| 3226 | 2755 | ||
| 3227 | +++ | ||
| 3228 | *** New diary sexp 'diary-offset'. | 2756 | *** New diary sexp 'diary-offset'. |
| 3229 | It offsets another diary sexp by a number of days. This is useful | 2757 | It offsets another diary sexp by a number of days. This is useful |
| 3230 | when for example your organization has a committee meeting two days | 2758 | when for example your organization has a committee meeting two days |
| @@ -3232,13 +2760,10 @@ after every monthly meeting which takes place on the third Thursday, | |||
| 3232 | or if you would like to attend a virtual meeting scheduled in a | 2760 | or if you would like to attend a virtual meeting scheduled in a |
| 3233 | different timezone causing a difference in the date. | 2761 | different timezone causing a difference in the date. |
| 3234 | 2762 | ||
| 3235 | --- | ||
| 3236 | *** The old non-SMIE indentation of 'sh-mode' has been removed. | 2763 | *** The old non-SMIE indentation of 'sh-mode' has been removed. |
| 3237 | 2764 | ||
| 3238 | --- | ||
| 3239 | *** 'mspools-show' is now autoloaded. | 2765 | *** 'mspools-show' is now autoloaded. |
| 3240 | 2766 | ||
| 3241 | --- | ||
| 3242 | *** Loading dunnet.el in batch mode doesn't start the game any more. | 2767 | *** Loading dunnet.el in batch mode doesn't start the game any more. |
| 3243 | Instead you need to do "emacs --batch -f dunnet" to start the game in | 2768 | Instead you need to do "emacs --batch -f dunnet" to start the game in |
| 3244 | batch mode. | 2769 | batch mode. |
| @@ -3246,7 +2771,6 @@ batch mode. | |||
| 3246 | 2771 | ||
| 3247 | * New Modes and Packages in Emacs 28.1 | 2772 | * New Modes and Packages in Emacs 28.1 |
| 3248 | 2773 | ||
| 3249 | +++ | ||
| 3250 | ** New mode 'repeat-mode' to allow shorter key sequences. | 2774 | ** New mode 'repeat-mode' to allow shorter key sequences. |
| 3251 | Type 'M-x repeat-mode' to enable this mode. You can then type | 2775 | Type 'M-x repeat-mode' to enable this mode. You can then type |
| 3252 | 'C-x u u' instead of 'C-x u C-x u' to undo many changes, 'C-x o o' | 2776 | 'C-x u u' instead of 'C-x u C-x u' to undo many changes, 'C-x o o' |
| @@ -3272,7 +2796,6 @@ columns. | |||
| 3272 | Command 'describe-repeat-maps' will display a buffer showing | 2796 | Command 'describe-repeat-maps' will display a buffer showing |
| 3273 | which commands are repeatable in 'repeat-mode'. | 2797 | which commands are repeatable in 'repeat-mode'. |
| 3274 | 2798 | ||
| 3275 | --- | ||
| 3276 | ** New themes 'modus-vivendi' and 'modus-operandi'. | 2799 | ** New themes 'modus-vivendi' and 'modus-operandi'. |
| 3277 | These themes are designed to conform with the highest standard for | 2800 | These themes are designed to conform with the highest standard for |
| 3278 | color-contrast accessibility (WCAG AAA). You can load either of them | 2801 | color-contrast accessibility (WCAG AAA). You can load either of them |
| @@ -3288,14 +2811,12 @@ This is a mode for searching a RFC 2229 dictionary server. | |||
| 3288 | the mouse in 'dictionary-tooltip-dictionary' (which must be customized | 2811 | the mouse in 'dictionary-tooltip-dictionary' (which must be customized |
| 3289 | first). | 2812 | first). |
| 3290 | 2813 | ||
| 3291 | --- | ||
| 3292 | ** Lisp Data mode | 2814 | ** Lisp Data mode |
| 3293 | The new command 'lisp-data-mode' enables a major mode for buffers | 2815 | The new command 'lisp-data-mode' enables a major mode for buffers |
| 3294 | composed of Lisp symbolic expressions that do not form a computer | 2816 | composed of Lisp symbolic expressions that do not form a computer |
| 3295 | program. The ".dir-locals.el" file is automatically set to use this | 2817 | program. The ".dir-locals.el" file is automatically set to use this |
| 3296 | mode, as are other data files produced by Emacs. | 2818 | mode, as are other data files produced by Emacs. |
| 3297 | 2819 | ||
| 3298 | +++ | ||
| 3299 | ** New global mode 'global-goto-address-mode'. | 2820 | ** New global mode 'global-goto-address-mode'. |
| 3300 | This will enable 'goto-address-mode' in all buffers. | 2821 | This will enable 'goto-address-mode' in all buffers. |
| 3301 | 2822 | ||
| @@ -3309,7 +2830,6 @@ similar to prefix arguments, but are more flexible and discoverable. | |||
| 3309 | This library can create, query, navigate and display hierarchical | 2830 | This library can create, query, navigate and display hierarchical |
| 3310 | structures. | 2831 | structures. |
| 3311 | 2832 | ||
| 3312 | --- | ||
| 3313 | ** New major mode for displaying the "etc/AUTHORS" file. | 2833 | ** New major mode for displaying the "etc/AUTHORS" file. |
| 3314 | This new 'etc-authors-mode' provides font-locking for displaying the | 2834 | This new 'etc-authors-mode' provides font-locking for displaying the |
| 3315 | "etc/AUTHORS" file from the Emacs distribution, and not much else. | 2835 | "etc/AUTHORS" file from the Emacs distribution, and not much else. |
| @@ -3317,13 +2837,11 @@ This new 'etc-authors-mode' provides font-locking for displaying the | |||
| 3317 | 2837 | ||
| 3318 | * Incompatible Lisp Changes in Emacs 28.1 | 2838 | * Incompatible Lisp Changes in Emacs 28.1 |
| 3319 | 2839 | ||
| 3320 | +++ | ||
| 3321 | ** Emacs now prints a backtrace when signaling an error in batch mode. | 2840 | ** Emacs now prints a backtrace when signaling an error in batch mode. |
| 3322 | This makes debugging Emacs Lisp scripts run in batch mode easier. To | 2841 | This makes debugging Emacs Lisp scripts run in batch mode easier. To |
| 3323 | get back the old behavior, set the new variable | 2842 | get back the old behavior, set the new variable |
| 3324 | 'backtrace-on-error-noninteractive' to a nil value. | 2843 | 'backtrace-on-error-noninteractive' to a nil value. |
| 3325 | 2844 | ||
| 3326 | --- | ||
| 3327 | ** Some floating-point numbers are now handled differently by the Lisp reader. | 2845 | ** Some floating-point numbers are now handled differently by the Lisp reader. |
| 3328 | In previous versions of Emacs, numbers with a trailing dot and an exponent | 2846 | In previous versions of Emacs, numbers with a trailing dot and an exponent |
| 3329 | were read as integers and the exponent ignored: 2.e6 was interpreted as the | 2847 | were read as integers and the exponent ignored: 2.e6 was interpreted as the |
| @@ -3331,28 +2849,24 @@ integer 2. Such numerals are now read as floats with the exponent included: | |||
| 3331 | 2.e6 is now read as the floating-point value 2000000.0. | 2849 | 2.e6 is now read as the floating-point value 2000000.0. |
| 3332 | That is, '(read-from-string "1.e3")' => '(1000.0 . 4)' now. | 2850 | That is, '(read-from-string "1.e3")' => '(1000.0 . 4)' now. |
| 3333 | 2851 | ||
| 3334 | --- | ||
| 3335 | ** 'equal' no longer examines some contents of window configurations. | 2852 | ** 'equal' no longer examines some contents of window configurations. |
| 3336 | Instead, it considers window configurations to be equal only if they | 2853 | Instead, it considers window configurations to be equal only if they |
| 3337 | are 'eq'. To compare contents, use 'compare-window-configurations' | 2854 | are 'eq'. To compare contents, use 'compare-window-configurations' |
| 3338 | instead. This change helps fix a bug in 'sxhash-equal', which returned | 2855 | instead. This change helps fix a bug in 'sxhash-equal', which returned |
| 3339 | incorrect hashes for window configurations and some other objects. | 2856 | incorrect hashes for window configurations and some other objects. |
| 3340 | 2857 | ||
| 3341 | +++ | ||
| 3342 | ** The 'lexical-binding' local variable is always enabled. | 2858 | ** The 'lexical-binding' local variable is always enabled. |
| 3343 | Previously, if 'enable-local-variables' was nil, a 'lexical-binding' | 2859 | Previously, if 'enable-local-variables' was nil, a 'lexical-binding' |
| 3344 | local variable would not be heeded. This has now changed, and a file | 2860 | local variable would not be heeded. This has now changed, and a file |
| 3345 | with a 'lexical-binding' cookie is always heeded. To revert to the | 2861 | with a 'lexical-binding' cookie is always heeded. To revert to the |
| 3346 | old behavior, set 'permanently-enabled-local-variables' to nil. | 2862 | old behavior, set 'permanently-enabled-local-variables' to nil. |
| 3347 | 2863 | ||
| 3348 | +++ | ||
| 3349 | ** '&rest' in argument lists must always be followed by a variable name. | 2864 | ** '&rest' in argument lists must always be followed by a variable name. |
| 3350 | Omitting the variable name after '&rest' was previously tolerated in | 2865 | Omitting the variable name after '&rest' was previously tolerated in |
| 3351 | some cases but not consistently so; it could lead to crashes or | 2866 | some cases but not consistently so; it could lead to crashes or |
| 3352 | outright wrong results. Since the utility was marginal at best, it is | 2867 | outright wrong results. Since the utility was marginal at best, it is |
| 3353 | now an error to omit the variable. | 2868 | now an error to omit the variable. |
| 3354 | 2869 | ||
| 3355 | --- | ||
| 3356 | ** 'kill-all-local-variables' has changed how it handles non-symbol hooks. | 2870 | ** 'kill-all-local-variables' has changed how it handles non-symbol hooks. |
| 3357 | The function is documented to eliminate all buffer-local bindings | 2871 | The function is documented to eliminate all buffer-local bindings |
| 3358 | except variables with a 'permanent-local' property, or hooks that | 2872 | except variables with a 'permanent-local' property, or hooks that |
| @@ -3360,14 +2874,12 @@ have elements with a 'permanent-local-hook' property. In addition, it | |||
| 3360 | would also keep lambda expressions in hooks sometimes. The latter has | 2874 | would also keep lambda expressions in hooks sometimes. The latter has |
| 3361 | now been changed: The function will now also remove these. | 2875 | now been changed: The function will now also remove these. |
| 3362 | 2876 | ||
| 3363 | +++ | ||
| 3364 | ** Temporary buffers no longer run certain buffer hooks. | 2877 | ** Temporary buffers no longer run certain buffer hooks. |
| 3365 | The macros 'with-temp-buffer' and 'with-temp-file' no longer run the | 2878 | The macros 'with-temp-buffer' and 'with-temp-file' no longer run the |
| 3366 | hooks 'kill-buffer-hook', 'kill-buffer-query-functions', and | 2879 | hooks 'kill-buffer-hook', 'kill-buffer-query-functions', and |
| 3367 | 'buffer-list-update-hook' for the temporary buffers they create. This | 2880 | 'buffer-list-update-hook' for the temporary buffers they create. This |
| 3368 | avoids slowing them down when a lot of these hooks are defined. | 2881 | avoids slowing them down when a lot of these hooks are defined. |
| 3369 | 2882 | ||
| 3370 | +++ | ||
| 3371 | ** New face 'child-frame-border' and frame parameter 'child-frame-border-width'. | 2883 | ** New face 'child-frame-border' and frame parameter 'child-frame-border-width'. |
| 3372 | The face and width of child frames borders can now be determined | 2884 | The face and width of child frames borders can now be determined |
| 3373 | separately from those of normal frames. To minimize backward | 2885 | separately from those of normal frames. To minimize backward |
| @@ -3376,7 +2888,6 @@ parameter will fall back to using 'internal-border-width'. However, | |||
| 3376 | the new 'child-frame-border' face does constitute a breaking change | 2888 | the new 'child-frame-border' face does constitute a breaking change |
| 3377 | since child frames' borders no longer use the 'internal-border' face. | 2889 | since child frames' borders no longer use the 'internal-border' face. |
| 3378 | 2890 | ||
| 3379 | --- | ||
| 3380 | ** 'run-at-time' now tries harder to implement the t TIME parameter. | 2891 | ** 'run-at-time' now tries harder to implement the t TIME parameter. |
| 3381 | If TIME is t, the timer runs at an integral multiple of REPEAT. | 2892 | If TIME is t, the timer runs at an integral multiple of REPEAT. |
| 3382 | (I.e., if given a REPEAT of 60, it'll run at 08:11:00, 08:12:00, | 2893 | (I.e., if given a REPEAT of 60, it'll run at 08:11:00, 08:12:00, |
| @@ -3387,18 +2898,15 @@ has now changed, and the timer code now recomputes the integral | |||
| 3387 | multiple every time it runs, which means that if the laptop wakes at | 2898 | multiple every time it runs, which means that if the laptop wakes at |
| 3388 | 08:16:43, it'll fire at that time, but then at 08:17:00, 08:18:00... | 2899 | 08:16:43, it'll fire at that time, but then at 08:17:00, 08:18:00... |
| 3389 | 2900 | ||
| 3390 | --- | ||
| 3391 | ** 'parse-partial-sexp' now signals an error if TO is smaller than FROM. | 2901 | ** 'parse-partial-sexp' now signals an error if TO is smaller than FROM. |
| 3392 | Previously, this would lead to the function interpreting FROM as TO and | 2902 | Previously, this would lead to the function interpreting FROM as TO and |
| 3393 | vice versa, which would be confusing when passing in OLDSTATE, which | 2903 | vice versa, which would be confusing when passing in OLDSTATE, which |
| 3394 | refers to the old state at FROM. | 2904 | refers to the old state at FROM. |
| 3395 | 2905 | ||
| 3396 | +++ | ||
| 3397 | ** 'global-mode-string' constructs should end with a space. | 2906 | ** 'global-mode-string' constructs should end with a space. |
| 3398 | This was previously not formalized, which led to combinations of modes | 2907 | This was previously not formalized, which led to combinations of modes |
| 3399 | displaying data "smushed together" on the mode line. | 2908 | displaying data "smushed together" on the mode line. |
| 3400 | 2909 | ||
| 3401 | +++ | ||
| 3402 | ** 'overlays-in' now handles zero-length overlays slightly differently. | 2910 | ** 'overlays-in' now handles zero-length overlays slightly differently. |
| 3403 | Previously, zero-length overlays at the end of the buffer were included | 2911 | Previously, zero-length overlays at the end of the buffer were included |
| 3404 | in the result (if the region queried for stopped at that position). | 2912 | in the result (if the region queried for stopped at that position). |
| @@ -3406,7 +2914,6 @@ The same was not the case if the buffer had been narrowed to exclude | |||
| 3406 | the real end of the buffer. This has now been changed, and | 2914 | the real end of the buffer. This has now been changed, and |
| 3407 | zero-length overlays at 'point-max' are always included in the results. | 2915 | zero-length overlays at 'point-max' are always included in the results. |
| 3408 | 2916 | ||
| 3409 | --- | ||
| 3410 | ** 'replace-match' now runs modification hooks slightly later. | 2917 | ** 'replace-match' now runs modification hooks slightly later. |
| 3411 | The function is documented to leave point after the replacement text, | 2918 | The function is documented to leave point after the replacement text, |
| 3412 | but this was not always the case if a modification hook inserted text | 2919 | but this was not always the case if a modification hook inserted text |
| @@ -3415,28 +2922,23 @@ point where the end of the inserted text would have been before the | |||
| 3415 | hook ran. 'replace-match' now always leaves point after the | 2922 | hook ran. 'replace-match' now always leaves point after the |
| 3416 | replacement text. | 2923 | replacement text. |
| 3417 | 2924 | ||
| 3418 | +++ | ||
| 3419 | ** 'completing-read-default' sets completion variables buffer-locally. | 2925 | ** 'completing-read-default' sets completion variables buffer-locally. |
| 3420 | 'minibuffer-completion-table' and related variables are now set buffer-locally | 2926 | 'minibuffer-completion-table' and related variables are now set buffer-locally |
| 3421 | in the minibuffer instead of being set via a global let-binding. | 2927 | in the minibuffer instead of being set via a global let-binding. |
| 3422 | 2928 | ||
| 3423 | --- | ||
| 3424 | ** XML serialization functions now reject invalid characters. | 2929 | ** XML serialization functions now reject invalid characters. |
| 3425 | Previously, 'xml-print' would produce invalid XML when given a string | 2930 | Previously, 'xml-print' would produce invalid XML when given a string |
| 3426 | with characters that are not valid in XML (see | 2931 | with characters that are not valid in XML (see |
| 3427 | https://www.w3.org/TR/xml/#charsets). Now it rejects such strings. | 2932 | https://www.w3.org/TR/xml/#charsets). Now it rejects such strings. |
| 3428 | 2933 | ||
| 3429 | --- | ||
| 3430 | ** JSON | 2934 | ** JSON |
| 3431 | 2935 | ||
| 3432 | --- | ||
| 3433 | *** JSON number parsing is now stricter. | 2936 | *** JSON number parsing is now stricter. |
| 3434 | Numbers with a leading plus sign, leading zeros, or a missing integer | 2937 | Numbers with a leading plus sign, leading zeros, or a missing integer |
| 3435 | component are now rejected by 'json-read' and friends. This makes | 2938 | component are now rejected by 'json-read' and friends. This makes |
| 3436 | them more compliant with the JSON specification and consistent with | 2939 | them more compliant with the JSON specification and consistent with |
| 3437 | the native JSON parsing functions. | 2940 | the native JSON parsing functions. |
| 3438 | 2941 | ||
| 3439 | --- | ||
| 3440 | *** JSON functions support the semantics of RFC 8259. | 2942 | *** JSON functions support the semantics of RFC 8259. |
| 3441 | The JSON functions 'json-serialize', 'json-insert', | 2943 | The JSON functions 'json-serialize', 'json-insert', |
| 3442 | 'json-parse-string', and 'json-parse-buffer' now implement some of the | 2944 | 'json-parse-string', and 'json-parse-buffer' now implement some of the |
| @@ -3444,7 +2946,6 @@ semantics of RFC 8259 instead of the earlier RFC 4627. In particular, | |||
| 3444 | these functions now accept top-level JSON values that are neither | 2946 | these functions now accept top-level JSON values that are neither |
| 3445 | arrays nor objects. | 2947 | arrays nor objects. |
| 3446 | 2948 | ||
| 3447 | --- | ||
| 3448 | *** Some JSON encoding functions are now obsolete. | 2949 | *** Some JSON encoding functions are now obsolete. |
| 3449 | The functions 'json-encode-number', 'json-encode-hash-table', | 2950 | The functions 'json-encode-number', 'json-encode-hash-table', |
| 3450 | 'json-encode-key', and 'json-encode-list' are now obsolete. | 2951 | 'json-encode-key', and 'json-encode-list' are now obsolete. |
| @@ -3454,7 +2955,6 @@ used instead. Uses of 'json-encode-list' should be changed to call | |||
| 3454 | one of 'json-encode', 'json-encode-alist', 'json-encode-plist', or | 2955 | one of 'json-encode', 'json-encode-alist', 'json-encode-plist', or |
| 3455 | 'json-encode-array' instead. | 2956 | 'json-encode-array' instead. |
| 3456 | 2957 | ||
| 3457 | +++ | ||
| 3458 | *** Native JSON functions now signal an error if libjansson is unavailable. | 2958 | *** Native JSON functions now signal an error if libjansson is unavailable. |
| 3459 | This affects 'json-serialize', 'json-insert', 'json-parse-string', | 2959 | This affects 'json-serialize', 'json-insert', 'json-parse-string', |
| 3460 | and 'json-parse-buffer'. This can happen if Emacs was compiled with | 2960 | and 'json-parse-buffer'. This can happen if Emacs was compiled with |
| @@ -3462,148 +2962,117 @@ libjansson, but the DLL cannot be found and/or loaded by Emacs at run | |||
| 3462 | time. Previously, Emacs would display a message and return nil in | 2962 | time. Previously, Emacs would display a message and return nil in |
| 3463 | these cases. | 2963 | these cases. |
| 3464 | 2964 | ||
| 3465 | +++ | ||
| 3466 | ** The use of positional arguments in 'define-minor-mode' is obsolete. | 2965 | ** The use of positional arguments in 'define-minor-mode' is obsolete. |
| 3467 | These were actually rendered obsolete in Emacs 21 but were never | 2966 | These were actually rendered obsolete in Emacs 21 but were never |
| 3468 | marked as such. | 2967 | marked as such. |
| 3469 | 2968 | ||
| 3470 | --- | ||
| 3471 | ** 'pcomplete-ignore-case' is now an obsolete alias of 'completion-ignore-case'. | 2969 | ** 'pcomplete-ignore-case' is now an obsolete alias of 'completion-ignore-case'. |
| 3472 | 2970 | ||
| 3473 | +++ | ||
| 3474 | ** 'completions-annotations' face is not used when the caller puts own face. | 2971 | ** 'completions-annotations' face is not used when the caller puts own face. |
| 3475 | This affects the suffix specified by completion 'annotation-function'. | 2972 | This affects the suffix specified by completion 'annotation-function'. |
| 3476 | 2973 | ||
| 3477 | +++ | ||
| 3478 | ** An active minibuffer now has major mode 'minibuffer-mode'. | 2974 | ** An active minibuffer now has major mode 'minibuffer-mode'. |
| 3479 | This is instead of the erroneous 'minibuffer-inactive-mode' it | 2975 | This is instead of the erroneous 'minibuffer-inactive-mode' it |
| 3480 | formerly had. | 2976 | formerly had. |
| 3481 | 2977 | ||
| 3482 | --- | ||
| 3483 | ** 'make-text-button' no longer modifies text properties of its first argument. | 2978 | ** 'make-text-button' no longer modifies text properties of its first argument. |
| 3484 | When its first argument is a string, 'make-text-button' no longer | 2979 | When its first argument is a string, 'make-text-button' no longer |
| 3485 | modifies the string's text properties; instead, it uses and returns | 2980 | modifies the string's text properties; instead, it uses and returns |
| 3486 | a copy of the string. This helps avoid trouble when strings are | 2981 | a copy of the string. This helps avoid trouble when strings are |
| 3487 | shared or constants. | 2982 | shared or constants. |
| 3488 | 2983 | ||
| 3489 | +++ | ||
| 3490 | ** Some properties from completion tables are now preserved. | 2984 | ** Some properties from completion tables are now preserved. |
| 3491 | If 'minibuffer-allow-text-properties' is non-nil, doing completion | 2985 | If 'minibuffer-allow-text-properties' is non-nil, doing completion |
| 3492 | over a table of strings with properties will no longer remove all the | 2986 | over a table of strings with properties will no longer remove all the |
| 3493 | properties before returning. This affects things like 'completing-read'. | 2987 | properties before returning. This affects things like 'completing-read'. |
| 3494 | 2988 | ||
| 3495 | --- | ||
| 3496 | ** 'dns-query' now consistently uses Lisp integers to represent integers. | 2989 | ** 'dns-query' now consistently uses Lisp integers to represent integers. |
| 3497 | Formerly it made an exception for integer components of SOA records, | 2990 | Formerly it made an exception for integer components of SOA records, |
| 3498 | because SOA serial numbers can exceed fixnum ranges on 32-bit platforms. | 2991 | because SOA serial numbers can exceed fixnum ranges on 32-bit platforms. |
| 3499 | Emacs now supports bignums so this old glitch is no longer needed. | 2992 | Emacs now supports bignums so this old glitch is no longer needed. |
| 3500 | 2993 | ||
| 3501 | +++ | ||
| 3502 | ** The '&define' keyword in an Edebug specification now disables backtracking. | 2994 | ** The '&define' keyword in an Edebug specification now disables backtracking. |
| 3503 | The implementation was buggy, and multiple '&define' forms in an '&or' | 2995 | The implementation was buggy, and multiple '&define' forms in an '&or' |
| 3504 | form should be exceedingly rare. See the Info node "(elisp) Backtracking" in | 2996 | form should be exceedingly rare. See the Info node "(elisp) Backtracking" in |
| 3505 | the Emacs Lisp reference manual for background. | 2997 | the Emacs Lisp reference manual for background. |
| 3506 | 2998 | ||
| 3507 | +++ | ||
| 3508 | ** The error 'ftp-error' belongs also to category 'remote-file-error'. | 2999 | ** The error 'ftp-error' belongs also to category 'remote-file-error'. |
| 3509 | 3000 | ||
| 3510 | +++ | ||
| 3511 | ** The WHEN argument of 'make-obsolete' and related functions is mandatory. | 3001 | ** The WHEN argument of 'make-obsolete' and related functions is mandatory. |
| 3512 | The use of those functions without a WHEN argument was marked obsolete | 3002 | The use of those functions without a WHEN argument was marked obsolete |
| 3513 | back in Emacs 23.1. The affected functions are: 'make-obsolete', | 3003 | back in Emacs 23.1. The affected functions are: 'make-obsolete', |
| 3514 | 'define-obsolete-function-alias', 'make-obsolete-variable', | 3004 | 'define-obsolete-function-alias', 'make-obsolete-variable', |
| 3515 | 'define-obsolete-variable-alias'. | 3005 | 'define-obsolete-variable-alias'. |
| 3516 | 3006 | ||
| 3517 | +++ | ||
| 3518 | ** 'inhibit-nul-byte-detection' is renamed to 'inhibit-null-byte-detection'. | 3007 | ** 'inhibit-nul-byte-detection' is renamed to 'inhibit-null-byte-detection'. |
| 3519 | 3008 | ||
| 3520 | --- | ||
| 3521 | ** Some functions are no longer considered safe by 'unsafep': | 3009 | ** Some functions are no longer considered safe by 'unsafep': |
| 3522 | 'replace-regexp-in-string', 'catch', 'throw', 'error', 'signal' | 3010 | 'replace-regexp-in-string', 'catch', 'throw', 'error', 'signal' |
| 3523 | and 'play-sound-file'. | 3011 | and 'play-sound-file'. |
| 3524 | 3012 | ||
| 3525 | --- | ||
| 3526 | ** 'sql-*-statement-starters' are no longer user options. | 3013 | ** 'sql-*-statement-starters' are no longer user options. |
| 3527 | These variables describe facts about the SQL standard and | 3014 | These variables describe facts about the SQL standard and |
| 3528 | product-specific additions. There should be no need for users to | 3015 | product-specific additions. There should be no need for users to |
| 3529 | customize them. | 3016 | customize them. |
| 3530 | 3017 | ||
| 3531 | --- | ||
| 3532 | ** Some locale-related variables have been removed. | 3018 | ** Some locale-related variables have been removed. |
| 3533 | The Lisp variables 'previous-system-messages-locale' and | 3019 | The Lisp variables 'previous-system-messages-locale' and |
| 3534 | 'previous-system-time-locale' have been removed, as they were created | 3020 | 'previous-system-time-locale' have been removed, as they were created |
| 3535 | by mistake and were not useful to Lisp code. | 3021 | by mistake and were not useful to Lisp code. |
| 3536 | 3022 | ||
| 3537 | --- | ||
| 3538 | ** Function 'lm-maintainer' is replaced with 'lm-maintainers'. | 3023 | ** Function 'lm-maintainer' is replaced with 'lm-maintainers'. |
| 3539 | The former is now declared obsolete. | 3024 | The former is now declared obsolete. |
| 3540 | 3025 | ||
| 3541 | +++ | ||
| 3542 | ** facemenu.el is no longer preloaded. | 3026 | ** facemenu.el is no longer preloaded. |
| 3543 | To use functions/variables from the package, you now have to say | 3027 | To use functions/variables from the package, you now have to say |
| 3544 | '(require 'facemenu)' or similar. | 3028 | '(require 'facemenu)' or similar. |
| 3545 | 3029 | ||
| 3546 | --- | ||
| 3547 | ** 'facemenu-color-alist' is now obsolete, and is not used. | 3030 | ** 'facemenu-color-alist' is now obsolete, and is not used. |
| 3548 | 3031 | ||
| 3549 | --- | ||
| 3550 | ** The variable 'keyboard-type' is obsolete and not dynamically scoped any more. | 3032 | ** The variable 'keyboard-type' is obsolete and not dynamically scoped any more. |
| 3551 | 3033 | ||
| 3552 | +++ | ||
| 3553 | ** The 'values' variable is now obsolete. | 3034 | ** The 'values' variable is now obsolete. |
| 3554 | Using it just contributes to the growth of the Emacs memory | 3035 | Using it just contributes to the growth of the Emacs memory |
| 3555 | footprint. | 3036 | footprint. |
| 3556 | 3037 | ||
| 3557 | --- | ||
| 3558 | ** The 'load-dangerous-libraries' variable is now obsolete. | 3038 | ** The 'load-dangerous-libraries' variable is now obsolete. |
| 3559 | It was used to allow loading Lisp libraries compiled by XEmacs, a | 3039 | It was used to allow loading Lisp libraries compiled by XEmacs, a |
| 3560 | modified version of Emacs which is no longer actively maintained. | 3040 | modified version of Emacs which is no longer actively maintained. |
| 3561 | This is no longer supported, and setting this variable has no effect. | 3041 | This is no longer supported, and setting this variable has no effect. |
| 3562 | 3042 | ||
| 3563 | +++ | ||
| 3564 | ** The macro 'with-displayed-buffer-window' is now obsolete. | 3043 | ** The macro 'with-displayed-buffer-window' is now obsolete. |
| 3565 | Use macro 'with-current-buffer-window' with action alist entry 'body-function'. | 3044 | Use macro 'with-current-buffer-window' with action alist entry 'body-function'. |
| 3566 | 3045 | ||
| 3567 | --- | ||
| 3568 | ** The rfc2368.el library is now obsolete. | 3046 | ** The rfc2368.el library is now obsolete. |
| 3569 | Use rfc6068.el instead. The main difference is that | 3047 | Use rfc6068.el instead. The main difference is that |
| 3570 | 'rfc2368-parse-mailto-url' and 'rfc2368-unhexify-string' assumed that | 3048 | 'rfc2368-parse-mailto-url' and 'rfc2368-unhexify-string' assumed that |
| 3571 | the strings were all-ASCII, while 'rfc6068-parse-mailto-url' and | 3049 | the strings were all-ASCII, while 'rfc6068-parse-mailto-url' and |
| 3572 | 'rfc6068-unhexify-string' parse UTF-8 strings. | 3050 | 'rfc6068-unhexify-string' parse UTF-8 strings. |
| 3573 | 3051 | ||
| 3574 | --- | ||
| 3575 | ** The inversion.el library is now obsolete. | 3052 | ** The inversion.el library is now obsolete. |
| 3576 | 3053 | ||
| 3577 | --- | ||
| 3578 | ** The metamail.el library is now obsolete. | 3054 | ** The metamail.el library is now obsolete. |
| 3579 | 3055 | ||
| 3580 | ** Edebug changes | 3056 | ** Edebug changes |
| 3581 | 3057 | ||
| 3582 | --- | ||
| 3583 | *** 'get-edebug-spec' is obsolete, replaced by 'edebug-get-spec'. | 3058 | *** 'get-edebug-spec' is obsolete, replaced by 'edebug-get-spec'. |
| 3584 | 3059 | ||
| 3585 | +++ | ||
| 3586 | *** The spec operator ':name NAME' is obsolete, use '&name' instead. | 3060 | *** The spec operator ':name NAME' is obsolete, use '&name' instead. |
| 3587 | 3061 | ||
| 3588 | +++ | ||
| 3589 | *** The spec element 'function-form' is obsolete, use 'form' instead. | 3062 | *** The spec element 'function-form' is obsolete, use 'form' instead. |
| 3590 | 3063 | ||
| 3591 | +++ | ||
| 3592 | *** New function 'def-edebug-elem-spec' to define Edebug spec elements. | 3064 | *** New function 'def-edebug-elem-spec' to define Edebug spec elements. |
| 3593 | These used to be defined with 'def-edebug-spec' thus conflating the | 3065 | These used to be defined with 'def-edebug-spec' thus conflating the |
| 3594 | two name spaces, which lead to name collisions. | 3066 | two name spaces, which lead to name collisions. |
| 3595 | The use of 'def-edebug-spec' to define Edebug spec elements is | 3067 | The use of 'def-edebug-spec' to define Edebug spec elements is |
| 3596 | declared obsolete. | 3068 | declared obsolete. |
| 3597 | 3069 | ||
| 3598 | --- | ||
| 3599 | ** The sb-image.el library is now obsolete. | 3070 | ** The sb-image.el library is now obsolete. |
| 3600 | This was a compatibility kludge which is no longer needed. | 3071 | This was a compatibility kludge which is no longer needed. |
| 3601 | 3072 | ||
| 3602 | --- | ||
| 3603 | ** Some libraries obsolete since Emacs 23 have been removed: | 3073 | ** Some libraries obsolete since Emacs 23 have been removed: |
| 3604 | ledit.el, lmenu.el, lucid.el and old-whitespace.el. | 3074 | ledit.el, lmenu.el, lucid.el and old-whitespace.el. |
| 3605 | 3075 | ||
| 3606 | --- | ||
| 3607 | ** Some functions and variables obsolete since Emacs 23 have been removed: | 3076 | ** Some functions and variables obsolete since Emacs 23 have been removed: |
| 3608 | 'GOLD-map', 'advertised-xscheme-send-previous-expression', | 3077 | 'GOLD-map', 'advertised-xscheme-send-previous-expression', |
| 3609 | 'allout-init', 'bookmark-jump-noselect', | 3078 | 'allout-init', 'bookmark-jump-noselect', |
| @@ -3675,20 +3144,16 @@ ledit.el, lmenu.el, lucid.el and old-whitespace.el. | |||
| 3675 | 'vcursor-toggle-vcursor-map', 'w32-focus-frame', 'w32-select-font', | 3144 | 'vcursor-toggle-vcursor-map', 'w32-focus-frame', 'w32-select-font', |
| 3676 | 'wisent-lex-make-token-table'. | 3145 | 'wisent-lex-make-token-table'. |
| 3677 | 3146 | ||
| 3678 | --- | ||
| 3679 | ** Some functions and variables obsolete since Emacs 22 have been removed: | 3147 | ** Some functions and variables obsolete since Emacs 22 have been removed: |
| 3680 | 'erc-current-network', 'gnus-article-hide-pgp-hook', | 3148 | 'erc-current-network', 'gnus-article-hide-pgp-hook', |
| 3681 | 'gnus-inews-mark-gcc-as-read', 'gnus-treat-display-xface', | 3149 | 'gnus-inews-mark-gcc-as-read', 'gnus-treat-display-xface', |
| 3682 | 'gnus-treat-strip-pgp', 'nnmail-spool-file'. | 3150 | 'gnus-treat-strip-pgp', 'nnmail-spool-file'. |
| 3683 | 3151 | ||
| 3684 | --- | ||
| 3685 | ** The obsolete function 'thread-alive-p' has been removed. | 3152 | ** The obsolete function 'thread-alive-p' has been removed. |
| 3686 | 3153 | ||
| 3687 | --- | ||
| 3688 | ** The variable 'force-new-style-backquotes' has been removed. | 3154 | ** The variable 'force-new-style-backquotes' has been removed. |
| 3689 | This removes the final remaining trace of old-style backquotes. | 3155 | This removes the final remaining trace of old-style backquotes. |
| 3690 | 3156 | ||
| 3691 | --- | ||
| 3692 | ** Some obsolete variable and function aliases in dbus.el have been removed. | 3157 | ** Some obsolete variable and function aliases in dbus.el have been removed. |
| 3693 | In Emacs 24.3, the variable 'dbus-event-error-hooks' was renamed to | 3158 | In Emacs 24.3, the variable 'dbus-event-error-hooks' was renamed to |
| 3694 | 'dbus-event-error-functions' and the function | 3159 | 'dbus-event-error-functions' and the function |
| @@ -3696,7 +3161,6 @@ In Emacs 24.3, the variable 'dbus-event-error-hooks' was renamed to | |||
| 3696 | The old names, which were kept as obsolete aliases of the new names, | 3161 | The old names, which were kept as obsolete aliases of the new names, |
| 3697 | have now been removed. | 3162 | have now been removed. |
| 3698 | 3163 | ||
| 3699 | --- | ||
| 3700 | ** 'find-function-source-path' renamed and re-documented. | 3164 | ** 'find-function-source-path' renamed and re-documented. |
| 3701 | The 'find-function' command (and various related commands) were | 3165 | The 'find-function' command (and various related commands) were |
| 3702 | documented to respect 'find-function-source-path', and to search for | 3166 | documented to respect 'find-function-source-path', and to search for |
| @@ -3709,7 +3173,6 @@ still being used by 'find-library' and related commands, so the | |||
| 3709 | user option has been renamed to 'find-library-source-path', and | 3173 | user option has been renamed to 'find-library-source-path', and |
| 3710 | 'find-function-source-path' is now an obsolete variable alias. | 3174 | 'find-function-source-path' is now an obsolete variable alias. |
| 3711 | 3175 | ||
| 3712 | --- | ||
| 3713 | ** The macro 'vc-call' no longer evaluates its second argument twice. | 3176 | ** The macro 'vc-call' no longer evaluates its second argument twice. |
| 3714 | 3177 | ||
| 3715 | ** Xref migrated from EIEIO to 'cl-defstruct' for its core objects. | 3178 | ** Xref migrated from EIEIO to 'cl-defstruct' for its core objects. |
| @@ -3729,7 +3192,6 @@ use with "match items" without adding EIEIO as a dependency. | |||
| 3729 | 3192 | ||
| 3730 | * Lisp Changes in Emacs 28.1 | 3193 | * Lisp Changes in Emacs 28.1 |
| 3731 | 3194 | ||
| 3732 | +++ | ||
| 3733 | ** The 'interactive' syntax has been extended to allow listing applicable modes. | 3195 | ** The 'interactive' syntax has been extended to allow listing applicable modes. |
| 3734 | Forms like '(interactive "p" dired-mode)' can be used to annotate the | 3196 | Forms like '(interactive "p" dired-mode)' can be used to annotate the |
| 3735 | commands as being applicable for modes derived from 'dired-mode', | 3197 | commands as being applicable for modes derived from 'dired-mode', |
| @@ -3740,7 +3202,6 @@ Also note that by default these annotations have no effect, unless the | |||
| 3740 | new user option 'read-extended-command-predicate' option is customized | 3202 | new user option 'read-extended-command-predicate' option is customized |
| 3741 | to call 'command-completion-default-include-p' or a similar function. | 3203 | to call 'command-completion-default-include-p' or a similar function. |
| 3742 | 3204 | ||
| 3743 | +++ | ||
| 3744 | ** New 'declare' forms to control completion of commands in 'M-x'. | 3205 | ** New 'declare' forms to control completion of commands in 'M-x'. |
| 3745 | '(declare (completion PREDICATE))' can be used as a general predicate | 3206 | '(declare (completion PREDICATE))' can be used as a general predicate |
| 3746 | to say whether the command should be considered a completion candidate | 3207 | to say whether the command should be considered a completion candidate |
| @@ -3759,74 +3220,61 @@ default value of 'read-extended-command-predicate' is nil, which means | |||
| 3759 | no commands that match what you have typed are excluded from being | 3220 | no commands that match what you have typed are excluded from being |
| 3760 | completion candidates. | 3221 | completion candidates. |
| 3761 | 3222 | ||
| 3762 | +++ | ||
| 3763 | ** 'define-minor-mode' now takes an ':interactive' argument. | 3223 | ** 'define-minor-mode' now takes an ':interactive' argument. |
| 3764 | This can be used for specifying which modes this minor mode is meant | 3224 | This can be used for specifying which modes this minor mode is meant |
| 3765 | for, or to make the new minor mode non-interactive. The default value | 3225 | for, or to make the new minor mode non-interactive. The default value |
| 3766 | is t. | 3226 | is t. |
| 3767 | 3227 | ||
| 3768 | +++ | ||
| 3769 | ** 'define-derived-mode' now takes an ':interactive' argument. | 3228 | ** 'define-derived-mode' now takes an ':interactive' argument. |
| 3770 | This can be used to control whether the defined mode is a command | 3229 | This can be used to control whether the defined mode is a command |
| 3771 | or not, and is useful when defining commands that aren't meant to be | 3230 | or not, and is useful when defining commands that aren't meant to be |
| 3772 | used by users directly. | 3231 | used by users directly. |
| 3773 | 3232 | ||
| 3774 | +++ | ||
| 3775 | ** 'define-globalized-minor-mode' now takes a ':predicate' parameter. | 3233 | ** 'define-globalized-minor-mode' now takes a ':predicate' parameter. |
| 3776 | This can be used to control which major modes the minor mode should be | 3234 | This can be used to control which major modes the minor mode should be |
| 3777 | used in. | 3235 | used in. |
| 3778 | 3236 | ||
| 3779 | +++ | ||
| 3780 | ** 'condition-case' now allows for a success handler. | 3237 | ** 'condition-case' now allows for a success handler. |
| 3781 | It is written as '(:success BODY...)' where BODY is executed | 3238 | It is written as '(:success BODY...)' where BODY is executed |
| 3782 | whenever the protected form terminates without error, with the | 3239 | whenever the protected form terminates without error, with the |
| 3783 | specified variable bound to the value of the protected form. | 3240 | specified variable bound to the value of the protected form. |
| 3784 | 3241 | ||
| 3785 | +++ | ||
| 3786 | ** New function 'benchmark-call' to measure the execution time of a function. | 3242 | ** New function 'benchmark-call' to measure the execution time of a function. |
| 3787 | Additionally, the number of repetitions can be expressed as a minimal duration | 3243 | Additionally, the number of repetitions can be expressed as a minimal duration |
| 3788 | in seconds. | 3244 | in seconds. |
| 3789 | 3245 | ||
| 3790 | +++ | ||
| 3791 | ** The value thrown to the 'exit' label can now be a function. | 3246 | ** The value thrown to the 'exit' label can now be a function. |
| 3792 | This is in addition to values t or nil. If the value is a function, | 3247 | This is in addition to values t or nil. If the value is a function, |
| 3793 | the command loop will call it with zero arguments before returning. | 3248 | the command loop will call it with zero arguments before returning. |
| 3794 | 3249 | ||
| 3795 | +++ | ||
| 3796 | ** The behavior of 'format-spec' is now closer to that of 'format'. | 3250 | ** The behavior of 'format-spec' is now closer to that of 'format'. |
| 3797 | In order for the two functions to behave more consistently, | 3251 | In order for the two functions to behave more consistently, |
| 3798 | 'format-spec' now pads and truncates based on string width rather than | 3252 | 'format-spec' now pads and truncates based on string width rather than |
| 3799 | length, and also supports format specifications that include a | 3253 | length, and also supports format specifications that include a |
| 3800 | truncating precision field, such as "%.2a". | 3254 | truncating precision field, such as "%.2a". |
| 3801 | 3255 | ||
| 3802 | --- | ||
| 3803 | ** 'defvar' detects the error of defining a variable currently lexically bound. | 3256 | ** 'defvar' detects the error of defining a variable currently lexically bound. |
| 3804 | Such mixes are always signs that the outer lexical binding was an | 3257 | Such mixes are always signs that the outer lexical binding was an |
| 3805 | error and should have used dynamic binding instead. | 3258 | error and should have used dynamic binding instead. |
| 3806 | 3259 | ||
| 3807 | --- | ||
| 3808 | ** New variable 'inhibit-mouse-event-check'. | 3260 | ** New variable 'inhibit-mouse-event-check'. |
| 3809 | If bound to non-nil, a command with '(interactive "e")' doesn't signal | 3261 | If bound to non-nil, a command with '(interactive "e")' doesn't signal |
| 3810 | an error when invoked by input event that is not a mouse click (e.g., | 3262 | an error when invoked by input event that is not a mouse click (e.g., |
| 3811 | a key sequence). | 3263 | a key sequence). |
| 3812 | 3264 | ||
| 3813 | --- | ||
| 3814 | ** New variable 'redisplay-skip-initial-frame' to enable batch redisplay tests. | 3265 | ** New variable 'redisplay-skip-initial-frame' to enable batch redisplay tests. |
| 3815 | Setting it to nil forces the redisplay to do its job even in the | 3266 | Setting it to nil forces the redisplay to do its job even in the |
| 3816 | initial frame used in batch mode. | 3267 | initial frame used in batch mode. |
| 3817 | 3268 | ||
| 3818 | +++ | ||
| 3819 | ** Doc strings can now link to customization groups. | 3269 | ** Doc strings can now link to customization groups. |
| 3820 | Text like "customization group `whitespace'" will be made into a | 3270 | Text like "customization group `whitespace'" will be made into a |
| 3821 | button. When clicked, it will open a Custom buffer displaying that | 3271 | button. When clicked, it will open a Custom buffer displaying that |
| 3822 | customization group. | 3272 | customization group. |
| 3823 | 3273 | ||
| 3824 | +++ | ||
| 3825 | ** Doc strings can now link to man pages. | 3274 | ** Doc strings can now link to man pages. |
| 3826 | Text like "man page `chmod(1)'" will be made into a button. When | 3275 | Text like "man page `chmod(1)'" will be made into a button. When |
| 3827 | clicked, it will open a Man mode buffer displaying that man page. | 3276 | clicked, it will open a Man mode buffer displaying that man page. |
| 3828 | 3277 | ||
| 3829 | +++ | ||
| 3830 | ** Buffers can now be created with certain hooks disabled. | 3278 | ** Buffers can now be created with certain hooks disabled. |
| 3831 | The functions 'get-buffer-create' and 'generate-new-buffer' accept a | 3279 | The functions 'get-buffer-create' and 'generate-new-buffer' accept a |
| 3832 | new optional argument INHIBIT-BUFFER-HOOKS. If non-nil, the new | 3280 | new optional argument INHIBIT-BUFFER-HOOKS. If non-nil, the new |
| @@ -3835,78 +3283,63 @@ buffer does not run the hooks 'kill-buffer-hook', | |||
| 3835 | avoids slowing down internal or temporary buffers that are never | 3283 | avoids slowing down internal or temporary buffers that are never |
| 3836 | presented to users or passed on to other applications. | 3284 | presented to users or passed on to other applications. |
| 3837 | 3285 | ||
| 3838 | +++ | ||
| 3839 | ** New command 'make-directory-autoloads'. | 3286 | ** New command 'make-directory-autoloads'. |
| 3840 | This does the same as the old command 'update-directory-autoloads', | 3287 | This does the same as the old command 'update-directory-autoloads', |
| 3841 | but has different semantics: Instead of passing in the output file via | 3288 | but has different semantics: Instead of passing in the output file via |
| 3842 | the dynamically bound 'generated-autoload-file' variable, the output | 3289 | the dynamically bound 'generated-autoload-file' variable, the output |
| 3843 | file is now an explicit parameter. | 3290 | file is now an explicit parameter. |
| 3844 | 3291 | ||
| 3845 | --- | ||
| 3846 | ** Dragging a file into Emacs pushes the file name onto 'file-name-history'. | 3292 | ** Dragging a file into Emacs pushes the file name onto 'file-name-history'. |
| 3847 | 3293 | ||
| 3848 | --- | ||
| 3849 | ** The 'easymenu' library is now preloaded. | 3294 | ** The 'easymenu' library is now preloaded. |
| 3850 | 3295 | ||
| 3851 | --- | ||
| 3852 | ** The 'iso-transl' library is now preloaded. | 3296 | ** The 'iso-transl' library is now preloaded. |
| 3853 | This means that keystrokes like 'Alt-[' are defined by default, | 3297 | This means that keystrokes like 'Alt-[' are defined by default, |
| 3854 | instead of only becoming available after doing (for instance) | 3298 | instead of only becoming available after doing (for instance) |
| 3855 | 'C-x 8 <letter>'. | 3299 | 'C-x 8 <letter>'. |
| 3856 | 3300 | ||
| 3857 | --- | ||
| 3858 | ** ':safe' settings in 'defcustom' are now propagated to the loaddefs files. | 3301 | ** ':safe' settings in 'defcustom' are now propagated to the loaddefs files. |
| 3859 | 3302 | ||
| 3860 | +++ | ||
| 3861 | ** New ':type' for 'defcustom' for nonnegative integers. | 3303 | ** New ':type' for 'defcustom' for nonnegative integers. |
| 3862 | The new 'natnum' type can be used for options that should be | 3304 | The new 'natnum' type can be used for options that should be |
| 3863 | nonnegative integers. | 3305 | nonnegative integers. |
| 3864 | 3306 | ||
| 3865 | +++ | ||
| 3866 | ** ERT can now output more verbose test failure reports. | 3307 | ** ERT can now output more verbose test failure reports. |
| 3867 | If the 'EMACS_TEST_VERBOSE' environment variable is set, failure | 3308 | If the 'EMACS_TEST_VERBOSE' environment variable is set, failure |
| 3868 | summaries will include the failing condition. | 3309 | summaries will include the failing condition. |
| 3869 | 3310 | ||
| 3870 | ** Byte compiler changes | 3311 | ** Byte compiler changes |
| 3871 | 3312 | ||
| 3872 | +++ | ||
| 3873 | *** New byte-compiler check for missing dynamic variable declarations. | 3313 | *** New byte-compiler check for missing dynamic variable declarations. |
| 3874 | It is meant as an (experimental) aid for converting Emacs Lisp code | 3314 | It is meant as an (experimental) aid for converting Emacs Lisp code |
| 3875 | to lexical binding, where dynamic (special) variables bound in one | 3315 | to lexical binding, where dynamic (special) variables bound in one |
| 3876 | file can affect code in another. For details, see the Info node | 3316 | file can affect code in another. For details, see the Info node |
| 3877 | "(elisp) Converting to Lexical Binding". | 3317 | "(elisp) Converting to Lexical Binding". |
| 3878 | 3318 | ||
| 3879 | +++ | ||
| 3880 | *** 'byte-recompile-directory' can now compile symlinked "*.el" files. | 3319 | *** 'byte-recompile-directory' can now compile symlinked "*.el" files. |
| 3881 | This is achieved by giving a non-nil FOLLOW-SYMLINKS parameter. | 3320 | This is achieved by giving a non-nil FOLLOW-SYMLINKS parameter. |
| 3882 | 3321 | ||
| 3883 | --- | ||
| 3884 | *** The byte-compiler now warns about too wide documentation strings. | 3322 | *** The byte-compiler now warns about too wide documentation strings. |
| 3885 | By default, it will warn if a documentation string is wider than the | 3323 | By default, it will warn if a documentation string is wider than the |
| 3886 | largest of 'byte-compile-docstring-max-column' or 'fill-column' | 3324 | largest of 'byte-compile-docstring-max-column' or 'fill-column' |
| 3887 | characters. | 3325 | characters. |
| 3888 | 3326 | ||
| 3889 | +++ | ||
| 3890 | *** 'byte-compile-file' optional argument LOAD is now obsolete. | 3327 | *** 'byte-compile-file' optional argument LOAD is now obsolete. |
| 3891 | To load the file after byte-compiling, add a call to 'load' from Lisp | 3328 | To load the file after byte-compiling, add a call to 'load' from Lisp |
| 3892 | or use 'M-x emacs-lisp-byte-compile-and-load' interactively. | 3329 | or use 'M-x emacs-lisp-byte-compile-and-load' interactively. |
| 3893 | 3330 | ||
| 3894 | ** Macroexp | 3331 | ** Macroexp |
| 3895 | 3332 | ||
| 3896 | --- | ||
| 3897 | *** New function 'macroexp-file-name' to know the name of the current file. | 3333 | *** New function 'macroexp-file-name' to know the name of the current file. |
| 3898 | 3334 | ||
| 3899 | --- | ||
| 3900 | *** New function 'macroexp-compiling-p' to know if we're compiling. | 3335 | *** New function 'macroexp-compiling-p' to know if we're compiling. |
| 3901 | 3336 | ||
| 3902 | --- | ||
| 3903 | *** New function 'macroexp-warn-and-return' to help emit warnings. | 3337 | *** New function 'macroexp-warn-and-return' to help emit warnings. |
| 3904 | This used to be named 'macroexp--warn-and-return' and has proved useful | 3338 | This used to be named 'macroexp--warn-and-return' and has proved useful |
| 3905 | and well-behaved enough to lose the "internal" marker. | 3339 | and well-behaved enough to lose the "internal" marker. |
| 3906 | 3340 | ||
| 3907 | ** map.el | 3341 | ** map.el |
| 3908 | 3342 | ||
| 3909 | --- | ||
| 3910 | *** Alist keys are now consistently compared with 'equal' by default. | 3343 | *** Alist keys are now consistently compared with 'equal' by default. |
| 3911 | Until now, 'map-elt' and 'map-delete' compared alist keys with 'eq' by | 3344 | Until now, 'map-elt' and 'map-delete' compared alist keys with 'eq' by |
| 3912 | default. They now use 'equal' instead, for consistency with | 3345 | default. They now use 'equal' instead, for consistency with |
| @@ -3916,14 +3349,11 @@ default. They now use 'equal' instead, for consistency with | |||
| 3916 | A pattern like '(map :sym)' binds the map's value for ':sym' to 'sym', | 3349 | A pattern like '(map :sym)' binds the map's value for ':sym' to 'sym', |
| 3917 | equivalent to '(map (:sym sym))'. | 3350 | equivalent to '(map (:sym sym))'. |
| 3918 | 3351 | ||
| 3919 | --- | ||
| 3920 | *** The function 'map-copy' now uses 'copy-alist' on alists. | 3352 | *** The function 'map-copy' now uses 'copy-alist' on alists. |
| 3921 | This is a slightly deeper copy than the previous 'copy-sequence'. | 3353 | This is a slightly deeper copy than the previous 'copy-sequence'. |
| 3922 | 3354 | ||
| 3923 | --- | ||
| 3924 | *** The function 'map-contains-key' now supports plists. | 3355 | *** The function 'map-contains-key' now supports plists. |
| 3925 | 3356 | ||
| 3926 | --- | ||
| 3927 | *** More consistent duplicate key handling in 'map-merge-with'. | 3357 | *** More consistent duplicate key handling in 'map-merge-with'. |
| 3928 | Until now, 'map-merge-with' promised to call its function argument | 3358 | Until now, 'map-merge-with' promised to call its function argument |
| 3929 | whenever multiple maps contained 'eql' keys. However, this did not | 3359 | whenever multiple maps contained 'eql' keys. However, this did not |
| @@ -3933,26 +3363,21 @@ are merged, for greater consistency with 'map-merge' and 'map-elt'. | |||
| 3933 | 3363 | ||
| 3934 | ** Pcase | 3364 | ** Pcase |
| 3935 | 3365 | ||
| 3936 | +++ | ||
| 3937 | *** The 'or' pattern now binds the union of the vars of its sub-patterns. | 3366 | *** The 'or' pattern now binds the union of the vars of its sub-patterns. |
| 3938 | If a variable is not bound by the subpattern that matched, it gets bound | 3367 | If a variable is not bound by the subpattern that matched, it gets bound |
| 3939 | to nil. This was already sometimes the case, but it is now guaranteed. | 3368 | to nil. This was already sometimes the case, but it is now guaranteed. |
| 3940 | 3369 | ||
| 3941 | +++ | ||
| 3942 | *** The 'pred' pattern can now take the form '(pred (not FUN))'. | 3370 | *** The 'pred' pattern can now take the form '(pred (not FUN))'. |
| 3943 | This is like '(pred (lambda (x) (not (FUN x))))' but results | 3371 | This is like '(pred (lambda (x) (not (FUN x))))' but results |
| 3944 | in better code. | 3372 | in better code. |
| 3945 | 3373 | ||
| 3946 | --- | ||
| 3947 | *** New function 'pcase-compile-patterns' to write other macros. | 3374 | *** New function 'pcase-compile-patterns' to write other macros. |
| 3948 | 3375 | ||
| 3949 | +++ | ||
| 3950 | *** Added 'cl-type' pattern. | 3376 | *** Added 'cl-type' pattern. |
| 3951 | The new 'cl-type' pattern compares types using 'cl-typep', which allows | 3377 | The new 'cl-type' pattern compares types using 'cl-typep', which allows |
| 3952 | comparing simple types like '(cl-type integer)', as well as forms like | 3378 | comparing simple types like '(cl-type integer)', as well as forms like |
| 3953 | '(cl-type (integer 0 10))'. | 3379 | '(cl-type (integer 0 10))'. |
| 3954 | 3380 | ||
| 3955 | +++ | ||
| 3956 | *** New macro 'pcase-setq'. | 3381 | *** New macro 'pcase-setq'. |
| 3957 | This macro is the 'setq' equivalent of 'pcase-let', which allows for | 3382 | This macro is the 'setq' equivalent of 'pcase-let', which allows for |
| 3958 | destructuring patterns in a 'setq' form. | 3383 | destructuring patterns in a 'setq' form. |
| @@ -3961,49 +3386,40 @@ destructuring patterns in a 'setq' form. | |||
| 3961 | 3386 | ||
| 3962 | *** Edebug specification lists can use some new keywords: | 3387 | *** Edebug specification lists can use some new keywords: |
| 3963 | 3388 | ||
| 3964 | +++ | ||
| 3965 | **** '&interpose SPEC FUN ARGS...' lets FUN control parsing after SPEC. | 3389 | **** '&interpose SPEC FUN ARGS...' lets FUN control parsing after SPEC. |
| 3966 | More specifically, FUN is called with 'HEAD PF ARGS...' where | 3390 | More specifically, FUN is called with 'HEAD PF ARGS...' where |
| 3967 | PF is a parsing function that expects a single argument (the specs to | 3391 | PF is a parsing function that expects a single argument (the specs to |
| 3968 | use) and HEAD is the code that matched SPEC. | 3392 | use) and HEAD is the code that matched SPEC. |
| 3969 | 3393 | ||
| 3970 | +++ | ||
| 3971 | **** '&error MSG' unconditionally aborts the current edebug instrumentation. | 3394 | **** '&error MSG' unconditionally aborts the current edebug instrumentation. |
| 3972 | 3395 | ||
| 3973 | +++ | ||
| 3974 | **** '&name SPEC FUN' extracts the current name from the code matching SPEC. | 3396 | **** '&name SPEC FUN' extracts the current name from the code matching SPEC. |
| 3975 | 3397 | ||
| 3976 | ** Dynamic modules changes | 3398 | ** Dynamic modules changes |
| 3977 | 3399 | ||
| 3978 | +++ | ||
| 3979 | *** Type aliases for module functions and finalizers. | 3400 | *** Type aliases for module functions and finalizers. |
| 3980 | The module header "emacs-module.h" now contains type aliases | 3401 | The module header "emacs-module.h" now contains type aliases |
| 3981 | 'emacs_function' and 'emacs_finalizer' for module functions and | 3402 | 'emacs_function' and 'emacs_finalizer' for module functions and |
| 3982 | finalizers, respectively. | 3403 | finalizers, respectively. |
| 3983 | 3404 | ||
| 3984 | +++ | ||
| 3985 | *** Module functions can now be made interactive. | 3405 | *** Module functions can now be made interactive. |
| 3986 | Use 'make_interactive' to give a module function an interactive | 3406 | Use 'make_interactive' to give a module function an interactive |
| 3987 | specification. | 3407 | specification. |
| 3988 | 3408 | ||
| 3989 | +++ | ||
| 3990 | *** Module functions can now install an optional finalizer. | 3409 | *** Module functions can now install an optional finalizer. |
| 3991 | The finalizer is called when the function object is garbage-collected. | 3410 | The finalizer is called when the function object is garbage-collected. |
| 3992 | Use 'set_function_finalizer' to set the finalizer and | 3411 | Use 'set_function_finalizer' to set the finalizer and |
| 3993 | 'get_function_finalizer' to retrieve it. | 3412 | 'get_function_finalizer' to retrieve it. |
| 3994 | 3413 | ||
| 3995 | +++ | ||
| 3996 | *** Modules can now open a channel to an existing pipe process. | 3414 | *** Modules can now open a channel to an existing pipe process. |
| 3997 | Modules can use the new module function 'open_channel' to do that. | 3415 | Modules can use the new module function 'open_channel' to do that. |
| 3998 | On capable systems, modules can use this functionality to | 3416 | On capable systems, modules can use this functionality to |
| 3999 | asynchronously send data back to Emacs. | 3417 | asynchronously send data back to Emacs. |
| 4000 | 3418 | ||
| 4001 | +++ | ||
| 4002 | *** A new module API 'make_unibyte_string'. | 3419 | *** A new module API 'make_unibyte_string'. |
| 4003 | It can be used to create Lisp strings with arbitrary byte sequences | 3420 | It can be used to create Lisp strings with arbitrary byte sequences |
| 4004 | (a.k.a. "raw bytes"). | 3421 | (a.k.a. "raw bytes"). |
| 4005 | 3422 | ||
| 4006 | +++ | ||
| 4007 | ** Shorthands for Lisp symbols. | 3423 | ** Shorthands for Lisp symbols. |
| 4008 | Shorthands are a general purpose namespacing system to make Emacs | 3424 | Shorthands are a general purpose namespacing system to make Emacs |
| 4009 | Lisp's symbol-naming etiquette easier to use. A shorthand is any | 3425 | Lisp's symbol-naming etiquette easier to use. A shorthand is any |
| @@ -4014,230 +3430,182 @@ worth of symbols with proper and longer prefixes, without actually | |||
| 4014 | touching the Lisp source. For details, see the Info node "(elisp) | 3430 | touching the Lisp source. For details, see the Info node "(elisp) |
| 4015 | Shorthands". | 3431 | Shorthands". |
| 4016 | 3432 | ||
| 4017 | +++ | ||
| 4018 | ** New function 'string-search'. | 3433 | ** New function 'string-search'. |
| 4019 | This function takes two string parameters and returns the position of | 3434 | This function takes two string parameters and returns the position of |
| 4020 | the first instance of the former string in the latter. | 3435 | the first instance of the former string in the latter. |
| 4021 | 3436 | ||
| 4022 | +++ | ||
| 4023 | ** New function 'string-replace'. | 3437 | ** New function 'string-replace'. |
| 4024 | This function works along the line of 'replace-regexp-in-string', but | 3438 | This function works along the line of 'replace-regexp-in-string', but |
| 4025 | it matches on fixed strings instead of regexps, and does not change | 3439 | it matches on fixed strings instead of regexps, and does not change |
| 4026 | the global match state. | 3440 | the global match state. |
| 4027 | 3441 | ||
| 4028 | +++ | ||
| 4029 | ** New function 'ensure-list'. | 3442 | ** New function 'ensure-list'. |
| 4030 | This function makes a list of its object if it's not a list already. | 3443 | This function makes a list of its object if it's not a list already. |
| 4031 | If it's already a list, the list is returned as is. | 3444 | If it's already a list, the list is returned as is. |
| 4032 | 3445 | ||
| 4033 | +++ | ||
| 4034 | ** New function 'split-string-shell-command'. | 3446 | ** New function 'split-string-shell-command'. |
| 4035 | This splits a shell command string into separate components, | 3447 | This splits a shell command string into separate components, |
| 4036 | respecting quoting with single ('like this') and double ("like this") | 3448 | respecting quoting with single ('like this') and double ("like this") |
| 4037 | quotes, as well as backslash quoting (like\ this). | 3449 | quotes, as well as backslash quoting (like\ this). |
| 4038 | 3450 | ||
| 4039 | +++ | ||
| 4040 | ** New function 'string-clean-whitespace'. | 3451 | ** New function 'string-clean-whitespace'. |
| 4041 | This removes whitespace from a string. | 3452 | This removes whitespace from a string. |
| 4042 | 3453 | ||
| 4043 | +++ | ||
| 4044 | ** New function 'string-fill'. | 3454 | ** New function 'string-fill'. |
| 4045 | Word-wrap a string so that no lines are longer that a specific length. | 3455 | Word-wrap a string so that no lines are longer that a specific length. |
| 4046 | 3456 | ||
| 4047 | +++ | ||
| 4048 | ** New function 'string-limit'. | 3457 | ** New function 'string-limit'. |
| 4049 | Return (up to) a specific substring length. | 3458 | Return (up to) a specific substring length. |
| 4050 | 3459 | ||
| 4051 | +++ | ||
| 4052 | ** New function 'string-lines'. | 3460 | ** New function 'string-lines'. |
| 4053 | Return a list of strings representing the individual lines in a | 3461 | Return a list of strings representing the individual lines in a |
| 4054 | string. | 3462 | string. |
| 4055 | 3463 | ||
| 4056 | +++ | ||
| 4057 | ** New function 'string-pad'. | 3464 | ** New function 'string-pad'. |
| 4058 | Pad a string to a specific length. | 3465 | Pad a string to a specific length. |
| 4059 | 3466 | ||
| 4060 | +++ | ||
| 4061 | ** New function 'string-chop-newline'. | 3467 | ** New function 'string-chop-newline'. |
| 4062 | Remove a trailing newline from a string. | 3468 | Remove a trailing newline from a string. |
| 4063 | 3469 | ||
| 4064 | +++ | ||
| 4065 | ** New function 'replace-regexp-in-region'. | 3470 | ** New function 'replace-regexp-in-region'. |
| 4066 | 3471 | ||
| 4067 | +++ | ||
| 4068 | ** New function 'replace-string-in-region'. | 3472 | ** New function 'replace-string-in-region'. |
| 4069 | 3473 | ||
| 4070 | +++ | ||
| 4071 | ** New function 'file-name-with-extension'. | 3474 | ** New function 'file-name-with-extension'. |
| 4072 | This function allows a canonical way to set/replace the extension of a | 3475 | This function allows a canonical way to set/replace the extension of a |
| 4073 | file name. | 3476 | file name. |
| 4074 | 3477 | ||
| 4075 | +++ | ||
| 4076 | ** New function 'file-modes-number-to-symbolic' to convert a numeric | 3478 | ** New function 'file-modes-number-to-symbolic' to convert a numeric |
| 4077 | file mode specification into symbolic form. | 3479 | file mode specification into symbolic form. |
| 4078 | 3480 | ||
| 4079 | +++ | ||
| 4080 | ** New function 'file-name-concat'. | 3481 | ** New function 'file-name-concat'. |
| 4081 | This appends file name components to a directory name and returns the | 3482 | This appends file name components to a directory name and returns the |
| 4082 | result. | 3483 | result. |
| 4083 | 3484 | ||
| 4084 | +++ | ||
| 4085 | ** New function 'file-backup-file-names'. | 3485 | ** New function 'file-backup-file-names'. |
| 4086 | This function returns the list of file names of all the backup files | 3486 | This function returns the list of file names of all the backup files |
| 4087 | for the specified file. | 3487 | for the specified file. |
| 4088 | 3488 | ||
| 4089 | +++ | ||
| 4090 | ** New function 'directory-empty-p'. | 3489 | ** New function 'directory-empty-p'. |
| 4091 | This predicate tests whether a given file name is an accessible | 3490 | This predicate tests whether a given file name is an accessible |
| 4092 | directory and whether it contains no other directories or files. | 3491 | directory and whether it contains no other directories or files. |
| 4093 | 3492 | ||
| 4094 | +++ | ||
| 4095 | ** New function 'buffer-local-boundp'. | 3493 | ** New function 'buffer-local-boundp'. |
| 4096 | This predicate says whether a symbol is bound in a specific buffer. | 3494 | This predicate says whether a symbol is bound in a specific buffer. |
| 4097 | 3495 | ||
| 4098 | +++ | ||
| 4099 | ** New function 'always'. | 3496 | ** New function 'always'. |
| 4100 | This is identical to 'ignore', but returns t instead. | 3497 | This is identical to 'ignore', but returns t instead. |
| 4101 | 3498 | ||
| 4102 | +++ | ||
| 4103 | ** New function 'sxhash-equal-including-properties'. | 3499 | ** New function 'sxhash-equal-including-properties'. |
| 4104 | This is identical to 'sxhash-equal' but also accounts for string | 3500 | This is identical to 'sxhash-equal' but also accounts for string |
| 4105 | properties. | 3501 | properties. |
| 4106 | 3502 | ||
| 4107 | --- | ||
| 4108 | ** New function 'buffer-line-statistics'. | 3503 | ** New function 'buffer-line-statistics'. |
| 4109 | This function returns some statistics about the line lengths in a buffer. | 3504 | This function returns some statistics about the line lengths in a buffer. |
| 4110 | 3505 | ||
| 4111 | --- | ||
| 4112 | ** New function 'color-values-from-color-spec'. | 3506 | ** New function 'color-values-from-color-spec'. |
| 4113 | This can be used to parse RGB color specs in several formats and | 3507 | This can be used to parse RGB color specs in several formats and |
| 4114 | convert them to a list '(R G B)' of primary color values. | 3508 | convert them to a list '(R G B)' of primary color values. |
| 4115 | 3509 | ||
| 4116 | --- | ||
| 4117 | ** New function 'custom-add-choice'. | 3510 | ** New function 'custom-add-choice'. |
| 4118 | This function can be used by modes to add elements to the | 3511 | This function can be used by modes to add elements to the |
| 4119 | 'choice' customization type of a variable. | 3512 | 'choice' customization type of a variable. |
| 4120 | 3513 | ||
| 4121 | --- | ||
| 4122 | ** New function 'decoded-time-period'. | 3514 | ** New function 'decoded-time-period'. |
| 4123 | It interprets a decoded time structure as a period and returns the | 3515 | It interprets a decoded time structure as a period and returns the |
| 4124 | equivalent period in seconds. | 3516 | equivalent period in seconds. |
| 4125 | 3517 | ||
| 4126 | +++ | ||
| 4127 | ** New function 'dom-print'. | 3518 | ** New function 'dom-print'. |
| 4128 | 3519 | ||
| 4129 | +++ | ||
| 4130 | ** New function 'dom-remove-attribute'. | 3520 | ** New function 'dom-remove-attribute'. |
| 4131 | 3521 | ||
| 4132 | --- | ||
| 4133 | ** New function 'dns-query-asynchronous'. | 3522 | ** New function 'dns-query-asynchronous'. |
| 4134 | It takes the same parameters as 'dns-query', but adds a callback | 3523 | It takes the same parameters as 'dns-query', but adds a callback |
| 4135 | parameter. | 3524 | parameter. |
| 4136 | 3525 | ||
| 4137 | ** New function 'garbage-collect-maybe' to trigger GC early. | 3526 | ** New function 'garbage-collect-maybe' to trigger GC early. |
| 4138 | 3527 | ||
| 4139 | --- | ||
| 4140 | ** New function 'get-locale-names'. | 3528 | ** New function 'get-locale-names'. |
| 4141 | This utility function returns a list of names of locales available on | 3529 | This utility function returns a list of names of locales available on |
| 4142 | the current system. | 3530 | the current system. |
| 4143 | 3531 | ||
| 4144 | +++ | ||
| 4145 | ** New function 'insert-into-buffer'. | 3532 | ** New function 'insert-into-buffer'. |
| 4146 | This inserts the contents of the current buffer into another buffer. | 3533 | This inserts the contents of the current buffer into another buffer. |
| 4147 | 3534 | ||
| 4148 | +++ | ||
| 4149 | ** New function 'json-available-p'. | 3535 | ** New function 'json-available-p'. |
| 4150 | This predicate returns non-nil if Emacs is built with libjansson | 3536 | This predicate returns non-nil if Emacs is built with libjansson |
| 4151 | support, and it is available on the current system. | 3537 | support, and it is available on the current system. |
| 4152 | 3538 | ||
| 4153 | --- | ||
| 4154 | ** New function 'mail-header-parse-addresses-lax'. | 3539 | ** New function 'mail-header-parse-addresses-lax'. |
| 4155 | This takes a comma-separated string and returns a list of mail/name | 3540 | This takes a comma-separated string and returns a list of mail/name |
| 4156 | pairs. | 3541 | pairs. |
| 4157 | 3542 | ||
| 4158 | --- | ||
| 4159 | ** New function 'mail-header-parse-address-lax'. | 3543 | ** New function 'mail-header-parse-address-lax'. |
| 4160 | Parse a string as a mail address-like string. | 3544 | Parse a string as a mail address-like string. |
| 4161 | 3545 | ||
| 4162 | --- | ||
| 4163 | ** New function 'make-separator-line'. | 3546 | ** New function 'make-separator-line'. |
| 4164 | Make a string appropriate for usage as a visual separator line. | 3547 | Make a string appropriate for usage as a visual separator line. |
| 4165 | 3548 | ||
| 4166 | +++ | ||
| 4167 | ** New function 'num-processors'. | 3549 | ** New function 'num-processors'. |
| 4168 | Return the number of processors on the system. | 3550 | Return the number of processors on the system. |
| 4169 | 3551 | ||
| 4170 | +++ | ||
| 4171 | ** New function 'object-intervals'. | 3552 | ** New function 'object-intervals'. |
| 4172 | This function returns a copy of the list of intervals (i.e., text | 3553 | This function returns a copy of the list of intervals (i.e., text |
| 4173 | properties) in the object in question (which must either be a string | 3554 | properties) in the object in question (which must either be a string |
| 4174 | or a buffer). | 3555 | or a buffer). |
| 4175 | 3556 | ||
| 4176 | +++ | ||
| 4177 | ** New function 'process-lines-ignore-status'. | 3557 | ** New function 'process-lines-ignore-status'. |
| 4178 | This is like 'process-lines', but does not signal an error if the | 3558 | This is like 'process-lines', but does not signal an error if the |
| 4179 | return status is non-zero. 'process-lines-handling-status' has also | 3559 | return status is non-zero. 'process-lines-handling-status' has also |
| 4180 | been added, and takes a callback to handle the return status. | 3560 | been added, and takes a callback to handle the return status. |
| 4181 | 3561 | ||
| 4182 | +++ | ||
| 4183 | ** New function 'require-theme'. | 3562 | ** New function 'require-theme'. |
| 4184 | This function is like 'require', but searches 'custom-theme-load-path' | 3563 | This function is like 'require', but searches 'custom-theme-load-path' |
| 4185 | instead of 'load-path'. It can be used by Custom themes to load | 3564 | instead of 'load-path'. It can be used by Custom themes to load |
| 4186 | supporting Lisp files when 'require' is unsuitable. | 3565 | supporting Lisp files when 'require' is unsuitable. |
| 4187 | 3566 | ||
| 4188 | +++ | ||
| 4189 | ** New function 'seq-union'. | 3567 | ** New function 'seq-union'. |
| 4190 | This function takes two sequences and returns a list of all elements | 3568 | This function takes two sequences and returns a list of all elements |
| 4191 | that appear in either of them, with no two elements that compare equal | 3569 | that appear in either of them, with no two elements that compare equal |
| 4192 | appearing in the result. | 3570 | appearing in the result. |
| 4193 | 3571 | ||
| 4194 | +++ | ||
| 4195 | ** New function 'syntax-class-to-char'. | 3572 | ** New function 'syntax-class-to-char'. |
| 4196 | This does almost the opposite of 'string-to-syntax' -- it returns the | 3573 | This does almost the opposite of 'string-to-syntax' -- it returns the |
| 4197 | syntax descriptor (a character) given a raw syntax descriptor (an | 3574 | syntax descriptor (a character) given a raw syntax descriptor (an |
| 4198 | integer). | 3575 | integer). |
| 4199 | 3576 | ||
| 4200 | +++ | ||
| 4201 | ** New functions 'null-device' and 'path-separator'. | 3577 | ** New functions 'null-device' and 'path-separator'. |
| 4202 | These functions return the connection local value of the respective | 3578 | These functions return the connection local value of the respective |
| 4203 | variables. This can be used for remote hosts. | 3579 | variables. This can be used for remote hosts. |
| 4204 | 3580 | ||
| 4205 | +++ | ||
| 4206 | ** New predicate functions 'length<', 'length>' and 'length='. | 3581 | ** New predicate functions 'length<', 'length>' and 'length='. |
| 4207 | Using these functions may be more efficient than using 'length' (if | 3582 | Using these functions may be more efficient than using 'length' (if |
| 4208 | the length of a (long) list is being computed just to compare this | 3583 | the length of a (long) list is being computed just to compare this |
| 4209 | length to a number). | 3584 | length to a number). |
| 4210 | 3585 | ||
| 4211 | +++ | ||
| 4212 | ** New macro 'dlet' to dynamically bind variables. | 3586 | ** New macro 'dlet' to dynamically bind variables. |
| 4213 | 3587 | ||
| 4214 | +++ | ||
| 4215 | ** New macro 'with-existing-directory'. | 3588 | ** New macro 'with-existing-directory'. |
| 4216 | This macro binds 'default-directory' to some other existing directory | 3589 | This macro binds 'default-directory' to some other existing directory |
| 4217 | if 'default-directory' doesn't exist, and then executes the body forms. | 3590 | if 'default-directory' doesn't exist, and then executes the body forms. |
| 4218 | 3591 | ||
| 4219 | +++ | ||
| 4220 | ** New variable 'current-minibuffer-command'. | 3592 | ** New variable 'current-minibuffer-command'. |
| 4221 | This is like 'this-command', but it is bound recursively when entering | 3593 | This is like 'this-command', but it is bound recursively when entering |
| 4222 | the minibuffer. | 3594 | the minibuffer. |
| 4223 | 3595 | ||
| 4224 | +++ | ||
| 4225 | ** New variable 'inhibit-interaction' to make user prompts signal an error. | 3596 | ** New variable 'inhibit-interaction' to make user prompts signal an error. |
| 4226 | If this is bound to something non-nil, functions like | 3597 | If this is bound to something non-nil, functions like |
| 4227 | 'read-from-minibuffer', 'read-char' (and related) will signal an | 3598 | 'read-from-minibuffer', 'read-char' (and related) will signal an |
| 4228 | 'inhibited-interaction' error. | 3599 | 'inhibited-interaction' error. |
| 4229 | 3600 | ||
| 4230 | --- | ||
| 4231 | ** New variable 'indent-line-ignored-functions'. | 3601 | ** New variable 'indent-line-ignored-functions'. |
| 4232 | This allows modes to cycle through a set of indentation functions | 3602 | This allows modes to cycle through a set of indentation functions |
| 4233 | appropriate for those modes. | 3603 | appropriate for those modes. |
| 4234 | 3604 | ||
| 4235 | +++ | ||
| 4236 | ** New variable 'print-integers-as-characters' modifies integer printing. | 3605 | ** New variable 'print-integers-as-characters' modifies integer printing. |
| 4237 | If this variable is non-nil, character syntax is used for printing | 3606 | If this variable is non-nil, character syntax is used for printing |
| 4238 | numbers when this makes sense, such as '?A' for 65. | 3607 | numbers when this makes sense, such as '?A' for 65. |
| 4239 | 3608 | ||
| 4240 | +++ | ||
| 4241 | ** New variable 'tty-menu-calls-mouse-position-function'. | 3609 | ** New variable 'tty-menu-calls-mouse-position-function'. |
| 4242 | This controls whether 'mouse-position-function' is called by functions | 3610 | This controls whether 'mouse-position-function' is called by functions |
| 4243 | that retrieve the mouse position when that happens during TTY menu | 3611 | that retrieve the mouse position when that happens during TTY menu |
| @@ -4245,46 +3613,38 @@ handling. Lisp programs that set 'mouse-position-function' should | |||
| 4245 | also set this variable non-nil if they are compatible with the tty | 3613 | also set this variable non-nil if they are compatible with the tty |
| 4246 | menu handling. | 3614 | menu handling. |
| 4247 | 3615 | ||
| 4248 | +++ | ||
| 4249 | ** New variables that hold default buffer names for shell output. | 3616 | ** New variables that hold default buffer names for shell output. |
| 4250 | The new constants 'shell-command-buffer-name' and | 3617 | The new constants 'shell-command-buffer-name' and |
| 4251 | 'shell-command-buffer-name-async' store the default buffer names | 3618 | 'shell-command-buffer-name-async' store the default buffer names |
| 4252 | for the output of, respectively, synchronous and async shell | 3619 | for the output of, respectively, synchronous and async shell |
| 4253 | commands. | 3620 | commands. |
| 4254 | 3621 | ||
| 4255 | --- | ||
| 4256 | ** New variables 'read-char-choice-use-read-key' and 'y-or-n-p-use-read-key'. | 3622 | ** New variables 'read-char-choice-use-read-key' and 'y-or-n-p-use-read-key'. |
| 4257 | When non-nil, then functions 'read-char-choice' and 'y-or-n-p' | 3623 | When non-nil, then functions 'read-char-choice' and 'y-or-n-p' |
| 4258 | (respectively) use the function 'read-key' to read a character instead | 3624 | (respectively) use the function 'read-key' to read a character instead |
| 4259 | of using the minibuffer. | 3625 | of using the minibuffer. |
| 4260 | 3626 | ||
| 4261 | +++ | ||
| 4262 | ** New variable 'global-minor-modes'. | 3627 | ** New variable 'global-minor-modes'. |
| 4263 | This variable holds a list of currently enabled global minor modes (as | 3628 | This variable holds a list of currently enabled global minor modes (as |
| 4264 | a list of symbols). | 3629 | a list of symbols). |
| 4265 | 3630 | ||
| 4266 | +++ | ||
| 4267 | ** New buffer-local variable 'local-minor-modes'. | 3631 | ** New buffer-local variable 'local-minor-modes'. |
| 4268 | This permanently buffer-local variable holds a list of currently | 3632 | This permanently buffer-local variable holds a list of currently |
| 4269 | enabled non-global minor modes in the current buffer (as a list of | 3633 | enabled non-global minor modes in the current buffer (as a list of |
| 4270 | symbols). | 3634 | symbols). |
| 4271 | 3635 | ||
| 4272 | +++ | ||
| 4273 | ** New completion function 'affixation-function' to add prefix/suffix. | 3636 | ** New completion function 'affixation-function' to add prefix/suffix. |
| 4274 | It accepts a list of completions and should return a list where | 3637 | It accepts a list of completions and should return a list where |
| 4275 | each element is a list with three elements: a completion, | 3638 | each element is a list with three elements: a completion, |
| 4276 | a prefix string, and a suffix string. | 3639 | a prefix string, and a suffix string. |
| 4277 | 3640 | ||
| 4278 | +++ | ||
| 4279 | ** New completion function 'group-function' for grouping candidates. | 3641 | ** New completion function 'group-function' for grouping candidates. |
| 4280 | It takes two arguments: a completion candidate and a 'transform' flag. | 3642 | It takes two arguments: a completion candidate and a 'transform' flag. |
| 4281 | 3643 | ||
| 4282 | +++ | ||
| 4283 | ** New error symbol 'minibuffer-quit'. | 3644 | ** New error symbol 'minibuffer-quit'. |
| 4284 | Signaling it has almost the same effect as 'quit' except that it | 3645 | Signaling it has almost the same effect as 'quit' except that it |
| 4285 | doesn't cause keyboard macro termination. | 3646 | doesn't cause keyboard macro termination. |
| 4286 | 3647 | ||
| 4287 | +++ | ||
| 4288 | ** New error symbol 'remote-file-error', a subcategory of 'file-error'. | 3648 | ** New error symbol 'remote-file-error', a subcategory of 'file-error'. |
| 4289 | It is signaled if a remote file operation fails due to internal | 3649 | It is signaled if a remote file operation fails due to internal |
| 4290 | reasons, and could block Emacs. It does not replace 'file-error' | 3650 | reasons, and could block Emacs. It does not replace 'file-error' |
| @@ -4298,11 +3658,9 @@ Until it is solved you could ignore such errors by performing | |||
| 4298 | (setq debug-ignored-errors | 3658 | (setq debug-ignored-errors |
| 4299 | (cons 'remote-file-error debug-ignored-errors)) | 3659 | (cons 'remote-file-error debug-ignored-errors)) |
| 4300 | 3660 | ||
| 4301 | +++ | ||
| 4302 | ** New macro 'named-let'. | 3661 | ** New macro 'named-let'. |
| 4303 | It provides Scheme's "named let" looping construct. | 3662 | It provides Scheme's "named let" looping construct. |
| 4304 | 3663 | ||
| 4305 | --- | ||
| 4306 | ** Emacs now attempts to test for high-rate subprocess output more fairly. | 3664 | ** Emacs now attempts to test for high-rate subprocess output more fairly. |
| 4307 | When several subprocesses produce output simultaneously at high rate, | 3665 | When several subprocesses produce output simultaneously at high rate, |
| 4308 | Emacs will now by default attempt to service them all in a round-robin | 3666 | Emacs will now by default attempt to service them all in a round-robin |
| @@ -4311,81 +3669,66 @@ non-nil value to get back the old behavior, whereby after reading | |||
| 4311 | from a subprocess, Emacs would check for output of other subprocesses | 3669 | from a subprocess, Emacs would check for output of other subprocesses |
| 4312 | in a way that is likely to read from the same process again. | 3670 | in a way that is likely to read from the same process again. |
| 4313 | 3671 | ||
| 4314 | +++ | ||
| 4315 | ** 'set-process-buffer' now updates the process mark. | 3672 | ** 'set-process-buffer' now updates the process mark. |
| 4316 | The mark will be set to point to the end of the new buffer. | 3673 | The mark will be set to point to the end of the new buffer. |
| 4317 | 3674 | ||
| 4318 | +++ | ||
| 4319 | ** 'unlock-buffer' displays warnings instead of signaling. | 3675 | ** 'unlock-buffer' displays warnings instead of signaling. |
| 4320 | Instead of signaling 'file-error' conditions for file system level | 3676 | Instead of signaling 'file-error' conditions for file system level |
| 4321 | errors, the function now calls 'display-warning' and continues as if | 3677 | errors, the function now calls 'display-warning' and continues as if |
| 4322 | the error did not occur. | 3678 | the error did not occur. |
| 4323 | 3679 | ||
| 4324 | +++ | ||
| 4325 | ** 'read-char-from-minibuffer' and 'y-or-n-p' support 'help-form'. | 3680 | ** 'read-char-from-minibuffer' and 'y-or-n-p' support 'help-form'. |
| 4326 | If you bind 'help-form' to a non-nil value while calling these functions, | 3681 | If you bind 'help-form' to a non-nil value while calling these functions, |
| 4327 | then pressing 'C-h' ('help-char') causes the function to evaluate 'help-form' | 3682 | then pressing 'C-h' ('help-char') causes the function to evaluate 'help-form' |
| 4328 | and display the result. | 3683 | and display the result. |
| 4329 | 3684 | ||
| 4330 | +++ | ||
| 4331 | ** 'read-number' now has its own history variable. | 3685 | ** 'read-number' now has its own history variable. |
| 4332 | Additionally, the function now accepts an optional HIST argument which | 3686 | Additionally, the function now accepts an optional HIST argument which |
| 4333 | can be used to specify a custom history variable. | 3687 | can be used to specify a custom history variable. |
| 4334 | 3688 | ||
| 4335 | +++ | ||
| 4336 | ** 'set-window-configuration' now takes two optional parameters, | 3689 | ** 'set-window-configuration' now takes two optional parameters, |
| 4337 | DONT-SET-FRAME and DONT-SET-MINIWINDOW. The first of these, when | 3690 | DONT-SET-FRAME and DONT-SET-MINIWINDOW. The first of these, when |
| 4338 | non-nil, instructs the function not to select the frame recorded in | 3691 | non-nil, instructs the function not to select the frame recorded in |
| 4339 | the configuration. The second prevents the current minibuffer being | 3692 | the configuration. The second prevents the current minibuffer being |
| 4340 | replaced by the one stored in the configuration. | 3693 | replaced by the one stored in the configuration. |
| 4341 | 3694 | ||
| 4342 | --- | ||
| 4343 | ** 'count-windows' now takes an optional parameter ALL-FRAMES. | 3695 | ** 'count-windows' now takes an optional parameter ALL-FRAMES. |
| 4344 | The semantics are as with 'walk-windows'. | 3696 | The semantics are as with 'walk-windows'. |
| 4345 | 3697 | ||
| 4346 | +++ | ||
| 4347 | ** 'truncate-string-ellipsis' now uses '…' by default. | 3698 | ** 'truncate-string-ellipsis' now uses '…' by default. |
| 4348 | Modes that use 'truncate-string-to-width' with non-nil, non-string | 3699 | Modes that use 'truncate-string-to-width' with non-nil, non-string |
| 4349 | argument ELLIPSIS, will now indicate truncation using '…' when | 3700 | argument ELLIPSIS, will now indicate truncation using '…' when |
| 4350 | the selected frame can display it, and using "..." otherwise. | 3701 | the selected frame can display it, and using "..." otherwise. |
| 4351 | 3702 | ||
| 4352 | +++ | ||
| 4353 | ** 'string-width' now accepts two optional arguments FROM and TO. | 3703 | ** 'string-width' now accepts two optional arguments FROM and TO. |
| 4354 | This allows calculating the width of a substring without consing a | 3704 | This allows calculating the width of a substring without consing a |
| 4355 | new string. | 3705 | new string. |
| 4356 | 3706 | ||
| 4357 | +++ | ||
| 4358 | ** 'directory-files' now takes an additional COUNT parameter. | 3707 | ** 'directory-files' now takes an additional COUNT parameter. |
| 4359 | The parameter makes 'directory-files' return COUNT first file names | 3708 | The parameter makes 'directory-files' return COUNT first file names |
| 4360 | from a directory. If MATCH is also given, the function will return | 3709 | from a directory. If MATCH is also given, the function will return |
| 4361 | first COUNT file names that match the expression. The same COUNT | 3710 | first COUNT file names that match the expression. The same COUNT |
| 4362 | parameter has been added to 'directory-files-and-attributes'. | 3711 | parameter has been added to 'directory-files-and-attributes'. |
| 4363 | 3712 | ||
| 4364 | +++ | ||
| 4365 | ** 'count-lines' can now ignore invisible lines. | 3713 | ** 'count-lines' can now ignore invisible lines. |
| 4366 | This is controlled by the optional parameter IGNORE-INVISIBLE-LINES. | 3714 | This is controlled by the optional parameter IGNORE-INVISIBLE-LINES. |
| 4367 | 3715 | ||
| 4368 | --- | ||
| 4369 | ** 'count-words' now crosses field boundaries. | 3716 | ** 'count-words' now crosses field boundaries. |
| 4370 | Originally, 'count-words' would stop counting at the first field | 3717 | Originally, 'count-words' would stop counting at the first field |
| 4371 | boundary it encountered; now it keeps counting all the way to the | 3718 | boundary it encountered; now it keeps counting all the way to the |
| 4372 | region's (or buffer's) end. | 3719 | region's (or buffer's) end. |
| 4373 | 3720 | ||
| 4374 | +++ | ||
| 4375 | ** File-related APIs can optionally follow symlinks. | 3721 | ** File-related APIs can optionally follow symlinks. |
| 4376 | The functions 'file-modes', 'set-file-modes', and 'set-file-times' now | 3722 | The functions 'file-modes', 'set-file-modes', and 'set-file-times' now |
| 4377 | have an optional argument specifying whether to follow symbolic links. | 3723 | have an optional argument specifying whether to follow symbolic links. |
| 4378 | 3724 | ||
| 4379 | +++ | ||
| 4380 | ** 'format-seconds' can now be used for sub-second times. | 3725 | ** 'format-seconds' can now be used for sub-second times. |
| 4381 | The new optional "," parameter has been added, and | 3726 | The new optional "," parameter has been added, and |
| 4382 | '(format-seconds "%mm %,1ss" 66.4)' will now result in "1m 6.4s". | 3727 | '(format-seconds "%mm %,1ss" 66.4)' will now result in "1m 6.4s". |
| 4383 | 3728 | ||
| 4384 | +++ | ||
| 4385 | ** 'parse-time-string' can now parse ISO 8601 format strings. | 3729 | ** 'parse-time-string' can now parse ISO 8601 format strings. |
| 4386 | These have a format like "2020-01-15T16:12:21-08:00". | 3730 | These have a format like "2020-01-15T16:12:21-08:00". |
| 4387 | 3731 | ||
| 4388 | --- | ||
| 4389 | ** 'lookup-key' is more allowing when searching for extended menu items. | 3732 | ** 'lookup-key' is more allowing when searching for extended menu items. |
| 4390 | When looking for a menu item '[menu-bar Foo-Bar]', first try to find | 3733 | When looking for a menu item '[menu-bar Foo-Bar]', first try to find |
| 4391 | an exact match, then look for the lowercased '[menu-bar foo-bar]'. | 3734 | an exact match, then look for the lowercased '[menu-bar foo-bar]'. |
| @@ -4393,7 +3736,6 @@ It will only try to downcase ASCII characters in the range "A-Z". | |||
| 4393 | This improves backwards-compatibility when converting menus to use | 3736 | This improves backwards-compatibility when converting menus to use |
| 4394 | 'easy-menu-define'. | 3737 | 'easy-menu-define'. |
| 4395 | 3738 | ||
| 4396 | --- | ||
| 4397 | ** 'make-network-process', 'make-serial-process' ':coding' behavior change. | 3739 | ** 'make-network-process', 'make-serial-process' ':coding' behavior change. |
| 4398 | Previously, passing ':coding nil' to either of these functions would | 3740 | Previously, passing ':coding nil' to either of these functions would |
| 4399 | override any non-nil binding for 'coding-system-for-read' and | 3741 | override any non-nil binding for 'coding-system-for-read' and |
| @@ -4403,92 +3745,73 @@ Emacs depended on the previous behavior; if you really want the | |||
| 4403 | process' coding-system to be nil, use 'set-process-coding-system' | 3745 | process' coding-system to be nil, use 'set-process-coding-system' |
| 4404 | after the process has been created, or pass in ':coding '(nil nil)'. | 3746 | after the process has been created, or pass in ':coding '(nil nil)'. |
| 4405 | 3747 | ||
| 4406 | +++ | ||
| 4407 | ** 'open-network-stream' now accepts a ':coding' argument. | 3748 | ** 'open-network-stream' now accepts a ':coding' argument. |
| 4408 | This allows specifying the coding systems used by a network process | 3749 | This allows specifying the coding systems used by a network process |
| 4409 | for encoding and decoding without having to bind | 3750 | for encoding and decoding without having to bind |
| 4410 | 'coding-system-for-{read,write}' or call 'set-process-coding-system'. | 3751 | 'coding-system-for-{read,write}' or call 'set-process-coding-system'. |
| 4411 | 3752 | ||
| 4412 | +++ | ||
| 4413 | ** 'open-network-stream' can now take a ':capability-command' that's a function. | 3753 | ** 'open-network-stream' can now take a ':capability-command' that's a function. |
| 4414 | The function is called with the greeting from the server as its only | 3754 | The function is called with the greeting from the server as its only |
| 4415 | parameter, and allows sending different TLS capability commands to the | 3755 | parameter, and allows sending different TLS capability commands to the |
| 4416 | server based on that greeting. | 3756 | server based on that greeting. |
| 4417 | 3757 | ||
| 4418 | +++ | ||
| 4419 | ** 'open-gnutls-stream' now also accepts a ':coding' argument. | 3758 | ** 'open-gnutls-stream' now also accepts a ':coding' argument. |
| 4420 | 3759 | ||
| 4421 | --- | ||
| 4422 | ** 'process-attributes' now works under OpenBSD, too. | 3760 | ** 'process-attributes' now works under OpenBSD, too. |
| 4423 | 3761 | ||
| 4424 | +++ | ||
| 4425 | ** 'format-spec' now takes an optional SPLIT parameter. | 3762 | ** 'format-spec' now takes an optional SPLIT parameter. |
| 4426 | If non-nil, 'format-spec' will split the resulting string into a list | 3763 | If non-nil, 'format-spec' will split the resulting string into a list |
| 4427 | of strings, based on where the format specs (and expansions) were. | 3764 | of strings, based on where the format specs (and expansions) were. |
| 4428 | 3765 | ||
| 4429 | --- | ||
| 4430 | ** 'unload-feature' now also tries to undo additions to buffer-local hooks. | 3766 | ** 'unload-feature' now also tries to undo additions to buffer-local hooks. |
| 4431 | 3767 | ||
| 4432 | --- | ||
| 4433 | ** 'while-no-input-ignore-events' accepts more special events. | 3768 | ** 'while-no-input-ignore-events' accepts more special events. |
| 4434 | The special events 'dbus-event' and 'file-notify' are now ignored in | 3769 | The special events 'dbus-event' and 'file-notify' are now ignored in |
| 4435 | 'while-no-input' when added to this variable. | 3770 | 'while-no-input' when added to this variable. |
| 4436 | 3771 | ||
| 4437 | --- | ||
| 4438 | ** 'start-process-shell-command' and 'start-file-process-shell-command' | 3772 | ** 'start-process-shell-command' and 'start-file-process-shell-command' |
| 4439 | do not support the old calling conventions any longer. | 3773 | do not support the old calling conventions any longer. |
| 4440 | 3774 | ||
| 4441 | +++ | ||
| 4442 | ** 'yes-or-no-p' and 'y-or-n-p' PROMPT parameter no longer needs trailing space. | 3775 | ** 'yes-or-no-p' and 'y-or-n-p' PROMPT parameter no longer needs trailing space. |
| 4443 | In other words, the prompt can now end with "?" instead of "? ". This | 3776 | In other words, the prompt can now end with "?" instead of "? ". This |
| 4444 | has been the case since Emacs 24.4 but was not announced or documented | 3777 | has been the case since Emacs 24.4 but was not announced or documented |
| 4445 | until now. (Checkdoc has also been updated to accept this convention.) | 3778 | until now. (Checkdoc has also been updated to accept this convention.) |
| 4446 | 3779 | ||
| 4447 | +++ | ||
| 4448 | ** The UNIQUIFY argument in 'auto-save-file-name-transforms' can be a symbol. | 3780 | ** The UNIQUIFY argument in 'auto-save-file-name-transforms' can be a symbol. |
| 4449 | If this symbol is one of the members of 'secure-hash-algorithms', | 3781 | If this symbol is one of the members of 'secure-hash-algorithms', |
| 4450 | Emacs constructs the nondirectory part of the auto-save file name by | 3782 | Emacs constructs the nondirectory part of the auto-save file name by |
| 4451 | applying that 'secure-hash' to the buffer file name. This avoids any | 3783 | applying that 'secure-hash' to the buffer file name. This avoids any |
| 4452 | risk of excessively long file names. | 3784 | risk of excessively long file names. |
| 4453 | 3785 | ||
| 4454 | +++ | ||
| 4455 | ** New user option 'process-file-return-signal-string'. | 3786 | ** New user option 'process-file-return-signal-string'. |
| 4456 | It controls, whether 'process-file' returns a string when a remote | 3787 | It controls, whether 'process-file' returns a string when a remote |
| 4457 | process is interrupted by a signal. | 3788 | process is interrupted by a signal. |
| 4458 | 3789 | ||
| 4459 | ** EIEIO Changes | 3790 | ** EIEIO Changes |
| 4460 | 3791 | ||
| 4461 | +++ | ||
| 4462 | *** The macro 'oref-default' can now be used with 'setf'. | 3792 | *** The macro 'oref-default' can now be used with 'setf'. |
| 4463 | It is now defined as a generalized variable that can be used with | 3793 | It is now defined as a generalized variable that can be used with |
| 4464 | 'setf' to modify the value stored in a given class slot. | 3794 | 'setf' to modify the value stored in a given class slot. |
| 4465 | 3795 | ||
| 4466 | --- | ||
| 4467 | *** 'form' in '(eql form)' specializers in 'cl-defmethod' is now evaluated. | 3796 | *** 'form' in '(eql form)' specializers in 'cl-defmethod' is now evaluated. |
| 4468 | This corresponds to the behavior of defmethod in Common Lisp Object System. | 3797 | This corresponds to the behavior of defmethod in Common Lisp Object System. |
| 4469 | For compatibility, '(eql SYMBOL)' does not evaluate SYMBOL, for now. | 3798 | For compatibility, '(eql SYMBOL)' does not evaluate SYMBOL, for now. |
| 4470 | 3799 | ||
| 4471 | ** D-Bus | 3800 | ** D-Bus |
| 4472 | 3801 | ||
| 4473 | +++ | ||
| 4474 | *** Property values can be typed explicitly. | 3802 | *** Property values can be typed explicitly. |
| 4475 | 'dbus-register-property' and 'dbus-set-property' accept now optional | 3803 | 'dbus-register-property' and 'dbus-set-property' accept now optional |
| 4476 | type symbols. Both functions propagate D-Bus errors. | 3804 | type symbols. Both functions propagate D-Bus errors. |
| 4477 | 3805 | ||
| 4478 | +++ | ||
| 4479 | *** Registered properties can have the new access type ':write'. | 3806 | *** Registered properties can have the new access type ':write'. |
| 4480 | 3807 | ||
| 4481 | +++ | ||
| 4482 | *** In case of problems, handlers can emit proper D-Bus error messages now. | 3808 | *** In case of problems, handlers can emit proper D-Bus error messages now. |
| 4483 | 3809 | ||
| 4484 | +++ | ||
| 4485 | *** D-Bus errors, which have been converted from incoming D-Bus error | 3810 | *** D-Bus errors, which have been converted from incoming D-Bus error |
| 4486 | messages, contain the error name of that message now. | 3811 | messages, contain the error name of that message now. |
| 4487 | 3812 | ||
| 4488 | +++ | ||
| 4489 | *** D-Bus messages can be monitored with the new command 'dbus-monitor'. | 3813 | *** D-Bus messages can be monitored with the new command 'dbus-monitor'. |
| 4490 | 3814 | ||
| 4491 | +++ | ||
| 4492 | *** D-Bus events have changed their internal structure. | 3815 | *** D-Bus events have changed their internal structure. |
| 4493 | They carry now the destination and the error-name of an event. They | 3816 | They carry now the destination and the error-name of an event. They |
| 4494 | also keep the type information of their arguments. Use the | 3817 | also keep the type information of their arguments. Use the |
| @@ -4496,19 +3819,16 @@ also keep the type information of their arguments. Use the | |||
| 4496 | 3819 | ||
| 4497 | ** Buttons | 3820 | ** Buttons |
| 4498 | 3821 | ||
| 4499 | +++ | ||
| 4500 | *** New minor mode 'button-mode'. | 3822 | *** New minor mode 'button-mode'. |
| 4501 | This minor mode does nothing except install 'button-buffer-map' as | 3823 | This minor mode does nothing except install 'button-buffer-map' as |
| 4502 | a minor mode map (which binds the 'TAB' / 'S-TAB' key bindings to navigate | 3824 | a minor mode map (which binds the 'TAB' / 'S-TAB' key bindings to navigate |
| 4503 | to buttons), and can be used in any view-mode-like buffer that has | 3825 | to buttons), and can be used in any view-mode-like buffer that has |
| 4504 | buttons in it. | 3826 | buttons in it. |
| 4505 | 3827 | ||
| 4506 | +++ | ||
| 4507 | *** New utility function 'button-buttonize'. | 3828 | *** New utility function 'button-buttonize'. |
| 4508 | This function takes a string and returns a string propertized in a way | 3829 | This function takes a string and returns a string propertized in a way |
| 4509 | that makes it a valid button. | 3830 | that makes it a valid button. |
| 4510 | 3831 | ||
| 4511 | --- | ||
| 4512 | ** 'text-scale-mode' can now adjust font size of the header line. | 3832 | ** 'text-scale-mode' can now adjust font size of the header line. |
| 4513 | When the new buffer local variable 'text-scale-remap-header-line' | 3833 | When the new buffer local variable 'text-scale-remap-header-line' |
| 4514 | is non-nil, 'text-scale-adjust' will also scale the text in the header | 3834 | is non-nil, 'text-scale-adjust' will also scale the text in the header |
| @@ -4519,10 +3839,8 @@ form below the header line. It is enabled by default in | |||
| 4519 | 'tabulated-list-mode' and its derived modes, and disabled by default | 3839 | 'tabulated-list-mode' and its derived modes, and disabled by default |
| 4520 | elsewhere. | 3840 | elsewhere. |
| 4521 | 3841 | ||
| 4522 | --- | ||
| 4523 | ** 'ascii' is now a coding system alias for 'us-ascii'. | 3842 | ** 'ascii' is now a coding system alias for 'us-ascii'. |
| 4524 | 3843 | ||
| 4525 | --- | ||
| 4526 | ** New coding-systems for EBCDIC variants. | 3844 | ** New coding-systems for EBCDIC variants. |
| 4527 | New coding-systems 'ibm256', 'ibm273', 'ibm274', 'ibm277', 'ibm278', | 3845 | New coding-systems 'ibm256', 'ibm273', 'ibm274', 'ibm277', 'ibm278', |
| 4528 | 'ibm280', 'ibm281', 'ibm284', 'ibm285', 'ibm290', 'ibm297'. These are | 3846 | 'ibm280', 'ibm281', 'ibm284', 'ibm285', 'ibm290', 'ibm297'. These are |
| @@ -4532,14 +3850,12 @@ locales. They are also available as aliases 'ebcdic-cp-*' (e.g., | |||
| 4532 | 'cp278' for 'ibm278'). There are also new charsets 'ibm2xx' to | 3850 | 'cp278' for 'ibm278'). There are also new charsets 'ibm2xx' to |
| 4533 | support these coding-systems. | 3851 | support these coding-systems. |
| 4534 | 3852 | ||
| 4535 | +++ | ||
| 4536 | ** New "Bindat type expression" description language. | 3853 | ** New "Bindat type expression" description language. |
| 4537 | This new system is provided by the new macro 'bindat-type' and | 3854 | This new system is provided by the new macro 'bindat-type' and |
| 4538 | obsoletes the old data layout specifications. It supports | 3855 | obsoletes the old data layout specifications. It supports |
| 4539 | arbitrary-size integers, recursive types, and more. See the Info node | 3856 | arbitrary-size integers, recursive types, and more. See the Info node |
| 4540 | "(elisp) Byte Packing" in the ELisp manual for more details. | 3857 | "(elisp) Byte Packing" in the ELisp manual for more details. |
| 4541 | 3858 | ||
| 4542 | +++ | ||
| 4543 | ** New macro 'with-environment-variables'. | 3859 | ** New macro 'with-environment-variables'. |
| 4544 | This macro allows setting environment variables temporarily when | 3860 | This macro allows setting environment variables temporarily when |
| 4545 | executing a form. | 3861 | executing a form. |
| @@ -4547,7 +3863,6 @@ executing a form. | |||
| 4547 | 3863 | ||
| 4548 | * Changes in Emacs 28.1 on Non-Free Operating Systems | 3864 | * Changes in Emacs 28.1 on Non-Free Operating Systems |
| 4549 | 3865 | ||
| 4550 | +++ | ||
| 4551 | ** On MS-Windows, Emacs can now use the native image API to display images. | 3866 | ** On MS-Windows, Emacs can now use the native image API to display images. |
| 4552 | Emacs can now use the MS-Windows GDI+ library to load and display | 3867 | Emacs can now use the MS-Windows GDI+ library to load and display |
| 4553 | images in JPEG, PNG, GIF and TIFF formats. This support is available | 3868 | images in JPEG, PNG, GIF and TIFF formats. This support is available |
| @@ -4558,7 +3873,6 @@ To turn this on, set the variable 'w32-use-native-image-API' to a | |||
| 4558 | non-nil value. Please report any bugs you find while using the native | 3873 | non-nil value. Please report any bugs you find while using the native |
| 4559 | image API via 'M-x report-emacs-bug'. | 3874 | image API via 'M-x report-emacs-bug'. |
| 4560 | 3875 | ||
| 4561 | +++ | ||
| 4562 | ** On MS-Windows, Emacs can now toggle the IME. | 3876 | ** On MS-Windows, Emacs can now toggle the IME. |
| 4563 | A new function 'w32-set-ime-open-status' can now be used to disable | 3877 | A new function 'w32-set-ime-open-status' can now be used to disable |
| 4564 | and enable the MS-Windows native Input Method Editor (IME) at run | 3878 | and enable the MS-Windows native Input Method Editor (IME) at run |
| @@ -4570,26 +3884,21 @@ current IME activation status. | |||
| 4570 | 'move-beginning-of-line' and 'move-end-of-line' respectively. The commands | 3884 | 'move-beginning-of-line' and 'move-end-of-line' respectively. The commands |
| 4571 | to select previous/next frame are still bound to 's-~' and 's-`'. | 3885 | to select previous/next frame are still bound to 's-~' and 's-`'. |
| 4572 | 3886 | ||
| 4573 | +++ | ||
| 4574 | ** On macOS, Emacs can now load dynamic modules with a ".dylib" suffix. | 3887 | ** On macOS, Emacs can now load dynamic modules with a ".dylib" suffix. |
| 4575 | 'module-file-suffix' now has the value ".dylib" on macOS, but the | 3888 | 'module-file-suffix' now has the value ".dylib" on macOS, but the |
| 4576 | ".so" suffix is supported as well. | 3889 | ".so" suffix is supported as well. |
| 4577 | 3890 | ||
| 4578 | --- | ||
| 4579 | ** On macOS, the user option 'make-pointer-invisible' is now honored. | 3891 | ** On macOS, the user option 'make-pointer-invisible' is now honored. |
| 4580 | 3892 | ||
| 4581 | --- | ||
| 4582 | ** On macOS, Xwidget is now supported. | 3893 | ** On macOS, Xwidget is now supported. |
| 4583 | If Emacs was built with xwidget support, you can access the embedded | 3894 | If Emacs was built with xwidget support, you can access the embedded |
| 4584 | webkit browser with command 'xwidget-webkit-browse-url'. Viewing two | 3895 | webkit browser with command 'xwidget-webkit-browse-url'. Viewing two |
| 4585 | instances of xwidget webkit is not supported. | 3896 | instances of xwidget webkit is not supported. |
| 4586 | 3897 | ||
| 4587 | --- | ||
| 4588 | *** New user option 'xwidget-webkit-enable-plugins'. | 3898 | *** New user option 'xwidget-webkit-enable-plugins'. |
| 4589 | If non-nil, enable plugins in xwidget. (This is only available on | 3899 | If non-nil, enable plugins in xwidget. (This is only available on |
| 4590 | macOS.) | 3900 | macOS.) |
| 4591 | 3901 | ||
| 4592 | +++ | ||
| 4593 | ** New macOS Contacts back-end for EUDC. | 3902 | ** New macOS Contacts back-end for EUDC. |
| 4594 | This backend works on newer versions of macOS and is generally | 3903 | This backend works on newer versions of macOS and is generally |
| 4595 | preferred over the eudcb-mab.el backend. | 3904 | preferred over the eudcb-mab.el backend. |