Commit graph

5446 commits

Author SHA1 Message Date
Juri Linkov
2bec93b5f4 * test/lisp/emacs-lisp/map-ynp-tests.el: Silence backtrace.
(test-map-ynp-kmacro): Ignore 'backtrace-print' that prints
unrequested backtrace (bug#67836).
2025-11-04 19:23:55 +02:00
Mattias Engdegård
d123ac1400 Don't assume that literal constants are eq-unique in tests
* test/lisp/emacs-lisp/cl-lib-tests.el (cl-test-ldiff):
* test/lisp/emacs-lisp/seq-tests.el (test-seq-union):
These tests relied on literal constants being unique in the sense of
'eq', and would fail if they stop being that (already the case for
strings).
2025-11-03 10:14:55 +01:00
F. Jason Park
f591d1c027 ; Skip erc-keep-place-indicator test on Emacs 27
* test/lisp/erc/erc-scenarios-base-reuse-buffers.el
(erc-scenarios-common--base-reuse-buffers-channel-buffers): Extend some
timeouts.
* test/lisp/erc/erc-scenarios-keep-place-indicator.el
(erc-scenarios-keep-place-indicator--follow): Prefer `ert-skip' here
instead of an :unstable tag because ERC's tests can run locally on some
systems with "SELECTOR=t".
2025-11-02 20:25:27 -08:00
Spencer Baugh
fbb7eb5686 * test/lisp/emacs-lisp/map-ynp-tests.el: New file (bug#67836). 2025-11-01 20:40:20 +02:00
Juri Linkov
2447188a69 'map-y-or-n-p' now uses the minibuffer to read a char (bug#79664)
* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Use the 'read-key'
branch only when the variable 'y-or-n-p-use-read-key' is non-nil.
Add a new cond-branch to read from the minibuffer.
Add a special case when def is nil in a kmacro in batch mode (bug#67836).

* test/lisp/files-tests.el (files-tests--with-buffer-offer-save):
Let-bind 'y-or-n-p-use-read-key' to t.
2025-11-01 20:27:45 +02:00
Juri Linkov
ab4a616b0b 'read-multiple-choice' now uses the minibuffer to read a char (bug#79664)
* doc/lispref/commands.texi (Reading One Event): Mention
'read-char-choice-use-read-key'.

* lisp/emacs-lisp/rmc.el (rmc--show-help): Show non-selected
resized Help window at bottom.  Inhibit useless message.
Remove unnecessary call to 'pop-to-buffer'.
(read-multiple-choice): Call 'read-multiple-choice--from-minibuffer'
when 'read-char-choice-use-read-key' is nil.
(read-multiple-choice--from-minibuffer): New function.

* test/lisp/emacs-lisp/rmc-tests.el (test-rmc--with-minibuffer-setup):
New macro.
(test-read-multiple-choice, test-read-multiple-choice-help):
Test both values of 'read-char-choice-use-read-key'.
2025-11-01 20:21:09 +02:00
David Ponce
13ec843352 cl-extra.el: Use the new API to speed up dispatch on derived types
* lisp/emacs-lisp/cl-extra.el (cl--types-of-memo): Delete var.
(cl--derived-type-specializers-memo): New var.
(cl-types-of): Delete function.
(cl--derived-type-specializers): New function.
(cl--derived-type-dispatch-list): Delete var.
(cl--derived-type-generalizer): Use the `:need-specializers` API instead.
(cl--derived-type-generalizers): Don't fill
`cl--derived-type-dispatch-list` any more.

* lisp/emacs-lisp/cl-preloaded.el (cl--derived-type-list): Delete var.
(cl--define-derived-type): Don't add type to `cl--derived-type-list`.

* test/lisp/emacs-lisp/cl-extra-tests.el (cl-types-test): Adjust.
2025-10-31 13:49:14 -04:00
Spencer Baugh
97d2a659e8 Optimize PCM regex to not contain adjacent wildcards
When multiple wildcards occur in a PCM pattern,
completion-pcm--pattern->regex previously would generate one
instance of [^z-a]* for each of those wildcards, even if the
wildcards were adjacent and could therefore be matched by a
single [^z-a]*.  This can make regex matching performance much
worse.  For example, with a minibuffer containing "*/" with
point at the start, completion-pcm-all-completions would take
several seconds to match in project-find-file in the Emacs repo.

Now, we run completion-pcm--pattern->segments on the pattern
first, which adds additional structure to the pattern, including
consolidating adjacent regexes into a single sublist.  Then
completion-pcm--segments->regex generates a single regex
wildcard for each of those pattern wildcards.  As a consequence,
we need to update the callers of completion-pcm--pattern->regex
which pass non-nil GROUP.  This provides a substantial
performance improvement in various edge cases.

* lisp/minibuffer.el (completion-pcm--pattern->segments)
(completion-pcm--segments->regex): Add.  (bug#79693)
(completion-pcm--pattern->regex)
(completion-pcm--merge-completions): Call pattern->segments and
segments->regex.
(completion-pcm--pattern-point-idx): Delete.
(completion-pcm--segments-point-idx): Add.
(completion-pcm--hilit-commonality): Call
completion-pcm--segments-point-idx to find the submatch
containing point.
* test/lisp/minibuffer-tests.el (completion-pcm-test-5): Add
more tests of highlighting the first difference.
(completion-pcm-test-pattern->regex): Add tests showing the
regex form of PCM patterns.
2025-10-30 19:24:51 +02:00
Eshel Yaron
330aa07f00
; elisp-scope.el: Improve face specification handling.
Replace the use of 'elisp-scope-face(-1)' for analyzing face
specifications with 'elisp-scope-1' calls with an
appropriate OUTSPEC argument.  This allows us to analyze
face specifications even when they are not passed directly
to relevant functions, but rather appear in a tail position
of a form that evaluates to a face specification.

* lisp/emacs-lisp/elisp-scope.el
(elisp-scope--match-spec-to-arg): Add new 'face' spec.
Use it instead of...
(elisp-scope-face, elisp-scope-face-1): ...these functions.
Remove them, no longer used.

* test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el:
Add test.
2025-10-29 17:20:03 +01:00
Eshel Yaron
b9aa420bc4
; elisp-scope.el: Simplify 'custom-declare-face' analyzer. 2025-10-29 16:32:14 +01:00
Michael Albinus
8c7b4391a5 Adapt `tramp-test49-external-backend-function'
* test/lisp/net/tramp-tests.el (tramp-test49-external-backend-function):
Extend test.
2025-10-29 09:19:58 +01:00
F. Jason Park
44cdb65cf3 Fix regression involving erc-channel-user accessors
* etc/ERC-NEWS: New section for ERC 5.6.2 and new entry mentioning
slight change in `erc-channel-user' accessor behavior.
* lisp/erc/erc-common.el (erc-channel-user): Change type for status slot
to natnum from integer.
* lisp/erc/erc.el (erc-channel-user-signal-if-status-unknown): New
variable.
(erc--define-channel-user-status-compat-getter): Only use fallback in
Non-ERC buffers because "obviously" a status flag is unusable if the
server doesn't advertise it or, rather, advertises nonsupport via its
absence.  This regression was introduced in ERC 5.6.
(erc-channel-begin-receiving-names): Sharp-quote function name.
(erc--get-prefix-flag): Mention in doc that a return value of nil can
also mean the status flag is not supported by the server.
* test/lisp/erc/erc-tests.el (erc--parsed-prefix): Show that it returns
nil in a non-ERC buffer.
(erc-tests--make-combinations)
(erc-tests--with-channel-user-status-accessors): New functions.
(erc-channel-user/status-accessors/solo/default)
(erc-channel-user/status-accessors/solo/ov)
(erc-channel-user/status-accessors/multi/default)
(erc-channel-user/status-accessors/multi/ov): New tests.
(Bug#67220)
2025-10-27 19:29:44 -07:00
Stephen Gildea
953d1db6ba time-stamp-format-* tests: reduce repetitiveness
* test/lisp/time-stamp-tests.el (time-stamp-test): New macro.
Use it to coalesce the repetitive lines of the various
time-stamp-format-* tests, reducing the line count of the
time-stamp-string formatting tests by 30%.
2025-10-22 21:18:38 -07:00
F. Jason Park
7aef4db23d ; Prefer EMACS_EMBA_CI for selecting ERC tests
* test/lisp/erc/erc-scenarios-keep-place-indicator.el
(erc-scenarios-keep-place-indicator--follow):
* test/lisp/erc/erc-stamp-tests.el (erc-echo-timestamp):
* test/lisp/erc/erc-tests.el (erc--channel-modes): Use "EMACS_EMBA_CI"
for EMBA-specific test selection instead of "CI", which is a Gitlab
"predefined" variable absent from .job-template's Docker subprocess.
2025-10-22 19:20:27 -07:00
F. Jason Park
61f4d97a0b ; Remove unwanted noise from ERC test output
Omit newlines and other stray chars, such as "^G", from log output when
running tests for ERC non-interactively.

* test/lisp/erc/erc-match-tests.el (erc-add-entry-to-list, erc-pals)
(erc-fools, erc-keywords, erc-dangerous-hosts): Make `inhibit-message'
non-nil when `noninteractive'.
* test/lisp/erc/erc-sasl-tests.el (erc-sasl--read-password--basic): Make
`inhibit-message' non-nil when `noninteractive'.
* test/lisp/erc/erc-scenarios-base-buffer-display.el
(erc-scenarios-base-buffer-display--interactive-default): Make
`inhibit-message' non-nil when `noninteractive'.
* test/lisp/erc/erc-scenarios-services-misc.el
(erc-scenarios-services-prompt): Make `inhibit-message' non-nil when
`noninteractive'.
* test/lisp/erc/erc-services-tests.el (erc-nickserv-get-password): Make
`inhibit-message' non-nil when `noninteractive'.
* test/lisp/erc/erc-stamp-tests.el (erc-timestamp-intangible--left):
Make `inhibit-message' non-nil when `noninteractive'.
* test/lisp/erc/erc-tests.el (erc-cmd-UNIGNORE, erc-hide-prompt)
(erc--check-prompt-input-for-excess-lines, erc-select-read-args, erc-tls)
(erc--interactive, erc-server-select): Make `inhibit-message' non-nil
when `noninteractive'.
(erc--modify-local-map): Inhibit call to `ding' because it inserts an 07
char, which shows up in the test result logs.
2025-10-21 18:21:46 -07:00
Stefan Monnier
38c32ed3ea (easy-mmode--less-selective-first): Enable test
*  test/lisp/emacs-lisp/easy-mmode-tests.el
(easy-mmode--less-selective-first): Enable test since it now succeeds.
2025-10-21 15:37:38 -04:00
Eshel Yaron
9f35d1653f
; elisp-scope.el: Fix error during widget args analysis
* lisp/emacs-lisp/elisp-scope.el (elisp-scope--match-spec-to-arg):
Simplify and fix handling of empty list.

* test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el:
Add test.
2025-10-21 16:18:24 +02:00
Eshel Yaron
bb54174c21
; Fix semantic highlighting in presence of shorthands
So far, 'scope-elisp-analyze-form' would disable
'read-symbol-shorthands' while reading a source form in
order to obtain the "original" length of symbols and pass
that length to the callback called for each analyzed symbol.
However, 'scope-elisp-analyze-form' could report an
incorrect length when a symbol was written with redundant
escaping (e.g. 'f\oo').  Moreover, disabling
'read-symbol-shorthands' breaks macro-expansion during
analysis, because macros may expect "expanded" symbols,
without shorthands.

In this commit we address these issues by leaving
'scope-elisp-analyze-form' enabled (so we get expended
symbols for macro-expansion) and recovering the original
length lazily in the callback, if needed, by going to the
beginning of the symbol and searching forward for its end.

* lisp/emacs-lisp/elisp-scope.el (elisp-scope--report):
Replace LEN argument with SYM, the analyzed symbol itself.
Adapt all callers.
(elisp-scope-analyze-form): Cease let-binding
'read-symbol-shorthands' to nil while reading.  Wrap
analysis in 'save-excursion' when reading from current
buffer.  Update docstring.
* lisp/progmodes/elisp-mode.el (elisp-local-references)
(elisp-fontify-symbol): Obtain symbol length from buffer.

* test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el:
Add test that incorporates 'read-symbol-shorthands'.
* test/lisp/progmodes/elisp-mode-tests.el (elisp-test-font-lock):
Set up 'read-symbol-shorthands' in test file.
2025-10-21 16:12:11 +02:00
Mattias Engdegård
eed2fce541 Disable one tab-bar-test case on macOS
The test works when run interactively and in batch mode started from
a terminal, but not from M-x compile.

* test/lisp/tab-bar-tests.el (tab-bar-tests-quit-restore-window):
Disable on macOS when TERM=dumb.
2025-10-21 13:19:07 +02:00
Mattias Engdegård
e443811bd7 ; * test/lisp/vc/vc-tests/vc-tests.el: use write-region, again 2025-10-20 16:25:55 +02:00
Sean Whitton
095956a745 vc-test--with-temp-change: Use write-region
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--with-temp-change):
Use write-region (bug#79657).
2025-10-20 15:16:05 +01:00
Michael Albinus
fb48f6016e Revert "* test/lisp/net/tramp-resources/foo.tar.gz: Remove."
This reverts commit e5cd797988.
2025-10-20 14:58:38 +02:00
Michael Albinus
e5cd797988 * test/lisp/net/tramp-resources/foo.tar.gz: Remove. 2025-10-20 14:43:04 +02:00
Michael Albinus
c024b9c661 Tramp cleanup
* doc/misc/tramp.texi (Configuration): Extend example.

* lisp/net/tramp.el (tramp-skeleton-write-region):
* lisp/net/tramp-cache.el (tramp-flush-file-upper-properties):
* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory):
Use `when-let*'	consequently.

* lisp/net/tramp-cmds.el (tramp-file-name-with-method):
Add :initialize and :set functions.
(tramp-set-file-name-with-method): New defun.
(with-tramp-file-name-with-method): Filter out enabled methods.

* lisp/net/tramp-compat.el: Add TODO.

* test/lisp/net/tramp-archive-tests.el
(tramp-archive-test-cascaded-file-archive): Use "foo.zip".

* test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case-p):
Extend check.
(tramp-test48-session-timeout): Adapt test.

