diff options
| author | Eli Zaretskii | 2017-09-16 15:53:03 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2017-09-16 15:53:03 +0300 |
| commit | 977cd6cb28a37744966ec62f70cf62659f6f302a (patch) | |
| tree | 44259a60b9d4187f1976fdec52d61612b35fc286 | |
| parent | 4ea37c2b8b0c5a68fde59770c3536195e0972217 (diff) | |
| download | emacs-977cd6cb28a37744966ec62f70cf62659f6f302a.tar.gz emacs-977cd6cb28a37744966ec62f70cf62659f6f302a.zip | |
Increment Emacs version to 27.0.50
* README:
* configure.ac:
* nt/README.W32:
* src/msdos.c (internal_terminal_init):
* msdos/sed2v2.inp:
* etc/refcards/ru-refcard.tex: Increment Emacs version to 27.0.50.
* etc/NEWS: New file with sections for Emacs 27.1.
* etc/NEWS.26: Renamed from etc/NEWS.
| -rw-r--r-- | README | 2 | ||||
| -rw-r--r-- | configure.ac | 2 | ||||
| -rw-r--r-- | etc/NEWS | 1853 | ||||
| -rw-r--r-- | etc/NEWS.26 | 1901 | ||||
| -rw-r--r-- | etc/refcards/ru-refcard.tex | 2 | ||||
| -rw-r--r-- | msdos/sed2v2.inp | 2 | ||||
| -rw-r--r-- | nt/README.W32 | 2 | ||||
| -rw-r--r-- | src/msdos.c | 2 |
8 files changed, 1920 insertions, 1846 deletions
| @@ -2,7 +2,7 @@ Copyright (C) 2001-2017 Free Software Foundation, Inc. | |||
| 2 | See the end of the file for license conditions. | 2 | See the end of the file for license conditions. |
| 3 | 3 | ||
| 4 | 4 | ||
| 5 | This directory tree holds version 26.0.50 of GNU Emacs, the extensible, | 5 | This directory tree holds version 27.0.50 of GNU Emacs, the extensible, |
| 6 | customizable, self-documenting real-time display editor. | 6 | customizable, self-documenting real-time display editor. |
| 7 | 7 | ||
| 8 | The file INSTALL in this directory says how to build and install GNU | 8 | The file INSTALL in this directory says how to build and install GNU |
diff --git a/configure.ac b/configure.ac index c88471657f6..35b7e69daf0 100644 --- a/configure.ac +++ b/configure.ac | |||
| @@ -23,7 +23,7 @@ dnl along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. | |||
| 23 | 23 | ||
| 24 | AC_PREREQ(2.65) | 24 | AC_PREREQ(2.65) |
| 25 | dnl Note this is parsed by (at least) make-dist and lisp/cedet/ede/emacs.el. | 25 | dnl Note this is parsed by (at least) make-dist and lisp/cedet/ede/emacs.el. |
| 26 | AC_INIT(GNU Emacs, 26.0.50, bug-gnu-emacs@gnu.org) | 26 | AC_INIT(GNU Emacs, 27.0.50, bug-gnu-emacs@gnu.org) |
| 27 | 27 | ||
| 28 | dnl Set emacs_config_options to the options of 'configure', quoted for the shell, | 28 | dnl Set emacs_config_options to the options of 'configure', quoted for the shell, |
| 29 | dnl and then quoted again for a C string. Separate options with spaces. | 29 | dnl and then quoted again for a C string. Separate options with spaces. |
| @@ -6,11 +6,12 @@ See the end of the file for license conditions. | |||
| 6 | Please send Emacs bug reports to bug-gnu-emacs@gnu.org. | 6 | Please send Emacs bug reports to bug-gnu-emacs@gnu.org. |
| 7 | If possible, use M-x report-emacs-bug. | 7 | If possible, use M-x report-emacs-bug. |
| 8 | 8 | ||
| 9 | This file is about changes in Emacs version 26. | 9 | This file is about changes in Emacs version 27. |
| 10 | 10 | ||
| 11 | See file HISTORY for a list of GNU Emacs versions and release dates. | 11 | See file HISTORY for a list of GNU Emacs versions and release dates. |
| 12 | See files NEWS.25, NEWS.24, NEWS.23, NEWS.22, NEWS.21, NEWS.20, | 12 | See files NEWS.26, NEWS.25, NEWS.24, NEWS.23, NEWS.22, NEWS.21, |
| 13 | NEWS.19, NEWS.18, and NEWS.1-17 for changes in older Emacs versions. | 13 | NEWS.20, NEWS.19, NEWS.18, and NEWS.1-17 for changes in older Emacs |
| 14 | versions. | ||
| 14 | 15 | ||
| 15 | You can narrow news to a specific version by calling 'view-emacs-news' | 16 | You can narrow news to a specific version by calling 'view-emacs-news' |
| 16 | with a prefix argument or by typing C-u C-h C-n. | 17 | with a prefix argument or by typing C-u C-h C-n. |
| @@ -22,1859 +23,31 @@ Temporary note: | |||
| 22 | When you add a new item, use the appropriate mark if you are sure it applies, | 23 | When you add a new item, use the appropriate mark if you are sure it applies, |
| 23 | 24 | ||
| 24 | 25 | ||
| 25 | * Installation Changes in Emacs 26.1 | 26 | * Installation Changes in Emacs 27.1 |
| 26 | |||
| 27 | ** By default libgnutls is now required when building Emacs. | ||
| 28 | Use 'configure --with-gnutls=no' to build even when GnuTLS is missing. | ||
| 29 | |||
| 30 | ** GnuTLS version 2.12.2 or later is now required, instead of merely | ||
| 31 | version 2.6.6 or later. | ||
| 32 | |||
| 33 | ** The new option 'configure --with-mailutils' causes Emacs to rely on | ||
| 34 | GNU Mailutils to retrieve email. It is recommended, and is the | ||
| 35 | default if GNU Mailutils is installed. When --with-mailutils is not | ||
| 36 | in effect, the Emacs build procedure by default continues to build and | ||
| 37 | install a limited 'movemail' substitute that retrieves POP3 email only | ||
| 38 | via insecure channels; to avoid this problem, use either | ||
| 39 | --with-mailutils or --without-pop when configuring. | ||
| 40 | |||
| 41 | ** The new option 'configure --enable-gcc-warnings=warn-only' causes | ||
| 42 | GCC to issue warnings without stopping the build. This behavior is | ||
| 43 | now the default in developer builds. As before, use | ||
| 44 | '--disable-gcc-warnings' to suppress GCC's warnings, and | ||
| 45 | '--enable-gcc-warnings' to stop the build if GCC issues warnings. | ||
| 46 | |||
| 47 | ** When GCC warnings are enabled, '--enable-check-lisp-object-type' is | ||
| 48 | now enabled by default when configuring. | ||
| 49 | |||
| 50 | +++ | ||
| 51 | ** The Emacs server now has socket-launching support. This allows | ||
| 52 | socket based activation, where an external process like systemd can | ||
| 53 | invoke the Emacs server process upon a socket connection event and | ||
| 54 | hand the socket over to Emacs. Emacs uses this socket to service | ||
| 55 | emacsclient commands. This new functionality can be disabled with the | ||
| 56 | configure option '--disable-libsystemd'. | ||
| 57 | |||
| 58 | +++ | ||
| 59 | ** A systemd user unit file is provided. Use it in the standard way: | ||
| 60 | systemctl --user enable emacs | ||
| 61 | (If your Emacs is installed in a non-standard location, you may | ||
| 62 | need to copy the emacs.service file to eg ~/.config/systemd/user/) | ||
| 63 | |||
| 64 | ** New configure option '--disable-build-details' attempts to build an | ||
| 65 | Emacs that is more likely to be reproducible; that is, if you build | ||
| 66 | and install Emacs twice, the second Emacs is a copy of the first. | ||
| 67 | Deterministic builds omit the build date from the output of the | ||
| 68 | 'emacs-version' and 'erc-cmd-SV' functions, and the leave the | ||
| 69 | following variables nil: 'emacs-build-system', 'emacs-build-time', | ||
| 70 | 'erc-emacs-build-time'. | ||
| 71 | |||
| 72 | --- | ||
| 73 | ** Emacs can now be built with support for Little CMS. | ||
| 74 | |||
| 75 | If the lcms2 library is installed, Emacs will enable features built on | ||
| 76 | top of that library. The new configure option '--without-lcms2' can | ||
| 77 | be used to build without lcms2 support even if it is installed. Emacs | ||
| 78 | linked to Little CMS exposes color management functions in Lisp: the | ||
| 79 | color metrics 'lcms-cie-de2000' and 'lcms-cam02-ucs'. | ||
| 80 | |||
| 81 | ** The configure option '--with-gameuser' now defaults to 'no', | ||
| 82 | as this appears to be the most common configuration in practice. | ||
| 83 | When it is 'no', the shared game directory and the auxiliary program | ||
| 84 | update-game-score are no longer needed and are not installed. | ||
| 85 | |||
| 86 | ** Emacs no longer works on IRIX. We expect that Emacs users are not | ||
| 87 | affected by this, as SGI stopped supporting IRIX in December 2013. | ||
| 88 | 27 | ||
| 89 | 28 | ||
| 90 | * Startup Changes in Emacs 26.1 | 29 | * Startup Changes in Emacs 27.1 |
| 91 | |||
| 92 | +++ | ||
| 93 | ** New option '--fg-daemon'. This is the same as '--daemon', except | ||
| 94 | it runs in the foreground and does not fork. This is intended for | ||
| 95 | modern init systems such as systemd, which manage many of the traditional | ||
| 96 | aspects of daemon behavior themselves. '--bg-daemon' is now an alias | ||
| 97 | for '--daemon'. | ||
| 98 | |||
| 99 | +++ | ||
| 100 | ** New option '--module-assertions'. | ||
| 101 | When given this option, Emacs will perform expensive correctness | ||
| 102 | checks when dealing with dynamic modules. This is intended for module | ||
| 103 | authors that wish to verify that their module conforms to the module | ||
| 104 | requirements. The option makes Emacs abort if a module-related | ||
| 105 | assertion triggers. | ||
| 106 | |||
| 107 | +++ | ||
| 108 | ** Emacs now supports 24-bit colors on capable text terminals | ||
| 109 | Terminal is automatically initialized to use 24-bit colors if the | ||
| 110 | required capabilities are found in terminfo. See the FAQ node | ||
| 111 | "Colors on a TTY" for more information. | ||
| 112 | |||
| 113 | +++ | ||
| 114 | ** Emacs now obeys the X resource "scrollBar" at startup. | ||
| 115 | The effect is similar to that of "toolBar" resource on the tool bar. | ||
| 116 | 30 | ||
| 117 | 31 | ||
| 118 | * Changes in Emacs 26.1 | 32 | * Changes in Emacs 27.1 |
| 119 | |||
| 120 | ** Security vulnerability related to Enriched Text mode is removed. | ||
| 121 | |||
| 122 | +++ | ||
| 123 | *** Enriched Text mode does not evaluate Lisp in 'display' properties. | ||
| 124 | This feature allows saving 'display' properties as part of text. | ||
| 125 | Emacs 'display' properties support evaluation of arbitrary Lisp forms | ||
| 126 | as part of processing the property for display, so displaying Enriched | ||
| 127 | Text could be vulnerable to executing arbitrary malicious Lisp code | ||
| 128 | included in the text (e.g., sent as part of an email message). | ||
| 129 | Therefore, execution of arbitrary Lisp forms in 'display' properties | ||
| 130 | decoded by Enriched Text mode is now disabled by default. Customize | ||
| 131 | the new option 'enriched-allow-eval-in-display-props' to a non-nil | ||
| 132 | value to allow Lisp evaluation in decoded 'display' properties. | ||
| 133 | |||
| 134 | This vulnerability was introduced in Emacs 21.1. To work around that | ||
| 135 | in Emacs versions before 25.3, append the following to your ~/.emacs | ||
| 136 | init file: | ||
| 137 | |||
| 138 | (eval-after-load "enriched" | ||
| 139 | '(defun enriched-decode-display-prop (start end &optional param) | ||
| 140 | (list start end))) | ||
| 141 | |||
| 142 | +++ | ||
| 143 | ** Functions in 'write-contents-functions' can fully short-circuit the | ||
| 144 | 'save-buffer' process. Previously, saving a buffer that was not | ||
| 145 | visiting a file would always prompt for a file name. Now it only does | ||
| 146 | so if 'write-contents-functions' is nil (or all its functions return | ||
| 147 | nil). A non-nil buffer-local value for this variable is sufficient | ||
| 148 | for 'save-some-buffers' to consider the buffer for saving. | ||
| 149 | |||
| 150 | --- | ||
| 151 | ** New variable 'executable-prefix-env' for inserting magic signatures. | ||
| 152 | This variable affects the format of the interpreter magic number | ||
| 153 | inserted by 'executable-set-magic'. If non-nil, the magic number now | ||
| 154 | takes the form "#!/usr/bin/env interpreter", otherwise the value | ||
| 155 | determined by 'executable-prefix', which is by default | ||
| 156 | "#!/path/to/interpreter". By default, 'executable-prefix-env' is nil, | ||
| 157 | so the default behavior is not changed. | ||
| 158 | |||
| 159 | +++ | ||
| 160 | ** The variable 'emacs-version' no longer includes the build number. | ||
| 161 | This is now stored separately in a new variable, 'emacs-build-number'. | ||
| 162 | |||
| 163 | +++ | ||
| 164 | ** Emacs now provides a limited form of concurrency with Lisp threads. | ||
| 165 | Concurrency in Emacs Lisp is "mostly cooperative", meaning that | ||
| 166 | Emacs will only switch execution between threads at well-defined | ||
| 167 | times: when Emacs waits for input, during blocking operations related | ||
| 168 | to threads (such as mutex locking), or when the current thread | ||
| 169 | explicitly yields. Global variables are shared among all threads, but | ||
| 170 | a 'let' binding is thread-local. Each thread also has its own current | ||
| 171 | buffer and its own match data. | ||
| 172 | |||
| 173 | See the chapter "Threads" in the ELisp manual for full documentation | ||
| 174 | of these facilities. | ||
| 175 | |||
| 176 | +++ | ||
| 177 | ** The new user variable 'electric-quote-chars' provides a list | ||
| 178 | of curved quotes for 'electric-quote-mode', allowing user to choose | ||
| 179 | the types of quotes to be used. | ||
| 180 | |||
| 181 | --- | ||
| 182 | ** The new user option 'electric-quote-context-sensitive' makes | ||
| 183 | 'electric-quote-mode' context sensitive. If it is non-nil, you can | ||
| 184 | type an ASCII apostrophe to insert an opening or closing quote, | ||
| 185 | depending on context. Emacs will replace the apostrophe by an opening | ||
| 186 | quote character at the beginning of the buffer, the beginning of a | ||
| 187 | line, after a whitespace character, and after an opening parenthesis; | ||
| 188 | and it will replace the apostrophe by a closing quote character in all | ||
| 189 | other cases. | ||
| 190 | |||
| 191 | --- | ||
| 192 | ** The new variable 'electric-quote-inhibit-functions' controls when | ||
| 193 | to disable electric quoting based on context. Major modes can add | ||
| 194 | functions to this list; Emacs will temporarily disable | ||
| 195 | 'electric-quote-mode' whenever any of the functions returns non-nil. | ||
| 196 | This can be used by major modes that derive from 'text-mode' but allow | ||
| 197 | inline code segments, such as 'markdown-mode'. | ||
| 198 | |||
| 199 | +++ | ||
| 200 | ** The new user variable 'dired-omit-case-fold' allows the user to | ||
| 201 | customize the case-sensitivity of dired-omit-mode. It defaults to | ||
| 202 | the same sensitivity as that of the filesystem for the corresponding | ||
| 203 | dired buffer. | ||
| 204 | |||
| 205 | +++ | ||
| 206 | ** Emacs now uses double buffering to reduce flicker when editing and | ||
| 207 | resizing graphical Emacs frames on the X Window System. This support | ||
| 208 | requires the DOUBLE-BUFFER extension, which major X servers have | ||
| 209 | supported for many years. If your system has this extension, but an | ||
| 210 | Emacs built with double buffering misbehaves on some displays you use, | ||
| 211 | you can disable the feature by adding | ||
| 212 | |||
| 213 | '(inhibit-double-buffering . t) | ||
| 214 | |||
| 215 | to default-frame-alist. Or inject this parameter into the selected | ||
| 216 | frame by evaluating this form: | ||
| 217 | |||
| 218 | (modify-frame-parameters nil '((inhibit-double-buffering . t))) | ||
| 219 | |||
| 220 | --- | ||
| 221 | The group 'wp', whose label was "text", is now deprecated. | ||
| 222 | Use the new group 'text', which inherits from 'wp', instead. | ||
| 223 | |||
| 224 | +++ | ||
| 225 | ** The new function 'call-shell-region' executes a command in an | ||
| 226 | inferior shell with the buffer region as input. | ||
| 227 | |||
| 228 | +++ | ||
| 229 | ** The new user option 'shell-command-dont-erase-buffer' controls | ||
| 230 | if the output buffer is erased between shell commands; if non-nil, | ||
| 231 | the output buffer is not erased; this variable also controls where | ||
| 232 | to set the point in the output buffer: beginning of the output, | ||
| 233 | end of the buffer or save the point. | ||
| 234 | When 'shell-command-dont-erase-buffer' is nil, the default value, | ||
| 235 | the behavior of 'shell-command', 'shell-command-on-region' and | ||
| 236 | 'async-shell-command' is as usual. | ||
| 237 | |||
| 238 | +++ | ||
| 239 | ** The new user option 'async-shell-command-display-buffer' controls | ||
| 240 | whether the output buffer of an asynchronous command is shown | ||
| 241 | immediately, or only when there is output. | ||
| 242 | |||
| 243 | +++ | ||
| 244 | ** The new user option 'mouse-select-region-move-to-beginning' | ||
| 245 | controls the position of point when double-clicking mouse-1 on the end | ||
| 246 | of a parenthetical grouping or string-delimiter: the default value nil | ||
| 247 | keeps point at the end of the region, setting it to non-nil moves | ||
| 248 | point to the beginning of the region. | ||
| 249 | |||
| 250 | +++ | ||
| 251 | ** The new user option 'mouse-drag-and-drop-region' allows to drag the | ||
| 252 | entire region of text to another place or another buffer. | ||
| 253 | |||
| 254 | +++ | ||
| 255 | ** The new user option 'confirm-kill-processes' allows the user to | ||
| 256 | skip a confirmation prompt for killing subprocesses when exiting | ||
| 257 | Emacs. When set to t (the default), Emacs will prompt for | ||
| 258 | confirmation before killing subprocesses on exit, which is the same | ||
| 259 | behavior as before. | ||
| 260 | |||
| 261 | --- | ||
| 262 | ** 'find-library-name' will now fall back on looking at 'load-history' | ||
| 263 | to try to locate libraries that have been loaded with an explicit path | ||
| 264 | outside 'load-path'. | ||
| 265 | |||
| 266 | +++ | ||
| 267 | ** Faces in 'minibuffer-prompt-properties' no longer overwrite properties | ||
| 268 | in the text in functions like 'read-from-minibuffer', but instead are | ||
| 269 | added to the end of the face list. This allows users to say things | ||
| 270 | like '(read-from-minibuffer (propertize "Enter something: " 'face 'bold))'. | ||
| 271 | |||
| 272 | +++ | ||
| 273 | ** The new variable 'extended-command-suggest-shorter' has been added | ||
| 274 | to control whether to suggest shorter 'M-x' commands or not. | ||
| 275 | |||
| 276 | --- | ||
| 277 | ** icomplete now respects 'completion-ignored-extensions'. | ||
| 278 | |||
| 279 | +++ | ||
| 280 | ** Non-breaking hyphens are now displayed with the 'nobreak-hyphen' | ||
| 281 | face instead of the 'escape-glyph' face. | ||
| 282 | |||
| 283 | +++ | ||
| 284 | ** Approximations to quotes are now displayed with the new 'homoglyph' | ||
| 285 | face instead of the 'escape-glyph' face. | ||
| 286 | |||
| 287 | +++ | ||
| 288 | ** New face 'header-line-highlight'. | ||
| 289 | This face is the header-line analogue of 'mode-line-highlight'; it | ||
| 290 | should be the preferred mouse-face for mouse-sensitive elements in the | ||
| 291 | header line. | ||
| 292 | |||
| 293 | --- | ||
| 294 | ** 'C-x h' ('mark-whole-buffer') will now avoid marking the prompt | ||
| 295 | part of minibuffers. | ||
| 296 | |||
| 297 | --- | ||
| 298 | ** 'find-library' now takes a prefix argument to pop to a different | ||
| 299 | window. | ||
| 300 | |||
| 301 | --- | ||
| 302 | ** 'fill-paragraph' no longer marks the buffer as changed unless it | ||
| 303 | actually changed something. | ||
| 304 | |||
| 305 | --- | ||
| 306 | ** The locale language name 'ca' is now mapped to the language | ||
| 307 | environment 'Catalan', which has been added. | ||
| 308 | |||
| 309 | --- | ||
| 310 | ** 'align-regexp' has a separate history for its interactive argument. | ||
| 311 | 'align-regexp' no longer shares its history with all other | ||
| 312 | history-less functions that use 'read-string'. | ||
| 313 | |||
| 314 | +++ | ||
| 315 | ** The networking code has been reworked so that it's more | ||
| 316 | asynchronous than it was (when specifying :nowait t in | ||
| 317 | 'make-network-process'). How asynchronous it is varies based on the | ||
| 318 | capabilities of the system, but on a typical GNU/Linux system the DNS | ||
| 319 | resolution, the connection, and (for TLS streams) the TLS negotiation | ||
| 320 | are all done without blocking the main Emacs thread. To get | ||
| 321 | asynchronous TLS, the TLS boot parameters have to be passed in (see | ||
| 322 | the manual for details). | ||
| 323 | |||
| 324 | Certain process oriented functions (like 'process-datagram-address') | ||
| 325 | will block until socket setup has been performed. The recommended way | ||
| 326 | to deal with asynchronous sockets is to avoid interacting with them | ||
| 327 | until they have changed status to "run". This is most easily done | ||
| 328 | from a process sentinel. | ||
| 329 | |||
| 330 | --- | ||
| 331 | ** 'make-network-process' and 'open-network-stream' sometimes allowed | ||
| 332 | :service to be an integer string (e.g., :service "993") and sometimes | ||
| 333 | required an integer (e.g., :service 993). This difference has been | ||
| 334 | eliminated, and integer strings work everywhere. | ||
| 335 | |||
| 336 | --- | ||
| 337 | ** It is possible to disable attempted recovery on fatal signals. | ||
| 338 | Two new variables support disabling attempts to recover from stack | ||
| 339 | overflow and to avoid automatic auto-save when Emacs is delivered a | ||
| 340 | fatal signal. 'attempt-stack-overflow-recovery', if set to 'nil', | ||
| 341 | will disable attempts to recover from C stack overflows; Emacs will | ||
| 342 | then crash as with any other fatal signal. | ||
| 343 | 'attempt-orderly-shutdown-on-fatal-signal', if set to 'nil', will | ||
| 344 | disable attempts to auto-save the session and shut down in an orderly | ||
| 345 | fashion when Emacs receives a fatal signal; instead, Emacs will | ||
| 346 | terminate immediately. Both variables are non-'nil' by default. | ||
| 347 | These variables are for users who would like to avoid the small | ||
| 348 | probability of data corruption due to techniques Emacs uses to recover | ||
| 349 | in these situations. | ||
| 350 | |||
| 351 | +++ | ||
| 352 | ** File local and directory local variables are now initialized each | ||
| 353 | time the major mode is set, not just when the file is first visited. | ||
| 354 | These local variables will thus not vanish on setting a major mode. | ||
| 355 | |||
| 356 | +++ | ||
| 357 | ** A second dir-local file (.dir-locals-2.el) is now accepted. | ||
| 358 | See the variable 'dir-locals-file-2' for more information. | ||
| 359 | |||
| 360 | +++ | ||
| 361 | ** Connection-local variables can be used to specify local variables | ||
| 362 | with a value depending on the connected remote server. For details, | ||
| 363 | see the node "Connection Local Variables" in the ELisp manual. | ||
| 364 | |||
| 365 | --- | ||
| 366 | ** International domain names (IDNA) are now encoded via the new | ||
| 367 | puny.el library, so that one can visit Web sites with non-ASCII URLs. | ||
| 368 | |||
| 369 | +++ | ||
| 370 | ** The new 'timer-list' command lists all active timers in a buffer, | ||
| 371 | where you can cancel them with the 'c' command. | ||
| 372 | |||
| 373 | +++ | ||
| 374 | ** 'switch-to-buffer-preserve-window-point' now defaults to t. | ||
| 375 | |||
| 376 | +++ | ||
| 377 | ** The new variable 'debugger-stack-frame-as-list' allows displaying | ||
| 378 | all call stack frames in a Lisp backtrace buffer as lists. Both | ||
| 379 | debug.el and edebug.el have been updated to heed to this variable. | ||
| 380 | |||
| 381 | --- | ||
| 382 | ** Values in call stack frames are now displayed using 'cl-prin1'. | ||
| 383 | The old behaviour of using 'prin1' can be restored by customizing the | ||
| 384 | new option 'debugger-print-function'. | ||
| 385 | |||
| 386 | +++ | ||
| 387 | ** NUL bytes in text copied to the system clipboard are now replaced with "\0". | ||
| 388 | |||
| 389 | +++ | ||
| 390 | ** The new variable 'x-ctrl-keysym' has been added to the existing | ||
| 391 | roster of X keysyms. It can be used in combination with another | ||
| 392 | variable of this kind to swap modifiers in Emacs. | ||
| 393 | |||
| 394 | --- | ||
| 395 | ** New input methods: 'cyrillic-tuvan', 'polish-prefix'. | ||
| 396 | |||
| 397 | --- | ||
| 398 | ** The 'dutch' input method no longer attempts to support Turkish too. | ||
| 399 | Also, it no longer converts 'IJ' and 'ij' to the compatibility | ||
| 400 | characters U+0132 LATIN CAPITAL LIGATURE IJ and U+0133 LATIN SMALL | ||
| 401 | LIGATURE IJ. | ||
| 402 | |||
| 403 | +++ | ||
| 404 | ** File name quoting by adding the prefix "/:" is now possible for the | ||
| 405 | local part of a remote file name. Thus, if you have a directory named | ||
| 406 | "/~" on the remote host "foo", you can prevent it from being | ||
| 407 | substituted by a home directory by writing it as "/foo:/:/~/file". | ||
| 408 | |||
| 409 | +++ | ||
| 410 | ** The new variable 'maximum-scroll-margin' allows having effective | ||
| 411 | settings of 'scroll-margin' up to half the window size, instead of | ||
| 412 | always restricting the margin to a quarter of the window. | ||
| 413 | |||
| 414 | +++ | ||
| 415 | ** Emacs can scroll horizontally using mouse, touchpad, and trackbar. | ||
| 416 | You can enable this by customizing 'mwheel-tilt-scroll-p'. If you | ||
| 417 | want to reverse the direction of the scroll, customize | ||
| 418 | 'mwheel-flip-direction'. | ||
| 419 | |||
| 420 | +++ | ||
| 421 | ** Emacsclient has a new option -u/--suppress-output. | ||
| 422 | This option suppresses display of return values from the server | ||
| 423 | process. | ||
| 424 | |||
| 425 | +++ | ||
| 426 | ** Emacsclient has a new option -T/--tramp. | ||
| 427 | This helps with using a local Emacs session as the server for a remote | ||
| 428 | emacsclient. With appropriate setup, one can now set the EDITOR | ||
| 429 | environment variable on a remote machine to emacsclient, and | ||
| 430 | use the local Emacs to edit remote files via Tramp. See the node | ||
| 431 | "emacsclient Options" in the user manual for the details. | ||
| 432 | |||
| 433 | --- | ||
| 434 | ** New user option 'dig-program-options' and extended functionality | ||
| 435 | for DNS-querying functions 'nslookup-host', 'dns-lookup-host', | ||
| 436 | and 'run-dig'. Each function now accepts an optional name server | ||
| 437 | argument interactively (with a prefix argument) and non-interactively. | ||
| 438 | |||
| 439 | +++ | ||
| 440 | ** 'describe-key-briefly' now ignores mouse movement events. | ||
| 441 | |||
| 442 | +++ | ||
| 443 | ** The new variable 'eval-expression-print-maximum-character' prevents | ||
| 444 | large integers from being displayed as characters by 'M-:' and similar | ||
| 445 | commands. | ||
| 446 | |||
| 447 | --- | ||
| 448 | ** Two new commands for finding the source code of Emacs Lisp | ||
| 449 | libraries: 'find-library-other-window' and 'find-library-other-frame'. | ||
| 450 | |||
| 451 | +++ | ||
| 452 | ** The new variable 'display-raw-bytes-as-hex' allows to change the | ||
| 453 | display of raw bytes from octal to hex. | ||
| 454 | |||
| 455 | +++ | ||
| 456 | ** You can now provide explicit field numbers in format specifiers. | ||
| 457 | For example, '(format "%2$s %1$s" "X" "Y")' produces "Y X". | ||
| 458 | |||
| 459 | +++ | ||
| 460 | ** Emacs now supports optional display of line numbers in the buffer. | ||
| 461 | This is similar to what linum-mode provides, but much faster and | ||
| 462 | doesn't usurp the display margin for the line numbers. Customize the | ||
| 463 | buffer-local variable 'display-line-numbers' to activate this optional | ||
| 464 | display. Alternatively, you can use the `display-line-numbers-mode' | ||
| 465 | minor mode or the global `global-display-line-numbers-mode'. When | ||
| 466 | using these modes, customize `display-line-numbers-type' with the same | ||
| 467 | value as you would use with `display-line-numbers'. | ||
| 468 | |||
| 469 | Line numbers are not displayed at all in minibuffer windows and in | ||
| 470 | tooltips, as they are not useful there. | ||
| 471 | |||
| 472 | Lisp programs can disable line-number display for a particular screen | ||
| 473 | line by putting the 'display-line-numbers-disable' text property or | ||
| 474 | overlay property on the first character of that screen line. This is | ||
| 475 | intended for add-on packages that need a finer control of the display. | ||
| 476 | |||
| 477 | Lisp programs that need to know how much screen estate is used up for | ||
| 478 | line-number display in a window can use the new function | ||
| 479 | 'line-number-display-width'. | ||
| 480 | |||
| 481 | Linum mode and all similar packages are henceforth becoming obsolete. | ||
| 482 | Users and developers are encouraged to switch to this new feature | ||
| 483 | instead. | ||
| 484 | |||
| 485 | +++ | ||
| 486 | ** emacsclient now accepts command-line options in ALTERNATE_EDITOR | ||
| 487 | and --alternate-editor. For example, ALTERNATE_EDITOR="emacs -Q -nw". | ||
| 488 | Arguments may be quoted "like this", so that for example an absolute | ||
| 489 | path containing a space may be specified; quote escaping is not | ||
| 490 | supported. | ||
| 491 | 33 | ||
| 492 | 34 | ||
| 493 | * Editing Changes in Emacs 26.1 | 35 | * Editing Changes in Emacs 27.1 |
| 494 | |||
| 495 | +++ | ||
| 496 | ** New variable 'column-number-indicator-zero-based'. | ||
| 497 | Traditionally, in Column Number mode, the displayed column number | ||
| 498 | counts from zero starting at the left margin of the window. This | ||
| 499 | behavior is now controlled by 'column-number-indicator-zero-based'. | ||
| 500 | If you would prefer for the displayed column number to count from one, | ||
| 501 | you may set this variable to nil. (Behind the scenes, there is now a | ||
| 502 | new mode line construct, '%C', which operates exactly as '%c' does | ||
| 503 | except that it counts from one.) | ||
| 504 | |||
| 505 | +++ | ||
| 506 | ** New single-line horizontal scrolling mode. | ||
| 507 | The 'auto-hscroll-mode' variable can now have a new special value, | ||
| 508 | 'current-line', which causes only the line where the cursor is | ||
| 509 | displayed to be horizontally scrolled when lines are truncated on | ||
| 510 | display and point moves outside the left or right window margin. | ||
| 511 | |||
| 512 | +++ | ||
| 513 | ** New mode line constructs '%o' and '%q', and user option | ||
| 514 | 'mode-line-percent-position'. '%o' displays the "degree of travel" of | ||
| 515 | the window through the buffer. Unlike the default '%p', this | ||
| 516 | percentage approaches 100% as the window approaches the end of the | ||
| 517 | buffer. '%q' displays the percentage offsets of both the start and | ||
| 518 | the end of the window, e.g. "5-17%". The new option | ||
| 519 | 'mode-line-percent-position' makes it easier to switch between '%p', | ||
| 520 | '%P', and these new constructs. | ||
| 521 | |||
| 522 | +++ | ||
| 523 | ** Two new user options 'list-matching-lines-jump-to-current-line' and | ||
| 524 | 'list-matching-lines-current-line-face' to show highlighted the current | ||
| 525 | line in *Occur* buffer. | ||
| 526 | |||
| 527 | +++ | ||
| 528 | ** The 'occur' command can now operate on the region. | ||
| 529 | |||
| 530 | +++ | ||
| 531 | ** New bindings for 'query-replace-map'. | ||
| 532 | 'undo', undo the last replacement; bound to 'u'. | ||
| 533 | 'undo-all', undo all replacements; bound to 'U'. | ||
| 534 | |||
| 535 | --- | ||
| 536 | ** 'delete-trailing-whitespace' deletes whitespace after form feed. | ||
| 537 | In modes where form feed was treated as a whitespace character, | ||
| 538 | 'delete-trailing-whitespace' would keep lines containing it unchanged. | ||
| 539 | It now deletes whitespace after the last form feed thus behaving the | ||
| 540 | same as in modes where the character is not whitespace. | ||
| 541 | |||
| 542 | --- | ||
| 543 | ** Emacs no longer prompts about editing a changed file when the file's | ||
| 544 | content is unchanged. Instead of only checking the modification time, | ||
| 545 | Emacs now also checks the file's actual content before prompting the user. | ||
| 546 | |||
| 547 | --- | ||
| 548 | ** Various casing improvements. | ||
| 549 | |||
| 550 | *** 'upcase', 'upcase-region' et al. convert title case characters | ||
| 551 | (such as Dz) into their upper case form (such as DZ). | ||
| 552 | |||
| 553 | *** 'capitalize', 'upcase-initials' et al. make use of title-case forms | ||
| 554 | of initial characters (correctly producing for example Džungla instead | ||
| 555 | of incorrect DŽungla). | ||
| 556 | |||
| 557 | *** Characters which turn into multiple ones when cased are correctly handled. | ||
| 558 | For example, fi ligature is converted to FI when upper cased. | ||
| 559 | |||
| 560 | *** Greek small sigma is correctly handled when at the end of the word. | ||
| 561 | Strings such as ΌΣΟΣ are now correctly converted to Όσος when | ||
| 562 | capitalized instead of incorrect Όσοσ (compare lowercase sigma at the | ||
| 563 | end of the word). | ||
| 564 | |||
| 565 | +++ | ||
| 566 | ** Emacs can now auto-save buffers to visited files in a more robust | ||
| 567 | manner via the new mode 'auto-save-visited-mode'. Unlike | ||
| 568 | 'auto-save-visited-file-name', this mode uses the normal saving | ||
| 569 | procedure and therefore obeys saving hooks. | ||
| 570 | 'auto-save-visited-file-name' is now obsolete. | ||
| 571 | |||
| 572 | +++ | ||
| 573 | ** New behavior of 'mark-defun'. | ||
| 574 | Prefix argument selects that many (or that many more) defuns. | ||
| 575 | Negative prefix arg flips the direction of selection. Also, | ||
| 576 | 'mark-defun' between defuns correctly selects N following defuns (or | ||
| 577 | -N previous for negative arguments). Finally, comments preceding the | ||
| 578 | defun are selected unless they are separated from the defun by a blank | ||
| 579 | line. | ||
| 580 | |||
| 581 | --- | ||
| 582 | ** New command 'replace-buffer-contents'. | ||
| 583 | This command replaces the contents of the accessible portion of the | ||
| 584 | current buffer with the contents of the accessible portion of a | ||
| 585 | different buffer while keeping point, mark, markers, and text | ||
| 586 | properties as intact as possible. | ||
| 587 | |||
| 588 | +++ | ||
| 589 | ** New commands 'apropos-local-variable' and 'apropos-local-value. | ||
| 590 | These are buffer-local versions of 'apropos-variable' and | ||
| 591 | 'apropos-value', respectively. They show buffer-local variables whose | ||
| 592 | names and values, respectively, match a given pattern. | ||
| 593 | |||
| 594 | +++ | ||
| 595 | ** More user control of reordering bidirectional text for display. | ||
| 596 | The two new variables, 'bidi-paragraph-start-re' and | ||
| 597 | 'bidi-paragraph-separate-re', allow customization of what exactly are | ||
| 598 | paragraphs, for the purposes of bidirectional display. | ||
| 599 | 36 | ||
| 600 | 37 | ||
| 601 | * Changes in Specialized Modes and Packages in Emacs 26.1 | 38 | * Changes in Specialized Modes and Packages in Emacs 27.1 |
| 602 | |||
| 603 | --- | ||
| 604 | ** New function `cl-generic-p'. | ||
| 605 | |||
| 606 | ** Dired | ||
| 607 | |||
| 608 | +++ | ||
| 609 | *** You can answer 'all' in 'dired-do-delete' to delete recursively all | ||
| 610 | remaining directories without more prompts. | ||
| 611 | |||
| 612 | +++ | ||
| 613 | *** Dired supports wildcards in the directory part of the file names. | ||
| 614 | |||
| 615 | +++ | ||
| 616 | *** You can now use '`?`' in 'dired-do-shell-command'. | ||
| 617 | It gets replaced by the current file name, like ' ? '. | ||
| 618 | |||
| 619 | +++ | ||
| 620 | *** A new option 'dired-always-read-filesystem' default to nil. | ||
| 621 | If non-nil, buffers visiting files are reverted before search them; | ||
| 622 | for instance, in 'dired-mark-files-containing-regexp' a non-nil value | ||
| 623 | of this option means the file is revisited in a temporary buffer; | ||
| 624 | this temporary buffer is the actual buffer searched: the original buffer | ||
| 625 | visiting the file is not modified. | ||
| 626 | |||
| 627 | --- | ||
| 628 | *** Users can now customize mouse clicks in Dired in a more flexible way. | ||
| 629 | The new command 'dired-mouse-find-file' can be bound to a mouse click | ||
| 630 | and used to visit files/directories in Dired in the selected window. | ||
| 631 | The new command 'dired-mouse-find-file-other-frame' similarly visits | ||
| 632 | files/directories in another frame. You can write your own commands | ||
| 633 | that invoke 'dired-mouse-find-file' with non-default optional | ||
| 634 | arguments, to tailor the effects of mouse clicks on file names in | ||
| 635 | Dired buffers. | ||
| 636 | |||
| 637 | +++ | ||
| 638 | *** In wdired, when editing files to contain slash characters, | ||
| 639 | the resulting directories are automatically created. Whether to do | ||
| 640 | this is controlled by the 'wdired-create-parent-directories' variable. | ||
| 641 | |||
| 642 | +++ | ||
| 643 | *** 'W' is now bound to 'browse-url-of-dired-file', and is useful for | ||
| 644 | viewing HTML files and the like. | ||
| 645 | |||
| 646 | --- | ||
| 647 | *** New variable 'dired-clean-confirm-killing-deleted-buffers' | ||
| 648 | controls whether Dired asks to kill buffers visiting deleted files and | ||
| 649 | directories. The default is t, so Dired asks for confirmation, to | ||
| 650 | keep previous behavior. | ||
| 651 | |||
| 652 | --- | ||
| 653 | ** html2text is now marked obsolete. | ||
| 654 | |||
| 655 | --- | ||
| 656 | ** smerge-refine-regions can refine regions in separate buffers | ||
| 657 | |||
| 658 | --- | ||
| 659 | ** Info menu and index completion uses substring completion by default. | ||
| 660 | This can be customized via the info-menu category in | ||
| 661 | completion-category-override. | ||
| 662 | |||
| 663 | +++ | ||
| 664 | ** The ancestor buffer is shown by default in 3-way merges. | ||
| 665 | A new option ediff-show-ancestor and a new toggle | ||
| 666 | ediff-toggle-show-ancestor. | ||
| 667 | |||
| 668 | --- | ||
| 669 | ** TeX: Add luatex and xetex as alternatives to pdftex | ||
| 670 | |||
| 671 | ** Electric-Buffer-menu | ||
| 672 | |||
| 673 | +++ | ||
| 674 | *** Key 'U' is bound to 'Buffer-menu-unmark-all' and key 'M-DEL' is | ||
| 675 | bound to 'Buffer-menu-unmark-all-buffers'. | ||
| 676 | |||
| 677 | ** bs | ||
| 678 | |||
| 679 | --- | ||
| 680 | *** Two new commands 'bs-unmark-all', bound to 'U', and | ||
| 681 | 'bs-unmark-previous', bound to <backspace>. | ||
| 682 | |||
| 683 | ** Buffer-menu | ||
| 684 | |||
| 685 | +++ | ||
| 686 | *** Two new commands 'Buffer-menu-unmark-all', bound to 'U' and | ||
| 687 | 'Buffer-menu-unmark-all-buffers', bound to 'M-DEL'. | ||
| 688 | |||
| 689 | --- | ||
| 690 | ** Checkdoc | ||
| 691 | |||
| 692 | *** 'checkdoc-arguments-in-order-flag' now defaults to nil. | ||
| 693 | |||
| 694 | ** Gnus | ||
| 695 | |||
| 696 | --- | ||
| 697 | *** The .newsrc file will now only be saved if the native select | ||
| 698 | method is an NNTP select method. | ||
| 699 | |||
| 700 | +++ | ||
| 701 | *** A new command for sorting articles by readedness marks has been | ||
| 702 | added: 'C-c C-s C-m C-m'. | ||
| 703 | |||
| 704 | ** Ibuffer | ||
| 705 | |||
| 706 | --- | ||
| 707 | *** New command 'ibuffer-jump'. | ||
| 708 | |||
| 709 | --- | ||
| 710 | *** New filter commands 'ibuffer-filter-by-basename', | ||
| 711 | 'ibuffer-filter-by-file-extension', 'ibuffer-filter-by-directory', | ||
| 712 | 'ibuffer-filter-by-starred-name', 'ibuffer-filter-by-modified' | ||
| 713 | and 'ibuffer-filter-by-visiting-file'; bound respectively | ||
| 714 | to '/b', '/.', '//', '/*', '/i' and '/v'. | ||
| 715 | |||
| 716 | --- | ||
| 717 | *** Two new commands 'ibuffer-filter-chosen-by-completion' | ||
| 718 | and 'ibuffer-and-filter', the second bound to '/&'. | ||
| 719 | |||
| 720 | --- | ||
| 721 | *** The commands 'ibuffer-pop-filter', 'ibuffer-pop-filter-group', | ||
| 722 | 'ibuffer-or-filter' and 'ibuffer-filter-disable' have the alternative | ||
| 723 | bindings '/<up>', '/S-<up>', '/|' and '/DEL', respectively. | ||
| 724 | |||
| 725 | --- | ||
| 726 | *** The data format specifying filters has been extended to allow | ||
| 727 | explicit logical 'and', and a more flexible form for logical 'not'. | ||
| 728 | See 'ibuffer-filtering-qualifiers' doc string for full details. | ||
| 729 | |||
| 730 | --- | ||
| 731 | *** A new command 'ibuffer-copy-buffername-as-kill'; bound | ||
| 732 | to 'B'. | ||
| 733 | |||
| 734 | --- | ||
| 735 | *** New command 'ibuffer-change-marks'; bound to '* c'. | ||
| 736 | |||
| 737 | --- | ||
| 738 | *** A new command 'ibuffer-mark-by-locked' to mark | ||
| 739 | all locked buffers; bound to '% L'. | ||
| 740 | |||
| 741 | --- | ||
| 742 | *** A new option 'ibuffer-locked-char' to indicate | ||
| 743 | locked buffers; Ibuffer shows a new column displaying | ||
| 744 | 'ibuffer-locked-char' for locked buffers. | ||
| 745 | |||
| 746 | --- | ||
| 747 | *** A new command 'ibuffer-unmark-all-marks' to unmark | ||
| 748 | all buffers without asking confirmation; bound to | ||
| 749 | 'U'; 'ibuffer-do-replace-regexp' bound to 'r'. | ||
| 750 | |||
| 751 | --- | ||
| 752 | *** A new command 'ibuffer-mark-by-content-regexp' to mark buffers | ||
| 753 | whose content matches a regexp; bound to '% g'. | ||
| 754 | |||
| 755 | --- | ||
| 756 | *** Two new options 'ibuffer-never-search-content-name' and | ||
| 757 | 'ibuffer-never-search-content-mode' used by | ||
| 758 | 'ibuffer-mark-by-content-regexp'. | ||
| 759 | |||
| 760 | ** Browse-URL | ||
| 761 | |||
| 762 | --- | ||
| 763 | *** Support for opening links to man pages in Man or WoMan mode. | ||
| 764 | |||
| 765 | ** Comint | ||
| 766 | |||
| 767 | --- | ||
| 768 | *** New user option 'comint-move-point-for-matching-input' to control | ||
| 769 | where to place point after C-c M-r and C-c M-s. | ||
| 770 | |||
| 771 | ** Compilation mode | ||
| 772 | |||
| 773 | --- | ||
| 774 | *** Messages from CMake are now recognized. | ||
| 775 | |||
| 776 | +++ | ||
| 777 | *** The number of errors, warnings, and informational messages is now | ||
| 778 | displayed in the mode line. These are updated as compilation | ||
| 779 | proceeds. | ||
| 780 | |||
| 781 | ** Grep | ||
| 782 | |||
| 783 | --- | ||
| 784 | *** Grep commands will now use GNU grep's '--null' option if | ||
| 785 | available, which allows distinguishing the filename from contents if | ||
| 786 | they contain colons. This can be controlled by the new custom option | ||
| 787 | 'grep-use-null-filename-separator'. | ||
| 788 | |||
| 789 | --- | ||
| 790 | *** The grep/rgrep/lgrep functions will now ask about saving files | ||
| 791 | before running. This is controlled by the 'grep-save-buffers' | ||
| 792 | variable. | ||
| 793 | |||
| 794 | ** Edebug | ||
| 795 | |||
| 796 | --- | ||
| 797 | *** Edebug can be prevented from pausing 1 second after reaching a | ||
| 798 | breakpoint (e.g. with "f" and "o") by customizing the new option | ||
| 799 | 'edebug-sit-on-break'. | ||
| 800 | |||
| 801 | +++ | ||
| 802 | *** New customizable option 'edebug-max-depth' | ||
| 803 | This allows to enlarge the maximum recursion depth when instrumenting | ||
| 804 | code. | ||
| 805 | |||
| 806 | ** Eshell | ||
| 807 | |||
| 808 | --- | ||
| 809 | *** 'eshell-input-filter's value is now a named function | ||
| 810 | 'eshell-input-filter-default', and has a new custom option | ||
| 811 | 'eshell-input-filter-initial-space' to ignore adding commands prefixed | ||
| 812 | with blank space to eshell history. | ||
| 813 | |||
| 814 | ** eww | ||
| 815 | |||
| 816 | +++ | ||
| 817 | *** New 'M-RET' command for opening a link at point in a new eww buffer. | ||
| 818 | |||
| 819 | +++ | ||
| 820 | *** A new 's' command for switching to another eww buffer via the minibuffer. | ||
| 821 | |||
| 822 | --- | ||
| 823 | *** The 'o' command ('shr-save-contents') has moved to 'O' to avoid collision | ||
| 824 | with the 'o' command from 'image-map'. | ||
| 825 | |||
| 826 | +++ | ||
| 827 | *** A new command 'C' ('eww-toggle-colors') can be used to toggle | ||
| 828 | whether to use the HTML-specified colors or not. The user can also | ||
| 829 | customize the 'shr-use-colors' variable. | ||
| 830 | |||
| 831 | --- | ||
| 832 | *** Images that are being loaded are now marked with gray | ||
| 833 | "placeholder" images of the size specified by the HTML. They are then | ||
| 834 | replaced by the real images asynchronously, which will also now | ||
| 835 | respect width/height HTML specs (unless they specify widths/heights | ||
| 836 | bigger than the current window). | ||
| 837 | |||
| 838 | --- | ||
| 839 | *** The 'w' command on links is now 'shr-maybe-probe-and-copy-url'. | ||
| 840 | 'shr-copy-url' now only copies the url at point; users who wish to | ||
| 841 | avoid accidentally accessing remote links may rebind 'w' and 'u' in | ||
| 842 | 'eww-link-keymap' to it. | ||
| 843 | |||
| 844 | |||
| 845 | ** Ido | ||
| 846 | |||
| 847 | --- | ||
| 848 | *** The commands 'find-alternate-file-other-window', | ||
| 849 | 'dired-other-window', 'dired-other-frame', and | ||
| 850 | 'display-buffer-other-window' are now remapped to Ido equivalents if | ||
| 851 | Ido mode is active. | ||
| 852 | |||
| 853 | ** Images | ||
| 854 | |||
| 855 | +++ | ||
| 856 | *** Images are automatically scaled before displaying based on the | ||
| 857 | 'image-scaling-factor' variable (if Emacs supports scaling the images | ||
| 858 | in question). | ||
| 859 | |||
| 860 | +++ | ||
| 861 | *** It's now possible to specify aspect-ratio preserving combinations | ||
| 862 | of :width/:max-height and :height/:max-width keywords. In either | ||
| 863 | case, the "max" keywords win. (Previously some combinations would, | ||
| 864 | depending on the aspect ratio of the image, just be ignored and in | ||
| 865 | other instances this would lead to the aspect ratio not being | ||
| 866 | preserved.) | ||
| 867 | |||
| 868 | +++ | ||
| 869 | *** Images inserted with 'insert-image' and related functions get a | ||
| 870 | keymap put into the text properties (or overlays) that span the | ||
| 871 | image. This keymap binds keystrokes for manipulating size and | ||
| 872 | rotation, as well as saving the image to a file. These commands are | ||
| 873 | also available in 'image-mode'. | ||
| 874 | |||
| 875 | +++ | ||
| 876 | *** A new library for creating and manipulating SVG images has been | ||
| 877 | added. See the "SVG Images" section in the Lisp reference manual for | ||
| 878 | details. | ||
| 879 | |||
| 880 | +++ | ||
| 881 | *** New setf-able function to access and set image parameters is | ||
| 882 | provided: 'image-property'. | ||
| 883 | |||
| 884 | --- | ||
| 885 | *** New commands 'image-scroll-left' and 'image-scroll-right' | ||
| 886 | for 'image-mode' that complement 'image-scroll-up' and | ||
| 887 | 'image-scroll-down': they have the same prefix arg behavior and stop | ||
| 888 | at image boundaries. | ||
| 889 | |||
| 890 | ** Image-Dired | ||
| 891 | |||
| 892 | --- | ||
| 893 | *** Now provides a minor mode 'image-dired-minor-mode' which replaces | ||
| 894 | the function 'image-dired-setup-dired-keybindings'. | ||
| 895 | |||
| 896 | --- | ||
| 897 | *** Thumbnail generation is now asynchronous. | ||
| 898 | The number of concurrent processes is limited by the variable | ||
| 899 | 'image-dired-thumb-job-limit'. | ||
| 900 | |||
| 901 | --- | ||
| 902 | *** 'image-dired-thumbnail-storage' has a new option 'standard-large' | ||
| 903 | for generating 256x256 thumbnails according to the Thumbnail Managing | ||
| 904 | Standard. | ||
| 905 | |||
| 906 | --- | ||
| 907 | *** Inherits movement keys from 'image-mode' for viewing full images. | ||
| 908 | This includes the usual char, line, and page movement commands. | ||
| 909 | |||
| 910 | --- | ||
| 911 | *** All the -options types have been changed to argument lists | ||
| 912 | instead of shell command strings. This change affects | ||
| 913 | 'image-dired-cmd-create-thumbnail-options', | ||
| 914 | 'image-dired-cmd-create-temp-image-options', | ||
| 915 | 'image-dired-cmd-rotate-thumbnail-options', | ||
| 916 | 'image-dired-cmd-rotate-original-options', | ||
| 917 | 'image-dired-cmd-write-exif-data-options', | ||
| 918 | 'image-dired-cmd-read-exif-data-options', and introduces | ||
| 919 | 'image-dired-cmd-pngnq-options', 'image-dired-cmd-pngcrush-options', | ||
| 920 | 'image-dired-cmd-create-standard-thumbnail-options' | ||
| 921 | |||
| 922 | --- | ||
| 923 | *** Recognizes more tools by default, including pngnq-s9 and OptiPNG | ||
| 924 | |||
| 925 | --- | ||
| 926 | *** 'find-file' and related commands now work on thumbnails and | ||
| 927 | displayed images, providing a default argument of the original file name | ||
| 928 | via an addition to 'file-name-at-point-functions'. | ||
| 929 | |||
| 930 | --- | ||
| 931 | ** The default 'Info-default-directory-list' no longer checks some obsolete | ||
| 932 | directory suffixes (gnu, gnu/lib, gnu/lib/emacs, emacs, lib, lib/emacs) | ||
| 933 | when searching for info directories. | ||
| 934 | |||
| 935 | +++ | ||
| 936 | ** The commands that add ChangeLog entries now prefer a VCS root directory | ||
| 937 | for the ChangeLog file, if none already exists. Customize | ||
| 938 | 'change-log-directory-files' to nil for the old behavior. | ||
| 939 | |||
| 940 | --- | ||
| 941 | ** Support for non-string values of 'time-stamp-format' has been removed. | ||
| 942 | |||
| 943 | ** Message | ||
| 944 | |||
| 945 | --- | ||
| 946 | *** 'message-use-idna' now defaults to t (because Emacs comes with | ||
| 947 | built-in IDNA support now). | ||
| 948 | |||
| 949 | --- | ||
| 950 | *** When sending HTML messages with embedded images, and you have | ||
| 951 | exiftool installed, and you rotate images with EXIF data (i.e., | ||
| 952 | JPEGs), the rotational information will be inserted into the outgoing | ||
| 953 | image in the message. (The original image will not have its | ||
| 954 | orientation affected.) | ||
| 955 | |||
| 956 | --- | ||
| 957 | *** The 'message-valid-fqdn-regexp' variable has been removed, since | ||
| 958 | there are now top-level domains added all the time. Message will no | ||
| 959 | longer warn about sending emails to top-level domains it hasn't heard | ||
| 960 | about. | ||
| 961 | |||
| 962 | *** 'message-beginning-of-line' (bound to C-a) understands folded headers. | ||
| 963 | In 'visual-line-mode' it will look for the true beginning of a header | ||
| 964 | while in non-'visual-line-mode' it will move the point to the indented | ||
| 965 | header's value. | ||
| 966 | |||
| 967 | ** Package | ||
| 968 | |||
| 969 | +++ | ||
| 970 | *** The new variable 'package-gnupghome-dir' has been added to control | ||
| 971 | where the GnuPG home directory (used for signature verification) is | ||
| 972 | located and whether GnuPG's option "--homedir" is used or not. | ||
| 973 | |||
| 974 | --- | ||
| 975 | *** Deleting a package no longer respects 'delete-by-moving-to-trash'. | ||
| 976 | |||
| 977 | ** Tramp | ||
| 978 | |||
| 979 | +++ | ||
| 980 | *** The method part of remote file names is mandatory now. | ||
| 981 | A valid remote file name starts with "/method:host:" or | ||
| 982 | "/method:user@host:". | ||
| 983 | |||
| 984 | +++ | ||
| 985 | *** The new pseudo method "-" is a marker for the default method. | ||
| 986 | "/-::" is the shortest remote file name then. | ||
| 987 | |||
| 988 | +++ | ||
| 989 | *** The command 'tramp-change-syntax' allows to choose an alternative | ||
| 990 | remote file name syntax. | ||
| 991 | |||
| 992 | +++ | ||
| 993 | *** New connection method "sg", which supports editing files under a | ||
| 994 | different group ID. | ||
| 995 | |||
| 996 | +++ | ||
| 997 | *** New connection method "doas" for OpenBSD hosts. | ||
| 998 | |||
| 999 | +++ | ||
| 1000 | *** New connection method "gdrive", which allows to access Google | ||
| 1001 | Drive onsite repositories. | ||
| 1002 | |||
| 1003 | +++ | ||
| 1004 | *** Gateway methods in Tramp have been removed. | ||
| 1005 | Instead, the Tramp manual documents how to configure ssh and PuTTY | ||
| 1006 | accordingly. | ||
| 1007 | |||
| 1008 | +++ | ||
| 1009 | *** Setting the "ENV" environment variable in | ||
| 1010 | 'tramp-remote-process-environment' enables reading of shell | ||
| 1011 | initialization files. | ||
| 1012 | |||
| 1013 | --- | ||
| 1014 | *** Tramp is able now to send SIGINT to remote asynchronous processes. | ||
| 1015 | |||
| 1016 | --- | ||
| 1017 | *** Variable 'tramp-completion-mode' is obsoleted. | ||
| 1018 | |||
| 1019 | --- | ||
| 1020 | ** 'auto-revert-use-notify' is set back to t in 'global-auto-revert-mode'. | ||
| 1021 | |||
| 1022 | ** JS mode | ||
| 1023 | |||
| 1024 | --- | ||
| 1025 | *** JS mode now sets 'comment-multi-line' to t. | ||
| 1026 | |||
| 1027 | --- | ||
| 1028 | *** New variable 'js-indent-align-list-continuation', when set to nil, | ||
| 1029 | will not align continuations of bracketed lists, but will indent them | ||
| 1030 | by the fixed width 'js-indent-level'. | ||
| 1031 | |||
| 1032 | ** CSS mode | ||
| 1033 | |||
| 1034 | --- | ||
| 1035 | *** Support for completing attribute values, at-rules, bang-rules, | ||
| 1036 | HTML tags, classes and IDs using the 'completion-at-point' command. | ||
| 1037 | Completion candidates for HTML classes and IDs are retrieved from open | ||
| 1038 | HTML mode buffers. | ||
| 1039 | |||
| 1040 | --- | ||
| 1041 | *** CSS mode now binds 'C-h S' to a function that will show | ||
| 1042 | information about a CSS construct (an at-rule, property, pseudo-class, | ||
| 1043 | pseudo-element, with the default being guessed from context). By | ||
| 1044 | default the information is looked up on the Mozilla Developer Network, | ||
| 1045 | but this can be customized using 'css-lookup-url-format'. | ||
| 1046 | |||
| 1047 | --- | ||
| 1048 | *** CSS colors are fontified using the color they represent as the | ||
| 1049 | background. For instance, #ff0000 would be fontified with a red | ||
| 1050 | background. | ||
| 1051 | |||
| 1052 | +++ | ||
| 1053 | ** Emacs now supports character name escape sequences in character and | ||
| 1054 | string literals. The syntax variants \N{character name} and | ||
| 1055 | \N{U+code} are supported. | ||
| 1056 | |||
| 1057 | +++ | ||
| 1058 | ** Prog mode has some support for multi-mode indentation. | ||
| 1059 | This allows better indentation support in modes that support multiple | ||
| 1060 | programming languages in the same buffer, like literate programming | ||
| 1061 | environments or ANTLR programs with embedded Python code. | ||
| 1062 | |||
| 1063 | A major mode can provide indentation context for a sub-mode through | ||
| 1064 | the 'prog-indentation-context' variable. To support this, modes that | ||
| 1065 | provide indentation should use 'prog-widen' instead of 'widen' and | ||
| 1066 | 'prog-first-column' instead of a literal zero. See the node | ||
| 1067 | "Mode-Specific Indent" in the ELisp manual for more details. | ||
| 1068 | |||
| 1069 | ** ERC | ||
| 1070 | |||
| 1071 | --- | ||
| 1072 | *** New variable 'erc-default-port-tls' used to connect to TLS IRC | ||
| 1073 | servers. | ||
| 1074 | |||
| 1075 | ** URL | ||
| 1076 | |||
| 1077 | +++ | ||
| 1078 | *** The new function 'url-cookie-delete-cookie' can be used to | ||
| 1079 | programmatically delete all cookies, or cookies from a specific | ||
| 1080 | domain. | ||
| 1081 | |||
| 1082 | +++ | ||
| 1083 | *** 'url-retrieve-synchronously' now takes an optional timeout parameter. | ||
| 1084 | |||
| 1085 | --- | ||
| 1086 | *** The URL package now support HTTPS over proxies supporting CONNECT. | ||
| 1087 | |||
| 1088 | +++ | ||
| 1089 | *** 'url-user-agent' now defaults to 'default', and the User-Agent | ||
| 1090 | string is computed dynamically based on 'url-privacy-level'. | ||
| 1091 | |||
| 1092 | ** VC and related modes | ||
| 1093 | |||
| 1094 | --- | ||
| 1095 | *** The VC state indicator in the mode line now defaults to more | ||
| 1096 | colorful faces to make it more obvious to the user what the state is. | ||
| 1097 | See the 'vc-faces' customization group. | ||
| 1098 | |||
| 1099 | +++ | ||
| 1100 | *** 'vc-dir-mode' now binds 'vc-log-outgoing' to 'O'; and has various | ||
| 1101 | branch-related commands on a keymap bound to 'B'. | ||
| 1102 | |||
| 1103 | ** CC mode | ||
| 1104 | |||
| 1105 | --- | ||
| 1106 | *** Opening a .h file will turn C or C++ mode depending on language used. | ||
| 1107 | This is done with the help of 'c-or-c++-mode' function which analyses | ||
| 1108 | contents of the buffer to determine whether it's a C or C++ source | ||
| 1109 | file. | ||
| 1110 | |||
| 1111 | --- | ||
| 1112 | ** New DNS mode command 'dns-mode-ipv6-to-nibbles' to convert IPv6 addresses | ||
| 1113 | to a format suitable for reverse lookup zone files. | ||
| 1114 | |||
| 1115 | ** Ispell | ||
| 1116 | |||
| 1117 | +++ | ||
| 1118 | *** Enchant is now supported as a spell-checker. | ||
| 1119 | |||
| 1120 | Enchant is a meta-spell-checker that uses providers | ||
| 1121 | such as Hunspell to do the actual checking. With it, users can use | ||
| 1122 | spell-checkers not directly supported by Emacs, such as Voikko, Hspell | ||
| 1123 | and AppleSpell, more easily share personal word-lists with other | ||
| 1124 | programs, and configure different spelling-checkers for different | ||
| 1125 | languages. (Version 2.1.0 or later of Enchant is required.) | ||
| 1126 | |||
| 1127 | ** Flymake | ||
| 1128 | |||
| 1129 | +++ | ||
| 1130 | *** Emacs no longer prompts the user before killing Flymake processes on exit. | ||
| 1131 | 39 | ||
| 1132 | 40 | ||
| 1133 | * New Modes and Packages in Emacs 26.1 | 41 | * New Modes and Packages in Emacs 27.1 |
| 1134 | |||
| 1135 | ** New Elisp data-structure library 'radix-tree'. | ||
| 1136 | |||
| 1137 | ** New library 'xdg' with utilities for some XDG standards and specs. | ||
| 1138 | |||
| 1139 | ** HTML | ||
| 1140 | |||
| 1141 | +++ | ||
| 1142 | *** A new submode of 'html-mode', 'mhtml-mode', is now the default | ||
| 1143 | mode for *.html files. This mode handles indentation, | ||
| 1144 | fontification, and commenting for embedded JavaScript and CSS. | ||
| 1145 | |||
| 1146 | ** New mode 'conf-toml-mode' is a sub-mode of conf-mode, specialized | ||
| 1147 | for editing TOML files. | ||
| 1148 | |||
| 1149 | ** New mode 'conf-desktop-mode' is a sub-mode of conf-unix-mode, | ||
| 1150 | specialized for editing freedesktop.org desktop entries. | ||
| 1151 | |||
| 1152 | ** New minor mode 'pixel-scroll-mode' provides smooth pixel-level scrolling. | ||
| 1153 | |||
| 1154 | ** New major mode 'less-css-mode' (a minor variant of 'css-mode') for | ||
| 1155 | editing Less files. | ||
| 1156 | 42 | ||
| 1157 | 43 | ||
| 1158 | * Incompatible Lisp Changes in Emacs 26.1 | 44 | * Incompatible Lisp Changes in Emacs 27.1 |
| 1159 | |||
| 1160 | --- | ||
| 1161 | *** password-data is now a hash-table | ||
| 1162 | so that `password-read' can use any object for the `key' argument. | ||
| 1163 | |||
| 1164 | +++ | ||
| 1165 | *** Command 'dired-mark-extension' now automatically prepends a '.' to the | ||
| 1166 | extension when not present. The new command 'dired-mark-suffix' behaves | ||
| 1167 | similarly but it doesn't prepend a '.'. | ||
| 1168 | |||
| 1169 | +++ | ||
| 1170 | ** Certain cond/pcase/cl-case forms are now compiled using a faster jump | ||
| 1171 | table implementation. This uses a new bytecode op 'switch', which | ||
| 1172 | isn't compatible with previous Emacs versions. This functionality can | ||
| 1173 | be disabled by setting 'byte-compile-cond-use-jump-table' to nil. | ||
| 1174 | |||
| 1175 | --- | ||
| 1176 | ** The alist 'ucs-names' is now a hash table. | ||
| 1177 | |||
| 1178 | --- | ||
| 1179 | ** 'if-let' and 'when-let' are subsumed by 'if-let*' and 'when-let*'. | ||
| 1180 | The incumbent 'if-let' and 'when-let' are now marked obsolete. | ||
| 1181 | 'if-let*' and 'when-let*' do not accept the single tuple special case. | ||
| 1182 | New macro 'and-let*' is an implementation of the Scheme SRFI-2 syntax | ||
| 1183 | of the same name. 'if-let*' and 'when-let*' now accept the same | ||
| 1184 | binding syntax as 'and-let*'. | ||
| 1185 | |||
| 1186 | --- | ||
| 1187 | ** 'C-up', 'C-down', 'C-left' and 'C-right' are now defined in term | ||
| 1188 | mode to send the same escape sequences that xterm does. This makes | ||
| 1189 | things like forward-word in readline work. | ||
| 1190 | |||
| 1191 | --- | ||
| 1192 | ** hideshow mode got four key bindings that are analogous to outline | ||
| 1193 | mode bindings: 'C-c @ C-a', 'C-c @ C-t', 'C-c @ C-d', and 'C-c @ C-e.' | ||
| 1194 | |||
| 1195 | --- | ||
| 1196 | ** Customizable variable 'query-replace-from-to-separator' | ||
| 1197 | now doesn't propertize the string value of the separator. | ||
| 1198 | Instead, text properties are added by query-replace-read-from. | ||
| 1199 | Additionally, the new nil value restores pre-24.5 behavior | ||
| 1200 | of not providing replacement pairs via the history. | ||
| 1201 | |||
| 1202 | --- | ||
| 1203 | ** Some obsolete functions, variables, and faces have been removed: | ||
| 1204 | *** make-variable-frame-local. Variables cannot be frame-local any more. | ||
| 1205 | *** From subr.el: window-dot, set-window-dot, read-input, show-buffer, | ||
| 1206 | eval-current-buffer, string-to-int | ||
| 1207 | *** icomplete-prospects-length. | ||
| 1208 | *** All the default-FOO variables that hold the default value of the | ||
| 1209 | FOO variable. Use 'default-value' and 'setq-default' to access and | ||
| 1210 | change FOO, respectively. The exhaustive list of removed variables is: | ||
| 1211 | 'default-mode-line-format', 'default-header-line-format', | ||
| 1212 | 'default-line-spacing', 'default-abbrev-mode', 'default-ctl-arrow', | ||
| 1213 | 'default-truncate-lines', 'default-left-margin', 'default-tab-width', | ||
| 1214 | 'default-case-fold-search', 'default-left-margin-width', | ||
| 1215 | 'default-right-margin-width', 'default-left-fringe-width', | ||
| 1216 | 'default-right-fringe-width', 'default-fringes-outside-margins', | ||
| 1217 | 'default-scroll-bar-width', 'default-vertical-scroll-bar', | ||
| 1218 | 'default-indicate-empty-lines', 'default-indicate-buffer-boundaries', | ||
| 1219 | 'default-fringe-indicator-alist', 'default-fringe-cursor-alist', | ||
| 1220 | 'default-scroll-up-aggressively', 'default-scroll-down-aggressively', | ||
| 1221 | 'default-fill-column', 'default-cursor-type', | ||
| 1222 | 'default-cursor-in-non-selected-windows', | ||
| 1223 | 'default-buffer-file-coding-system', 'default-major-mode', and | ||
| 1224 | 'default-enable-multibyte-characters'. | ||
| 1225 | *** Many variables obsoleted in 22.1 referring to face symbols | ||
| 1226 | |||
| 1227 | +++ | ||
| 1228 | ** The variable 'text-quoting-style' no longer affects the treatment | ||
| 1229 | of curved quotes in format arguments to functions like 'message' and | ||
| 1230 | 'format-message'. In particular, when this variable's value is | ||
| 1231 | 'grave', all quotes in formats are output as-is. | ||
| 1232 | |||
| 1233 | --- | ||
| 1234 | ** Functions like 'check-declare-file' and 'check-declare-directory' | ||
| 1235 | now generate less chatter and more-compact diagnostics. The auxiliary | ||
| 1236 | function 'check-declare-errmsg' has been removed. | ||
| 1237 | |||
| 1238 | +++ | ||
| 1239 | ** The regular expression character class [:blank:] now matches | ||
| 1240 | Unicode horizontal whitespace as defined in the Unicode Technical | ||
| 1241 | Standard #18. If you only want to match space and tab, use [ \t] | ||
| 1242 | instead. | ||
| 1243 | |||
| 1244 | +++ | ||
| 1245 | ** 'min' and 'max' no longer round their results. | ||
| 1246 | Formerly, they returned a floating-point value if any argument was | ||
| 1247 | floating-point, which was sometimes numerically incorrect. For | ||
| 1248 | example, on a 64-bit host (max 1e16 10000000000000001) now returns its | ||
| 1249 | second argument instead of its first. | ||
| 1250 | |||
| 1251 | +++ | ||
| 1252 | ** The variable 'old-style-backquotes' has been made internal and | ||
| 1253 | renamed to 'lread--old-style-backquotes'. No user code should use | ||
| 1254 | this variable. | ||
| 1255 | |||
| 1256 | --- | ||
| 1257 | ** To avoid confusion caused by "smart quotes", the reader no longer | ||
| 1258 | accepts Lisp symbols which begin with the following quotation | ||
| 1259 | characters: ‘’‛“”‟〞"', unless they are escaped with backslash. | ||
| 1260 | |||
| 1261 | +++ | ||
| 1262 | ** 'default-file-name-coding-system' now defaults to a coding system | ||
| 1263 | that does not process CRLF. For example, it defaults to utf-8-unix | ||
| 1264 | instead of to utf-8. Before this change, Emacs would sometimes | ||
| 1265 | mishandle file names containing these control characters. | ||
| 1266 | |||
| 1267 | +++ | ||
| 1268 | ** 'file-attributes', 'file-symlink-p' and 'make-symbolic-link' no | ||
| 1269 | longer quietly mutate the target of a local symbolic link, so that | ||
| 1270 | Emacs can access and copy them reliably regardless of their contents. | ||
| 1271 | The following changes are involved. | ||
| 1272 | |||
| 1273 | --- | ||
| 1274 | *** 'file-attributes' and 'file-symlink-p' no longer prepend "/:" to | ||
| 1275 | symbolic links whose targets begin with "/" and contain ":". For | ||
| 1276 | example, if a symbolic link "x" has a target "/y:z:", '(file-symlink-p | ||
| 1277 | "x")' now returns "/y:z:" rather than "/:/y:z:". | ||
| 1278 | |||
| 1279 | --- | ||
| 1280 | *** 'make-symbolic-link' no longer looks for file name handlers of | ||
| 1281 | target when creating a symbolic link. For example, | ||
| 1282 | '(make-symbolic-link "/y:z:" "x")' now creates a symbolic link to | ||
| 1283 | "/y:z:" instead of failing. | ||
| 1284 | |||
| 1285 | +++ | ||
| 1286 | *** 'make-symbolic-link' removes the remote part of a link target if | ||
| 1287 | target and newname have the same remote part. For example, | ||
| 1288 | '(make-symbolic-link "/x:y:a" "/x:y:b")' creates a link with the | ||
| 1289 | literal string "a"; and '(make-symbolic-link "/x:y:a" "/x:z:b")' | ||
| 1290 | creates a link with the literal string "/x:y:a" instead of failing. | ||
| 1291 | |||
| 1292 | +++ | ||
| 1293 | *** 'make-symbolic-link' now expands a link target with leading "~" | ||
| 1294 | only when the optional third arg is an integer, as when invoked | ||
| 1295 | interactively. For example, '(make-symbolic-link "~y" "x")' now | ||
| 1296 | creates a link with target the literal string "~y"; to get the old | ||
| 1297 | behavior, use '(make-symbolic-link (expand-file-name "~y") "x")'. To | ||
| 1298 | avoid this expansion in interactive use, you can now prefix the link | ||
| 1299 | target with "/:". For example, '(make-symbolic-link "/:~y" "x" 1)' | ||
| 1300 | now creates a link to literal "~y". | ||
| 1301 | |||
| 1302 | +++ | ||
| 1303 | ** 'file-truename' returns a quoted file name if the target of a | ||
| 1304 | symbolic link has remote file name syntax. | ||
| 1305 | |||
| 1306 | +++ | ||
| 1307 | ** Module functions are now implemented slightly differently; in | ||
| 1308 | particular, the function 'internal--module-call' has been removed. | ||
| 1309 | Code that depends on undocumented internals of the module system might | ||
| 1310 | break. | ||
| 1311 | |||
| 1312 | --- | ||
| 1313 | ** The argument LOCKNAME of 'write-region' is propagated to file name | ||
| 1314 | handlers now. | ||
| 1315 | |||
| 1316 | --- | ||
| 1317 | ** When built against recent versions of GTK+, Emacs always uses | ||
| 1318 | gtk_window_move for moving frames and ignores the value of the | ||
| 1319 | variable 'x-gtk-use-window-move'. The variable is now obsolete. | ||
| 1320 | |||
| 1321 | +++ | ||
| 1322 | ** Several functions that create or rename files now treat their | ||
| 1323 | destination argument specially only when it is a directory name, i.e., | ||
| 1324 | when it ends in '/' on GNU and other POSIX-like systems. When the | ||
| 1325 | destination argument D of one of these functions is an existing | ||
| 1326 | directory and the intent is to act on an entry in that directory, D | ||
| 1327 | should now be a directory name. For example, (rename-file "e" "f/") | ||
| 1328 | renames to 'f/e'. Although this formerly happened sometimes even when | ||
| 1329 | D was not a directory name, as in (rename-file "e" "f") where 'f' | ||
| 1330 | happened to be a directory, the old behavior often contradicted the | ||
| 1331 | documentation and had inherent races that led to security holes. A | ||
| 1332 | call like (rename-file C D) that used the old, undocumented behavior | ||
| 1333 | can be written as (rename-file C (file-name-as-directory D)), a | ||
| 1334 | formulation portable to both older and newer versions of Emacs. | ||
| 1335 | Affected functions include add-name-to-file, copy-directory, | ||
| 1336 | copy-file, format-write-file, gnus-copy-file, make-symbolic-link, | ||
| 1337 | rename-file, thumbs-rename-images, and write-file. | ||
| 1338 | |||
| 1339 | --- | ||
| 1340 | ** The list returned by 'overlays-at' is now in decreasing priority order. | ||
| 1341 | The documentation of this function always said the order should be | ||
| 1342 | that of decreasing priority, if the 2nd argument of the function is | ||
| 1343 | non-nil, but the code returned the list in the increasing order of | ||
| 1344 | priority instead. Now the code does what the documentation says it | ||
| 1345 | should do. | ||
| 1346 | 45 | ||
| 1347 | 46 | ||
| 1348 | * Lisp Changes in Emacs 26.1 | 47 | * Lisp Changes in Emacs 27.1 |
| 1349 | |||
| 1350 | +++ | ||
| 1351 | ** The function 'assoc' now takes an optional third argument TESTFN. | ||
| 1352 | This argument, when non-nil, is used for comparison instead of | ||
| 1353 | 'equal'. | ||
| 1354 | |||
| 1355 | +++ | ||
| 1356 | ** New optional argument TESTFN in 'alist-get', 'map-elt' and 'map-put'. | ||
| 1357 | If non-nil, the argument specifies a function to use for comparison, | ||
| 1358 | instead of, respectively, 'assq' and 'eql'. | ||
| 1359 | |||
| 1360 | +++ | ||
| 1361 | ** New function 'seq-set-equal-p' to check if SEQUENCE1 and SEQUENCE2 | ||
| 1362 | contain the same elements, regardless of the order. | ||
| 1363 | |||
| 1364 | +++ | ||
| 1365 | ** The new function 'mapbacktrace' applies a function to all frames of | ||
| 1366 | the current stack trace. | ||
| 1367 | |||
| 1368 | +++ | ||
| 1369 | ** The new function 'file-name-case-insensitive-p' tests whether a | ||
| 1370 | given file is on a case-insensitive filesystem. | ||
| 1371 | |||
| 1372 | +++ | ||
| 1373 | ** Several accessors for the value returned by 'file-attributes' | ||
| 1374 | have been added. They are: 'file-attribute-type', | ||
| 1375 | 'file-attribute-link-number', 'file-attribute-user-id', | ||
| 1376 | 'file-attribute-group-id', 'file-attribute-access-time', | ||
| 1377 | 'file-attribute-modification-time', | ||
| 1378 | 'file-attribute-status-change-time', 'file-attribute-size', | ||
| 1379 | 'file-attribute-modes', 'file-attribute-inode-number', | ||
| 1380 | 'file-attribute-device-number' and 'file-attribute-collect'. | ||
| 1381 | |||
| 1382 | +++ | ||
| 1383 | ** The new function 'buffer-hash' computes a fast, non-consing hash of | ||
| 1384 | a buffer's contents. | ||
| 1385 | |||
| 1386 | +++ | ||
| 1387 | ** 'interrupt-process' now consults the list 'interrupt-process-functions', | ||
| 1388 | to determine which function has to be called in order to deliver the | ||
| 1389 | SIGINT signal. This allows Tramp to send the SIGINT signal to remote | ||
| 1390 | asynchronous processes. The hitherto existing implementation has been | ||
| 1391 | moved to 'internal-default-interrupt-process'. | ||
| 1392 | |||
| 1393 | +++ | ||
| 1394 | ** The new function 'read-multiple-choice' prompts for multiple-choice | ||
| 1395 | questions, with a handy way to display help texts. | ||
| 1396 | |||
| 1397 | --- | ||
| 1398 | ** 'comment-indent-function' values may now return a cons to specify a | ||
| 1399 | range of indentation. | ||
| 1400 | |||
| 1401 | +++ | ||
| 1402 | ** New optional argument TEXT in 'make-temp-file'. | ||
| 1403 | |||
| 1404 | --- | ||
| 1405 | ** New function `define-symbol-prop'. | ||
| 1406 | |||
| 1407 | ** Checksum/Hash | ||
| 1408 | |||
| 1409 | +++ | ||
| 1410 | ** New function 'secure-hash-algorithms' to list the algorithms that | ||
| 1411 | 'secure-hash' supports. | ||
| 1412 | See the node "(elisp) Checksum/Hash" in the ELisp manual for details. | ||
| 1413 | |||
| 1414 | +++ | ||
| 1415 | ** Emacs now exposes the GnuTLS cryptographic API with the functions | ||
| 1416 | 'gnutls-macs' and 'gnutls-hash-mac'; 'gnutls-digests' and | ||
| 1417 | 'gnutls-hash-digest'; 'gnutls-ciphers' and 'gnutls-symmetric-encrypt' | ||
| 1418 | and 'gnutls-symmetric-decrypt'. | ||
| 1419 | See the node "(elisp) GnuTLS Cryptography" in the ELisp manual for details. | ||
| 1420 | |||
| 1421 | +++ | ||
| 1422 | ** Emacs now supports records for user-defined types, via the new | ||
| 1423 | functions 'make-record', 'record', and 'recordp'. Records are now | ||
| 1424 | used internally to represent cl-defstruct and defclass instances, for | ||
| 1425 | example. | ||
| 1426 | |||
| 1427 | +++ | ||
| 1428 | ** 'save-some-buffers' now uses 'save-some-buffers-default-predicate' | ||
| 1429 | to decide which buffers to ask about, if the PRED argument is nil. | ||
| 1430 | The default value of 'save-some-buffers-default-predicate' is nil, | ||
| 1431 | which means ask about all file-visiting buffers. | ||
| 1432 | |||
| 1433 | --- | ||
| 1434 | ** string-(to|as|make)-(uni|multi)byte are now declared obsolete. | ||
| 1435 | |||
| 1436 | +++ | ||
| 1437 | ** New variable 'while-no-input-ignore-events' which allow | ||
| 1438 | setting which special events 'while-no-input' should ignore. | ||
| 1439 | It is a list of symbols. | ||
| 1440 | |||
| 1441 | --- | ||
| 1442 | ** New function 'undo-amalgamate-change-group' to get rid of | ||
| 1443 | undo-boundaries between two states. | ||
| 1444 | |||
| 1445 | --- | ||
| 1446 | ** New var 'definition-prefixes' is a hash table mapping prefixes to | ||
| 1447 | the files where corresponding definitions can be found. This can be | ||
| 1448 | used to fetch definitions that are not yet loaded, for example for | ||
| 1449 | 'C-h f'. | ||
| 1450 | |||
| 1451 | --- | ||
| 1452 | ** New var 'syntax-ppss-table' to control the syntax-table used in | ||
| 1453 | 'syntax-ppss'. | ||
| 1454 | |||
| 1455 | +++ | ||
| 1456 | ** 'define-derived-mode' can now specify an :after-hook form, which | ||
| 1457 | gets evaluated after the new mode's hook has run. This can be used to | ||
| 1458 | incorporate configuration changes made in the mode hook into the | ||
| 1459 | mode's setup. | ||
| 1460 | |||
| 1461 | --- | ||
| 1462 | ** Autoload files can be generated without timestamps, | ||
| 1463 | by setting 'autoload-timestamps' to nil. | ||
| 1464 | FIXME As an experiment, nil is the current default. | ||
| 1465 | If no insurmountable problems before next release, it can stay that way. | ||
| 1466 | |||
| 1467 | --- | ||
| 1468 | ** 'gnutls-boot' now takes a parameter ':complete-negotiation' that | ||
| 1469 | says that negotiation should complete even on non-blocking sockets. | ||
| 1470 | |||
| 1471 | --- | ||
| 1472 | ** There is now a new variable 'flyspell-sort-corrections-function' | ||
| 1473 | that allows changing the way corrections are sorted. | ||
| 1474 | |||
| 1475 | --- | ||
| 1476 | ** The new command 'fortune-message' has been added, which displays | ||
| 1477 | fortunes in the echo area. | ||
| 1478 | |||
| 1479 | +++ | ||
| 1480 | ** New function 'func-arity' returns information about the argument list | ||
| 1481 | of an arbitrary function. This generalizes 'subr-arity' for functions | ||
| 1482 | that are not built-in primitives. We recommend using this new | ||
| 1483 | function instead of 'subr-arity'. | ||
| 1484 | |||
| 1485 | --- | ||
| 1486 | ** New function 'region-bounds' can be used in the interactive spec | ||
| 1487 | to provide region boundaries (for rectangular regions more than one) | ||
| 1488 | to an interactively callable function as a single argument instead of | ||
| 1489 | two separate arguments region-beginning and region-end. | ||
| 1490 | |||
| 1491 | +++ | ||
| 1492 | ** 'parse-partial-sexp' state has a new element. Element 10 is | ||
| 1493 | non-nil when the last character scanned might be the first character | ||
| 1494 | of a two character construct, i.e., a comment delimiter or escaped | ||
| 1495 | character. Its value is the syntax of that last character. | ||
| 1496 | |||
| 1497 | +++ | ||
| 1498 | ** 'parse-partial-sexp's state, element 9, has now been confirmed as | ||
| 1499 | permanent and documented, and may be used by Lisp programs. Its value | ||
| 1500 | is a list of currently open parenthesis positions, starting with the | ||
| 1501 | outermost parenthesis. | ||
| 1502 | |||
| 1503 | --- | ||
| 1504 | ** 'read-color' will now display the color names using the color itself | ||
| 1505 | as the background color. | ||
| 1506 | |||
| 1507 | --- | ||
| 1508 | ** The function 'redirect-debugging-output' now works on platforms | ||
| 1509 | other than GNU/Linux. | ||
| 1510 | |||
| 1511 | +++ | ||
| 1512 | ** The new function 'string-version-lessp' compares strings by | ||
| 1513 | interpreting consecutive runs of numerical characters as numbers, and | ||
| 1514 | compares their numerical values. According to this predicate, | ||
| 1515 | "foo2.png" is smaller than "foo12.png". | ||
| 1516 | |||
| 1517 | --- | ||
| 1518 | ** Numeric comparisons and 'logb' no longer return incorrect answers | ||
| 1519 | due to internal rounding errors. For example, (< most-positive-fixnum | ||
| 1520 | (+ 1.0 most-positive-fixnum)) now correctly returns t on 64-bit hosts. | ||
| 1521 | |||
| 1522 | --- | ||
| 1523 | ** The functions 'ffloor', 'fceiling', 'ftruncate' and 'fround' now | ||
| 1524 | accept only floating-point arguments, as per their documentation. | ||
| 1525 | Formerly, they quietly accepted integer arguments and sometimes | ||
| 1526 | returned nonsensical answers, e.g., (< N (ffloor N)) could return t. | ||
| 1527 | |||
| 1528 | --- | ||
| 1529 | ** On hosts like GNU/Linux x86-64 where a 'long double' fraction | ||
| 1530 | contains at least EMACS_INT_WIDTH - 3 bits, 'format' no longer returns | ||
| 1531 | incorrect answers due to internal rounding errors when formatting | ||
| 1532 | Emacs integers with %e, %f, or %g conversions. For example, on these | ||
| 1533 | hosts (eql N (string-to-number (format "%.0f" N))) now returns t for | ||
| 1534 | all Emacs integers N. | ||
| 1535 | |||
| 1536 | --- | ||
| 1537 | ** Calls that accept floating-point integers (for use on hosts with | ||
| 1538 | limited integer range) now signal an error if arguments are not | ||
| 1539 | integral. For example (decode-char 'ascii 0.5) now signals an error. | ||
| 1540 | |||
| 1541 | +++ | ||
| 1542 | ** The new function 'char-from-name' converts a Unicode name string | ||
| 1543 | to the corresponding character code. | ||
| 1544 | |||
| 1545 | +++ | ||
| 1546 | ** New functions 'sxhash-eq' and 'sxhash-eql' return hash codes of a | ||
| 1547 | Lisp object suitable for use with 'eq' and 'eql' correspondingly. If | ||
| 1548 | two objects are 'eq' ('eql'), then the result of 'sxhash-eq' | ||
| 1549 | ('sxhash-eql') on them will be the same. | ||
| 1550 | |||
| 1551 | +++ | ||
| 1552 | ** Function 'sxhash' has been renamed to 'sxhash-equal' for | ||
| 1553 | consistency with the new functions. For compatibility, 'sxhash' | ||
| 1554 | remains as an alias to 'sxhash-equal'. | ||
| 1555 | |||
| 1556 | +++ | ||
| 1557 | ** 'make-hash-table' now defaults to a rehash threshold of 0.8125 | ||
| 1558 | instead of 0.8, to avoid rounding glitches. | ||
| 1559 | |||
| 1560 | +++ | ||
| 1561 | ** New function 'add-variable-watcher' can be used to call a function | ||
| 1562 | when a symbol's value is changed. This is used to implement the new | ||
| 1563 | debugger command 'debug-on-variable-change'. | ||
| 1564 | |||
| 1565 | +++ | ||
| 1566 | ** Time conversion functions that accept a time zone rule argument now | ||
| 1567 | allow it to be OFFSET or a list (OFFSET ABBR), where the integer | ||
| 1568 | OFFSET is a count of seconds east of Universal Time, and the string | ||
| 1569 | ABBR is a time zone abbreviation. The affected functions are | ||
| 1570 | 'current-time-string', 'current-time-zone', 'decode-time', | ||
| 1571 | 'format-time-string', and 'set-time-zone-rule'. | ||
| 1572 | |||
| 1573 | +++ | ||
| 1574 | ** 'format-time-string' now formats "%q" to the calendar quarter. | ||
| 1575 | |||
| 1576 | +++ | ||
| 1577 | ** New built-in function 'mapcan'. | ||
| 1578 | It avoids unnecessary consing (and garbage collection). | ||
| 1579 | |||
| 1580 | +++ | ||
| 1581 | ** 'car' and 'cdr' compositions 'cXXXr' and 'cXXXXr' are now part of Elisp. | ||
| 1582 | |||
| 1583 | +++ | ||
| 1584 | ** 'gensym' is now part of Elisp. | ||
| 1585 | |||
| 1586 | --- | ||
| 1587 | ** Low-level list functions like 'length' and 'member' now do a better | ||
| 1588 | job of signaling list cycles instead of looping indefinitely. | ||
| 1589 | |||
| 1590 | +++ | ||
| 1591 | ** The new functions 'make-nearby-temp-file' and 'temporary-file-directory' | ||
| 1592 | can be used for creation of temporary files of remote or mounted directories. | ||
| 1593 | |||
| 1594 | +++ | ||
| 1595 | ** On GNU platforms when operating on a local file, 'file-attributes' | ||
| 1596 | no longer suffers from a race when called while another process is | ||
| 1597 | altering the filesystem. On non-GNU platforms 'file-attributes' | ||
| 1598 | attempts to detect the race, and returns nil if it does so. | ||
| 1599 | |||
| 1600 | +++ | ||
| 1601 | ** The new function 'file-local-name' can be used to specify arguments | ||
| 1602 | of remote processes. | ||
| 1603 | |||
| 1604 | +++ | ||
| 1605 | ** The new functions 'file-name-quote', 'file-name-unquote' and | ||
| 1606 | 'file-name-quoted-p' can be used to quote / unquote file names with | ||
| 1607 | the prefix "/:". | ||
| 1608 | |||
| 1609 | +++ | ||
| 1610 | ** The new error 'file-missing', a subcategory of 'file-error', is now | ||
| 1611 | signaled instead of 'file-error' if a file operation acts on a file | ||
| 1612 | that does not exist. | ||
| 1613 | |||
| 1614 | +++ | ||
| 1615 | ** The function 'delete-directory' no longer signals an error when | ||
| 1616 | operating recursively and when some other process deletes the directory | ||
| 1617 | or its files before 'delete-directory' gets to them. | ||
| 1618 | |||
| 1619 | +++ | ||
| 1620 | *** New error type 'user-search-failed' like 'search-failed' but | ||
| 1621 | avoids debugger like 'user-error'. | ||
| 1622 | |||
| 1623 | +++ | ||
| 1624 | ** The function 'line-number-at-pos' now takes a second optional | ||
| 1625 | argument 'absolute'. If this parameter is nil, the default, this | ||
| 1626 | function keeps on returning the line number taking potential narrowing | ||
| 1627 | into account. If this parameter is non-nil, the function ignores | ||
| 1628 | narrowing and returns the absolute line number. | ||
| 1629 | |||
| 1630 | --- | ||
| 1631 | ** The function 'color-distance' now takes a second optional argument | ||
| 1632 | 'metric'. When non-nil, it should be a function of two arguments that | ||
| 1633 | accepts two colors and returns a number. | ||
| 1634 | |||
| 1635 | ** Changes in Frame and Window Handling | ||
| 1636 | |||
| 1637 | +++ | ||
| 1638 | *** Resizing a frame no longer runs 'window-configuration-change-hook'. | ||
| 1639 | 'window-size-change-functions' should be used instead. | ||
| 1640 | |||
| 1641 | +++ | ||
| 1642 | *** The new function 'frame-size-changed-p' can tell whether a frame has | ||
| 1643 | been resized since the last time 'window-size-change-functions' has been | ||
| 1644 | run. | ||
| 1645 | |||
| 1646 | +++ | ||
| 1647 | *** The function 'frame-geometry' now also returns the width of a | ||
| 1648 | frame's outer border. | ||
| 1649 | |||
| 1650 | +++ | ||
| 1651 | *** New frame parameters and changed semantics for older ones | ||
| 1652 | |||
| 1653 | +++ | ||
| 1654 | **** 'z-group' positions a frame above or below all others. | ||
| 1655 | |||
| 1656 | +++ | ||
| 1657 | **** 'min-width' and 'min-height' specify the absolute minimum size of a | ||
| 1658 | frame. | ||
| 1659 | |||
| 1660 | +++ | ||
| 1661 | **** 'parent-frame' makes a frame the child frame of another Emacs | ||
| 1662 | frame. The section "Child Frames" in the Elisp manual describes the | ||
| 1663 | intrinsics of that relationship. | ||
| 1664 | |||
| 1665 | +++ | ||
| 1666 | **** 'delete-before' triggers deletion of one frame before that of | ||
| 1667 | another. | ||
| 1668 | |||
| 1669 | +++ | ||
| 1670 | **** 'mouse-wheel-frame' specifies another frame whose windows shall be | ||
| 1671 | scrolled instead. | ||
| 1672 | |||
| 1673 | +++ | ||
| 1674 | **** 'no-other-frame' has 'next-frame' and 'previous-frame' skip this | ||
| 1675 | frame. | ||
| 1676 | |||
| 1677 | +++ | ||
| 1678 | **** 'skip-taskbar' removes a frame's icon from the taskbar and has | ||
| 1679 | Alt-<TAB> skip this frame. | ||
| 1680 | |||
| 1681 | +++ | ||
| 1682 | **** 'no-focus-on-map' avoids that a frame gets input focus when mapped. | ||
| 1683 | |||
| 1684 | +++ | ||
| 1685 | **** 'no-accept-focus' means that a frame does not want to get input | ||
| 1686 | focus via the mouse. | ||
| 1687 | |||
| 1688 | +++ | ||
| 1689 | **** 'undecorated' removes the window manager decorations from a frame. | ||
| 1690 | |||
| 1691 | +++ | ||
| 1692 | **** 'override-redirect' tells the window manager to disregard this | ||
| 1693 | frame. | ||
| 1694 | |||
| 1695 | +++ | ||
| 1696 | **** 'width' and 'height' allow to specify pixel values and ratios now. | ||
| 1697 | |||
| 1698 | +++ | ||
| 1699 | **** 'left' and 'top' allow to specify ratios now. | ||
| 1700 | |||
| 1701 | +++ | ||
| 1702 | **** 'keep-ratio' preserves size and position of child frames when their | ||
| 1703 | parent frame is resized. | ||
| 1704 | |||
| 1705 | +++ | ||
| 1706 | **** 'no-special-glyphs' suppresses display of truncation and | ||
| 1707 | continuation glyphs in a frame. | ||
| 1708 | |||
| 1709 | +++ | ||
| 1710 | **** 'auto-hide-function' and 'minibuffer-exit' handle auto hiding of | ||
| 1711 | frames and exiting from minibuffer individually. | ||
| 1712 | |||
| 1713 | +++ | ||
| 1714 | **** 'fit-frame-to-buffer-margins' and 'fit-frame-to-buffer-sizes' | ||
| 1715 | handle fitting a frame to its buffer individually. | ||
| 1716 | |||
| 1717 | +++ | ||
| 1718 | **** 'drag-internal-border', 'drag-with-header-line', | ||
| 1719 | 'drag-with-mode-line', 'snap-width', 'top-visible' and 'bottom-visible' | ||
| 1720 | allow to drag and resize frames with the mouse. | ||
| 1721 | |||
| 1722 | *** The new function 'frame-list-z-order' returns a list of all frames | ||
| 1723 | in Z (stacking) order. | ||
| 1724 | |||
| 1725 | +++ | ||
| 1726 | *** The function 'x-focus-frame' optionally tries to not activate its | ||
| 1727 | frame. | ||
| 1728 | |||
| 1729 | +++ | ||
| 1730 | *** The variable 'focus-follows-mouse' has a third meaningful value | ||
| 1731 | 'auto-raise' to indicate that the window manager automatically raises a | ||
| 1732 | frame when the mouse pointer enters it. | ||
| 1733 | |||
| 1734 | +++ | ||
| 1735 | *** The new function 'frame-restack' puts a frame above or below | ||
| 1736 | another on the display. | ||
| 1737 | |||
| 1738 | +++ | ||
| 1739 | *** The new face 'internal-border' specifies the background of a frame's | ||
| 1740 | internal border. | ||
| 1741 | |||
| 1742 | +++ | ||
| 1743 | *** The NORECORD argument of 'select-window' now has a meaningful value | ||
| 1744 | 'mark-for-redisplay' which is like any other non-nil value but marks | ||
| 1745 | WINDOW for redisplay. | ||
| 1746 | |||
| 1747 | +++ | ||
| 1748 | *** Support for side windows is now official. | ||
| 1749 | The display action function 'display-buffer-in-side-window' will | ||
| 1750 | display its buffer in a side window. Functions for toggling all side | ||
| 1751 | windows on a frame, changing and reversing the layout of side windows | ||
| 1752 | and returning the main (major non-side) window of a frame are | ||
| 1753 | provided. For details consult the section "Side Windows" in the Elisp | ||
| 1754 | manual. | ||
| 1755 | |||
| 1756 | +++ | ||
| 1757 | *** Support for atomic windows - rectangular compositions of windows | ||
| 1758 | treated by 'split-window', 'delete-window' and 'delete-other-windows' | ||
| 1759 | like a single live window - is now official. For details consult the | ||
| 1760 | section "Atomic Windows" in the Elisp manual. | ||
| 1761 | |||
| 1762 | +++ | ||
| 1763 | *** New 'display-buffer' alist entry 'window-parameters' allows to | ||
| 1764 | assign window parameters to the window used for displaying the buffer. | ||
| 1765 | |||
| 1766 | +++ | ||
| 1767 | *** New function 'display-buffer-reuse-mode-window' is an action function | ||
| 1768 | suitable for use in 'display-buffer-alist'. For example, to avoid | ||
| 1769 | creating a new window when opening man pages when there's already one, | ||
| 1770 | use | ||
| 1771 | |||
| 1772 | (add-to-list 'display-buffer-alist | ||
| 1773 | '("\\`\\*Man .*\\*\\'" . | ||
| 1774 | (display-buffer-reuse-mode-window | ||
| 1775 | (inhibit-same-window . nil) | ||
| 1776 | (mode . Man-mode)))) | ||
| 1777 | |||
| 1778 | +++ | ||
| 1779 | *** New window parameter 'no-delete-other-windows' prevents that | ||
| 1780 | its window gets deleted by 'delete-other-windows'. | ||
| 1781 | |||
| 1782 | +++ | ||
| 1783 | *** New window parameters 'mode-line-format' and 'header-line-format' | ||
| 1784 | allow to override the buffer-local formats for this window. | ||
| 1785 | |||
| 1786 | +++ | ||
| 1787 | *** New command 'window-swap-states' swaps the states of two live | ||
| 1788 | windows. | ||
| 1789 | |||
| 1790 | +++ | ||
| 1791 | *** New functions 'window-pixel-width-before-size-change' and | ||
| 1792 | 'window-pixel-height-before-size-change' support detecting which | ||
| 1793 | window changed size when 'window-size-change-functions' are run. | ||
| 1794 | |||
| 1795 | +++ | ||
| 1796 | *** The new function 'window-lines-pixel-dimensions' returns the pixel | ||
| 1797 | dimensions of a window's text lines. | ||
| 1798 | |||
| 1799 | +++ | ||
| 1800 | *** The new function 'window-largest-empty-rectangle' returns the | ||
| 1801 | dimensions of the largest rectangular area not occupying any text in a | ||
| 1802 | window's body. | ||
| 1803 | |||
| 1804 | +++ | ||
| 1805 | *** The semantics of 'mouse-autoselect-window' has changed slightly. | ||
| 1806 | For details see the section "Mouse Window Auto-selection" in the Elisp | ||
| 1807 | manual. | ||
| 1808 | |||
| 1809 | --- | ||
| 1810 | ** 'tcl-auto-fill-mode' is now declared obsolete. Its functionality | ||
| 1811 | can be replicated simply by setting 'comment-auto-fill-only-comments'. | ||
| 1812 | |||
| 1813 | ** New pcase pattern 'rx' to match against a rx-style regular expression. | ||
| 1814 | For details, see the doc string of 'rx--pcase-macroexpander'. | ||
| 1815 | 48 | ||
| 1816 | 49 | ||
| 1817 | * Changes in Emacs 26.1 on Non-Free Operating Systems | 50 | * Changes in Emacs 27.1 on Non-Free Operating Systems |
| 1818 | |||
| 1819 | +++ | ||
| 1820 | ** Intercepting hotkeys on Windows 7 and later now works better. | ||
| 1821 | The new keyboard hooking code properly grabs system hotkeys such as | ||
| 1822 | Win-* and Alt-TAB, in a way that Emacs can get at them before the | ||
| 1823 | system. This makes the 'w32-register-hot-key' functionality work | ||
| 1824 | again on all versions of MS-Windows starting with Windows 7. On | ||
| 1825 | Windows NT and later you can now register any hotkey combination. (On | ||
| 1826 | Windows 9X, the previous limitations, spelled out in the Emacs manual, | ||
| 1827 | still apply.) | ||
| 1828 | |||
| 1829 | --- | ||
| 1830 | ** 'convert-standard-filename' no longer mirrors slashes on MS-Windows. | ||
| 1831 | Previously, on MS-Windows this function converted slash characters in | ||
| 1832 | file names into backslashes. It no longer does that. If your Lisp | ||
| 1833 | program used 'convert-standard-filename' to prepare file names to be | ||
| 1834 | passed to subprocesses (which is not the recommended usage of that | ||
| 1835 | function), you will now have to mirror slashes in your application | ||
| 1836 | code. One possible way is this: | ||
| 1837 | |||
| 1838 | (let ((start 0)) | ||
| 1839 | (while (string-match "/" file-name start) | ||
| 1840 | (aset file-name (match-beginning 0) ?\\) | ||
| 1841 | (setq start (match-end 0)))) | ||
| 1842 | |||
| 1843 | --- | ||
| 1844 | ** GUI sessions on MS-Windows now treat SIGINT like Posix platforms do. | ||
| 1845 | The effect of delivering a Ctrl-C (SIGINT) signal to a GUI Emacs on | ||
| 1846 | MS-Windows is now the same as on Posix platforms -- Emacs saves the | ||
| 1847 | session and exits. In particular, this will happen if you start | ||
| 1848 | emacs.exe from the Windows shell, then type Ctrl-C into that shell's | ||
| 1849 | window. | ||
| 1850 | |||
| 1851 | --- | ||
| 1852 | ** 'signal-process' supports SIGTRAP on Windows XP and later. | ||
| 1853 | The 'kill' emulation on Windows now maps SIGTRAP to a call to the | ||
| 1854 | 'DebugBreakProcess' API. This causes the receiving process to break | ||
| 1855 | execution and return control to the debugger. If no debugger is | ||
| 1856 | attached to the receiving process, the call is typically ignored. | ||
| 1857 | This is in contrast to the default action on POSIX Systems, where it | ||
| 1858 | causes the receiving process to terminate with a core dump if no | ||
| 1859 | debugger has been attached to it. | ||
| 1860 | |||
| 1861 | --- | ||
| 1862 | ** 'set-mouse-position' and 'set-mouse-absolute-pixel-position' work | ||
| 1863 | on macOS. | ||
| 1864 | |||
| 1865 | --- | ||
| 1866 | ** Emacs can now be run as a GUI application from the command line on | ||
| 1867 | macOS. | ||
| 1868 | |||
| 1869 | +++ | ||
| 1870 | ** 'ns-appearance' and 'ns-transparent-titlebar' change the appearance | ||
| 1871 | of frame decorations on macOS 10.9+. | ||
| 1872 | |||
| 1873 | --- | ||
| 1874 | ** 'ns-use-thin-smoothing' enables thin font smoothing on macOS 10.8+. | ||
| 1875 | |||
| 1876 | --- | ||
| 1877 | ** 'process-attributes' on Darwin systems now returns more information. | ||
| 1878 | 51 | ||
| 1879 | 52 | ||
| 1880 | ---------------------------------------------------------------------- | 53 | ---------------------------------------------------------------------- |
diff --git a/etc/NEWS.26 b/etc/NEWS.26 new file mode 100644 index 00000000000..a042ce92aff --- /dev/null +++ b/etc/NEWS.26 | |||
| @@ -0,0 +1,1901 @@ | |||
| 1 | GNU Emacs NEWS -- history of user-visible changes. | ||
| 2 | |||
| 3 | Copyright (C) 2014-2017 Free Software Foundation, Inc. | ||
| 4 | See the end of the file for license conditions. | ||
| 5 | |||
| 6 | Please send Emacs bug reports to bug-gnu-emacs@gnu.org. | ||
| 7 | If possible, use M-x report-emacs-bug. | ||
| 8 | |||
| 9 | This file is about changes in Emacs version 26. | ||
| 10 | |||
| 11 | See file HISTORY for a list of GNU Emacs versions and release dates. | ||
| 12 | See files NEWS.25, NEWS.24, NEWS.23, NEWS.22, NEWS.21, NEWS.20, | ||
| 13 | NEWS.19, NEWS.18, and NEWS.1-17 for changes in older Emacs versions. | ||
| 14 | |||
| 15 | You can narrow news to a specific version by calling 'view-emacs-news' | ||
| 16 | with a prefix argument or by typing C-u C-h C-n. | ||
| 17 | |||
| 18 | Temporary note: | ||
| 19 | +++ indicates that all necessary documentation updates are complete. | ||
| 20 | (This means all relevant manuals in doc/ AND lisp doc-strings.) | ||
| 21 | --- means no change in the manuals is needed. | ||
| 22 | When you add a new item, use the appropriate mark if you are sure it applies, | ||
| 23 | |||
| 24 | |||
| 25 | * Installation Changes in Emacs 26.1 | ||
| 26 | |||
| 27 | ** By default libgnutls is now required when building Emacs. | ||
| 28 | Use 'configure --with-gnutls=no' to build even when GnuTLS is missing. | ||
| 29 | |||
| 30 | ** GnuTLS version 2.12.2 or later is now required, instead of merely | ||
| 31 | version 2.6.6 or later. | ||
| 32 | |||
| 33 | ** The new option 'configure --with-mailutils' causes Emacs to rely on | ||
| 34 | GNU Mailutils to retrieve email. It is recommended, and is the | ||
| 35 | default if GNU Mailutils is installed. When --with-mailutils is not | ||
| 36 | in effect, the Emacs build procedure by default continues to build and | ||
| 37 | install a limited 'movemail' substitute that retrieves POP3 email only | ||
| 38 | via insecure channels; to avoid this problem, use either | ||
| 39 | --with-mailutils or --without-pop when configuring. | ||
| 40 | |||
| 41 | ** The new option 'configure --enable-gcc-warnings=warn-only' causes | ||
| 42 | GCC to issue warnings without stopping the build. This behavior is | ||
| 43 | now the default in developer builds. As before, use | ||
| 44 | '--disable-gcc-warnings' to suppress GCC's warnings, and | ||
| 45 | '--enable-gcc-warnings' to stop the build if GCC issues warnings. | ||
| 46 | |||
| 47 | ** When GCC warnings are enabled, '--enable-check-lisp-object-type' is | ||
| 48 | now enabled by default when configuring. | ||
| 49 | |||
| 50 | +++ | ||
| 51 | ** The Emacs server now has socket-launching support. This allows | ||
| 52 | socket based activation, where an external process like systemd can | ||
| 53 | invoke the Emacs server process upon a socket connection event and | ||
| 54 | hand the socket over to Emacs. Emacs uses this socket to service | ||
| 55 | emacsclient commands. This new functionality can be disabled with the | ||
| 56 | configure option '--disable-libsystemd'. | ||
| 57 | |||
| 58 | +++ | ||
| 59 | ** A systemd user unit file is provided. Use it in the standard way: | ||
| 60 | systemctl --user enable emacs | ||
| 61 | (If your Emacs is installed in a non-standard location, you may | ||
| 62 | need to copy the emacs.service file to eg ~/.config/systemd/user/) | ||
| 63 | |||
| 64 | ** New configure option '--disable-build-details' attempts to build an | ||
| 65 | Emacs that is more likely to be reproducible; that is, if you build | ||
| 66 | and install Emacs twice, the second Emacs is a copy of the first. | ||
| 67 | Deterministic builds omit the build date from the output of the | ||
| 68 | 'emacs-version' and 'erc-cmd-SV' functions, and the leave the | ||
| 69 | following variables nil: 'emacs-build-system', 'emacs-build-time', | ||
| 70 | 'erc-emacs-build-time'. | ||
| 71 | |||
| 72 | --- | ||
| 73 | ** Emacs can now be built with support for Little CMS. | ||
| 74 | |||
| 75 | If the lcms2 library is installed, Emacs will enable features built on | ||
| 76 | top of that library. The new configure option '--without-lcms2' can | ||
| 77 | be used to build without lcms2 support even if it is installed. Emacs | ||
| 78 | linked to Little CMS exposes color management functions in Lisp: the | ||
| 79 | color metrics 'lcms-cie-de2000' and 'lcms-cam02-ucs'. | ||
| 80 | |||
| 81 | ** The configure option '--with-gameuser' now defaults to 'no', | ||
| 82 | as this appears to be the most common configuration in practice. | ||
| 83 | When it is 'no', the shared game directory and the auxiliary program | ||
| 84 | update-game-score are no longer needed and are not installed. | ||
| 85 | |||
| 86 | ** Emacs no longer works on IRIX. We expect that Emacs users are not | ||
| 87 | affected by this, as SGI stopped supporting IRIX in December 2013. | ||
| 88 | |||
| 89 | |||
| 90 | * Startup Changes in Emacs 26.1 | ||
| 91 | |||
| 92 | +++ | ||
| 93 | ** New option '--fg-daemon'. This is the same as '--daemon', except | ||
| 94 | it runs in the foreground and does not fork. This is intended for | ||
| 95 | modern init systems such as systemd, which manage many of the traditional | ||
| 96 | aspects of daemon behavior themselves. '--bg-daemon' is now an alias | ||
| 97 | for '--daemon'. | ||
| 98 | |||
| 99 | +++ | ||
| 100 | ** New option '--module-assertions'. | ||
| 101 | When given this option, Emacs will perform expensive correctness | ||
| 102 | checks when dealing with dynamic modules. This is intended for module | ||
| 103 | authors that wish to verify that their module conforms to the module | ||
| 104 | requirements. The option makes Emacs abort if a module-related | ||
| 105 | assertion triggers. | ||
| 106 | |||
| 107 | +++ | ||
| 108 | ** Emacs now supports 24-bit colors on capable text terminals | ||
| 109 | Terminal is automatically initialized to use 24-bit colors if the | ||
| 110 | required capabilities are found in terminfo. See the FAQ node | ||
| 111 | "Colors on a TTY" for more information. | ||
| 112 | |||
| 113 | +++ | ||
| 114 | ** Emacs now obeys the X resource "scrollBar" at startup. | ||
| 115 | The effect is similar to that of "toolBar" resource on the tool bar. | ||
| 116 | |||
| 117 | |||
| 118 | * Changes in Emacs 26.1 | ||
| 119 | |||
| 120 | ** Security vulnerability related to Enriched Text mode is removed. | ||
| 121 | |||
| 122 | +++ | ||
| 123 | *** Enriched Text mode does not evaluate Lisp in 'display' properties. | ||
| 124 | This feature allows saving 'display' properties as part of text. | ||
| 125 | Emacs 'display' properties support evaluation of arbitrary Lisp forms | ||
| 126 | as part of processing the property for display, so displaying Enriched | ||
| 127 | Text could be vulnerable to executing arbitrary malicious Lisp code | ||
| 128 | included in the text (e.g., sent as part of an email message). | ||
| 129 | Therefore, execution of arbitrary Lisp forms in 'display' properties | ||
| 130 | decoded by Enriched Text mode is now disabled by default. Customize | ||
| 131 | the new option 'enriched-allow-eval-in-display-props' to a non-nil | ||
| 132 | value to allow Lisp evaluation in decoded 'display' properties. | ||
| 133 | |||
| 134 | This vulnerability was introduced in Emacs 21.1. To work around that | ||
| 135 | in Emacs versions before 25.3, append the following to your ~/.emacs | ||
| 136 | init file: | ||
| 137 | |||
| 138 | (eval-after-load "enriched" | ||
| 139 | '(defun enriched-decode-display-prop (start end &optional param) | ||
| 140 | (list start end))) | ||
| 141 | |||
| 142 | +++ | ||
| 143 | ** Functions in 'write-contents-functions' can fully short-circuit the | ||
| 144 | 'save-buffer' process. Previously, saving a buffer that was not | ||
| 145 | visiting a file would always prompt for a file name. Now it only does | ||
| 146 | so if 'write-contents-functions' is nil (or all its functions return | ||
| 147 | nil). A non-nil buffer-local value for this variable is sufficient | ||
| 148 | for 'save-some-buffers' to consider the buffer for saving. | ||
| 149 | |||
| 150 | --- | ||
| 151 | ** New variable 'executable-prefix-env' for inserting magic signatures. | ||
| 152 | This variable affects the format of the interpreter magic number | ||
| 153 | inserted by 'executable-set-magic'. If non-nil, the magic number now | ||
| 154 | takes the form "#!/usr/bin/env interpreter", otherwise the value | ||
| 155 | determined by 'executable-prefix', which is by default | ||
| 156 | "#!/path/to/interpreter". By default, 'executable-prefix-env' is nil, | ||
| 157 | so the default behavior is not changed. | ||
| 158 | |||
| 159 | +++ | ||
| 160 | ** The variable 'emacs-version' no longer includes the build number. | ||
| 161 | This is now stored separately in a new variable, 'emacs-build-number'. | ||
| 162 | |||
| 163 | +++ | ||
| 164 | ** Emacs now provides a limited form of concurrency with Lisp threads. | ||
| 165 | Concurrency in Emacs Lisp is "mostly cooperative", meaning that | ||
| 166 | Emacs will only switch execution between threads at well-defined | ||
| 167 | times: when Emacs waits for input, during blocking operations related | ||
| 168 | to threads (such as mutex locking), or when the current thread | ||
| 169 | explicitly yields. Global variables are shared among all threads, but | ||
| 170 | a 'let' binding is thread-local. Each thread also has its own current | ||
| 171 | buffer and its own match data. | ||
| 172 | |||
| 173 | See the chapter "Threads" in the ELisp manual for full documentation | ||
| 174 | of these facilities. | ||
| 175 | |||
| 176 | +++ | ||
| 177 | ** The new user variable 'electric-quote-chars' provides a list | ||
| 178 | of curved quotes for 'electric-quote-mode', allowing user to choose | ||
| 179 | the types of quotes to be used. | ||
| 180 | |||
| 181 | --- | ||
| 182 | ** The new user option 'electric-quote-context-sensitive' makes | ||
| 183 | 'electric-quote-mode' context sensitive. If it is non-nil, you can | ||
| 184 | type an ASCII apostrophe to insert an opening or closing quote, | ||
| 185 | depending on context. Emacs will replace the apostrophe by an opening | ||
| 186 | quote character at the beginning of the buffer, the beginning of a | ||
| 187 | line, after a whitespace character, and after an opening parenthesis; | ||
| 188 | and it will replace the apostrophe by a closing quote character in all | ||
| 189 | other cases. | ||
| 190 | |||
| 191 | --- | ||
| 192 | ** The new variable 'electric-quote-inhibit-functions' controls when | ||
| 193 | to disable electric quoting based on context. Major modes can add | ||
| 194 | functions to this list; Emacs will temporarily disable | ||
| 195 | 'electric-quote-mode' whenever any of the functions returns non-nil. | ||
| 196 | This can be used by major modes that derive from 'text-mode' but allow | ||
| 197 | inline code segments, such as 'markdown-mode'. | ||
| 198 | |||
| 199 | +++ | ||
| 200 | ** The new user variable 'dired-omit-case-fold' allows the user to | ||
| 201 | customize the case-sensitivity of dired-omit-mode. It defaults to | ||
| 202 | the same sensitivity as that of the filesystem for the corresponding | ||
| 203 | dired buffer. | ||
| 204 | |||
| 205 | +++ | ||
| 206 | ** Emacs now uses double buffering to reduce flicker when editing and | ||
| 207 | resizing graphical Emacs frames on the X Window System. This support | ||
| 208 | requires the DOUBLE-BUFFER extension, which major X servers have | ||
| 209 | supported for many years. If your system has this extension, but an | ||
| 210 | Emacs built with double buffering misbehaves on some displays you use, | ||
| 211 | you can disable the feature by adding | ||
| 212 | |||
| 213 | '(inhibit-double-buffering . t) | ||
| 214 | |||
| 215 | to default-frame-alist. Or inject this parameter into the selected | ||
| 216 | frame by evaluating this form: | ||
| 217 | |||
| 218 | (modify-frame-parameters nil '((inhibit-double-buffering . t))) | ||
| 219 | |||
| 220 | --- | ||
| 221 | The group 'wp', whose label was "text", is now deprecated. | ||
| 222 | Use the new group 'text', which inherits from 'wp', instead. | ||
| 223 | |||
| 224 | +++ | ||
| 225 | ** The new function 'call-shell-region' executes a command in an | ||
| 226 | inferior shell with the buffer region as input. | ||
| 227 | |||
| 228 | +++ | ||
| 229 | ** The new user option 'shell-command-dont-erase-buffer' controls | ||
| 230 | if the output buffer is erased between shell commands; if non-nil, | ||
| 231 | the output buffer is not erased; this variable also controls where | ||
| 232 | to set the point in the output buffer: beginning of the output, | ||
| 233 | end of the buffer or save the point. | ||
| 234 | When 'shell-command-dont-erase-buffer' is nil, the default value, | ||
| 235 | the behavior of 'shell-command', 'shell-command-on-region' and | ||
| 236 | 'async-shell-command' is as usual. | ||
| 237 | |||
| 238 | +++ | ||
| 239 | ** The new user option 'async-shell-command-display-buffer' controls | ||
| 240 | whether the output buffer of an asynchronous command is shown | ||
| 241 | immediately, or only when there is output. | ||
| 242 | |||
| 243 | +++ | ||
| 244 | ** The new user option 'mouse-select-region-move-to-beginning' | ||
| 245 | controls the position of point when double-clicking mouse-1 on the end | ||
| 246 | of a parenthetical grouping or string-delimiter: the default value nil | ||
| 247 | keeps point at the end of the region, setting it to non-nil moves | ||
| 248 | point to the beginning of the region. | ||
| 249 | |||
| 250 | +++ | ||
| 251 | ** The new user option 'mouse-drag-and-drop-region' allows to drag the | ||
| 252 | entire region of text to another place or another buffer. | ||
| 253 | |||
| 254 | +++ | ||
| 255 | ** The new user option 'confirm-kill-processes' allows the user to | ||
| 256 | skip a confirmation prompt for killing subprocesses when exiting | ||
| 257 | Emacs. When set to t (the default), Emacs will prompt for | ||
| 258 | confirmation before killing subprocesses on exit, which is the same | ||
| 259 | behavior as before. | ||
| 260 | |||
| 261 | --- | ||
| 262 | ** 'find-library-name' will now fall back on looking at 'load-history' | ||
| 263 | to try to locate libraries that have been loaded with an explicit path | ||
| 264 | outside 'load-path'. | ||
| 265 | |||
| 266 | +++ | ||
| 267 | ** Faces in 'minibuffer-prompt-properties' no longer overwrite properties | ||
| 268 | in the text in functions like 'read-from-minibuffer', but instead are | ||
| 269 | added to the end of the face list. This allows users to say things | ||
| 270 | like '(read-from-minibuffer (propertize "Enter something: " 'face 'bold))'. | ||
| 271 | |||
| 272 | +++ | ||
| 273 | ** The new variable 'extended-command-suggest-shorter' has been added | ||
| 274 | to control whether to suggest shorter 'M-x' commands or not. | ||
| 275 | |||
| 276 | --- | ||
| 277 | ** icomplete now respects 'completion-ignored-extensions'. | ||
| 278 | |||
| 279 | +++ | ||
| 280 | ** Non-breaking hyphens are now displayed with the 'nobreak-hyphen' | ||
| 281 | face instead of the 'escape-glyph' face. | ||
| 282 | |||
| 283 | +++ | ||
| 284 | ** Approximations to quotes are now displayed with the new 'homoglyph' | ||
| 285 | face instead of the 'escape-glyph' face. | ||
| 286 | |||
| 287 | +++ | ||
| 288 | ** New face 'header-line-highlight'. | ||
| 289 | This face is the header-line analogue of 'mode-line-highlight'; it | ||
| 290 | should be the preferred mouse-face for mouse-sensitive elements in the | ||
| 291 | header line. | ||
| 292 | |||
| 293 | --- | ||
| 294 | ** 'C-x h' ('mark-whole-buffer') will now avoid marking the prompt | ||
| 295 | part of minibuffers. | ||
| 296 | |||
| 297 | --- | ||
| 298 | ** 'find-library' now takes a prefix argument to pop to a different | ||
| 299 | window. | ||
| 300 | |||
| 301 | --- | ||
| 302 | ** 'fill-paragraph' no longer marks the buffer as changed unless it | ||
| 303 | actually changed something. | ||
| 304 | |||
| 305 | --- | ||
| 306 | ** The locale language name 'ca' is now mapped to the language | ||
| 307 | environment 'Catalan', which has been added. | ||
| 308 | |||
| 309 | --- | ||
| 310 | ** 'align-regexp' has a separate history for its interactive argument. | ||
| 311 | 'align-regexp' no longer shares its history with all other | ||
| 312 | history-less functions that use 'read-string'. | ||
| 313 | |||
| 314 | +++ | ||
| 315 | ** The networking code has been reworked so that it's more | ||
| 316 | asynchronous than it was (when specifying :nowait t in | ||
| 317 | 'make-network-process'). How asynchronous it is varies based on the | ||
| 318 | capabilities of the system, but on a typical GNU/Linux system the DNS | ||
| 319 | resolution, the connection, and (for TLS streams) the TLS negotiation | ||
| 320 | are all done without blocking the main Emacs thread. To get | ||
| 321 | asynchronous TLS, the TLS boot parameters have to be passed in (see | ||
| 322 | the manual for details). | ||
| 323 | |||
| 324 | Certain process oriented functions (like 'process-datagram-address') | ||
| 325 | will block until socket setup has been performed. The recommended way | ||
| 326 | to deal with asynchronous sockets is to avoid interacting with them | ||
| 327 | until they have changed status to "run". This is most easily done | ||
| 328 | from a process sentinel. | ||
| 329 | |||
| 330 | --- | ||
| 331 | ** 'make-network-process' and 'open-network-stream' sometimes allowed | ||
| 332 | :service to be an integer string (e.g., :service "993") and sometimes | ||
| 333 | required an integer (e.g., :service 993). This difference has been | ||
| 334 | eliminated, and integer strings work everywhere. | ||
| 335 | |||
| 336 | --- | ||
| 337 | ** It is possible to disable attempted recovery on fatal signals. | ||
| 338 | Two new variables support disabling attempts to recover from stack | ||
| 339 | overflow and to avoid automatic auto-save when Emacs is delivered a | ||
| 340 | fatal signal. 'attempt-stack-overflow-recovery', if set to 'nil', | ||
| 341 | will disable attempts to recover from C stack overflows; Emacs will | ||
| 342 | then crash as with any other fatal signal. | ||
| 343 | 'attempt-orderly-shutdown-on-fatal-signal', if set to 'nil', will | ||
| 344 | disable attempts to auto-save the session and shut down in an orderly | ||
| 345 | fashion when Emacs receives a fatal signal; instead, Emacs will | ||
| 346 | terminate immediately. Both variables are non-'nil' by default. | ||
| 347 | These variables are for users who would like to avoid the small | ||
| 348 | probability of data corruption due to techniques Emacs uses to recover | ||
| 349 | in these situations. | ||
| 350 | |||
| 351 | +++ | ||
| 352 | ** File local and directory local variables are now initialized each | ||
| 353 | time the major mode is set, not just when the file is first visited. | ||
| 354 | These local variables will thus not vanish on setting a major mode. | ||
| 355 | |||
| 356 | +++ | ||
| 357 | ** A second dir-local file (.dir-locals-2.el) is now accepted. | ||
| 358 | See the variable 'dir-locals-file-2' for more information. | ||
| 359 | |||
| 360 | +++ | ||
| 361 | ** Connection-local variables can be used to specify local variables | ||
| 362 | with a value depending on the connected remote server. For details, | ||
| 363 | see the node "Connection Local Variables" in the ELisp manual. | ||
| 364 | |||
| 365 | --- | ||
| 366 | ** International domain names (IDNA) are now encoded via the new | ||
| 367 | puny.el library, so that one can visit Web sites with non-ASCII URLs. | ||
| 368 | |||
| 369 | +++ | ||
| 370 | ** The new 'timer-list' command lists all active timers in a buffer, | ||
| 371 | where you can cancel them with the 'c' command. | ||
| 372 | |||
| 373 | +++ | ||
| 374 | ** 'switch-to-buffer-preserve-window-point' now defaults to t. | ||
| 375 | |||
| 376 | +++ | ||
| 377 | ** The new variable 'debugger-stack-frame-as-list' allows displaying | ||
| 378 | all call stack frames in a Lisp backtrace buffer as lists. Both | ||
| 379 | debug.el and edebug.el have been updated to heed to this variable. | ||
| 380 | |||
| 381 | --- | ||
| 382 | ** Values in call stack frames are now displayed using 'cl-prin1'. | ||
| 383 | The old behaviour of using 'prin1' can be restored by customizing the | ||
| 384 | new option 'debugger-print-function'. | ||
| 385 | |||
| 386 | +++ | ||
| 387 | ** NUL bytes in text copied to the system clipboard are now replaced with "\0". | ||
| 388 | |||
| 389 | +++ | ||
| 390 | ** The new variable 'x-ctrl-keysym' has been added to the existing | ||
| 391 | roster of X keysyms. It can be used in combination with another | ||
| 392 | variable of this kind to swap modifiers in Emacs. | ||
| 393 | |||
| 394 | --- | ||
| 395 | ** New input methods: 'cyrillic-tuvan', 'polish-prefix'. | ||
| 396 | |||
| 397 | --- | ||
| 398 | ** The 'dutch' input method no longer attempts to support Turkish too. | ||
| 399 | Also, it no longer converts 'IJ' and 'ij' to the compatibility | ||
| 400 | characters U+0132 LATIN CAPITAL LIGATURE IJ and U+0133 LATIN SMALL | ||
| 401 | LIGATURE IJ. | ||
| 402 | |||
| 403 | +++ | ||
| 404 | ** File name quoting by adding the prefix "/:" is now possible for the | ||
| 405 | local part of a remote file name. Thus, if you have a directory named | ||
| 406 | "/~" on the remote host "foo", you can prevent it from being | ||
| 407 | substituted by a home directory by writing it as "/foo:/:/~/file". | ||
| 408 | |||
| 409 | +++ | ||
| 410 | ** The new variable 'maximum-scroll-margin' allows having effective | ||
| 411 | settings of 'scroll-margin' up to half the window size, instead of | ||
| 412 | always restricting the margin to a quarter of the window. | ||
| 413 | |||
| 414 | +++ | ||
| 415 | ** Emacs can scroll horizontally using mouse, touchpad, and trackbar. | ||
| 416 | You can enable this by customizing 'mwheel-tilt-scroll-p'. If you | ||
| 417 | want to reverse the direction of the scroll, customize | ||
| 418 | 'mwheel-flip-direction'. | ||
| 419 | |||
| 420 | +++ | ||
| 421 | ** Emacsclient has a new option -u/--suppress-output. | ||
| 422 | This option suppresses display of return values from the server | ||
| 423 | process. | ||
| 424 | |||
| 425 | +++ | ||
| 426 | ** Emacsclient has a new option -T/--tramp. | ||
| 427 | This helps with using a local Emacs session as the server for a remote | ||
| 428 | emacsclient. With appropriate setup, one can now set the EDITOR | ||
| 429 | environment variable on a remote machine to emacsclient, and | ||
| 430 | use the local Emacs to edit remote files via Tramp. See the node | ||
| 431 | "emacsclient Options" in the user manual for the details. | ||
| 432 | |||
| 433 | --- | ||
| 434 | ** New user option 'dig-program-options' and extended functionality | ||
| 435 | for DNS-querying functions 'nslookup-host', 'dns-lookup-host', | ||
| 436 | and 'run-dig'. Each function now accepts an optional name server | ||
| 437 | argument interactively (with a prefix argument) and non-interactively. | ||
| 438 | |||
| 439 | +++ | ||
| 440 | ** 'describe-key-briefly' now ignores mouse movement events. | ||
| 441 | |||
| 442 | +++ | ||
| 443 | ** The new variable 'eval-expression-print-maximum-character' prevents | ||
| 444 | large integers from being displayed as characters by 'M-:' and similar | ||
| 445 | commands. | ||
| 446 | |||
| 447 | --- | ||
| 448 | ** Two new commands for finding the source code of Emacs Lisp | ||
| 449 | libraries: 'find-library-other-window' and 'find-library-other-frame'. | ||
| 450 | |||
| 451 | +++ | ||
| 452 | ** The new variable 'display-raw-bytes-as-hex' allows to change the | ||
| 453 | display of raw bytes from octal to hex. | ||
| 454 | |||
| 455 | +++ | ||
| 456 | ** You can now provide explicit field numbers in format specifiers. | ||
| 457 | For example, '(format "%2$s %1$s" "X" "Y")' produces "Y X". | ||
| 458 | |||
| 459 | +++ | ||
| 460 | ** Emacs now supports optional display of line numbers in the buffer. | ||
| 461 | This is similar to what linum-mode provides, but much faster and | ||
| 462 | doesn't usurp the display margin for the line numbers. Customize the | ||
| 463 | buffer-local variable 'display-line-numbers' to activate this optional | ||
| 464 | display. Alternatively, you can use the `display-line-numbers-mode' | ||
| 465 | minor mode or the global `global-display-line-numbers-mode'. When | ||
| 466 | using these modes, customize `display-line-numbers-type' with the same | ||
| 467 | value as you would use with `display-line-numbers'. | ||
| 468 | |||
| 469 | Line numbers are not displayed at all in minibuffer windows and in | ||
| 470 | tooltips, as they are not useful there. | ||
| 471 | |||
| 472 | Lisp programs can disable line-number display for a particular screen | ||
| 473 | line by putting the 'display-line-numbers-disable' text property or | ||
| 474 | overlay property on the first character of that screen line. This is | ||
| 475 | intended for add-on packages that need a finer control of the display. | ||
| 476 | |||
| 477 | Lisp programs that need to know how much screen estate is used up for | ||
| 478 | line-number display in a window can use the new function | ||
| 479 | 'line-number-display-width'. | ||
| 480 | |||
| 481 | Linum mode and all similar packages are henceforth becoming obsolete. | ||
| 482 | Users and developers are encouraged to switch to this new feature | ||
| 483 | instead. | ||
| 484 | |||
| 485 | +++ | ||
| 486 | ** emacsclient now accepts command-line options in ALTERNATE_EDITOR | ||
| 487 | and --alternate-editor. For example, ALTERNATE_EDITOR="emacs -Q -nw". | ||
| 488 | Arguments may be quoted "like this", so that for example an absolute | ||
| 489 | path containing a space may be specified; quote escaping is not | ||
| 490 | supported. | ||
| 491 | |||
| 492 | |||
| 493 | * Editing Changes in Emacs 26.1 | ||
| 494 | |||
| 495 | +++ | ||
| 496 | ** New variable 'column-number-indicator-zero-based'. | ||
| 497 | Traditionally, in Column Number mode, the displayed column number | ||
| 498 | counts from zero starting at the left margin of the window. This | ||
| 499 | behavior is now controlled by 'column-number-indicator-zero-based'. | ||
| 500 | If you would prefer for the displayed column number to count from one, | ||
| 501 | you may set this variable to nil. (Behind the scenes, there is now a | ||
| 502 | new mode line construct, '%C', which operates exactly as '%c' does | ||
| 503 | except that it counts from one.) | ||
| 504 | |||
| 505 | +++ | ||
| 506 | ** New single-line horizontal scrolling mode. | ||
| 507 | The 'auto-hscroll-mode' variable can now have a new special value, | ||
| 508 | 'current-line', which causes only the line where the cursor is | ||
| 509 | displayed to be horizontally scrolled when lines are truncated on | ||
| 510 | display and point moves outside the left or right window margin. | ||
| 511 | |||
| 512 | +++ | ||
| 513 | ** New mode line constructs '%o' and '%q', and user option | ||
| 514 | 'mode-line-percent-position'. '%o' displays the "degree of travel" of | ||
| 515 | the window through the buffer. Unlike the default '%p', this | ||
| 516 | percentage approaches 100% as the window approaches the end of the | ||
| 517 | buffer. '%q' displays the percentage offsets of both the start and | ||
| 518 | the end of the window, e.g. "5-17%". The new option | ||
| 519 | 'mode-line-percent-position' makes it easier to switch between '%p', | ||
| 520 | '%P', and these new constructs. | ||
| 521 | |||
| 522 | +++ | ||
| 523 | ** Two new user options 'list-matching-lines-jump-to-current-line' and | ||
| 524 | 'list-matching-lines-current-line-face' to show highlighted the current | ||
| 525 | line in *Occur* buffer. | ||
| 526 | |||
| 527 | +++ | ||
| 528 | ** The 'occur' command can now operate on the region. | ||
| 529 | |||
| 530 | +++ | ||
| 531 | ** New bindings for 'query-replace-map'. | ||
| 532 | 'undo', undo the last replacement; bound to 'u'. | ||
| 533 | 'undo-all', undo all replacements; bound to 'U'. | ||
| 534 | |||
| 535 | --- | ||
| 536 | ** 'delete-trailing-whitespace' deletes whitespace after form feed. | ||
| 537 | In modes where form feed was treated as a whitespace character, | ||
| 538 | 'delete-trailing-whitespace' would keep lines containing it unchanged. | ||
| 539 | It now deletes whitespace after the last form feed thus behaving the | ||
| 540 | same as in modes where the character is not whitespace. | ||
| 541 | |||
| 542 | --- | ||
| 543 | ** Emacs no longer prompts about editing a changed file when the file's | ||
| 544 | content is unchanged. Instead of only checking the modification time, | ||
| 545 | Emacs now also checks the file's actual content before prompting the user. | ||
| 546 | |||
| 547 | --- | ||
| 548 | ** Various casing improvements. | ||
| 549 | |||
| 550 | *** 'upcase', 'upcase-region' et al. convert title case characters | ||
| 551 | (such as Dz) into their upper case form (such as DZ). | ||
| 552 | |||
| 553 | *** 'capitalize', 'upcase-initials' et al. make use of title-case forms | ||
| 554 | of initial characters (correctly producing for example Džungla instead | ||
| 555 | of incorrect DŽungla). | ||
| 556 | |||
| 557 | *** Characters which turn into multiple ones when cased are correctly handled. | ||
| 558 | For example, fi ligature is converted to FI when upper cased. | ||
| 559 | |||
| 560 | *** Greek small sigma is correctly handled when at the end of the word. | ||
| 561 | Strings such as ΌΣΟΣ are now correctly converted to Όσος when | ||
| 562 | capitalized instead of incorrect Όσοσ (compare lowercase sigma at the | ||
| 563 | end of the word). | ||
| 564 | |||
| 565 | +++ | ||
| 566 | ** Emacs can now auto-save buffers to visited files in a more robust | ||
| 567 | manner via the new mode 'auto-save-visited-mode'. Unlike | ||
| 568 | 'auto-save-visited-file-name', this mode uses the normal saving | ||
| 569 | procedure and therefore obeys saving hooks. | ||
| 570 | 'auto-save-visited-file-name' is now obsolete. | ||
| 571 | |||
| 572 | +++ | ||
| 573 | ** New behavior of 'mark-defun'. | ||
| 574 | Prefix argument selects that many (or that many more) defuns. | ||
| 575 | Negative prefix arg flips the direction of selection. Also, | ||
| 576 | 'mark-defun' between defuns correctly selects N following defuns (or | ||
| 577 | -N previous for negative arguments). Finally, comments preceding the | ||
| 578 | defun are selected unless they are separated from the defun by a blank | ||
| 579 | line. | ||
| 580 | |||
| 581 | --- | ||
| 582 | ** New command 'replace-buffer-contents'. | ||
| 583 | This command replaces the contents of the accessible portion of the | ||
| 584 | current buffer with the contents of the accessible portion of a | ||
| 585 | different buffer while keeping point, mark, markers, and text | ||
| 586 | properties as intact as possible. | ||
| 587 | |||
| 588 | +++ | ||
| 589 | ** New commands 'apropos-local-variable' and 'apropos-local-value. | ||
| 590 | These are buffer-local versions of 'apropos-variable' and | ||
| 591 | 'apropos-value', respectively. They show buffer-local variables whose | ||
| 592 | names and values, respectively, match a given pattern. | ||
| 593 | |||
| 594 | +++ | ||
| 595 | ** More user control of reordering bidirectional text for display. | ||
| 596 | The two new variables, 'bidi-paragraph-start-re' and | ||
| 597 | 'bidi-paragraph-separate-re', allow customization of what exactly are | ||
| 598 | paragraphs, for the purposes of bidirectional display. | ||
| 599 | |||
| 600 | |||
| 601 | * Changes in Specialized Modes and Packages in Emacs 26.1 | ||
| 602 | |||
| 603 | --- | ||
| 604 | ** New function `cl-generic-p'. | ||
| 605 | |||
| 606 | ** Dired | ||
| 607 | |||
| 608 | +++ | ||
| 609 | *** You can answer 'all' in 'dired-do-delete' to delete recursively all | ||
| 610 | remaining directories without more prompts. | ||
| 611 | |||
| 612 | +++ | ||
| 613 | *** Dired supports wildcards in the directory part of the file names. | ||
| 614 | |||
| 615 | +++ | ||
| 616 | *** You can now use '`?`' in 'dired-do-shell-command'. | ||
| 617 | It gets replaced by the current file name, like ' ? '. | ||
| 618 | |||
| 619 | +++ | ||
| 620 | *** A new option 'dired-always-read-filesystem' default to nil. | ||
| 621 | If non-nil, buffers visiting files are reverted before search them; | ||
| 622 | for instance, in 'dired-mark-files-containing-regexp' a non-nil value | ||
| 623 | of this option means the file is revisited in a temporary buffer; | ||
| 624 | this temporary buffer is the actual buffer searched: the original buffer | ||
| 625 | visiting the file is not modified. | ||
| 626 | |||
| 627 | --- | ||
| 628 | *** Users can now customize mouse clicks in Dired in a more flexible way. | ||
| 629 | The new command 'dired-mouse-find-file' can be bound to a mouse click | ||
| 630 | and used to visit files/directories in Dired in the selected window. | ||
| 631 | The new command 'dired-mouse-find-file-other-frame' similarly visits | ||
| 632 | files/directories in another frame. You can write your own commands | ||
| 633 | that invoke 'dired-mouse-find-file' with non-default optional | ||
| 634 | arguments, to tailor the effects of mouse clicks on file names in | ||
| 635 | Dired buffers. | ||
| 636 | |||
| 637 | +++ | ||
| 638 | *** In wdired, when editing files to contain slash characters, | ||
| 639 | the resulting directories are automatically created. Whether to do | ||
| 640 | this is controlled by the 'wdired-create-parent-directories' variable. | ||
| 641 | |||
| 642 | +++ | ||
| 643 | *** 'W' is now bound to 'browse-url-of-dired-file', and is useful for | ||
| 644 | viewing HTML files and the like. | ||
| 645 | |||
| 646 | --- | ||
| 647 | *** New variable 'dired-clean-confirm-killing-deleted-buffers' | ||
| 648 | controls whether Dired asks to kill buffers visiting deleted files and | ||
| 649 | directories. The default is t, so Dired asks for confirmation, to | ||
| 650 | keep previous behavior. | ||
| 651 | |||
| 652 | --- | ||
| 653 | ** html2text is now marked obsolete. | ||
| 654 | |||
| 655 | --- | ||
| 656 | ** smerge-refine-regions can refine regions in separate buffers | ||
| 657 | |||
| 658 | --- | ||
| 659 | ** Info menu and index completion uses substring completion by default. | ||
| 660 | This can be customized via the info-menu category in | ||
| 661 | completion-category-override. | ||
| 662 | |||
| 663 | +++ | ||
| 664 | ** The ancestor buffer is shown by default in 3-way merges. | ||
| 665 | A new option ediff-show-ancestor and a new toggle | ||
| 666 | ediff-toggle-show-ancestor. | ||
| 667 | |||
| 668 | --- | ||
| 669 | ** TeX: Add luatex and xetex as alternatives to pdftex | ||
| 670 | |||
| 671 | ** Electric-Buffer-menu | ||
| 672 | |||
| 673 | +++ | ||
| 674 | *** Key 'U' is bound to 'Buffer-menu-unmark-all' and key 'M-DEL' is | ||
| 675 | bound to 'Buffer-menu-unmark-all-buffers'. | ||
| 676 | |||
| 677 | ** bs | ||
| 678 | |||
| 679 | --- | ||
| 680 | *** Two new commands 'bs-unmark-all', bound to 'U', and | ||
| 681 | 'bs-unmark-previous', bound to <backspace>. | ||
| 682 | |||
| 683 | ** Buffer-menu | ||
| 684 | |||
| 685 | +++ | ||
| 686 | *** Two new commands 'Buffer-menu-unmark-all', bound to 'U' and | ||
| 687 | 'Buffer-menu-unmark-all-buffers', bound to 'M-DEL'. | ||
| 688 | |||
| 689 | --- | ||
| 690 | ** Checkdoc | ||
| 691 | |||
| 692 | *** 'checkdoc-arguments-in-order-flag' now defaults to nil. | ||
| 693 | |||
| 694 | ** Gnus | ||
| 695 | |||
| 696 | --- | ||
| 697 | *** The .newsrc file will now only be saved if the native select | ||
| 698 | method is an NNTP select method. | ||
| 699 | |||
| 700 | +++ | ||
| 701 | *** A new command for sorting articles by readedness marks has been | ||
| 702 | added: 'C-c C-s C-m C-m'. | ||
| 703 | |||
| 704 | ** Ibuffer | ||
| 705 | |||
| 706 | --- | ||
| 707 | *** New command 'ibuffer-jump'. | ||
| 708 | |||
| 709 | --- | ||
| 710 | *** New filter commands 'ibuffer-filter-by-basename', | ||
| 711 | 'ibuffer-filter-by-file-extension', 'ibuffer-filter-by-directory', | ||
| 712 | 'ibuffer-filter-by-starred-name', 'ibuffer-filter-by-modified' | ||
| 713 | and 'ibuffer-filter-by-visiting-file'; bound respectively | ||
| 714 | to '/b', '/.', '//', '/*', '/i' and '/v'. | ||
| 715 | |||
| 716 | --- | ||
| 717 | *** Two new commands 'ibuffer-filter-chosen-by-completion' | ||
| 718 | and 'ibuffer-and-filter', the second bound to '/&'. | ||
| 719 | |||
| 720 | --- | ||
| 721 | *** The commands 'ibuffer-pop-filter', 'ibuffer-pop-filter-group', | ||
| 722 | 'ibuffer-or-filter' and 'ibuffer-filter-disable' have the alternative | ||
| 723 | bindings '/<up>', '/S-<up>', '/|' and '/DEL', respectively. | ||
| 724 | |||
| 725 | --- | ||
| 726 | *** The data format specifying filters has been extended to allow | ||
| 727 | explicit logical 'and', and a more flexible form for logical 'not'. | ||
| 728 | See 'ibuffer-filtering-qualifiers' doc string for full details. | ||
| 729 | |||
| 730 | --- | ||
| 731 | *** A new command 'ibuffer-copy-buffername-as-kill'; bound | ||
| 732 | to 'B'. | ||
| 733 | |||
| 734 | --- | ||
| 735 | *** New command 'ibuffer-change-marks'; bound to '* c'. | ||
| 736 | |||
| 737 | --- | ||
| 738 | *** A new command 'ibuffer-mark-by-locked' to mark | ||
| 739 | all locked buffers; bound to '% L'. | ||
| 740 | |||
| 741 | --- | ||
| 742 | *** A new option 'ibuffer-locked-char' to indicate | ||
| 743 | locked buffers; Ibuffer shows a new column displaying | ||
| 744 | 'ibuffer-locked-char' for locked buffers. | ||
| 745 | |||
| 746 | --- | ||
| 747 | *** A new command 'ibuffer-unmark-all-marks' to unmark | ||
| 748 | all buffers without asking confirmation; bound to | ||
| 749 | 'U'; 'ibuffer-do-replace-regexp' bound to 'r'. | ||
| 750 | |||
| 751 | --- | ||
| 752 | *** A new command 'ibuffer-mark-by-content-regexp' to mark buffers | ||
| 753 | whose content matches a regexp; bound to '% g'. | ||
| 754 | |||
| 755 | --- | ||
| 756 | *** Two new options 'ibuffer-never-search-content-name' and | ||
| 757 | 'ibuffer-never-search-content-mode' used by | ||
| 758 | 'ibuffer-mark-by-content-regexp'. | ||
| 759 | |||
| 760 | ** Browse-URL | ||
| 761 | |||
| 762 | --- | ||
| 763 | *** Support for opening links to man pages in Man or WoMan mode. | ||
| 764 | |||
| 765 | ** Comint | ||
| 766 | |||
| 767 | --- | ||
| 768 | *** New user option 'comint-move-point-for-matching-input' to control | ||
| 769 | where to place point after C-c M-r and C-c M-s. | ||
| 770 | |||
| 771 | ** Compilation mode | ||
| 772 | |||
| 773 | --- | ||
| 774 | *** Messages from CMake are now recognized. | ||
| 775 | |||
| 776 | +++ | ||
| 777 | *** The number of errors, warnings, and informational messages is now | ||
| 778 | displayed in the mode line. These are updated as compilation | ||
| 779 | proceeds. | ||
| 780 | |||
| 781 | ** Grep | ||
| 782 | |||
| 783 | --- | ||
| 784 | *** Grep commands will now use GNU grep's '--null' option if | ||
| 785 | available, which allows distinguishing the filename from contents if | ||
| 786 | they contain colons. This can be controlled by the new custom option | ||
| 787 | 'grep-use-null-filename-separator'. | ||
| 788 | |||
| 789 | --- | ||
| 790 | *** The grep/rgrep/lgrep functions will now ask about saving files | ||
| 791 | before running. This is controlled by the 'grep-save-buffers' | ||
| 792 | variable. | ||
| 793 | |||
| 794 | ** Edebug | ||
| 795 | |||
| 796 | --- | ||
| 797 | *** Edebug can be prevented from pausing 1 second after reaching a | ||
| 798 | breakpoint (e.g. with "f" and "o") by customizing the new option | ||
| 799 | 'edebug-sit-on-break'. | ||
| 800 | |||
| 801 | +++ | ||
| 802 | *** New customizable option 'edebug-max-depth' | ||
| 803 | This allows to enlarge the maximum recursion depth when instrumenting | ||
| 804 | code. | ||
| 805 | |||
| 806 | ** Eshell | ||
| 807 | |||
| 808 | --- | ||
| 809 | *** 'eshell-input-filter's value is now a named function | ||
| 810 | 'eshell-input-filter-default', and has a new custom option | ||
| 811 | 'eshell-input-filter-initial-space' to ignore adding commands prefixed | ||
| 812 | with blank space to eshell history. | ||
| 813 | |||
| 814 | ** eww | ||
| 815 | |||
| 816 | +++ | ||
| 817 | *** New 'M-RET' command for opening a link at point in a new eww buffer. | ||
| 818 | |||
| 819 | +++ | ||
| 820 | *** A new 's' command for switching to another eww buffer via the minibuffer. | ||
| 821 | |||
| 822 | --- | ||
| 823 | *** The 'o' command ('shr-save-contents') has moved to 'O' to avoid collision | ||
| 824 | with the 'o' command from 'image-map'. | ||
| 825 | |||
| 826 | +++ | ||
| 827 | *** A new command 'C' ('eww-toggle-colors') can be used to toggle | ||
| 828 | whether to use the HTML-specified colors or not. The user can also | ||
| 829 | customize the 'shr-use-colors' variable. | ||
| 830 | |||
| 831 | --- | ||
| 832 | *** Images that are being loaded are now marked with gray | ||
| 833 | "placeholder" images of the size specified by the HTML. They are then | ||
| 834 | replaced by the real images asynchronously, which will also now | ||
| 835 | respect width/height HTML specs (unless they specify widths/heights | ||
| 836 | bigger than the current window). | ||
| 837 | |||
| 838 | --- | ||
| 839 | *** The 'w' command on links is now 'shr-maybe-probe-and-copy-url'. | ||
| 840 | 'shr-copy-url' now only copies the url at point; users who wish to | ||
| 841 | avoid accidentally accessing remote links may rebind 'w' and 'u' in | ||
| 842 | 'eww-link-keymap' to it. | ||
| 843 | |||
| 844 | |||
| 845 | ** Ido | ||
| 846 | |||
| 847 | --- | ||
| 848 | *** The commands 'find-alternate-file-other-window', | ||
| 849 | 'dired-other-window', 'dired-other-frame', and | ||
| 850 | 'display-buffer-other-window' are now remapped to Ido equivalents if | ||
| 851 | Ido mode is active. | ||
| 852 | |||
| 853 | ** Images | ||
| 854 | |||
| 855 | +++ | ||
| 856 | *** Images are automatically scaled before displaying based on the | ||
| 857 | 'image-scaling-factor' variable (if Emacs supports scaling the images | ||
| 858 | in question). | ||
| 859 | |||
| 860 | +++ | ||
| 861 | *** It's now possible to specify aspect-ratio preserving combinations | ||
| 862 | of :width/:max-height and :height/:max-width keywords. In either | ||
| 863 | case, the "max" keywords win. (Previously some combinations would, | ||
| 864 | depending on the aspect ratio of the image, just be ignored and in | ||
| 865 | other instances this would lead to the aspect ratio not being | ||
| 866 | preserved.) | ||
| 867 | |||
| 868 | +++ | ||
| 869 | *** Images inserted with 'insert-image' and related functions get a | ||
| 870 | keymap put into the text properties (or overlays) that span the | ||
| 871 | image. This keymap binds keystrokes for manipulating size and | ||
| 872 | rotation, as well as saving the image to a file. These commands are | ||
| 873 | also available in 'image-mode'. | ||
| 874 | |||
| 875 | +++ | ||
| 876 | *** A new library for creating and manipulating SVG images has been | ||
| 877 | added. See the "SVG Images" section in the Lisp reference manual for | ||
| 878 | details. | ||
| 879 | |||
| 880 | +++ | ||
| 881 | *** New setf-able function to access and set image parameters is | ||
| 882 | provided: 'image-property'. | ||
| 883 | |||
| 884 | --- | ||
| 885 | *** New commands 'image-scroll-left' and 'image-scroll-right' | ||
| 886 | for 'image-mode' that complement 'image-scroll-up' and | ||
| 887 | 'image-scroll-down': they have the same prefix arg behavior and stop | ||
| 888 | at image boundaries. | ||
| 889 | |||
| 890 | ** Image-Dired | ||
| 891 | |||
| 892 | --- | ||
| 893 | *** Now provides a minor mode 'image-dired-minor-mode' which replaces | ||
| 894 | the function 'image-dired-setup-dired-keybindings'. | ||
| 895 | |||
| 896 | --- | ||
| 897 | *** Thumbnail generation is now asynchronous. | ||
| 898 | The number of concurrent processes is limited by the variable | ||
| 899 | 'image-dired-thumb-job-limit'. | ||
| 900 | |||
| 901 | --- | ||
| 902 | *** 'image-dired-thumbnail-storage' has a new option 'standard-large' | ||
| 903 | for generating 256x256 thumbnails according to the Thumbnail Managing | ||
| 904 | Standard. | ||
| 905 | |||
| 906 | --- | ||
| 907 | *** Inherits movement keys from 'image-mode' for viewing full images. | ||
| 908 | This includes the usual char, line, and page movement commands. | ||
| 909 | |||
| 910 | --- | ||
| 911 | *** All the -options types have been changed to argument lists | ||
| 912 | instead of shell command strings. This change affects | ||
| 913 | 'image-dired-cmd-create-thumbnail-options', | ||
| 914 | 'image-dired-cmd-create-temp-image-options', | ||
| 915 | 'image-dired-cmd-rotate-thumbnail-options', | ||
| 916 | 'image-dired-cmd-rotate-original-options', | ||
| 917 | 'image-dired-cmd-write-exif-data-options', | ||
| 918 | 'image-dired-cmd-read-exif-data-options', and introduces | ||
| 919 | 'image-dired-cmd-pngnq-options', 'image-dired-cmd-pngcrush-options', | ||
| 920 | 'image-dired-cmd-create-standard-thumbnail-options' | ||
| 921 | |||
| 922 | --- | ||
| 923 | *** Recognizes more tools by default, including pngnq-s9 and OptiPNG | ||
| 924 | |||
| 925 | --- | ||
| 926 | *** 'find-file' and related commands now work on thumbnails and | ||
| 927 | displayed images, providing a default argument of the original file name | ||
| 928 | via an addition to 'file-name-at-point-functions'. | ||
| 929 | |||
| 930 | --- | ||
| 931 | ** The default 'Info-default-directory-list' no longer checks some obsolete | ||
| 932 | directory suffixes (gnu, gnu/lib, gnu/lib/emacs, emacs, lib, lib/emacs) | ||
| 933 | when searching for info directories. | ||
| 934 | |||
| 935 | +++ | ||
| 936 | ** The commands that add ChangeLog entries now prefer a VCS root directory | ||
| 937 | for the ChangeLog file, if none already exists. Customize | ||
| 938 | 'change-log-directory-files' to nil for the old behavior. | ||
| 939 | |||
| 940 | --- | ||
| 941 | ** Support for non-string values of 'time-stamp-format' has been removed. | ||
| 942 | |||
| 943 | ** Message | ||
| 944 | |||
| 945 | --- | ||
| 946 | *** 'message-use-idna' now defaults to t (because Emacs comes with | ||
| 947 | built-in IDNA support now). | ||
| 948 | |||
| 949 | --- | ||
| 950 | *** When sending HTML messages with embedded images, and you have | ||
| 951 | exiftool installed, and you rotate images with EXIF data (i.e., | ||
| 952 | JPEGs), the rotational information will be inserted into the outgoing | ||
| 953 | image in the message. (The original image will not have its | ||
| 954 | orientation affected.) | ||
| 955 | |||
| 956 | --- | ||
| 957 | *** The 'message-valid-fqdn-regexp' variable has been removed, since | ||
| 958 | there are now top-level domains added all the time. Message will no | ||
| 959 | longer warn about sending emails to top-level domains it hasn't heard | ||
| 960 | about. | ||
| 961 | |||
| 962 | *** 'message-beginning-of-line' (bound to C-a) understands folded headers. | ||
| 963 | In 'visual-line-mode' it will look for the true beginning of a header | ||
| 964 | while in non-'visual-line-mode' it will move the point to the indented | ||
| 965 | header's value. | ||
| 966 | |||
| 967 | ** Package | ||
| 968 | |||
| 969 | +++ | ||
| 970 | *** The new variable 'package-gnupghome-dir' has been added to control | ||
| 971 | where the GnuPG home directory (used for signature verification) is | ||
| 972 | located and whether GnuPG's option "--homedir" is used or not. | ||
| 973 | |||
| 974 | --- | ||
| 975 | *** Deleting a package no longer respects 'delete-by-moving-to-trash'. | ||
| 976 | |||
| 977 | ** Tramp | ||
| 978 | |||
| 979 | +++ | ||
| 980 | *** The method part of remote file names is mandatory now. | ||
| 981 | A valid remote file name starts with "/method:host:" or | ||
| 982 | "/method:user@host:". | ||
| 983 | |||
| 984 | +++ | ||
| 985 | *** The new pseudo method "-" is a marker for the default method. | ||
| 986 | "/-::" is the shortest remote file name then. | ||
| 987 | |||
| 988 | +++ | ||
| 989 | *** The command 'tramp-change-syntax' allows to choose an alternative | ||
| 990 | remote file name syntax. | ||
| 991 | |||
| 992 | +++ | ||
| 993 | *** New connection method "sg", which supports editing files under a | ||
| 994 | different group ID. | ||
| 995 | |||
| 996 | +++ | ||
| 997 | *** New connection method "doas" for OpenBSD hosts. | ||
| 998 | |||
| 999 | +++ | ||
| 1000 | *** New connection method "gdrive", which allows to access Google | ||
| 1001 | Drive onsite repositories. | ||
| 1002 | |||
| 1003 | +++ | ||
| 1004 | *** Gateway methods in Tramp have been removed. | ||
| 1005 | Instead, the Tramp manual documents how to configure ssh and PuTTY | ||
| 1006 | accordingly. | ||
| 1007 | |||
| 1008 | +++ | ||
| 1009 | *** Setting the "ENV" environment variable in | ||
| 1010 | 'tramp-remote-process-environment' enables reading of shell | ||
| 1011 | initialization files. | ||
| 1012 | |||
| 1013 | --- | ||
| 1014 | *** Tramp is able now to send SIGINT to remote asynchronous processes. | ||
| 1015 | |||
| 1016 | --- | ||
| 1017 | *** Variable 'tramp-completion-mode' is obsoleted. | ||
| 1018 | |||
| 1019 | --- | ||
| 1020 | ** 'auto-revert-use-notify' is set back to t in 'global-auto-revert-mode'. | ||
| 1021 | |||
| 1022 | ** JS mode | ||
| 1023 | |||
| 1024 | --- | ||
| 1025 | *** JS mode now sets 'comment-multi-line' to t. | ||
| 1026 | |||
| 1027 | --- | ||
| 1028 | *** New variable 'js-indent-align-list-continuation', when set to nil, | ||
| 1029 | will not align continuations of bracketed lists, but will indent them | ||
| 1030 | by the fixed width 'js-indent-level'. | ||
| 1031 | |||
| 1032 | ** CSS mode | ||
| 1033 | |||
| 1034 | --- | ||
| 1035 | *** Support for completing attribute values, at-rules, bang-rules, | ||
| 1036 | HTML tags, classes and IDs using the 'completion-at-point' command. | ||
| 1037 | Completion candidates for HTML classes and IDs are retrieved from open | ||
| 1038 | HTML mode buffers. | ||
| 1039 | |||
| 1040 | --- | ||
| 1041 | *** CSS mode now binds 'C-h S' to a function that will show | ||
| 1042 | information about a CSS construct (an at-rule, property, pseudo-class, | ||
| 1043 | pseudo-element, with the default being guessed from context). By | ||
| 1044 | default the information is looked up on the Mozilla Developer Network, | ||
| 1045 | but this can be customized using 'css-lookup-url-format'. | ||
| 1046 | |||
| 1047 | --- | ||
| 1048 | *** CSS colors are fontified using the color they represent as the | ||
| 1049 | background. For instance, #ff0000 would be fontified with a red | ||
| 1050 | background. | ||
| 1051 | |||
| 1052 | +++ | ||
| 1053 | ** Emacs now supports character name escape sequences in character and | ||
| 1054 | string literals. The syntax variants \N{character name} and | ||
| 1055 | \N{U+code} are supported. | ||
| 1056 | |||
| 1057 | +++ | ||
| 1058 | ** Prog mode has some support for multi-mode indentation. | ||
| 1059 | This allows better indentation support in modes that support multiple | ||
| 1060 | programming languages in the same buffer, like literate programming | ||
| 1061 | environments or ANTLR programs with embedded Python code. | ||
| 1062 | |||
| 1063 | A major mode can provide indentation context for a sub-mode through | ||
| 1064 | the 'prog-indentation-context' variable. To support this, modes that | ||
| 1065 | provide indentation should use 'prog-widen' instead of 'widen' and | ||
| 1066 | 'prog-first-column' instead of a literal zero. See the node | ||
| 1067 | "Mode-Specific Indent" in the ELisp manual for more details. | ||
| 1068 | |||
| 1069 | ** ERC | ||
| 1070 | |||
| 1071 | --- | ||
| 1072 | *** New variable 'erc-default-port-tls' used to connect to TLS IRC | ||
| 1073 | servers. | ||
| 1074 | |||
| 1075 | ** URL | ||
| 1076 | |||
| 1077 | +++ | ||
| 1078 | *** The new function 'url-cookie-delete-cookie' can be used to | ||
| 1079 | programmatically delete all cookies, or cookies from a specific | ||
| 1080 | domain. | ||
| 1081 | |||
| 1082 | +++ | ||
| 1083 | *** 'url-retrieve-synchronously' now takes an optional timeout parameter. | ||
| 1084 | |||
| 1085 | --- | ||
| 1086 | *** The URL package now support HTTPS over proxies supporting CONNECT. | ||
| 1087 | |||
| 1088 | +++ | ||
| 1089 | *** 'url-user-agent' now defaults to 'default', and the User-Agent | ||
| 1090 | string is computed dynamically based on 'url-privacy-level'. | ||
| 1091 | |||
| 1092 | ** VC and related modes | ||
| 1093 | |||
| 1094 | --- | ||
| 1095 | *** The VC state indicator in the mode line now defaults to more | ||
| 1096 | colorful faces to make it more obvious to the user what the state is. | ||
| 1097 | See the 'vc-faces' customization group. | ||
| 1098 | |||
| 1099 | +++ | ||
| 1100 | *** 'vc-dir-mode' now binds 'vc-log-outgoing' to 'O'; and has various | ||
| 1101 | branch-related commands on a keymap bound to 'B'. | ||
| 1102 | |||
| 1103 | ** CC mode | ||
| 1104 | |||
| 1105 | --- | ||
| 1106 | *** Opening a .h file will turn C or C++ mode depending on language used. | ||
| 1107 | This is done with the help of 'c-or-c++-mode' function which analyses | ||
| 1108 | contents of the buffer to determine whether it's a C or C++ source | ||
| 1109 | file. | ||
| 1110 | |||
| 1111 | --- | ||
| 1112 | ** New DNS mode command 'dns-mode-ipv6-to-nibbles' to convert IPv6 addresses | ||
| 1113 | to a format suitable for reverse lookup zone files. | ||
| 1114 | |||
| 1115 | ** Ispell | ||
| 1116 | |||
| 1117 | +++ | ||
| 1118 | *** Enchant is now supported as a spell-checker. | ||
| 1119 | |||
| 1120 | Enchant is a meta-spell-checker that uses providers | ||
| 1121 | such as Hunspell to do the actual checking. With it, users can use | ||
| 1122 | spell-checkers not directly supported by Emacs, such as Voikko, Hspell | ||
| 1123 | and AppleSpell, more easily share personal word-lists with other | ||
| 1124 | programs, and configure different spelling-checkers for different | ||
| 1125 | languages. (Version 2.1.0 or later of Enchant is required.) | ||
| 1126 | |||
| 1127 | ** Flymake | ||
| 1128 | |||
| 1129 | +++ | ||
| 1130 | *** Emacs no longer prompts the user before killing Flymake processes on exit. | ||
| 1131 | |||
| 1132 | |||
| 1133 | * New Modes and Packages in Emacs 26.1 | ||
| 1134 | |||
| 1135 | ** New Elisp data-structure library 'radix-tree'. | ||
| 1136 | |||
| 1137 | ** New library 'xdg' with utilities for some XDG standards and specs. | ||
| 1138 | |||
| 1139 | ** HTML | ||
| 1140 | |||
| 1141 | +++ | ||
| 1142 | *** A new submode of 'html-mode', 'mhtml-mode', is now the default | ||
| 1143 | mode for *.html files. This mode handles indentation, | ||
| 1144 | fontification, and commenting for embedded JavaScript and CSS. | ||
| 1145 | |||
| 1146 | ** New mode 'conf-toml-mode' is a sub-mode of conf-mode, specialized | ||
| 1147 | for editing TOML files. | ||
| 1148 | |||
| 1149 | ** New mode 'conf-desktop-mode' is a sub-mode of conf-unix-mode, | ||
| 1150 | specialized for editing freedesktop.org desktop entries. | ||
| 1151 | |||
| 1152 | ** New minor mode 'pixel-scroll-mode' provides smooth pixel-level scrolling. | ||
| 1153 | |||
| 1154 | ** New major mode 'less-css-mode' (a minor variant of 'css-mode') for | ||
| 1155 | editing Less files. | ||
| 1156 | |||
| 1157 | |||
| 1158 | * Incompatible Lisp Changes in Emacs 26.1 | ||
| 1159 | |||
| 1160 | --- | ||
| 1161 | *** password-data is now a hash-table | ||
| 1162 | so that `password-read' can use any object for the `key' argument. | ||
| 1163 | |||
| 1164 | +++ | ||
| 1165 | *** Command 'dired-mark-extension' now automatically prepends a '.' to the | ||
| 1166 | extension when not present. The new command 'dired-mark-suffix' behaves | ||
| 1167 | similarly but it doesn't prepend a '.'. | ||
| 1168 | |||
| 1169 | +++ | ||
| 1170 | ** Certain cond/pcase/cl-case forms are now compiled using a faster jump | ||
| 1171 | table implementation. This uses a new bytecode op 'switch', which | ||
| 1172 | isn't compatible with previous Emacs versions. This functionality can | ||
| 1173 | be disabled by setting 'byte-compile-cond-use-jump-table' to nil. | ||
| 1174 | |||
| 1175 | --- | ||
| 1176 | ** The alist 'ucs-names' is now a hash table. | ||
| 1177 | |||
| 1178 | --- | ||
| 1179 | ** 'if-let' and 'when-let' are subsumed by 'if-let*' and 'when-let*'. | ||
| 1180 | The incumbent 'if-let' and 'when-let' are now marked obsolete. | ||
| 1181 | 'if-let*' and 'when-let*' do not accept the single tuple special case. | ||
| 1182 | New macro 'and-let*' is an implementation of the Scheme SRFI-2 syntax | ||
| 1183 | of the same name. 'if-let*' and 'when-let*' now accept the same | ||
| 1184 | binding syntax as 'and-let*'. | ||
| 1185 | |||
| 1186 | --- | ||
| 1187 | ** 'C-up', 'C-down', 'C-left' and 'C-right' are now defined in term | ||
| 1188 | mode to send the same escape sequences that xterm does. This makes | ||
| 1189 | things like forward-word in readline work. | ||
| 1190 | |||
| 1191 | --- | ||
| 1192 | ** hideshow mode got four key bindings that are analogous to outline | ||
| 1193 | mode bindings: 'C-c @ C-a', 'C-c @ C-t', 'C-c @ C-d', and 'C-c @ C-e.' | ||
| 1194 | |||
| 1195 | --- | ||
| 1196 | ** Customizable variable 'query-replace-from-to-separator' | ||
| 1197 | now doesn't propertize the string value of the separator. | ||
| 1198 | Instead, text properties are added by query-replace-read-from. | ||
| 1199 | Additionally, the new nil value restores pre-24.5 behavior | ||
| 1200 | of not providing replacement pairs via the history. | ||
| 1201 | |||
| 1202 | --- | ||
| 1203 | ** Some obsolete functions, variables, and faces have been removed: | ||
| 1204 | *** make-variable-frame-local. Variables cannot be frame-local any more. | ||
| 1205 | *** From subr.el: window-dot, set-window-dot, read-input, show-buffer, | ||
| 1206 | eval-current-buffer, string-to-int | ||
| 1207 | *** icomplete-prospects-length. | ||
| 1208 | *** All the default-FOO variables that hold the default value of the | ||
| 1209 | FOO variable. Use 'default-value' and 'setq-default' to access and | ||
| 1210 | change FOO, respectively. The exhaustive list of removed variables is: | ||
| 1211 | 'default-mode-line-format', 'default-header-line-format', | ||
| 1212 | 'default-line-spacing', 'default-abbrev-mode', 'default-ctl-arrow', | ||
| 1213 | 'default-truncate-lines', 'default-left-margin', 'default-tab-width', | ||
| 1214 | 'default-case-fold-search', 'default-left-margin-width', | ||
| 1215 | 'default-right-margin-width', 'default-left-fringe-width', | ||
| 1216 | 'default-right-fringe-width', 'default-fringes-outside-margins', | ||
| 1217 | 'default-scroll-bar-width', 'default-vertical-scroll-bar', | ||
| 1218 | 'default-indicate-empty-lines', 'default-indicate-buffer-boundaries', | ||
| 1219 | 'default-fringe-indicator-alist', 'default-fringe-cursor-alist', | ||
| 1220 | 'default-scroll-up-aggressively', 'default-scroll-down-aggressively', | ||
| 1221 | 'default-fill-column', 'default-cursor-type', | ||
| 1222 | 'default-cursor-in-non-selected-windows', | ||
| 1223 | 'default-buffer-file-coding-system', 'default-major-mode', and | ||
| 1224 | 'default-enable-multibyte-characters'. | ||
| 1225 | *** Many variables obsoleted in 22.1 referring to face symbols | ||
| 1226 | |||
| 1227 | +++ | ||
| 1228 | ** The variable 'text-quoting-style' no longer affects the treatment | ||
| 1229 | of curved quotes in format arguments to functions like 'message' and | ||
| 1230 | 'format-message'. In particular, when this variable's value is | ||
| 1231 | 'grave', all quotes in formats are output as-is. | ||
| 1232 | |||
| 1233 | --- | ||
| 1234 | ** Functions like 'check-declare-file' and 'check-declare-directory' | ||
| 1235 | now generate less chatter and more-compact diagnostics. The auxiliary | ||
| 1236 | function 'check-declare-errmsg' has been removed. | ||
| 1237 | |||
| 1238 | +++ | ||
| 1239 | ** The regular expression character class [:blank:] now matches | ||
| 1240 | Unicode horizontal whitespace as defined in the Unicode Technical | ||
| 1241 | Standard #18. If you only want to match space and tab, use [ \t] | ||
| 1242 | instead. | ||
| 1243 | |||
| 1244 | +++ | ||
| 1245 | ** 'min' and 'max' no longer round their results. | ||
| 1246 | Formerly, they returned a floating-point value if any argument was | ||
| 1247 | floating-point, which was sometimes numerically incorrect. For | ||
| 1248 | example, on a 64-bit host (max 1e16 10000000000000001) now returns its | ||
| 1249 | second argument instead of its first. | ||
| 1250 | |||
| 1251 | +++ | ||
| 1252 | ** The variable 'old-style-backquotes' has been made internal and | ||
| 1253 | renamed to 'lread--old-style-backquotes'. No user code should use | ||
| 1254 | this variable. | ||
| 1255 | |||
| 1256 | --- | ||
| 1257 | ** To avoid confusion caused by "smart quotes", the reader no longer | ||
| 1258 | accepts Lisp symbols which begin with the following quotation | ||
| 1259 | characters: ‘’‛“”‟〞"', unless they are escaped with backslash. | ||
| 1260 | |||
| 1261 | +++ | ||
| 1262 | ** 'default-file-name-coding-system' now defaults to a coding system | ||
| 1263 | that does not process CRLF. For example, it defaults to utf-8-unix | ||
| 1264 | instead of to utf-8. Before this change, Emacs would sometimes | ||
| 1265 | mishandle file names containing these control characters. | ||
| 1266 | |||
| 1267 | +++ | ||
| 1268 | ** 'file-attributes', 'file-symlink-p' and 'make-symbolic-link' no | ||
| 1269 | longer quietly mutate the target of a local symbolic link, so that | ||
| 1270 | Emacs can access and copy them reliably regardless of their contents. | ||
| 1271 | The following changes are involved. | ||
| 1272 | |||
| 1273 | --- | ||
| 1274 | *** 'file-attributes' and 'file-symlink-p' no longer prepend "/:" to | ||
| 1275 | symbolic links whose targets begin with "/" and contain ":". For | ||
| 1276 | example, if a symbolic link "x" has a target "/y:z:", '(file-symlink-p | ||
| 1277 | "x")' now returns "/y:z:" rather than "/:/y:z:". | ||
| 1278 | |||
| 1279 | --- | ||
| 1280 | *** 'make-symbolic-link' no longer looks for file name handlers of | ||
| 1281 | target when creating a symbolic link. For example, | ||
| 1282 | '(make-symbolic-link "/y:z:" "x")' now creates a symbolic link to | ||
| 1283 | "/y:z:" instead of failing. | ||
| 1284 | |||
| 1285 | +++ | ||
| 1286 | *** 'make-symbolic-link' removes the remote part of a link target if | ||
| 1287 | target and newname have the same remote part. For example, | ||
| 1288 | '(make-symbolic-link "/x:y:a" "/x:y:b")' creates a link with the | ||
| 1289 | literal string "a"; and '(make-symbolic-link "/x:y:a" "/x:z:b")' | ||
| 1290 | creates a link with the literal string "/x:y:a" instead of failing. | ||
| 1291 | |||
| 1292 | +++ | ||
| 1293 | *** 'make-symbolic-link' now expands a link target with leading "~" | ||
| 1294 | only when the optional third arg is an integer, as when invoked | ||
| 1295 | interactively. For example, '(make-symbolic-link "~y" "x")' now | ||
| 1296 | creates a link with target the literal string "~y"; to get the old | ||
| 1297 | behavior, use '(make-symbolic-link (expand-file-name "~y") "x")'. To | ||
| 1298 | avoid this expansion in interactive use, you can now prefix the link | ||
| 1299 | target with "/:". For example, '(make-symbolic-link "/:~y" "x" 1)' | ||
| 1300 | now creates a link to literal "~y". | ||
| 1301 | |||
| 1302 | +++ | ||
| 1303 | ** 'file-truename' returns a quoted file name if the target of a | ||
| 1304 | symbolic link has remote file name syntax. | ||
| 1305 | |||
| 1306 | +++ | ||
| 1307 | ** Module functions are now implemented slightly differently; in | ||
| 1308 | particular, the function 'internal--module-call' has been removed. | ||
| 1309 | Code that depends on undocumented internals of the module system might | ||
| 1310 | break. | ||
| 1311 | |||
| 1312 | --- | ||
| 1313 | ** The argument LOCKNAME of 'write-region' is propagated to file name | ||
| 1314 | handlers now. | ||
| 1315 | |||
| 1316 | --- | ||
| 1317 | ** When built against recent versions of GTK+, Emacs always uses | ||
| 1318 | gtk_window_move for moving frames and ignores the value of the | ||
| 1319 | variable 'x-gtk-use-window-move'. The variable is now obsolete. | ||
| 1320 | |||
| 1321 | +++ | ||
| 1322 | ** Several functions that create or rename files now treat their | ||
| 1323 | destination argument specially only when it is a directory name, i.e., | ||
| 1324 | when it ends in '/' on GNU and other POSIX-like systems. When the | ||
| 1325 | destination argument D of one of these functions is an existing | ||
| 1326 | directory and the intent is to act on an entry in that directory, D | ||
| 1327 | should now be a directory name. For example, (rename-file "e" "f/") | ||
| 1328 | renames to 'f/e'. Although this formerly happened sometimes even when | ||
| 1329 | D was not a directory name, as in (rename-file "e" "f") where 'f' | ||
| 1330 | happened to be a directory, the old behavior often contradicted the | ||
| 1331 | documentation and had inherent races that led to security holes. A | ||
| 1332 | call like (rename-file C D) that used the old, undocumented behavior | ||
| 1333 | can be written as (rename-file C (file-name-as-directory D)), a | ||
| 1334 | formulation portable to both older and newer versions of Emacs. | ||
| 1335 | Affected functions include add-name-to-file, copy-directory, | ||
| 1336 | copy-file, format-write-file, gnus-copy-file, make-symbolic-link, | ||
| 1337 | rename-file, thumbs-rename-images, and write-file. | ||
| 1338 | |||
| 1339 | --- | ||
| 1340 | ** The list returned by 'overlays-at' is now in decreasing priority order. | ||
| 1341 | The documentation of this function always said the order should be | ||
| 1342 | that of decreasing priority, if the 2nd argument of the function is | ||
| 1343 | non-nil, but the code returned the list in the increasing order of | ||
| 1344 | priority instead. Now the code does what the documentation says it | ||
| 1345 | should do. | ||
| 1346 | |||
| 1347 | |||
| 1348 | * Lisp Changes in Emacs 26.1 | ||
| 1349 | |||
| 1350 | +++ | ||
| 1351 | ** The function 'assoc' now takes an optional third argument TESTFN. | ||
| 1352 | This argument, when non-nil, is used for comparison instead of | ||
| 1353 | 'equal'. | ||
| 1354 | |||
| 1355 | +++ | ||
| 1356 | ** New optional argument TESTFN in 'alist-get', 'map-elt' and 'map-put'. | ||
| 1357 | If non-nil, the argument specifies a function to use for comparison, | ||
| 1358 | instead of, respectively, 'assq' and 'eql'. | ||
| 1359 | |||
| 1360 | +++ | ||
| 1361 | ** New function 'seq-set-equal-p' to check if SEQUENCE1 and SEQUENCE2 | ||
| 1362 | contain the same elements, regardless of the order. | ||
| 1363 | |||
| 1364 | +++ | ||
| 1365 | ** The new function 'mapbacktrace' applies a function to all frames of | ||
| 1366 | the current stack trace. | ||
| 1367 | |||
| 1368 | +++ | ||
| 1369 | ** The new function 'file-name-case-insensitive-p' tests whether a | ||
| 1370 | given file is on a case-insensitive filesystem. | ||
| 1371 | |||
| 1372 | +++ | ||
| 1373 | ** Several accessors for the value returned by 'file-attributes' | ||
| 1374 | have been added. They are: 'file-attribute-type', | ||
| 1375 | 'file-attribute-link-number', 'file-attribute-user-id', | ||
| 1376 | 'file-attribute-group-id', 'file-attribute-access-time', | ||
| 1377 | 'file-attribute-modification-time', | ||
| 1378 | 'file-attribute-status-change-time', 'file-attribute-size', | ||
| 1379 | 'file-attribute-modes', 'file-attribute-inode-number', | ||
| 1380 | 'file-attribute-device-number' and 'file-attribute-collect'. | ||
| 1381 | |||
| 1382 | +++ | ||
| 1383 | ** The new function 'buffer-hash' computes a fast, non-consing hash of | ||
| 1384 | a buffer's contents. | ||
| 1385 | |||
| 1386 | +++ | ||
| 1387 | ** 'interrupt-process' now consults the list 'interrupt-process-functions', | ||
| 1388 | to determine which function has to be called in order to deliver the | ||
| 1389 | SIGINT signal. This allows Tramp to send the SIGINT signal to remote | ||
| 1390 | asynchronous processes. The hitherto existing implementation has been | ||
| 1391 | moved to 'internal-default-interrupt-process'. | ||
| 1392 | |||
| 1393 | +++ | ||
| 1394 | ** The new function 'read-multiple-choice' prompts for multiple-choice | ||
| 1395 | questions, with a handy way to display help texts. | ||
| 1396 | |||
| 1397 | --- | ||
| 1398 | ** 'comment-indent-function' values may now return a cons to specify a | ||
| 1399 | range of indentation. | ||
| 1400 | |||
| 1401 | +++ | ||
| 1402 | ** New optional argument TEXT in 'make-temp-file'. | ||
| 1403 | |||
| 1404 | --- | ||
| 1405 | ** New function `define-symbol-prop'. | ||
| 1406 | |||
| 1407 | ** Checksum/Hash | ||
| 1408 | |||
| 1409 | +++ | ||
| 1410 | ** New function 'secure-hash-algorithms' to list the algorithms that | ||
| 1411 | 'secure-hash' supports. | ||
| 1412 | See the node "(elisp) Checksum/Hash" in the ELisp manual for details. | ||
| 1413 | |||
| 1414 | +++ | ||
| 1415 | ** Emacs now exposes the GnuTLS cryptographic API with the functions | ||
| 1416 | 'gnutls-macs' and 'gnutls-hash-mac'; 'gnutls-digests' and | ||
| 1417 | 'gnutls-hash-digest'; 'gnutls-ciphers' and 'gnutls-symmetric-encrypt' | ||
| 1418 | and 'gnutls-symmetric-decrypt'. | ||
| 1419 | See the node "(elisp) GnuTLS Cryptography" in the ELisp manual for details. | ||
| 1420 | |||
| 1421 | +++ | ||
| 1422 | ** Emacs now supports records for user-defined types, via the new | ||
| 1423 | functions 'make-record', 'record', and 'recordp'. Records are now | ||
| 1424 | used internally to represent cl-defstruct and defclass instances, for | ||
| 1425 | example. | ||
| 1426 | |||
| 1427 | +++ | ||
| 1428 | ** 'save-some-buffers' now uses 'save-some-buffers-default-predicate' | ||
| 1429 | to decide which buffers to ask about, if the PRED argument is nil. | ||
| 1430 | The default value of 'save-some-buffers-default-predicate' is nil, | ||
| 1431 | which means ask about all file-visiting buffers. | ||
| 1432 | |||
| 1433 | --- | ||
| 1434 | ** string-(to|as|make)-(uni|multi)byte are now declared obsolete. | ||
| 1435 | |||
| 1436 | +++ | ||
| 1437 | ** New variable 'while-no-input-ignore-events' which allow | ||
| 1438 | setting which special events 'while-no-input' should ignore. | ||
| 1439 | It is a list of symbols. | ||
| 1440 | |||
| 1441 | --- | ||
| 1442 | ** New function 'undo-amalgamate-change-group' to get rid of | ||
| 1443 | undo-boundaries between two states. | ||
| 1444 | |||
| 1445 | --- | ||
| 1446 | ** New var 'definition-prefixes' is a hash table mapping prefixes to | ||
| 1447 | the files where corresponding definitions can be found. This can be | ||
| 1448 | used to fetch definitions that are not yet loaded, for example for | ||
| 1449 | 'C-h f'. | ||
| 1450 | |||
| 1451 | --- | ||
| 1452 | ** New var 'syntax-ppss-table' to control the syntax-table used in | ||
| 1453 | 'syntax-ppss'. | ||
| 1454 | |||
| 1455 | +++ | ||
| 1456 | ** 'define-derived-mode' can now specify an :after-hook form, which | ||
| 1457 | gets evaluated after the new mode's hook has run. This can be used to | ||
| 1458 | incorporate configuration changes made in the mode hook into the | ||
| 1459 | mode's setup. | ||
| 1460 | |||
| 1461 | --- | ||
| 1462 | ** Autoload files can be generated without timestamps, | ||
| 1463 | by setting 'autoload-timestamps' to nil. | ||
| 1464 | FIXME As an experiment, nil is the current default. | ||
| 1465 | If no insurmountable problems before next release, it can stay that way. | ||
| 1466 | |||
| 1467 | --- | ||
| 1468 | ** 'gnutls-boot' now takes a parameter ':complete-negotiation' that | ||
| 1469 | says that negotiation should complete even on non-blocking sockets. | ||
| 1470 | |||
| 1471 | --- | ||
| 1472 | ** There is now a new variable 'flyspell-sort-corrections-function' | ||
| 1473 | that allows changing the way corrections are sorted. | ||
| 1474 | |||
| 1475 | --- | ||
| 1476 | ** The new command 'fortune-message' has been added, which displays | ||
| 1477 | fortunes in the echo area. | ||
| 1478 | |||
| 1479 | +++ | ||
| 1480 | ** New function 'func-arity' returns information about the argument list | ||
| 1481 | of an arbitrary function. This generalizes 'subr-arity' for functions | ||
| 1482 | that are not built-in primitives. We recommend using this new | ||
| 1483 | function instead of 'subr-arity'. | ||
| 1484 | |||
| 1485 | --- | ||
| 1486 | ** New function 'region-bounds' can be used in the interactive spec | ||
| 1487 | to provide region boundaries (for rectangular regions more than one) | ||
| 1488 | to an interactively callable function as a single argument instead of | ||
| 1489 | two separate arguments region-beginning and region-end. | ||
| 1490 | |||
| 1491 | +++ | ||
| 1492 | ** 'parse-partial-sexp' state has a new element. Element 10 is | ||
| 1493 | non-nil when the last character scanned might be the first character | ||
| 1494 | of a two character construct, i.e., a comment delimiter or escaped | ||
| 1495 | character. Its value is the syntax of that last character. | ||
| 1496 | |||
| 1497 | +++ | ||
| 1498 | ** 'parse-partial-sexp's state, element 9, has now been confirmed as | ||
| 1499 | permanent and documented, and may be used by Lisp programs. Its value | ||
| 1500 | is a list of currently open parenthesis positions, starting with the | ||
| 1501 | outermost parenthesis. | ||
| 1502 | |||
| 1503 | --- | ||
| 1504 | ** 'read-color' will now display the color names using the color itself | ||
| 1505 | as the background color. | ||
| 1506 | |||
| 1507 | --- | ||
| 1508 | ** The function 'redirect-debugging-output' now works on platforms | ||
| 1509 | other than GNU/Linux. | ||
| 1510 | |||
| 1511 | +++ | ||
| 1512 | ** The new function 'string-version-lessp' compares strings by | ||
| 1513 | interpreting consecutive runs of numerical characters as numbers, and | ||
| 1514 | compares their numerical values. According to this predicate, | ||
| 1515 | "foo2.png" is smaller than "foo12.png". | ||
| 1516 | |||
| 1517 | --- | ||
| 1518 | ** Numeric comparisons and 'logb' no longer return incorrect answers | ||
| 1519 | due to internal rounding errors. For example, (< most-positive-fixnum | ||
| 1520 | (+ 1.0 most-positive-fixnum)) now correctly returns t on 64-bit hosts. | ||
| 1521 | |||
| 1522 | --- | ||
| 1523 | ** The functions 'ffloor', 'fceiling', 'ftruncate' and 'fround' now | ||
| 1524 | accept only floating-point arguments, as per their documentation. | ||
| 1525 | Formerly, they quietly accepted integer arguments and sometimes | ||
| 1526 | returned nonsensical answers, e.g., (< N (ffloor N)) could return t. | ||
| 1527 | |||
| 1528 | --- | ||
| 1529 | ** On hosts like GNU/Linux x86-64 where a 'long double' fraction | ||
| 1530 | contains at least EMACS_INT_WIDTH - 3 bits, 'format' no longer returns | ||
| 1531 | incorrect answers due to internal rounding errors when formatting | ||
| 1532 | Emacs integers with %e, %f, or %g conversions. For example, on these | ||
| 1533 | hosts (eql N (string-to-number (format "%.0f" N))) now returns t for | ||
| 1534 | all Emacs integers N. | ||
| 1535 | |||
| 1536 | --- | ||
| 1537 | ** Calls that accept floating-point integers (for use on hosts with | ||
| 1538 | limited integer range) now signal an error if arguments are not | ||
| 1539 | integral. For example (decode-char 'ascii 0.5) now signals an error. | ||
| 1540 | |||
| 1541 | +++ | ||
| 1542 | ** The new function 'char-from-name' converts a Unicode name string | ||
| 1543 | to the corresponding character code. | ||
| 1544 | |||
| 1545 | +++ | ||
| 1546 | ** New functions 'sxhash-eq' and 'sxhash-eql' return hash codes of a | ||
| 1547 | Lisp object suitable for use with 'eq' and 'eql' correspondingly. If | ||
| 1548 | two objects are 'eq' ('eql'), then the result of 'sxhash-eq' | ||
| 1549 | ('sxhash-eql') on them will be the same. | ||
| 1550 | |||
| 1551 | +++ | ||
| 1552 | ** Function 'sxhash' has been renamed to 'sxhash-equal' for | ||
| 1553 | consistency with the new functions. For compatibility, 'sxhash' | ||
| 1554 | remains as an alias to 'sxhash-equal'. | ||
| 1555 | |||
| 1556 | +++ | ||
| 1557 | ** 'make-hash-table' now defaults to a rehash threshold of 0.8125 | ||
| 1558 | instead of 0.8, to avoid rounding glitches. | ||
| 1559 | |||
| 1560 | +++ | ||
| 1561 | ** New function 'add-variable-watcher' can be used to call a function | ||
| 1562 | when a symbol's value is changed. This is used to implement the new | ||
| 1563 | debugger command 'debug-on-variable-change'. | ||
| 1564 | |||
| 1565 | +++ | ||
| 1566 | ** Time conversion functions that accept a time zone rule argument now | ||
| 1567 | allow it to be OFFSET or a list (OFFSET ABBR), where the integer | ||
| 1568 | OFFSET is a count of seconds east of Universal Time, and the string | ||
| 1569 | ABBR is a time zone abbreviation. The affected functions are | ||
| 1570 | 'current-time-string', 'current-time-zone', 'decode-time', | ||
| 1571 | 'format-time-string', and 'set-time-zone-rule'. | ||
| 1572 | |||
| 1573 | +++ | ||
| 1574 | ** 'format-time-string' now formats "%q" to the calendar quarter. | ||
| 1575 | |||
| 1576 | +++ | ||
| 1577 | ** New built-in function 'mapcan'. | ||
| 1578 | It avoids unnecessary consing (and garbage collection). | ||
| 1579 | |||
| 1580 | +++ | ||
| 1581 | ** 'car' and 'cdr' compositions 'cXXXr' and 'cXXXXr' are now part of Elisp. | ||
| 1582 | |||
| 1583 | +++ | ||
| 1584 | ** 'gensym' is now part of Elisp. | ||
| 1585 | |||
| 1586 | --- | ||
| 1587 | ** Low-level list functions like 'length' and 'member' now do a better | ||
| 1588 | job of signaling list cycles instead of looping indefinitely. | ||
| 1589 | |||
| 1590 | +++ | ||
| 1591 | ** The new functions 'make-nearby-temp-file' and 'temporary-file-directory' | ||
| 1592 | can be used for creation of temporary files of remote or mounted directories. | ||
| 1593 | |||
| 1594 | +++ | ||
| 1595 | ** On GNU platforms when operating on a local file, 'file-attributes' | ||
| 1596 | no longer suffers from a race when called while another process is | ||
| 1597 | altering the filesystem. On non-GNU platforms 'file-attributes' | ||
| 1598 | attempts to detect the race, and returns nil if it does so. | ||
| 1599 | |||
| 1600 | +++ | ||
| 1601 | ** The new function 'file-local-name' can be used to specify arguments | ||
| 1602 | of remote processes. | ||
| 1603 | |||
| 1604 | +++ | ||
| 1605 | ** The new functions 'file-name-quote', 'file-name-unquote' and | ||
| 1606 | 'file-name-quoted-p' can be used to quote / unquote file names with | ||
| 1607 | the prefix "/:". | ||
| 1608 | |||
| 1609 | +++ | ||
| 1610 | ** The new error 'file-missing', a subcategory of 'file-error', is now | ||
| 1611 | signaled instead of 'file-error' if a file operation acts on a file | ||
| 1612 | that does not exist. | ||
| 1613 | |||
| 1614 | +++ | ||
| 1615 | ** The function 'delete-directory' no longer signals an error when | ||
| 1616 | operating recursively and when some other process deletes the directory | ||
| 1617 | or its files before 'delete-directory' gets to them. | ||
| 1618 | |||
| 1619 | +++ | ||
| 1620 | *** New error type 'user-search-failed' like 'search-failed' but | ||
| 1621 | avoids debugger like 'user-error'. | ||
| 1622 | |||
| 1623 | +++ | ||
| 1624 | ** The function 'line-number-at-pos' now takes a second optional | ||
| 1625 | argument 'absolute'. If this parameter is nil, the default, this | ||
| 1626 | function keeps on returning the line number taking potential narrowing | ||
| 1627 | into account. If this parameter is non-nil, the function ignores | ||
| 1628 | narrowing and returns the absolute line number. | ||
| 1629 | |||
| 1630 | --- | ||
| 1631 | ** The function 'color-distance' now takes a second optional argument | ||
| 1632 | 'metric'. When non-nil, it should be a function of two arguments that | ||
| 1633 | accepts two colors and returns a number. | ||
| 1634 | |||
| 1635 | ** Changes in Frame and Window Handling | ||
| 1636 | |||
| 1637 | +++ | ||
| 1638 | *** Resizing a frame no longer runs 'window-configuration-change-hook'. | ||
| 1639 | 'window-size-change-functions' should be used instead. | ||
| 1640 | |||
| 1641 | +++ | ||
| 1642 | *** The new function 'frame-size-changed-p' can tell whether a frame has | ||
| 1643 | been resized since the last time 'window-size-change-functions' has been | ||
| 1644 | run. | ||
| 1645 | |||
| 1646 | +++ | ||
| 1647 | *** The function 'frame-geometry' now also returns the width of a | ||
| 1648 | frame's outer border. | ||
| 1649 | |||
| 1650 | +++ | ||
| 1651 | *** New frame parameters and changed semantics for older ones | ||
| 1652 | |||
| 1653 | +++ | ||
| 1654 | **** 'z-group' positions a frame above or below all others. | ||
| 1655 | |||
| 1656 | +++ | ||
| 1657 | **** 'min-width' and 'min-height' specify the absolute minimum size of a | ||
| 1658 | frame. | ||
| 1659 | |||
| 1660 | +++ | ||
| 1661 | **** 'parent-frame' makes a frame the child frame of another Emacs | ||
| 1662 | frame. The section "Child Frames" in the Elisp manual describes the | ||
| 1663 | intrinsics of that relationship. | ||
| 1664 | |||
| 1665 | +++ | ||
| 1666 | **** 'delete-before' triggers deletion of one frame before that of | ||
| 1667 | another. | ||
| 1668 | |||
| 1669 | +++ | ||
| 1670 | **** 'mouse-wheel-frame' specifies another frame whose windows shall be | ||
| 1671 | scrolled instead. | ||
| 1672 | |||
| 1673 | +++ | ||
| 1674 | **** 'no-other-frame' has 'next-frame' and 'previous-frame' skip this | ||
| 1675 | frame. | ||
| 1676 | |||
| 1677 | +++ | ||
| 1678 | **** 'skip-taskbar' removes a frame's icon from the taskbar and has | ||
| 1679 | Alt-<TAB> skip this frame. | ||
| 1680 | |||
| 1681 | +++ | ||
| 1682 | **** 'no-focus-on-map' avoids that a frame gets input focus when mapped. | ||
| 1683 | |||
| 1684 | +++ | ||
| 1685 | **** 'no-accept-focus' means that a frame does not want to get input | ||
| 1686 | focus via the mouse. | ||
| 1687 | |||
| 1688 | +++ | ||
| 1689 | **** 'undecorated' removes the window manager decorations from a frame. | ||
| 1690 | |||
| 1691 | +++ | ||
| 1692 | **** 'override-redirect' tells the window manager to disregard this | ||
| 1693 | frame. | ||
| 1694 | |||
| 1695 | +++ | ||
| 1696 | **** 'width' and 'height' allow to specify pixel values and ratios now. | ||
| 1697 | |||
| 1698 | +++ | ||
| 1699 | **** 'left' and 'top' allow to specify ratios now. | ||
| 1700 | |||
| 1701 | +++ | ||
| 1702 | **** 'keep-ratio' preserves size and position of child frames when their | ||
| 1703 | parent frame is resized. | ||
| 1704 | |||
| 1705 | +++ | ||
| 1706 | **** 'no-special-glyphs' suppresses display of truncation and | ||
| 1707 | continuation glyphs in a frame. | ||
| 1708 | |||
| 1709 | +++ | ||
| 1710 | **** 'auto-hide-function' and 'minibuffer-exit' handle auto hiding of | ||
| 1711 | frames and exiting from minibuffer individually. | ||
| 1712 | |||
| 1713 | +++ | ||
| 1714 | **** 'fit-frame-to-buffer-margins' and 'fit-frame-to-buffer-sizes' | ||
| 1715 | handle fitting a frame to its buffer individually. | ||
| 1716 | |||
| 1717 | +++ | ||
| 1718 | **** 'drag-internal-border', 'drag-with-header-line', | ||
| 1719 | 'drag-with-mode-line', 'snap-width', 'top-visible' and 'bottom-visible' | ||
| 1720 | allow to drag and resize frames with the mouse. | ||
| 1721 | |||
| 1722 | *** The new function 'frame-list-z-order' returns a list of all frames | ||
| 1723 | in Z (stacking) order. | ||
| 1724 | |||
| 1725 | +++ | ||
| 1726 | *** The function 'x-focus-frame' optionally tries to not activate its | ||
| 1727 | frame. | ||
| 1728 | |||
| 1729 | +++ | ||
| 1730 | *** The variable 'focus-follows-mouse' has a third meaningful value | ||
| 1731 | 'auto-raise' to indicate that the window manager automatically raises a | ||
| 1732 | frame when the mouse pointer enters it. | ||
| 1733 | |||
| 1734 | +++ | ||
| 1735 | *** The new function 'frame-restack' puts a frame above or below | ||
| 1736 | another on the display. | ||
| 1737 | |||
| 1738 | +++ | ||
| 1739 | *** The new face 'internal-border' specifies the background of a frame's | ||
| 1740 | internal border. | ||
| 1741 | |||
| 1742 | +++ | ||
| 1743 | *** The NORECORD argument of 'select-window' now has a meaningful value | ||
| 1744 | 'mark-for-redisplay' which is like any other non-nil value but marks | ||
| 1745 | WINDOW for redisplay. | ||
| 1746 | |||
| 1747 | +++ | ||
| 1748 | *** Support for side windows is now official. | ||
| 1749 | The display action function 'display-buffer-in-side-window' will | ||
| 1750 | display its buffer in a side window. Functions for toggling all side | ||
| 1751 | windows on a frame, changing and reversing the layout of side windows | ||
| 1752 | and returning the main (major non-side) window of a frame are | ||
| 1753 | provided. For details consult the section "Side Windows" in the Elisp | ||
| 1754 | manual. | ||
| 1755 | |||
| 1756 | +++ | ||
| 1757 | *** Support for atomic windows - rectangular compositions of windows | ||
| 1758 | treated by 'split-window', 'delete-window' and 'delete-other-windows' | ||
| 1759 | like a single live window - is now official. For details consult the | ||
| 1760 | section "Atomic Windows" in the Elisp manual. | ||
| 1761 | |||
| 1762 | +++ | ||
| 1763 | *** New 'display-buffer' alist entry 'window-parameters' allows to | ||
| 1764 | assign window parameters to the window used for displaying the buffer. | ||
| 1765 | |||
| 1766 | +++ | ||
| 1767 | *** New function 'display-buffer-reuse-mode-window' is an action function | ||
| 1768 | suitable for use in 'display-buffer-alist'. For example, to avoid | ||
| 1769 | creating a new window when opening man pages when there's already one, | ||
| 1770 | use | ||
| 1771 | |||
| 1772 | (add-to-list 'display-buffer-alist | ||
| 1773 | '("\\`\\*Man .*\\*\\'" . | ||
| 1774 | (display-buffer-reuse-mode-window | ||
| 1775 | (inhibit-same-window . nil) | ||
| 1776 | (mode . Man-mode)))) | ||
| 1777 | |||
| 1778 | +++ | ||
| 1779 | *** New window parameter 'no-delete-other-windows' prevents that | ||
| 1780 | its window gets deleted by 'delete-other-windows'. | ||
| 1781 | |||
| 1782 | +++ | ||
| 1783 | *** New window parameters 'mode-line-format' and 'header-line-format' | ||
| 1784 | allow to override the buffer-local formats for this window. | ||
| 1785 | |||
| 1786 | +++ | ||
| 1787 | *** New command 'window-swap-states' swaps the states of two live | ||
| 1788 | windows. | ||
| 1789 | |||
| 1790 | +++ | ||
| 1791 | *** New functions 'window-pixel-width-before-size-change' and | ||
| 1792 | 'window-pixel-height-before-size-change' support detecting which | ||
| 1793 | window changed size when 'window-size-change-functions' are run. | ||
| 1794 | |||
| 1795 | +++ | ||
| 1796 | *** The new function 'window-lines-pixel-dimensions' returns the pixel | ||
| 1797 | dimensions of a window's text lines. | ||
| 1798 | |||
| 1799 | +++ | ||
| 1800 | *** The new function 'window-largest-empty-rectangle' returns the | ||
| 1801 | dimensions of the largest rectangular area not occupying any text in a | ||
| 1802 | window's body. | ||
| 1803 | |||
| 1804 | +++ | ||
| 1805 | *** The semantics of 'mouse-autoselect-window' has changed slightly. | ||
| 1806 | For details see the section "Mouse Window Auto-selection" in the Elisp | ||
| 1807 | manual. | ||
| 1808 | |||
| 1809 | --- | ||
| 1810 | ** 'tcl-auto-fill-mode' is now declared obsolete. Its functionality | ||
| 1811 | can be replicated simply by setting 'comment-auto-fill-only-comments'. | ||
| 1812 | |||
| 1813 | ** New pcase pattern 'rx' to match against a rx-style regular expression. | ||
| 1814 | For details, see the doc string of 'rx--pcase-macroexpander'. | ||
| 1815 | |||
| 1816 | |||
| 1817 | * Changes in Emacs 26.1 on Non-Free Operating Systems | ||
| 1818 | |||
| 1819 | +++ | ||
| 1820 | ** Intercepting hotkeys on Windows 7 and later now works better. | ||
| 1821 | The new keyboard hooking code properly grabs system hotkeys such as | ||
| 1822 | Win-* and Alt-TAB, in a way that Emacs can get at them before the | ||
| 1823 | system. This makes the 'w32-register-hot-key' functionality work | ||
| 1824 | again on all versions of MS-Windows starting with Windows 7. On | ||
| 1825 | Windows NT and later you can now register any hotkey combination. (On | ||
| 1826 | Windows 9X, the previous limitations, spelled out in the Emacs manual, | ||
| 1827 | still apply.) | ||
| 1828 | |||
| 1829 | --- | ||
| 1830 | ** 'convert-standard-filename' no longer mirrors slashes on MS-Windows. | ||
| 1831 | Previously, on MS-Windows this function converted slash characters in | ||
| 1832 | file names into backslashes. It no longer does that. If your Lisp | ||
| 1833 | program used 'convert-standard-filename' to prepare file names to be | ||
| 1834 | passed to subprocesses (which is not the recommended usage of that | ||
| 1835 | function), you will now have to mirror slashes in your application | ||
| 1836 | code. One possible way is this: | ||
| 1837 | |||
| 1838 | (let ((start 0)) | ||
| 1839 | (while (string-match "/" file-name start) | ||
| 1840 | (aset file-name (match-beginning 0) ?\\) | ||
| 1841 | (setq start (match-end 0)))) | ||
| 1842 | |||
| 1843 | --- | ||
| 1844 | ** GUI sessions on MS-Windows now treat SIGINT like Posix platforms do. | ||
| 1845 | The effect of delivering a Ctrl-C (SIGINT) signal to a GUI Emacs on | ||
| 1846 | MS-Windows is now the same as on Posix platforms -- Emacs saves the | ||
| 1847 | session and exits. In particular, this will happen if you start | ||
| 1848 | emacs.exe from the Windows shell, then type Ctrl-C into that shell's | ||
| 1849 | window. | ||
| 1850 | |||
| 1851 | --- | ||
| 1852 | ** 'signal-process' supports SIGTRAP on Windows XP and later. | ||
| 1853 | The 'kill' emulation on Windows now maps SIGTRAP to a call to the | ||
| 1854 | 'DebugBreakProcess' API. This causes the receiving process to break | ||
| 1855 | execution and return control to the debugger. If no debugger is | ||
| 1856 | attached to the receiving process, the call is typically ignored. | ||
| 1857 | This is in contrast to the default action on POSIX Systems, where it | ||
| 1858 | causes the receiving process to terminate with a core dump if no | ||
| 1859 | debugger has been attached to it. | ||
| 1860 | |||
| 1861 | --- | ||
| 1862 | ** 'set-mouse-position' and 'set-mouse-absolute-pixel-position' work | ||
| 1863 | on macOS. | ||
| 1864 | |||
| 1865 | --- | ||
| 1866 | ** Emacs can now be run as a GUI application from the command line on | ||
| 1867 | macOS. | ||
| 1868 | |||
| 1869 | +++ | ||
| 1870 | ** 'ns-appearance' and 'ns-transparent-titlebar' change the appearance | ||
| 1871 | of frame decorations on macOS 10.9+. | ||
| 1872 | |||
| 1873 | --- | ||
| 1874 | ** 'ns-use-thin-smoothing' enables thin font smoothing on macOS 10.8+. | ||
| 1875 | |||
| 1876 | --- | ||
| 1877 | ** 'process-attributes' on Darwin systems now returns more information. | ||
| 1878 | |||
| 1879 | |||
| 1880 | ---------------------------------------------------------------------- | ||
| 1881 | This file is part of GNU Emacs. | ||
| 1882 | |||
| 1883 | GNU Emacs is free software: you can redistribute it and/or modify | ||
| 1884 | it under the terms of the GNU General Public License as published by | ||
| 1885 | the Free Software Foundation, either version 3 of the License, or | ||
| 1886 | (at your option) any later version. | ||
| 1887 | |||
| 1888 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 1889 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 1890 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 1891 | GNU General Public License for more details. | ||
| 1892 | |||
| 1893 | You should have received a copy of the GNU General Public License | ||
| 1894 | along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. | ||
| 1895 | |||
| 1896 | |||
| 1897 | Local variables: | ||
| 1898 | coding: utf-8 | ||
| 1899 | mode: outline | ||
| 1900 | paragraph-separate: "[ ]*$" | ||
| 1901 | end: | ||
diff --git a/etc/refcards/ru-refcard.tex b/etc/refcards/ru-refcard.tex index 866dd7948f7..a168e085255 100644 --- a/etc/refcards/ru-refcard.tex +++ b/etc/refcards/ru-refcard.tex | |||
| @@ -40,7 +40,7 @@ | |||
| 40 | \newlength{\ColThreeWidth} | 40 | \newlength{\ColThreeWidth} |
| 41 | \setlength{\ColThreeWidth}{25mm} | 41 | \setlength{\ColThreeWidth}{25mm} |
| 42 | 42 | ||
| 43 | \newcommand{\versionemacs}[0]{26} % version of Emacs this is for | 43 | \newcommand{\versionemacs}[0]{27} % version of Emacs this is for |
| 44 | \newcommand{\cyear}[0]{2017} % copyright year | 44 | \newcommand{\cyear}[0]{2017} % copyright year |
| 45 | 45 | ||
| 46 | \newcommand\shortcopyrightnotice[0]{\vskip 1ex plus 2 fill | 46 | \newcommand\shortcopyrightnotice[0]{\vskip 1ex plus 2 fill |
diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp index ba1bb4eecda..7769ba30495 100644 --- a/msdos/sed2v2.inp +++ b/msdos/sed2v2.inp | |||
| @@ -66,7 +66,7 @@ | |||
| 66 | /^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/ | 66 | /^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/ |
| 67 | /^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION VERSION/ | 67 | /^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION VERSION/ |
| 68 | /^#undef PENDING_OUTPUT_COUNT/s/^.*$/#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)/ | 68 | /^#undef PENDING_OUTPUT_COUNT/s/^.*$/#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)/ |
| 69 | /^#undef VERSION/s/^.*$/#define VERSION "26.0.50"/ | 69 | /^#undef VERSION/s/^.*$/#define VERSION "27.0.50"/ |
| 70 | /^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/ | 70 | /^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/ |
| 71 | /^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/ | 71 | /^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/ |
| 72 | /^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/ | 72 | /^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/ |
diff --git a/nt/README.W32 b/nt/README.W32 index a670687ef21..f0f4997892a 100644 --- a/nt/README.W32 +++ b/nt/README.W32 | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | Copyright (C) 2001-2017 Free Software Foundation, Inc. | 1 | Copyright (C) 2001-2017 Free Software Foundation, Inc. |
| 2 | See the end of the file for license conditions. | 2 | See the end of the file for license conditions. |
| 3 | 3 | ||
| 4 | Emacs version 25.1.50 for MS-Windows | 4 | Emacs version 27.0.50 for MS-Windows |
| 5 | 5 | ||
| 6 | This README file describes how to set up and run a precompiled | 6 | This README file describes how to set up and run a precompiled |
| 7 | distribution of the latest version of GNU Emacs for MS-Windows. You | 7 | distribution of the latest version of GNU Emacs for MS-Windows. You |
diff --git a/src/msdos.c b/src/msdos.c index 5b025753d98..ae9cbeefafd 100644 --- a/src/msdos.c +++ b/src/msdos.c | |||
| @@ -1791,7 +1791,7 @@ internal_terminal_init (void) | |||
| 1791 | } | 1791 | } |
| 1792 | 1792 | ||
| 1793 | Vinitial_window_system = Qpc; | 1793 | Vinitial_window_system = Qpc; |
| 1794 | Vwindow_system_version = make_number (26); /* RE Emacs version */ | 1794 | Vwindow_system_version = make_number (27); /* RE Emacs version */ |
| 1795 | tty->terminal->type = output_msdos_raw; | 1795 | tty->terminal->type = output_msdos_raw; |
| 1796 | 1796 | ||
| 1797 | /* If Emacs was dumped on DOS/V machine, forget the stale VRAM | 1797 | /* If Emacs was dumped on DOS/V machine, forget the stale VRAM |