1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-13 02:12:18 -07:00
Commit graph

181405 commits

Author SHA1 Message Date
Eric S. Raymond
d7a3d442b4 Tests for the lreaf.c amd print.c primitives. 2026-02-25 19:03:02 -05:00
Eric S. Raymond
cd038e5617 Tests for remaining functions iun eval.c. 2026-02-25 18:54:50 -05:00
Eric S. Raymond
a6e19d6179 Completing test coverage for dataa.c orimitives. 2026-02-25 18:35:02 -05:00
Eric S. Raymond
40ff4512ad More correctness tesrs for orinitives from fns.c. 2026-02-25 18:25:58 -05:00
Eric S. Raymond
67e8f87562 More tests for edit functions, buffers, and markers. 2026-02-25 18:10:05 -05:00
Eric S. Raymond
3dda4b85e8 Added more buffer/marker/editing test coverage. 2026-02-25 17:52:42 -05:00
Eric S. Raymond
7a93a7b334 Category/charset/coding + char-table tests. 2026-02-25 17:23:46 -05:00
Eric S. Raymond
fc7339c46d More test coverage improvements. 2026-02-25 17:06:50 -05:00
Eric S. Raymond
feac531415 Repair serious breakage in the batch tests.
There were a bunch of tests that were breaking make check and should
never be run in batch mode, because they do things like assuming there
is a controlling tty or assuming we can access network services when
we can't (e/g. in a CI/CD environment). I have shotgunned this
problem by tagging all the failing tests with :nobatch and then
changing the default and expensive selectors so make check won't barf
all over its shoes.