* test/lisp/net/tramp-archive-resources/foo.zip: Renamed from outer.zip.
2025-10-20 14:42:12 +02:00
Mattias Engdegård
d1b3eb7eec Add any and all (bug#79611)
* lisp/subr.el (all, any): New.
* test/lisp/subr-tests.el (subr-all, subr-any): New tests.
* doc/lispref/lists.texi (List Elements): Document.
* etc/NEWS: Announce.
2025-10-20 11:39:16 +02:00
Mattias Engdegård
cfe3c1c840 Add drop-while and take-while (bug#79611)
* lisp/subr.el (internal--effect-free-fun-arg-p)
(drop-while, take-while): New.
* test/lisp/subr-tests.el (subr-drop-while, subr-take-while): New tests.
* doc/lispref/lists.texi (List Elements): Document.
* etc/NEWS: Announce.
2025-10-20 11:38:42 +02:00
Sean Whitton
b0012cb8e1 vc-rename-file: Make it work regardless of default-directory
* lisp/vc/vc.el (vc-rename-file): Make it work regardless of
default-directory; now the only influence of default-directory
should be resolving OLD and NEW if they are relative file names.
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-file): Test
the influence of default-directory on vc-rename-file.
2025-10-19 15:39:22 +01:00
Mattias Engdegård
8ed5b4378a ; ispell-tests-common.el: tidy file-matching regexp 2025-10-19 14:09:22 +02:00
Lockywolf
2ae535c90b Fix ispell-tests on emacs CI
* test/lisp/textmodes/ispell-resources/fake-aspell-new.bash
Error with a broken dictionary.

* test/lisp/textmodes/ispell-tests/ispell-tests-common.el
(ispell-tests--constants/nonexistent-dictionary): Add.
(ispell-tests--some-valid-dictionary): Give fallback dictionary.

* test/lisp/textmodes/ispell-tests/ispell-tests.el
(ispell/ispell-accept-buffer-local-defs/received-file): Use
proper broken dictionary.
2025-10-19 12:14:58 +02:00
Stefan Monnier
4ec24ce2a1 (eval-and-compile): Preserve the surrounding lexical context
Implement a better fix for bug#79634.

* lisp/emacs-lisp/byte-run.el (eval-and-compile):
* lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment)
<eval-and-compile>: Preserve the surrounding lexical context (the part
available during macroexpansion, i.e. which vars are dynbound).

