* lisp/emacs-lisp/shortdoc.el (keymaps): Add example for adding
key bindings to an existing keymap.
* lisp/keymap.el (define-keymap): Doc fix. (Bug#80556)
* src/keyboard.c (kbd_buffer_get_event): Ignore selection-request
events when accessing the frame of an event. Suggested by dick
r. chiang <dick.r.chiang@gmail.com>. (Bug#80558)
Support calls to ns_lisp_to_color or Fns_list_colors in headless
environments where ns_term_init is not called, and calls before
ns_term_init runs.
* src/emacs.c (main): Call ns_init_colors when not in dump mode.
* src/nsfns.m (ns_init_colors): Make public function.
(Fns_list_colors): Remove ns_init_colors call.
* src/nsterm.h: extern ns_init_colors.
* src/frame.c (delete_frame): Call 'get-mru-frame' safely and
with EXCLUDE-FRAME argument set up correctly.
* lisp/frame.el (get-mru-frames, get-mru-frame): Fix doc-strings.
* lisp/recentf.el (recentf-exclude-ignored-extensions): Doc fix.
(recentf-exclude-file-by-extension-p): Rename from
`recentf-exclude-ignored-extensions'; all references changed.
Doc fix.
* etc/NEWS: Improve wording of the entry which announces the
above.
* lisp/recentf.el (recentf-exclude-ignored-extensions): New
user option.
(recentf-exclude-ignored-extensions): New function.
* etc/NEWS: Announce the new option and function.
(Bug#80347)
* lisp/vc/vc-dispatcher.el (vc-display-failed-async-commands):
New user option.
(vc-do-async-command): Use it.
* doc/emacs/vc1-xtra.texi (General VC Options):
* etc/NEWS: Document it.
* lisp/vc/vc-dispatcher.el (vc-do-command): Adjust message to
begin "Failed" not "Done" when command exits non-zero.
* lisp/vc/vc.el (vc-checkin): Adjust message to end in
"...failed" not "...done" when async command exits non-zero.
* doc/misc/viper.texi: Fix weird use of indexing, whereby many
index entries were placed _after_ the table which described the
functions or variables or keys, or even in the end of a @node
describing some subject. The index entries were moved to _before_
the text to which they pertain. Also, fix some incorrect
cross-references.
* lisp/vc/vc-dispatcher.el (vc--inhibit-message): New defvar,
replacing the undeclared vc-inhibit-message. All uses changed.
(vc--command-message): New function, factored out.
(vc-do-command): Call it.
Walking the window tree is more reliable than using the selected
window. Implement 'get-mru-frame' on top of 'get-mru-frames'
using 'frame-use-time'.
* lisp/frame.el (frame-use-time): Change to walk the window tree
for the specified frame.
(get-mru-frames): New defun.
(get-mru-frame): Change to call 'get-mru-frames'.
* doc/lispref/frames.texi: Update documentation.
* etc/NEWS: Update announcement.
This reverts commit feac531415.
This patch has deactivated 253 test cases without a sufficient reasoning.
Instead it speaks about a shotgun in its commite message.
The patch is reverted because
- It hasn't been discussed on emacs-devel. It should have, because it is
a serious change in our infrastructure (new official tag :nobatch). Any
documentation of this change, for example in test/README, is missing.
- The proper way to deactivate such tests would have been
(skip-when noninteractive)
Even better to skip for the respective reasons.
- There is no fault report. There is no information about how these tests
have failed. Since it hasn't been a problem so far for us, nobody will
work on a fix forever.
* lisp/subr.el (any): Rename from this ...
(member-if): ... to this. All uses changed.
(any): New function alias.
* lisp/emacs-lisp/cl-seq.el (cl-member-if): Mark obsolete.
* lisp/obsolete/cl.el (member-if): Delete obsolete function
alias.
* doc/lispref/lists.texi (List Elements):
* doc/misc/cl.texi (Lists as Sets):
* etc/NEWS: Document the change.
* src/json.c (json_out_string):
Optimise for runs of non-special ASCII chars.
This seems to be a a substantial performance gain for long strings but a
smaller regression for short strings (up to 6 chars or thereabouts,
depending on cpu, compiler, and/or C library). Still likely worth it.
Suggested by Pavel <cyberkm@gmail.com>.
* lisp/progmodes/eglot.el (eglot--check-object, eglot--check-dspec)
(eglot-shutdown-all, eglot--connect, eglot--lsp-position-to-point)
(eglot--read-server, eglot-handle-notification, eglot-handle-request):
Avoid `%s` for composite objects.
(eglot--connect, eglot--format): Use `fboundp` rather than `functionp`
to check if something is defined.
(eglot--sig-info): Prefer `point-min`.
See initial discussion here:
https://lists.gnu.org/archive/html/emacs-devel/2026-02/msg00400.html
* lisp/international/characters.el (pairs): Populate
special-mirror-table.
* src/xdisp.c (produce_special_glyphs): Add two arguments. One
to identify the paragraph direction and one to identify that the
glyph is produced on the left hand side of a window. Mirror
glyph defined in the display table according to the new
special-mirror-table. Bidi mirroring always takes precedence.
(init_iterator, insert_left_trunc_glyphs, display_line)
(display_string): Call 'produce_special_glyphs' with new arguments.
(syms_of_xdisp) <special-mirror-table>: New char-table.
* etc/NEWS: Announce the change.
This fixes bug#80507.
* lisp/progmodes/cc-defs.el (c-make-keywords-re): When a mixed list
of symbols and non-symbols is presented to this function, put
"\_< .... \_>" brackets around the part which handles the symbols
in the resulting regexp.
* lisp/subr.el (any): Rename from this ...
(member-if): ... to this. All uses changed.
Implement '&key KEY-FN' for backwards compatibility.
(any): New function alias.
* lisp/emacs-lisp/cl-seq.el (cl-member-if): Make an alias for
'member-if'.
* lisp/obsolete/cl.el (member-if): Delete obsolete function
alias.
* doc/lispref/lists.texi (List Elements):
* doc/misc/cl.texi (Lists as Sets):
* etc/NEWS: Document the change.