As many of these :nobatch should be individually removed as possible, after
upgrading the test harness to mock the environmental stuff they need.
Investigate these failures with "make check-nobatch".
2026-02-25 16:36:50 -05:00
Eric S. Raymond
95329bf445 More test coverage improvements.
Bignum corner-case tests in data-tests.el.
More buffer-primitive tests in editfns-test.el
Some condition-case tesrs in eval-tests.el.
And another marker-primitive test in marker-tests.el.
2026-02-25 13:21:25 -05:00
Eric S. Raymond
e42c579a54 More test coverage improvements for ERT.
In marker-tests.el, editfbs-tests.el, and data-tests.el.
2026-02-25 13:21:25 -05:00
Eli Zaretskii
de44026297 ; Fix emacs-module-tests on MS-Windows
* test/src/emacs-module-resources/mod-test.c [WINDOWSNT]: Undef
fprintf to prevent link error.
2026-02-25 19:32:46 +02:00
Eric S. Raymond
90af3295c7 Crrections to tedt coverrage extensuion after bootstrap build.
Files: data-tests.el, editfns-tests.el.
2026-02-25 11:47:16 -05:00
Eric S. Raymond
6eb170b007 Improve test coverage of builtin predicates. 2026-02-25 11:47:16 -05:00
Sean Whitton
215e07d9d3 New function multiple-command-partition-arguments
* lisp/subr.el (command-line-max-length): New variable.
(multiple-command-partition-arguments): New function.
* doc/lispref/processes.texi (Shell Arguments):
* etc/NEWS: Document them.
* test/lisp/subr-tests.el
(subr-multiple-command-partition-arguments): New test.
2026-02-25 16:29:05 +00:00
Stefan Monnier
2ce65ed06f (define-treesit-generic-mode): Improve autoloading support (bug#80480)
* lisp/treesit-x.el (define-treesit-generic-mode): Mark it as
`(autoload-macro expand)`.
Don't autoload the `treesit-language-source-alist` setting.
Generate simpler code for the common case where AUTO-MODE is a string.
2026-02-25 11:25:29 -05:00
Eric S. Raymond
6d7f0acf9c Tests for 2 marker primitives previously not covered.
- insertion-type
      - last-position-after-kill
2026-02-25 10:24:38 -05:00
Eric S. Raymond
bb403e70ae Tests for 7 editor primitives previously not covered.
- byte-to-position
      - byte-to-string
      - insert-byte
      - insert-buffer-substring
      - insert-before-markers-and-inherit
      - field-string-and-delete
      - constrain-to-field
2026-02-25 10:24:38 -05:00
Liu Hui
8992eea7d5 calendar-check-holidays: Call calendar-increment-month
* lisp/calendar/holidays.el (calendar-check-holidays): Call
calendar-increment-month (bug#80476).
2026-02-25 14:06:53 +00:00
Sean Whitton
f3aff938fa ; Revise short descriptions of EDE. 2026-02-25 13:21:58 +00:00
Michael Albinus
5b7593598c Make ert more robust
* lisp/emacs-lisp/ert.el (ert-run-test): Check, that `begin-marker'
is still valid.  The *Messages* buffer could have been deleted
during test run.
2026-02-25 13:02:04 +01:00
Mattias Engdegård
8c5be1a7a6 Fix eglot-tests on MacOS (bug#80479)
* test/lisp/progmodes/eglot-tests.el (eglot--call-with-fixture):
Normalise 'temporary-file-directory' to stave off problems that
occur when it contains symlinks, which is common on MacOS.
2026-02-24 21:42:44 +01:00
Mattias Engdegård
a84530ac2e Speed up 'equal'-comparison of vectorlike objects
* src/fns.c (internal_equal_1): Switch on the vectorlike type instead of
using a sequence of type predicates.
2026-02-24 12:49:53 +01:00
Mattias Engdegård
2505af27c6 Compare circular lists in 'equal' without error (bug#80456)
* src/lisp.h (FOR_EACH_TAIL_INTERNAL): Divvy up the code into...
(FOR_EACH_TAIL_BASIC, FOR_EACH_TAIL_STEP_CYCLEP): ...these macros,
so that they can be used in more flexible ways.
* src/fns.c (internal_equal_1): Detect circular lists and call...
(internal_equal_cycle): ...this function that keeps comparing
but now detecting cycles in the other argument.

* lisp/emacs-lisp/testcover.el (testcover-after):
Remove unnecessary error handling.
* test/src/fns-tests.el (test-cycle-equal): Adapt and extend.
* test/lisp/emacs-lisp/testcover-resources/testcases.el
(testcover-testcase-cyc1): Remove case that no longer applies.

* doc/lispref/objects.texi (Equality Predicates): Update.
* etc/NEWS: Announce.
2026-02-24 12:47:52 +01:00
Sean Whitton
75a0a073d7 Fix "End" key in PuTTY and older GNU screen
* lisp/term/xterm.el (xterm-alternatives-map): Map <select> to
<end> (bug#80473).
2026-02-24 10:48:50 +00:00
Sean Whitton
1197ccf993 ; pp-eval-expression: Restore binding deactivate-mark to nil.
See bug#80236.
2026-02-24 09:08:24 +00:00
Juri Linkov
f366c0e18f Revert "Unify tab-bar with window/frame times (bug#80465)"
This reverts commit e4b3fa4a00.
It breaks the recency order of multi-session tabs.
2026-02-24 09:09:12 +02:00
Stefan Monnier
4186f694b1 lisp/files.el (create-file-buffer): Remove left-over comment
It should have been removed as part of commit 1a724cc2d2.
2026-02-23 16:59:59 -05:00
Juri Linkov
ff4773ed02 Fix treesit-show-paren-data to match only 2 children nodes or more
* lisp/treesit.el (treesit-show-paren-data--categorize):
Ignore parent that has less than two children (bug#80475).
This ensures the distinct first and last node.
2026-02-23 20:34:15 +02:00
Stéphane Marks
e4b3fa4a00 Unify tab-bar with window/frame times (bug#80465)
Change 'float-time' to 'window-use-time'.  One step closer to
"recent" tab selection across all frames with unified pseudo
clocks.

* lisp/tab-bar.el (tab-bar--tab): Use 'window-use-time'.
(tab-bar--current-tab-make): Add time property.
2026-02-23 20:08:18 +02:00
Spencer Baugh
54411ad169 Use an idle timer for completion-eager-update
Like how completion-eager-display uses an idle timer, also use
one for completion-eager-update, and in fact unify the idle
timers to just one to avoid unnecessary duplicate updates.

* lisp/minibuffer.el (completions--should-show-p): New function.
(completions--background-update, completion-help-at-point): Call
it.
(completions--background-update-timer)
(completions--start-background-update): Start an idle timer to
call background-update. (bug#80055)
(completions--start-eager-display, completions--after-change):
Call start-background-update.
2026-02-23 20:00:55 +02:00
Steven Allen
27af6bfdfb Fix arguments to project--buffer-check when reading a project buffer
* lisp/progmodes/project.el (project--read-project-buffer): Pass the
buffer object to `project--buffer-check', not the (BUF-NAME . BUF-OBJ)
cons.
2026-02-23 15:21:56 +00:00
Sean Whitton
0be64b2f25 ; * lisp/vc/vc.el (revision-published-p): Disambiguate (bug#80396). 2026-02-23 14:11:17 +00:00
Sean Whitton
40d43c7309 ; Fix another quotation mark. 2026-02-23 13:19:54 +00:00
Sean Whitton
303ca0a584 ; Fix quotation marks, remove unneeded scare quotes. 2026-02-23 13:19:34 +00:00
Sean Whitton
078b66bd67 ; Fix last change. 2026-02-23 13:14:49 +00:00
Jacob S. Gordon
69f3428e9d New prefix argument for pp-eval-expression
* lisp/emacs-lisp/pp.el (pp-eval-expression): New optional
argument INSERT-P.
* etc/NEWS: Announce change.
2026-02-23 13:11:19 +00:00
Paul Nelson
b1cfe11189 Fix VC Git error when patch matches staged changes
* lisp/vc/vc-git.el (vc-git--checkin): Check that patch-string
is not empty before applying it.  This prevents an error when
the patch exactly matches the index (bug#80228).
* test/lisp/vc/vc-git-tests.el
(vc-git-test-checkin-patch-staged-diff): New test.
2026-02-23 12:52:01 +00:00
Stéphane Marks
6829fb9941 ; cus-start.el add after-delete-frame-select-mru-frame (bug#80397)
* lisp/cus-start.el: Add 'after-delete-frame-select-mru-frame'.
2026-02-23 09:56:35 +01:00
Collin Funk
29440eedac Add SHA-3 support to secure-hash
* admin/merge-gnulib (GNULIB_MODULES): Add crypto/sha3-buffer.
* lib/sha3.c: New file, imported by running admin/merge-gnulib.
* lib/sha3.h: Likewise.
* m4/sha3.m4: Likewise.
* lib/gnulib.mk.in: Updated by admin/merge-gnulib.
* m4/gnulib-comp.m4: Likewise.
* src/fns.c: Include sha3.h
(Fsecure_hash_algorithms): Add Qsha3_224, Qsha3_256, Qsha3_384, and
Qsha3_512.
(secure_hash): Likewise.
(Fsecure_hash): List the SHA-3 algorithms in the docstring.
(syms_of_fns): Define Qsha3_224, Qsha3_256, Qsha3_384, and Qsha3_512.
* test/lisp/net/gnutls-tests.el (gnutls-tests-internal-macs-upcased):
Filter out the new SHA-3 algorithms since they are currently not
implemented in gnutls.
* test/src/fns-tests.el (test-secure-hash): Add test cases for the new
algorithms.
* doc/lispref/text.texi (Checksum/Hash): List the SHA-3 algorithms.
Mention that they are considered secure.
* etc/NEWS: Mention the new feature.
2026-02-23 00:22:17 -08:00
Paul Eggert
ccaa4a07f0 Update from Gnulib by running admin/merge-gnulib 2026-02-23 00:22:17 -08:00
Matthias Meulien
94e4caca60 ; * lisp/speedbar.el (speedbar-frame-or-window): Quote arg (bug#80392). 2026-02-22 16:38:38 -08:00
Stefan Monnier
3a2a095dff Fix broken FOO-mode-indent-offset convention
Variable names to control indentation have never been
standardized, but over the years some conventions have naturally
arisen, mostly the use of `FOO-indent-offset`,
`FOO-basic-offset`, or `FOO-indent-level` for `FOO-mode`.

When the new TS modes were introduced, a mistake was made that
I failed to catch at the time, where those modes used
`FOO-mode-indent-offset` instead of the "standard" `FOO-indent-offset`.
In order to save packages like `editorconfig-mode` and `indent-bars-mode`
from having to cater to yet-another-convention, rename those
vars to what they should have been all along.

* lisp/editorconfig.el (editorconfig-indentation-alist): Remove the
ad-hoc entries for the deviating modes using `FOO-mode-indent-offset`.

* lisp/textmodes/toml-ts-mode.el (toml-ts-indent-offset):
* lisp/textmodes/mhtml-ts-mode.el (mhtml-ts-js-css-indent-offset)
(mhtml-ts--js-css-indent-offset):
* lisp/textmodes/html-ts-mode.el (html-ts-indent-offset):
* lisp/progmodes/typescript-ts-mode.el (typescript-ts-indent-offset):
* lisp/progmodes/php-ts-mode.el (php-ts-indent-offset)
(php-ts-js-css-indent-offset, php-ts-html-indent-offset):
* lisp/progmodes/json-ts-mode.el (json-ts-indent-offset):
* lisp/progmodes/java-ts-mode.el (java-ts-indent-offset)
(java-ts-method-chaining-indent-offset):
* lisp/progmodes/go-ts-mode.el (go-ts-indent-offset):
* lisp/progmodes/csharp-mode.el (csharp-ts-indent-offset):
* lisp/progmodes/cmake-ts-mode.el (cmake-ts-indent-offset):
* lisp/progmodes/c-ts-mode.el (c-ts-indent-offset):
Rename `FOO-mode-indent-offset` to `FOO-indent-offset`,
with obsolete alias.
2026-02-22 18:48:57 -05:00
Basil L. Contovounesios
d01a33662c Improve m4-mode font lock
Emacs 28 started fontifying several 'composite' (non-builtin) GNU M4
macros which, while listed under '(m4) Macro index', are not defined
by GNU M4, and are included in its manual for illustrative purposes.

These macro keywords range from clearly misleading (e.g., 'example',
which the GNU M4 manual explicitly describes as nonexistent),
to common in Autoconf's M4sugar layer (e.g., 'm4_quote'),
to variations thereof (e.g., 'foreachq').

It is arguably too late to revert all of these additions, so this
patch selects a handful to remove, and categorizes the rest; this
should make it easier to hide some categories behind a font lock
level or user option in the future, if desired.

This patch reverts the Emacs 28 addition of 'example', and removes
the older 'file', 'line', and 'gnu' macros.  GNU M4 renamed 'gnu' to
'__gnu__' already in 1990; and I couldn't find references to the
other two which exist as '__file__' and '__line__', respectively.

The remaining macros are partitioned into three sets: built-in,
M4sugar-like, and other (bug#80412).  For discussion, see also:
https://lists.gnu.org/r/emacs-devel/2025-10/msg00357.html

* lisp/progmodes/m4-mode.el (m4-program-options): Remove stale
commentary.
(m4--macro-list): Remove, replacing with...
(m4--builtin, m4--autoconf, m4--composite): ...these new rx
definitions.  All uses changed.  Remove 'example', 'file', 'gnu',
and 'line' as keywords.
(m4-font-lock-keywords): For consistency with real #-comments,
fontify dnl macro with font-lock-comment-delimiter-face, and only
the rest of its line with font-lock-comment-face.  Fontify argument
references with font-lock-variable-use-face rather than
font-lock-variable-name-face.  Use font lock faces rather than their
eponymous but obsolete variables.  Remove redundant entries for $@
and $*.  Prefer shy regexp groups where applicable.
(m4-mode-syntax-table): Quote syntactically special characters.
(m4-m4-buffer): DRY using m4-m4-region.
(m4-m4-region): Take region bounds as optional arguments, as
recommended under '(elisp) The Mark'.  Quote shell command.
Support non-contiguous regions.
(m4-current-defun-name): Recognize m4 backtick in addition to
Autoconf bracket.  Prefer shy regexp groups where applicable.
(m4-mode): Simplify font-lock-defaults.

* test/lisp/progmodes/m4-mode-resources/font-lock.m4:
* test/lisp/progmodes/m4-mode-tests.el: New test files.
2026-02-22 17:10:17 +01:00
Basil L. Contovounesios
c8f7e909da Fix apropos-print window selection
The call to get-buffer-window doesn't take into account other
frames, and in theory may even return a window other than the one
just displayed.  Work around this by buffer-locally mapping the
buffer to the window used by with-output-to-temp-buffer (bug#46034).

* lisp/apropos.el (apropos--window): New buffer-local variable.
(apropos--set-window): New hook function.
(apropos-print): Add it to the local temp-buffer-show-hook before
the end of with-output-to-temp-buffer.  Check apropos--window first,
falling back on a get-buffer-window across visible frames.
2026-02-22 17:02:34 +01:00
Michael Albinus
e34b6caf13 ; * test/infra/test-jobs.yml: Regenerate. 2026-02-22 16:30:47 +01:00
Michael Albinus
195d2f7a74 * src/dbusbind.c: Include fcntl.h if needed. (Bug#80373) 2026-02-22 16:30:19 +01:00
Michael Albinus
b7c5f39fd1 Fix use of older OpenSSH version in Tramp
* lisp/net/tramp-sh.el (tramp-methods) <scp, scpx, rsync, ssh, sshx>:
Adapt `tramp-login-args' argument.  (Bug#80464)
(tramp-ssh-setenv-term): New defvar.
(tramp-ssh-setenv-term): New defun.
(tramp-do-copy-or-rename-file-out-of-band)
(tramp-maybe-open-connection): Use it.

* lisp/net/tramp.el (tramp-methods, tramp-signal-hook-function):
Extend docstring.
2026-02-22 16:30:02 +01:00
Eli Zaretskii
44e326b602 ; Fix last change. 2026-02-22 16:23:15 +02:00
Liu Hui
e6350bb179 Support displaying more months in the calendar
* lisp/calendar/calendar.el (calendar-month-edges): Fix typo.
(calendar-total-months): New variable.
(calendar-get-month-range, calendar-get-date-range)
(calendar--month-overlap-p, calendar-month-visible-p)
(calendar-nongregorian-date-visible-p): New functions.
(calendar-nongregorian-visible-p): Declare obsolete.
(calendar-recompute-layout-variables, calendar-generate):
Replace fixed month numbers with 'calendar-total-months'.
(calendar-cursor-to-date, calendar-date-is-visible-p): Support
the calendar with more than three months.
(calendar-mode): Make some variables buffer-local to allow
calendar-mode buffers showing different number of months.
(calendar-mode-map): Use new command names.

* lisp/calendar/cal-move.el (calendar-goto-today): Always move
the cursor to today's date.
(calendar--show-month-at-edge): New function.
(calendar-recenter, calendar-forward-day): Support the calendar
with more than three months.
(calendar-forward-month, calendar-end-of-month)
(calendar-beginning-of-year, calendar-end-of-year): Place the
new month at the edge instead of the second month segment, to
prevent the cursor from jumping back and forth.  This is
consistent with the behavior of calendar-forward-day/week.
(calendar-scroll-left): Maintain the relative position of the
cursor with respect to the window, when the old date is out of
view.
(calendar-scroll-left-three-months)
(calendar-scroll-right-three-months): Replace the fixed month
number with the actual number of months.  Rename ...
(calendar-scroll-calendar-left, calendar-scroll-calendar-right):
... to new commands.  Make old names as aliases and mark them
obsolete.
(calendar-show-more-months, calendar-show-fewer-months): New
commands.

* lisp/calendar/cal-menu.el (cal-menu-holiday-window-suffix):
Use the actual date range instead of three months.
(cal-menu-scroll-menu, cal-menu-global-mouse-menu): Use new
command names and update description.

* lisp/calendar/holidays.el (holidays, list-holidays)
(calendar-check-holidays, holiday-in-range): Use
calendar-total-months.
(calendar-list-holidays, holiday-fixed, holiday-float)
(holiday-sexp): Replace displayed-year/month with the actual
calendar range.
(holiday-after, holiday-easter-etc-abs)
(holiday-greek-orthodox-easter-abs): New functions.
(holiday-advent, holiday-easter-etc)
(holiday-greek-orthodox-easter): Look up holidays in all visible
years instead of current displayed-year.

* lisp/calendar/solar.el (solar-equinoxes-solstices): Search
equinoxes and solstices in all visible months.
(solar-equinoxes-solstices-1): New function.

* lisp/calendar/lunar.el (lunar-phase-list): Add optional
argument.
(calendar-lunar-phases): Use visible calendar range.

* lisp/calendar/cal-china.el (holiday-chinese-new-year)
(holiday-chinese-winter-solstice, holiday-chinese-qingming)
(holiday-chinese): Replace displayed-year/month with the actual
calendar range, and look up holidays in all visible years.

* lisp/calendar/cal-julian.el (holiday-julian): Use
calendar-nongregorian-date-visible-p because there may exist
more than one corresponding dates when the calendar shows more
months.

* lisp/calendar/cal-bahai.el (holiday-bahai): Support calendar
with more than three months.
(holiday-bahai-new-year, holiday-bahai-twin-holy-birthdays):
Look up holidays in all visible years.
(holiday-bahai-new-year-1, holiday-bahai-twin-holy-birthdays-1):
New functions.

* lisp/calendar/cal-hebrew.el (calendar-hebrew-date-is-visible-p)
(holiday-hebrew, calendar-hebrew-mark-date-pattern): Support
calendar with more than three months, in which more than one
holidays may exist.
(holiday-hebrew-rosh-hashanah-1, holiday-hebrew-hanukkah-1)
(holiday-hebrew-passover-1): New functions.
(holiday-hebrew-rosh-hashanah, holiday-hebrew-hanukkah)
(holiday-hebrew-passover, holiday-hebrew-tisha-b-av): Look up
holidays in all visible years.

* lisp/calendar/cal-islam.el (holiday-islamic): Support calendar
with more than three months.
(holiday-islamic-new-year): Find holidays in all visible years.

* lisp/calendar/diary-lib.el (diary-mark-sexp-entries)
(calendar-mark-days-named, calendar-mark-date-pattern)
(calendar-mark-complex): Use the displayed range instead of the
three-month range.
(calendar-mark-1): Fix marking dates in calendar with more than
three months.

* test/lisp/calendar/holidays-tests.el
(holidays-test-holiday-easter-etc, holidays-test--get-holidays)
(holidays-test-more-months): New test file.

* doc/emacs/calendar.texi: Mention new commands and update
related description.
* etc/NEWS: Announce new commands.  (bug#80099)
2026-02-22 16:21:13 +02:00