* lisp/emacs-lisp/rx.el (<pcase> rx): Remove workaround.

* test/lisp/emacs-lisp/macroexp-tests.el
(macroexp--dynbound-eval-and-compile): New test.
2025-10-18 17:45:07 -04:00
Lockywolf
1f3d417736 Fix detecting a working hunspell on systems without a dictionary
Fixes bug#79477 and bug#79514

* test/lisp/textmodes/ispell-tests/ispell-hunspell-tests.el
(ispell-tests-hunspell--hunspell-working): Implement checker.
(ispell/hunspell/ispell-word/russian/check-only): Add skip-check.
(ispell/hunspell/ispell-word/english/check-only): Add skip-check.
(ispell/hunspell/ispell-word/language-switch/check-only): Add
skip-check.
(ispell/hunspell/ispell-word/russian/check-only/wrong-language): Add
skip-check.
(ispell/hunspell/ispell-word/multilang): Add skip-check.
* test/lisp/textmodes/ispell-tests/ispell-tests-common.el
(fake-aspell-path): Improve checking that an engine works.
(ispell-tests--letopt): Make restoring variables more robust,
rename to a local name.  Add debug spec.
(ispell-tests--with-ispell-global-dictionary): Rename to a local name
Add debug spec.
(ispell-tests--some-valid-dictionary): Add a selector for a safe
dictionary.
(ispell/ispell-accept-buffer-local-defs/received-file): Add.
(ispell-tests--constants/english/correct-list): Add.
(ispell-tests--constants/english/correct-one): Add.
(ispell-tests--constants/english/wrong): Add.
(ispell-tests--constants/russian/correct): Add.
(ispell-tests--constants/russian/wrong): Add.
(ispell-tests--constants/completion): Add.
* test/lisp/textmodes/ispell-tests/ispell-tests.el
(ispell/ispell-buffer-local-words/ispell-buffer-session-localwords):
reverse letopt and with-ispell-dictionary.
(ispell/ispell-buffer-local-words/ispell-words-keyword):
reverse letopt and with-ispell-dictionary.
(ispell/ispell-complete-word-interior-frag/simple):
reverse letopt and with-ispell-dictionary.
(ispell/ispell-complete-word/ispell-completion-at-point):
reverse letopt and with-ispell-dictionary.
(ispell/ispell-init-process/works-with-home):
reverse letopt and with-ispell-dictionary.
(ispell/ispell-kill-ispell):
reverse letopt and with-ispell-dictionary.
* test/lisp/textmodes/ispell-resources/fake-aspell-new.bash:
Add comments on unused function.  Replace echo with printf.
2025-10-18 13:59:07 +03:00
Spencer Baugh
17ac50ea9e Return case common to all completions in try-completion
When completion-ignore-case is non-nil, if all completions share
a common prefix ignoring case, try-completion has always
returned that.  Now, if all completions also share a common
prefix including case, try-completion includes that common
prefix in its return value (bug#79377).

* lisp/minibuffer.el (completion-pcm--merge-completions): Always
use return value from try-completion, which may change case.
* src/minibuf.c (Ftry_completion): Return the common prefix
which changes case.
* test/lisp/minibuffer-tests.el (completion-pcm-bug4219)
(completion-substring-test-5): New tests.
2025-10-16 20:18:23 +03:00
Stefan Monnier
b25d9d2081 (easy-mmode--less-selective-first): Uncomment the test
* test/lisp/emacs-lisp/easy-mmode-tests.el (easy-mmode--less-selective-first):
Mark it as failing, instead.
2025-10-15 14:36:04 -04:00
Sean Whitton
6cb7fa36ad New tests for multiple globalized minor modes
* test/lisp/emacs-lisp/easy-mmode-tests.el
(easy-mmode-test-mode): Mark permanent-local.
(easy-mmode--test-two-globalized-modes): New function.
(easy-mmode--more-selective-first)
(easy-mmode--less-selective-first): New tests.
2025-10-15 16:20:46 +01:00
Michael Albinus
53fa2b7218 Add support for su-rs and sudo-rs programs
* doc/misc/tramp.texi (Inline methods): Add "surs" and "sudors" methods.

* etc/NEWS: Add optional "surs" and "sudors" Tramp methods.
Presentational fixes and improvements.

* lisp/net/tramp-cmds.el (tramp-file-name-with-method): Add "surs"
and "sudors" to :type.  Adapt :version.

* lisp/net/tramp-sh.el (tramp-enable-surs-method)
(tramp-enable-sudors-method): New defuns
(tramp-sh-handle-expand-file-name): Add "surs" and "sudors" in check.

* lisp/net/tramp.el (tramp-methods): Adapt docstring.

* lisp/comint.el (comint-password-prompt-regexp):
* test/lisp/comint-tests.el (comint-testsuite-password-strings):
Add su-rs and sudo-rs password prompts.
2025-10-15 10:30:29 +02:00
Eshel Yaron
0816864231
Merge branch 'feature/elisp-fontify-semantically' 2025-10-12 17:12:48 +02:00
Eshel Yaron
8186705752
; elisp-scope.el: Improve widget-type handling.
Use argument specs to analyze complex widget types.

* lisp/emacs-lisp/elisp-scope.el (elisp-scope-widget-type)
(elisp-scope-widget-type-1)
(elisp-scope-widget-type-keyword-arguments)
(elisp-scope-widget-type-arguments)
(elisp-scope-widget-type-arguments-1): Delete, no longer used.
(custom-declare-variable, define-widget): Simplify analyzers.
(elisp-scope--match-spec-to-arg): Add new 'list', 'and', and
'plist-and-then' parametric specs, and add 'widget-type' as a
new recursive spec.

* test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el
Add test.
2025-10-12 17:02:11 +02:00
Eshel Yaron
73feb431b3
; elisp-mode.el: Improve consistency among face names.
Rename a couple of faces to solidify the convention that the
face name 'elisp-foo' implies "references to foo", not "foo
definitions".  For definitions we use 'elisp-deffoo' if foo is
only one word, or 'elisp-bar-baz-definition' otherwise.

* lisp/progmodes/elisp-mode.el (elisp-function-reference):
Rename to 'elisp-function'.
(elisp-macro-call): Rename to 'elisp-macro'.
(elisp-non-local-exit):
(elisp-unknown-call):
(elisp-special-form):
* lisp/emacs-lisp/elisp-scope.el:
* test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el:
Update references to renamed faces.
2025-10-12 10:33:58 +02:00
Michael Albinus
ba7e957926 Make cascaded archives working in tramp-archive.el work, again
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler):
Move bindings of `tramp-methods' and `tramp-gvfs-methods' up.
(tramp-archive-file-name-handler): Do not use
`tramp-archive-run-real-handler' for testing existence of
`archive'.  (Bug#79582)

