Commit graph

181514 commits

Author SHA1 Message Date
Eli Zaretskii
a7517d6ef8 ; Fix documentation of a recently added user option
* lisp/vc/vc-dispatcher.el (vc-display-failed-async-commands): Doc
fix.  Add a :version tag.
2026-03-05 19:48:46 +02:00
Eli Zaretskii
caca15a42d ; * doc/emacs/vc1-xtra.texi (General VC Options): Fix a typo. 2026-03-05 19:43:16 +02:00
Sean Whitton
d7fda971f1 unfill-paragraph: Reimplement in terms of fill-region
* lisp/textmodes/fill.el (unfill-paragraph): Reimplement in
terms of fill-region.
2026-03-05 16:14:43 +00:00
Sean Whitton
39abb7ec8f ; Move unfill-paragraph to fill.el. Document it in (elisp)Filling. 2026-03-05 15:48:03 +00:00
Sean Whitton
a54e10baeb ; * doc/lispref/control.texi (Conditionals): Improve explanation. 2026-03-05 13:31:10 +00:00
Sean Whitton
b12190778c ; * doc/emacs/vc1-xtra.texi (General VC Options): Fix last change. 2026-03-05 13:29:31 +00:00
Sean Whitton
8d16a0557d New user option vc-display-failed-async-commands
* 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.
2026-03-05 13:24:27 +00:00
Eli Zaretskii
f398a4d299 ; Fix indexing in viper.texi.
* 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.
2026-03-05 15:17:50 +02:00
Sean Whitton
bdc4a93535 ; Fix documentation of vc-command-messages. 2026-03-05 12:06:12 +00:00
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