1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-20 22:03:14 -07:00
Commit graph

178354 commits

Author SHA1 Message Date
Eli Zaretskii
b3e280faba Eglot: Fix parsing file:// URIs on MS-Windows
* lisp/progmodes/eglot.el (eglot-uri-to-path): Remove the leading
slash in MS-Windows file names only if they begin with a slash.
This adjusts the function to the recent fix for bug#76982 in
'url-generic-parse-url', which previously would produce file names
that begin with an extra slash.  (Bug#78392)
2025-05-13 14:45:04 +03:00
Alan Mackenzie
4b4276d64f CC Mode: Fix cc-fonts.el errors for XEmacs.
* lisp/progmodes/cc-fonts.el (c-font-lock-cpp-messages): Use
c-put-font-lock-face rather than c-put-font-lock-string-face
since we don't have the double quote marks here that the latter
function corrects for.
(c-complex-decl-matchers): Replace cl-delete-duplicates with
the macro c--delete-duplicates.
2025-05-13 10:13:34 +00:00
Sean Whitton
e17001b2e1 ; * src/buffer.c (Fgenerate_new_buffer_name): Fix typo. 2025-05-13 10:13:26 +01:00
Sean Whitton
a8309895ae ; * lisp/vc/diff-mode.el (diff-mode-shared-map): Document. 2025-05-13 10:09:26 +01:00
Michael Albinus
d1be1c91e0 * test/README: Tests in *-tests/ directories are also performed. 2025-05-13 09:48:31 +02:00
Stefan Monnier
40559bf71c help.el: Don't abuse inhibit-modification-hooks
* lisp/help.el (substitute-command-keys):
Set `inhibit-modification-hooks` locally so it doesn't affect
downstream function.
(help--window-setup): Don't let-bind `inhibit-modification-hooks`.
It was introduced accidentally in commit cd87a5c7a1.
2025-05-12 17:49:02 -04:00
Stefan Monnier
8726587648 (hash-table-contains-p): Don't allocate memory (bug#78162)
* lisp/subr.el (static-when): Remove spurious extra `progn` and improve
warning message's location info.
(hash-table-contains-p): Don't allocate memory (bug#78162).
Suggested by Daniel Mendler <mail@daniel-mendler.de>.
2025-05-12 17:20:12 -04:00
Stefan Monnier
0c3cf0e16c comint.el: Cosmetic changes
* lisp/comint.el: Prefer #' to quote function names.
(comint-mode): Turn some of the `make-local-variable`s to `setq-local`
or `defval-local`.
(comint-osc-hyperlink): Delete bogus alias.
(comint-replace-by-expanded-history-before-point): Use `looking-at-p`.
(comint-history-isearch-wrap): Share a bit more code.
2025-05-12 15:25:05 -04:00
Stefan Monnier
396c8873f3 lisp/comint.el (comint-delchar-or-maybe-eof): Obey global C-d binding
Fixes bug#78262.
2025-05-12 14:51:07 -04:00
Juri Linkov
824e4868db * lisp/treesit.el (treesit--parser-overlay-offset): New variable.
(treesit-parsers-at): Use it (bug#77906).
(treesit-forward-sexp, treesit--forward-list-with-default)
(treesit-up-list): Let-bind 'treesit--parser-overlay-offset'.
2025-05-12 21:24:26 +03:00
Arash Esbati
c53f53f11b ; RefTeX: Describe activation with use-package
* doc/misc/reftex.texi (Installation): Add examples how to
activate RefTeX with use-package.
Fix markup.
2025-05-12 20:20:23 +02:00
Stefan Monnier
8a19c249f8 simple.el (delete-trailing-whitespace-mode): New minor mode (bug#78264)
Partly motivated by bug#78097.

* lisp/simple.el (delete-trailing-whitespace-if-possible): New function.
(delete-trailing-whitespace-mode): New minor mode.

* lisp/editorconfig.el (editorconfig-trim-whitespaces-mode):
Change default to `delete-trailing-whitespace-mode`.
(editorconfig--get-trailing-ws): Simplify accordingly.
(editorconfig--add-hook-safe-p): Delete function.  Don't touch
`safe-local-eval-function` any more.
2025-05-12 12:39:16 -04:00
Jens Schmidt
d11570d80e Require key and cert when searching for client cert
* lisp/net/network-stream.el (network-stream-certificate):
Require :key and :cert when searching auth sources for a client
certificate.  (Bug#78189)
2025-05-12 16:52:06 +02:00
Michael Albinus
b91efd401d Improve handling of tests in *-tests subdirs
* test/Makefile.in (subdir_template): Add rules for *-tests subdirs.

* test/infra/Makefile.in: Remove special handling of eieio, faceup
and so-long.  Add recipes for *-tests subdirs.  Filter out rules
for *-tests subdirs.

* test/infra/test-jobs.yml: Regenerate.
2025-05-12 16:39:15 +02:00
Eli Zaretskii
8b67e566b9 Fix filelock-tests on MS-Windows
* test/src/filelock-tests.el (filelock-tests-file-locked-p-spoiled)
(filelock-tests-unlock-spoiled)
(filelock-tests-kill-buffer-spoiled): Don't special-case
MS-Windows, as it was evidently fixed to signal the same error as
Posix systems.
2025-05-12 15:08:20 +03:00
Sean Whitton
4ddafede8d diff-mode-shared-map: Don't inherit from special-mode-map
* lisp/vc/diff-mode.el (diff-mode-shared-map): No longer inherit
from special-mode-map.
(diff-mode-map): Tidy up list of unbindings now that we no
longer need to override any bindings from special-mode-map.
(minor-mode-map-alist): <diff-mode-read-only>: Ensure that the
minor mode keymap continues to inherit from special-mode-map by
calling make-composed-keymap here.

Co-authored-by: Stefan Monnier <monnier@iro.umontreal.ca>
2025-05-12 10:11:18 +01:00
Eli Zaretskii
882c849034 Avoid unnecessary calls to GetFileAttributes on MS-Windows
* src/w32.c (access_attrs): New function, refactored from
'faccessat'.
(faccessat): Call 'access_attrs' early to determine whether the
file doesn't exist, and if so, avoid calling 'chase_symlinks'.
Also avoid calling 'chase_symlinks' if it is known that the file
cannot be a symlink, given its attributes.  (Bug#78341)
2025-05-11 19:27:13 +03:00
Eli Zaretskii
7d84ffc2de Add test for file time-stamp granularity on MS-Windows
* test/src/fileio-tests.el
(fileio-tests-w32-time-stamp-granularity): New test.
2025-05-11 15:47:17 +03:00
Eli Zaretskii
3975094f1d Support sub-second file time-stamps on MS-Windows
* nt/inc/sys/stat.h (struct stat): New members for nsec part of
file times.

* lib-src/ntlib.c (convert_time):
* src/w32.c (convert_time): Accept an additional argument
TIME_NSEC and set it to the sub-second part of time.  All callers
changed.
2025-05-11 13:33:24 +03:00
João Távora
9df2074a06 Tweak .clangd to work with gcc-compiled Emacs (bug#78367)
A Gcc configuration of Emacs emits -fstrict-flex-arrays but
clangd doesn't understand that.  This causes spurious errors of
"unknown flag" that prevent analysis.  So tweak .clangd to the
nearest clang equivalent (which is very similar).

* .clangd (CompileFlags): Remove -fstrict-flex-arrays, add
-fstrict-flex-arrays=3.
2025-05-11 11:14:32 +01:00
João Távora
c69c18b732 Eglot: fix call hierarchy navigation again (bug#78367, bug#78250)
* lisp/progmodes/eglot.el (eglot--hierarchy-label): Fix again.
2025-05-11 11:14:18 +01:00
Sean Whitton
5b73625714 diff-mode-map: Unhide some additional M-<foo>
* lisp/vc/diff-mode.el (diff-mode-map): Don't inherit M-?,
M-SPC, M-DEL and M-S-SPC bindings through from special-mode-map.
2025-05-11 11:12:53 +01:00
Stefan Monnier
dfafe1830f lisp/emacs-lisp/cl-macs.el (cl--define-derived-type): Fix partial bootstrap 2025-05-11 01:30:01 -04:00
Stefan Monnier
66990628b8 lisp/net/browse-url.el (browse-url-interactive-arg): Fix bug#78026
Don't burp when run from a timer where (this-command-keys) will
usually return an empty vector.
2025-05-10 12:05:17 -04:00
Eli Zaretskii
1410bfb7ca Merge from origin/emacs-30
0d493864ce Fix indentation of XML comments
1a2c29b531 Improve Tramp's make-process handling for Solaris
a7dffc2ea3 Document 'time-stamp-time-zone' in Emacs Manual
0b4eb525b6 Make treesit--simple-indent-eval more permissive (bug#78065)
ed7b55f6bf Adapt Tramp tests
b172a1478c ; * doc/lispref/tips.texi (Library Headers): Fix wording ...
81629b2b2b ; * lisp/gnus/mail-source.el (mail-sources): Fix a typo (...
2025-05-10 07:40:30 -04:00
Jostein Kjønigsen
7265be09ce sh-script.el: Improve consistency in variable-use fontification.
sh-mode--treesit-settings: Ensure all variable use is treated the
same way.
Before this patch the following commands would all be treated differently:

    echo "${var}"
    echo "$var"
    echo ${var}
    echo $var

Now they are treated the same.
* lisp/progmodes/sh-script.el (sh-mode--treesit-settings): Tweak
rules.  (Bug#78167)
2025-05-10 13:21:32 +03:00
Eli Zaretskii
0d493864ce Fix indentation of XML comments
* lisp/nxml/nxml-mode.el (nxml-compute-indent-in-delimited-token):
Fix indentation in XML comments with empty lines.  Patch by John
Ciolfi <ciolfi@mathworks.com>.  (Bug#73206)
2025-05-10 13:11:22 +03:00
Manuel Giraud
013ed9799e Fall back eww-switch-to-buffer' to eww'
* lisp/net/eww.el (eww-switch-to-buffer): When no EWW buffers
exist, call `eww' instead.
(eww-list-buffers): Do not pop to *eww buffers* when there is no
EWW buffers.  (Bug#77967)
2025-05-10 12:46:28 +03:00
Michael Albinus
1a2c29b531 Improve Tramp's make-process handling for Solaris
* lisp/net/tramp-sh.el (tramp-sh-handle-make-process):
Disable buffering also for remote Solaris hosts.
Reported by Stacey Marshall <stacey.marshall@gmail.com>.
2025-05-10 10:05:51 +02:00
Sean Whitton
63f73de839 ; * doc/emacs/vc1-xtra.texi (General VC Options): Fix markup. 2025-05-09 16:38:16 +01:00
Vincent Belaïche
2102554a48 ix bugs when a SES buffer has named cells, and another don't.
* lisp/ses.el (ses-list-named-cells): Give a message when the list is empty.
(ses--unbind-cell-name): Do not throw error in a SES buffer w/o
any named cell for gethash from 'ses--named-cell-hashmap' being
'nil'.
2025-05-09 14:30:50 +02:00
Eli Zaretskii
b87608c9c7 ; Fix VC tests
* test/lisp/vc/vc-tests/vc-tests.el (vc-test-hg06-version-diff):
Skip on MS-Windows in batch mode.

* test/lisp/vc/vc-git-tests.el (vc-git-test--start-branch): More
portable command for showing the current branch ("--show-current"
is only available since Git 2.22).
2025-05-09 14:43:03 +03:00
Sean Whitton
295c38b03d Create new test/lisp/vc/vc-tests/ for vc.el tests
* test/lisp/vc/vc-tests.el: Move ...
* test/lisp/vc/vc-tests/vc-tests.el: ... to here.
* test/lisp/vc/vc-misc-tests.el: Move ...
* test/lisp/vc/vc-tests/vc-test-misc.el: ... to here.
2025-05-09 11:00:47 +01:00
Sean Whitton
8e02537d0b New vc-async-checkin user option
* lisp/vc/vc.el (vc-async-checkin): New option.
(vc-checkin): Don't use with-vc-properties on or display
messages around asynchronous checkins.
* lisp/vc/vc-git.el (vc-git-checkin):
* lisp/vc/vc-hg.el (vc-hg-checkin, vc-hg-checkin-patch): Perform
an async checkin operation when vc-async-checkin is non-nil.
* doc/emacs/vc1-xtra.texi (General VC Options):
* etc/NEWS: Document the new option.

* lisp/vc/vc-dispatcher.el (vc-wait-for-process-before-save):
New function.
(vc-set-async-update): If the current buffer visits a file, call
vc-refresh-state.
* lisp/vc/vc-hg.el (vc-wait-for-process-before-save): Autoload.
(vc-hg--async-command, vc-hg--async-buffer, vc-hg--command-1):
New utilities, partially factored out of vc-hg-command.
(vc-hg-merge-branch): Use vc-hg--async-command, thereby newly
respecting vc-hg-global-switches.
2025-05-09 10:52:06 +01:00
Sean Whitton
3739b86f5a vc-exec-after: New PROC argument
* lisp/vc/vc-dispatcher.el (vc-exec-after): New PROC argument.
* lisp/vc/vc-hg.el (vc-exec-after): Update declaration.
2025-05-09 10:52:06 +01:00
Martin Rudalics
0041873502 Fix infinite looping in 'next-frame' and associates (Bug#77985)
* src/frame.c (next_frame): Rewrite to avoid infinite looping if
FRAME itself does not qualify as candidate frame (Bug#77985).
(Fnext_frame, Fprevious_frame): Adjust do-strings.
* lisp/frame.el (other-frame): Adjust doc-string.
(frame-list-1): New function.
(make-frame-names-alist): Rewrite using 'frame-list-1' instead
of 'next-frame' (Bug#77985).
(delete-other-frames): Rewrite using 'frame-list' instead of
'next-frame'.
* doc/lispref/frames.texi (Finding All Frames): Minor
clarifications for 'frame-list' and 'next-frame'.
2025-05-09 09:36:00 +02:00
Paul Eggert
e929d6df77 Update from Gnulib by running admin/merge-gnulib 2025-05-08 18:54:40 -07:00
João Távora
7617c7a6e4 Eglot: fix navigation in eglot-hierarchy-mode (bug#78250)
* lisp/progmodes/eglot.el (eglot--hierarchy-label):  Take PARENT-URI. Rework.
(eglot--hierarchy-2): Rework.
2025-05-08 23:13:28 +01:00
João Távora
64eb60bd91 Flymake: tweak 'fancy' eol diagnostic display
When calculating the face for boxdraw chars, protect against
diagnostics with an empty first line.  Also don't inherit from
:default, which seems to mess up the background color when using
hl-line-mode.

* lisp/progmodes/flymake.el (flymake--eol-draw-fancy): Tweak
2025-05-08 23:13:28 +01:00
Stephen Gildea
a7dffc2ea3 Document 'time-stamp-time-zone' in Emacs Manual
* doc/emacs/files.texi (Time Stamp Customization): Document
time-stamp-time-zone.
2025-05-08 14:48:22 -07:00
Stefan Monnier
ceba490da9 cl-types: Improve error messages
* lisp/emacs-lisp/cl-extra.el (cl--derived-type-generalizers):
Check that the type is valid and fully defined.

* lisp/emacs-lisp/cl-lib.el (cl-generic-generalizers) <derived-type>:
Don't delegate to another method just because the type is invalid.

* lisp/emacs-lisp/cl-preloaded.el (cl--define-derived-type):
Minor simplification, and improvement to an error message.
2025-05-08 17:11:05 -04:00
Stefan Monnier
c522428b33 lisp/bs.el (bs--goto-current-buffer): Fix thinko in last commit 2025-05-08 10:51:16 -04:00
Manuel Giraud
0469f41ac2 Recenter for the calendar (bug#78205)
* lisp/calendar/cal-move.el (calendar-recenter-last-op): New
variable to track last recenter operation.
(calendar-recenter): New command to recenter the calendar.
* lisp/calendar/calendar.el (calendar-mode-map): Keybinding for
this command.
* doc/emacs/calendar.texi (Scroll Calendar): Document this
command.
* etc/NEWS: Announce this command.
2025-05-08 12:45:09 +03:00
Paul Eggert
c9c6abfa81 Update from Gnulib by running admin/merge-gnulib
The following changes were made by hand,
so that admin/merge-gnulib could succeed
instead of failing because the diff didn’t match.
* admin/gnulib-patches/lib/getloadavg.c.diff:
Remove, as it is no longer needed now that recent
Gnulib has been merged.
* admin/merge-gnulib (GNULIB_TOOL_FLAGS):
Remove the --local-dir="$src"admin/gnulib-patches option,
as it is no longer needed either.
2025-05-08 00:16:46 -07:00
Stefan Monnier
322ed637b4 cl-lib.el (cl-generic-generalizers): Fix partial bootstrap
* lisp/emacs-lisp/cl-lib.el (cl-generic-generalizers): Tweak the
bootstrap hack to avoid a problem when dumping `bootstrap-emacs` when
`cl-lib.el` has already been compiled.

* lisp/emacs-lisp/cl-macs.el (list): Move out of `static-if` test.
2025-05-07 23:34:48 -04:00
Stefan Monnier
777da8c3f9 (cl-deftype): Precompute the predicate function
Always define a `cl-deftype-satisfies` predicate (if possible), so
we only need `cl-typep` to "interpret" a type specifier when we use
a compound type but never for the atomic types (e.g. never
in `cl-types-of`).

* lisp/emacs-lisp/cl-macs.el (cl-typep): Test `cl-deftype-satisfies` first.
Don't handle `real` here any more.
(base-char, character, command, keyword, natnum, real): Define with
`c-deftype`.
(cl-deftype): Precompute the predicate for the atomic derived type,
if applicable.

* lisp/emacs-lisp/cl-preloaded.el (cl--define-derived-type):
Add argument for the precomputed predicate function.

* lisp/emacs-lisp/cl-extra.el (cl-types-of): Use `cl-deftype-satisfies`
instead of `cl-type-p`.
2025-05-07 23:18:09 -04:00
Yuan Fu
a918f9e640
; * src/pdumper.c (dump_buffer): Update hash. 2025-05-07 20:14:21 -07:00
Jeremy Bryant
0d96565d5d ; RefTeX: Update author email
Update Carsten's email across related reftex* files:
lisp/textmodes/reftex.el
lisp/textmodes/reftex-auc.el
lisp/textmodes/reftex-cite.el
lisp/textmodes/reftex-dcr.el
lisp/textmodes/reftex-global.el
lisp/textmodes/reftex-index.el
lisp/textmodes/reftex-parse.el
lisp/textmodes/reftex-ref.el
lisp/textmodes/reftex-sel.el
lisp/textmodes/reftex-toc.el
lisp/textmodes/reftex-vars.el
lisp/textmodes/reftex.el
(AUCTeX bug#77850)
2025-05-07 22:08:46 +02:00
James Cherti
4e1fe56e31 Mark !%:.^~, as punctuation rather than symbol constituents
In Bash, the characters !%:.^~, are not valid in variable names. In sh,
they are not permitted in either function or variable names. Treating
them as punctuation is convenient, as they are rarely used in function
names and never in variable names. Even among commands, their usage is
uncommon. The only character among these that is commonly seen in
command names is '.', although it is rarely used in function names.

Marking these characters as punctuation, rather than symbol
constituents, enhances the accuracy of symbol detection.

* lisp/progmodes/sh-script.el: Mark !%:.^~, as punctuation in the
  sh-mode-syntax-table syntax table.

Copyright-paperwork-exempt: yes
2025-05-07 15:04:07 -04:00
Stefan Monnier
1590a2b3d5 Merge branch 'cl-types' 2025-05-07 14:56:49 -04:00