* test/lisp/net/tramp-archive-tests.el
(tramp-archive-test-file-archive-hexlified): Move down.
(tramp-archive-test-cascaded-file-archive)
(tramp-archive-test-cascaded-archive, tramp-archive-test-cascaded):
New defvars.
(tramp-archive--test-deftest-cascaded): New defmacro.
(tramp-archive-test01-file-name-syntax)
(tramp-archive-test05-expand-file-name): Adapt tests.
(tramp-archive-test01-file-name-syntax-cascaded)
(tramp-archive-test05-expand-file-name-cascaded)
(tramp-archive-test06-directory-file-name-cascaded)
(tramp-archive-test07-file-exists-p-cascaded)
(tramp-archive-test08-file-local-copy-cascaded)
(tramp-archive-test09-insert-file-contents-cascaded)
(tramp-archive-test11-copy-file-cascaded)
(tramp-archive-test15-copy-directory-cascaded)
(tramp-archive-test16-directory-files-cascaded)
(tramp-archive-test17-insert-directory-cascaded)
(tramp-archive-test18-file-attributes-cascaded)
(tramp-archive-test19-directory-files-and-attributes-cascaded)
(tramp-archive-test20-file-modes-cascaded)
(tramp-archive-test21-file-links-cascaded)
(tramp-archive-test26-file-name-completion-cascaded)
(tramp-archive-test40-make-nearby-temp-file-cascaded)
(tramp-archive-test43-file-system-info-cascaded)
(tramp-archive-test44-user-group-ids-cascaded): New tests.

