1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-29 10:11:58 -07:00
Commit graph

181555 commits

Author SHA1 Message Date
Sean Whitton
d0ab336906 vc-do-command: Tidy up some messaging
* 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.
2026-03-05 12:01:51 +00:00
Martin Rudalics
1f30f37df8 Fix segfault introduced by recent 'get-mru-frame' change
* src/frame.c (delete_frame): Fix segfault when deleting a
frame and 'get-mru-frame' returns that frame.
2026-03-05 11:22:55 +01:00
Stéphane Marks
192d4fc1f7 Make 'frame-use-time' more reliable. (bug#80397)
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.
2026-03-05 09:58:03 +01:00
Alan Third
d40e5050be Fix seg fault when image dimensions don't match (bug#80518)
* src/image.c (four_corners_best): [USE_CAIRO] Reset the image
dimensions to real values.
(Fimage_transforms_p): Fix typo.
2026-03-04 19:21:36 +00:00
Michael Albinus
fedf45ca63 Revert "Repair serious breakage in the batch tests."
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.
2026-03-04 19:24:52 +01:00
Stefan Monnier
8f8d28f6dc (flymake-start): Give a bit more info in the log
* lisp/progmodes/flymake.el (flymake-start): Log the reason why
it's disabled when not starting a backend.
2026-03-04 09:44:27 -05:00
Sean Whitton
7d63d267f2 Rename 'any' to 'member-if' and deprecate 'cl-member-if'
* 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.
2026-03-04 14:43:05 +00:00
Sean Whitton
4ce94139ae New command 'unfill-paragraph'
* lisp/simple.el (unfill-paragraph): New command.
* doc/emacs/indent.texi (Indentation Commands):
* etc/NEWS: Document it.
2026-03-04 14:20:47 +00:00
Sean Whitton
9cc95aef58 ; * lisp/vc/vc.el (vc-print-change-log): Fix last change. 2026-03-04 10:35:24 +00:00
Stéphane Marks
8eacee314d In 'frame--purify-parameters' fix frame-inherited-parameters (Bug#80536)
* lisp/frame.el (frame--purify-parameters):
'frame-inherited-parameters' is a parameter list, not an alist.
2026-03-04 09:42:22 +01:00
Stephen Gildea
ae45bb10e0 ; * doc/emacs/files.texi (Time Stamps): Small wording fix. 2026-03-03 11:02:22 -08:00
Mattias Engdegård
7eba545a4e Revert "Rename 'any' to 'member-if' and deprecate 'cl-member-if'"
This reverts commit 2bdf15f6d8.

There is no consensus for this change.
2026-03-03 17:21:35 +01:00
Mattias Engdegård
dfa4a0e5a2 Faster JSON string serialisation (bug#80529)
* 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>.
2026-03-03 17:21:16 +01:00
Michael Albinus
72a1bda759 Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs 2026-03-03 16:59:23 +01:00
Filipp Gunbin
8670baf06b ; Fix docstring of vc-print-root-change-log 2026-03-03 18:55:49 +03:00
Stefan Monnier
cdcbb52f50 eglot.el: Avoid %s for composite objects
* 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`.
2026-03-03 10:17:17 -05:00
Eli Zaretskii
1a9a4d263a ; * etc/NEWS: Fix last change. 2026-03-03 16:28:53 +02:00
Manuel Giraud
d272dedf8c Add mirroring for special glyphs (bug#80440)
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.
2026-03-03 16:24:58 +02:00
Alan Mackenzie
b5e2b0bec1 CC Mode: Handle mixed symbols and non-symbols in regexps
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.
2026-03-03 16:19:16 +02:00
Sean Whitton
9563101c47 ; * doc/lispref/control.texi (Conditionals): Improve example. 2026-03-03 14:02:49 +00:00
Sean Whitton
7059bb160e Fix respecting vc-log-show-limit with new -change-log commands
* lisp/vc/vc.el (vc-print-change-log, vc-print-root-change-log):
Respect vc-log-show-limit when there is no prefix argument (bug#80532).
2026-03-03 14:00:39 +00:00
Sean Whitton
2bdf15f6d8 Rename 'any' to 'member-if' and deprecate 'cl-member-if'
* 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.
2026-03-03 13:57:07 +00:00
Eli Zaretskii
73a2a5cd05 ; Fix documentation of recent changes in treesit.el
* etc/NEWS:
* doc/lispref/parsing.texi (User-defined Things): Fix punctuation,
markup and typos.
2026-03-03 15:21:12 +02:00
Eli Zaretskii
75f6b5fe09 ; * doc/emacs/frames.texi (Multiple Displays): Improve markup. 2026-03-03 15:08:42 +02:00
Sean Whitton
1fb515e79f ; Suggest not using if-let* and friends to bind never-nil values. 2026-03-03 12:58:08 +00:00
Sean Whitton
d9611a7686 ; Tweak splash screen some more. Fix some punctuation. 2026-03-03 12:06:39 +00:00
Sean Whitton
1f9b6223e1 ; Move documentation for multiple-terminals-merge-keyboards. 2026-03-03 11:14:10 +00:00
Sean Whitton
d84c4e8346 dired-diff: Fix default input in inserted subdirectory
* lisp/dired-aux.el (dired-diff): Use default-directory, not
dired-current-directory, to determine whether the default input
is in another directory (bug#80497).  Use a relative file name
to improve readability.
2026-03-03 11:10:18 +00:00
Sean Whitton
afcc930833 Add some settings to newcomers-presets
* etc/themes/newcomers-presets-theme.el (newcomers-presets): Add
mode-line-compact, indent-tabs-mode, imenu-auto-rescan,
view-read-only, shell-command-prompt-show-cwd, after-save-hook,
etags-regen-mode, vc-deduce-backend-nonvc-modes,
vc-dir-save-some-buffers-on-revert, vc-find-revision-no-save,
vc-follow-symlinks, vc-use-incoming-outgoing-prefixes,
tab-bar-history-mode.
2026-03-03 10:42:22 +00:00
Michael Albinus
ca63ef00af Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs 2026-03-03 11:26:16 +01:00
Yuan Fu
18c24866af
Make tree-sitter thing navigation handle nested parsers
Not a bug report, but this is from the emacs-devel thread
"Tree-sitter: Transcendental things".

Improve tree-sitter thing navigation functions to handle the
case where there are multiple nested parsers in the
buffer. Previously these functions just grab the node at point
and are limited to the parser of that node.  Now these functions
will thoUrouly search through all parsers that covers point
before giving up.

* doc/lispref/parsing.texi: Mention the change.
* lisp/treesit.el (treesit--some): New macro.
(treesit--thing-sibling): Use the new macro, add a new PARSER
parameter.
(treesit-thing-prev):
(treesit-thing-next): Add PARSER parameter.
(treesit-thing-at):
(treesit-navigate-thing): Use the new macro, add a new PARSER
parameter.  Also pass the PARSER arg to recursive calls and
calls to treesit-thing-prev, etc.
2026-03-02 23:59:46 -08:00
Michael Albinus
7e425c3e6d Fix grep defaults
* lisp/progmodes/grep.el (grep-compute-defaults): Quote "xargs"
only for local hosts, running MS Windows.  (Bug#80489)
2026-03-03 08:58:12 +01:00
Basil L. Contovounesios
b8ee7d667f Initialize help-window-old-frame again
Its sole initialization seems to have been accidentally dropped as
part of bug#25979.

* lisp/help.el (help--window-setup): Set help-window-old-frame
before showing the help buffer (bug#80505).
2026-03-02 22:11:51 +01:00
Mattias Engdegård
423a8b7fd8 Simplify some overly defensive compiler macros
* lisp/emacs-lisp/bytecomp.el (bytecomp--check-eq-args)
(bytecomp--check-memq-args, bytecomp--char-before)
(bytecomp--backward-char, bytecomp--backward-word):
Don't bother with malformed calls; macroexp--compiler-macro won't call
the handler unless the arity matches.
2026-03-02 21:36:26 +01:00
Mattias Engdegård
e96bb822e3 Don't complain on compiler-macro arity mismatch
* lisp/emacs-lisp/macroexp.el (macroexp--compiler-macro):
Don't warn if calling the compiler-macro handler elicits an arity error.

This helps in two ways: no messy wrong-number-of-arguments errors during
macro-expansion, only the actual warnings emitted by the compiler, and
compiler-macros no longer need to be written defensively to avoid such
errors.
2026-03-02 21:36:19 +01:00
Eli Zaretskii
f46eaf609e ; * src/w32image.c (w32_gdip_export_frame): Add error checking. 2026-03-02 17:03:17 +02:00
James Cherti
b3c0aee42b sh-script: Mark + and * as punctuation rather than a symbol constituent
In Bash, the characters + and * are not valid in variable names.
In sh, they are also disallowed in both function and variable
names.  Treating them as punctuation is appropriate, as they most
commonly appear as operators.

Examples:
   . Arithmetic: $((var1*var2))
   . Compound assignment: list_name+=("item")

* lisp/progmodes/sh-script.el (sh-mode-syntax-table): Mark + and *
as punctuation in the syntax table.  (Bug#80280)

Copyright-paperwork-exempt: yes
2026-03-02 14:32:54 +02:00
Martin Rudalics
f88d4a0d7b Handle side windows in 'ediff-setup-windows-plain-compare' (Bug#80415)
* lisp/vc/ediff-wind.el (ediff-split-window-function)
(ediff-merge-split-window-function): Amend doc-strings.
(ediff-setup-windows-plain-compare): Simplify minibuffer window
handling, handle side windows (Bug#80415), avoid 'other-window'
and 'switch-to-buffer' calls.
2026-03-02 10:25:49 +01:00
Paul Eggert
6e8dd0f898 Pacify clang -Wunused-result
Problem reported by badli al rashid (bug#80512).
* lib-src/make-docfile.c (scan_c_stream): Avoid a tricky ungetc+getc.
2026-03-01 11:36:47 -08:00
Paul Eggert
381eb4985b Update from Gnulib by running admin/merge-gnulib
* admin/merge-gnulib (GNULIB_MODULES): Add memeq, streq and remove
stringeq, to adjust to a module splitup in Gnulib.
* lib/memeq.c, lib/streq.c, lib/strnul.c, m4/memeq.m4, m4/streq.m4:
New files.
* lib/string.c, m4/stringeq.m4: Remove.
2026-03-01 10:41:54 -08:00
Mattias Engdegård
b715ae5b34 ; Explain some details about rust-panic rule (bug#80403) 2026-03-01 15:35:11 +01:00
Jacek Świerk
60bbe8786a Add Rust panic message pattern (bug#80403)
* etc/compilation.txt: Add example.
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
New rule.
* test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data)
(compile-test-error-regexps): Add test case.

Copyright-paperwork-exempt: yes
2026-03-01 15:35:10 +01:00
Eli Zaretskii
331e2e3787 ; * doc/misc/forms.texi (Credits): Added Johan Vromans (bug#80517). 2026-03-01 16:30:42 +02:00
Eli Zaretskii
a755d7fcf0 Teach Emacs on MS-Windows how to export frame screenshots
* src/w32image.c (w32_gdip_export_frame): New function.
(gdiplus_init): Load 'GdipCreateBitmapFromHBITMAP' from GDI+ DLL.
* src/w32fns.c (Fw32_export_frame): New primitive.

* etc/NEWS: Announce the new primitive.
2026-03-01 15:08:51 +02:00
Michael Albinus
1976223c56 Implement connection-local `command-line-max-length'
* lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
Set connection-local value of `command-line-max-length'.

* lisp/net/tramp.el (tramp-get-connection-local-criteria): New defsubst.
(tramp-set-connection-local-variables): Use it.
(tramp-set-connection-local-variables-for-buffer):
Use `connection-local-criteria-for-default-directory'.
2026-03-01 13:27:26 +01:00
Eli Zaretskii
f8d9ecb1b0 Add a few more translations to iso-transl.el
* lisp/international/iso-transl.el (iso-transl-char-map): Add a
few more translations for accented characters and arrows.  (Bug#80515)
2026-03-01 08:51:47 +02:00
Sean Whitton
b7dedde7aa ; Relocate comment along with the relocated code.
The code was moved, but without its comment, in this change:

    Author:     Dmitry Gutov <dgutov@yandex.ru>
    AuthorDate: Thu May 28 02:16:00 2015 +0300

        Delete the old process in vc-setup-buffer

        * lisp/vc/vc-dispatcher.el (vc-setup-buffer): Delete the old
        process here.
        (vc-do-command): Rather than here (bug#20608).
2026-02-28 21:16:49 +00:00
Sean Whitton
d78a1db462 New variable 'multiple-terminals-merge-keyboards'
* src/keyboard.c (syms_of_keyboard):
<multiple_terminals_merge_keyboards>: New variable.
(read_event_from_main_queue): Mention it in message.
* lisp/cus-start.el: Make it customizable.
* src/callint.c (Ffuncall_interactively):
* src/keyboard.c (Frecursive_edit):
* src/minibuf.c (read_minibuf): When its value is true, don't
enter single-kboard mode (bug#79892).
* admin/notes/multi-tty:
* etc/NEWS: Document it.
2026-02-28 20:54:56 +00:00
Paul Eggert
aed1c8b536 Don’t stuff keyboard input uselessly
Also, document stuffing better.
* src/keyboard.c (stuff_buffered_input):
Give up on stuffing if it fails.
* src/sysdep.c (stuff_char): Return failure indication.
2026-02-28 09:09:22 -08:00
Eli Zaretskii
936472345d Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs 2026-02-28 18:44:59 +02:00