aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog.31846
-rw-r--r--etc/NEWS.27589
-rw-r--r--test/data/emacs-module/mod-test.c31
-rw-r--r--test/src/emacs-module-tests.el3
4 files changed, 1879 insertions, 590 deletions
diff --git a/ChangeLog.3 b/ChangeLog.3
index 7f6000fc556..4aa52a762fc 100644
--- a/ChangeLog.3
+++ b/ChangeLog.3
@@ -1,3 +1,1847 @@
12020-07-28 Nicolas Petton <nicolas@petton.fr>
2
3 * etc/NEWS: Remove temporary markup.
4
52020-07-26 Philipp Stephani <phst@google.com>
6
7 Add another test for global module references
8
9 * test/src/emacs-module-tests.el (mod-test-globref-reordered): New
10 unit test.
11
12 * test/data/emacs-module/mod-test.c (Fmod_test_globref_reordered): New
13 test module function.
14 (emacs_module_init): Export it.
15
162020-07-26 Philipp Stephani <phst@google.com>
17
18 Backport: add another test case for module assertions.
19
20 This backports commit 9f01ce6327 from master. Since the bug isn’t
21 present on emacs-27, just backport the new test case.
22
23 * test/data/emacs-module/mod-test.c (Fmod_test_globref_invalid_free):
24 New test module function.
25 (emacs_module_init): Export it.
26
27 * test/src/emacs-module-tests.el
28 (module--test-assertions--globref-invalid-free): New unit test.
29
302020-07-26 Philipp Stephani <phst@google.com>
31
32 Backport: Add module test for edge case.
33
34 This backports commit 6355a3ec62 from master. Since the bug isn’t
35 present in emacs-27, just backport the test case.
36
37 * test/data/emacs-module/mod-test.c
38 (Fmod_test_invalid_store_copy): New test module function.
39 (emacs_module_init): Export it.
40
41 * test/src/emacs-module-tests.el
42 (module--test-assertions--load-non-live-object-with-global-copy):
43 New unit test.
44
452020-07-25 Eli Zaretskii <eliz@gnu.org>
46
47 Fix last change
48
49 * src/composite.c (composition_reseat_it): Fix of the commentary,
50 and a minor change of the last fix.
51
522020-07-25 Pip Cet <pipcet@gmail.com>
53
54 Fix Arabic shaping when column-number-mode is in effect
55
56 * src/indent.c (scan_for_column, compute_motion): Pass -1,
57 instead of NEUTRAL_DIR, to 'composition_reseat_it'.
58 * src/composite.c (composition_reseat_it): Interpret negative
59 value of BIDI_LEVEL to mean the caller doesn't know what is the
60 bidi direction of the text. (Bug#41005)
61
622020-07-24 Eli Zaretskii <eliz@gnu.org>
63
64 Fix description of kmacro-* commands in the user manual
65
66 * doc/emacs/kmacro.texi (Basic Keyboard Macro): Separate old-style
67 macro definition commands from the new style in the summary
68 table. (Bug#42492)
69
702020-07-24 Lars Ingebrigtsen <larsi@gnus.org>
71
72 Fix viewing of encrypted S/MIME messages
73
74 * lisp/gnus/mm-decode.el (mm-possibly-verify-or-decrypt): Don't
75 add a content-type header if there already is one (bug#41659).
76
772020-07-21 Ken Manheimer <ken.manheimer@gmail.com>
78
79 Revert "Rectify allout-widgets region undecoration so item at start is not missed."
80
81 This reverts commit 33d85cb768b40794bffcd9ab22fbdec1211a74e5.
82
83 Backporting it to emacs-27 was not appropriate.
84
852020-07-21 Ken Manheimer <ken.manheimer@gmail.com>
86
87 Revert "Resolve missing button-region keymap bindings."
88
89 This reverts commit dd7c191291c8eb1afeac0f1512745491c5c7a317.
90
91 Backporting it to emacs-27 was not appropriate.
92
932020-07-21 Ken Manheimer <ken.manheimer@gmail.com>
94
95 Revert "Provide missing let definition to prevent background void-variable error."
96
97 This reverts commit 3c410b6b4753e02269bb36914e7534eb124150dd.
98
99 Backporting it to emacs-27 was not appropriate.
100
1012020-07-21 Ken Manheimer <ken.manheimer@gmail.com>
102
103 Revert "Don't let item decoration be disrupted by too-shallow items."
104
105 This reverts commit 8684216542889fa57daa32072104afc69785907f.
106
107 Backporting it to emacs-27 was not appropriate.
108
1092020-07-21 Ken Manheimer <ken.manheimer@gmail.com>
110
111 Revert "Fix allout-widgets-mode handling of edits to item cue, fixing (bug#11312)"
112
113 This reverts commit 8e13d332481551e4c8c1c66dd0c69dd09256dffc.
114
115 Backporting it to emacs-27 was not appropriate.
116
1172020-07-21 Robert Pluim <rpluim@gmail.com>
118
119 Run custom-magic-reset in the customize buffer
120
121 If the user has navigated away from the customize buffer, then
122 clicking on a widget in the customize buffer applies changes in the
123 selected buffer rather than in the customize buffer. Pass the
124 customize buffer to 'custom-magic-reset' to avoid this.
125
126 * lisp/cus-edit.el (custom-magic-reset): Add optional buffer argument,
127 apply changes in that buffer.
128 (custom-notify): Pass the buffer containing the widget to
129 'custom-magic-reset'. (Bug#40788)
130
1312020-07-20 Ken Manheimer <ken.manheimer@gmail.com>
132
133 Backport: Rectify allout-widgets region undecoration so item at start is not missed.
134
135 * lisp/allout-widgets.el (allout-widgets-undecorate-region):
136 Reorganize the loop so an item at the start is not skipped.
137
138 (cherry picked from commit 33d85cb768b40794bffcd9ab22fbdec1211a74e5)
139
1402020-07-20 Ken Manheimer <ken.manheimer@gmail.com>
141
142 Backport: Resolve missing button-region keymap bindings.
143
144 * lisp/allout-widgets.el (allout-item-icon-keymap,
145 allout-item-body-keymap, allout-cue-span-keymap, allout-widgets-mode):
146 Inherit from both (current-local-map) and (current-global-map). This
147 provides for missing global bindings when inheriting from
148 just (current-local-map), eg Esc-<.
149
150 (cherry picked from commit dd7c191291c8eb1afeac0f1512745491c5c7a317)
151
1522020-07-20 Ken Manheimer <ken.manheimer@gmail.com>
153
154 Backport: Provide missing let definition to prevent background void-variable error.
155
156 * lisp/allout-widgets.el (allout-widgets-exposure-change-processor)
157 Let-declare handled-conceal, for reference through `(symbol-value)'
158 within the let body. (Because the error happens in an
159 after-change-functions hook, so it is caught and reported as a message
160 by allout-widgets-hook-error-handler.)
161
162 (cherry picked from commit 3c410b6b4753e02269bb36914e7534eb124150dd)
163
1642020-07-20 Ken Manheimer <ken.manheimer@gmail.com>
165
166 Backport: Don't let item decoration be disrupted by too-shallow items.
167
168 * lisp/allout-widgets.el (allout-decorate-item-and-context): Check for
169 parent-position having value before using it.
170
171 Also, shift local emacs vars topic deeper so it doesn't constitute
172 an instance of that particular aberrant case.
173
174 (cherry picked from commit 8684216542889fa57daa32072104afc69785907f)
175
1762020-07-20 Ken Manheimer <ken.manheimer@gmail.com>
177
178 Backport: Fix allout-widgets-mode handling of edits to item cue, fixing (bug#11312)
179
180 * lisp/allout-widgets.el (allout-decorate-item-cue): Properly decorate
181 item cue span.
182 (allout-setup-text-properties): use allout-graphics-modification-handler
183 as allout-cue-span-category modification hook.
184
185 (cherry picked from commit 8e13d332481551e4c8c1c66dd0c69dd09256dffc)
186
1872020-07-20 Robert Pluim <rpluim@gmail.com>
188
189 Document prefix arg effects for 'epa-mail-{sign,encrypt}'
190
191 * doc/misc/epa.texi (Mail-mode integration): Describe effect of
192 prefix arg to 'epa-mail-encrypt' and 'epa-mail-sign'.
193
194 * lisp/epa-mail.el (epa-mail-sign): Describe effect of prefix arg.
195
1962020-07-20 Robert Pluim <rpluim@gmail.com>
197
198 * etc/NEWS: Correct description of :client-certificate change
199
2002020-07-18 Eli Zaretskii <eliz@gnu.org>
201
202 Revert "Fix filename completion in shell mode buffers"
203
204 This reverts commit e4d17d8cb479ffeeb7dfb7320a1432722ac8df75.
205 Per bug#42383 discussions, the fix for bug#34330 probably
206 just works around the real issue, which is in pcomplete.el.
207
2082020-07-18 Eli Zaretskii <eliz@gnu.org>
209
210 Improve documentation of 'bookmark-bmenu-mode'
211
212 * lisp/bookmark.el (bookmark-bmenu-mode): Add
213 `bookmark-bmenu-search' to the doc string. (Bug#42325)
214
2152020-07-18 Eli Zaretskii <eliz@gnu.org>
216
217 Update systems using GnuTLS certificate files
218
219 * lisp/net/gnutls.el (gnutls-trustfiles): Update the names of the
220 systems in the comments. Reported by Richard Stallman <rms@gnu.org>
221 in
222 https://lists.gnu.org/archive/html/emacs-devel/2020-07/msg00455.html.
223
2242020-07-17 Eli Zaretskii <eliz@gnu.org>
225
226 Improve documentation of 'kill-emacs'
227
228 * doc/lispref/os.texi (Killing Emacs):
229 * src/emacs.c (Fkill_emacs): Document what non-integer, non-string
230 argument to 'kill-emacs' means. (Bug#42400)
231
2322020-07-17 Eli Zaretskii <eliz@gnu.org>
233
234 Improve documentation of 'display-raw-bytes-as-hex'
235
236 * doc/emacs/display.texi (Text Display): Mention
237 'display-raw-bytes-as-hex'. (Bug#42384)
238
2392020-07-17 Robert Pluim <rpluim@gmail.com>
240
241 Correct descriptions of init file
242
243 These still referred to XDG as being preferred.
244
245 * doc/emacs/custom.texi (Init File): Correct description of init
246 file preference order (Bug#42388).
247
248 * doc/emacs/custom.texi (Find Init): Correct description of
249 default init-file.
250
2512020-07-16 Eli Zaretskii <eliz@gnu.org>
252
253 Fix interrupt-process on MS-Windows
254
255 * src/w32proc.c (sys_kill): Test the status of the left Ctrl key
256 for the purpose of restoring it after simulating Ctrl-C. This
257 avoids leaving the left Ctrl key status in depressed state when
258 the user actually pressed the right Ctrl key. (Bug#42350)
259
2602020-07-11 Andrea Corallo <akrl@sdf.org>
261
262 Revert "* doc/misc/flymake.texi (An annotated example backend): Typo fix."
263
264 This reverts commit b1ad0380d2372b8df35ff603b8918d22c27ad964.
265
2662020-07-11 Mattias Engdegård <mattiase@acm.org>
267
268 Correct 'concat' manual entry (bug#42296)
269
270 * doc/lispref/strings.texi (Creating Strings): 'concat' does not
271 necessarily return a newly allocated string. This has been the case
272 at least since 1997 (Emacs 20.3).
273
2742020-07-11 Andrea Corallo <akrl@sdf.org>
275
276 * doc/misc/flymake.texi (An annotated example backend): Typo fix.
277
2782020-07-11 Eli Zaretskii <eliz@gnu.org>
279
280 Add commentary in gtkutil.c
281
282 * src/gtkutil.c: Add a comment regarding the incompatibilities
283 vis-a-vis GTK. Suggested by Richard Stallman <rms@gnu.org>.
284
2852020-07-10 Basil L. Contovounesios <contovob@tcd.ie>
286
287 Consistently stylize eldoc as ElDoc in prose
288
289 * doc/emacs/custom.texi (Specifying File Variables):
290 * doc/emacs/modes.texi (Major Modes):
291 * doc/emacs/programs.texi (Lisp Doc):
292 * etc/NEWS.22:
293 * etc/NEWS.23:
294 * lisp/progmodes/python.el:
295 (python-eldoc-function):
296 * test/lisp/progmodes/python-tests.el: Consistently capitalize eldoc
297 as ElDoc rather than Eldoc.
298
2992020-07-09 Eli Zaretskii <eliz@gnu.org>
300
301 Improve documentation of "C-u C-x ="
302
303 * doc/emacs/mule.texi (International Chars): Mention the
304 composition information displayed by "C-u C-x =". (Bug#42256)
305
3062020-07-09 Paul Eggert <eggert@cs.ucla.edu>
307
308 Mention floating rounding issues
309
310 * doc/lispref/numbers.texi (Float Basics): Mention floating-point
311 rounding issues uncovered by the discussion in Bug#42417.
312
3132020-07-09 Mattias Engdegård <mattiase@acm.org>
314
315 Repair global-auto-revert-ignore-modes (bug#42271)
316
317 Reported by Gustavo Tavares Cabral.
318
319 * lisp/autorevert.el (auto-revert--global-add-current-buffer): Fix typo.
320
3212020-07-08 Eli Zaretskii <eliz@gnu.org>
322
323 One more improvement of left/right-fringe display spec docs
324
325 * doc/lispref/display.texi (Fringe Bitmaps): Yet another
326 clarification of how to use FACE in left/right-fringe display
327 spec.
328
3292020-07-07 Eli Zaretskii <eliz@gnu.org>
330
331 Another clarification of left/right-fringe display spec
332
333 * doc/lispref/display.texi (Fringe Bitmaps): More accurate
334 description of what FACE means in the left/right-fringe display
335 spec.
336
3372020-07-07 Eli Zaretskii <eliz@gnu.org>
338
339 Avoid infloop in 'format-mode-line'
340
341 * src/xdisp.c (decode_mode_spec): Don't use W->start if it is
342 outside of the buffer's accessible region. (Bug#42220)
343
3442020-07-05 Eli Zaretskii <eliz@gnu.org>
345
346 Clarify the documentation of 'left/right-fringe' display spec
347
348 * doc/lispref/display.texi (Other Display Specs, Fringe Bitmaps):
349 Clarify how the optional FACE parameter of the left-fringe and
350 right-fringe display spec is used. Reported by Gregory Heytings
351 <ghe@sdf.org>.
352
3532020-07-04 Eli Zaretskii <eliz@gnu.org>
354
355 Minor improvement in ELisp manual
356
357 * doc/lispref/frames.texi (Position Parameters): Clarify the
358 description of the 'above' frame parameter. (Bug#42154)
359
3602020-07-02 Michael Albinus <michael.albinus@gmx.de>
361
362 * doc/misc/tramp.texi (Customizing Methods): Fix typo.
363
3642020-06-29 Philipp Stephani <phst@google.com>
365
366 Fix undefined behavior in json.c (Bug#42113)
367
368 * src/json.c (lisp_to_json_toplevel_1, Fjson_parse_string): Check
369 whether input strings are actually strings.
370
371 * test/src/json-tests.el (json-parse-string/wrong-type)
372 (json-serialize/wrong-hash-key-type): New regression tests.
373
3742020-06-28 Richard Kim <emacs18@gmail.com>
375
376 Fix ACTION argument of 'display-buffer' call in gud.el
377
378 * lisp/progmodes/gud.el (gud-common-init): The ACTION argument of
379 'display-buffer' should be a list of list of functions. (Bug#41888)
380
3812020-06-27 Eli Zaretskii <eliz@gnu.org>
382
383 * src/keyboard.c (Fclear_this_command_keys): Doc fix.
384
3852020-06-27 Eli Zaretskii <eliz@gnu.org>
386
387 Improve do string of 'man'
388
389 * lisp/man.el (man): Mention the need to use C-q for quoting the
390 SPC character in the man-page input. (Bug#41859)
391
3922020-06-26 Eli Zaretskii <eliz@gnu.org>
393
394 Fix posn-at-point at beginning of a display string
395
396 * src/xdisp.c (pos_visible_p): Account for the line-number width
397 when the display string at CHARPOS ends in a newline. (Bug#42039)
398
3992020-06-26 Eli Zaretskii <eliz@gnu.org>
400
401 Improve documentation of Info node movement commands
402
403 * lisp/info.el (Info-next, Info-prev, Info-forward-node)
404 (Info-backward-node): More detailed descriptions of what each
405 commands does with respect to child and parent nodes. (Bug#42050)
406
4072020-06-22 Phillip Lord <phillip.lord@russet.org.uk>
408
409 Add Jansson dependency to Windows Build
410
411 * admin/nt/dist-build/build-dep-zips.py: Add dependency
412
4132020-06-22 Richard Copley <rcopley@gmail.com> (tiny change)
414
415 Unbreak 'reverse-region'
416
417 * lisp/sort.el (reverse-region): Unbreak the function. It was
418 broken by a fix for bug#39376.
419
4202020-06-22 Basil L. Contovounesios <contovob@tcd.ie>
421
422 Fix typos and markup in fill column indicator docs
423
424 * doc/emacs/display.texi (Displaying Boundaries): Fix typos and
425 Texinfo markup.
426
4272020-06-20 Stephen Berman <stephen.berman@gmx.net>
428
429 Avoid crashes in 'defconst'
430
431 * src/eval.c (Fdefconst): Verify that SYMBOL is a known symbol.
432 (Bug#41817)
433
4342020-06-20 Richard Stallman <rms@gnu.org>
435
436 Fix text about Lisp archives in the Emacs FQ
437
438 * doc/misc/efaq.texi (Packages that do not come with Emacs): Warn
439 about using Lisp archives other than GNU ELPA.
440
4412020-06-20 Eli Zaretskii <eliz@gnu.org>
442
443 Don't use 'cl' functions in ELisp manual's examples
444
445 * doc/lispref/control.texi (pcase Macro): Use 'cl-evenp' instead
446 of 'evenp'. (Bug#41947)
447
4482020-06-17 Basil L. Contovounesios <contovob@tcd.ie>
449
450 Fix some Texinfo markup
451
452 * doc/misc/gnus-faq.texi (FAQ 3-11):
453 * doc/emacs/frames.texi (Tab Bars): Consistently use @var with
454 lower-case metasyntactic variables and @minus instead of a dash.
455 (Text-Only Mouse):
456 * doc/emacs/files.texi (Auto Revert):
457 * doc/emacs/misc.texi (emacsclient Options)
458 (Embedded WebKit Widgets):
459 * doc/lispref/control.texi (pcase Macro):
460 * doc/lispref/debugging.texi (Backtraces):
461 * doc/lispref/files.texi (Truenames):
462 * doc/lispref/frames.texi (Management Parameters):
463 * doc/lispref/os.texi (Time Calculations):
464 * doc/lispref/text.texi (Parsing JSON):
465 * doc/misc/efaq-w32.texi (Other versions of Emacs, Debugging)
466 (Swap Caps NT, Printing, Bash, Developing with Emacs):
467 * doc/misc/efaq.texi (New in Emacs 25):
468 * doc/misc/emacs-gnutls.texi (Help For Users):
469 * doc/misc/message.texi (Using S/MIME, Passphrase caching):
470 * test/manual/etags/tex-src/gzip.texi (Overview): Use @. when a
471 sentence in the middle of a paragraph ends with an upper-case letter
472 as per "(texinfo) Ending a Sentence".
473
4742020-06-17 Basil L. Contovounesios <contovob@tcd.ie>
475
476 Fix recentf typo in Emacs manual
477
478 * doc/emacs/files.texi (File Conveniences): Fix misspelling of
479 recentf-list.
480
4812020-06-17 Juri Linkov <juri@linkov.net>
482
483 Rename default function to next-error-buffer-unnavigated-current (bug#40919)
484
485 * lisp/simple.el (next-error-find-buffer-function): Rename default function
486 from next-error-no-navigation-try-current
487 to next-error-buffer-unnavigated-current.
488
4892020-06-17 Juri Linkov <juri@linkov.net>
490
491 * lisp/image-mode.el (image-toggle-display-image): Fix fit of rotated images.
492
493 When fitting rotated image to width and height, swap width and height
494 when changing orientation between portrait and landscape (bug#41886).
495
4962020-06-16 Michael Albinus <michael.albinus@gmx.de>
497
498 * doc/misc/tramp.texi (Predefined connection information): Add "tmpdir".
499
5002020-06-13 João Távora <joaotavora@gmail.com>
501
502 Delete, don't kill, dir dir fragments in icomplete-fido-backward-updir
503
504 Reported by: Andrew Schwartzmeyer <andrew@schwartzmeyer.com>
505
506 * lisp/icomplete.el (icomplete-fido-backward-updir): Don't save
507 dir fragments to kill ring.
508
5092020-06-13 Basil L. Contovounesios <contovob@tcd.ie>
510
511 Revert markup change in with-coding-priority docs
512
513 This partially reverts commit fc759eb9b3
514 "Fix with-coding-priority markup in Elisp manual"
515 of 2019-10-13T15:36:02Z!contovob@tcd.ie.
516
517 For discussion, see the following thread:
518 https://lists.gnu.org/archive/html/emacs-devel/2019-10/msg00550.html
519 https://lists.gnu.org/archive/html/emacs-devel/2020-06/msg00473.html
520
521 * doc/lispref/nonascii.texi (Specifying Coding Systems): Use more
522 specific cross-reference to progn even if info.el displays it
523 suboptimally.
524
5252020-06-10 Juri Linkov <juri@linkov.net>
526
527 * lisp/emulation/cua-rect.el (cua--rectangle-region-insert): New function.
528
529 Add cua--insert-rectangle around region-insert-function (bug#41440).
530
5312020-06-09 Juri Linkov <juri@linkov.net>
532
533 * lisp/simple.el (shell-command-on-region): Fix docstring.
534
535 * lisp/simple.el (shell-command-on-region): Mention REGION-NONCONTIGUOUS-P
536 in docstring (bug#41440)
537
538 * etc/NEWS: Better example for 'windmove-display-default-keybindings'.
539
5402020-06-08 Basil L. Contovounesios <contovob@tcd.ie>
541
542 Clean up D-Bus documentation (bug#41744)
543
544 * doc/lispref/errors.texi (Standard Errors): The error symbol
545 dbus-error is defined even when Emacs is built without D-Bus.
546
547 * doc/misc/dbus.texi (Bus Names, Introspection)
548 (Nodes and Interfaces, Methods and Signal)
549 (Properties and Annotations, Arguments and Signatures)
550 (Synchronous Methods, Receiving Method Calls, Signals)
551 (Alternative Buses, Errors and Events): Clarify wording. Fix
552 indentation of and simplify examples where possible. Improve
553 Texinfo markup and cross-referencing where possible.
554 (Type Conversion): Ditto. Remove mentions of Emacs' fixnum range
555 now that we have bignums.
556
557 * lisp/net/dbus.el (dbus-return-values-table)
558 (dbus-call-method-asynchronously, dbus-send-signal)
559 (dbus-register-signal, dbus-register-method)
560 (dbus-string-to-byte-array, dbus-byte-array-to-string)
561 (dbus-escape-as-identifier, dbus-check-event, dbus-event-bus-name)
562 (dbus-event-message-type, dbus-event-serial-number)
563 (dbus-event-service-name, dbus-event-path-name)
564 (dbus-event-interface-name, dbus-event-member-name)
565 (dbus-list-activatable-names, dbus-list-queued-owners, dbus-ping)
566 (dbus-introspect-get-interface-names, dbus-introspect-get-interface)
567 (dbus-introspect-get-method, dbus-introspect-get-signal)
568 (dbus-introspect-get-property, dbus-introspect-get-annotation-names)
569 (dbus-introspect-get-annotation, dbus-introspect-get-argument-names)
570 (dbus-introspect-get-argument, dbus-introspect-get-signature)
571 (dbus-set-property, dbus-register-property)
572 (dbus-get-all-managed-objects, dbus-init-bus): Clarify docstring and
573 improve formatting where possible.
574 (dbus-call-method): Ditto. Remove mentions of Emacs' fixnum range
575 now that we have bignums.
576
5772020-06-08 Juri Linkov <juri@linkov.net>
578
579 * lisp/image-mode.el (image-transform-original): New command (bug#41222).
580
581 (image-mode-map): Bind it to "so" and add to menu.
582
5832020-06-08 Juri Linkov <juri@linkov.net>
584
585 Move tab-bar and tab-line faces to faces.el (part of bug#41200)
586
587 These are basic faces, so they need to be defined in
588 faces.el, otherwise (get 'tab-line 'face) returns 0.
589
590 * lisp/faces.el (tab-bar, tab-line): Move faces here
591 from tab-bar.el and tab-line.el.
592
593 * lisp/tab-bar.el (tab-bar): Move face to faces.el.
594 (tab-bar-faces): Add '((tab-bar custom-face))
595 to the second arg MEMBERS of 'defgroup'.
596
597 * lisp/tab-line.el (tab-line): Move face to faces.el.
598 (tab-line-faces): Add '((tab-line custom-face))
599 to the second arg MEMBERS of 'defgroup'.
600
6012020-06-07 Basil L. Contovounesios <contovob@tcd.ie>
602
603 Fix typo in "(elisp) Type Keywords"
604
605 * doc/lispref/customize.texi (Type Keywords): Fix typo of 'choice'
606 composite type. (Bug#41749)
607
6082020-06-07 Tassilo Horn <tsdh@gnu.org>
609
610 Gnus nnir-summary-line-format has no effect
611
612 * lisp/gnus/nnir.el (nnir-mode): Update summary format specs if
613 nnir-summary-line-format is set and different from
614 gnus-summary-line-format.
615 (nnir-open-server): Run nnir-mode in gnus-summary-generate-hook
616 instead of gnus-summary-prepared-hook.
617
6182020-06-06 Eli Zaretskii <eliz@gnu.org>
619
620 Improve documentation of 'window-text-pixel-size'
621
622 * doc/lispref/display.texi (Size of Displayed Text): Clarify the
623 description of 'window-text-pixel-size'.
624
6252020-06-06 Eli Zaretskii <eliz@gnu.org>
626
627 * src/xdisp.c (Fwindow_text_pixel_size): Doc fix. (Bug#41737)
628
6292020-06-06 Basil L. Contovounesios <contovob@tcd.ie>
630
631 Minor improvements to EDE and EIEIO manuals
632
633 For discussion, see the following threads:
634 https://lists.gnu.org/archive/html/emacs-devel/2020-05/msg00630.html
635 https://lists.gnu.org/archive/html/emacs-devel/2020-06/msg00099.html
636
637 * doc/misc/ede.texi (ede-generic-project): Clean up example.
638 * doc/misc/eieio.texi (Accessing Slots): Document slot-value as a
639 generalized variable and set-slot-value as obsolete.
640 (Predicates): Fix typo.
641 (Introspection): Document eieio-class-slots in place of the obsolete
642 object-slots.
643
6442020-06-06 João Távora <joaotavora@gmail.com>
645
646 Have Fido mode also imitate Ido mode in ignore-case options
647
648 Suggested by Sean Whitton <spwhitton@spwhitton.name>.
649
650 * lisp/icomplete.el (icomplete--fido-mode-setup): Set ignore-case
651 options.
652
6532020-06-05 Basil L. Contovounesios <contovob@tcd.ie>
654
655 Update package-menu-quick-help
656
657 * lisp/emacs-lisp/package.el (package--quick-help-keys): Filtering
658 is now bound to the prefix '/', not the key 'f' (bug#41721).
659 Advertise only the standard 'g' binding now that both it and 'r' are
660 bound to revert-buffer (bug#35504).
661 (package--prettify-quick-help-key): Avoid modifying string literals.
662 (package-menu-filter): Reintroduce as obsolete alias of
663 package-menu-filter-by-keyword for backward
664 compatibility (bug#36981).
665
6662020-06-05 Eli Zaretskii <eliz@gnu.org>
667
668 Improve documentation of 'sort-subr'
669
670 * doc/lispref/text.texi (Sorting): Clarify the meaning and use of
671 PREDICATE argument to 'sort-subr'. (Bug#41706)
672
6732020-06-05 Andrii Kolomoiets <andreyk.mad@gmail.com>
674
675 Update Ukrainian transliteration
676
677 * lisp/language/cyril-util.el (standard-display-cyrillic-translit):
678 Add missing letter "ґ"; tweak letter "г". (Bug#41683)
679
6802020-06-05 Eli Zaretskii <eliz@gnu.org>
681
682 Fix Arabic shaping when eww/shr fill the text to be rendered
683
684 * src/hbfont.c (hbfont_shape): Don't use DIRECTION if the current
685 buffer has bidi reordering disabled. (Bug#41005)
686
6872020-06-03 Basil L. Contovounesios <contovob@tcd.ie>
688
689 Silence some byte-compiler warnings in tests
690
691 * test/lisp/emacs-lisp/cl-generic-tests.el:
692 * test/lisp/progmodes/elisp-mode-tests.el: Declare functions
693 referred to within macroexpansions.
694 (xref-elisp-overloadable-no-default)
695 (xref-elisp-overloadable-co-located-default)
696 (xref-elisp-overloadable-separate-default): Prefix unused arguments
697 with underscore.
698
699 * test/lisp/international/ccl-tests.el:
700 * test/lisp/wdired-tests.el:
701 * test/lisp/emacs-lisp/package-tests.el: Declare functions used.
702 (package-test-update-archives, package-test-signed): Use
703 revert-buffer in place of its obsolete alias package-menu-refresh.
704
705 * test/lisp/eshell/eshell-tests.el:
706 * test/lisp/mail/footnote-tests.el:
707 * test/src/buffer-tests.el: Require dependencies used.
708
709 * test/lisp/image/exif-tests.el: Remove unneeded (require 'seq).
710 (test-exit-direct-ascii-value): Actually perform the test.
711 * test/lisp/progmodes/sql-tests.el (sql-test-add-existing-product):
712 Fix typo.
713
714 * test/lisp/simple-tests.el (with-shell-command-dont-erase-buffer):
715 * test/src/data-tests.el (test-bool-vector-bv-from-hex-string)
716 (test-bool-vector-apply-mock-op): Remove unused local variables.
717
7182020-06-03 Basil L. Contovounesios <contovob@tcd.ie>
719
720 * test/lisp/battery-tests.el: New file.
721
7222020-06-02 Basil L. Contovounesios <contovob@tcd.ie>
723
724 Improve format-spec documentation (bug#41571)
725
726 * doc/lispref/text.texi (Interpolated Strings): Move from here...
727 * doc/lispref/strings.texi (Custom Format Strings): ...to here,
728 renaming the node and clarifying the documentation.
729 (Formatting Strings): End node with sentence referring to the next
730 one.
731 * lisp/format-spec.el (format-spec): Clarify docstring.
732
7332020-06-01 Eli Zaretskii <eliz@gnu.org>
734
735 Don't call 'mbrtowc' on WINDOWSNT
736
737 * src/emacs.c (using_utf8): Don't call 'mbrtowc' on WINDOWSNT
738 systems, as it's not available on Windows 9X.
739
7402020-06-01 João Távora <joaotavora@gmail.com>
741
742 * doc/emacs/buffers.texi (Icomplete): Mention icomplete-minibuffer-setup-hook.
743
7442020-06-01 Paul Eggert <eggert@cs.ucla.edu>
745
746 Be more aggressive in marking objects during GC
747
748 Simplified version of a patch from Pip Cet (Bug#41321#299).
749 * src/alloc.c (maybe_lisp_pointer): Remove. All uses removed.
750 (mark_memory): Also look at the pointer offset by ‘lispsym’,
751 for symbols.
752
7532020-05-31 Alan Mackenzie <acm@muc.de>
754
755 Fix bug #41618 "(byte-compile 'foo) errors when foo is a macro."
756
757 * lisp/emacs-lisp/bytecomp.el (byte-compile): Disentangle the eval of the
758 final form from the pushing of 'macro onto it, doing the former first.
759
7602020-05-31 Eli Zaretskii <eliz@gnu.org>
761
762 Avoid crashes due to bidi cache being reset during redisplay
763
764 If automatic character composition triggers GC, and
765 'garbage-collection-messages' are turned on, we could have the
766 bidi cache reset while processing RTL text, which would then
767 consistently crash.
768 * src/xdisp.c (display_echo_area_1): Protect the bidi cache
769 against changes inside 'try_window'.
770
7712020-05-31 Juri Linkov <juri@linkov.net>
772
773 * lisp/tab-bar.el (switch-to-buffer-other-tab): Normalize buffer.
774
775 * lisp/tab-bar.el (switch-to-buffer-other-tab): Use
776 'window-normalize-buffer-to-switch-to' on 'buffer-or-name',
777 like does 'pop-to-buffer' used by 'switch-to-buffer-other-frame',
778 instead of raising the error "Invalid buffer" on a non-existent buffer name.
779
7802020-05-30 Eli Zaretskii <eliz@gnu.org>
781
782 Fix mingw.org's MinGW GCC 9 warning about 'execve'
783
784 * nt/inc/ms-w32.h (execve) [__GNUC__ > 9]: Provide a different
785 prototype for mingw.org's MinGW as well, to match the GCC builtin.
786
7872020-05-28 Glenn Morris <rgm@gnu.org>
788
789 Tiny texinfo markup fixes
790
791 * doc/lispref/edebug.texi (Edebug Views):
792 * doc/lispref/loading.texi (Library Search):
793 * doc/lispref/os.texi (User Identification): Markup fixes.
794
7952020-05-27 Dmitry Gutov <dgutov@yandex.ru>
796
797 Make next-error behavior a bit more flexible
798
799 * lisp/simple.el (next-error-no-navigation-try-current):
800 Extract from the case #2 in next-error-find-buffer (bug#40919).
801 (next-error-find-buffer-function): Use it as the default.
802
8032020-05-27 Noam Postavsky <npostavs@gmail.com>
804
805 * etc/NEWS.25: Belatedly announce upcase-dwim and downcase-dwim.
806
8072020-05-25 Eli Zaretskii <eliz@gnu.org>
808
809 Fix access to single-byte characters in buffer text
810
811 * src/xdisp.c (get_visually_first_element)
812 (Fbidi_find_overridden_directionality):
813 * src/cmds.c (Fend_of_line): Use FETCH_BYTE instead of FETCH_CHAR,
814 and byte position instead of character position, to access
815 individual bytes of buffer text. This avoids producing invalid
816 characters and accessing wrong buffer positions. (Bug#41520)
817
8182020-05-25 Noam Postavsky <npostavs@gmail.com>
819
820 Revert "Fix eshell-mode-map initialization"
821
822 It makes eshell-return-exits-minibuffer permanently affect the
823 eshell-mode-map (Bug#41370).
824
825 Do not merge to master, we will fix it properly there.
826
8272020-05-25 Matthias Meulien <orontee@gmail.com>
828
829 Fix tab-bar-tab-name-ellipsis initialization
830
831 * lisp/tab-bar.el (tab-bar-tab-name-truncated): Evaluate displayable
832 character when generating tab name.
833
8342020-05-24 Basil L. Contovounesios <contovob@tcd.ie>
835
836 Fix Elisp manual entry for format-spec
837
838 * doc/lispref/text.texi (Interpolated Strings): Fix typos. Don't
839 document modifier for default space padding as it's redundant and
840 inconsistent with the docstring and implementation of format-spec.
841
8422020-05-24 Eli Zaretskii <eliz@gnu.org>
843
844 Fix rare assertion violations in 'etags'
845
846 * lib-src/etags.c (pfnote): Instead of raising an assertion when
847 we get an empty tag name, return immediately. (Bug#41465)
848
849 * test/manual/etags/ETAGS.good_1:
850 * test/manual/etags/ETAGS.good_2:
851 * test/manual/etags/ETAGS.good_3:
852 * test/manual/etags/ETAGS.good_4:
853 * test/manual/etags/ETAGS.good_5:
854 * test/manual/etags/ETAGS.good_6: Adapt to latest changes in
855 etags.
856
8572020-05-23 Stefan Monnier <monnier@iro.umontreal.ca>
858
859 * lisp/subr.el (save-match-data): Clarify use in docstring
860
8612020-05-23 Eli Zaretskii <eliz@gnu.org>
862
863 Improve the documentation of setting up fontsets
864
865 * doc/lispref/display.texi (Fontsets): Improve the accuracy of a
866 cross-reference to "Character Properties".
867
868 * doc/emacs/mule.texi (Fontsets, Modifying Fontsets): Improve the
869 documentation of fontsets and how to modify them.
870
8712020-05-23 Eli Zaretskii <eliz@gnu.org>
872
873 * doc/emacs/killing.texi (Rectangles): Improve indexing.
874
8752020-05-23 Eli Zaretskii <eliz@gnu.org>
876
877 Fix accessing files on networked drives on MS-Windows
878
879 * src/w32.c (acl_get_file): Set errno to ENOTSUP if
880 get_file_security returns ERROR_NOT_SUPPORTED. (Bug#41463)
881
8822020-05-22 Alan Mackenzie <acm@muc.de>
883
884 CC Mode: Fix bug #39972, by fixing c-display-defun-name for nested defuns
885
886 * lisp/progmodes/cc-mode.el (c-common-init): Build
887 add-log-current-defun-function out of c-defun-name-and-limits instead of the
888 former c-defun-name.
889
8902020-05-21 Paul Eggert <eggert@cs.ucla.edu>
891
892 Redo RCS Id for pdumper
893
894 * lisp/version.el: Don’t put an RCS Id style string into the
895 executable via purecopy, as this does not work with the pdumper.
896 * src/emacs.c (RCS_Id): New constant, for 'ident'.
897
898 (cherry picked from commit 3d1bcfba5e21b29be8669aa2a8f27b344c9e02fd)
899
9002020-05-21 Stefan Kangas <stefankangas@gmail.com>
901
902 Second attempt at improving indexing in control.texi
903
904 * doc/lispref/control.texi (Processing of Errors): Improve indexing by
905 adding the word form "handle" in addition to "handling". With thanks
906 to Eli Zaretskii.
907
9082020-05-19 Stefan Kangas <stefankangas@gmail.com>
909
910 * doc/lispref/control.texi (Processing of Errors): Improve indexing.
911
9122020-05-17 Paul Eggert <eggert@cs.ucla.edu>
913
914 Minor fixups for mutability doc
915
916 * doc/lispref/objects.texi (Mutability): Minor fixups in
917 response to a comment by Dmitry Gutov (Bug#40671#477).
918
9192020-05-17 Paul Eggert <eggert@cs.ucla.edu>
920
921 Don’t use “constant” for values you shouldn’t change
922
923 Inspired by patch proposed by Dmitry Gutov (Bug#40671#393)
924 and by further comments by him and by Michael Heerdegen
925 in the same bug report.
926 * doc/lispintro/emacs-lisp-intro.texi (setcar):
927 Don’t push mutability here.
928 * doc/lispref/eval.texi (Self-Evaluating Forms, Quoting)
929 (Backquote):
930 * doc/lispref/lists.texi (Modifying Lists):
931 * doc/lispref/objects.texi (Lisp Data Types, Mutability):
932 * doc/lispref/sequences.texi (Array Functions, Vectors):
933 * doc/lispref/strings.texi (String Basics, Modifying Strings):
934 Don’t use the word “constant” to describe all values that
935 a program should not change.
936 * doc/lispref/objects.texi (Mutability):
937 Rename from “Constants and Mutability”. All uses changed.
938 In a footnote, contrast the Emacs behavior with that of Common
939 Lisp, Python, etc. for clarity, and say the goal is to be nicer.
940
9412020-05-16 Eli Zaretskii <eliz@gnu.org>
942
943 Improve documentation of manually installing Lisp packages
944
945 * doc/emacs/building.texi (Lisp Libraries): Describe how to
946 manually load packages in the init file. Mention the 'site-lisp'
947 subdirectory of the default 'load-path'.
948
949 * doc/emacs/package.texi (Packages): Describe manual installation
950 of ELisp packages. Suggested by Jean-Christophe Helary
951 <jean.christophe.helary@traduction-libre.org>.
952
9532020-05-16 Eli Zaretskii <eliz@gnu.org>
954
955 Reflect the emacs-devel ELPA/MELPA dispute in FAQ
956
957 * doc/misc/efaq.texi (Packages that do not come with Emacs): Warn
958 that some MELPA packages may require non-free software.
959
9602020-05-15 Tassilo Horn <tsdh@gnu.org>
961
962 Consider face inheritance when checking region face background.
963
964 Some themes (like dracula) make the region face inherit from some
965 other face. If the background color of the region was inherited,
966 `indicate-copied-region' did the switch-point-and-mark-twice dance
967 which is not visible in case the region is highlighted. It just
968 looked like Emacs would hang for a second after M-w.
969
970 * lisp/simple.el (indicate-copied-region): Consider face inheritance
971 when checking region face background.
972
9732020-05-15 Leo Vivier <leo.vivier+dev@gmail.com>
974
975 Fix dired default file operation (bug#41261)
976
977 * lisp/dired-aux.el (dired-dwim-target-directories): Restore
978 pre-emacs-27 behavior of 'dired-dwim-target'.
979
9802020-05-14 Philipp Stephani <phst@google.com>
981
982 Fix documentation related to 'command-switch-alist'.
983
984 While there, add a unit test to verify the behavior.
985
986 * doc/lispref/os.texi (Command-Line Arguments): Fix documentation: the
987 option string in 'command-switch-alist' does include leading hyphens.
988 Also mention that 'command-switch-alist' parsing ignores equals signs
989 in options.
990
991 * test/lisp/startup-tests.el
992 (startup-tests/command-switch-alist): New unit test.
993
9942020-05-13 Simon Lang <simon.lang@outlook.com> (tiny change)
995
996 Improve ediff readability in misterioso theme (Bug#41221)
997
998 * etc/themes/misterioso-theme.el: Add ediff faces.
999
10002020-05-13 Clément Pit-Claudel <clement.pitclaudel@live.com>
1001
1002 Fix a crash in handle_display_spec
1003
1004 * src/xdisp.c (handle_display_spec): Check that the cdr of the
1005 disable-eval spec is a cons before taking its car. (Bug#41232)
1006
10072020-05-13 Martin Rudalics <rudalics@gmx.at>
1008
1009 In x_hide_tip reset tip_last_frame for GTK+ tooltips only (Bug#41200)
1010
1011 * src/xfns.c (x_hide_tip): Reset tip_last_frame only when
1012 using GTK+ system tooltips (Bug#41200).
1013
10142020-05-12 João Távora <joaotavora@gmail.com>
1015
1016 Fix docstring of flymake-make-diagnostic (bug#40351)
1017
1018 * lisp/progmodes/flymake.el (flymake-make-diagnostic): Fix docstring
1019
10202020-05-10 Paul Eggert <eggert@cs.ucla.edu>
1021
1022 Go back to “Bahá’í”
1023
1024 * doc/emacs/calendar.texi (Holidays): Revert previous change, as
1025 bahai.org spells it “Bahá’í” (with U+2019 RIGHT SINGLE QUOTATION
1026 MARK) and that’s good enough for us.
1027
10282020-05-10 Eli Zaretskii <eliz@gnu.org>
1029
1030 * lisp/dired.el (dired-toggle-marks): Doc fix. (Bug#41097)
1031
10322020-05-09 Philipp Stephani <phst@google.com>
1033
1034 Small fix for type of 'display-fill-column-indicator-character'
1035
1036 * lisp/cus-start.el (standard): Don't mark t as safe file-local value
1037 for 'display-fill-column-indicator-character', as that value isn't
1038 allowed.
1039
10402020-05-09 Eli Zaretskii <eliz@gnu.org>
1041
1042 Fix customization of 'display-fill-column-indicator-character'
1043
1044 * lisp/cus-start.el (display-fill-column-indicator-character): Fix
1045 the customization form. (Bug#41145)
1046
10472020-05-09 Philipp Stephani <phst@google.com>
1048
1049 Refer to fill column indicator Info node in some places.
1050
1051 * src/xdisp.c (syms_of_xdisp): Add reference to manual in
1052 documentation strings for variables related to fill column indicators.
1053
1054 * lisp/display-fill-column-indicator.el (display-fill-column-indicator)
1055 (display-fill-column-indicator-mode): Add reference to manual.
1056
10572020-05-09 Martin Rudalics <rudalics@gmx.at>
1058
1059 Fix GTK's Tool Bar menu radio buttons
1060
1061 * lisp/menu-bar.el (menu-bar-showhide-tool-bar-menu): Fix typo
1062 that makes the radio buttons pretend that the tool bar is always
1063 shown on the left side of the frame.
1064
10652020-05-09 Eli Zaretskii <eliz@gnu.org>
1066
1067 Minor clarifications in NEWS
1068
1069 * etc/NEWS: Tell how to revert to previous behaviors regarding
1070 displaying messages when the minibuffer is active. (Bug#41087)
1071
10722020-05-08 Philipp Stephani <phst@google.com>
1073
1074 Improve documentation of 'with-suppressed-warnings'.
1075
1076 * lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): Refer to
1077 'byte-compile-warnings' instead of 'byte-compile-warning-types', as
1078 only the former variable documents the available warning types.
1079
10802020-05-08 Eli Zaretskii <eliz@gnu.org>
1081
1082 Fix a typo in a comment
1083
1084 * lisp/display-fill-column-indicator.el: Fix a typo in a comment.
1085 Suggested by david s <ds@fastmail.com>.
1086
10872020-05-08 Eli Zaretskii <eliz@gnu.org>
1088
1089 Improve documentation of Hi Lock mode
1090
1091 * lisp/hi-lock.el (hi-lock-mode, hi-lock-face-buffer)
1092 (hi-lock-face-phrase-buffer, hi-lock-face-symbol-at-point):
1093 Clarify when 'hi-lock-mode' will use Font Lock and when it will
1094 use overlays. (Bug#41124)
1095
10962020-05-08 Eli Zaretskii <eliz@gnu.org>
1097
1098 Fix typos in the Emacs user manual
1099
1100 * doc/emacs/calendar.texi (Holidays): Fix usage of non-ASCII
1101 accents.
1102 * doc/emacs/custom.texi (Init Rebinding): Fix a cross-reference.
1103 * doc/emacs/dired.texi (Operating on Files): Make the
1104 cross-reference to "VC Delete/Rename" be to a different manual in
1105 the printed version. (Bug#41100)
1106
11072020-05-08 Björn Holby <bjorn.holby@gmail.com> (tiny change)
1108
1109 Fix references to Speedbar in VHDL mode
1110
1111 * lisp/progmodes/vhdl-mode.el (vhdl-speedbar-initialize): Update
1112 references to Speedbar variables. (Bug#41084)
1113
11142020-05-08 Eli Zaretskii <eliz@gnu.org>
1115
1116 Fix handling of FROM = t and TO = t by 'window-text-pixel-size'
1117
1118 * src/xdisp.c (Fwindow_text_pixel_size): Use byte position for
1119 accessing buffer text, not character positions. (Bug#41125)
1120
11212020-05-06 Eli Zaretskii <eliz@gnu.org>
1122
1123 * doc/emacs/modes.texi (Major Modes): Fix quoting. (Bug#41110)
1124
11252020-05-06 Noam Postavsky <npostavs@gmail.com>
1126
1127 Fix docstring quoting
1128
1129 * lisp/gnus/message.el (message-sendmail-extra-arguments): Fix
1130 escaping of quotes in docstring.
1131
11322020-05-06 Noam Postavsky <npostavs@gmail.com>
1133
1134 Revert "cl-loop: Calculate the array length just once"
1135
1136 Don't merge to master. This is a safe-for-release fix for Bug#40727.
1137
11382020-05-06 Noam Postavsky <npostavs@gmail.com>
1139
1140 Revert "cl-loop: Add missing guard condition"
1141
1142 Don't merge to master. This is a safe-for-release fix for Bug#40727.
1143
11442020-05-06 Noam Postavsky <npostavs@gmail.com>
1145
1146 Revert "Refix conditional step clauses in cl-loop"
1147
1148 Don't merge to master. This is a safe-for-release fix for Bug#40727.
1149
11502020-05-05 Eli Zaretskii <eliz@gnu.org>
1151
1152 Improve "Help Summary" section in user manual
1153
1154 * doc/emacs/help.texi (Help Summary): Add cross-references to
1155 sections with details of each Help command.
1156
11572020-05-05 Stefan Kangas <stefankangas@gmail.com>
1158
1159 Clarify message-sendmail-extra-arguments docstring
1160
1161 * lisp/gnus/message.el (message-sendmail-extra-arguments): Clarify
1162 docstring.
1163
11642020-05-05 Philipp Stephani <phst@google.com>
1165
1166 * src/editfns.c (Fformat): Small documentation fix.
1167
11682020-05-04 Alan Mackenzie <acm@muc.de>
1169
1170 Remove calls to non-existent functions from edebug.el.
1171
1172 Do not merge to master.
1173
1174 *lisp/emacs-lisp/edebug.el (edebug--display-1)
1175 (edebug-toggle-disable-breakpoint): Remove calls to
1176 edebug--overlay-breakpoints and edebug--overlay-breakpoints-removed which had
1177 been overlooked in a recent changed to edebug.
1178
11792020-05-04 Dmitry Gutov <dgutov@yandex.ru>
1180
1181 Honor search-upper-case
1182
1183 * lisp/fileloop.el (fileloop--case-fold):
1184 Extract from existing code. Honor search-upper-case (bug#40940).
1185 (fileloop-initialize-replace, fileloop-initialize-search): Use it.
1186 Update the docstring.
1187
11882020-05-04 Basil L. Contovounesios <contovob@tcd.ie>
1189
1190 Fix eww-follow-link on URLs with #target
1191
1192 * lisp/net/eww.el (eww-display-html): Ensure shr-target-id is set as
1193 callers depend on this (bug#28441, bug#40532).
1194
11952020-05-04 Juri Linkov <juri@linkov.net>
1196
1197 Revert part of recent commit 85544f8ef5 (bug#40808)
1198
1199 * lisp/isearch.el (isearch-lazy-highlight-search): Remove recent fix of
1200 lazy-highlighting of hidden matches. In emacs-27 leave only the fix for
1201 lazy-counting of hidden matches when isearch-lazy-count is non-nil.
1202
12032020-05-03 Stefan Kangas <stefankangas@gmail.com>
1204
1205 Improve doc strings of makunbound and fmakunbound
1206
1207 * src/data.c (Fmakunbound, Ffmakunbound): Improve doc
1208 strings. (Bug#41026)
1209
12102020-05-03 Alan Mackenzie <acm@muc.de>
1211
1212 Revert "Mark breakpoints in edebug with highlights". This fixes bug #40992
1213
1214 Do not merge to master.
1215
1216 This reverts commit e8b3a15cb6ff187ce08afcb43bd9a0b7907268ca.
1217
12182020-05-02 Paul Eggert <eggert@cs.ucla.edu>
1219
1220 Make memq etc. examples more like they were
1221
1222 Problem reported by Štěpán Němec in:
1223 https://lists.gnu.org/r/emacs-devel/2020-05/msg00130.html
1224 * doc/lispref/lists.texi (Sets And Lists, Association Lists):
1225 Revert examples to be more like the way they were, using
1226 self-evaluating expressions. Be more consistent about listing
1227 unspecified results.
1228
12292020-05-02 Eli Zaretskii <eliz@gnu.org>
1230
1231 Document effect of 'search-upper-case' on replacement commands
1232
1233 * doc/emacs/search.texi (Replacement and Lax Matches): Document
1234 the role of 'search-upper-case' in replacement commands.
1235 (Lax Search): Document the value 'not-yanks' of
1236 'search-upper-case' where the variable itself is documented.
1237
1238 * lisp/replace.el (query-replace-regexp, query-replace): Mention
1239 'search-upper-case' and its effect in doc strings. (Bug#40940)
1240
12412020-05-01 Eli Zaretskii <eliz@gnu.org>
1242
1243 * lisp/desktop.el (desktop-save): Doc fix. (Bug#41007)
1244
12452020-04-30 Stefan Kangas <stefankangas@gmail.com>
1246
1247 Recommend to avoid unnecessary abbreviations in doc
1248
1249 * doc/lispref/tips.texi (Documentation Tips): Recommend to avoid
1250 unnecessary abbreviations. (Bug#40011)
1251
12522020-04-30 Eli Zaretskii <eliz@gnu.org>
1253
1254 Revert "Fix calculator division truncation (bug#40892)"
1255
1256 This reverts commit 82140c510c4d27e639b4bca1e9bf158f0f66c375.
1257 (Bug#40892)
1258
12592020-04-30 Mattias Engdegård <mattiase@acm.org>
1260
1261 Fix calculator division truncation (bug#40892)
1262
1263 * lisp/calculator.el (calculator-string-to-number): Convert decimal
1264 numbers input to float, fixing a regression introduced in f248292ede.
1265 Reported by Aitor Soroa.
1266
12672020-04-29 Dmitry Gutov <dgutov@yandex.ru>
1268
1269 Expand file name for remote dirs as well
1270
1271 * lisp/progmodes/project.el (project--files-in-directory):
1272 Expand file name for remote dirs as well (bug#40940).
1273
12742020-04-29 Eli Zaretskii <eliz@gnu.org>
1275
1276 Fix project.el commands in "transient" projects
1277
1278 * lisp/progmodes/project.el (project--files-in-directory): Run
1279 local DIR directory names through 'expand-file-name', so that "~/"
1280 is expanded, in case the shell doesn't or the shell's notion of
1281 the home directory is different from that of Emacs. (Bug#40940)
1282
12832020-04-29 Eli Zaretskii <eliz@gnu.org>
1284
1285 Make sure alist-related functions say so in their doc
1286
1287 * src/fns.c (Fassq, assq_no_quit, Fassoc, assoc_no_quit, Frassq)
1288 (Frassoc): Rename argument LIST to ALIST. Doc strings updated.
1289
12902020-04-29 Eli Zaretskii <eliz@gnu.org>
1291
1292 * lisp/env.el (substitute-env-vars): Doc fix. (Bug#40948)
1293
12942020-04-29 Juri Linkov <juri@linkov.net>
1295
1296 * lisp/isearch.el: Fix lazy-highlighting and lazy-counting of hidden matches
1297
1298 * lisp/isearch.el (isearch-lazy-highlight-search): Let-bind
1299 search-invisible to t when search-invisible is 'open' or when both
1300 isearch-lazy-count and search-invisible are non-nil. (Bug#40808)
1301
13022020-04-28 Eli Zaretskii <eliz@gnu.org>
1303
1304 Fix error in ERC when 'erc-server-coding-system' is customized
1305
1306 * lisp/erc/erc-backend.el (erc-split-line): Handle the case where
1307 'erc-coding-system-for-target' returns a coding-system's symbol.
1308 (Bug#40914)
1309
13102020-04-28 Eli Zaretskii <eliz@gnu.org>
1311
1312 Avoid crashes on TTY frames with over-long compositions
1313
1314 * src/term.c (encode_terminal_code): Each character from an
1315 automatic composition is a multibyte character, so its multibyte
1316 representation can take up to MAX_MULTIBYTE_LENGTH bytes.
1317 Account for that when allocating storage for characters to be
1318 encoded. (Bug#40913)
1319
13202020-04-27 Stefan Kangas <stefankangas@gmail.com>
1321
1322 Fix typo in custom.texi
1323
1324 * doc/emacs/custom.texi (Variables): Fix typo. Pointed out by
1325 ej32u@protonmail.com. (Bug#40890)
1326
13272020-04-27 Michael Albinus <michael.albinus@gmx.de>
1328
1329 * test/lisp/simple-tests.el (with-shell-command-dont-erase-buffer):
1330
1331 Use `shell-quote-argument' instead of quoting 'like this'.
1332
13332020-04-27 Juri Linkov <juri@linkov.net>
1334
1335 * lisp/image-mode.el (image-mode-map): Update menu items.
1336
1337 * lisp/image-mode.el (image-mode-map): Move "Fit Image to Window (Best Fit)"
1338 higher. Add "Zoom In" (image-increase-size), "Zoom Out" (image-decrease-size)
1339 and "Rotate Clockwise" (image-rotate). Use name "Set Rotation..."
1340 for image-transform-set-rotation. Swap "Next Image" and "Previous Image".
1341 Swap "Next Frame" and "Previous Frame".
1342
13432020-04-27 Juri Linkov <juri@linkov.net>
1344
1345 Fix bugs in tab-bar and tab-line and mention remaining features in manual.
1346
1347 * doc/emacs/frames.texi (Tab Bars): Mention tab-bar-new-tab-to,
1348 tab-bar-close-last-tab-choice, tab-bar-close-tab-select, tab-undo,
1349 tab-select, tab-bar-history-mode.
1350
1351 * doc/emacs/windows.texi (Tab Line): Mention tab-line-tabs-function.
1352
1353 * lisp/tab-bar.el (tab-bar-select-tab-modifiers): Mention
1354 tab-bar-tab-hints in docstring.
1355 (tab-bar-tab-hints): Mention tab-bar-select-tab-modifiers
1356 in docstring.
1357 (tab-bar-select-tab): Mention tab-bar-select-tab-modifiers
1358 in docstring.
1359 (tab-bar-switch-to-tab): Expand the docstring.
1360 (tab-bar-new-tab-to): Fix bug in handling 'left' value.
1361 (tab-bar-close-tab): Fix bug in handling 'left' value.
1362 (tab-bar-undo-close-tab): Use funcall tab-bar-tabs-function
1363 instead of direct call to tab-bar-tabs.
1364 (tab-bar-history-back, tab-bar-history-forward): Add docstrings.
1365 (tab-bar-history-mode): Expand docstring.
1366
1367 * lisp/tab-line.el (tab-line-format): Fix bug for handling window
1368 switching that should set face 'tab-line-tab-current'.
1369
13702020-04-26 Michael Albinus <michael.albinus@gmx.de>
1371
1372 Make shell-command tests fit for tcsh.
1373
1374 * test/lisp/simple-tests.el (with-shell-command-dont-erase-buffer):
1375 Fix debug spec. Format command to run also under tcsh.
1376 (simple-tests-shell-command-39067)
1377 (simple-tests-shell-command-dont-erase-buffer): Quote newline in string.
1378
13792020-04-25 Paul Eggert <eggert@cs.ucla.edu>
1380
1381 Remove doc duplication
1382
1383 * doc/lispref/objects.texi (Constants and Mutability): Remove
1384 duplication. From a suggestion by Andreas Schwab (Bug#40671#150).
1385
13862020-04-25 Michael Albinus <michael.albinus@gmx.de>
1387
1388 * etc/NEWS: Fix inconsistencies.
1389
13902020-04-25 Noam Postavsky <npostavs@gmail.com>
1391
1392 Clarify semantics of trace-function CONTEXT argument
1393
1394 * lisp/emacs-lisp/trace.el (trace-function-foreground): Explain that
1395 CONTEXT should be a function, when called from Lisp.
1396
13972020-04-25 Noam Postavsky <npostavs@gmail.com>
1398
1399 Don't let a code literal get modified in mml parsing (Bug#39884)
1400
1401 * lisp/gnus/mml.el (mml-parse-1): Make a fresh cons for the tag type,
1402 because 'mml-generate-mime' destructively modifies it.
1403
14042020-04-25 Eli Zaretskii <eliz@gnu.org>
1405
1406 * lisp/simple.el (kill-ring-save): Doc fix. (Bug#40797)
1407
14082020-04-25 Clément Pit-Claudel <cpitclaudel@gmail.com>
1409
1410 Minor doc clarification regarding fringe bitmaps
1411
1412 * doc/lispref/display.texi (Customizing Bitmaps): Add a note
1413 regarding the order of bits being the opposite of that in
1414 XBM images. (Bug#40784)
1415
14162020-04-25 Eli Zaretskii <eliz@gnu.org>
1417
1418 Fix documentation of fringe bitmaps
1419
1420 * doc/lispref/display.texi (Fringe Bitmaps): The 'empty-line'
1421 fringe indicator _is_ used. (Bug#40799)
1422
14232020-04-25 Paul Eggert <eggert@cs.ucla.edu>
1424
1425 Tweak mutability doc a bit more
1426
1427 Inspired by a comment from Michael Heerdegen (Bug#40671#114).
1428 * doc/lispref/objects.texi (Constants and Mutability): Tweak further.
1429
14302020-04-24 Mattias Engdegård <mattiase@acm.org>
1431
1432 Calc: fix autoload errors (bug#40800)
1433
1434 Reported by Hugo Daschbach.
1435
1436 * lisp/calc/calc-ext.el (calc-init-extensions):
1437 Remove calc-kbd-report key binding and autoload; it was removed in 2005.
1438 calc-keypad-x-{left,right,middle}-click were renamed to
1439 calc-keypad-{left,right,middle}-click in 2001; fix the autoloads.
1440 calc-twos-complement-mode is a variable, not a function; remove the
1441 autoload.
1442 * lisp/calc/calc-prog.el: Remove commented-out calc-kbd-report.
1443
14442020-04-24 Stefan Kangas <stefankangas@gmail.com>
1445
1446 Improve indexing of ELisp manual
1447
1448 * doc/lispref/tips.texi (Tips): Add index entry 'best practices'.
1449
14502020-04-24 Juri Linkov <juri@linkov.net>
1451
1452 * lisp/image-mode.el (image-transform-resize): Remove FIXME comment.
1453
1454 The user customizable variable 'image-auto-resize' is documented now
1455 in the manual.
1456
14572020-04-23 Tassilo Horn <tsdh@gnu.org>
1458
1459 Improve the default value of 'doc-view-ghostscript-program'.
1460
1461 * lisp/doc-view.el (doc-view-ghostscript-program): Use plain command
1462 name instead of qualified name returned by executable-find (as
1463 suggested by Stefan Monnier). (Bug#36357)
1464
14652020-04-23 Juri Linkov <juri@linkov.net>
1466
1467 Change doc-view-mode-map prefix key 's' to 'c'.
1468
1469 * doc/emacs/misc.texi (DocView Slicing): Change prefix key 's' to 'c'.
1470
1471 * lisp/doc-view.el (doc-view-mode-map): Change prefix key 's' to 'c'.
1472
1473 * lisp/image-mode.el (image-mode-map): Add image-transform-set-scale to menu.
1474
1475 * doc/emacs/files.texi (Image Mode): Describe commands
1476 image-transform-fit-both, image-transform-set-scale, image-transform-reset.
1477
1478 * etc/NEWS: Rearrange image sections.
1479
1480 https://lists.gnu.org/archive/html/emacs-devel/2020-04/msg01315.html
1481
14822020-04-22 Paul Eggert <eggert@cs.ucla.edu>
1483
1484 Improve wording about constants
1485
1486 Thanks to Štěpán Němec and Drew Adams for reviews of recent changes.
1487 * doc/lispref/eval.texi (Quoting): Give an example.
1488 * doc/lispref/lists.texi (Association Lists): Simplify example code.
1489 * doc/lispref/objects.texi (Lisp Data Types)
1490 (Constants and Mutability): Clarify wording.
1491
14922020-04-22 Tassilo Horn <tsdh@gnu.org>
1493
1494 Improve the default value of 'doc-view-ghostscript-program'.
1495
1496 * lisp/doc-view.el (doc-view-ghostscript-program): On Windows, try
1497 gswin64c, gswin32c, rungs, and mgs. (Bug#36357)
1498
14992020-04-21 Eli Zaretskii <eliz@gnu.org>
1500
1501 Minor improvements in documentation of the last change
1502
1503 * etc/NEWS:
1504 * doc/emacs/files.texi (Image Mode): Minor copyedits of last change.
1505
15062020-04-21 Juri Linkov <juri@linkov.net>
1507
1508 Add image-auto-resize defcustoms to image-mode.el
1509
1510 * lisp/image-mode.el (image-auto-resize)
1511 (image-auto-resize-on-window-resize): New defcustoms.
1512 (image-mode-map): Bind "sb" to image-transform-fit-both.
1513 (image-mode): Set image-transform-resize to image-auto-resize initially.
1514 (image-mode--setup-mode): Add hook on image-auto-resize-on-window-resize.
1515 (image-toggle-display-image): Check if image-transform-resize is t.
1516 (image-transform-properties): Check image-transform-resize for nil and t.
1517 (image-transform-fit-both): New command.
1518 (image-transform-reset): Reset image-transform-resize to image-auto-resize.
1519
1520 * doc/emacs/files.texi (Image Mode): Mention image-auto-resize and
1521 image-auto-resize-on-window-resize.
1522
1523 https://lists.gnu.org/archive/html/emacs-devel/2020-04/msg01160.html
1524
15252020-04-21 Juri Linkov <juri@linkov.net>
1526
1527 Improve the documentation of tab-bar and tab-line
1528
1529 * doc/emacs/frames.texi (Tab Bars): Add xref to "Tab Line".
1530 Document more commands.
1531
1532 * doc/emacs/windows.texi (Windows):
1533 * doc/emacs/emacs.texi (Top): Add "Tab Line" menu.
1534
1535 * doc/emacs/windows.texi (Window Convenience):
1536 Move tab-line documentation to new node "Tab Line".
1537 (Tab Line): New node.
1538
1539 * doc/emacs/glossary.texi (Glossary):
1540 * doc/emacs/modes.texi (Minor Modes):
1541 * doc/emacs/display.texi (Standard Faces): Add xref to "Tab Line".
1542
15432020-04-20 Paul Eggert <eggert@cs.ucla.edu>
1544
1545 Tweak wording re constant variables
1546
1547 * doc/lispref/objects.texi (Constants and Mutability): Tweak.
1548 Problem reported by Michael Heerdegen (Bug#40693#44).
1549
15502020-04-20 Paul Eggert <eggert@cs.ucla.edu>
1551
1552 Tweak setcar-related wording
1553
1554 * doc/lispref/eval.texi (Self-Evaluating Forms):
1555 Change “primitives” to “operations”.
1556 Problem reported by Štěpán Němec in:
1557 https://lists.gnu.org/r/emacs-devel/2020-04/msg01146.html
1558
15592020-04-20 Juri Linkov <juri@linkov.net>
1560
1561 * lisp/image-mode.el: Add prefix key 's' and reduce dependency on ImageMagick.
1562
1563 * lisp/image-mode.el (image-mode-map): Regroup existing keybindings and
1564 add new ones with the prefix key 's'.
1565 Remove condition ":visible (eq image-type 'imagemagick)" from menu.
1566 (image-toggle-display-image): Don't rotate again after user rotated manually.
1567 (image-transform-check-size): Remove check for imagemagick.
1568 (image-transform-properties, image-transform-set-scale)
1569 (image-transform-fit-to-height, image-transform-fit-to-width)
1570 (image-transform-set-rotation, image-transform-reset):
1571 Remove mentions of ImageMagick from docstrings since these commands
1572 now work without ImageMagick.
1573
15742020-04-20 Juri Linkov <juri@linkov.net>
1575
1576 * doc/emacs/windows.texi (Window Convenience): Decribe more windmove features.
1577
1578 * doc/emacs/windows.texi (Window Convenience): Add descriptions of
1579 windmove-display-default-keybindings,
1580 windmove-delete-default-keybindings,
1581 windmove-swap-states-in-direction.
1582
1583 * etc/NEWS: Regroup to move some parts closer to related sections.
1584
15852020-04-20 Paul Eggert <eggert@cs.ucla.edu>
1586
1587 Fix mutability glitches reported by Drew Adams
1588
1589 See Bug#40693#32.
1590 * doc/lispref/eval.texi (Self-Evaluating Forms, Backquote):
1591 Say that these yield constant conses, vectors and strings,
1592 not constant symbols.
1593 * doc/lispref/objects.texi (Constants and Mutability): Say that an
1594 attempt to modify a constant variable signals an error, instead of
1595 saying that it has undefined behavior.
1596
15972020-04-19 Paul Eggert <eggert@cs.ucla.edu>
1598
1599 Improve mutability doc
1600
1601 See Eli Zaretskii’s suggestions (Bug#40671#33).
1602 * doc/lispref/lists.texi (Setcar, Setcdr, Rearrangement):
1603 * doc/lispref/sequences.texi (Sequence Functions)
1604 (Array Functions):
1605 Add commentary to examples.
1606 * doc/lispref/lists.texi (Sets And Lists):
1607 Revert change to delq example.
1608
16092020-04-19 Paul Eggert <eggert@cs.ucla.edu>
1610
1611 Improve mutability documentation
1612
1613 This change was inspired by comments from Štěpán Němec in:
1614 https://lists.gnu.org/r/emacs-devel/2020-04/msg01063.html
1615 * doc/lispref/objects.texi (Lisp Data Types): Mention mutability.
1616 (Constants and mutability): New section.
1617 * doc/lispintro/emacs-lisp-intro.texi (Lists diagrammed)
1618 (Indent Tabs Mode): Improve wording.
1619 * doc/lispref/eval.texi (Self-Evaluating Forms):
1620 Say that they return constants.
1621 * doc/lispref/lists.texi (Sets And Lists):
1622 Fix memql mistake/confusion that I recently introduced.
1623
16242020-04-19 Paul Eggert <eggert@cs.ucla.edu>
1625
1626 Document that quoting yields constants
1627
1628 * doc/lispref/eval.texi (Quoting, Backquote):
1629 Mention that quoted expressions yield a constant (Bug#40693).
1630
16312020-04-19 Stefan Monnier <monnier@iro.umontreal.ca>
1632
1633 * doc/lispref/keymaps.texi (Extended Menu Items, Easy Menu) <:key-sequence>:
1634
1635 Clarify the documentation further
1636
16372020-04-19 Mattias Engdegård <mattiase@acm.org>
1638
1639 Remove #' and function quoting from lambda forms in manual
1640
1641 * doc/lispref/abbrevs.texi (Abbrev Expansion):
1642 * doc/lispref/backups.texi (Reverting):
1643 * doc/lispref/functions.texi (Mapping Functions):
1644 * doc/lispref/help.texi (Accessing Documentation):
1645 * doc/lispref/sequences.texi (Char-Tables):
1646 * doc/lispref/syntax.texi (Categories):
1647 * doc/lispref/text.texi (Sorting):
1648 Remove function quoting from lambda in examples where it still occurs,
1649 since examples should follow our best style and be consistent.
1650
16512020-04-19 Stefan Monnier <monnier@iro.umontreal.ca>
1652
1653 * src/regex-emacs.c (re_match_2_internal): Rework comment in last change
1654
1655 Explain why we don't need to worry about Lisp modifying the buffer.
1656
1657 * src/syntax.c (parse_sexp_propertize): Fix name in error message.
1658
16592020-04-19 Juri Linkov <juri@linkov.net>
1660
1661 Add new node "Image Mode" to Emacs Manual.
1662
1663 * doc/emacs/dired.texi (Image-Dired): Add xref to "Image Mode".
1664
1665 * doc/emacs/emacs.texi (Top): Add new node "Image Mode" to menu.
1666
1667 * doc/emacs/files.texi (Files): Add new node "Image Mode" to menu.
1668 (File Conveniences): Split part of node to new node "Image Mode".
1669
1670 * doc/emacs/frames.texi (Mouse Commands): Add xref to "Image Mode".
1671
1672 * doc/emacs/misc.texi (Embedded WebKit Widgets): Rename xref from
1673 "File Conveniences" to "Image Mode".
1674
16752020-04-18 Paul Eggert <eggert@cs.ucla.edu>
1676
1677 * doc/lispref/display.texi (Customizing Bitmaps): Fix typo.
1678
16792020-04-18 Paul Eggert <eggert@cs.ucla.edu>
1680
1681 Document constant vs mutable objects better
1682
1683 This patch builds on a suggested patch by Mattias Engdegård
1684 and on further comments by Eli Zaretskii.
1685 Original bug report by Kevin Vigouroux (Bug#40671).
1686 * doc/lispintro/emacs-lisp-intro.texi (set & setq, Review)
1687 (setcar, Lists diagrammed, Mail Aliases, Indent Tabs Mode):
1688 setq is a special form, not a function or command.
1689 * doc/lispintro/emacs-lisp-intro.texi (setcar):
1690 * doc/lispref/lists.texi (Modifying Lists, Rearrangement):
1691 * doc/lispref/sequences.texi (Sequence Functions)
1692 (Array Functions, Vectors):
1693 * doc/lispref/strings.texi (String Basics, Modifying Strings):
1694 Mention mutable vs constant objects.
1695 * doc/lispintro/emacs-lisp-intro.texi (setcar, setcdr)
1696 (kill-new function, cons & search-fwd Review):
1697 * doc/lispref/edebug.texi (Printing in Edebug):
1698 * doc/lispref/keymaps.texi (Changing Key Bindings):
1699 * doc/lispref/lists.texi (Setcar, Setcdr, Rearrangement)
1700 (Sets And Lists, Association Lists, Plist Access):
1701 * doc/lispref/sequences.texi (Sequence Functions)
1702 (Array Functions):
1703 * doc/lispref/strings.texi (Text Comparison):
1704 Fix examples so that they do not try to change constants.
1705
17062020-04-18 Eli Zaretskii <eliz@gnu.org>
1707
1708 Improve documentation of 'sort-lines'
1709
1710 * lisp/sort.el (sort-lines): Clarify the interactive invocation.
1711 (Bug#40697)
1712
17132020-04-18 Štěpán Němec <stepnem@gmail.com>
1714
1715 Mention 'spam-stat-process-directory-age' in the documentation
1716
1717 I was at a loss as to why my attempt to set up spam-stat seemed to
1718 have no effect, only to find (digging in the code) that it was
1719 ignoring most of the sample files due to this undocumented variable.
1720
1721 * doc/misc/gnus.texi (Creating a spam-stat dictionary): Document
1722 the variable 'spam-stat-process-directory-age'. (bug#39780)
1723
17242020-04-18 Eli Zaretskii <eliz@gnu.org>
1725
1726 Avoid crashes in regex-emacs.c due to GC
1727
1728 * src/regex-emacs.c (re_match_2_internal): Prevent GC from
1729 invalidating C pointers to buffer text. (Bug#40661)
1730
17312020-04-18 Eli Zaretskii <eliz@gnu.org>
1732
1733 Fix "C-u M-!" when 'shell-command-dont-erase-buffer' is non-nil
1734
1735 * lisp/simple.el (shell-command-dont-erase-buffer): Clarify the
1736 effect of the various values in the doc string.
1737 (shell-command-save-pos-or-erase, shell-command): Don't move or
1738 push point if the output will go to the current buffer.
1739 (Bug#40690)
1740 (shell-command): Mention 'shell-command-dont-erase-buffer' in the
1741 doc string.
1742
1743 * test/lisp/simple-tests.el
1744 (with-shell-command-dont-erase-buffer): Don't is shell quoting
1745 'like this', as it doesn't work on MS-Windows; quote "like this"
1746 instead.
1747 (simple-tests-shell-command-dont-erase-buffer): Adapt the test to
1748 the new modus operandi.
1749
1750 * doc/emacs/misc.texi (Single Shell): Document the effect of the
1751 various values of 'shell-command-dont-erase-buffer'.
1752
1753 * etc/NEWS: Expand and reword the entry regarding changes in
1754 'shell-command-dont-erase-buffer'.
1755
17562020-04-17 Paul Eggert <eggert@cs.ucla.edu>
1757
1758 Fix cl-most-positive-float doc typo
1759
1760 * doc/misc/cl.texi (Implementation Parameters):
1761 Fix typo in documentation of cl-most-positive-float.
1762
17632020-04-16 jakub-w <jakub-w@riseup.net> (tiny change)
1764
1765 Fix a typo in calculator.el
1766
1767 * lisp/calculator.el (calculator-expt): Overflowing exponentiation
1768 caused the function to return -1.0e+INF if the base was an odd,
1769 negative number, no matter what the exponent was.
1770
17712020-04-16 Amin Bandali <bandali@gnu.org>
1772
1773 * lisp/erc/erc.el: Add URL to the new ERC page on the Emacs site
1774
17752020-04-16 Nicolas Petton <nicolas@petton.fr>
1776
1777 Bump Emacs version to 27.0.91
1778
1779 * README:
1780 * configure.ac:
1781 * msdos/sed2v2.inp:
1782 * nt/README.W32: Bump Emacs version.
1783
17842020-04-16 João Távora <joaotavora@gmail.com>
1785
1786 Correct Fido-mode's backspacing of directories with spaces
1787
1788 (Bug#40625)
1789
1790 * lisp/icomplete.el (icomplete-fido-backward-updir): Use
1791 zap-up-to-char.
1792
17932020-04-15 João Távora <joaotavora@gmail.com>
1794
1795 Default completion-flex-nospace to nil
1796
1797 By default, the flex completion style _does_ match spaces.
1798
1799 (Bug#40625)
1800
1801 * lisp/icomplete.el (icomplete--fido-mode-setup): Force
1802 completion-flex-nospace to nil.
1803
1804 * lisp/minibuffer.el (completion-flex-nospace): Default to nil.
1805
18062020-04-15 Eli Zaretskii <eliz@gnu.org>
1807
1808 Improve an example in w32 FAQ
1809
1810 * doc/misc/efaq-w32.texi (Font names): Modify the expression to
1811 insert a lits of all installed fonts so as to avoid producing too
1812 long lines. Suggested by ndame <ndame@protonmail.com>.
1813
18142020-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
1815
1816 * lisp/htmlfontify.el (hfy-force-fontification): Fix bug#40642
1817
1818 Don't presume that `jit-lock-mode` is enabled.
1819 Do not merge to `master`.
1820
18212020-04-15 Nicolas Petton <nicolas@petton.fr>
1822
1823 * admin/authors.el: Add an author alias.
1824
18252020-04-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1826
1827 Limit RLIMIT_NOFILE to FD_SETSIZE on macOS
1828
1829 * src/nsterm.m ([EmacsApp applicationDidFinishLaunching:]): Call
1830 CoreFoundation functions that increase RLIMIT_NOFILE behind our back
1831 during startup, and then set RLIMIT_NOFILE back to FD_SETSIZE to avoid
1832 crashes in setup_process_coding_system (Bug#39164).
1833
18342020-04-15 Martin Rudalics <rudalics@gmx.at>
1835
1836 Fix Elisp manual entry on 'set-window-configuration'
1837
1838 * doc/lispref/windows.texi (Window Configurations): Fix
1839 description of 'set-window-configuration'.
1840
18412020-04-14 Nicolas Petton <nicolas@petton.fr>
1842
1843 * admin/authors.el: Add missing author aliases.
1844
12020-04-14 Mattias Engdegård <mattiase@acm.org> 18452020-04-14 Mattias Engdegård <mattiase@acm.org>
2 1846
3 Fix edge case errors in filename-matching regexps 1847 Fix edge case errors in filename-matching regexps
@@ -140538,7 +142382,7 @@
140538 142382
140539This file records repository revisions from 142383This file records repository revisions from
140540commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to 142384commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to
140541commit 4acdd7fe58ae9f94102afeca67b0383141d597da (inclusive). 142385commit 56f958807c0b8ea8f45e3c088157ca144a1b1fac (inclusive).
140542See ChangeLog.2 for earlier changes. 142386See ChangeLog.2 for earlier changes.
140543 142387
140544;; Local Variables: 142388;; Local Variables:
diff --git a/etc/NEWS.27 b/etc/NEWS.27
index 2c8fa9dd397..a056f5c1e82 100644
--- a/etc/NEWS.27
+++ b/etc/NEWS.27
@@ -31,7 +31,6 @@ arranges for the included mini-gmp library to be built and used.
31The new configure option '--without-libgmp' uses mini-gmp even if a 31The new configure option '--without-libgmp' uses mini-gmp even if a
32suitable libgmp is available. 32suitable libgmp is available.
33 33
34---
35** Emacs can now use HarfBuzz as its shaping engine. 34** Emacs can now use HarfBuzz as its shaping engine.
36The new configure option '--with-harfbuzz' adds support for the 35The new configure option '--with-harfbuzz' adds support for the
37HarfBuzz text shaping engine. It is on by default; use './configure 36HarfBuzz text shaping engine. It is on by default; use './configure
@@ -44,7 +43,6 @@ supported ones, so the font backends that use older shaping engines
44enabled by default; they can be enabled via the 'font-backend' frame 43enabled by default; they can be enabled via the 'font-backend' frame
45parameter or via X resources. 44parameter or via X resources.
46 45
47---
48** The new configure option '--with-json' adds native support for JSON. 46** The new configure option '--with-json' adds native support for JSON.
49This uses the Jansson library. The option is on by default; use 47This uses the Jansson library. The option is on by default; use
50'./configure --with-json=no' to build without Jansson support. The 48'./configure --with-json=no' to build without Jansson support. The
@@ -52,7 +50,6 @@ new JSON functions 'json-serialize', 'json-insert',
52'json-parse-string', and 'json-parse-buffer' are typically much faster 50'json-parse-string', and 'json-parse-buffer' are typically much faster
53than their Lisp counterparts from json.el. 51than their Lisp counterparts from json.el.
54 52
55---
56** The configure option '--with-cairo' is no longer experimental. 53** The configure option '--with-cairo' is no longer experimental.
57This builds Emacs with Cairo drawing, and supports built-in printing 54This builds Emacs with Cairo drawing, and supports built-in printing
58when Emacs is built with GTK+. Some severe bugs in this build were 55when Emacs is built with GTK+. Some severe bugs in this build were
@@ -85,12 +82,10 @@ use the configure-time option '--with-dumping=unexec'; however, please
85file a bug report describing the situation, as unexec dumping is 82file a bug report describing the situation, as unexec dumping is
86deprecated, and we plan on removing it in some future release. 83deprecated, and we plan on removing it in some future release.
87 84
88---
89** The new configure option '--enable-checking=structs' attempts to 85** The new configure option '--enable-checking=structs' attempts to
90check that the portable dumper code has been updated to match the last 86check that the portable dumper code has been updated to match the last
91change to one of the data structures that it relies on. 87change to one of the data structures that it relies on.
92 88
93---
94** The configure options '--enable-checking=conslist' and 89** The configure options '--enable-checking=conslist' and
95'--enable-checking=xmallocoverrun' have been withdrawn. The former 90'--enable-checking=xmallocoverrun' have been withdrawn. The former
96made Emacs irredeemably slow, and the latter made it crash. Neither 91made Emacs irredeemably slow, and the latter made it crash. Neither
@@ -98,19 +93,16 @@ option was useful with modern debugging tools such as AddressSanitizer.
98(See "etc/DEBUG" for the details of using the modern replacements of the 93(See "etc/DEBUG" for the details of using the modern replacements of the
99removed configure options.) 94removed configure options.)
100 95
101---
102** Emacs no longer defaults to using ImageMagick to display images. 96** Emacs no longer defaults to using ImageMagick to display images.
103This is due to security and stability concerns with ImageMagick. To 97This is due to security and stability concerns with ImageMagick. To
104override the default, use 'configure --with-imagemagick'. 98override the default, use 'configure --with-imagemagick'.
105 99
106---
107** Several configure options now accept an option-argument 'ifavailable'. 100** Several configure options now accept an option-argument 'ifavailable'.
108For example, './configure --with-xpm=ifavailable' now configures Emacs 101For example, './configure --with-xpm=ifavailable' now configures Emacs
109to attempt to use libxpm but to continue building even if libxpm is 102to attempt to use libxpm but to continue building even if libxpm is
110absent. The other affected options are '--with-gif', '--with-gnutls', 103absent. The other affected options are '--with-gif', '--with-gnutls',
111'--with-jpeg', '--with-png', and '--with-tiff'. 104'--with-jpeg', '--with-png', and '--with-tiff'.
112 105
113---
114** The 'etags' program now uses the C library's regular expression matcher. 106** The 'etags' program now uses the C library's regular expression matcher.
115If it's possible, 'etags' will use the regexp matcher from the 107If it's possible, 'etags' will use the regexp matcher from the
116system's standard C library, otherwise it will be linked with a 108system's standard C library, otherwise it will be linked with a
@@ -120,7 +112,6 @@ configure option '--without-included-regex' forces 'etags' to use the C
120library's regex matcher even if the regex substitute ordinarily would 112library's regex matcher even if the regex substitute ordinarily would
121be used to work around compatibility problems. 113be used to work around compatibility problems.
122 114
123---
124** Emacs has been ported to the '-fcheck-pointer-bounds' option of GCC. 115** Emacs has been ported to the '-fcheck-pointer-bounds' option of GCC.
125This causes Emacs to check bounds of some arrays addressed by its 116This causes Emacs to check bounds of some arrays addressed by its
126internal pointers, which can be helpful when debugging the Emacs 117internal pointers, which can be helpful when debugging the Emacs
@@ -128,7 +119,6 @@ interpreter or modules that it uses. If your platform supports it you
128can enable it when configuring, e.g., './configure CFLAGS="-g3 -O2 119can enable it when configuring, e.g., './configure CFLAGS="-g3 -O2
129-mmpx -fcheck-pointer-bounds"' on Intel MPX platforms. 120-mmpx -fcheck-pointer-bounds"' on Intel MPX platforms.
130 121
131---
132** Emacs now normally uses a C pointer type instead of a C integer 122** Emacs now normally uses a C pointer type instead of a C integer
133type to implement Lisp_Object, which is the fundamental machine word 123type to implement Lisp_Object, which is the fundamental machine word
134type internal to the Emacs Lisp interpreter. This change aims to 124type internal to the Emacs Lisp interpreter. This change aims to
@@ -137,30 +127,24 @@ option '--enable-check-lisp-object-type' is therefore no longer as
137useful and so is no longer enabled by default in developer builds, 127useful and so is no longer enabled by default in developer builds,
138to reduce differences between developer and production builds. 128to reduce differences between developer and production builds.
139 129
140---
141** The distribution tarball now has test cases; 'make check' runs them. 130** The distribution tarball now has test cases; 'make check' runs them.
142This is intended mostly to help developers. 131This is intended mostly to help developers.
143 132
144---
145** Emacs now requires GTK 2.24 and GTK 3.10 for the GTK 2 and GTK 3 133** Emacs now requires GTK 2.24 and GTK 3.10 for the GTK 2 and GTK 3
146builds respectively. 134builds respectively.
147 135
148---
149** New make target 'help' shows a summary of common make targets. 136** New make target 'help' shows a summary of common make targets.
150 137
151---
152** Emacs now builds with dynamic module support by default. 138** Emacs now builds with dynamic module support by default.
153Pass '--without-modules' to 'configure' to disable dynamic module 139Pass '--without-modules' to 'configure' to disable dynamic module
154support. 140support.
155 141
156---
157** The ftx font backend driver is now obsolete and will be removed in 142** The ftx font backend driver is now obsolete and will be removed in
158Emacs 28. 143Emacs 28.
159 144
160 145
161* Startup Changes in Emacs 27.1 146* Startup Changes in Emacs 27.1
162 147
163+++
164** Emacs can now use the XDG convention for init files. 148** Emacs can now use the XDG convention for init files.
165The 'XDG_CONFIG_HOME' environment variable (which defaults to 149The 'XDG_CONFIG_HOME' environment variable (which defaults to
166"~/.config") specifies the XDG configuration parent directory. Emacs 150"~/.config") specifies the XDG configuration parent directory. Emacs
@@ -180,7 +164,6 @@ Emacs will never create "$XDG_CONFIG_HOME/emacs".
180Whichever directory Emacs decides to use, it will set 164Whichever directory Emacs decides to use, it will set
181'user-emacs-directory' to point to it. 165'user-emacs-directory' to point to it.
182 166
183+++
184** Emacs can now be configured using an early init file. 167** Emacs can now be configured using an early init file.
185The file is called "early-init.el", in 'user-emacs-directory'. It is 168The file is called "early-init.el", in 'user-emacs-directory'. It is
186loaded very early in the startup process: before graphical elements 169loaded very early in the startup process: before graphical elements
@@ -196,7 +179,6 @@ process, and some important parts of the Emacs session, such as
196'window-system' and other GUI features, are not yet set up, which could 179'window-system' and other GUI features, are not yet set up, which could
197make some customization fail to work. 180make some customization fail to work.
198 181
199+++
200** Installed packages are now activated *before* loading the init file. 182** Installed packages are now activated *before* loading the init file.
201As a result of this change, it is no longer necessary to call 183As a result of this change, it is no longer necessary to call
202'package-initialize' in your init file. 184'package-initialize' in your init file.
@@ -218,7 +200,6 @@ it won't work right without some adjustment:
218 does not need to pay attention to 'package-load-list' or 200 does not need to pay attention to 'package-load-list' or
219 'package-user-dir' any more. 201 'package-user-dir' any more.
220 202
221---
222** Emacs now notifies systemd when startup finishes or shutdown begins. 203** Emacs now notifies systemd when startup finishes or shutdown begins.
223Units that are ordered after 'emacs.service' will only be started 204Units that are ordered after 'emacs.service' will only be started
224after Emacs has finished initialization and is ready for use. 205after Emacs has finished initialization and is ready for use.
@@ -229,10 +210,8 @@ the new version of the file again.)
229 210
230* Changes in Emacs 27.1 211* Changes in Emacs 27.1
231 212
232---
233** Emacs now supports Unicode Standard version 13.0. 213** Emacs now supports Unicode Standard version 13.0.
234 214
235+++
236** Emacs now supports resizing and rotating images without ImageMagick. 215** Emacs now supports resizing and rotating images without ImageMagick.
237All modern systems support this feature. (On GNU and Unix systems, 216All modern systems support this feature. (On GNU and Unix systems,
238Cairo drawing or the XRender extension to X11 is required for this to 217Cairo drawing or the XRender extension to X11 is required for this to
@@ -242,12 +221,10 @@ enable scaling.)
242The new function 'image-transforms-p' can be used to test whether any 221The new function 'image-transforms-p' can be used to test whether any
243given frame supports these capabilities. 222given frame supports these capabilities.
244 223
245+++
246** The Network Security Manager now allows more fine-grained control 224** The Network Security Manager now allows more fine-grained control
247of what checks to run via the 'network-security-protocol-checks' 225of what checks to run via the 'network-security-protocol-checks'
248user option. 226user option.
249 227
250+++
251** TLS connections have their security tightened by default. 228** TLS connections have their security tightened by default.
252Most of the checks for outdated, believed-to-be-weak TLS algorithms 229Most of the checks for outdated, believed-to-be-weak TLS algorithms
253and ciphers are now switched on by default. (In addition, several new 230and ciphers are now switched on by default. (In addition, several new
@@ -259,7 +236,6 @@ issued), you can either set 'network-security-protocol-checks' to nil,
259or adjust the elements in that user option to only happen on the 'high' 236or adjust the elements in that user option to only happen on the 'high'
260security level (assuming you use the 'medium' level). 237security level (assuming you use the 'medium' level).
261 238
262---
263** New user option 'nsm-trust-local-network'. 239** New user option 'nsm-trust-local-network'.
264Allows skipping Network Security Manager checks for hosts on your 240Allows skipping Network Security Manager checks for hosts on your
265local subnet(s). It defaults to nil. Usually, there should be no 241local subnet(s). It defaults to nil. Usually, there should be no
@@ -267,21 +243,18 @@ need to set this non-nil, and doing that risks opening your local
267network connections to attacks. So be sure you know what you are 243network connections to attacks. So be sure you know what you are
268doing before changing the value. 244doing before changing the value.
269 245
270+++
271** Native GnuTLS connections can now use client certificates. 246** Native GnuTLS connections can now use client certificates.
272Previously, this support was only available when using the external 247Previously, this support was only available when using the external
273'gnutls-cli' or 'starttls' command. Call 'open-network-stream' with 248'gnutls-cli' or 'starttls' command. Call 'open-network-stream' with
274':client-certificate t' to trigger looking up of per-server 249':client-certificate t' to trigger looking up of per-server
275certificates via 'auth-source'. 250certificates via 'auth-source'.
276 251
277+++
278** New user option 'network-stream-use-client-certificates'. 252** New user option 'network-stream-use-client-certificates'.
279When non-nil, 'open-network-stream' performs lookups of client 253When non-nil, 'open-network-stream' performs lookups of client
280certificates using 'auth-source' as if ':client-certificate t' were 254certificates using 'auth-source' as if ':client-certificate t' were
281specified if there is no explicit ':client-certificate' parameter. 255specified if there is no explicit ':client-certificate' parameter.
282Defaults to nil. 256Defaults to nil.
283 257
284+++
285** 'next/previous-multiframe-window' have been renamed. 258** 'next/previous-multiframe-window' have been renamed.
286The new names are as follows: 259The new names are as follows:
287 260
@@ -292,12 +265,10 @@ The old function names are maintained as aliases for backward
292compatibility. 265compatibility.
293 266
294** emacsclient 267** emacsclient
295+++
296*** emacsclient now supports the 'EMACS_SOCKET_NAME' environment variable. 268*** emacsclient now supports the 'EMACS_SOCKET_NAME' environment variable.
297The command-line argument '--socket-name' overrides it. 269The command-line argument '--socket-name' overrides it.
298(The same behavior as for the pre-existing 'EMACS_SERVER_FILE' variable.) 270(The same behavior as for the pre-existing 'EMACS_SERVER_FILE' variable.)
299 271
300+++
301*** Emacs and emacsclient now default to "$XDG_RUNTIME_DIR/emacs". 272*** Emacs and emacsclient now default to "$XDG_RUNTIME_DIR/emacs".
302This is used as the directory for client/server sockets, if Emacs is 273This is used as the directory for client/server sockets, if Emacs is
303running on a platform or environment that sets the 'XDG_RUNTIME_DIR' 274running on a platform or environment that sets the 'XDG_RUNTIME_DIR'
@@ -305,11 +276,9 @@ environment variable to indicate where session sockets should go.
305To get the old, less-secure behavior, you can set the 276To get the old, less-secure behavior, you can set the
306'EMACS_SOCKET_NAME' environment variable to an appropriate value. 277'EMACS_SOCKET_NAME' environment variable to an appropriate value.
307 278
308---
309*** When run by root, emacsclient no longer connects to non-root sockets. 279*** When run by root, emacsclient no longer connects to non-root sockets.
310(Instead you can use Tramp methods to run root commands in a non-root Emacs.) 280(Instead you can use Tramp methods to run root commands in a non-root Emacs.)
311 281
312---
313** 'xft-ignore-color-fonts' now ignores even more color fonts. 282** 'xft-ignore-color-fonts' now ignores even more color fonts.
314There are color fonts that managed to bypass the existing checks, 283There are color fonts that managed to bypass the existing checks,
315causing XFT crashes, they are now filtered out. Setting 284causing XFT crashes, they are now filtered out. Setting
@@ -317,45 +286,36 @@ causing XFT crashes, they are now filtered out. Setting
317require setting 'face-ignored-fonts' to filter out problematic fonts. 286require setting 'face-ignored-fonts' to filter out problematic fonts.
318Known problematic fonts are "Noto Color Emoji" and "Emoji One". 287Known problematic fonts are "Noto Color Emoji" and "Emoji One".
319 288
320---
321** The GTK+ font chooser now respects 'face-ignored-fonts'. 289** The GTK+ font chooser now respects 'face-ignored-fonts'.
322When using 'menu-set-font' under GTK3, the available fonts are now 290When using 'menu-set-font' under GTK3, the available fonts are now
323matched against 'face-ignored-fonts'. 291matched against 'face-ignored-fonts'.
324 292
325---
326** The GTK+ font chooser now remembers the previously selected settings. 293** The GTK+ font chooser now remembers the previously selected settings.
327It now remembers the name, size, style, etc. 294It now remembers the name, size, style, etc.
328 295
329+++
330** New user option 'what-cursor-show-names'. 296** New user option 'what-cursor-show-names'.
331When non-nil, 'what-cursor-position' will show the name of the character 297When non-nil, 'what-cursor-position' will show the name of the character
332in addition to the decimal/hex/octal representation. Default nil. 298in addition to the decimal/hex/octal representation. Default nil.
333 299
334+++
335** New function 'network-lookup-address-info'. 300** New function 'network-lookup-address-info'.
336This does IPv4 and/or IPv6 address lookups on hostnames. 301This does IPv4 and/or IPv6 address lookups on hostnames.
337 302
338+++
339** 'network-interface-list' can now return IPv4 and IPv6 addresses. 303** 'network-interface-list' can now return IPv4 and IPv6 addresses.
340IPv4 and IPv6 addresses are now returned by default if available, 304IPv4 and IPv6 addresses are now returned by default if available,
341optionally including netmask/broadcast address information. 305optionally including netmask/broadcast address information.
342 306
343---
344** Control of the threshold for using the 'distant-foreground' color. 307** Control of the threshold for using the 'distant-foreground' color.
345The threshold for color distance below which the 'distant-foreground' 308The threshold for color distance below which the 'distant-foreground'
346color of the face will be used instead of the foreground color can now 309color of the face will be used instead of the foreground color can now
347be controlled via the new variable 'face-near-same-color-threshold'. 310be controlled via the new variable 'face-near-same-color-threshold'.
348The default value is 30000, as the previously hard-coded threshold. 311The default value is 30000, as the previously hard-coded threshold.
349 312
350+++
351** The function 'read-passwd' uses "*" as default character to hide passwords. 313** The function 'read-passwd' uses "*" as default character to hide passwords.
352 314
353+++
354** The function 'read-answer' now accepts not only single character 315** The function 'read-answer' now accepts not only single character
355answers, but also function keys like 'F1', character events such as 316answers, but also function keys like 'F1', character events such as
356'C-M-h', and control characters like 'C-h'. 317'C-M-h', and control characters like 'C-h'.
357 318
358+++
359** Lexical binding is now used by default when evaluating interactive Elisp. 319** Lexical binding is now used by default when evaluating interactive Elisp.
360More specifically, 'lexical-binding' is now used by default for 'M-:' 320More specifically, 'lexical-binding' is now used by default for 'M-:'
361and '--eval' (including in evaluations invoked from 'emacsclient' via 321and '--eval' (including in evaluations invoked from 'emacsclient' via
@@ -371,19 +331,16 @@ to work with lexical binding, or wrap it in an extra level of 'eval'.
371For example, --eval "FORM" becomes --eval "(eval 'FORM)" (note the extra 331For example, --eval "FORM" becomes --eval "(eval 'FORM)" (note the extra
372quote in 'FORM). 332quote in 'FORM).
373 333
374---
375** The new user option 'tooltip-resize-echo-area' avoids truncating 334** The new user option 'tooltip-resize-echo-area' avoids truncating
376tooltip text on GUI frames when tooltips are displayed in the echo 335tooltip text on GUI frames when tooltips are displayed in the echo
377area. Instead, it resizes the echo area as needed to accommodate the 336area. Instead, it resizes the echo area as needed to accommodate the
378full tool-tip text. 337full tool-tip text.
379 338
380---
381** Show mode line tooltips only if the corresponding action applies. 339** Show mode line tooltips only if the corresponding action applies.
382Customize the user option 'mode-line-default-help-echo' to restore the 340Customize the user option 'mode-line-default-help-echo' to restore the
383old behavior where the tooltip text is also shown when the 341old behavior where the tooltip text is also shown when the
384corresponding action does not apply. 342corresponding action does not apply.
385 343
386+++
387** New hook 'server-after-make-frame-hook'. 344** New hook 'server-after-make-frame-hook'.
388This hook is a convenient place to perform initializations in daemon 345This hook is a convenient place to perform initializations in daemon
389mode which require GUI features to be available. One example is 346mode which require GUI features to be available. One example is
@@ -392,15 +349,12 @@ the call to 'desktop-read' in this hook, if you want the GUI settings
392to be restored, or if desktop.el needs to interact with you during 349to be restored, or if desktop.el needs to interact with you during
393restoration of the session. 350restoration of the session.
394 351
395+++
396** The functions 'set-frame-height' and 'set-frame-width' are now 352** The functions 'set-frame-height' and 'set-frame-width' are now
397commands, and will set the currently selected frame to the height/ 353commands, and will set the currently selected frame to the height/
398width specified by the numeric prefix. 354width specified by the numeric prefix.
399 355
400+++
401** New function 'logcount' calculates an integer's Hamming weight. 356** New function 'logcount' calculates an integer's Hamming weight.
402 357
403+++
404** New function 'libxml-available-p'. 358** New function 'libxml-available-p'.
405This function returns non-nil if libxml support is both compiled in 359This function returns non-nil if libxml support is both compiled in
406and available at run time. Lisp programs should use this function to 360and available at run time. Lisp programs should use this function to
@@ -408,7 +362,6 @@ detect built-in libxml support, instead of testing for that
408indirectly, e.g., by checking that functions like 362indirectly, e.g., by checking that functions like
409'libxml-parse-html-region' return nil. 363'libxml-parse-html-region' return nil.
410 364
411+++
412** 'libxml-parse-xml-region' and 'libxml-parse-html-region' take 365** 'libxml-parse-xml-region' and 'libxml-parse-html-region' take
413a parameter that's called DISCARD-COMMENTS, but it really only 366a parameter that's called DISCARD-COMMENTS, but it really only
414discards the top-level comment. Therefore this parameter is now 367discards the top-level comment. Therefore this parameter is now
@@ -416,83 +369,67 @@ obsolete, and the new utility function 'xml-remove-comments' can be
416used to remove comments before calling the libxml functions to parse 369used to remove comments before calling the libxml functions to parse
417the data. 370the data.
418 371
419+++
420** A new DOM (the XML/HTML document structure returned by functions 372** A new DOM (the XML/HTML document structure returned by functions
421such as 'libxml-parse-html-region') traversal function has been added: 373such as 'libxml-parse-html-region') traversal function has been added:
422'dom-search', which takes a DOM and a predicate and returns all nodes 374'dom-search', which takes a DOM and a predicate and returns all nodes
423that match. 375that match.
424 376
425+++
426** New function 'fill-polish-nobreak-p', to be used in 'fill-nobreak-predicate'. 377** New function 'fill-polish-nobreak-p', to be used in 'fill-nobreak-predicate'.
427It blocks line breaking after a one-letter word, also in the case when 378It blocks line breaking after a one-letter word, also in the case when
428this word is preceded by a non-space, but non-alphanumeric character. 379this word is preceded by a non-space, but non-alphanumeric character.
429 380
430+++
431** The limit on repetitions in regexps has been raised to 2^16-1. 381** The limit on repetitions in regexps has been raised to 2^16-1.
432It was previously limited to 2^15-1. For example, the following 382It was previously limited to 2^15-1. For example, the following
433regular expression was previously invalid, but is now accepted: 383regular expression was previously invalid, but is now accepted:
434 384
435 x\{32768\} 385 x\{32768\}
436 386
437---
438** The German prefix and postfix input methods now support Capital sharp S. 387** The German prefix and postfix input methods now support Capital sharp S.
439 388
440---
441** New input methods 'hawaiian-postfix' and 'hawaiian-prefix'. 389** New input methods 'hawaiian-postfix' and 'hawaiian-prefix'.
442 390
443---
444** New input methods 'georgian-qwerty' and 'georgian-nuskhuri'. 391** New input methods 'georgian-qwerty' and 'georgian-nuskhuri'.
445 392
446---
447** New input methods for several variants of the Sami language. 393** New input methods for several variants of the Sami language.
448The Sami input methods include: 'norwegian-sami-prefix', 394The Sami input methods include: 'norwegian-sami-prefix',
449'bergsland-hasselbrink-sami-prefix', 'southern-sami-prefix', 395'bergsland-hasselbrink-sami-prefix', 'southern-sami-prefix',
450'ume-sami-prefix', 'northern-sami-prefix', 'inari-sami-prefix', 396'ume-sami-prefix', 'northern-sami-prefix', 'inari-sami-prefix',
451'skolt-sami-prefix', and 'kildin-sami-prefix'. 397'skolt-sami-prefix', and 'kildin-sami-prefix'.
452 398
453+++
454** Japanese environments use UTF-8 by default. 399** Japanese environments use UTF-8 by default.
455In Japanese environments that do not specify encodings and are not 400In Japanese environments that do not specify encodings and are not
456based on MS-Windows, the default encoding is now utf-8 instead of 401based on MS-Windows, the default encoding is now utf-8 instead of
457japanese-iso-8bit. 402japanese-iso-8bit.
458 403
459+++
460** New function 'exec-path'. 404** New function 'exec-path'.
461This function by default returns the value of the corresponding 405This function by default returns the value of the corresponding
462user option, but can optionally return the equivalent of 'exec-path' 406user option, but can optionally return the equivalent of 'exec-path'
463from a remote host. 407from a remote host.
464 408
465+++
466** The function 'executable-find' supports an optional argument REMOTE. 409** The function 'executable-find' supports an optional argument REMOTE.
467This triggers searching for the program on the remote host as indicated by 410This triggers searching for the program on the remote host as indicated by
468'default-directory'. 411'default-directory'.
469 412
470+++
471** New user option 'auto-save-no-message'. 413** New user option 'auto-save-no-message'.
472When set to t, no message will be shown when auto-saving (default 414When set to t, no message will be shown when auto-saving (default
473value: nil). 415value: nil).
474 416
475---
476** The value of 'make-cursor-line-fully-visible' can now be a function. 417** The value of 'make-cursor-line-fully-visible' can now be a function.
477In addition to nil or non-nil, the value can now be a predicate 418In addition to nil or non-nil, the value can now be a predicate
478function. Follow mode uses this to control scrolling of its windows 419function. Follow mode uses this to control scrolling of its windows
479when the last screen line in a window is not fully visible. 420when the last screen line in a window is not fully visible.
480 421
481+++
482** New variable 'emacs-repository-branch'. 422** New variable 'emacs-repository-branch'.
483It reports the git branch from which Emacs was built. 423It reports the git branch from which Emacs was built.
484 424
485+++
486** New user option 'switch-to-buffer-obey-display-actions'. 425** New user option 'switch-to-buffer-obey-display-actions'.
487When non-nil, 'switch-to-buffer' uses 'pop-to-buffer-same-window' that 426When non-nil, 'switch-to-buffer' uses 'pop-to-buffer-same-window' that
488respects display actions specified by 'display-buffer-alist' and 427respects display actions specified by 'display-buffer-alist' and
489'display-buffer-overriding-action'. 428'display-buffer-overriding-action'.
490 429
491+++
492** The user option 'switch-to-visible-buffer' is now obsolete. 430** The user option 'switch-to-visible-buffer' is now obsolete.
493Customize 'switch-to-prev-buffer-skip' instead. 431Customize 'switch-to-prev-buffer-skip' instead.
494 432
495+++
496** New user option 'switch-to-prev-buffer-skip'. 433** New user option 'switch-to-prev-buffer-skip'.
497This user option allows specifying the set of buffers that may be 434This user option allows specifying the set of buffers that may be
498shown by 'switch-to-prev-buffer' and 'switch-to-next-buffer' more 435shown by 'switch-to-prev-buffer' and 'switch-to-next-buffer' more
@@ -504,10 +441,8 @@ matches strings where the pattern appears as a subsequence. Put
504simply, makes "foo" complete to both "barfoo" and "frodo". Add 'flex' 441simply, makes "foo" complete to both "barfoo" and "frodo". Add 'flex'
505to 'completion-styles' or 'completion-category-overrides' to use it. 442to 'completion-styles' or 'completion-category-overrides' to use it.
506 443
507---
508** The 'completion-common-part' face is now visible by default. 444** The 'completion-common-part' face is now visible by default.
509 445
510+++
511** New face attribute ':extend' to control face extension at EOL. 446** New face attribute ':extend' to control face extension at EOL.
512The new face attribute ':extend' controls whether to use the face for 447The new face attribute ':extend' controls whether to use the face for
513displaying the empty space beyond end of line (EOL) till the edge of 448displaying the empty space beyond end of line (EOL) till the edge of
@@ -524,32 +459,25 @@ Consequently, a theme generally shouldn't specify this attribute
524unless it has a good reason to do so. 459unless it has a good reason to do so.
525 460
526** Connection-local variables 461** Connection-local variables
527+++
528*** Connection-local variables are applied by default like file-local 462*** Connection-local variables are applied by default like file-local
529and directory-local variables. 463and directory-local variables.
530 464
531+++
532*** The macro 'with-connection-local-variables' has been renamed from 465*** The macro 'with-connection-local-variables' has been renamed from
533'with-connection-local-profiles'. No argument PROFILES needed any longer. 466'with-connection-local-profiles'. No argument PROFILES needed any longer.
534 467
535---
536** New user option 'next-error-verbose' controls when 'next-error' 468** New user option 'next-error-verbose' controls when 'next-error'
537outputs a message about the error locus. 469outputs a message about the error locus.
538 470
539---
540** New user option 'grep-search-path' defines the directories searched for 471** New user option 'grep-search-path' defines the directories searched for
541grep hits (this used to be controlled by 'compilation-search-path'). 472grep hits (this used to be controlled by 'compilation-search-path').
542 473
543---
544** New user option 'emacs-lisp-compilation-search-path' defines the 474** New user option 'emacs-lisp-compilation-search-path' defines the
545directories searched for byte-compiler error messages (this used to 475directories searched for byte-compiler error messages (this used to
546be controlled by 'compilation-search-path'). 476be controlled by 'compilation-search-path').
547 477
548---
549** Multicolor fonts such as "Noto Color Emoji" can be displayed on 478** Multicolor fonts such as "Noto Color Emoji" can be displayed on
550Emacs configured with Cairo drawing and linked with cairo >= 1.16.0. 479Emacs configured with Cairo drawing and linked with cairo >= 1.16.0.
551 480
552+++
553** Emacs now optionally displays a fill column indicator. 481** Emacs now optionally displays a fill column indicator.
554This is similar to what 'fill-column-indicator' package provides, but 482This is similar to what 'fill-column-indicator' package provides, but
555much faster and compatible with 'show-trailing-whitespace'. 483much faster and compatible with 'show-trailing-whitespace'.
@@ -564,46 +492,36 @@ in tooltips, as it is not useful there.
564There are 2 new buffer local variables and 1 face to customize this 492There are 2 new buffer local variables and 1 face to customize this
565mode, they are described in the manual "(emacs) Display". 493mode, they are described in the manual "(emacs) Display".
566 494
567+++
568** 'progress-reporter-update' now accepts an optional suffix string to display. 495** 'progress-reporter-update' now accepts an optional suffix string to display.
569 496
570---
571** New user option 'xref-file-name-display' controls the display of 497** New user option 'xref-file-name-display' controls the display of
572file names in xref buffers. 498file names in xref buffers.
573 499
574---
575** New user option 'byte-count-to-string-function'. 500** New user option 'byte-count-to-string-function'.
576It is used for displaying file sizes and disk space in some cases. 501It is used for displaying file sizes and disk space in some cases.
577 502
578+++
579** Emacs now interprets RGB triplets like HTML, SVG, and CSS do. 503** Emacs now interprets RGB triplets like HTML, SVG, and CSS do.
580The X convention previously used differed slightly, particularly for 504The X convention previously used differed slightly, particularly for
581RGB triplets with a single hexadecimal digit per component. 505RGB triplets with a single hexadecimal digit per component.
582 506
583---
584** The toolbar now shows the equivalent key binding in its tooltips. 507** The toolbar now shows the equivalent key binding in its tooltips.
585 508
586---
587** The File menu-bar menu was re-arranged. 509** The File menu-bar menu was re-arranged.
588Print menu items moved to submenu, and also added the new entries for tabs. 510Print menu items moved to submenu, and also added the new entries for tabs.
589 511
590---
591** 'scroll-lock-mode' is now bound to the 'Scroll_Lock' key globally. 512** 'scroll-lock-mode' is now bound to the 'Scroll_Lock' key globally.
592Note that this key binding will not work on MS-Windows systems if 513Note that this key binding will not work on MS-Windows systems if
593'w32-scroll-lock-modifier' is non-nil. 514'w32-scroll-lock-modifier' is non-nil.
594 515
595---
596** 'global-set-key', called interactively, now no longer downcases a 516** 'global-set-key', called interactively, now no longer downcases a
597key binding with an upper case letter - if you can type it, you can 517key binding with an upper case letter - if you can type it, you can
598bind it. 518bind it.
599 519
600+++
601** 'read-from-minibuffer' now works with buffer-local history variables. 520** 'read-from-minibuffer' now works with buffer-local history variables.
602The HIST argument of 'read-from-minibuffer' now works correctly with 521The HIST argument of 'read-from-minibuffer' now works correctly with
603buffer-local variables. This means that different buffers can have 522buffer-local variables. This means that different buffers can have
604their own separated input history list if desired. 523their own separated input history list if desired.
605 524
606+++
607** 'backup-by-copying-when-privileged-mismatch' applies to file gid, too. 525** 'backup-by-copying-when-privileged-mismatch' applies to file gid, too.
608In addition to checking the file owner uid, Emacs also checks that the 526In addition to checking the file owner uid, Emacs also checks that the
609group gid is not greater than 'backup-by-copying-when-privileged-mismatch'; 527group gid is not greater than 'backup-by-copying-when-privileged-mismatch';
@@ -612,48 +530,39 @@ if so, 'backup-by-copying-when-mismatch' will be forced on.
612 530
613* Editing Changes in Emacs 27.1 531* Editing Changes in Emacs 27.1
614 532
615+++
616** When asked to visit a large file, Emacs now offers to visit it literally. 533** When asked to visit a large file, Emacs now offers to visit it literally.
617Previously, Emacs would only ask for confirmation before visiting 534Previously, Emacs would only ask for confirmation before visiting
618large files. Now it also offers a third alternative: to visit the 535large files. Now it also offers a third alternative: to visit the
619file literally, as in 'find-file-literally', which speeds up 536file literally, as in 'find-file-literally', which speeds up
620navigation and editing of large files. 537navigation and editing of large files.
621 538
622+++
623** 'zap-to-char' now uses the history of characters you used to zap to. 539** 'zap-to-char' now uses the history of characters you used to zap to.
624'zap-to-char' uses the new 'read-char-from-minibuffer' function to allow 540'zap-to-char' uses the new 'read-char-from-minibuffer' function to allow
625navigating through the history of characters that have been input. 541navigating through the history of characters that have been input.
626This is mostly useful for characters that have complex input methods 542This is mostly useful for characters that have complex input methods
627where inputting the character again may involve many keystrokes. 543where inputting the character again may involve many keystrokes.
628 544
629+++
630** 'save-some-buffers' now has a new action in the prompt: 'C-f' will 545** 'save-some-buffers' now has a new action in the prompt: 'C-f' will
631exit the command and switch to the buffer currently being asked about. 546exit the command and switch to the buffer currently being asked about.
632 547
633---
634** More commands support noncontiguous rectangular regions, namely 548** More commands support noncontiguous rectangular regions, namely
635'upcase-dwim', 'downcase-dwim', 'capitalize-dwim', 'capitalize-region', 549'upcase-dwim', 'downcase-dwim', 'capitalize-dwim', 'capitalize-region',
636'upcase-initials-region', 'replace-string', 'replace-regexp', and 550'upcase-initials-region', 'replace-string', 'replace-regexp', and
637'delimit-columns-region'. 551'delimit-columns-region'.
638 552
639+++
640** The new 'amalgamating-undo-limit' variable can be used to control 553** The new 'amalgamating-undo-limit' variable can be used to control
641how many changes should be amalgamated when using the 'undo' command. 554how many changes should be amalgamated when using the 'undo' command.
642 555
643---
644** The 'newline-and-indent' command (commonly bound to 'RET' in many 556** The 'newline-and-indent' command (commonly bound to 'RET' in many
645modes) now takes an optional numeric argument to specify how many 557modes) now takes an optional numeric argument to specify how many
646times is should insert newlines (and indent). 558times is should insert newlines (and indent).
647 559
648+++
649** New command 'make-empty-file'. 560** New command 'make-empty-file'.
650 561
651---
652** New variable 'x-wait-for-event-timeout'. 562** New variable 'x-wait-for-event-timeout'.
653This controls how long Emacs will wait for updates to the graphical 563This controls how long Emacs will wait for updates to the graphical
654state to take effect (making a frame visible, for example). 564state to take effect (making a frame visible, for example).
655 565
656+++
657** New user option 'electric-quote-replace-double'. 566** New user option 'electric-quote-replace-double'.
658This option controls whether '"' is replaced in 'electric-quote-mode', 567This option controls whether '"' is replaced in 'electric-quote-mode',
659in addition to other quote characters. If non-nil, ASCII double-quote 568in addition to other quote characters. If non-nil, ASCII double-quote
@@ -661,59 +570,48 @@ characters that quote text "like this" are replaced by double
661typographic quotes, “like this”, in text modes, and in comments in 570typographic quotes, “like this”, in text modes, and in comments in
662non-text modes. 571non-text modes.
663 572
664---
665** New user option 'flyspell-case-fold-duplications'. 573** New user option 'flyspell-case-fold-duplications'.
666This option controls whether Flyspell mode considers consecutive words 574This option controls whether Flyspell mode considers consecutive words
667to be duplicates if they are not in the same case. If non-nil, the 575to be duplicates if they are not in the same case. If non-nil, the
668default, words are considered to be duplicates even if their letters' 576default, words are considered to be duplicates even if their letters'
669case does not match. 577case does not match.
670 578
671---
672** 'write-abbrev-file' now includes special properties. 579** 'write-abbrev-file' now includes special properties.
673'write-abbrev-file' now writes special properties like ':case-fixed' 580'write-abbrev-file' now writes special properties like ':case-fixed'
674for abbrevs that have them. 581for abbrevs that have them.
675 582
676+++
677** 'write-abbrev-file' skips empty tables. 583** 'write-abbrev-file' skips empty tables.
678'write-abbrev-file' now skips inserting a 'define-abbrev-table' form for 584'write-abbrev-file' now skips inserting a 'define-abbrev-table' form for
679tables which do not have any non-system abbrevs to save. 585tables which do not have any non-system abbrevs to save.
680 586
681+++
682** The new functions and commands 'text-property-search-forward' and 587** The new functions and commands 'text-property-search-forward' and
683'text-property-search-backward' have been added. These provide an 588'text-property-search-backward' have been added. These provide an
684interface that's more like functions like 'search-forward'. 589interface that's more like functions like 'search-forward'.
685 590
686---
687** 'add-dir-local-variable' now uses dotted pair notation syntax to 591** 'add-dir-local-variable' now uses dotted pair notation syntax to
688write alists of variables to ".dir-locals.el". This is the same 592write alists of variables to ".dir-locals.el". This is the same
689syntax that you can see in the example of a ".dir-locals.el" file in 593syntax that you can see in the example of a ".dir-locals.el" file in
690the node "(emacs) Directory Variables" of the user manual. 594the node "(emacs) Directory Variables" of the user manual.
691 595
692+++
693** Network connections using 'local' can now use IPv6. 596** Network connections using 'local' can now use IPv6.
694'make-network-process' now uses the correct loopback address when 597'make-network-process' now uses the correct loopback address when
695asked to use ':host 'local' and ':family 'ipv6'. 598asked to use ':host 'local' and ':family 'ipv6'.
696 599
697+++
698** The new function 'replace-region-contents' replaces the current 600** The new function 'replace-region-contents' replaces the current
699region using a given replacement-function in a non-destructive manner 601region using a given replacement-function in a non-destructive manner
700(in terms of 'replace-buffer-contents'). 602(in terms of 'replace-buffer-contents').
701 603
702+++
703** The command 'replace-buffer-contents' now has two optional 604** The command 'replace-buffer-contents' now has two optional
704arguments mitigating performance issues when operating on huge 605arguments mitigating performance issues when operating on huge
705buffers. 606buffers.
706 607
707+++
708** Dragging 'C-M-mouse-1' now marks rectangular regions. 608** Dragging 'C-M-mouse-1' now marks rectangular regions.
709 609
710+++
711** The command 'delete-indentation' now operates on the active region. 610** The command 'delete-indentation' now operates on the active region.
712If the region is active, the command joins all the lines in the 611If the region is active, the command joins all the lines in the
713region. When there's no active region, the command works on the 612region. When there's no active region, the command works on the
714current and the previous or the next line, as before. 613current and the previous or the next line, as before.
715 614
716+++
717** You can now change the font size with the mouse wheel. 615** You can now change the font size with the mouse wheel.
718Scrolling the mouse wheel with the Ctrl key pressed will now act the 616Scrolling the mouse wheel with the Ctrl key pressed will now act the
719same as the 'C-x C-+' and 'C-x C--' commands. 617same as the 'C-x C-+' and 'C-x C--' commands.
@@ -721,18 +619,15 @@ same as the 'C-x C-+' and 'C-x C--' commands.
721 619
722* Changes in Specialized Modes and Packages in Emacs 27.1 620* Changes in Specialized Modes and Packages in Emacs 27.1
723 621
724---
725** New HTML mode skeleton 'html-id-anchor'. 622** New HTML mode skeleton 'html-id-anchor'.
726This new command (which inserts an <a id="foo">_</a> skeleton) is 623This new command (which inserts an <a id="foo">_</a> skeleton) is
727bound to 'C-c C-c #'. 624bound to 'C-c C-c #'.
728 625
729+++
730** New command 'font-lock-refontify'. 626** New command 'font-lock-refontify'.
731This is an interactive convenience function to be used when developing 627This is an interactive convenience function to be used when developing
732font locking for a mode. It recomputes the font locking data and then 628font locking for a mode. It recomputes the font locking data and then
733re-fontifies the buffer. 629re-fontifies the buffer.
734 630
735---
736** Font Lock is smarter about fontifying unterminated strings and comments. 631** Font Lock is smarter about fontifying unterminated strings and comments.
737When you type a quote that starts a string, or a comment delimiter 632When you type a quote that starts a string, or a comment delimiter
738that starts a comment, font-lock will not immediately refontify the 633that starts a comment, font-lock will not immediately refontify the
@@ -743,28 +638,22 @@ comment. This is controlled by the new user option
743'jit-lock-antiblink-grace', which specifies the delay in seconds. The 638'jit-lock-antiblink-grace', which specifies the delay in seconds. The
744default is 2 seconds; set to nil to get back the old behavior. 639default is 2 seconds; set to nil to get back the old behavior.
745 640
746---
747** The 'C' command in 'tar-mode' will now preserve the timestamp of 641** The 'C' command in 'tar-mode' will now preserve the timestamp of
748the extracted file if the new user option 'tar-copy-preserve-time' is 642the extracted file if the new user option 'tar-copy-preserve-time' is
749non-nil. 643non-nil.
750 644
751---
752** 'autoconf-mode' is now used instead of 'm4-mode' for the 645** 'autoconf-mode' is now used instead of 'm4-mode' for the
753"acinclude.m4" / "aclocal.m4" / "acsite.m4" files. 646"acinclude.m4" / "aclocal.m4" / "acsite.m4" files.
754 647
755---
756** On GNU/Linux, 'M-x battery' will now list all batteries, no matter 648** On GNU/Linux, 'M-x battery' will now list all batteries, no matter
757what they're named, and the 'battery-linux-sysfs-regexp' variable has 649what they're named, and the 'battery-linux-sysfs-regexp' variable has
758been removed. 650been removed.
759 651
760---
761** The 'list-processes' command now includes port numbers in the 652** The 'list-processes' command now includes port numbers in the
762network connection information (in addition to the host name). 653network connection information (in addition to the host name).
763 654
764---
765** The 'cl' package is now officially deprecated in favor of 'cl-lib'. 655** The 'cl' package is now officially deprecated in favor of 'cl-lib'.
766 656
767---
768** desktop 657** desktop
769 658
770*** When called interactively with a prefix arg 'C-u', 'desktop-read' 659*** When called interactively with a prefix arg 'C-u', 'desktop-read'
@@ -772,115 +661,94 @@ now prompts the user for the directory containing the desktop file.
772 661
773** display-line-numbers-mode 662** display-line-numbers-mode
774 663
775+++
776*** New faces 'line-number-major-tick' and 'line-number-minor-tick', 664*** New faces 'line-number-major-tick' and 'line-number-minor-tick',
777and user options 'display-line-numbers-major-tick' and 665and user options 'display-line-numbers-major-tick' and
778'display-line-numbers-minor-tick' can be used to highlight the line 666'display-line-numbers-minor-tick' can be used to highlight the line
779numbers of lines multiple of certain numbers. 667numbers of lines multiple of certain numbers.
780 668
781+++
782*** New variable 'display-line-numbers-offset', when non-zero, adds 669*** New variable 'display-line-numbers-offset', when non-zero, adds
783an offset to absolute line numbers. 670an offset to absolute line numbers.
784 671
785** winner 672** winner
786 673
787+++
788*** A new user option, 'winner-boring-buffers-regexp', has been added. 674*** A new user option, 'winner-boring-buffers-regexp', has been added.
789 675
790** table 676** table
791 677
792+++
793*** 'table-generate-source' now supports wiki and mediawiki. 678*** 'table-generate-source' now supports wiki and mediawiki.
794This command can now output wiki and mediawiki format tables. 679This command can now output wiki and mediawiki format tables.
795 680
796** telnet-mode 681** telnet-mode
797 682
798---
799*** Reverting a buffer in 'telnet-mode' will restart a closed connection. 683*** Reverting a buffer in 'telnet-mode' will restart a closed connection.
800 684
801** goto-addr 685** goto-addr
802 686
803---
804*** A way to more conveniently specify what URI address schemes should 687*** A way to more conveniently specify what URI address schemes should
805be ignored has been added via the 'goto-address-uri-schemes-ignored' 688be ignored has been added via the 'goto-address-uri-schemes-ignored'
806variable. 689variable.
807 690
808** tex-mode 691** tex-mode
809 692
810+++
811*** 'latex-noindent-commands' controls indentation of certain commands. 693*** 'latex-noindent-commands' controls indentation of certain commands.
812You can use this new user option to control indentation of arguments of 694You can use this new user option to control indentation of arguments of
813\emph, \footnote, and similar commands. 695\emph, \footnote, and similar commands.
814 696
815** byte compiler 697** byte compiler
816 698
817+++
818*** 'byte-compile-dynamic' is now obsolete. 699*** 'byte-compile-dynamic' is now obsolete.
819This is because on the one hand it suffers from misbehavior in corner 700This is because on the one hand it suffers from misbehavior in corner
820cases that have plagued it for years, and on the other hand experience 701cases that have plagued it for years, and on the other hand experience
821indicates that it doesn't bring any measurable benefit. 702indicates that it doesn't bring any measurable benefit.
822 703
823---
824*** The 'g' keystroke in "*Compile-Log*" buffers has been bound to a 704*** The 'g' keystroke in "*Compile-Log*" buffers has been bound to a
825new command that will recompile the file previously compiled with 'M-x 705new command that will recompile the file previously compiled with 'M-x
826byte-compile-file' and the like. 706byte-compile-file' and the like.
827 707
828** compile.el 708** compile.el
829 709
830---
831*** In 'compilation-error-regexp-alist', 'line' (and 'end-line') can 710*** In 'compilation-error-regexp-alist', 'line' (and 'end-line') can
832be functions. 711be functions.
833 712
834+++
835*** 'compilation-context-lines' can now take the value t; this is like 713*** 'compilation-context-lines' can now take the value t; this is like
836nil, but instead of scrolling the current line to the top of the 714nil, but instead of scrolling the current line to the top of the
837screen when there is no left fringe, it inserts a visible arrow before 715screen when there is no left fringe, it inserts a visible arrow before
838column zero. 716column zero.
839 717
840---
841*** The new 'compilation-transform-file-match-alist' user option can 718*** The new 'compilation-transform-file-match-alist' user option can
842be used to transform file name matches compilation output, and remove 719be used to transform file name matches compilation output, and remove
843known false positives being recognized as warnings/errors. 720known false positives being recognized as warnings/errors.
844 721
845** cl-lib.el 722** cl-lib.el
846 723
847+++
848*** 'cl-defstruct' has a new ':noinline' argument to prevent inlining 724*** 'cl-defstruct' has a new ':noinline' argument to prevent inlining
849its functions. 725its functions.
850 726
851+++
852*** 'cl-defstruct' slots accept a ':documentation' property. 727*** 'cl-defstruct' slots accept a ':documentation' property.
853 728
854---
855*** 'cl-values-list' will now signal an error if its argument isn't a list. 729*** 'cl-values-list' will now signal an error if its argument isn't a list.
856 730
857** doc-view.el 731** doc-view.el
858 732
859---
860*** New commands 'doc-view-presentation' and 'doc-view-fit-window-to-page'. 733*** New commands 'doc-view-presentation' and 'doc-view-fit-window-to-page'.
861 734
862---
863*** Added support for password-protected PDF files. 735*** Added support for password-protected PDF files.
864 736
865---
866*** A new user option 'doc-view-pdftotext-program-args' has been added 737*** A new user option 'doc-view-pdftotext-program-args' has been added
867to allow controlling how the conversion to text is done. 738to allow controlling how the conversion to text is done.
868 739
869+++
870*** The prefix key 's' was changed to 'c' for slicing commands 740*** The prefix key 's' was changed to 'c' for slicing commands
871to avoid conflicts with 'image-mode' key 's'. The new key 'c' still 741to avoid conflicts with 'image-mode' key 's'. The new key 'c' still
872has good mnemonics of "cut", "clip", "crop". 742has good mnemonics of "cut", "clip", "crop".
873 743
874** Ido 744** Ido
875 745
876---
877*** New user option 'ido-big-directories' to mark directories whose 746*** New user option 'ido-big-directories' to mark directories whose
878names match certain regular expressions as big. Ido won't attempt to 747names match certain regular expressions as big. Ido won't attempt to
879list the contents of such directories when completing file names. 748list the contents of such directories when completing file names.
880 749
881** Minibuffer 750** Minibuffer
882 751
883+++
884*** New user option 'minibuffer-beginning-of-buffer-movement'. 752*** New user option 'minibuffer-beginning-of-buffer-movement'.
885This option allows control of how the 'M-<' command works in 753This option allows control of how the 'M-<' command works in
886the minibuffer. If non-nil, point will move to the end of the prompt 754the minibuffer. If non-nil, point will move to the end of the prompt
@@ -888,7 +756,6 @@ the minibuffer. If non-nil, point will move to the end of the prompt
888preserves the original behavior of 'M-<' moving to the beginning of 756preserves the original behavior of 'M-<' moving to the beginning of
889the prompt. 757the prompt.
890 758
891+++
892*** When the minibuffer is active, echo-area messages are displayed at 759*** When the minibuffer is active, echo-area messages are displayed at
893the end of the minibuffer instead of hiding the minibuffer by the echo 760the end of the minibuffer instead of hiding the minibuffer by the echo
894area display. The new user option 'minibuffer-message-clear-timeout' 761area display. The new user option 'minibuffer-message-clear-timeout'
@@ -898,19 +765,15 @@ temporarily overwrote the minibuffer contents until the user typed
898something, set 'set-message-function' and 'clear-message-function' to 765something, set 'set-message-function' and 'clear-message-function' to
899nil. 766nil.
900 767
901---
902*** Minibuffer now uses 'minibuffer-message' to display error messages 768*** Minibuffer now uses 'minibuffer-message' to display error messages
903at the end of the active minibuffer. To disable this, remove 769at the end of the active minibuffer. To disable this, remove
904'minibuffer-error-initialize' from 'minibuffer-setup-hook'. 770'minibuffer-error-initialize' from 'minibuffer-setup-hook'.
905 771
906+++
907*** 'y-or-n-p' now uses the minibuffer to read 'y' or 'n' answer. 772*** 'y-or-n-p' now uses the minibuffer to read 'y' or 'n' answer.
908 773
909---
910*** Some commands that previously used 'read-char-choice' now read 774*** Some commands that previously used 'read-char-choice' now read
911a character using the minibuffer by 'read-char-from-minibuffer'. 775a character using the minibuffer by 'read-char-from-minibuffer'.
912 776
913---
914** map.el 777** map.el
915 778
916*** Now also understands plists. 779*** Now also understands plists.
@@ -919,10 +782,8 @@ a character using the minibuffer by 'read-char-from-minibuffer'.
919*** 'map-contains-key' now returns a boolean rather than the key. 782*** 'map-contains-key' now returns a boolean rather than the key.
920*** Deprecate the 'testfn' args of 'map-elt' and 'map-contains-key'. 783*** Deprecate the 'testfn' args of 'map-elt' and 'map-contains-key'.
921*** New generic function 'map-insert'. 784*** New generic function 'map-insert'.
922+++
923*** The 'type' arg can be a list '(hash-table :key1 VAL1 :key2 VAL2 ...)'. 785*** The 'type' arg can be a list '(hash-table :key1 VAL1 :key2 VAL2 ...)'.
924 786
925---
926** seq.el 787** seq.el
927New convenience functions 'seq-first' and 'seq-rest' give easy access 788New convenience functions 'seq-first' and 'seq-rest' give easy access
928to respectively the first and all but the first elements of sequences. 789to respectively the first and all but the first elements of sequences.
@@ -930,22 +791,18 @@ to respectively the first and all but the first elements of sequences.
930The new predicate function 'seq-contains-p' should be used instead of 791The new predicate function 'seq-contains-p' should be used instead of
931the now obsolete 'seq-contains'. 792the now obsolete 'seq-contains'.
932 793
933---
934** Follow mode 794** Follow mode
935In the current follow group of windows, "ghost" cursors are no longer 795In the current follow group of windows, "ghost" cursors are no longer
936displayed in the non-selected follow windows. To get the old behavior 796displayed in the non-selected follow windows. To get the old behavior
937back, customize 'follow-hide-ghost-cursors' to nil. 797back, customize 'follow-hide-ghost-cursors' to nil.
938 798
939+++
940** New variable 'warning-fill-column' for 'display-warning'. 799** New variable 'warning-fill-column' for 'display-warning'.
941 800
942** Windmove 801** Windmove
943 802
944---
945*** 'windmove-create-window' when non-nil makes a new window. 803*** 'windmove-create-window' when non-nil makes a new window.
946This happens upon moving off the edge of the frame. 804This happens upon moving off the edge of the frame.
947 805
948+++
949*** Windmove supports directional window display and selection. 806*** Windmove supports directional window display and selection.
950The new command 'windmove-display-default-keybindings' binds default 807The new command 'windmove-display-default-keybindings' binds default
951keys with provided modifiers (by default, Shift-Meta) to the commands 808keys with provided modifiers (by default, Shift-Meta) to the commands
@@ -959,7 +816,6 @@ display the buffer in the same window, for example, 'S-M-0 C-h e'
959displays the "*Messages*" buffer in the same window. 'S-M-t C-h r' 816displays the "*Messages*" buffer in the same window. 'S-M-t C-h r'
960displays the Emacs manual in a new tab. 817displays the Emacs manual in a new tab.
961 818
962+++
963*** Windmove also supports directional window deletion. 819*** Windmove also supports directional window deletion.
964The new command 'windmove-delete-default-keybindings' binds default 820The new command 'windmove-delete-default-keybindings' binds default
965keys with provided prefix (by default, 'C-x') and modifiers (by default, 821keys with provided prefix (by default, 'C-x') and modifiers (by default,
@@ -969,12 +825,10 @@ With a prefix arg 'C-u', also kills the buffer in that window.
969With 'M-0', deletes the selected window and selects the window 825With 'M-0', deletes the selected window and selects the window
970that was in the specified direction. 826that was in the specified direction.
971 827
972+++
973*** New command 'windmove-swap-states-in-direction' binds default keys 828*** New command 'windmove-swap-states-in-direction' binds default keys
974to the commands that swap the states of the selected window with the 829to the commands that swap the states of the selected window with the
975window in the specified direction. 830window in the specified direction.
976 831
977---
978*** Windmove code no longer used is now obsolete. 832*** Windmove code no longer used is now obsolete.
979That includes the user option 'windmove-window-distance-delta' and the 833That includes the user option 'windmove-window-distance-delta' and the
980functions 'windmove-coord-add', 'windmove-constrain-to-range', 834functions 'windmove-coord-add', 'windmove-constrain-to-range',
@@ -982,104 +836,82 @@ functions 'windmove-coord-add', 'windmove-constrain-to-range',
982'windmove-constrain-loc-for-movement', 'windmove-wrap-loc-for-movement', 836'windmove-constrain-loc-for-movement', 'windmove-wrap-loc-for-movement',
983'windmove-reference-loc' and 'windmove-other-window-loc'. 837'windmove-reference-loc' and 'windmove-other-window-loc'.
984 838
985---
986** Octave mode 839** Octave mode
987The mode is automatically enabled in files that start with the 840The mode is automatically enabled in files that start with the
988'function' keyword. 841'function' keyword.
989 842
990** project.el 843** project.el
991 844
992+++
993*** New commands 'project-search' and 'project-query-replace-regexp'. 845*** New commands 'project-search' and 'project-query-replace-regexp'.
994 846
995---
996*** New user option 'project-read-file-name-function'. 847*** New user option 'project-read-file-name-function'.
997 848
998** Etags 849** Etags
999 850
1000+++
1001*** 'next-file' is now an obsolete alias of 'tags-next-file'. 851*** 'next-file' is now an obsolete alias of 'tags-next-file'.
1002 852
1003---
1004*** 'tags-loop-revert-buffers' is an obsolete alias of 853*** 'tags-loop-revert-buffers' is an obsolete alias of
1005'fileloop-revert-buffers'. 854'fileloop-revert-buffers'.
1006 855
1007+++
1008*** The 'tags-loop-continue' function along with the 856*** The 'tags-loop-continue' function along with the
1009'tags-loop-operate' and 'tags-loop-scan' variables are now obsolete; 857'tags-loop-operate' and 'tags-loop-scan' variables are now obsolete;
1010use the new 'fileloop-initialize' and 'fileloop-continue' functions 858use the new 'fileloop-initialize' and 'fileloop-continue' functions
1011instead. 859instead.
1012 860
1013+++
1014*** etags is now able to read Zstandard-compressed files. 861*** etags is now able to read Zstandard-compressed files.
1015 862
1016** bibtex 863** bibtex
1017 864
1018---
1019*** New commands 'bibtex-next-entry' and 'bibtex-previous-entry'. 865*** New commands 'bibtex-next-entry' and 'bibtex-previous-entry'.
1020In 'bibtex-mode-map', 'forward-paragraph' and 'backward-paragraph' are 866In 'bibtex-mode-map', 'forward-paragraph' and 'backward-paragraph' are
1021remapped to these, respectively. 867remapped to these, respectively.
1022 868
1023** Dired 869** Dired
1024 870
1025+++
1026*** New command 'dired-create-empty-file'. 871*** New command 'dired-create-empty-file'.
1027 872
1028+++
1029*** New command 'dired-number-of-marked-files'. 873*** New command 'dired-number-of-marked-files'.
1030It is by default bound to '* N'. 874It is by default bound to '* N'.
1031 875
1032---
1033*** The marking commands now report how many files were marked by the 876*** The marking commands now report how many files were marked by the
1034command itself, not how many files are marked in total. 877command itself, not how many files are marked in total.
1035 878
1036+++
1037*** The new user option 'dired-create-destination-dirs' controls whether 879*** The new user option 'dired-create-destination-dirs' controls whether
1038'dired-do-copy' and 'dired-rename-file' should create non-existent 880'dired-do-copy' and 'dired-rename-file' should create non-existent
1039directories in the destination. 881directories in the destination.
1040 882
1041+++
1042*** 'dired-dwim-target' can be customized to prefer either the next window, 883*** 'dired-dwim-target' can be customized to prefer either the next window,
1043or one of the most recently visited windows with a Dired buffer. 884or one of the most recently visited windows with a Dired buffer.
1044 885
1045+++
1046*** When the new user option 'dired-vc-rename-file' is non-nil, 886*** When the new user option 'dired-vc-rename-file' is non-nil,
1047Dired performs file renaming using underlying version control system. 887Dired performs file renaming using underlying version control system.
1048 888
1049---
1050*** Zstandard compression is now supported for 'dired-do-compress' and 889*** Zstandard compression is now supported for 'dired-do-compress' and
1051'dired-do-compress-to'. 890'dired-do-compress-to'.
1052 891
1053---
1054*** On systems that support suid/guid files, Dired now fontifies the 892*** On systems that support suid/guid files, Dired now fontifies the
1055permissions of such files with a special face 'dired-set-id'. 893permissions of such files with a special face 'dired-set-id'.
1056 894
1057---
1058*** A new face, 'dired-special', is used to highlight sockets, named 895*** A new face, 'dired-special', is used to highlight sockets, named
1059pipes, block devices and character devices. 896pipes, block devices and character devices.
1060 897
1061** Find-Dired 898** Find-Dired
1062 899
1063---
1064*** New user option 'find-dired-refine-function'. 900*** New user option 'find-dired-refine-function'.
1065The default value is 'find-dired-sort-by-filename'. 901The default value is 'find-dired-sort-by-filename'.
1066 902
1067---
1068*** New sorting options for the user option 'find-ls-option'. 903*** New sorting options for the user option 'find-ls-option'.
1069 904
1070** Change Logs and VC 905** Change Logs and VC
1071 906
1072---
1073*** New user option 'vc-tor'. 907*** New user option 'vc-tor'.
1074When non-nil, this user option causes the VC commands to communicate 908When non-nil, this user option causes the VC commands to communicate
1075with the repository via Tor's proxy, using the 'torsocks' wrapper 909with the repository via Tor's proxy, using the 'torsocks' wrapper
1076script. The default is nil. 910script. The default is nil.
1077 911
1078+++
1079*** New command 'log-edit-generate-changelog-from-diff', bound to 'C-c C-w'. 912*** New command 'log-edit-generate-changelog-from-diff', bound to 'C-c C-w'.
1080This generates ChangeLog entries from the VC fileset diff. 913This generates ChangeLog entries from the VC fileset diff.
1081 914
1082+++
1083*** Recording ChangeLog entries doesn't require an actual file. 915*** Recording ChangeLog entries doesn't require an actual file.
1084If a ChangeLog file doesn't exist, and if the new user option 916If a ChangeLog file doesn't exist, and if the new user option
1085'add-log-dont-create-changelog-file' is non-nil (which is the 917'add-log-dont-create-changelog-file' is non-nil (which is the
@@ -1089,32 +921,26 @@ still be used if it exists.) Set the user option to nil to get the
1089previous behavior of always creating a buffer that visits a ChangeLog 921previous behavior of always creating a buffer that visits a ChangeLog
1090file. 922file.
1091 923
1092+++
1093*** The new 'd' command ('vc-dir-clean-files') in 'vc-dir-mode' 924*** The new 'd' command ('vc-dir-clean-files') in 'vc-dir-mode'
1094buffers will delete the marked files (or if no files are marked, the 925buffers will delete the marked files (or if no files are marked, the
1095file under point). This command does not notify the VC backend, and 926file under point). This command does not notify the VC backend, and
1096is mostly useful for unregistered files. 927is mostly useful for unregistered files.
1097 928
1098---
1099*** 'vc-dir-ignore' now takes a prefix argument to ignore all marked files. 929*** 'vc-dir-ignore' now takes a prefix argument to ignore all marked files.
1100 930
1101---
1102*** New user option 'vc-git-grep-template'. 931*** New user option 'vc-git-grep-template'.
1103This new user option allows customizing the default arguments passed to 932This new user option allows customizing the default arguments passed to
1104'git-grep' when 'vc-git-grep' is used. 933'git-grep' when 'vc-git-grep' is used.
1105 934
1106---
1107*** Command 'vc-git-stash' now respects marks in the "*vc-dir*" buffer. 935*** Command 'vc-git-stash' now respects marks in the "*vc-dir*" buffer.
1108When some files are marked, only those are stashed. 936When some files are marked, only those are stashed.
1109When no files are marked, all modified files are stashed, as before. 937When no files are marked, all modified files are stashed, as before.
1110 938
1111---
1112*** 'vc-dir' now shows a button allowing you to hide the stash list. 939*** 'vc-dir' now shows a button allowing you to hide the stash list.
1113Controlled by user option 'vc-git-show-stash'. Default t means show 940Controlled by user option 'vc-git-show-stash'. Default t means show
1114the entire list as before. An integer value limits the list length 941the entire list as before. An integer value limits the list length
1115(but still allows you to show the entire list via the button). 942(but still allows you to show the entire list via the button).
1116 943
1117---
1118*** 'vc-git-stash' is now bound to 'C' in the stash headers. 944*** 'vc-git-stash' is now bound to 'C' in the stash headers.
1119 945
1120-- 946--
@@ -1122,44 +948,35 @@ the entire list as before. An integer value limits the list length
1122'vc-git-stash' and 'vc-git-stash-snapshot' can now be run using 'C' 948'vc-git-stash' and 'vc-git-stash-snapshot' can now be run using 'C'
1123and 'S' respectively, including when there are no stashes. 949and 'S' respectively, including when there are no stashes.
1124 950
1125---
1126*** The new hook 'vc-retrieve-tag-hook' runs after retrieving a tag. 951*** The new hook 'vc-retrieve-tag-hook' runs after retrieving a tag.
1127 952
1128---
1129*** 'vc-hg' now invokes 'smerge-mode' when visiting files. 953*** 'vc-hg' now invokes 'smerge-mode' when visiting files.
1130Code that attempted to invoke 'smerge-mode' when visiting an Hg file 954Code that attempted to invoke 'smerge-mode' when visiting an Hg file
1131with conflicts existed in earlier versions of Emacs, but incorrectly 955with conflicts existed in earlier versions of Emacs, but incorrectly
1132never detected a conflict due to invalid assumptions about cached 956never detected a conflict due to invalid assumptions about cached
1133values. 957values.
1134 958
1135+++
1136*** The Hg (Mercurial) back-end now supports 'vc-region-history'. 959*** The Hg (Mercurial) back-end now supports 'vc-region-history'.
1137The 'C-x v h' command now works in buffers that visit files controlled 960The 'C-x v h' command now works in buffers that visit files controlled
1138by Hg. 961by Hg.
1139 962
1140+++
1141*** The Hg (Mercurial) back-end now prompts for revision to merge when 963*** The Hg (Mercurial) back-end now prompts for revision to merge when
1142you invoke 'C-x v m' ('vc-merge'). 964you invoke 'C-x v m' ('vc-merge').
1143 965
1144---
1145*** The Hg (Mercurial) back-end now uses tags, branches and bookmarks 966*** The Hg (Mercurial) back-end now uses tags, branches and bookmarks
1146instead of revision numbers as completion candidates when it prompts 967instead of revision numbers as completion candidates when it prompts
1147for a revision. 968for a revision.
1148 969
1149---
1150*** New user option 'vc-hg-revert-switches'. 970*** New user option 'vc-hg-revert-switches'.
1151It specifies switches to pass to Hg's 'revert' command. 971It specifies switches to pass to Hg's 'revert' command.
1152 972
1153+++
1154*** 'C-u C-x v D' ('vc-root-version-diff') prompts for two revisions 973*** 'C-u C-x v D' ('vc-root-version-diff') prompts for two revisions
1155and compares their entire trees. 974and compares their entire trees.
1156 975
1157---
1158*** 'C-x v M D' ('vc-diff-mergebase') and 'C-x v M L' ('vc-log-mergebase') 976*** 'C-x v M D' ('vc-diff-mergebase') and 'C-x v M L' ('vc-log-mergebase')
1159print diffs and logs between the merge base (common ancestor) of two 977print diffs and logs between the merge base (common ancestor) of two
1160given revisions. 978given revisions.
1161 979
1162+++
1163*** New command 'vc-log-search' asks for a pattern, searches it 980*** New command 'vc-log-search' asks for a pattern, searches it
1164in the revision log, and displays matched log entries in the 981in the revision log, and displays matched log entries in the
1165log buffer. For example, 'M-x vc-log-search RET bug#36644 RET' 982log buffer. For example, 'M-x vc-log-search RET bug#36644 RET'
@@ -1168,7 +985,6 @@ With a prefix argument asks for a command, so for example,
1168'C-u M-x vc-log-search RET git log -1 f302475 RET' will display 985'C-u M-x vc-log-search RET git log -1 f302475 RET' will display
1169just one log entry found by its revision number. 986just one log entry found by its revision number.
1170 987
1171+++
1172*** It is now possible to display a specific revision given by its ID. 988*** It is now possible to display a specific revision given by its ID.
1173If you invoke 'C-x v L' ('vc-print-root-log') with a numeric argument 989If you invoke 'C-x v L' ('vc-print-root-log') with a numeric argument
1174of 1, as in 'C-1 C-x v L' or 'C-u 1 C-x v L', it asks for a revision 990of 1, as in 'C-1 C-x v L' or 'C-u 1 C-x v L', it asks for a revision
@@ -1176,56 +992,46 @@ ID, and shows its log entry together with the diffs introduced by the
1176revision's commit. (For some less capable VCSes, only the log entry 992revision's commit. (For some less capable VCSes, only the log entry
1177is shown.) 993is shown.)
1178 994
1179---
1180*** New user option 'vc-find-revision-no-save'. 995*** New user option 'vc-find-revision-no-save'.
1181With non-nil, 'vc-find-revision' doesn't write the created buffer to file. 996With non-nil, 'vc-find-revision' doesn't write the created buffer to file.
1182 997
1183---
1184*** 'C-x v =' can now mimic Magit's diff format. 998*** 'C-x v =' can now mimic Magit's diff format.
1185Set the new user option 'diff-font-lock-prettify' to t for that, see 999Set the new user option 'diff-font-lock-prettify' to t for that, see
1186below under "Diff mode". 1000below under "Diff mode".
1187 1001
1188---
1189*** The 'diff' function arguments OLD and NEW may each be a buffer 1002*** The 'diff' function arguments OLD and NEW may each be a buffer
1190rather than a file, in non-interactive calls. This change was made in 1003rather than a file, in non-interactive calls. This change was made in
1191Emacs 24.1, but wasn't documented until now. 1004Emacs 24.1, but wasn't documented until now.
1192 1005
1193+++
1194*** New command 'diff-buffers' interactively diffs two buffers. 1006*** New command 'diff-buffers' interactively diffs two buffers.
1195 1007
1196** Diff mode 1008** Diff mode
1197 1009
1198+++
1199*** Hunks are now automatically refined by font-lock. 1010*** Hunks are now automatically refined by font-lock.
1200To disable refinement, set the new user option 'diff-refine' to nil. 1011To disable refinement, set the new user option 'diff-refine' to nil.
1201To get back the old behavior where hunks are refined as you navigate 1012To get back the old behavior where hunks are refined as you navigate
1202through a diff, set 'diff-refine' to the symbol 'navigate'. 1013through a diff, set 'diff-refine' to the symbol 'navigate'.
1203 1014
1204+++
1205*** 'diff-auto-refine-mode' is deprecated in favor of 'diff-refine'. 1015*** 'diff-auto-refine-mode' is deprecated in favor of 'diff-refine'.
1206It is no longer enabled by default and binding it no longer has any 1016It is no longer enabled by default and binding it no longer has any
1207effect. 1017effect.
1208 1018
1209+++
1210*** Better syntax highlighting of Diff hunks. 1019*** Better syntax highlighting of Diff hunks.
1211Fragments of source in Diff hunks are now by default highlighted 1020Fragments of source in Diff hunks are now by default highlighted
1212according to the appropriate major mode. Customize the new user 1021according to the appropriate major mode. Customize the new user
1213option 'diff-font-lock-syntax' to nil to disable this. 1022option 'diff-font-lock-syntax' to nil to disable this.
1214 1023
1215---
1216*** File headers can be shortened, mimicking Magit's diff format. 1024*** File headers can be shortened, mimicking Magit's diff format.
1217To enable it, set the new user option 'diff-font-lock-prettify' to t. 1025To enable it, set the new user option 'diff-font-lock-prettify' to t.
1218On GUI frames, this option also displays the insertion and deletion 1026On GUI frames, this option also displays the insertion and deletion
1219indicators on the left fringe. 1027indicators on the left fringe.
1220 1028
1221+++
1222*** Prefix arg of 'diff-goto-source' means jump to the old revision 1029*** Prefix arg of 'diff-goto-source' means jump to the old revision
1223of the file under version control if point is on an old changed line, 1030of the file under version control if point is on an old changed line,
1224or to the new revision of the file otherwise. 1031or to the new revision of the file otherwise.
1225 1032
1226** Texinfo 1033** Texinfo
1227 1034
1228+++
1229*** New function for inserting '@pxref', '@xref', or '@ref' commands. 1035*** New function for inserting '@pxref', '@xref', or '@ref' commands.
1230The function 'texinfo-insert-dwim-@ref', bound to 'C-c C-c r' by 1036The function 'texinfo-insert-dwim-@ref', bound to 'C-c C-c r' by
1231default, inserts one of three types of references based on the text 1037default, inserts one of three types of references based on the text
@@ -1234,35 +1040,29 @@ start of a sentence or at '(point-min)', else '@ref'.
1234 1040
1235** Browse-url 1041** Browse-url
1236 1042
1237---
1238*** The function 'browse-url-emacs' can now visit a URL in selected window. 1043*** The function 'browse-url-emacs' can now visit a URL in selected window.
1239It now treats the optional 2nd argument to mean that the URL should be 1044It now treats the optional 2nd argument to mean that the URL should be
1240shown in the currently selected window. 1045shown in the currently selected window.
1241 1046
1242---
1243*** A new function, 'browse-url-add-buttons' can be used to add clickable 1047*** A new function, 'browse-url-add-buttons' can be used to add clickable
1244links to most ordinary special-mode buffers that display text that 1048links to most ordinary special-mode buffers that display text that
1245have URLs embedded. 'browse-url-button-regexp' controls what's 1049have URLs embedded. 'browse-url-button-regexp' controls what's
1246considered a button. 1050considered a button.
1247 1051
1248---
1249*** New user option 'browse-url-secondary-browser-function'. 1052*** New user option 'browse-url-secondary-browser-function'.
1250It can be set to a function that invokes an alternative browser. 1053It can be set to a function that invokes an alternative browser.
1251 1054
1252** Comint 1055** Comint
1253 1056
1254+++
1255*** 'send-invisible' is now an obsolete alias for 'comint-send-invisible'. 1057*** 'send-invisible' is now an obsolete alias for 'comint-send-invisible'.
1256Also, 'shell-strip-ctrl-m' is declared obsolete. 1058Also, 'shell-strip-ctrl-m' is declared obsolete.
1257 1059
1258+++
1259*** 'C-c .' ('comint-insert-previous-argument') no longer interprets '&'. 1060*** 'C-c .' ('comint-insert-previous-argument') no longer interprets '&'.
1260This feature caused problems when '&&' was present in the previous 1061This feature caused problems when '&&' was present in the previous
1261command. Since this command emulates 'M-.' in Bash and zsh, neither 1062command. Since this command emulates 'M-.' in Bash and zsh, neither
1262of which treats '&' specially, the feature was removed for 1063of which treats '&' specially, the feature was removed for
1263compatibility with these shells. 1064compatibility with these shells.
1264 1065
1265+++
1266*** 'comint-insert-previous-argument' can now count arguments from the end. 1066*** 'comint-insert-previous-argument' can now count arguments from the end.
1267By default, invoking 'C-c .' with a numeric argument N would copy the 1067By default, invoking 'C-c .' with a numeric argument N would copy the
1268Nth argument, counting from the first one. But if the new user option 1068Nth argument, counting from the first one. But if the new user option
@@ -1272,11 +1072,9 @@ better emulate 'M-.' in both Bash and zsh, since the former counts
1272from the beginning of the arguments, while the latter counts from the 1072from the beginning of the arguments, while the latter counts from the
1273end. 1073end.
1274 1074
1275+++
1276*** 'comint-run' can now accept a list of switches to pass to the program. 1075*** 'comint-run' can now accept a list of switches to pass to the program.
1277'C-u M-x comint-run' will prompt for the switches interactively. 1076'C-u M-x comint-run' will prompt for the switches interactively.
1278 1077
1279+++
1280*** Abnormal hook 'comint-password-function' has been added. 1078*** Abnormal hook 'comint-password-function' has been added.
1281This hook permits a derived mode to supply a password for the 1079This hook permits a derived mode to supply a password for the
1282underlying command interpreter without prompting the user. For 1080underlying command interpreter without prompting the user. For
@@ -1292,7 +1090,6 @@ if it had been supplied on the command line.
1292 1090
1293** SQL 1091** SQL
1294 1092
1295---
1296*** SQL Indent Minor Mode 1093*** SQL Indent Minor Mode
1297SQL Mode now supports the ELPA 'sql-indent' package for assisting 1094SQL Mode now supports the ELPA 'sql-indent' package for assisting
1298sophisticated SQL indenting rules. Note, however, that SQL is not 1095sophisticated SQL indenting rules. Note, however, that SQL is not
@@ -1305,19 +1102,16 @@ prefer to rely upon existing Emacs facilities for formatting code but
1305the 'sql-indent' package provides facilities to aid more casual SQL 1102the 'sql-indent' package provides facilities to aid more casual SQL
1306developers layout queries and complex expressions. 1103developers layout queries and complex expressions.
1307 1104
1308---
1309**** 'sql-use-indent-support' (default t) enables SQL indention support. 1105**** 'sql-use-indent-support' (default t) enables SQL indention support.
1310The 'sql-indent' package from ELPA must be installed to get the 1106The 'sql-indent' package from ELPA must be installed to get the
1311indentation support in 'sql-mode' and 'sql-interactive-mode'. 1107indentation support in 'sql-mode' and 'sql-interactive-mode'.
1312 1108
1313---
1314**** 'sql-mode-hook' and 'sql-interactive-mode-hook' changed. 1109**** 'sql-mode-hook' and 'sql-interactive-mode-hook' changed.
1315Both hook variables have had 'sql-indent-enable' added to their 1110Both hook variables have had 'sql-indent-enable' added to their
1316default values. If you have existing customizations to these 1111default values. If you have existing customizations to these
1317variables, you should make sure that the new default entry is 1112variables, you should make sure that the new default entry is
1318included. 1113included.
1319 1114
1320---
1321*** Connection Wallet 1115*** Connection Wallet
1322Database passwords can now by stored in NETRC or JSON data files that 1116Database passwords can now by stored in NETRC or JSON data files that
1323may optionally be encrypted. When establishing an interactive session 1117may optionally be encrypted. When establishing an interactive session
@@ -1336,48 +1130,38 @@ be encrypted with GPG by adding an additional ".gpg" suffix.
1336 1130
1337** Term 1131** Term
1338 1132
1339---
1340*** 'term-read-noecho' is now obsolete, use 'read-passwd' instead. 1133*** 'term-read-noecho' is now obsolete, use 'read-passwd' instead.
1341 1134
1342+++
1343*** 'serial-term' now takes an optional parameter to leave the 1135*** 'serial-term' now takes an optional parameter to leave the
1344emulator in line mode. 1136emulator in line mode.
1345 1137
1346** Flymake 1138** Flymake
1347 1139
1348+++
1349*** The variable 'flymake-diagnostic-types-alist' is obsolete. 1140*** The variable 'flymake-diagnostic-types-alist' is obsolete.
1350You should instead set properties on known diagnostic symbols, like 1141You should instead set properties on known diagnostic symbols, like
1351':error' and ':warning', as demonstrated in the Flymake manual. 1142':error' and ':warning', as demonstrated in the Flymake manual.
1352 1143
1353+++
1354*** New user option 'flymake-start-on-save-buffer'. 1144*** New user option 'flymake-start-on-save-buffer'.
1355Control whether Flymake starts checking the buffer on save. 1145Control whether Flymake starts checking the buffer on save.
1356 1146
1357---
1358*** Flymake and backend functions may exchange hints about buffer changes. 1147*** Flymake and backend functions may exchange hints about buffer changes.
1359This enables more efficient backends. See the docstring of 1148This enables more efficient backends. See the docstring of
1360'flymake-diagnostic-functions' or the Flymake manual for details. 1149'flymake-diagnostic-functions' or the Flymake manual for details.
1361 1150
1362+++
1363*** 'flymake-start-syntax-check-on-newline' is now obsolete, 1151*** 'flymake-start-syntax-check-on-newline' is now obsolete,
1364use 'post-self-insert-hook' to check on newline. 1152use 'post-self-insert-hook' to check on newline.
1365 1153
1366** Ruby 1154** Ruby
1367 1155
1368---
1369*** The Rubocop Flymake diagnostic function will only run Lint cops if 1156*** The Rubocop Flymake diagnostic function will only run Lint cops if
1370it can't find the config file. 1157it can't find the config file.
1371 1158
1372---
1373*** Rubocop is called with 'bundle exec' if Gemfile mentions it. 1159*** Rubocop is called with 'bundle exec' if Gemfile mentions it.
1374 1160
1375---
1376*** New command 'ruby-find-library-file' bound to 'C-c C-f'. 1161*** New command 'ruby-find-library-file' bound to 'C-c C-f'.
1377 1162
1378** Package 1163** Package
1379 1164
1380---
1381*** Warn if "footer line" is missing, but still install package. 1165*** Warn if "footer line" is missing, but still install package.
1382package.el used to refuse to install a package without the so-called 1166package.el used to refuse to install a package without the so-called
1383"footer line", which appears at the very end of the file: 1167"footer line", which appears at the very end of the file:
@@ -1392,24 +1176,20 @@ Note that versions of Emacs older than 27.1 will not only refuse to
1392install packages without such a line -- they will be unable to parse 1176install packages without such a line -- they will be unable to parse
1393package data. It is therefore recommended to keep this line. 1177package data. It is therefore recommended to keep this line.
1394 1178
1395+++
1396*** Change of 'package-check-signature' for packages with multiple sigs. 1179*** Change of 'package-check-signature' for packages with multiple sigs.
1397In previous Emacsen, t checked that all signatures are valid. 1180In previous Emacsen, t checked that all signatures are valid.
1398Now t only checks that at least one signature is valid and the new 'all' 1181Now t only checks that at least one signature is valid and the new 'all'
1399value needs to be used if you want to enforce that all signatures 1182value needs to be used if you want to enforce that all signatures
1400are valid. This only affects packages with multiple signatures. 1183are valid. This only affects packages with multiple signatures.
1401 1184
1402+++
1403*** The meaning of 'allow-unsigned' in 'package-check-signature' has 1185*** The meaning of 'allow-unsigned' in 'package-check-signature' has
1404changed slightly: If a usable OpenPGP configuration can't be found 1186changed slightly: If a usable OpenPGP configuration can't be found
1405(for instance, if gpg isn't installed), it now has the same meaning as 1187(for instance, if gpg isn't installed), it now has the same meaning as
1406nil. 1188nil.
1407 1189
1408---
1409*** New function 'package-get-version' lets packages query their own version. 1190*** New function 'package-get-version' lets packages query their own version.
1410Example use in auctex.el: '(defconst auctex-version (package-get-version))' 1191Example use in auctex.el: '(defconst auctex-version (package-get-version))'
1411 1192
1412---
1413*** New 'package-quickstart' feature. 1193*** New 'package-quickstart' feature.
1414When 'package-quickstart' is non-nil, package.el precomputes a big 1194When 'package-quickstart' is non-nil, package.el precomputes a big
1415autoloads file so that activation of packages can be done much faster, 1195autoloads file so that activation of packages can be done much faster,
@@ -1419,10 +1199,8 @@ It also causes user options like 'package-user-dir' and
1419is run rather than at startup so you don't need to set them in your 1199is run rather than at startup so you don't need to set them in your
1420early init file. 1200early init file.
1421 1201
1422---
1423*** New function 'package-activate-all'. 1202*** New function 'package-activate-all'.
1424 1203
1425+++
1426*** New functions for filtering packages list. 1204*** New functions for filtering packages list.
1427A new function has been added which allows users to filter the 1205A new function has been added which allows users to filter the
1428packages list by name: 'package-menu-filter-by-name'. By default, it 1206packages list by name: 'package-menu-filter-by-name'. By default, it
@@ -1432,13 +1210,10 @@ is bound to '/ n'. Additionally, the function
1432(from 'f'). To clear any of the two filters, the user can now call 1210(from 'f'). To clear any of the two filters, the user can now call
1433the 'package-menu-clear-filter' function, bound to '/ /' by default. 1211the 'package-menu-clear-filter' function, bound to '/ /' by default.
1434 1212
1435---
1436*** Imenu support has been added to 'package-menu-mode'. 1213*** Imenu support has been added to 'package-menu-mode'.
1437 1214
1438---
1439*** The package list can now be sorted by version or description. 1215*** The package list can now be sorted by version or description.
1440 1216
1441+++
1442*** In Package Menu, 'g' now updates package data from archives. 1217*** In Package Menu, 'g' now updates package data from archives.
1443Previously, 'g' invoked 'tabulated-list-revert' which did not update 1218Previously, 'g' invoked 'tabulated-list-revert' which did not update
1444the cached archive data. It is now bound to 'revert-buffer', which 1219the cached archive data. It is now bound to 'revert-buffer', which
@@ -1448,19 +1223,16 @@ will update the data.
1448 1223
1449** Info 1224** Info
1450 1225
1451+++
1452*** Clicking on the left/right arrow icon in the Info tool-bar while 1226*** Clicking on the left/right arrow icon in the Info tool-bar while
1453holding down the Ctrl key pops up a menu of previously visited Info nodes 1227holding down the Ctrl key pops up a menu of previously visited Info nodes
1454where you can select a node to go back (like in browsers). 1228where you can select a node to go back (like in browsers).
1455 1229
1456---
1457*** Info can now follow 'file://' protocol URLs. 1230*** Info can now follow 'file://' protocol URLs.
1458The 'file://' URLs in Info documents can now be followed by passing 1231The 'file://' URLs in Info documents can now be followed by passing
1459them to the 'browse-url' function, like the other protocols: 'ftp', 1232them to the 'browse-url' function, like the other protocols: 'ftp',
1460'http', and 'https'. This allows having references to local HTML 1233'http', and 'https'. This allows having references to local HTML
1461files, for example. 1234files, for example.
1462 1235
1463---
1464** Display of man pages now limits the width for formatting pages. 1236** Display of man pages now limits the width for formatting pages.
1465The new user option 'Man-width-max' (80 by default) limits the number 1237The new user option 'Man-width-max' (80 by default) limits the number
1466of columns passed to the 'man' program for formatting man pages. This 1238of columns passed to the 'man' program for formatting man pages. This
@@ -1469,40 +1241,32 @@ windows (which are customary with today's large displays).
1469 1241
1470** Xref 1242** Xref
1471 1243
1472+++
1473*** New command 'xref-find-definitions-at-mouse'. 1244*** New command 'xref-find-definitions-at-mouse'.
1474This command finds definitions of the identifier at the place of a 1245This command finds definitions of the identifier at the place of a
1475mouse click event, and is intended to be bound to a mouse event. 1246mouse click event, and is intended to be bound to a mouse event.
1476 1247
1477+++
1478*** Changing 'xref-marker-ring-length' works after xref.el is loaded. 1248*** Changing 'xref-marker-ring-length' works after xref.el is loaded.
1479Previously, setting 'xref-marker-ring-length' would only take effect 1249Previously, setting 'xref-marker-ring-length' would only take effect
1480if set before xref.el was loaded. 1250if set before xref.el was loaded.
1481 1251
1482---
1483*** 'xref-find-definitions' now sets the mark at the buffer position 1252*** 'xref-find-definitions' now sets the mark at the buffer position
1484where it was invoked. 1253where it was invoked.
1485 1254
1486---
1487*** New xref faces 'xref-file-header', 'xref-line-number', 'xref-match'. 1255*** New xref faces 'xref-file-header', 'xref-line-number', 'xref-match'.
1488 1256
1489---
1490*** New user option 'xref-show-definitions-function'. 1257*** New user option 'xref-show-definitions-function'.
1491It encapsulates the logic pertinent to showing the result of 1258It encapsulates the logic pertinent to showing the result of
1492'xref-find-definitions'. The user can change it to customize its 1259'xref-find-definitions'. The user can change it to customize its
1493behavior and the display of results. 1260behavior and the display of results.
1494 1261
1495---
1496*** Search results show the buffer even for one hit. 1262*** Search results show the buffer even for one hit.
1497The search-type Xref commands (e.g. 'xref-find-references' or 1263The search-type Xref commands (e.g. 'xref-find-references' or
1498'project-find-regexp') now show the results buffer even when there is 1264'project-find-regexp') now show the results buffer even when there is
1499only one hit. This can be altered by changing 'xref-show-xrefs-function'. 1265only one hit. This can be altered by changing 'xref-show-xrefs-function'.
1500 1266
1501+++
1502*** Xref buffers support refreshing the search results. 1267*** Xref buffers support refreshing the search results.
1503A new command 'xref-revert-buffer' is bound to 'g'. 1268A new command 'xref-revert-buffer' is bound to 'g'.
1504 1269
1505---
1506*** Imenu support has been added to 'xref--xref-buffer-mode'. 1270*** Imenu support has been added to 'xref--xref-buffer-mode'.
1507 1271
1508*** New generic method 'xref-backend-identifier-completion-ignore-case'. 1272*** New generic method 'xref-backend-identifier-completion-ignore-case'.
@@ -1511,7 +1275,6 @@ identifier completion.
1511 1275
1512** Checkdoc 1276** Checkdoc
1513 1277
1514---
1515*** Checkdoc can now optionally spell-check doc strings. 1278*** Checkdoc can now optionally spell-check doc strings.
1516Invoking 'checkdoc-buffer' with a non-nil TAKE-NOTES argument 1279Invoking 'checkdoc-buffer' with a non-nil TAKE-NOTES argument
1517(interactively, with a prefix arg) will now spell-check the doc 1280(interactively, with a prefix arg) will now spell-check the doc
@@ -1519,7 +1282,6 @@ strings and report all the spelling mistakes.
1519 1282
1520** Icomplete 1283** Icomplete
1521 1284
1522+++
1523*** New minor mode Fido mode. 1285*** New minor mode Fido mode.
1524This mode is based on Icomplete, and its name stands for "Fake Ido". 1286This mode is based on Icomplete, and its name stands for "Fake Ido".
1525The point of this mode is to be an 'ido-mode' workalike, providing 1287The point of this mode is to be an 'ido-mode' workalike, providing
@@ -1529,29 +1291,24 @@ completion facilities.
1529 1291
1530** Ecomplete 1292** Ecomplete
1531 1293
1532---
1533*** The Ecomplete sorting has changed to a decay-based algorithm. 1294*** The Ecomplete sorting has changed to a decay-based algorithm.
1534This can be controlled by the new 'ecomplete-sort-predicate' user option. 1295This can be controlled by the new 'ecomplete-sort-predicate' user option.
1535 1296
1536---
1537*** The 'ecomplete-database-file' file is now placed in 1297*** The 'ecomplete-database-file' file is now placed in
1538"~/.emacs.d/ecompleterc" by default. Of course it will still find it 1298"~/.emacs.d/ecompleterc" by default. Of course it will still find it
1539if you have it in "~/.ecompleterc". 1299if you have it in "~/.ecompleterc".
1540 1300
1541** Gnus 1301** Gnus
1542 1302
1543---
1544*** 'mm-uu-diff-groups-regexp' now defaults to matching all groups, 1303*** 'mm-uu-diff-groups-regexp' now defaults to matching all groups,
1545which means that "git am" diffs are recognized everywhere. 1304which means that "git am" diffs are recognized everywhere.
1546 1305
1547+++
1548*** Two new Gnus summary mode navigation commands have been added, 1306*** Two new Gnus summary mode navigation commands have been added,
1549bound to the '[' and ']' keys: 'gnus-summary-prev-unseen-article' and 1307bound to the '[' and ']' keys: 'gnus-summary-prev-unseen-article' and
1550'gnus-summary-next-unseen-article'. These take you (respectively) to 1308'gnus-summary-next-unseen-article'. These take you (respectively) to
1551the previous unseen or next unseen article. (These are the ones that 1309the previous unseen or next unseen article. (These are the ones that
1552are marked with "." in the summary mode lines.) 1310are marked with "." in the summary mode lines.)
1553 1311
1554+++
1555*** The Gnus user variable 'nnimap-expunge' supports three new values: 1312*** The Gnus user variable 'nnimap-expunge' supports three new values:
1556'never' for never expunging messages, 'immediately' for immediately 1313'never' for never expunging messages, 'immediately' for immediately
1557expunging deleted messages, and 'on-exit' to expunge deleted articles 1314expunging deleted messages, and 'on-exit' to expunge deleted articles
@@ -1561,67 +1318,53 @@ result in Gnus expunging all messages that have been flagged as
1561deleted by any IMAP client (rather than just those that have been 1318deleted by any IMAP client (rather than just those that have been
1562deleted by Gnus). 1319deleted by Gnus).
1563 1320
1564+++
1565*** New user option 'gnus-use-atomic-windows' makes Gnus window layouts atomic. 1321*** New user option 'gnus-use-atomic-windows' makes Gnus window layouts atomic.
1566See the "(elisp) Atomic Windows" node of the Elisp manual for details. 1322See the "(elisp) Atomic Windows" node of the Elisp manual for details.
1567 1323
1568+++
1569*** There's a new value for 'gnus-article-date-headers', 1324*** There's a new value for 'gnus-article-date-headers',
1570'combined-local-lapsed', which will show both the time (in the local 1325'combined-local-lapsed', which will show both the time (in the local
1571timezone) and the lapsed time. 1326timezone) and the lapsed time.
1572 1327
1573---
1574*** Gnus now maps imaps to 993 only on old MS-Windows versions. 1328*** Gnus now maps imaps to 993 only on old MS-Windows versions.
1575The nnimap backend used to do this unconditionally to work around 1329The nnimap backend used to do this unconditionally to work around
1576problems on old versions of MS-Windows. This is now done only for 1330problems on old versions of MS-Windows. This is now done only for
1577Windows XP and older. 1331Windows XP and older.
1578 1332
1579+++
1580*** The nnimap backend now has support for IMAP namespaces. 1333*** The nnimap backend now has support for IMAP namespaces.
1581This feature can be enabled by setting the new 'nnimap-use-namespaces' 1334This feature can be enabled by setting the new 'nnimap-use-namespaces'
1582server variable to non-nil. 1335server variable to non-nil.
1583 1336
1584+++
1585*** A prefix argument to 'gnus-summary-limit-to-score' will limit in reverse. 1337*** A prefix argument to 'gnus-summary-limit-to-score' will limit in reverse.
1586Limit to articles with score "at or below" the SCORE argument rather 1338Limit to articles with score "at or below" the SCORE argument rather
1587than "at or above". 1339than "at or above".
1588 1340
1589---
1590*** The function 'gnus-score-find-favorite-words' has been renamed 1341*** The function 'gnus-score-find-favorite-words' has been renamed
1591from 'gnus-score-find-favourite-words'. 1342from 'gnus-score-find-favourite-words'.
1592 1343
1593---
1594*** Gmane has been removed as an nnir backend, since Gmane no longer 1344*** Gmane has been removed as an nnir backend, since Gmane no longer
1595has a search engine. 1345has a search engine.
1596 1346
1597+++
1598*** Splitting mail on common mailing list headers has been added. 1347*** Splitting mail on common mailing list headers has been added.
1599See the concept index in the Gnus manual for the 'match-list' entry. 1348See the concept index in the Gnus manual for the 'match-list' entry.
1600 1349
1601+++
1602*** nil is no longer an allowed value for 'mm-text-html-renderer'. 1350*** nil is no longer an allowed value for 'mm-text-html-renderer'.
1603 1351
1604+++
1605*** The default value of 'mm-inline-large-images' has changed from nil 1352*** The default value of 'mm-inline-large-images' has changed from nil
1606to 'resize', which means that large images will be resized instead of 1353to 'resize', which means that large images will be resized instead of
1607displayed with an external program by default. 1354displayed with an external program by default.
1608 1355
1609+++
1610*** A new Gnus summary mode command, 'S A' ('gnus-summary-attach-article') 1356*** A new Gnus summary mode command, 'S A' ('gnus-summary-attach-article')
1611can be used to attach the current article(s) to a pre-existing Message 1357can be used to attach the current article(s) to a pre-existing Message
1612buffer, or create a new Message buffer with the article(s) attached. 1358buffer, or create a new Message buffer with the article(s) attached.
1613 1359
1614+++
1615*** A new Gnus summary mode command, 'w' ('gnus-summary-browse-url') 1360*** A new Gnus summary mode command, 'w' ('gnus-summary-browse-url')
1616scans the article buffer for URLs, and offers them to the user to open 1361scans the article buffer for URLs, and offers them to the user to open
1617with 'browse-url'. 1362with 'browse-url'.
1618 1363
1619---
1620*** New user option 'nnir-notmuch-filter-group-names-function'. 1364*** New user option 'nnir-notmuch-filter-group-names-function'.
1621This option controls whether and how to use Gnus search groups as 1365This option controls whether and how to use Gnus search groups as
1622'path:' search terms to 'notmuch'. 1366'path:' search terms to 'notmuch'.
1623 1367
1624---
1625*** The buttons in the Gnus article buffer were formerly widgets 1368*** The buttons in the Gnus article buffer were formerly widgets
1626(i.e., buttons from widget.el). This has now changed, and they are 1369(i.e., buttons from widget.el). This has now changed, and they are
1627now buttons (from button.el), and commands like 'TAB' now search for 1370now buttons (from button.el), and commands like 'TAB' now search for
@@ -1631,22 +1374,18 @@ fail.
1631 1374
1632** erc 1375** erc
1633 1376
1634---
1635*** New hook 'erc-insert-done-hook'. 1377*** New hook 'erc-insert-done-hook'.
1636This hook is called after strings have been inserted into the buffer, 1378This hook is called after strings have been inserted into the buffer,
1637and is free to alter point and window configurations, as it's not 1379and is free to alter point and window configurations, as it's not
1638called from inside a 'save-excursion', as opposed to 'erc-insert-post-hook'. 1380called from inside a 'save-excursion', as opposed to 'erc-insert-post-hook'.
1639 1381
1640---
1641*** 'erc-button-google-url' has been renamed to 'erc-button-search-url' 1382*** 'erc-button-google-url' has been renamed to 'erc-button-search-url'
1642and its value has been changed to Duck Duck Go. 1383and its value has been changed to Duck Duck Go.
1643 1384
1644---
1645*** 'erc-send-pre-hook' and 'erc-send-this' have been obsoleted. 1385*** 'erc-send-pre-hook' and 'erc-send-this' have been obsoleted.
1646The user option to use instead to alter text to be sent is now 1386The user option to use instead to alter text to be sent is now
1647'erc-pre-send-functions'. 1387'erc-pre-send-functions'.
1648 1388
1649---
1650*** Improve matching/highlighting of nicknames. 1389*** Improve matching/highlighting of nicknames.
1651Open and close parenthesis and apostrophe are not considered valid 1390Open and close parenthesis and apostrophe are not considered valid
1652nick characters anymore, matching the given grammar in RFC 2812 1391nick characters anymore, matching the given grammar in RFC 2812
@@ -1654,43 +1393,35 @@ section 2.3.1. This enables correct matching and highlighting of
1654nicks when they are surrounded by parentheses, like "(nick)", and when 1393nicks when they are surrounded by parentheses, like "(nick)", and when
1655adjacent to an apostrophe, like "nick's". 1394adjacent to an apostrophe, like "nick's".
1656 1395
1657---
1658*** Set 'erc-button-url-regexp' to 'browse-url-button-regexp' 1396*** Set 'erc-button-url-regexp' to 'browse-url-button-regexp'
1659which better handles surrounding pair of parentheses. 1397which better handles surrounding pair of parentheses.
1660 1398
1661---
1662*** New function 'erc-switch-to-buffer-other-window' 1399*** New function 'erc-switch-to-buffer-other-window'
1663which is like 'erc-switch-to-buffer', but opens the buffer in another 1400which is like 'erc-switch-to-buffer', but opens the buffer in another
1664window. 1401window.
1665 1402
1666---
1667*** New function 'erc-track-switch-buffer-other-window' 1403*** New function 'erc-track-switch-buffer-other-window'
1668which is like 'erc-track-switch-buffer', but opens the buffer in 1404which is like 'erc-track-switch-buffer', but opens the buffer in
1669another window. 1405another window.
1670 1406
1671** EUDC 1407** EUDC
1672 1408
1673---
1674*** XEmacs support has been removed. 1409*** XEmacs support has been removed.
1675 1410
1676** eww/shr 1411** eww/shr
1677 1412
1678+++
1679*** The new user option 'shr-cookie-policy' can be used to control 1413*** The new user option 'shr-cookie-policy' can be used to control
1680when to use cookies when fetching embedded images. The default is to 1414when to use cookies when fetching embedded images. The default is to
1681use them when the images are from the same domain as the main HTML 1415use them when the images are from the same domain as the main HTML
1682document. 1416document.
1683 1417
1684+++
1685*** The 'eww' command can now create a new EWW buffer. 1418*** The 'eww' command can now create a new EWW buffer.
1686Invoking the command with a prefix argument will cause it to create a 1419Invoking the command with a prefix argument will cause it to create a
1687new EWW buffer for the URL instead of reusing the default one. 1420new EWW buffer for the URL instead of reusing the default one.
1688 1421
1689+++
1690*** Clicking with the Ctrl key or 'C-u RET' on a link opens a new tab 1422*** Clicking with the Ctrl key or 'C-u RET' on a link opens a new tab
1691when tab-bar-mode is enabled. 1423when tab-bar-mode is enabled.
1692 1424
1693+++
1694*** The 'd' ('eww-download') command now falls back to current page's URL. 1425*** The 'd' ('eww-download') command now falls back to current page's URL.
1695If this command is invoked with no URL at point, it now downloads the 1426If this command is invoked with no URL at point, it now downloads the
1696current page instead of signaling an error. 1427current page instead of signaling an error.
@@ -1700,30 +1431,24 @@ current page instead of signaling an error.
1700'shr-selected-link' face to give the user feedback that the command 1431'shr-selected-link' face to give the user feedback that the command
1701has been executed. 1432has been executed.
1702 1433
1703+++
1704*** New user option 'shr-discard-aria-hidden'. 1434*** New user option 'shr-discard-aria-hidden'.
1705If set, shr will not render tags with attribute 'aria-hidden="true"'. 1435If set, shr will not render tags with attribute 'aria-hidden="true"'.
1706This attribute is meant to tell screen readers to ignore a tag. 1436This attribute is meant to tell screen readers to ignore a tag.
1707 1437
1708+++
1709*** 'shr-external-browser' has been made into an obsolete alias 1438*** 'shr-external-browser' has been made into an obsolete alias
1710of 'browse-url-secondary-browser-function'. 1439of 'browse-url-secondary-browser-function'.
1711 1440
1712---
1713*** 'shr-tag-ol' now respects the ordered list 'start' attribute. 1441*** 'shr-tag-ol' now respects the ordered list 'start' attribute.
1714 1442
1715---
1716*** The following tags are now handled: '<code>', '<abbr>', and '<acronym>'. 1443*** The following tags are now handled: '<code>', '<abbr>', and '<acronym>'.
1717 1444
1718** Htmlfontify 1445** Htmlfontify
1719 1446
1720+++
1721*** The functions 'hfy-color', 'hfy-color-vals' and 1447*** The functions 'hfy-color', 'hfy-color-vals' and
1722'hfy-fallback-color-values' and the variables 'hfy-fallback-color-map' 1448'hfy-fallback-color-values' and the variables 'hfy-fallback-color-map'
1723and 'hfy-rgb-txt-color-map' have been renamed from names that used 1449and 'hfy-rgb-txt-color-map' have been renamed from names that used
1724'colour' instead of 'color'. 1450'colour' instead of 'color'.
1725 1451
1726+++
1727** Enriched mode supports the 'charset' text property. 1452** Enriched mode supports the 'charset' text property.
1728You can add or modify the 'charset' text properties of text using the 1453You can add or modify the 'charset' text properties of text using the
1729'Edit->Text Properties->Special Properties' menu, or by invoking the 1454'Edit->Text Properties->Special Properties' menu, or by invoking the
@@ -1733,70 +1458,57 @@ restored when the file is visited.
1733 1458
1734** Smtpmail 1459** Smtpmail
1735 1460
1736---
1737*** Authentication mechanisms can be added via external packages, by 1461*** Authentication mechanisms can be added via external packages, by
1738defining new 'cl-defmethod' of 'smtpmail-try-auth-method'. 1462defining new 'cl-defmethod' of 'smtpmail-try-auth-method'.
1739 1463
1740+++
1741*** To always force smtpmail to send credentials over on the first 1464*** To always force smtpmail to send credentials over on the first
1742attempt when communicating with the SMTP server(s), the 1465attempt when communicating with the SMTP server(s), the
1743'smtpmail-servers-requiring-authorization' user option can be used. 1466'smtpmail-servers-requiring-authorization' user option can be used.
1744 1467
1745+++
1746*** smtpmail will now try resending mail when getting a transient "4xx" 1468*** smtpmail will now try resending mail when getting a transient "4xx"
1747error message from the SMTP server. The new 'smtpmail-retries' 1469error message from the SMTP server. The new 'smtpmail-retries'
1748user option says how many times to retry. 1470user option says how many times to retry.
1749 1471
1750** Footnote mode 1472** Footnote mode
1751 1473
1752---
1753*** Support Hebrew-style footnotes. 1474*** Support Hebrew-style footnotes.
1754 1475
1755---
1756*** Footnote text lines are now aligned. 1476*** Footnote text lines are now aligned.
1757Can be controlled via the new user option 'footnote-align-to-fn-text'. 1477Can be controlled via the new user option 'footnote-align-to-fn-text'.
1758 1478
1759** CSS mode 1479** CSS mode
1760 1480
1761---
1762*** A new command 'css-cycle-color-format' for cycling between color 1481*** A new command 'css-cycle-color-format' for cycling between color
1763formats (e.g. "black" => "#000000" => "rgb(0, 0, 0)") has been added, 1482formats (e.g. "black" => "#000000" => "rgb(0, 0, 0)") has been added,
1764bound to 'C-c C-f'. 1483bound to 'C-c C-f'.
1765 1484
1766---
1767*** CSS mode, SCSS mode, and Less CSS mode now have support for Imenu. 1485*** CSS mode, SCSS mode, and Less CSS mode now have support for Imenu.
1768 1486
1769** SGML mode 1487** SGML mode
1770 1488
1771---
1772*** 'sgml-quote' now handles double quotes and apostrophes 1489*** 'sgml-quote' now handles double quotes and apostrophes
1773when escaping text and in addition all numeric entities when 1490when escaping text and in addition all numeric entities when
1774unescaping text. 1491unescaping text.
1775 1492
1776** Python mode 1493** Python mode
1777 1494
1778---
1779*** Python mode supports three different font lock decoration levels. 1495*** Python mode supports three different font lock decoration levels.
1780The maximum level is used by default; customize 1496The maximum level is used by default; customize
1781'font-lock-maximum-decoration' to tone down the decoration. 1497'font-lock-maximum-decoration' to tone down the decoration.
1782 1498
1783---
1784*** New user option 'python-pdbtrack-kill-buffers'. 1499*** New user option 'python-pdbtrack-kill-buffers'.
1785If non-nil, the default, buffers opened during pdbtracking session are 1500If non-nil, the default, buffers opened during pdbtracking session are
1786killed when pdbtracking session is finished. 1501killed when pdbtracking session is finished.
1787 1502
1788---
1789*** New function 'python-shell-send-statement. 1503*** New function 'python-shell-send-statement.
1790It sends the statement delimited by 'python-nav-beginning-of-statement' 1504It sends the statement delimited by 'python-nav-beginning-of-statement'
1791and 'python-nav-end-of-statement' to the inferior Python process. 1505and 'python-nav-end-of-statement' to the inferior Python process.
1792 1506
1793** Help 1507** Help
1794 1508
1795---
1796*** Descriptions of variables and functions give an estimated first release 1509*** Descriptions of variables and functions give an estimated first release
1797where the variable or function appeared in Emacs. 1510where the variable or function appeared in Emacs.
1798 1511
1799---
1800*** Output format of 'C-h l' ('view-lossage') has changed. 1512*** Output format of 'C-h l' ('view-lossage') has changed.
1801For convenience, 'view-lossage' now displays the last keystrokes 1513For convenience, 'view-lossage' now displays the last keystrokes
1802and commands in the same format as the edit buffer of 1514and commands in the same format as the edit buffer of
@@ -1804,23 +1516,19 @@ and commands in the same format as the edit buffer of
1804the buffer generated by 'view-lossage' to the "*Edit Macro*" buffer 1516the buffer generated by 'view-lossage' to the "*Edit Macro*" buffer
1805created by 'edit-last-kbd-macro', and to save the macro by 'C-c C-c'. 1517created by 'edit-last-kbd-macro', and to save the macro by 'C-c C-c'.
1806 1518
1807---
1808*** The list of help commands produced by 'C-h C-h' ('help-for-help') 1519*** The list of help commands produced by 'C-h C-h' ('help-for-help')
1809can now be searched via 'C-s'. 1520can now be searched via 'C-s'.
1810 1521
1811** Ibuffer 1522** Ibuffer
1812 1523
1813---
1814*** New filter 'ibuffer-filter-by-process'; bound to '/ E'. 1524*** New filter 'ibuffer-filter-by-process'; bound to '/ E'.
1815 1525
1816---
1817*** All mode filters can now accept a list of symbols. 1526*** All mode filters can now accept a list of symbols.
1818This means you can now easily filter several major modes, as well 1527This means you can now easily filter several major modes, as well
1819as a single mode. 1528as a single mode.
1820 1529
1821** Search and Replace 1530** Search and Replace
1822 1531
1823+++
1824*** Isearch supports a prefix argument for 'C-s' ('isearch-repeat-forward') 1532*** Isearch supports a prefix argument for 'C-s' ('isearch-repeat-forward')
1825and 'C-r' ('isearch-repeat-backward'). With a prefix argument, these 1533and 'C-r' ('isearch-repeat-backward'). With a prefix argument, these
1826commands repeat the search for the specified occurrence of the search string. 1534commands repeat the search for the specified occurrence of the search string.
@@ -1830,7 +1538,6 @@ This makes possible also to use a prefix argument for 'M-s .'
1830Also a prefix argument is supported for 'isearch-yank-until-char', 1538Also a prefix argument is supported for 'isearch-yank-until-char',
1831'isearch-yank-word-or-char', 'isearch-yank-symbol-or-char'. 1539'isearch-yank-word-or-char', 'isearch-yank-symbol-or-char'.
1832 1540
1833+++
1834*** To go to the first/last occurrence of the current search string 1541*** To go to the first/last occurrence of the current search string
1835is possible now with new commands 'isearch-beginning-of-buffer' and 1542is possible now with new commands 'isearch-beginning-of-buffer' and
1836'isearch-end-of-buffer' bound to 'M-s M-<' and 'M-s M->' in Isearch. 1543'isearch-end-of-buffer' bound to 'M-s M-<' and 'M-s M->' in Isearch.
@@ -1839,14 +1546,12 @@ counting from the beginning/end of the buffer. This complements
1839'C-s'/'C-r' that searches for the next Nth relative occurrence 1546'C-s'/'C-r' that searches for the next Nth relative occurrence
1840with a numeric argument. 1547with a numeric argument.
1841 1548
1842+++
1843*** 'isearch-lazy-count' shows the current match number and total number 1549*** 'isearch-lazy-count' shows the current match number and total number
1844of matches in the Isearch prompt. User options 1550of matches in the Isearch prompt. User options
1845'lazy-count-prefix-format' and 'lazy-count-suffix-format' define the 1551'lazy-count-prefix-format' and 'lazy-count-suffix-format' define the
1846format of the current and the total number of matches in the prompt's 1552format of the current and the total number of matches in the prompt's
1847prefix and suffix, respectively. 1553prefix and suffix, respectively.
1848 1554
1849---
1850*** 'lazy-highlight-buffer' highlights matches in the full buffer. 1555*** 'lazy-highlight-buffer' highlights matches in the full buffer.
1851It is useful in combination with 'lazy-highlight-cleanup' customized to nil 1556It is useful in combination with 'lazy-highlight-cleanup' customized to nil
1852to leave matches highlighted in the whole buffer after exiting isearch. 1557to leave matches highlighted in the whole buffer after exiting isearch.
@@ -1855,7 +1560,6 @@ navigation through the matches without flickering is more smooth.
1855'lazy-highlight-buffer-max-at-a-time' controls the number of matches to 1560'lazy-highlight-buffer-max-at-a-time' controls the number of matches to
1856highlight in one iteration while processing the full buffer. 1561highlight in one iteration while processing the full buffer.
1857 1562
1858+++
1859*** New isearch bindings. 1563*** New isearch bindings.
1860'C-M-z' invokes new function 'isearch-yank-until-char', which yanks 1564'C-M-z' invokes new function 'isearch-yank-until-char', which yanks
1861everything from point up to but not including the specified 1565everything from point up to but not including the specified
@@ -1871,27 +1575,21 @@ string to highlight lines matching the search string. This is similar
1871to the existing binding 'M-s h r' ('highlight-regexp') that highlights 1575to the existing binding 'M-s h r' ('highlight-regexp') that highlights
1872JUST the search string. 1576JUST the search string.
1873 1577
1874+++
1875*** New user option 'isearch-yank-on-move' provides options t and 'shift' 1578*** New user option 'isearch-yank-on-move' provides options t and 'shift'
1876to extend the search string by yanking text that ends at the new 1579to extend the search string by yanking text that ends at the new
1877position after moving point in the current buffer. 'shift' extends 1580position after moving point in the current buffer. 'shift' extends
1878the search string by motion commands while holding down the shift key. 1581the search string by motion commands while holding down the shift key.
1879 1582
1880+++
1881*** 'isearch-allow-scroll' provides a new option 'unlimited' to allow 1583*** 'isearch-allow-scroll' provides a new option 'unlimited' to allow
1882scrolling any distance off screen. 1584scrolling any distance off screen.
1883 1585
1884---
1885*** Isearch now remembers the regexp-based search mode for words/symbols 1586*** Isearch now remembers the regexp-based search mode for words/symbols
1886and case-sensitivity together with search strings in the search ring. 1587and case-sensitivity together with search strings in the search ring.
1887 1588
1888---
1889*** Isearch now has its own tool-bar and menu-bar menu. 1589*** Isearch now has its own tool-bar and menu-bar menu.
1890 1590
1891+++
1892*** 'flush-lines' prints and returns the number of deleted matching lines. 1591*** 'flush-lines' prints and returns the number of deleted matching lines.
1893 1592
1894---
1895*** 'char-fold-to-regexp' now matches more variants of a base character. 1593*** 'char-fold-to-regexp' now matches more variants of a base character.
1896The table used to check for equivalence of characters is now built 1594The table used to check for equivalence of characters is now built
1897using the complete chain of unicode decompositions of a character, 1595using the complete chain of unicode decompositions of a character,
@@ -1899,7 +1597,6 @@ rather than stopping after one level, such that searching for
1899e.g. "GREEK SMALL LETTER IOTA" will now also find "GREEK SMALL LETTER 1597e.g. "GREEK SMALL LETTER IOTA" will now also find "GREEK SMALL LETTER
1900IOTA WITH OXIA". 1598IOTA WITH OXIA".
1901 1599
1902+++
1903*** New char-folding options: 'char-fold-include' lets you add ad hoc 1600*** New char-folding options: 'char-fold-include' lets you add ad hoc
1904foldings, 'char-fold-exclude' to remove foldings from default decomposition, 1601foldings, 'char-fold-exclude' to remove foldings from default decomposition,
1905and 'char-fold-symmetric' to search for any of an equivalence class of 1602and 'char-fold-symmetric' to search for any of an equivalence class of
@@ -1910,7 +1607,6 @@ to find "e".
1910 1607
1911** Debugger 1608** Debugger
1912 1609
1913+++
1914*** The Lisp Debugger is now based on 'backtrace-mode'. 1610*** The Lisp Debugger is now based on 'backtrace-mode'.
1915Backtrace mode adds fontification and commands for changing the 1611Backtrace mode adds fontification and commands for changing the
1916appearance of backtrace frames. See the node "(elisp) Backtraces" in 1612appearance of backtrace frames. See the node "(elisp) Backtraces" in
@@ -1918,45 +1614,37 @@ the Elisp manual for documentation of the new mode and its commands.
1918 1614
1919** Edebug 1615** Edebug
1920 1616
1921+++
1922*** 'edebug-eval-last-sexp' and 'edebug-eval-print-last-sexp' interactively 1617*** 'edebug-eval-last-sexp' and 'edebug-eval-print-last-sexp' interactively
1923now take a zero prefix analogously to the non-Edebug counterparts. 1618now take a zero prefix analogously to the non-Edebug counterparts.
1924 1619
1925+++
1926*** New faces 'edebug-enabled-breakpoint' and 'edebug-disabled-breakpoint'. 1620*** New faces 'edebug-enabled-breakpoint' and 'edebug-disabled-breakpoint'.
1927When setting breakpoints in Edebug, an overlay with these faces are 1621When setting breakpoints in Edebug, an overlay with these faces are
1928placed over the point in question, depending on whether they are 1622placed over the point in question, depending on whether they are
1929enabled or not. 1623enabled or not.
1930 1624
1931+++
1932*** New command 'edebug-toggle-disable-breakpoint'. 1625*** New command 'edebug-toggle-disable-breakpoint'.
1933This command allows you to disable a breakpoint temporarily. This is 1626This command allows you to disable a breakpoint temporarily. This is
1934mainly useful with breakpoints that are conditional and would take 1627mainly useful with breakpoints that are conditional and would take
1935some time to recreate. 1628some time to recreate.
1936 1629
1937+++
1938*** New command 'edebug-unset-breakpoints'. 1630*** New command 'edebug-unset-breakpoints'.
1939To clear all breakpoints in the current form, the 'U' command in 1631To clear all breakpoints in the current form, the 'U' command in
1940'edebug-mode', or 'M-x edebug-unset-breakpoints' can be used. 1632'edebug-mode', or 'M-x edebug-unset-breakpoints' can be used.
1941 1633
1942---
1943*** Re-instrumenting a function with Edebug will now try to preserve 1634*** Re-instrumenting a function with Edebug will now try to preserve
1944previously-set breakpoints. However, if the code has changed 1635previously-set breakpoints. However, if the code has changed
1945substantially, this may not be possible. 1636substantially, this may not be possible.
1946 1637
1947+++
1948*** New command 'edebug-remove-instrumentation'. 1638*** New command 'edebug-remove-instrumentation'.
1949This command removes Edebug instrumentation from all functions that 1639This command removes Edebug instrumentation from all functions that
1950have been instrumented. 1640have been instrumented.
1951 1641
1952+++
1953*** The runtime behavior of Edebug's instrumentation can be changed 1642*** The runtime behavior of Edebug's instrumentation can be changed
1954using the new variables 'edebug-behavior-alist', 1643using the new variables 'edebug-behavior-alist',
1955'edebug-after-instrumentation-function' and 1644'edebug-after-instrumentation-function' and
1956'edebug-new-definition-function'. Edebug's behavior can be changed 1645'edebug-new-definition-function'. Edebug's behavior can be changed
1957globally or for individual definitions. 1646globally or for individual definitions.
1958 1647
1959+++
1960*** Edebug's backtrace buffer now uses 'backtrace-mode'. 1648*** Edebug's backtrace buffer now uses 'backtrace-mode'.
1961Backtrace mode adds fontification, links and commands for changing the 1649Backtrace mode adds fontification, links and commands for changing the
1962appearance of backtrace frames. See the node "(elisp) Backtraces" in 1650appearance of backtrace frames. See the node "(elisp) Backtraces" in
@@ -1973,14 +1661,12 @@ been instrumented by Edebug.
1973 1661
1974** Enhanced xterm support 1662** Enhanced xterm support
1975 1663
1976---
1977*** New user option 'xterm-set-window-title' controls whether Emacs sets 1664*** New user option 'xterm-set-window-title' controls whether Emacs sets
1978the XTerm window title. This feature is experimental and is disabled 1665the XTerm window title. This feature is experimental and is disabled
1979by default. 1666by default.
1980 1667
1981** Grep 1668** Grep
1982 1669
1983+++
1984*** 'rgrep', 'lgrep' and 'zrgrep' now hide part of the command line 1670*** 'rgrep', 'lgrep' and 'zrgrep' now hide part of the command line
1985that contains a list of ignored directories and files. 1671that contains a list of ignored directories and files.
1986Clicking on the button with ellipsis unhides it. 1672Clicking on the button with ellipsis unhides it.
@@ -1988,16 +1674,13 @@ The abbreviation can be disabled by the new user option
1988'grep-find-abbreviate'. The new command 1674'grep-find-abbreviate'. The new command
1989'grep-find-toggle-abbreviation' toggles it interactively. 1675'grep-find-toggle-abbreviation' toggles it interactively.
1990 1676
1991---
1992*** 'grep-find-use-xargs' is now customizable with sorting options. 1677*** 'grep-find-use-xargs' is now customizable with sorting options.
1993 1678
1994** ERT 1679** ERT
1995 1680
1996+++
1997*** New variable 'ert-quiet' allows making ERT output in batch mode 1681*** New variable 'ert-quiet' allows making ERT output in batch mode
1998less verbose by removing non-essential information. 1682less verbose by removing non-essential information.
1999 1683
2000+++
2001*** ERT's backtrace buffer now uses 'backtrace-mode'. 1684*** ERT's backtrace buffer now uses 'backtrace-mode'.
2002Backtrace mode adds fontification and commands for changing the 1685Backtrace mode adds fontification and commands for changing the
2003appearance of backtrace frames. See the node "(elisp) Backtraces" in 1686appearance of backtrace frames. See the node "(elisp) Backtraces" in
@@ -2005,73 +1688,61 @@ the Elisp manual for documentation of the new mode and its commands.
2005 1688
2006** Gamegrid 1689** Gamegrid
2007 1690
2008---
2009*** Gamegrid now determines its default glyph size based on display 1691*** Gamegrid now determines its default glyph size based on display
2010dimensions, instead of always using 16 pixels. As a result, Tetris, 1692dimensions, instead of always using 16 pixels. As a result, Tetris,
2011Snake and Pong are better playable on HiDPI displays. 1693Snake and Pong are better playable on HiDPI displays.
2012 1694
2013---
2014*** 'gamegrid-add-score' can now sort scores from lower to higher. 1695*** 'gamegrid-add-score' can now sort scores from lower to higher.
2015This is useful for games where lower scores are better, like time-based games. 1696This is useful for games where lower scores are better, like time-based games.
2016 1697
2017** Filecache 1698** Filecache
2018 1699
2019---
2020*** Completing file names in the minibuffer via 'C-TAB' now uses the 1700*** Completing file names in the minibuffer via 'C-TAB' now uses the
2021styles as configured by the user option 'completion-styles'. 1701styles as configured by the user option 'completion-styles'.
2022 1702
2023+++
2024** New macros 'thunk-let' and 'thunk-let*'. 1703** New macros 'thunk-let' and 'thunk-let*'.
2025These macros are analogue to 'let' and 'let*', but create bindings that 1704These macros are analogue to 'let' and 'let*', but create bindings that
2026are evaluated lazily. 1705are evaluated lazily.
2027 1706
2028** next-error 1707** next-error
2029 1708
2030+++
2031*** New user option 'next-error-find-buffer-function'. 1709*** New user option 'next-error-find-buffer-function'.
2032The value should be a function that determines how to find the 1710The value should be a function that determines how to find the
2033next buffer to be used by 'next-error' and 'previous-error'. The 1711next buffer to be used by 'next-error' and 'previous-error'. The
2034default is to use the last buffer that navigated to the current 1712default is to use the last buffer that navigated to the current
2035error. 1713error.
2036 1714
2037+++
2038*** New command 'next-error-select-buffer'. 1715*** New command 'next-error-select-buffer'.
2039It can be used to set any buffer as the next one to be used by 1716It can be used to set any buffer as the next one to be used by
2040'next-error' and 'previous-error'. 1717'next-error' and 'previous-error'.
2041 1718
2042** nxml-mode 1719** nxml-mode
2043 1720
2044---
2045*** The default value of 'nxml-sexp-element-flag' is now t. 1721*** The default value of 'nxml-sexp-element-flag' is now t.
2046This means that pressing 'C-M-SPACE' now selects the entire tree by 1722This means that pressing 'C-M-SPACE' now selects the entire tree by
2047default, and not just the opening element. 1723default, and not just the opening element.
2048 1724
2049** Eshell 1725** Eshell
2050 1726
2051---
2052*** TAB completion uses the standard 'completion-at-point' rather than 1727*** TAB completion uses the standard 'completion-at-point' rather than
2053'pcomplete'. Its UI is slightly different but can be customized to 1728'pcomplete'. Its UI is slightly different but can be customized to
2054behave similarly, e.g. Pcomplete's default cycling can be obtained 1729behave similarly, e.g. Pcomplete's default cycling can be obtained
2055with '(setq completion-cycle-threshold 5)'. 1730with '(setq completion-cycle-threshold 5)'.
2056 1731
2057+++
2058*** Expansion of history event designators is disabled by default. 1732*** Expansion of history event designators is disabled by default.
2059To restore the old behavior, use 1733To restore the old behavior, use
2060 1734
2061 (add-hook 'eshell-expand-input-functions 1735 (add-hook 'eshell-expand-input-functions
2062 #'eshell-expand-history-references) 1736 #'eshell-expand-history-references)
2063 1737
2064---
2065*** The function 'eshell-uniquify-list' has been renamed from 1738*** The function 'eshell-uniquify-list' has been renamed from
2066'eshell-uniqify-list'. 1739'eshell-uniqify-list'.
2067 1740
2068---
2069*** The function 'eshell/kill' is now able to handle signal switches. 1741*** The function 'eshell/kill' is now able to handle signal switches.
2070Previously 'eshell/kill' would fail if provided a kill signal to send 1742Previously 'eshell/kill' would fail if provided a kill signal to send
2071to the process. It now accepts signals specified either by name or by 1743to the process. It now accepts signals specified either by name or by
2072its number. 1744its number.
2073 1745
2074---
2075*** Emacs now follows symlinks in history-related files. 1746*** Emacs now follows symlinks in history-related files.
2076The files specified by 'eshell-history-file-name' and 1747The files specified by 'eshell-history-file-name' and
2077'eshell-last-dir-ring-file-name' can include symlinks; these are now 1748'eshell-last-dir-ring-file-name' can include symlinks; these are now
@@ -2079,16 +1750,13 @@ followed when Emacs writes the relevant history variables to the disk.
2079 1750
2080** Shell 1751** Shell
2081 1752
2082---
2083*** Program name completion inside remote shells works now as expected. 1753*** Program name completion inside remote shells works now as expected.
2084 1754
2085+++
2086*** The user option 'shell-file-name' can be set now as connection-local 1755*** The user option 'shell-file-name' can be set now as connection-local
2087variable for remote shells. It still defaults to "/bin/sh". 1756variable for remote shells. It still defaults to "/bin/sh".
2088 1757
2089** Single shell commands 1758** Single shell commands
2090 1759
2091+++
2092*** New values of 'shell-command-dont-erase-buffer'. 1760*** New values of 'shell-command-dont-erase-buffer'.
2093This user option can now have the value 'erase' to force to erase the 1761This user option can now have the value 'erase' to force to erase the
2094output buffer before execution of the command, even if the output goes 1762output buffer before execution of the command, even if the output goes
@@ -2096,42 +1764,34 @@ to the current buffer. Additional values 'beg-last-out',
2096'end-last-out', and 'save-point' control where to put point in the 1764'end-last-out', and 'save-point' control where to put point in the
2097output buffer after inserting the 'shell-command' output. 1765output buffer after inserting the 'shell-command' output.
2098 1766
2099---
2100*** The new functions 'shell-command-save-pos-or-erase' and 1767*** The new functions 'shell-command-save-pos-or-erase' and
2101'shell-command-set-point-after-cmd' control how point is handled 1768'shell-command-set-point-after-cmd' control how point is handled
2102between two consecutive shell commands in the same output buffer. 1769between two consecutive shell commands in the same output buffer.
2103 1770
2104+++
2105*** 'async-shell-command-width' defines the number of display columns 1771*** 'async-shell-command-width' defines the number of display columns
2106available for output of asynchronous shell commands. 1772available for output of asynchronous shell commands.
2107 1773
2108+++
2109*** Prompt for shell commands can now show the current directory. 1774*** Prompt for shell commands can now show the current directory.
2110Customize the new user option 'shell-command-prompt-show-cwd' to enable it. 1775Customize the new user option 'shell-command-prompt-show-cwd' to enable it.
2111 1776
2112** Pcomplete 1777** Pcomplete
2113 1778
2114---
2115*** The 'pcomplete' command is now obsolete. 1779*** The 'pcomplete' command is now obsolete.
2116The Pcomplete functionality can be obtained via 'completion-at-point' 1780The Pcomplete functionality can be obtained via 'completion-at-point'
2117instead, by adding 'pcomplete-completions-at-point' to 1781instead, by adding 'pcomplete-completions-at-point' to
2118'completion-at-point-functions'. 1782'completion-at-point-functions'.
2119 1783
2120---
2121*** The function 'pcomplete-uniquify-list' has been renamed from 1784*** The function 'pcomplete-uniquify-list' has been renamed from
2122'pcomplete-uniqify-list'. 1785'pcomplete-uniqify-list'.
2123 1786
2124---
2125*** 'pcomplete/make' now completes on targets in included files, recursively. 1787*** 'pcomplete/make' now completes on targets in included files, recursively.
2126To recover the previous behavior, set new user option 1788To recover the previous behavior, set new user option
2127'pcmpl-gnu-makefile-includes' to nil. 1789'pcmpl-gnu-makefile-includes' to nil.
2128 1790
2129** Auth-source 1791** Auth-source
2130 1792
2131---
2132*** The Secret Service backend supports the ':create' key now. 1793*** The Secret Service backend supports the ':create' key now.
2133 1794
2134---
2135*** ".authinfo" and ".netrc" files now use a new mode: 'authinfo-mode'. 1795*** ".authinfo" and ".netrc" files now use a new mode: 'authinfo-mode'.
2136This is just like 'fundamental-mode', except that it hides passwords 1796This is just like 'fundamental-mode', except that it hides passwords
2137under a "****" display property. When the cursor moves to this text, 1797under a "****" display property. When the cursor moves to this text,
@@ -2140,110 +1800,89 @@ the real password is revealed (via 'reveal-mode'). The new
2140 1800
2141** Tramp 1801** Tramp
2142 1802
2143+++
2144*** New connection method "nextcloud", which allows accessing OwnCloud 1803*** New connection method "nextcloud", which allows accessing OwnCloud
2145or NextCloud hosted files and directories. 1804or NextCloud hosted files and directories.
2146 1805
2147+++
2148*** New connection method "rclone", which allows accessing system 1806*** New connection method "rclone", which allows accessing system
2149storages via the 'rclone' program. This feature is experimental. 1807storages via the 'rclone' program. This feature is experimental.
2150 1808
2151+++
2152*** New connection method "sudoedit", which allows editing local files 1809*** New connection method "sudoedit", which allows editing local files
2153with different user credentials. Contrary to the "sudo" method, no 1810with different user credentials. Contrary to the "sudo" method, no
2154session is run permanently in the background. This is for security 1811session is run permanently in the background. This is for security
2155reasons. 1812reasons.
2156 1813
2157+++
2158*** Connection methods "obex" and "synce" have been removed, because they 1814*** Connection methods "obex" and "synce" have been removed, because they
2159are obsoleted in GVFS. 1815are obsoleted in GVFS.
2160 1816
2161+++
2162*** Validated passwords are saved by auth-source backends which support this. 1817*** Validated passwords are saved by auth-source backends which support this.
2163 1818
2164+++
2165*** During user and host name completion in the minibuffer, results 1819*** During user and host name completion in the minibuffer, results
2166from auth-source search are taken into account. This can be disabled 1820from auth-source search are taken into account. This can be disabled
2167by setting the user option 'tramp-completion-use-auth-sources' to nil. 1821by setting the user option 'tramp-completion-use-auth-sources' to nil.
2168 1822
2169+++
2170*** The user option 'tramp-ignored-file-name-regexp' allows disabling 1823*** The user option 'tramp-ignored-file-name-regexp' allows disabling
2171Tramp for some look-alike remote file names. 1824Tramp for some look-alike remote file names.
2172 1825
2173+++
2174*** For some connection methods, like "su" or "sudo", the host name in 1826*** For some connection methods, like "su" or "sudo", the host name in
2175multi-hop file names must match the previous hop. Default host names 1827multi-hop file names must match the previous hop. Default host names
2176are adjusted to the host name from the previous hop. 1828are adjusted to the host name from the previous hop.
2177 1829
2178+++
2179*** A timeout has been added for the connection methods "sudo" and "doas". 1830*** A timeout has been added for the connection methods "sudo" and "doas".
2180The underlying session is disabled when the timeout expires. This is 1831The underlying session is disabled when the timeout expires. This is
2181for security reasons. 1832for security reasons.
2182 1833
2183+++
2184*** For some connection methods, like "sshx" or "plink", it is 1834*** For some connection methods, like "sshx" or "plink", it is
2185possible to configure the remote login shell. This avoids problems 1835possible to configure the remote login shell. This avoids problems
2186with remote hosts, where "/bin/sh" is a link to a shell which 1836with remote hosts, where "/bin/sh" is a link to a shell which
2187cooperates badly with Tramp. 1837cooperates badly with Tramp.
2188 1838
2189+++
2190*** New commands 'tramp-rename-files' and 'tramp-rename-these-files'. 1839*** New commands 'tramp-rename-files' and 'tramp-rename-these-files'.
2191They allow saving remote files somewhere else when the corresponding 1840They allow saving remote files somewhere else when the corresponding
2192host is not reachable anymore. 1841host is not reachable anymore.
2193 1842
2194** Rcirc 1843** Rcirc
2195 1844
2196---
2197*** New user option 'rcirc-url-max-length'. 1845*** New user option 'rcirc-url-max-length'.
2198Setting this option to an integer causes URLs displayed in Rcirc 1846Setting this option to an integer causes URLs displayed in Rcirc
2199buffers to be truncated to that many characters. 1847buffers to be truncated to that many characters.
2200 1848
2201---
2202*** The default '/quit' and '/part' reasons are now configurable. 1849*** The default '/quit' and '/part' reasons are now configurable.
2203Two new user options are provided for this: 1850Two new user options are provided for this:
2204'rcirc-default-part-reason' and 'rcirc-default-quit-reason'. 1851'rcirc-default-part-reason' and 'rcirc-default-quit-reason'.
2205 1852
2206** Register 1853** Register
2207 1854
2208---
2209*** The return value of method 'register-val-describe' includes the 1855*** The return value of method 'register-val-describe' includes the
2210names of buffers shown by the windows of a window configuration. 1856names of buffers shown by the windows of a window configuration.
2211 1857
2212** Message 1858** Message
2213 1859
2214---
2215*** Completion of email addresses can use the standard completion UI. 1860*** Completion of email addresses can use the standard completion UI.
2216This is controlled by 'message-expand-name-standard-ui'. 1861This is controlled by 'message-expand-name-standard-ui'.
2217With the standard UI the different sources (ecomplete, bbdb, and eudc) 1862With the standard UI the different sources (ecomplete, bbdb, and eudc)
2218are matched together and try to obey 'completion-styles'. 1863are matched together and try to obey 'completion-styles'.
2219It should work for other completion front ends like Company. 1864It should work for other completion front ends like Company.
2220 1865
2221---
2222*** 'message-mode' now supports highlighting citations of different depths. 1866*** 'message-mode' now supports highlighting citations of different depths.
2223This can be customized via the new user option 1867This can be customized via the new user option
2224'message-cite-level-function' and the new 'message-cited-text-*' faces. 1868'message-cite-level-function' and the new 'message-cited-text-*' faces.
2225 1869
2226+++
2227*** Messages can now be systematically encrypted 1870*** Messages can now be systematically encrypted
2228when the PGP keyring contains a public key for every recipient. To 1871when the PGP keyring contains a public key for every recipient. To
2229achieve this, add 'message-sign-encrypt-if-all-keys-available' to 1872achieve this, add 'message-sign-encrypt-if-all-keys-available' to
2230'message-send-hook'. 1873'message-send-hook'.
2231 1874
2232---
2233*** When replying a message that have addresses on the form 1875*** When replying a message that have addresses on the form
2234'"foo@bar.com" <foo@bar.com>', Message will elide the repeated "name" 1876'"foo@bar.com" <foo@bar.com>', Message will elide the repeated "name"
2235from the address field in the response. 1877from the address field in the response.
2236 1878
2237---
2238*** The default of 'message-forward-as-mime' has changed from t to nil 1879*** The default of 'message-forward-as-mime' has changed from t to nil
2239as it has been reported that many recipients can't read forwards that 1880as it has been reported that many recipients can't read forwards that
2240are formatted as MIME digests. 1881are formatted as MIME digests.
2241 1882
2242+++
2243*** 'message-forward-included-headers' has changed its default to 1883*** 'message-forward-included-headers' has changed its default to
2244exclude most headers when forwarding. 1884exclude most headers when forwarding.
2245 1885
2246---
2247*** 'mml-secure-openpgp-sign-with-sender' sets also "gpg --sender". 1886*** 'mml-secure-openpgp-sign-with-sender' sets also "gpg --sender".
2248When 'mml-secure-openpgp-sign-with-sender' is non-nil, message sender's 1887When 'mml-secure-openpgp-sign-with-sender' is non-nil, message sender's
2249email address (in addition to its old behavior) will also be used to 1888email address (in addition to its old behavior) will also be used to
@@ -2259,61 +1898,48 @@ The option is useful for two reasons when verifying the signature:
2259 2.2.17 to fully benefit from this feature. See gpg(1) man page for 1898 2.2.17 to fully benefit from this feature. See gpg(1) man page for
2260 "--auto-key-retrieve". 1899 "--auto-key-retrieve".
2261 1900
2262+++
2263*** The 'mail-from-style' variable is now obsolete. 1901*** The 'mail-from-style' variable is now obsolete.
2264According to RFC 5322, only the 'angles' value is valid. 1902According to RFC 5322, only the 'angles' value is valid.
2265 1903
2266---
2267** EasyPG 1904** EasyPG
2268 1905
2269---
2270*** 'epa-pinentry-mode' is renamed to 'epg-pinentry-mode'. 1906*** 'epa-pinentry-mode' is renamed to 'epg-pinentry-mode'.
2271It now applies to epg functions as well as epa functions. 1907It now applies to epg functions as well as epa functions.
2272 1908
2273---
2274*** The alias functions 'epa--encode-coding-string', 1909*** The alias functions 'epa--encode-coding-string',
2275'epa--decode-coding-string', and 'epa--select-safe-coding-system' have 1910'epa--decode-coding-string', and 'epa--select-safe-coding-system' have
2276been removed. Use 'encode-coding-string', 'decode-coding-string', and 1911been removed. Use 'encode-coding-string', 'decode-coding-string', and
2277'select-safe-coding-system' instead. 1912'select-safe-coding-system' instead.
2278 1913
2279---
2280*** 'epg-context' structure supports now 'sender' slot. 1914*** 'epg-context' structure supports now 'sender' slot.
2281The value of the new 'sender' slot (if a string) is used to set gpg's 1915The value of the new 'sender' slot (if a string) is used to set gpg's
2282"--sender" option. This feature is used by 1916"--sender" option. This feature is used by
2283'mml-secure-openpgp-sign-with-sender'. See gpg(1) manual page about 1917'mml-secure-openpgp-sign-with-sender'. See gpg(1) manual page about
2284"--sender" for more information. 1918"--sender" for more information.
2285 1919
2286---
2287** Rmail 1920** Rmail
2288 1921
2289+++
2290*** New user option 'rmail-output-reset-deleted-flag'. 1922*** New user option 'rmail-output-reset-deleted-flag'.
2291If this option is non-nil, messages appended to an output file by the 1923If this option is non-nil, messages appended to an output file by the
2292'rmail-output' command have their Deleted flag reset. 1924'rmail-output' command have their Deleted flag reset.
2293 1925
2294---
2295*** The command 'rmail-summary-by-senders' with an empty argument 1926*** The command 'rmail-summary-by-senders' with an empty argument
2296selects the messages to summarize with a regexp that matches the 1927selects the messages to summarize with a regexp that matches the
2297sender of the current message. 1928sender of the current message.
2298 1929
2299** Threads 1930** Threads
2300 1931
2301+++
2302*** New variable 'main-thread' holds Emacs's main thread. 1932*** New variable 'main-thread' holds Emacs's main thread.
2303This is handy in Lisp programs that run on a non-main thread and want 1933This is handy in Lisp programs that run on a non-main thread and want
2304to signal the main thread, e.g., when they encounter an error. 1934to signal the main thread, e.g., when they encounter an error.
2305 1935
2306+++
2307*** 'thread-join' now returns the result of the finished thread. 1936*** 'thread-join' now returns the result of the finished thread.
2308 1937
2309+++
2310*** 'thread-signal' does not propagate errors to the main thread. 1938*** 'thread-signal' does not propagate errors to the main thread.
2311Instead, error messages are just printed in the main thread. 1939Instead, error messages are just printed in the main thread.
2312 1940
2313---
2314*** 'thread-alive-p' is now obsolete, use 'thread-live-p' instead. 1941*** 'thread-alive-p' is now obsolete, use 'thread-live-p' instead.
2315 1942
2316+++
2317*** New command 'list-threads' shows Lisp threads. 1943*** New command 'list-threads' shows Lisp threads.
2318See the current list of live threads in a tabulated-list buffer which 1944See the current list of live threads in a tabulated-list buffer which
2319automatically updates. In the buffer, you can use 's q' or 's e' to 1945automatically updates. In the buffer, you can use 's q' or 's e' to
@@ -2322,42 +1948,35 @@ backtrace with 'b'.
2322 1948
2323** thingatpt.el 1949** thingatpt.el
2324 1950
2325---
2326*** 'thing-at-point' supports a new "thing" called 'uuid'. 1951*** 'thing-at-point' supports a new "thing" called 'uuid'.
2327A symbol 'uuid' can be passed to 'thing-at-point' and it returns the 1952A symbol 'uuid' can be passed to 'thing-at-point' and it returns the
2328UUID at point. 1953UUID at point.
2329 1954
2330---
2331*** 'number-at-point' will now recognize hex numbers like 0xAb09 and #xAb09 1955*** 'number-at-point' will now recognize hex numbers like 0xAb09 and #xAb09
2332and return them as numbers. 1956and return them as numbers.
2333 1957
2334---
2335*** 'word-at-point' and 'sentence-at-point' accept NO-PROPERTIES. 1958*** 'word-at-point' and 'sentence-at-point' accept NO-PROPERTIES.
2336Just like 'thing-at-point' itself. 1959Just like 'thing-at-point' itself.
2337 1960
2338** Interactive automatic highlighting 1961** Interactive automatic highlighting
2339 1962
2340+++
2341*** 'highlight-regexp' can now highlight subexpressions. 1963*** 'highlight-regexp' can now highlight subexpressions.
2342The new command accepts a prefix numeric argument to choose the 1964The new command accepts a prefix numeric argument to choose the
2343subexpression. 1965subexpression.
2344 1966
2345** Mouse display of minor mode menu 1967** Mouse display of minor mode menu
2346 1968
2347---
2348*** 'minor-mode-menu-from-indicator' now displays full minor mode name. 1969*** 'minor-mode-menu-from-indicator' now displays full minor mode name.
2349When there is no menu for a mode, display the mode name after the 1970When there is no menu for a mode, display the mode name after the
2350indicator instead of just the indicator (which is sometimes cryptic). 1971indicator instead of just the indicator (which is sometimes cryptic).
2351 1972
2352** rx 1973** rx
2353 1974
2354---
2355*** rx now handles raw bytes in character alternatives correctly, 1975*** rx now handles raw bytes in character alternatives correctly,
2356when given in a string. Previously, '(any "\x80-\xff")' would match 1976when given in a string. Previously, '(any "\x80-\xff")' would match
2357characters U+0080...U+00FF. Now the expression matches raw bytes in 1977characters U+0080...U+00FF. Now the expression matches raw bytes in
2358the 128...255 range, as expected. 1978the 128...255 range, as expected.
2359 1979
2360---
2361*** The rx 'or' and 'seq' forms no longer require any arguments. 1980*** The rx 'or' and 'seq' forms no longer require any arguments.
2362'(or)' produces a regexp that never matches anything, while '(seq)' 1981'(or)' produces a regexp that never matches anything, while '(seq)'
2363matches the empty string, each being an identity for the operation. 1982matches the empty string, each being an identity for the operation.
@@ -2365,31 +1984,25 @@ This also works for their aliases: '|' for 'or'; ':', 'and' and
2365'sequence' for 'seq'. 1984'sequence' for 'seq'.
2366The symbol 'unmatchable' can be used as an alternative to '(or)'. 1985The symbol 'unmatchable' can be used as an alternative to '(or)'.
2367 1986
2368---
2369*** 'regexp' and new 'literal' accept arbitrary lisp as arguments. 1987*** 'regexp' and new 'literal' accept arbitrary lisp as arguments.
2370In this case, 'rx' will generate code which produces a regexp string 1988In this case, 'rx' will generate code which produces a regexp string
2371at run time, instead of a constant string. 1989at run time, instead of a constant string.
2372 1990
2373---
2374*** New rx extension mechanism: 'rx-define', 'rx-let', 'rx-let-eval'. 1991*** New rx extension mechanism: 'rx-define', 'rx-let', 'rx-let-eval'.
2375These macros add new forms to the rx notation. 1992These macros add new forms to the rx notation.
2376 1993
2377+++
2378*** 'anychar' is now an alias for 'anything'. 1994*** 'anychar' is now an alias for 'anything'.
2379Both match any single character; 'anychar' is more descriptive. 1995Both match any single character; 'anychar' is more descriptive.
2380 1996
2381+++
2382*** New 'intersection' form for character sets. 1997*** New 'intersection' form for character sets.
2383With 'or' and 'not', it can be used to compose character-matching 1998With 'or' and 'not', it can be used to compose character-matching
2384expressions from simpler parts. 1999expressions from simpler parts.
2385 2000
2386+++
2387*** 'not' now accepts more argument types. 2001*** 'not' now accepts more argument types.
2388The argument can now also be a character, a single-character string, 2002The argument can now also be a character, a single-character string,
2389an 'intersection' form, or an 'or' form whose arguments each match a 2003an 'intersection' form, or an 'or' form whose arguments each match a
2390single character. 2004single character.
2391 2005
2392+++
2393*** Nested 'or' forms of strings guarantee a longest match. 2006*** Nested 'or' forms of strings guarantee a longest match.
2394For example, '(or (or "IN" "OUT") (or "INPUT" "OUTPUT"))' now matches 2007For example, '(or (or "IN" "OUT") (or "INPUT" "OUTPUT"))' now matches
2395the whole string "INPUT" if present, not just "IN". Previously, this 2008the whole string "INPUT" if present, not just "IN". Previously, this
@@ -2397,15 +2010,12 @@ was only guaranteed inside a single 'or' form of string literals.
2397 2010
2398** Frames 2011** Frames
2399 2012
2400+++
2401*** New command 'make-frame-on-monitor' makes a frame on the specified monitor. 2013*** New command 'make-frame-on-monitor' makes a frame on the specified monitor.
2402 2014
2403+++
2404*** New value of 'minibuffer' frame parameter 'child-frame'. 2015*** New value of 'minibuffer' frame parameter 'child-frame'.
2405This allows creating and immediately parenting a minibuffer-only child 2016This allows creating and immediately parenting a minibuffer-only child
2406frame when making a frame. 2017frame when making a frame.
2407 2018
2408---
2409*** New predicates 'display-blink-cursor-p' and 'display-symbol-keys-p'. 2019*** New predicates 'display-blink-cursor-p' and 'display-symbol-keys-p'.
2410These predicates are to be preferred over 'display-graphic-p' when 2020These predicates are to be preferred over 'display-graphic-p' when
2411testing for blinking cursor capability and the capability to have 2021testing for blinking cursor capability and the capability to have
@@ -2413,7 +2023,6 @@ symbols (e.g., '[return]', '[tab]', '[backspace]') as keys respectively.
2413 2023
2414** Tabulated List mode 2024** Tabulated List mode
2415 2025
2416+++
2417*** New user options for tabulated list sort indicators. 2026*** New user options for tabulated list sort indicators.
2418You can now customize which sorting indicator character to display 2027You can now customize which sorting indicator character to display
2419near the current column in Tabulated Lists (see user options 2028near the current column in Tabulated Lists (see user options
@@ -2422,52 +2031,42 @@ near the current column in Tabulated Lists (see user options
2422'tabulated-list-tty-sort-indicator-asc', and 2031'tabulated-list-tty-sort-indicator-asc', and
2423'tabulated-list-tty-sort-indicator-desc'). 2032'tabulated-list-tty-sort-indicator-desc').
2424 2033
2425+++
2426*** Two new commands and keystrokes have been added to the tabulated 2034*** Two new commands and keystrokes have been added to the tabulated
2427list mode: 'w' (which widens the current column) and 'c' which makes 2035list mode: 'w' (which widens the current column) and 'c' which makes
2428the current column contract. 2036the current column contract.
2429 2037
2430+++
2431*** New function 'tabulated-list-clear-all-tags'. 2038*** New function 'tabulated-list-clear-all-tags'.
2432This function clears all tags from the padding area in the current 2039This function clears all tags from the padding area in the current
2433buffer. Tags are typically added by calling 'tabulated-list-put-tag'. 2040buffer. Tags are typically added by calling 'tabulated-list-put-tag'.
2434 2041
2435** Text mode 2042** Text mode
2436 2043
2437+++
2438*** 'text-mode-variant' is now obsolete, use 'derived-mode-p' instead. 2044*** 'text-mode-variant' is now obsolete, use 'derived-mode-p' instead.
2439 2045
2440** CUA mode 2046** CUA mode
2441 2047
2442---
2443*** New user option 'cua-rectangle-terminal-modifier-key'. 2048*** New user option 'cua-rectangle-terminal-modifier-key'.
2444This user option allows for the customization of the modifier key used 2049This user option allows for the customization of the modifier key used
2445in a terminal frame. 2050in a terminal frame.
2446 2051
2447** JS mode 2052** JS mode
2448 2053
2449---
2450*** JSX syntax is now automatically detected and enabled. 2054*** JSX syntax is now automatically detected and enabled.
2451If a file imports Facebook's 'React' library, or if the file uses the 2055If a file imports Facebook's 'React' library, or if the file uses the
2452extension ".jsx", then various features supporting XML-like syntax 2056extension ".jsx", then various features supporting XML-like syntax
2453will be supported in 'js-mode' and derivative modes. ('js-jsx-mode' 2057will be supported in 'js-mode' and derivative modes. ('js-jsx-mode'
2454no longer needs to be enabled.) 2058no longer needs to be enabled.)
2455 2059
2456---
2457*** New user option 'js-jsx-detect-syntax' disables automatic detection. 2060*** New user option 'js-jsx-detect-syntax' disables automatic detection.
2458This is turned on by default. 2061This is turned on by default.
2459 2062
2460---
2461*** New user option 'js-jsx-syntax' enables JSX syntax unconditionally. 2063*** New user option 'js-jsx-syntax' enables JSX syntax unconditionally.
2462This is off by default. 2064This is off by default.
2463 2065
2464---
2465*** New variable 'js-jsx-regexps' controls JSX detection. 2066*** New variable 'js-jsx-regexps' controls JSX detection.
2466 2067
2467---
2468*** JSX syntax is now highlighted like SGML. 2068*** JSX syntax is now highlighted like SGML.
2469 2069
2470---
2471*** JSX code is properly indented in many more scenarios. 2070*** JSX code is properly indented in many more scenarios.
2472Previously, JSX indentation usually only worked when an element was 2071Previously, JSX indentation usually only worked when an element was
2473wrapped in parenthesis (e.g. in a 'return' statement or a function 2072wrapped in parenthesis (e.g. in a 'return' statement or a function
@@ -2477,7 +2076,6 @@ supported; and, indentation conventions align more closely with those
2477of the React developer community (see 'js-jsx-align->-with-<'), 2076of the React developer community (see 'js-jsx-align->-with-<'),
2478otherwise still adhering to SGML conventions. 2077otherwise still adhering to SGML conventions.
2479 2078
2480---
2481*** New user option 'js-jsx-align->-with-<' controls '>' indents. 2079*** New user option 'js-jsx-align->-with-<' controls '>' indents.
2482Commonly in JSX code, a '>' on its own line is indented at the same 2080Commonly in JSX code, a '>' on its own line is indented at the same
2483level as its opening '<'. This is the new default for JSX. This 2081level as its opening '<'. This is the new default for JSX. This
@@ -2489,7 +2087,6 @@ This is turned on by default. To get back the old default indentation
2489behavior of aligning '>' with attributes, set 'js-jsx-align->-with-<' 2087behavior of aligning '>' with attributes, set 'js-jsx-align->-with-<'
2490to nil. 2088to nil.
2491 2089
2492---
2493*** Indentation uses 'js-indent-level' instead of 'sgml-basic-offset'. 2090*** Indentation uses 'js-indent-level' instead of 'sgml-basic-offset'.
2494Since JSX is a syntax extension of JavaScript, it makes the most sense 2091Since JSX is a syntax extension of JavaScript, it makes the most sense
2495for JSX expressions to be indented the same number of spaces as other 2092for JSX expressions to be indented the same number of spaces as other
@@ -2500,21 +2097,17 @@ be indented like JS, you won't need to change your config.
2500The old behavior can be emulated by controlling JSX indentation 2097The old behavior can be emulated by controlling JSX indentation
2501independently of JS, by setting 'js-jsx-indent-level'. 2098independently of JS, by setting 'js-jsx-indent-level'.
2502 2099
2503---
2504*** New user option 'js-jsx-indent-level' for different JSX indentation. 2100*** New user option 'js-jsx-indent-level' for different JSX indentation.
2505If you wish to indent JSX by a different number of spaces than JS, set 2101If you wish to indent JSX by a different number of spaces than JS, set
2506this user option to the desired number. 2102this user option to the desired number.
2507 2103
2508---
2509*** New user option 'js-jsx-attribute-offset' for JSX attribute indents. 2104*** New user option 'js-jsx-attribute-offset' for JSX attribute indents.
2510 2105
2511---
2512*** New variable 'js-syntactic-mode-name' controls mode name display. 2106*** New variable 'js-syntactic-mode-name' controls mode name display.
2513Previously, the mode name was simply 'JavaScript'. Now, when a syntax 2107Previously, the mode name was simply 'JavaScript'. Now, when a syntax
2514extension like JSX is enabled, the mode name is 'JavaScript[JSX]'. 2108extension like JSX is enabled, the mode name is 'JavaScript[JSX]'.
2515Set this variable to nil to disable the new behavior. 2109Set this variable to nil to disable the new behavior.
2516 2110
2517---
2518*** New function 'js-use-syntactic-mode-name' for deriving modes. 2111*** New function 'js-use-syntactic-mode-name' for deriving modes.
2519Packages deriving from 'js-mode' with 'define-derived-mode' should 2112Packages deriving from 'js-mode' with 'define-derived-mode' should
2520call this function to add enabled syntax extensions to their mode 2113call this function to add enabled syntax extensions to their mode
@@ -2522,7 +2115,6 @@ name, too.
2522 2115
2523** Autorevert 2116** Autorevert
2524 2117
2525+++
2526*** New user option 'auto-revert-avoid-polling' for saving power. 2118*** New user option 'auto-revert-avoid-polling' for saving power.
2527When set to a non-nil value, buffers in Auto Revert mode are no longer 2119When set to a non-nil value, buffers in Auto Revert mode are no longer
2528polled for changes periodically. This reduces the power consumption 2120polled for changes periodically. This reduces the power consumption
@@ -2530,7 +2122,6 @@ of an idle Emacs, but may fail on some network file systems; set
2530'auto-revert-notify-exclude-dir-regexp' to match files where 2122'auto-revert-notify-exclude-dir-regexp' to match files where
2531notification is not supported. The default value is nil. 2123notification is not supported. The default value is nil.
2532 2124
2533+++
2534*** New variable 'buffer-auto-revert-by-notification'. 2125*** New variable 'buffer-auto-revert-by-notification'.
2535A major mode can declare that notification on the buffer's default 2126A major mode can declare that notification on the buffer's default
2536directory is sufficient to know when updates are required, by setting 2127directory is sufficient to know when updates are required, by setting
@@ -2538,41 +2129,33 @@ the new variable 'buffer-auto-revert-by-notification' to a non-nil
2538value. Auto Revert mode can use this information to avoid polling the 2129value. Auto Revert mode can use this information to avoid polling the
2539buffer periodically when 'auto-revert-avoid-polling' is non-nil. 2130buffer periodically when 'auto-revert-avoid-polling' is non-nil.
2540 2131
2541---
2542*** 'global-auto-revert-ignore-buffer' can now also be a predicate 2132*** 'global-auto-revert-ignore-buffer' can now also be a predicate
2543function that can be used for more fine-grained control of which 2133function that can be used for more fine-grained control of which
2544buffers to auto-revert. 2134buffers to auto-revert.
2545 2135
2546** auth-source-pass 2136** auth-source-pass
2547 2137
2548+++
2549*** New user option 'auth-source-pass-filename'. 2138*** New user option 'auth-source-pass-filename'.
2550Allows setting the path to the password-store, defaults to 2139Allows setting the path to the password-store, defaults to
2551"~/.password-store". 2140"~/.password-store".
2552 2141
2553+++
2554*** New user option 'auth-source-pass-port-separator'. 2142*** New user option 'auth-source-pass-port-separator'.
2555Specifies separator between host and port, defaults to colon ":". 2143Specifies separator between host and port, defaults to colon ":".
2556 2144
2557---
2558*** Minimize the number of decryptions during password lookup. 2145*** Minimize the number of decryptions during password lookup.
2559This makes the package usable with physical tokens requiring touching 2146This makes the package usable with physical tokens requiring touching
2560a sensor for every decryption. 2147a sensor for every decryption.
2561 2148
2562---
2563*** 'auth-source-pass-get' is now autoloaded. 2149*** 'auth-source-pass-get' is now autoloaded.
2564 2150
2565** Bookmarks 2151** Bookmarks
2566 2152
2567---
2568*** 'bookmark-file' and 'bookmark-old-default-file' are now obsolete 2153*** 'bookmark-file' and 'bookmark-old-default-file' are now obsolete
2569aliases of 'bookmark-default-file'. 2154aliases of 'bookmark-default-file'.
2570 2155
2571---
2572*** New user option 'bookmark-watch-bookmark-file'. 2156*** New user option 'bookmark-watch-bookmark-file'.
2573When non-nil, watch whether the bookmark file has changed on disk. 2157When non-nil, watch whether the bookmark file has changed on disk.
2574 2158
2575---
2576*** The old bookmark file format is no longer supported. 2159*** The old bookmark file format is no longer supported.
2577This bookmark file format has not been used in Emacs since at least 2160This bookmark file format has not been used in Emacs since at least
2578version 19.34, released in 1996, and will no longer be automatically 2161version 19.34, released in 1996, and will no longer be automatically
@@ -2584,14 +2167,12 @@ The following functions are now declared obsolete:
2584'bookmark-upgrade-file-format-from-0', and 2167'bookmark-upgrade-file-format-from-0', and
2585'bookmark-upgrade-version-0-alist'. 2168'bookmark-upgrade-version-0-alist'.
2586 2169
2587---
2588** The mantemp.el library is now marked obsolete. 2170** The mantemp.el library is now marked obsolete.
2589This library generates manual C++ template instantiations. It should 2171This library generates manual C++ template instantiations. It should
2590no longer be useful on modern compilers, which do this automatically. 2172no longer be useful on modern compilers, which do this automatically.
2591 2173
2592** Ispell 2174** Ispell
2593 2175
2594---
2595*** New hook 'ispell-change-dictionary-hook'. 2176*** New hook 'ispell-change-dictionary-hook'.
2596This runs after changing the dictionary and could be used to 2177This runs after changing the dictionary and could be used to
2597automatically spellcheck a buffer when changing language without 2178automatically spellcheck a buffer when changing language without
@@ -2599,43 +2180,36 @@ needing to advice 'ispell-change-dictionary'.
2599 2180
2600** scroll-lock 2181** scroll-lock
2601 2182
2602---
2603*** New command 'scroll-lock-next-line-always-scroll'. 2183*** New command 'scroll-lock-next-line-always-scroll'.
2604This command is bound to 'S-down' and scrolls the buffer up in 2184This command is bound to 'S-down' and scrolls the buffer up in
2605particular when the end of the buffer is visible in the window. 2185particular when the end of the buffer is visible in the window.
2606 2186
2607** mwheel.el 2187** mwheel.el
2608 2188
2609---
2610*** 'mwheel-install' is now obsolete. 2189*** 'mwheel-install' is now obsolete.
2611Use 'mouse-wheel-mode' instead. Note that 'mouse-wheel-mode' is 2190Use 'mouse-wheel-mode' instead. Note that 'mouse-wheel-mode' is
2612already enabled by default on most graphical displays. 2191already enabled by default on most graphical displays.
2613 2192
2614** Gravatar 2193** Gravatar
2615 2194
2616+++
2617*** 'gravatar-cache-ttl' is now a number of seconds. 2195*** 'gravatar-cache-ttl' is now a number of seconds.
2618The previously used timestamp format of a list of integers is still 2196The previously used timestamp format of a list of integers is still
2619supported, but is deprecated. The default value has not changed. 2197supported, but is deprecated. The default value has not changed.
2620 2198
2621+++
2622*** 'gravatar-size' can now be nil. 2199*** 'gravatar-size' can now be nil.
2623This results in the use of Gravatar's default size of 80 pixels. 2200This results in the use of Gravatar's default size of 80 pixels.
2624 2201
2625+++
2626*** The default fallback gravatar is now configurable. 2202*** The default fallback gravatar is now configurable.
2627This is possible using the new user options 'gravatar-default-image' 2203This is possible using the new user options 'gravatar-default-image'
2628and 'gravatar-force-default'. 2204and 'gravatar-force-default'.
2629 2205
2630** ada-mode 2206** ada-mode
2631 2207
2632---
2633*** The built-in ada-mode is now deleted. The GNU ELPA package is a 2208*** The built-in ada-mode is now deleted. The GNU ELPA package is a
2634good replacement, even in very large source files. 2209good replacement, even in very large source files.
2635 2210
2636** time-stamp 2211** time-stamp
2637 2212
2638---
2639*** New '%5z' conversion for 'time-stamp-format' gives time zone offset. 2213*** New '%5z' conversion for 'time-stamp-format' gives time zone offset.
2640Specifying '%5z' in 'time-stamp-format' or 'time-stamp-pattern' 2214Specifying '%5z' in 'time-stamp-format' or 'time-stamp-pattern'
2641expands to the time zone offset, e.g., '+0100'. The time zone used is 2215expands to the time zone offset, e.g., '+0100'. The time zone used is
@@ -2645,7 +2219,6 @@ Because this feature is new in Emacs 27.1, do not use it in the local
2645variables section of any file that might be edited by an older version 2219variables section of any file that might be edited by an older version
2646of Emacs. 2220of Emacs.
2647 2221
2648---
2649*** Some conversions recommended for 'time-stamp-format' have changed. 2222*** Some conversions recommended for 'time-stamp-format' have changed.
2650The new documented/recommended %-conversions are closer to those 2223The new documented/recommended %-conversions are closer to those
2651used by 'format-time-string' and are compatible at least as far back 2224used by 'format-time-string' and are compatible at least as far back
@@ -2669,15 +2242,12 @@ file-local variable, you may need to update the value.
2669 2242
2670** mode-local 2243** mode-local
2671 2244
2672---
2673*** Declare 'define-overload' and 'define-child-mode' as obsolete. 2245*** Declare 'define-overload' and 'define-child-mode' as obsolete.
2674 2246
2675---
2676*** Rename several internal functions to use a 'mode-local-' prefix. 2247*** Rename several internal functions to use a 'mode-local-' prefix.
2677 2248
2678** CC Mode 2249** CC Mode
2679 2250
2680+++
2681*** You can now flag "wrong style" comments with 'font-lock-warning-face'. 2251*** You can now flag "wrong style" comments with 'font-lock-warning-face'.
2682To do this, use 'c-toggle-comment-style', if needed, to set the desired 2252To do this, use 'c-toggle-comment-style', if needed, to set the desired
2683default comment style (block or line); then set the user option 2253default comment style (block or line); then set the user option
@@ -2685,12 +2255,10 @@ default comment style (block or line); then set the user option
2685 2255
2686** Mailcap 2256** Mailcap
2687 2257
2688---
2689*** The new function 'mailcap-file-name-to-mime-type' has been added. 2258*** The new function 'mailcap-file-name-to-mime-type' has been added.
2690It's a simple convenience function for looking up MIME types based on 2259It's a simple convenience function for looking up MIME types based on
2691file name extensions. 2260file name extensions.
2692 2261
2693---
2694*** The default way the list of possible external viewers for MIME 2262*** The default way the list of possible external viewers for MIME
2695types is sorted and chosen has changed. Earlier, the most specific 2263types is sorted and chosen has changed. Earlier, the most specific
2696viewer was chosen, even if there was a general override in "~/.mailcap". 2264viewer was chosen, even if there was a general override in "~/.mailcap".
@@ -2702,7 +2270,6 @@ method back, set 'mailcap-prefer-mailcap-viewers' to nil.
2702 2270
2703** MH-E 2271** MH-E
2704 2272
2705+++
2706*** The hook 'mh-show-mode-hook' is now called before the message is inserted. 2273*** The hook 'mh-show-mode-hook' is now called before the message is inserted.
2707Functions that want to affect the message text (for example, to change 2274Functions that want to affect the message text (for example, to change
2708highlighting) can no longer use 'mh-show-mode-hook', because the 2275highlighting) can no longer use 'mh-show-mode-hook', because the
@@ -2711,7 +2278,6 @@ called. Such functions should now be attached to 'mh-show-hook'.
2711 2278
2712** URL 2279** URL
2713 2280
2714---
2715*** The 'file:' handler no longer looks for "index.html" in 2281*** The 'file:' handler no longer looks for "index.html" in
2716directories if you ask it for a "file:///dir" URL. Since this is a 2282directories if you ask it for a "file:///dir" URL. Since this is a
2717low-level library, such decisions (if they are to be made at all) are 2283low-level library, such decisions (if they are to be made at all) are
@@ -2722,7 +2288,6 @@ left to higher-level functions.
2722 2288
2723** Tab Bars 2289** Tab Bars
2724 2290
2725+++
2726*** Tab Bar mode 2291*** Tab Bar mode
2727The new command 'tab-bar-mode' enables the tab bar at the top of each 2292The new command 'tab-bar-mode' enables the tab bar at the top of each
2728frame (including TTY frames), where you can use tabs to switch between 2293frame (including TTY frames), where you can use tabs to switch between
@@ -2751,7 +2316,6 @@ using completion on tab names, or using 'tab-switcher'.
2751Read the new Info node "(emacs) Tab Bars" for full description 2316Read the new Info node "(emacs) Tab Bars" for full description
2752of all related features. 2317of all related features.
2753 2318
2754+++
2755*** Tab Line mode 2319*** Tab Line mode
2756The new command 'global-tab-line-mode' enables the tab line above each 2320The new command 'global-tab-line-mode' enables the tab line above each
2757window, which you can use to switch buffers in the window. Selecting 2321window, which you can use to switch buffers in the window. Selecting
@@ -2765,16 +2329,13 @@ line scrolls tabs.
2765Read the new Info node "(emacs) Tab Line" for full description 2329Read the new Info node "(emacs) Tab Line" for full description
2766of all related features. 2330of all related features.
2767 2331
2768+++
2769** fileloop.el lets one setup multifile operations like search&replace. 2332** fileloop.el lets one setup multifile operations like search&replace.
2770 2333
2771+++
2772** Emacs can now visit files in archives as if they were directories. 2334** Emacs can now visit files in archives as if they were directories.
2773This feature uses Tramp and works only on systems which support GVFS, 2335This feature uses Tramp and works only on systems which support GVFS,
2774i.e. GNU/Linux, roughly spoken. See the node "(tramp) Archive file 2336i.e. GNU/Linux, roughly spoken. See the node "(tramp) Archive file
2775names" in the Tramp manual for full documentation of these facilities. 2337names" in the Tramp manual for full documentation of these facilities.
2776 2338
2777+++
2778** New library for writing JSONRPC applications (https://jsonrpc.org). 2339** New library for writing JSONRPC applications (https://jsonrpc.org).
2779The 'jsonrpc' library enables writing Emacs Lisp applications that 2340The 'jsonrpc' library enables writing Emacs Lisp applications that
2780rely on this protocol. Since the protocol is designed to be 2341rely on this protocol. Since the protocol is designed to be
@@ -2783,14 +2344,12 @@ transport strategies as well as a separate API to use them. A
2783transport implementation for process-based communication, such as is 2344transport implementation for process-based communication, such as is
2784used by the Language Server Protocol (LSP), is readily available. 2345used by the Language Server Protocol (LSP), is readily available.
2785 2346
2786+++
2787** Backtrace mode improves viewing of Elisp backtraces. 2347** Backtrace mode improves viewing of Elisp backtraces.
2788Backtrace mode adds pretty printing, fontification and ellipsis 2348Backtrace mode adds pretty printing, fontification and ellipsis
2789expansion to backtrace buffers produced by the Lisp debugger, Edebug 2349expansion to backtrace buffers produced by the Lisp debugger, Edebug
2790and ERT. See the node "(elisp) Backtraces" in the Elisp manual for 2350and ERT. See the node "(elisp) Backtraces" in the Elisp manual for
2791documentation of the new mode and its commands. 2351documentation of the new mode and its commands.
2792 2352
2793+++
2794** so-long.el helps to mitigate performance problems with long lines. 2353** so-long.el helps to mitigate performance problems with long lines.
2795When 'global-so-long-mode' has been enabled, visiting a file with very 2354When 'global-so-long-mode' has been enabled, visiting a file with very
2796long lines will (subject to configuration) cause the user's preferred 2355long lines will (subject to configuration) cause the user's preferred
@@ -2802,7 +2361,6 @@ immediately. Type 'M-x so-long-commentary' for full documentation.
2802 2361
2803* Incompatible Lisp Changes in Emacs 27.1 2362* Incompatible Lisp Changes in Emacs 27.1
2804 2363
2805---
2806** Incomplete destructive splicing support has been removed. 2364** Incomplete destructive splicing support has been removed.
2807Support for Common Lisp style destructive splicing (",.") was 2365Support for Common Lisp style destructive splicing (",.") was
2808incomplete and broken for a long time. It has now been removed. 2366incomplete and broken for a long time. It has now been removed.
@@ -2815,11 +2373,9 @@ starting with a period ("."). Consider the following example:
2815In the past, this would have incorrectly evaluated to '(\,\. foo)', 2373In the past, this would have incorrectly evaluated to '(\,\. foo)',
2816but will now instead evaluate to '42'. 2374but will now instead evaluate to '42'.
2817 2375
2818---
2819** The REGEXP in 'magic-mode-alist' is now matched case-sensitively. 2376** The REGEXP in 'magic-mode-alist' is now matched case-sensitively.
2820Likewise for 'magic-fallback-mode-alist'. 2377Likewise for 'magic-fallback-mode-alist'.
2821 2378
2822+++
2823** 'add-hook' does not always add to the front or the end any more. 2379** 'add-hook' does not always add to the front or the end any more.
2824The replacement of 'append' with 'depth' implies that the function is 2380The replacement of 'append' with 'depth' implies that the function is
2825not always added to the very front (when append/depth is nil) or the 2381not always added to the very front (when append/depth is nil) or the
@@ -2828,15 +2384,12 @@ the hook may have specified higher/lower depths. This makes it
2828possible to control the ordering of functions more precisely, as was 2384possible to control the ordering of functions more precisely, as was
2829already possible in 'add-function' and 'advice-add'. 2385already possible in 'add-function' and 'advice-add'.
2830 2386
2831---
2832** In 'compilation-error-regexp-alist' the old undocumented feature 2387** In 'compilation-error-regexp-alist' the old undocumented feature
2833where 'line' could be a function of 2 arguments has been dropped. 2388where 'line' could be a function of 2 arguments has been dropped.
2834 2389
2835---
2836** 'define-fringe-bitmap' is always defined, even when Emacs is built 2390** 'define-fringe-bitmap' is always defined, even when Emacs is built
2837without any GUI support. 2391without any GUI support.
2838 2392
2839---
2840** Just loading a theme's file no longer activates the theme's settings. 2393** Just loading a theme's file no longer activates the theme's settings.
2841Loading a theme with 'M-x load-theme' still activates the theme, as it 2394Loading a theme with 'M-x load-theme' still activates the theme, as it
2842did before. However, loading the theme's file with 'M-x load-file', 2395did before. However, loading the theme's file with 'M-x load-file',
@@ -2852,10 +2405,8 @@ default applied immediately.
2852The variable 'custom--inhibit-theme-enable' controls this behavior; 2405The variable 'custom--inhibit-theme-enable' controls this behavior;
2853its default value changed in Emacs 27.1. 2406its default value changed in Emacs 27.1.
2854 2407
2855---
2856** The REPETITIONS argument of 'benchmark-run' can now also be a variable. 2408** The REPETITIONS argument of 'benchmark-run' can now also be a variable.
2857 2409
2858---
2859** Interpretation of relative 'HOME' directory has changed. 2410** Interpretation of relative 'HOME' directory has changed.
2860If "$HOME" is set to a relative file name, 'expand-file-name' now 2411If "$HOME" is set to a relative file name, 'expand-file-name' now
2861interprets it relative to the directory where Emacs was started, not 2412interprets it relative to the directory where Emacs was started, not
@@ -2863,15 +2414,12 @@ relative to the 'default-directory' of the current buffer. We recommend
2863always setting "$HOME" to an absolute file name, so that its meaning is 2414always setting "$HOME" to an absolute file name, so that its meaning is
2864independent of where Emacs was started. 2415independent of where Emacs was started.
2865 2416
2866---
2867** 'file-name-absolute-p' no longer considers "~foo" to be an absolute 2417** 'file-name-absolute-p' no longer considers "~foo" to be an absolute
2868file name if there is no user named "foo". 2418file name if there is no user named "foo".
2869 2419
2870+++
2871** The FILENAME argument to 'file-name-base' is now mandatory and no 2420** The FILENAME argument to 'file-name-base' is now mandatory and no
2872longer defaults to 'buffer-file-name'. 2421longer defaults to 'buffer-file-name'.
2873 2422
2874+++
2875** File metadata primitives now signal an error if I/O, access, or 2423** File metadata primitives now signal an error if I/O, access, or
2876other serious errors prevent them from determining the result. 2424other serious errors prevent them from determining the result.
2877Formerly, these functions often (though not always) silently returned 2425Formerly, these functions often (though not always) silently returned
@@ -2884,35 +2432,29 @@ file does not exist. The affected primitives are
2884'file-modes', 'file-newer-than-file-p', 'file-selinux-context', 2432'file-modes', 'file-newer-than-file-p', 'file-selinux-context',
2885'file-system-info', and 'set-visited-file-modtime'. 2433'file-system-info', and 'set-visited-file-modtime'.
2886 2434
2887---
2888** The function 'eldoc-message' now accepts a single argument. 2435** The function 'eldoc-message' now accepts a single argument.
2889Programs that called it with multiple arguments before should pass 2436Programs that called it with multiple arguments before should pass
2890them through 'format' first. Even that is discouraged: for ElDoc 2437them through 'format' first. Even that is discouraged: for ElDoc
2891support, you should set 'eldoc-documentation-function' instead of 2438support, you should set 'eldoc-documentation-function' instead of
2892calling 'eldoc-message' directly. 2439calling 'eldoc-message' directly.
2893 2440
2894---
2895** Old-style backquotes now generate an error. 2441** Old-style backquotes now generate an error.
2896They have been generating warnings for a decade. To interpret 2442They have been generating warnings for a decade. To interpret
2897old-style backquotes as new-style, bind the new variable 2443old-style backquotes as new-style, bind the new variable
2898'force-new-style-backquotes' to t. 2444'force-new-style-backquotes' to t.
2899 2445
2900---
2901** Defining a Common Lisp structure using 'cl-defstruct' or 2446** Defining a Common Lisp structure using 'cl-defstruct' or
2902'cl-struct-define' whose name clashes with a builtin type (e.g., 2447'cl-struct-define' whose name clashes with a builtin type (e.g.,
2903'integer' or 'hash-table') now signals an error. 2448'integer' or 'hash-table') now signals an error.
2904 2449
2905---
2906** When formatting a floating-point number as an octal or hexadecimal 2450** When formatting a floating-point number as an octal or hexadecimal
2907integer, Emacs now signals an error if the number is too large for the 2451integer, Emacs now signals an error if the number is too large for the
2908implementation to format. 2452implementation to format.
2909 2453
2910+++
2911** 'logb' now returns infinity when given an infinite or zero argument, 2454** 'logb' now returns infinity when given an infinite or zero argument,
2912and returns a NaN when given a NaN. Formerly, it returned an extreme 2455and returns a NaN when given a NaN. Formerly, it returned an extreme
2913fixnum for such arguments. 2456fixnum for such arguments.
2914 2457
2915---
2916** Some functions and variables obsolete since Emacs 22 have been removed: 2458** Some functions and variables obsolete since Emacs 22 have been removed:
2917'archive-mouse-extract', 'assoc-ignore-case', 'assoc-ignore-representation', 2459'archive-mouse-extract', 'assoc-ignore-case', 'assoc-ignore-representation',
2918'backward-text-line', 'blink-cursor', 'bookmark-exit-hooks', 2460'backward-text-line', 'blink-cursor', 'bookmark-exit-hooks',
@@ -2950,28 +2492,24 @@ fixnum for such arguments.
2950'vc-previous-comment', 'view-todo', 'x-lost-selection-hooks', 2492'vc-previous-comment', 'view-todo', 'x-lost-selection-hooks',
2951'x-sent-selection-hooks'. 2493'x-sent-selection-hooks'.
2952 2494
2953---
2954** Further functions and variables obsolete since Emacs 24 have been removed: 2495** Further functions and variables obsolete since Emacs 24 have been removed:
2955'default-directory-alist', 'dired-default-directory', 2496'default-directory-alist', 'dired-default-directory',
2956'dired-default-directory-alist', 'dired-enable-local-variables', 2497'dired-default-directory-alist', 'dired-enable-local-variables',
2957'dired-hack-local-variables', 'dired-local-variables-file', 2498'dired-hack-local-variables', 'dired-local-variables-file',
2958'dired-omit-here-always'. 2499'dired-omit-here-always'.
2959 2500
2960+++
2961** Garbage collection no longer treats miscellaneous objects specially; 2501** Garbage collection no longer treats miscellaneous objects specially;
2962they are now allocated like any other pseudovector. As a result, the 2502they are now allocated like any other pseudovector. As a result, the
2963'garbage-collect' and 'memory-use-count' functions no longer return a 2503'garbage-collect' and 'memory-use-count' functions no longer return a
2964'misc' component, and the 'misc-objects-consed' variable has been 2504'misc' component, and the 'misc-objects-consed' variable has been
2965removed. 2505removed.
2966 2506
2967+++
2968** Reversed character ranges are no longer permitted in 'rx'. 2507** Reversed character ranges are no longer permitted in 'rx'.
2969Previously, ranges where the starting character is greater than the 2508Previously, ranges where the starting character is greater than the
2970ending character were silently omitted. 2509ending character were silently omitted.
2971For example, '(rx (any "@z-a" (?9 . ?0)))' would match '@' only. 2510For example, '(rx (any "@z-a" (?9 . ?0)))' would match '@' only.
2972Now, such 'rx' expressions generate an error. 2511Now, such 'rx' expressions generate an error.
2973 2512
2974---
2975** Internal 'rx' functions and variables have been removed, 2513** Internal 'rx' functions and variables have been removed,
2976as a consequence of an improved implementation. Packages using 2514as a consequence of an improved implementation. Packages using
2977these should use the public 'rx' and 'rx-to-string' instead. 2515these should use the public 'rx' and 'rx-to-string' instead.
@@ -2979,7 +2517,6 @@ these should use the public 'rx' and 'rx-to-string' instead.
2979extension mechanism is preferred: 'rx-define', 'rx-let' and 2517extension mechanism is preferred: 'rx-define', 'rx-let' and
2980'rx-let-eval'. 2518'rx-let-eval'.
2981 2519
2982+++
2983** 'text-mode' no longer sets the value of 'indent-line-function'. 2520** 'text-mode' no longer sets the value of 'indent-line-function'.
2984The global value of 'indent-line-function', which defaults to 2521The global value of 'indent-line-function', which defaults to
2985'indent-relative', will no longer be reset locally when turning on 2522'indent-relative', will no longer be reset locally when turning on
@@ -2988,28 +2525,22 @@ The global value of 'indent-line-function', which defaults to
2988To get back the old behavior, add a function to 'text-mode-hook' which 2525To get back the old behavior, add a function to 'text-mode-hook' which
2989performs '(setq-local indent-line-function #'indent-relative)'. 2526performs '(setq-local indent-line-function #'indent-relative)'.
2990 2527
2991---
2992** 'make-process' no longer accepts a non-nil ':stop' key. This has 2528** 'make-process' no longer accepts a non-nil ':stop' key. This has
2993never worked reliably, and now causes an error. 2529never worked reliably, and now causes an error.
2994 2530
2995+++
2996** 'eventp' no longer returns non-nil for lists whose car is nil. 2531** 'eventp' no longer returns non-nil for lists whose car is nil.
2997This is consistent with the fact that nil, though a symbol, is not a 2532This is consistent with the fact that nil, though a symbol, is not a
2998valid event type. 2533valid event type.
2999 2534
3000---
3001** The obsolete package xesam.el (since Emacs 24) has been removed. 2535** The obsolete package xesam.el (since Emacs 24) has been removed.
3002 2536
3003+++
3004** The XBM image handler now accepts a ':stride' argument, which should 2537** The XBM image handler now accepts a ':stride' argument, which should
3005be specified in image specs representing the entire bitmap as a single 2538be specified in image specs representing the entire bitmap as a single
3006bool vector. 2539bool vector.
3007 2540
3008+++
3009** 'regexp-quote' may return its argument string. 2541** 'regexp-quote' may return its argument string.
3010If the argument needs no quoting, it can be returned instead of a copy. 2542If the argument needs no quoting, it can be returned instead of a copy.
3011 2543
3012+++
3013** Mouse scroll up and down with control key modifier changes font size. 2544** Mouse scroll up and down with control key modifier changes font size.
3014Previously, the control key modifier was used to scroll up or down by 2545Previously, the control key modifier was used to scroll up or down by
3015an amount which was close to near a full screen. This is now instead 2546an amount which was close to near a full screen. This is now instead
@@ -3026,24 +2557,19 @@ pointer is over. To change this behavior, you can customize the user
3026option 'mouse-wheel-follow-mouse'. Note that this will also affect 2557option 'mouse-wheel-follow-mouse'. Note that this will also affect
3027scrolling. 2558scrolling.
3028 2559
3029+++
3030** Mouse scroll up and down with control key modifier also works on images 2560** Mouse scroll up and down with control key modifier also works on images
3031where it scales the image under the mouse pointer. 2561where it scales the image under the mouse pointer.
3032 2562
3033---
3034** 'help-follow-symbol' now signals 'user-error' if point (or the 2563** 'help-follow-symbol' now signals 'user-error' if point (or the
3035position pointed to by the argument POS) is not in a symbol. 2564position pointed to by the argument POS) is not in a symbol.
3036 2565
3037---
3038** The options.el library has been removed. 2566** The options.el library has been removed.
3039It was obsolete since Emacs 22.1, replaced by customize. 2567It was obsolete since Emacs 22.1, replaced by customize.
3040 2568
3041---
3042** The tls.el and starttls.el libraries are now marked obsolete. 2569** The tls.el and starttls.el libraries are now marked obsolete.
3043Use of built-in libgnutls based functionality (described in the Emacs 2570Use of built-in libgnutls based functionality (described in the Emacs
3044GnuTLS manual) is recommended instead. 2571GnuTLS manual) is recommended instead.
3045 2572
3046---
3047** The url-ns.el library is now marked obsolete. 2573** The url-ns.el library is now marked obsolete.
3048This library is used to open configuration files for the long defunct 2574This library is used to open configuration files for the long defunct
3049web browser Netscape, and is no longer relevant. 2575web browser Netscape, and is no longer relevant.
@@ -3051,7 +2577,6 @@ web browser Netscape, and is no longer relevant.
3051 2577
3052* Lisp Changes in Emacs 27.1 2578* Lisp Changes in Emacs 27.1
3053 2579
3054+++
3055** Emacs Lisp integers can now be of arbitrary size. 2580** Emacs Lisp integers can now be of arbitrary size.
3056Emacs uses the GNU Multiple Precision (GMP) library to support 2581Emacs uses the GNU Multiple Precision (GMP) library to support
3057integers whose size is too large to support natively. The integers 2582integers whose size is too large to support natively. The integers
@@ -3079,20 +2604,17 @@ like 'file-attributes' that compute file sizes and other attributes,
3079functions like 'process-id' that compute process IDs, and functions like 2604functions like 'process-id' that compute process IDs, and functions like
3080'user-uid' and 'group-gid' that compute user and group IDs. 2605'user-uid' and 'group-gid' that compute user and group IDs.
3081 2606
3082+++
3083** 'overflow-error' is now documented as a subcategory of 'range-error'. 2607** 'overflow-error' is now documented as a subcategory of 'range-error'.
3084Formerly it was undocumented, and was (incorrectly) a subcategory 2608Formerly it was undocumented, and was (incorrectly) a subcategory
3085of 'domain-error'. 2609of 'domain-error'.
3086 2610
3087** Time values 2611** Time values
3088 2612
3089+++
3090*** New function 'time-convert' converts Lisp time values to Lisp 2613*** New function 'time-convert' converts Lisp time values to Lisp
3091timestamps of various forms, including a new timestamp form '(TICKS 2614timestamps of various forms, including a new timestamp form '(TICKS
3092. HZ)' where TICKS is an integer and HZ a positive integer denoting a 2615. HZ)' where TICKS is an integer and HZ a positive integer denoting a
3093clock frequency. 2616clock frequency.
3094 2617
3095+++
3096*** Although the default timestamp format is still '(HI LO US PS)', 2618*** Although the default timestamp format is still '(HI LO US PS)',
3097it is planned to change in a future Emacs version, to exploit bignums. 2619it is planned to change in a future Emacs version, to exploit bignums.
3098The documentation has been updated to mention that the timestamp 2620The documentation has been updated to mention that the timestamp
@@ -3101,7 +2623,6 @@ format may change and that programs should use functions like
3101probing the innards of a timestamp directly, or creating a timestamp 2623probing the innards of a timestamp directly, or creating a timestamp
3102by hand. 2624by hand.
3103 2625
3104+++
3105*** Decoded (calendrical) timestamps now have subsecond resolution. 2626*** Decoded (calendrical) timestamps now have subsecond resolution.
3106This affects 'decode-time', which generates these timestamps, as well 2627This affects 'decode-time', which generates these timestamps, as well
3107as functions like 'encode-time' that accept them. The subsecond info 2628as functions like 'encode-time' that accept them. The subsecond info
@@ -3118,11 +2639,9 @@ traditional behavior, this default may change in future Emacs
3118versions, so callers requiring an integer should specify FORM 2639versions, so callers requiring an integer should specify FORM
3119explicitly. 2640explicitly.
3120 2641
3121+++
3122*** 'encode-time' supports a new API '(encode-time TIME)'. 2642*** 'encode-time' supports a new API '(encode-time TIME)'.
3123The old 'encode-time' API is still supported. 2643The old 'encode-time' API is still supported.
3124 2644
3125+++
3126*** A new package to parse ISO 8601 time, date, durations and 2645*** A new package to parse ISO 8601 time, date, durations and
3127intervals has been added. The main function to use is 2646intervals has been added. The main function to use is
3128'iso8601-parse', but there's also 'iso8601-parse-date', 2647'iso8601-parse', but there's also 'iso8601-parse-date',
@@ -3131,30 +2650,25 @@ intervals has been added. The main function to use is
3131structures, except the final one, which returns three of them (start, 2650structures, except the final one, which returns three of them (start,
3132end and duration). 2651end and duration).
3133 2652
3134+++
3135*** 'time-add', 'time-subtract', and 'time-less-p' now accept 2653*** 'time-add', 'time-subtract', and 'time-less-p' now accept
3136infinities and NaNs too, and propagate them or return nil like 2654infinities and NaNs too, and propagate them or return nil like
3137floating-point operators do. If both arguments are finite, these 2655floating-point operators do. If both arguments are finite, these
3138functions now return exact results instead of rounding in some cases, 2656functions now return exact results instead of rounding in some cases,
3139and they also avoid excess precision when that is easy. 2657and they also avoid excess precision when that is easy.
3140 2658
3141+++
3142*** New function 'time-equal-p' compares time values for equality. 2659*** New function 'time-equal-p' compares time values for equality.
3143 2660
3144+++
3145*** 'format-time-string' supports a new conversion specifier flag '+' 2661*** 'format-time-string' supports a new conversion specifier flag '+'
3146that acts like the '0' flag but also puts a '+' before nonnegative 2662that acts like the '0' flag but also puts a '+' before nonnegative
3147years containing more than four digits. This is for compatibility 2663years containing more than four digits. This is for compatibility
3148with POSIX.1-2017. 2664with POSIX.1-2017.
3149 2665
3150+++
3151*** To access (or alter) the elements of a decoded time value, the 2666*** To access (or alter) the elements of a decoded time value, the
3152'decoded-time-second', 'decoded-time-minute', 'decoded-time-hour', 2667'decoded-time-second', 'decoded-time-minute', 'decoded-time-hour',
3153'decoded-time-day', 'decoded-time-month', 'decoded-time-year', 2668'decoded-time-day', 'decoded-time-month', 'decoded-time-year',
3154'decoded-time-weekday', 'decoded-time-dst' and 'decoded-time-zone' 2669'decoded-time-weekday', 'decoded-time-dst' and 'decoded-time-zone'
3155accessors can be used. 2670accessors can be used.
3156 2671
3157+++
3158*** The new functions 'date-days-in-month' (which will say how many 2672*** The new functions 'date-days-in-month' (which will say how many
3159days there are in a month in a specific year), 'date-ordinal-to-time' 2673days there are in a month in a specific year), 'date-ordinal-to-time'
3160(that computes the date of an ordinal day), 'decoded-time-add' (for 2674(that computes the date of an ordinal day), 'decoded-time-add' (for
@@ -3163,7 +2677,6 @@ doing computations on a decoded time structure), 'make-decoded-time'
3163filled out), and 'encoded-time-set-defaults' (which fills in nil 2677filled out), and 'encoded-time-set-defaults' (which fills in nil
3164elements as if it's midnight January 1st, 1970) have been added. 2678elements as if it's midnight January 1st, 1970) have been added.
3165 2679
3166+++
3167*** In the DST slot, 'encode-time' and 'parse-time-string' now return -1 2680*** In the DST slot, 'encode-time' and 'parse-time-string' now return -1
3168if it is not known whether daylight saving time is in effect. 2681if it is not known whether daylight saving time is in effect.
3169Formerly they were inconsistent: 'encode-time' returned t in this 2682Formerly they were inconsistent: 'encode-time' returned t in this
@@ -3171,38 +2684,31 @@ situation, whereas 'parse-time-string' returned nil. Now they
3171consistently use nil to mean that DST is not in effect, and use -1 2684consistently use nil to mean that DST is not in effect, and use -1
3172to mean that it is not known whether DST is in effect. 2685to mean that it is not known whether DST is in effect.
3173 2686
3174+++
3175** New macro 'benchmark-progn'. 2687** New macro 'benchmark-progn'.
3176This macro works like 'progn', but messages how long it takes to 2688This macro works like 'progn', but messages how long it takes to
3177evaluate the body forms. The value of the last form is the return 2689evaluate the body forms. The value of the last form is the return
3178value. 2690value.
3179 2691
3180+++
3181** New function 'read-char-from-minibuffer'. 2692** New function 'read-char-from-minibuffer'.
3182This function works like 'read-char', but uses 'read-from-minibuffer' 2693This function works like 'read-char', but uses 'read-from-minibuffer'
3183to read a character, so it maintains a history that can be navigated 2694to read a character, so it maintains a history that can be navigated
3184via usual minibuffer keystrokes 'M-p'/'M-n'. 2695via usual minibuffer keystrokes 'M-p'/'M-n'.
3185 2696
3186---
3187** New variables 'set-message-function' and 'clear-message-function' 2697** New variables 'set-message-function' and 'clear-message-function'
3188can be used to specify functions to show and clear messages that 2698can be used to specify functions to show and clear messages that
3189normally are displayed in the echo area. 2699normally are displayed in the echo area.
3190 2700
3191+++
3192** 'setq-local' can now set an arbitrary number of variables, which 2701** 'setq-local' can now set an arbitrary number of variables, which
3193makes the syntax more like 'setq'. 2702makes the syntax more like 'setq'.
3194 2703
3195---
3196** 'reveal-mode' can now also be used for more than to toggle between 2704** 'reveal-mode' can now also be used for more than to toggle between
3197invisible and visible: It can also toggle 'display' properties in 2705invisible and visible: It can also toggle 'display' properties in
3198overlays. This is only done on 'display' properties that have the 2706overlays. This is only done on 'display' properties that have the
3199'reveal-toggle-invisible' property set. 2707'reveal-toggle-invisible' property set.
3200 2708
3201+++
3202** 'process-contact' now takes an optional NO-BLOCK argument to allow 2709** 'process-contact' now takes an optional NO-BLOCK argument to allow
3203not waiting for a process to be set up. 2710not waiting for a process to be set up.
3204 2711
3205---
3206** New variable 'read-process-output-max' controls sub-process throughput. 2712** New variable 'read-process-output-max' controls sub-process throughput.
3207This variable determines how many bytes can be read from a sub-process 2713This variable determines how many bytes can be read from a sub-process
3208in one read operation. The default, 4096 bytes, was previously a 2714in one read operation. The default, 4096 bytes, was previously a
@@ -3210,118 +2716,94 @@ hard-coded constant. Setting it to a larger value might enhance
3210throughput of reading from sub-processes that produces vast 2716throughput of reading from sub-processes that produces vast
3211(megabytes) amounts of data in one go. 2717(megabytes) amounts of data in one go.
3212 2718
3213+++
3214** The new user option 'quit-window-hook' is now run first when 2719** The new user option 'quit-window-hook' is now run first when
3215executing the 'quit-window' command. 2720executing the 'quit-window' command.
3216 2721
3217+++
3218** The user options 'help-enable-completion-auto-load', 2722** The user options 'help-enable-completion-auto-load',
3219'help-enable-auto-load' and 'vhdl-project-auto-load', as well as the 2723'help-enable-auto-load' and 'vhdl-project-auto-load', as well as the
3220function 'vhdl-auto-load-project' have been renamed to have "autoload" 2724function 'vhdl-auto-load-project' have been renamed to have "autoload"
3221without the hyphen in their names. Obsolete aliases from the old 2725without the hyphen in their names. Obsolete aliases from the old
3222names have been added. 2726names have been added.
3223 2727
3224+++
3225** Buttons (created with 'make-button' and related functions) can 2728** Buttons (created with 'make-button' and related functions) can
3226now use the 'button-data' property. If present, the data in this 2729now use the 'button-data' property. If present, the data in this
3227property will be passed on to the 'action' function instead of the 2730property will be passed on to the 'action' function instead of the
3228button itself in 'button-activate'. 2731button itself in 'button-activate'.
3229 2732
3230+++
3231** 'defcustom' now takes a ':local' keyword that can be either t or 2733** 'defcustom' now takes a ':local' keyword that can be either t or
3232'permanent', which mean that the variable should be automatically 2734'permanent', which mean that the variable should be automatically
3233buffer-local. 'permanent' also sets the variable's 'permanent-local' 2735buffer-local. 'permanent' also sets the variable's 'permanent-local'
3234property. 2736property.
3235 2737
3236+++
3237** The new macro 'with-suppressed-warnings' can be used to suppress 2738** The new macro 'with-suppressed-warnings' can be used to suppress
3238specific byte-compile warnings. 2739specific byte-compile warnings.
3239 2740
3240+++
3241** The new macro 'ignore-error' is like 'ignore-errors', but takes a 2741** The new macro 'ignore-error' is like 'ignore-errors', but takes a
3242specific error condition, and will only ignore that condition. (This 2742specific error condition, and will only ignore that condition. (This
3243can also be a list of conditions.) 2743can also be a list of conditions.)
3244 2744
3245---
3246** The new function 'byte-compile-info-message' can be used to output 2745** The new function 'byte-compile-info-message' can be used to output
3247informational messages that look pleasing during the Emacs build. 2746informational messages that look pleasing during the Emacs build.
3248 2747
3249---
3250** New 'help-fns-describe-variable-functions' hook. 2748** New 'help-fns-describe-variable-functions' hook.
3251It makes it possible to add metadata information to 'describe-variable'. 2749It makes it possible to add metadata information to 'describe-variable'.
3252 2750
3253** i18n (internationalization) 2751** i18n (internationalization)
3254 2752
3255---
3256*** 'ngettext' can be used now to return the right plural form 2753*** 'ngettext' can be used now to return the right plural form
3257according to the given numeric value. 2754according to the given numeric value.
3258 2755
3259+++
3260** 'inhibit-null-byte-detection' is renamed to 'inhibit-nul-byte-detection'. 2756** 'inhibit-null-byte-detection' is renamed to 'inhibit-nul-byte-detection'.
3261 2757
3262+++
3263** 'self-insert-command' takes the char to insert as (optional) argument. 2758** 'self-insert-command' takes the char to insert as (optional) argument.
3264 2759
3265+++
3266** 'lookup-key' can take a list of keymaps as argument. 2760** 'lookup-key' can take a list of keymaps as argument.
3267 2761
3268+++
3269** 'condition-case' now accepts t to match any error symbol. 2762** 'condition-case' now accepts t to match any error symbol.
3270 2763
3271+++
3272** New function 'proper-list-p'. 2764** New function 'proper-list-p'.
3273Given a proper list as argument, this predicate returns its length; 2765Given a proper list as argument, this predicate returns its length;
3274otherwise, it returns nil. 'format-proper-list-p' is now an obsolete 2766otherwise, it returns nil. 'format-proper-list-p' is now an obsolete
3275alias for the new function. 2767alias for the new function.
3276 2768
3277---
3278** 'define-minor-mode' automatically documents the meaning of ARG. 2769** 'define-minor-mode' automatically documents the meaning of ARG.
3279 2770
3280+++
3281** The function 'recenter' now accepts an additional optional argument. 2771** The function 'recenter' now accepts an additional optional argument.
3282By default, calling 'recenter' will not redraw the frame even if 2772By default, calling 'recenter' will not redraw the frame even if
3283'recenter-redisplay' is non-nil. Call 'recenter' with the new second 2773'recenter-redisplay' is non-nil. Call 'recenter' with the new second
3284argument non-nil to force redisplay per 'recenter-redisplay's value. 2774argument non-nil to force redisplay per 'recenter-redisplay's value.
3285 2775
3286+++
3287** New functions 'major-mode-suspend' and 'major-mode-restore'. 2776** New functions 'major-mode-suspend' and 'major-mode-restore'.
3288Use them when switching temporarily to another major mode, e.g. for 2777Use them when switching temporarily to another major mode, e.g. for
3289'hexl-mode', or to switch between 'c-mode' and 'image-mode' in XPM. 2778'hexl-mode', or to switch between 'c-mode' and 'image-mode' in XPM.
3290 2779
3291+++
3292** New macro 'dolist-with-progress-reporter'. 2780** New macro 'dolist-with-progress-reporter'.
3293This works like 'dolist', but reports progress similar to 2781This works like 'dolist', but reports progress similar to
3294'dotimes-with-progress-reporter'. 2782'dotimes-with-progress-reporter'.
3295 2783
3296+++
3297** New hook 'after-delete-frame-functions'. 2784** New hook 'after-delete-frame-functions'.
3298This works like 'delete-frame-functions', but runs after the frame to 2785This works like 'delete-frame-functions', but runs after the frame to
3299be deleted has been made dead and removed from the frame list. 2786be deleted has been made dead and removed from the frame list.
3300 2787
3301---
3302** The function 'provided-mode-derived-p' was extended to support aliases. 2788** The function 'provided-mode-derived-p' was extended to support aliases.
3303The function now returns non-nil when the argument MODE is derived 2789The function now returns non-nil when the argument MODE is derived
3304from any alias of any of MODES. 2790from any alias of any of MODES.
3305 2791
3306+++
3307** New frame focus state inspection interface. 2792** New frame focus state inspection interface.
3308The hooks 'focus-in-hook' and 'focus-out-hook' are now obsolete. 2793The hooks 'focus-in-hook' and 'focus-out-hook' are now obsolete.
3309Instead, attach to 'after-focus-change-function' using 'add-function' 2794Instead, attach to 'after-focus-change-function' using 'add-function'
3310and inspect the focus state of each frame using 'frame-focus-state'. 2795and inspect the focus state of each frame using 'frame-focus-state'.
3311 2796
3312+++
3313** Emacs now requests and recognizes focus-change notifications from TTYs. 2797** Emacs now requests and recognizes focus-change notifications from TTYs.
3314On terminal emulators that support the feature, Emacs can now support 2798On terminal emulators that support the feature, Emacs can now support
3315'focus-in-hook' and 'focus-out-hook' for TTY frames. 2799'focus-in-hook' and 'focus-out-hook' for TTY frames.
3316 2800
3317+++
3318** Window-specific face remapping. 2801** Window-specific face remapping.
3319Face specifications (of the kind used in 'face-remapping-alist') 2802Face specifications (of the kind used in 'face-remapping-alist')
3320now support filters, allowing faces to vary between different windows 2803now support filters, allowing faces to vary between different windows
3321displaying the same buffer. See the node "(elisp) Face Remapping" 2804displaying the same buffer. See the node "(elisp) Face Remapping"
3322of the Emacs Lisp Reference manual for more detail. 2805of the Emacs Lisp Reference manual for more detail.
3323 2806
3324+++
3325** Window change functions have been redesigned. 2807** Window change functions have been redesigned.
3326Hooks reacting to window changes run now only when redisplay detects 2808Hooks reacting to window changes run now only when redisplay detects
3327that a change has actually occurred. Six hooks are now provided: 2809that a change has actually occurred. Six hooks are now provided:
@@ -3351,55 +2833,44 @@ Also 'run-window-configuration-change-hook' is declared obsolete.
3351See the section "(elisp) Window Hooks" in the Elisp manual for a 2833See the section "(elisp) Window Hooks" in the Elisp manual for a
3352detailed explanation of the new behavior. 2834detailed explanation of the new behavior.
3353 2835
3354+++
3355** Scroll bar and fringe settings can now be made persistent for windows. 2836** Scroll bar and fringe settings can now be made persistent for windows.
3356The functions 'set-window-scroll-bars' and 'set-window-fringes' now 2837The functions 'set-window-scroll-bars' and 'set-window-fringes' now
3357have a new optional argument that makes the settings they produce 2838have a new optional argument that makes the settings they produce
3358reliably survive subsequent invocations of 'set-window-buffer'. 2839reliably survive subsequent invocations of 'set-window-buffer'.
3359 2840
3360+++
3361** New user option 'resize-mini-frames'. 2841** New user option 'resize-mini-frames'.
3362This option allows automatically resizing minibuffer-only frames 2842This option allows automatically resizing minibuffer-only frames
3363similarly to how minibuffer windows are resized on "normal" frames. 2843similarly to how minibuffer windows are resized on "normal" frames.
3364 2844
3365+++
3366** New buffer display action function 'display-buffer-in-direction'. 2845** New buffer display action function 'display-buffer-in-direction'.
3367This function allows specifying the location of the window chosen by 2846This function allows specifying the location of the window chosen by
3368'display-buffer' in various ways. 2847'display-buffer' in various ways.
3369 2848
3370+++
3371** New buffer display action alist entry 'dedicated'. 2849** New buffer display action alist entry 'dedicated'.
3372Such an entry allows specifying the dedicated status of a window 2850Such an entry allows specifying the dedicated status of a window
3373created by 'display-buffer'. 2851created by 'display-buffer'.
3374 2852
3375+++
3376** New buffer display action alist entry 'window-min-height'. 2853** New buffer display action alist entry 'window-min-height'.
3377Such an entry allows specifying a minimum height of the window used 2854Such an entry allows specifying a minimum height of the window used
3378for displaying a buffer. 'display-buffer-below-selected' is the only 2855for displaying a buffer. 'display-buffer-below-selected' is the only
3379action function to respect it at the moment. 2856action function to respect it at the moment.
3380 2857
3381+++
3382** New buffer display action alist entry 'direction'. 2858** New buffer display action alist entry 'direction'.
3383This entry is used to specify the location of the window chosen by 2859This entry is used to specify the location of the window chosen by
3384'display-buffer-in-direction'. 2860'display-buffer-in-direction'.
3385 2861
3386+++
3387** Additional meaning of display action alist entry 'window'. 2862** Additional meaning of display action alist entry 'window'.
3388A 'window' entry can now also specify a reference window for 2863A 'window' entry can now also specify a reference window for
3389'display-buffer-in-direction'. 2864'display-buffer-in-direction'.
3390 2865
3391+++
3392** The function 'assoc-delete-all' now takes an optional predicate argument. 2866** The function 'assoc-delete-all' now takes an optional predicate argument.
3393 2867
3394+++
3395** New function 'string-distance' to calculate the Levenshtein distance 2868** New function 'string-distance' to calculate the Levenshtein distance
3396between two strings. 2869between two strings.
3397 2870
3398+++
3399** 'print-quoted' now defaults to t, so if you want to see 2871** 'print-quoted' now defaults to t, so if you want to see
3400'(quote x)' instead of 'x you will have to bind it to nil where applicable. 2872'(quote x)' instead of 'x you will have to bind it to nil where applicable.
3401 2873
3402+++
3403** Numbers formatted via '%o' or '%x' are now formatted as signed integers. 2874** Numbers formatted via '%o' or '%x' are now formatted as signed integers.
3404This avoids problems in calls like '(read (format "#x%x" -1))', and is 2875This avoids problems in calls like '(read (format "#x%x" -1))', and is
3405more compatible with bignums. To get the traditional machine-dependent 2876more compatible with bignums. To get the traditional machine-dependent
@@ -3408,12 +2879,10 @@ and if the new behavior breaks your code please email
3408<32252@debbugs.gnu.org>. Because '%o' and '%x' can now format signed 2879<32252@debbugs.gnu.org>. Because '%o' and '%x' can now format signed
3409integers, they now support the '+' and space flags. 2880integers, they now support the '+' and space flags.
3410 2881
3411+++
3412** In Emacs Lisp mode, symbols with confusable quotes are highlighted. 2882** In Emacs Lisp mode, symbols with confusable quotes are highlighted.
3413For example, the first character in '‘foo' would be highlighted in 2883For example, the first character in '‘foo' would be highlighted in
3414'font-lock-warning-face'. 2884'font-lock-warning-face'.
3415 2885
3416+++
3417** Omitting variables after '&optional' and '&rest' is now allowed. 2886** Omitting variables after '&optional' and '&rest' is now allowed.
3418For example '(defun foo (&optional))' is no longer an error. This is 2887For example '(defun foo (&optional))' is no longer an error. This is
3419sometimes convenient when writing macros. See the ChangeLog entry 2888sometimes convenient when writing macros. See the ChangeLog entry
@@ -3421,7 +2890,6 @@ titled "Allow '&rest' or '&optional' without following variable
3421(Bug#29165)" for a full listing of which arglists are accepted across 2890(Bug#29165)" for a full listing of which arglists are accepted across
3422versions. 2891versions.
3423 2892
3424---
3425** Internal parsing commands now use 'syntax-ppss' and disregard 2893** Internal parsing commands now use 'syntax-ppss' and disregard
3426'open-paren-in-column-0-is-defun-start'. This affects mostly things like 2894'open-paren-in-column-0-is-defun-start'. This affects mostly things like
3427'forward-comment', 'scan-sexps', and 'forward-sexp' when parsing backward. 2895'forward-comment', 'scan-sexps', and 'forward-sexp' when parsing backward.
@@ -3432,7 +2900,6 @@ brackets at the start of a line inside documentation strings with a
3432backslash, although there is no harm in doing so to make the code 2900backslash, although there is no harm in doing so to make the code
3433easier to edit with an older Emacs version. 2901easier to edit with an older Emacs version.
3434 2902
3435---
3436** New symbolic accessor functions for a parse state list. 2903** New symbolic accessor functions for a parse state list.
3437The new accessor functions 'ppss-depth', 'ppss-list-start', 2904The new accessor functions 'ppss-depth', 'ppss-list-start',
3438'ppss-last-sexp-start', 'ppss-string-terminator', 'comment-depth', 2905'ppss-last-sexp-start', 'ppss-string-terminator', 'comment-depth',
@@ -3440,37 +2907,30 @@ The new accessor functions 'ppss-depth', 'ppss-list-start',
3440and 'two-character-syntax' can be used on the list value returned by 2907and 'two-character-syntax' can be used on the list value returned by
3441'parse-partial-sexp' and 'syntax-ppss'. 2908'parse-partial-sexp' and 'syntax-ppss'.
3442 2909
3443---
3444** The 'server-name' and 'server-socket-dir' variables are set when a 2910** The 'server-name' and 'server-socket-dir' variables are set when a
3445socket has been passed to Emacs. 2911socket has been passed to Emacs.
3446 2912
3447---
3448** The 'file-system-info' function is now available on all platforms. 2913** The 'file-system-info' function is now available on all platforms.
3449instead of just Microsoft platforms. This fixes a 'get-free-disk-space' 2914instead of just Microsoft platforms. This fixes a 'get-free-disk-space'
3450bug on OS X 10.8 and later. 2915bug on OS X 10.8 and later.
3451 2916
3452---
3453** The function 'get-free-disk-space' returns now a non-nil value for 2917** The function 'get-free-disk-space' returns now a non-nil value for
3454remote systems, which support this check. 2918remote systems, which support this check.
3455 2919
3456+++
3457** 'memory-limit' now returns a better estimate of memory consumption. 2920** 'memory-limit' now returns a better estimate of memory consumption.
3458 2921
3459+++
3460** When interpreting 'gc-cons-percentage', Emacs now estimates the 2922** When interpreting 'gc-cons-percentage', Emacs now estimates the
3461heap size more often and (we hope) more accurately. E.g., formerly 2923heap size more often and (we hope) more accurately. E.g., formerly
3462'(progn (let ((gc-cons-percentage 0.8)) BODY1) BODY2)' continued to use 2924'(progn (let ((gc-cons-percentage 0.8)) BODY1) BODY2)' continued to use
3463the 0.8 value during BODY2 until the next garbage collection, but that 2925the 0.8 value during BODY2 until the next garbage collection, but that
3464is no longer true. Applications may need to re-tune their GC tricks. 2926is no longer true. Applications may need to re-tune their GC tricks.
3465 2927
3466+++
3467** New macro 'combine-change-calls' arranges to call the change hooks 2928** New macro 'combine-change-calls' arranges to call the change hooks
3468('before-change-functions' and 'after-change-functions') just once 2929('before-change-functions' and 'after-change-functions') just once
3469each around a sequence of lisp forms, given a region. This is 2930each around a sequence of lisp forms, given a region. This is
3470useful when a function makes a possibly large number of repetitive 2931useful when a function makes a possibly large number of repetitive
3471changes and the change hooks are time consuming. 2932changes and the change hooks are time consuming.
3472 2933
3473+++
3474** 'eql', 'make-hash-table', etc. now treat NaNs consistently. 2934** 'eql', 'make-hash-table', etc. now treat NaNs consistently.
3475Formerly, some of these functions ignored signs and significands of 2935Formerly, some of these functions ignored signs and significands of
3476NaNs. Now, all these functions treat NaN signs and significands as 2936NaNs. Now, all these functions treat NaN signs and significands as
@@ -3480,36 +2940,29 @@ Also, Emacs now reads and prints NaN significands; e.g., if X is a
3480NaN, '(format "%s" X)' now returns "0.0e+NaN", "1.0e+NaN", etc., 2940NaN, '(format "%s" X)' now returns "0.0e+NaN", "1.0e+NaN", etc.,
3481depending on X's significand. 2941depending on X's significand.
3482 2942
3483+++
3484** The function 'make-string' accepts an additional optional argument. 2943** The function 'make-string' accepts an additional optional argument.
3485If the optional third argument is non-nil, 'make-string' will produce 2944If the optional third argument is non-nil, 'make-string' will produce
3486a multibyte string even if its second argument is an ASCII character. 2945a multibyte string even if its second argument is an ASCII character.
3487 2946
3488---
3489** '(format "%d" X)' no longer mishandles a floating-point number X that 2947** '(format "%d" X)' no longer mishandles a floating-point number X that
3490does not fit in a machine integer. 2948does not fit in a machine integer.
3491 2949
3492---
3493** New coding-system 'ibm038'. 2950** New coding-system 'ibm038'.
3494This is the International EBCDIC encoding, also available as aliases 2951This is the International EBCDIC encoding, also available as aliases
3495'ebcdic-int' and 'cp038'. 2952'ebcdic-int' and 'cp038'.
3496 2953
3497---
3498** New JSON parsing and serialization functions 'json-serialize', 2954** New JSON parsing and serialization functions 'json-serialize',
3499'json-insert', 'json-parse-string', and 'json-parse-buffer'. These 2955'json-insert', 'json-parse-string', and 'json-parse-buffer'. These
3500are implemented in C using the Jansson library. 2956are implemented in C using the Jansson library.
3501 2957
3502+++
3503** New function 'ring-resize'. 2958** New function 'ring-resize'.
3504'ring-resize' can be used to grow or shrink a ring. 2959'ring-resize' can be used to grow or shrink a ring.
3505 2960
3506+++
3507** New function 'flatten-tree'. 2961** New function 'flatten-tree'.
3508'flatten-list' is provided as an alias. These functions take a tree 2962'flatten-list' is provided as an alias. These functions take a tree
3509and 'flatten' it such that the result is a list of all the terminal 2963and 'flatten' it such that the result is a list of all the terminal
3510nodes. 2964nodes.
3511 2965
3512+++
3513** 'zlib-decompress-region' can partially decompress corrupted data. 2966** 'zlib-decompress-region' can partially decompress corrupted data.
3514If the new optional ALLOW-PARTIAL argument is passed, then the data 2967If the new optional ALLOW-PARTIAL argument is passed, then the data
3515that was decompressed successfully before failing will be inserted 2968that was decompressed successfully before failing will be inserted
@@ -3517,23 +2970,19 @@ into the buffer.
3517 2970
3518** Image mode 2971** Image mode
3519 2972
3520---
3521*** New library Exif. 2973*** New library Exif.
3522An Exif library has been added that can parse JPEG files and output 2974An Exif library has been added that can parse JPEG files and output
3523data about creation times and orientation and the like. 2975data about creation times and orientation and the like.
3524'exif-parse-file' and 'exif-parse-buffer' are the main interface 2976'exif-parse-file' and 'exif-parse-buffer' are the main interface
3525functions. 2977functions.
3526 2978
3527---
3528*** 'image-mode' now uses this library to automatically rotate images 2979*** 'image-mode' now uses this library to automatically rotate images
3529according to the orientation in the Exif data, if any. 2980according to the orientation in the Exif data, if any.
3530 2981
3531+++
3532*** The command 'image-rotate' now accepts a prefix argument. 2982*** The command 'image-rotate' now accepts a prefix argument.
3533With a prefix argument, 'image-rotate' now rotates the image at point 2983With a prefix argument, 'image-rotate' now rotates the image at point
353490 degrees counter-clockwise, instead of the default clockwise. 298490 degrees counter-clockwise, instead of the default clockwise.
3535 2985
3536+++
3537*** In 'image-mode' the image is resized automatically to fit in window. 2986*** In 'image-mode' the image is resized automatically to fit in window.
3538By default, the image will resize upon first display and whenever the 2987By default, the image will resize upon first display and whenever the
3539window's dimensions change. Two user options 'image-auto-resize' and 2988window's dimensions change. Two user options 'image-auto-resize' and
@@ -3542,20 +2991,17 @@ window's dimensions change. Two user options 'image-auto-resize' and
3542key 's' contains the commands that can be used to fit the image to the 2991key 's' contains the commands that can be used to fit the image to the
3543window manually. 2992window manually.
3544 2993
3545---
3546*** Some 'image-mode' variables are now buffer-local. 2994*** Some 'image-mode' variables are now buffer-local.
3547The image parameters 'image-transform-rotation', 2995The image parameters 'image-transform-rotation',
3548'image-transform-scale' and 'image-transform-resize' are now declared 2996'image-transform-scale' and 'image-transform-resize' are now declared
3549buffer-local, so each buffer could have its own values for these 2997buffer-local, so each buffer could have its own values for these
3550parameters. 2998parameters.
3551 2999
3552+++
3553*** Three new 'image-mode' commands have been added: 'm', which marks 3000*** Three new 'image-mode' commands have been added: 'm', which marks
3554the file in the dired buffer(s) for the directory the file is in; 'u', 3001the file in the dired buffer(s) for the directory the file is in; 'u',
3555which unmarks the file; and 'w', which pushes the current buffer's file 3002which unmarks the file; and 'w', which pushes the current buffer's file
3556name to the kill ring. 3003name to the kill ring.
3557 3004
3558---
3559*** New library image-converter. 3005*** New library image-converter.
3560If you need to view exotic image formats for which Emacs doesn't have 3006If you need to view exotic image formats for which Emacs doesn't have
3561native support, customize the new user option 3007native support, customize the new user option
@@ -3563,12 +3009,10 @@ native support, customize the new user option
3563GraphicsMagick, ImageMagick or 'ffmpeg' installed, they will then be 3009GraphicsMagick, ImageMagick or 'ffmpeg' installed, they will then be
3564used to convert images automatically before displaying them. 3010used to convert images automatically before displaying them.
3565 3011
3566---
3567*** 'auto-mode-alist' now includes many of the types typically 3012*** 'auto-mode-alist' now includes many of the types typically
3568supported by the external image converters, like WEPB, BMP and ICO. 3013supported by the external image converters, like WEPB, BMP and ICO.
3569These now default to using 'image-mode'. 3014These now default to using 'image-mode'.
3570 3015
3571---
3572*** 'imagemagick-types-inhibit' disables using ImageMagick by default. 3016*** 'imagemagick-types-inhibit' disables using ImageMagick by default.
3573'image-mode' started using ImageMagick by default for all images 3017'image-mode' started using ImageMagick by default for all images
3574some years back. It now respects 'imagemagick-types-inhibit' as a way 3018some years back. It now respects 'imagemagick-types-inhibit' as a way
@@ -3576,66 +3020,53 @@ to disable that.
3576 3020
3577** Modules 3021** Modules
3578 3022
3579---
3580*** The function 'load' now behaves correctly when loading modules. 3023*** The function 'load' now behaves correctly when loading modules.
3581Specifically, it puts the module name into 'load-history', prints 3024Specifically, it puts the module name into 'load-history', prints
3582loading messages if requested, and protects against recursive loads. 3025loading messages if requested, and protects against recursive loads.
3583 3026
3584+++
3585*** New module environment function 'process_input' to process user 3027*** New module environment function 'process_input' to process user
3586input while module code is running. 3028input while module code is running.
3587 3029
3588+++
3589*** New module environment functions 'make_time' and 'extract_time' to 3030*** New module environment functions 'make_time' and 'extract_time' to
3590convert between timespec structures and Emacs Lisp time values. 3031convert between timespec structures and Emacs Lisp time values.
3591 3032
3592+++
3593*** New module environment functions 'make_big_integer' and 3033*** New module environment functions 'make_big_integer' and
3594'extract_big_integer' to create and extract arbitrary-size integer 3034'extract_big_integer' to create and extract arbitrary-size integer
3595values. 3035values.
3596 3036
3597+++
3598*** emacs-module.h now defines a macro 'EMACS_MAJOR_VERSION' that expands 3037*** emacs-module.h now defines a macro 'EMACS_MAJOR_VERSION' that expands
3599to the major version of the latest Emacs supported by the header. 3038to the major version of the latest Emacs supported by the header.
3600 3039
3601+++
3602** The function 'read-variable' now uses its own history list. 3040** The function 'read-variable' now uses its own history list.
3603The history of variable names read by 'read-variable' is recorded in 3041The history of variable names read by 'read-variable' is recorded in
3604the new variable 'custom-variable-history'. 3042the new variable 'custom-variable-history'.
3605 3043
3606---
3607** The functions 'string-to-unibyte' and 'string-to-multibyte' are no 3044** The functions 'string-to-unibyte' and 'string-to-multibyte' are no
3608longer declared obsolete. We have found that there are legitimate use 3045longer declared obsolete. We have found that there are legitimate use
3609cases for these functions, where there's no better alternative. We 3046cases for these functions, where there's no better alternative. We
3610believe that the incorrect uses of these functions all but disappeared 3047believe that the incorrect uses of these functions all but disappeared
3611by now, so we are un-obsoleting them. 3048by now, so we are un-obsoleting them.
3612 3049
3613+++
3614** New function 'group-name' returns a group name corresponding to GID. 3050** New function 'group-name' returns a group name corresponding to GID.
3615 3051
3616+++
3617** 'make-process' now takes a keyword argument ':file-handler'; if 3052** 'make-process' now takes a keyword argument ':file-handler'; if
3618that is non-nil, it will look for a file name handler for the current 3053that is non-nil, it will look for a file name handler for the current
3619buffer's 'default-directory' and invoke that file name handler to make 3054buffer's 'default-directory' and invoke that file name handler to make
3620the process. That way 'make-process' can start remote processes. 3055the process. That way 'make-process' can start remote processes.
3621 3056
3622+++
3623** '(locale-info 'paper)' now returns the paper size on systems that support it. 3057** '(locale-info 'paper)' now returns the paper size on systems that support it.
3624This is currently supported on GNUish hosts and on modern versions of 3058This is currently supported on GNUish hosts and on modern versions of
3625MS-Windows. 3059MS-Windows.
3626 3060
3627+++
3628** The function 'regexp-opt', when given an empty list of strings, now 3061** The function 'regexp-opt', when given an empty list of strings, now
3629returns a regexp that never matches anything, which is an identity for 3062returns a regexp that never matches anything, which is an identity for
3630this operation. Previously, the empty string was returned in this 3063this operation. Previously, the empty string was returned in this
3631case. 3064case.
3632 3065
3633+++
3634** New constant 'regexp-unmatchable' contains a never-matching regexp. 3066** New constant 'regexp-unmatchable' contains a never-matching regexp.
3635It is a convenient and readable way to specify a regexp that should 3067It is a convenient and readable way to specify a regexp that should
3636not match anything, and is as fast as any such regexp can be. 3068not match anything, and is as fast as any such regexp can be.
3637 3069
3638+++
3639** New functions to handle the URL variant of base-64 encoding. 3070** New functions to handle the URL variant of base-64 encoding.
3640New functions 'base64url-encode-string' and 'base64url-encode-region' 3071New functions 'base64url-encode-string' and 'base64url-encode-region'
3641implement the url-variant of base-64 encoding as defined in RFC4648. 3072implement the url-variant of base-64 encoding as defined in RFC4648.
@@ -3644,7 +3075,6 @@ The functions 'base64-decode-string' and 'base64-decode-region' now
3644accept an optional argument to decode the URL variant of base-64 3075accept an optional argument to decode the URL variant of base-64
3645encoding. 3076encoding.
3646 3077
3647+++
3648** The function 'file-size-human-readable' accepts more optional arguments. 3078** The function 'file-size-human-readable' accepts more optional arguments.
3649The new third argument is a string put between the number and unit; it 3079The new third argument is a string put between the number and unit; it
3650defaults to the empty string. The new fourth argument is a string 3080defaults to the empty string. The new fourth argument is a string
@@ -3653,82 +3083,68 @@ argument is 'iec' and the empty string otherwise. We recommend a
3653space or non-breaking space as third argument, and "B" as fourth 3083space or non-breaking space as third argument, and "B" as fourth
3654argument, circumstances allowing. 3084argument, circumstances allowing.
3655 3085
3656+++
3657** 'format-spec' has been expanded with several modifiers to allow 3086** 'format-spec' has been expanded with several modifiers to allow
3658greater flexibility when customizing variables. The modifiers include 3087greater flexibility when customizing variables. The modifiers include
3659zero-padding, upper- and lower-casing, and limiting the length of the 3088zero-padding, upper- and lower-casing, and limiting the length of the
3660interpolated strings. The function has now also been documented in 3089interpolated strings. The function has now also been documented in
3661the Emacs Lisp manual. 3090the Emacs Lisp manual.
3662 3091
3663+++
3664** 'directory-files-recursively' can now take an optional PREDICATE 3092** 'directory-files-recursively' can now take an optional PREDICATE
3665parameter to control descending into subdirectories, and a 3093parameter to control descending into subdirectories, and a
3666FOLLOW-SYMLINK parameter to say that symbolic links that point to 3094FOLLOW-SYMLINK parameter to say that symbolic links that point to
3667other directories should be followed. 3095other directories should be followed.
3668 3096
3669+++
3670** New function 'xor' returns the boolean exclusive-or of its args. 3097** New function 'xor' returns the boolean exclusive-or of its args.
3671The function was previously defined in array.el, but has been moved to 3098The function was previously defined in array.el, but has been moved to
3672subr.el so that it is available by default. It now always returns the 3099subr.el so that it is available by default. It now always returns the
3673non-nil argument when the other is nil. Several duplicates of 'xor' 3100non-nil argument when the other is nil. Several duplicates of 'xor'
3674in other packages are now obsolete aliases of 'xor'. 3101in other packages are now obsolete aliases of 'xor'.
3675 3102
3676+++
3677** 'define-globalized-minor-mode' now takes BODY forms. 3103** 'define-globalized-minor-mode' now takes BODY forms.
3678 3104
3679+++
3680** New text property 'help-echo-inhibit-substitution'. 3105** New text property 'help-echo-inhibit-substitution'.
3681Setting this on the first character of a help string disables 3106Setting this on the first character of a help string disables
3682conversions via 'substitute-command-keys'. 3107conversions via 'substitute-command-keys'.
3683 3108
3684+++
3685** New text property 'minibuffer-message'. 3109** New text property 'minibuffer-message'.
3686Setting this on a character of the minibuffer text will display the 3110Setting this on a character of the minibuffer text will display the
3687temporary echo messages before that character, when messages need to 3111temporary echo messages before that character, when messages need to
3688be displayed while minibuffer is active. 3112be displayed while minibuffer is active.
3689 3113
3690+++
3691** 'undo' can be made to ignore the active region for a command 3114** 'undo' can be made to ignore the active region for a command
3692by setting 'undo-inhibit-region' symbol property of that command to 3115by setting 'undo-inhibit-region' symbol property of that command to
3693non-nil. This is used by 'mouse-drag-region' to make the effect 3116non-nil. This is used by 'mouse-drag-region' to make the effect
3694easier to undo immediately afterwards. 3117easier to undo immediately afterwards.
3695 3118
3696---
3697** When called interactively, 'next-buffer' and 'previous-buffer' now 3119** When called interactively, 'next-buffer' and 'previous-buffer' now
3698signal 'user-error' if there is no buffer to switch to. 3120signal 'user-error' if there is no buffer to switch to.
3699 3121
3700 3122
3701* Changes in Emacs 27.1 on Non-Free Operating Systems 3123* Changes in Emacs 27.1 on Non-Free Operating Systems
3702 3124
3703---
3704** Battery status is now supported in all Cygwin builds. 3125** Battery status is now supported in all Cygwin builds.
3705Previously it was supported only in the Cygwin-w32 build. 3126Previously it was supported only in the Cygwin-w32 build.
3706 3127
3707---
3708** Emacs now handles key combinations involving the macOS "command" 3128** Emacs now handles key combinations involving the macOS "command"
3709and "option" modifier keys more correctly. 3129and "option" modifier keys more correctly.
3710 3130
3711+++
3712** MacOS modifier key behavior is now more adjustable. 3131** MacOS modifier key behavior is now more adjustable.
3713The behavior of the macOS "Option", "Command", "Control" and 3132The behavior of the macOS "Option", "Command", "Control" and
3714"Function" keys can now be specified separately for use with 3133"Function" keys can now be specified separately for use with
3715ordinary keys, function keys and mouse clicks. This allows using them 3134ordinary keys, function keys and mouse clicks. This allows using them
3716in their standard macOS way for composing characters. 3135in their standard macOS way for composing characters.
3717 3136
3718+++
3719** The special handling of 'frame-title-format' on NS where setting it 3137** The special handling of 'frame-title-format' on NS where setting it
3720to t would enable the macOS proxy icon has been replaced with a 3138to t would enable the macOS proxy icon has been replaced with a
3721separate variable, 'ns-use-proxy-icon'. 'frame-title-format' will now 3139separate variable, 'ns-use-proxy-icon'. 'frame-title-format' will now
3722work as on other platforms. 3140work as on other platforms.
3723 3141
3724---
3725** New primitive 'w32-read-registry'. 3142** New primitive 'w32-read-registry'.
3726This primitive lets Lisp programs access the MS-Windows Registry by 3143This primitive lets Lisp programs access the MS-Windows Registry by
3727retrieving values stored under a given key. It is intended to be used 3144retrieving values stored under a given key. It is intended to be used
3728for supporting features such as XDG-like location of important files 3145for supporting features such as XDG-like location of important files
3729and directories. 3146and directories.
3730 3147
3731+++
3732** The default value of 'w32-pipe-read-delay' is now zero. 3148** The default value of 'w32-pipe-read-delay' is now zero.
3733This speeds up reading output from sub-processes that produce a lot of 3149This speeds up reading output from sub-processes that produce a lot of
3734data. 3150data.
@@ -3739,7 +3155,6 @@ versions of MS-Windows. Set this variable to 50 if for some reason
3739you need the old behavior (and please report such situations to Emacs 3155you need the old behavior (and please report such situations to Emacs
3740developers). 3156developers).
3741 3157
3742---
3743** New variable 'w32-multibyte-code-page'. 3158** New variable 'w32-multibyte-code-page'.
3744This variable holds the value of the multibyte code page used by the 3159This variable holds the value of the multibyte code page used by the
3745system. It is usually zero, which indicates that 'w32-ansi-code-page' 3160system. It is usually zero, which indicates that 'w32-ansi-code-page'
@@ -3747,12 +3162,10 @@ is being used, except in Far Eastern locales. When this variable is
3747non-zero, Emacs at startup sets 'locale-coding-system' to the 3162non-zero, Emacs at startup sets 'locale-coding-system' to the
3748corresponding encoding, instead of using 'w32-ansi-code-page'. 3163corresponding encoding, instead of using 'w32-ansi-code-page'.
3749 3164
3750---
3751** The default value of 'inhibit-compacting-font-caches' is t on MS-Windows. 3165** The default value of 'inhibit-compacting-font-caches' is t on MS-Windows.
3752Experience shows that compacting font caches causes more trouble on 3166Experience shows that compacting font caches causes more trouble on
3753MS-Windows than it helps. 3167MS-Windows than it helps.
3754 3168
3755+++
3756** Font lookup on MS-Windows was improved to support rare scripts. 3169** Font lookup on MS-Windows was improved to support rare scripts.
3757To activate the improvement, run the new function 3170To activate the improvement, run the new function
3758'w32-find-non-USB-fonts' once per Emacs session, or assign to the new 3171'w32-find-non-USB-fonts' once per Emacs session, or assign to the new
@@ -3760,13 +3173,11 @@ variable 'w32-non-USB-fonts' the list of scripts and the corresponding
3760fonts. See the documentation of this function and variable in the 3173fonts. See the documentation of this function and variable in the
3761Emacs manual for more details. 3174Emacs manual for more details.
3762 3175
3763+++
3764** On NS the behavior of drag and drop can now be modified by use of 3176** On NS the behavior of drag and drop can now be modified by use of
3765modifier keys in line with Apples guidelines. This makes the drag and 3177modifier keys in line with Apples guidelines. This makes the drag and
3766drop behavior more consistent, as previously the sending application 3178drop behavior more consistent, as previously the sending application
3767was able to 'set' modifiers without the knowledge of the user. 3179was able to 'set' modifiers without the knowledge of the user.
3768 3180
3769---
3770** On NS multicolor font display is enabled again since it is also 3181** On NS multicolor font display is enabled again since it is also
3771implemented in Emacs on free operating systems via Cairo drawing. 3182implemented in Emacs on free operating systems via Cairo drawing.
3772 3183
diff --git a/test/data/emacs-module/mod-test.c b/test/data/emacs-module/mod-test.c
index ed289d7a863..f72b85a5d8e 100644
--- a/test/data/emacs-module/mod-test.c
+++ b/test/data/emacs-module/mod-test.c
@@ -215,6 +215,35 @@ Fmod_test_globref_invalid_free (emacs_env *env, ptrdiff_t nargs,
215 return env->intern (env, "nil"); 215 return env->intern (env, "nil");
216} 216}
217 217
218/* Allocate and free global references in a different order. */
219
220static emacs_value
221Fmod_test_globref_reordered (emacs_env *env, ptrdiff_t nargs,
222 emacs_value *args, void *data)
223{
224 emacs_value booleans[2] = {
225 env->intern (env, "nil"),
226 env->intern (env, "t"),
227 };
228 emacs_value local = env->intern (env, "foo");
229 emacs_value globals[4] = {
230 env->make_global_ref (env, local),
231 env->make_global_ref (env, local),
232 env->make_global_ref (env, env->intern (env, "foo")),
233 env->make_global_ref (env, env->intern (env, "bar")),
234 };
235 emacs_value elements[4];
236 for (int i = 0; i < 4; ++i)
237 elements[i] = booleans[env->eq (env, globals[i], local)];
238 emacs_value ret = env->funcall (env, env->intern (env, "list"), 4, elements);
239 env->free_global_ref (env, globals[2]);
240 env->free_global_ref (env, globals[1]);
241 env->free_global_ref (env, globals[3]);
242 env->free_global_ref (env, globals[0]);
243 return ret;
244}
245
246
218/* Return a copy of the argument string where every 'a' is replaced 247/* Return a copy of the argument string where every 'a' is replaced
219 with 'b'. */ 248 with 'b'. */
220static emacs_value 249static emacs_value
@@ -708,6 +737,8 @@ emacs_module_init (struct emacs_runtime *ert)
708 DEFUN ("mod-test-globref-free", Fmod_test_globref_free, 4, 4, NULL, NULL); 737 DEFUN ("mod-test-globref-free", Fmod_test_globref_free, 4, 4, NULL, NULL);
709 DEFUN ("mod-test-globref-invalid-free", Fmod_test_globref_invalid_free, 0, 0, 738 DEFUN ("mod-test-globref-invalid-free", Fmod_test_globref_invalid_free, 0, 0,
710 NULL, NULL); 739 NULL, NULL);
740 DEFUN ("mod-test-globref-reordered", Fmod_test_globref_reordered, 0, 0, NULL,
741 NULL);
711 DEFUN ("mod-test-string-a-to-b", Fmod_test_string_a_to_b, 1, 1, NULL, NULL); 742 DEFUN ("mod-test-string-a-to-b", Fmod_test_string_a_to_b, 1, 1, NULL, NULL);
712 DEFUN ("mod-test-userptr-make", Fmod_test_userptr_make, 1, 1, NULL, NULL); 743 DEFUN ("mod-test-userptr-make", Fmod_test_userptr_make, 1, 1, NULL, NULL);
713 DEFUN ("mod-test-userptr-get", Fmod_test_userptr_get, 1, 1, NULL, NULL); 744 DEFUN ("mod-test-userptr-get", Fmod_test_userptr_get, 1, 1, NULL, NULL);
diff --git a/test/src/emacs-module-tests.el b/test/src/emacs-module-tests.el
index 8465fd02e1e..51b2ca0cd51 100644
--- a/test/src/emacs-module-tests.el
+++ b/test/src/emacs-module-tests.el
@@ -162,6 +162,9 @@ changes."
162(ert-deftest mod-test-globref-free-test () 162(ert-deftest mod-test-globref-free-test ()
163 (should (eq (mod-test-globref-free 1 'a "test" 'b) 'ok))) 163 (should (eq (mod-test-globref-free 1 'a "test" 'b) 'ok)))
164 164
165(ert-deftest mod-test-globref-reordered ()
166 (should (equal (mod-test-globref-reordered) '(t t t nil))))
167
165(ert-deftest mod-test-string-a-to-b-test () 168(ert-deftest mod-test-string-a-to-b-test ()
166 (should (string= (mod-test-string-a-to-b "aaa") "bbb"))) 169 (should (string= (mod-test-string-a-to-b "aaa") "bbb")))
167 170