* test/lisp/net/tramp-archive-resources/outer.zip: New test file.
2025-10-11 14:37:04 +02:00
Eli Zaretskii
c723760f28 Merge from origin/emacs-30
1895ba3ba3 ; Document %i format
85db0ac0d6 ; * doc/lispref/nonascii.texi (Explicit Encoding): Fix a ...
c119a3600e ; * doc/lispref/tips.texi (Documentation Tips): Document ...

Also fix trailing whitespace in test files.
2025-10-11 06:02:56 -04:00
Eshel Yaron
e7df895c2e
; (elisp-scope-if-let): Fix case where bindings entry is a symbol
* lisp/emacs-lisp/elisp-scope.el (elisp-scope-if-let): Fix
handling of a plain symbol as one the bindings in an
'if-let*' form, as in (if-let* (foo) 'bar).

* test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el:
Test it.
2025-10-08 18:18:56 +02:00
Eshel Yaron
d1d06099d6
; Add semantic highlighting test with 'when-let*'
* test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el:
Add test form with 'when-let*'.
* test/lisp/progmodes/elisp-mode-tests.el (elisp-test-font-lock):
Trust temporary test buffer.
2025-10-08 00:06:00 +02:00
Michael Albinus
1df9cfdb13 Don't call dbus-launch in dbus-tests.el
* test/lisp/net/dbus-tests.el (dbus-test02-register-service-own-bus):
Adapt test.  Don't use dbus-launch, call dbus-daemon directly.
See <1117059@bugs.debian.org>.
See <https://lists.debian.org/debian-devel/2016/08/msg00554.html>.

* test/lisp/net/dbus-resources/session.conf.in: New file.  It is
copied from <https://salsa.debian.org/debian/flatpak/-/blob/debian/
trixie/tests/session.conf.in>.
2025-10-06 18:10:06 +02:00
Eshel Yaron
81c5399012
; Test semantic highlighting with 'cl-macrolet' and 'cl-flet' 2025-10-06 11:00:03 +02:00
Michael Albinus
a142cc262e Add fallback backend in auth-sources
* etc/NEWS: Describe effect of auth-sources being nil.

* lisp/auth-source.el (auth-sources): Add const nil.
(auth-source-ignored-keys): New defconst.
(auth-source-backends, auth-source-keys)
(auth-source-search-keys, auth-source-returned-keys)
(auth-source-search-spec): New macros.
(auth-source-file-name-p, auth-source-search)
(auth-source-specmatchp, auth-source-netrc-create)
(auth-source-secrets-search, auth-source-secrets-create)
(auth-source-macos-keychain-search)
(auth-source-plstore-search, auth-source-plstore-create): Use them
(auth-source-read-passwd-search, auth-source-read-passwd-create):
New defuns.

* test/lisp/auth-source-tests.el
(auth-source-backend-parse-plstore-string)
(auth-source-backend-parse-json-string)
(auth-source-backend-parse-fallback)
(auth-source-test-read-passwd-create-secret): New tests.
2025-10-05 17:14:59 +02:00
Sean Whitton
d3c4679acd VC: Use symbolic names for the working revision
* lisp/vc/vc-hg.el (vc-hg-diff): When OLDVERS is ".", behave the
same as if OLDVERS was the actual working revision.
(vc-hg-previous-revision): Return ".~1" for input ".", ".~3" for
input ".^^" et cetera.
Also, when passed non-symbolic revisions, use "REV~1" instead of
"REV^" for MS-Windows compatibility.
(vc-hg-working-revision-symbol):
* lisp/vc/vc-git.el (vc-git-working-revision-symbol):
* lisp/vc/vc-hooks.el (vc-symbolic-working-revision): New
functions.
(vc-default-mode-line-string):
* lisp/vc/ediff-vers.el (ediff-vc-merge-internal):
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--checkin-patch):
* lisp/vc/vc.el (vc-diff-build-argument-list-internal)
(vc-diff-outgoing, vc-revision-other-window, vc-default-revert):
Call vc-symbolic-working-revision.
(vc-buffer-revision): Specify that this should always be a
revision number/hash, not a symbolic name.
* lisp/vc/vc-git.el (vc-git-previous-revision): Return "HEAD~1"
for input "HEAD", "HEAD~3" for input "HEAD^^" et cetera.
2025-10-05 15:27:07 +01:00
Eshel Yaron
ef08bdcd6d
; Add another ELisp semantic highlighting test
* test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el:
Add test with code that uses 'cl-loop'.
2025-10-04 11:08:17 +02:00
Eshel Yaron
edec0b8ec5
; Add a couple of tests for ELisp semantic highlighting
* test/lisp/progmodes/elisp-mode-tests.el
(elisp-test-font-lock): New test.
* test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el:
New resource file.
2025-10-03 21:22:20 +02:00
Sean Whitton
c24e173c9c vc-add-working-tree: Finish by starting Dired
There won't be any uncommitted changes in the new working tree
yet, so vc-dir is unlikely to be useful.

* lisp/vc/vc.el (vc-add-working-tree): Finish by calling 'dired'
not 'vc-dir'.
* test/lisp/vc/vc-tests/vc-tests.el
(vc-test--other-working-trees): Delete stubbing out 'vc-dir'.
2025-10-01 11:26:18 +01:00
Sean Whitton
8453fd59d4 vc-test--checkin-patch: Use atomic change groups
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--with-temp-change):
New macro.
(vc-test--checkin-patch): Use it.
2025-09-30 16:15:44 +01:00