aboutsummaryrefslogtreecommitdiffstats
path: root/test/lisp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Fix `signal` calls where the data argument is not a listStefan Monnier28 hours1-1/+1
| | | | | | | | | | | * test/src/thread-tests.el (threads-join-error): * test/src/emacs-module-resources/mod-test.c (Fmod_test_signal): * src/print.c (print_bind_overrides): * lisp/url/url-future.el (url-future-finish, url-future-errored) (url-future-call, url-future-cancel): Make sure signal's data is a list. * test/src/emacs-module-tests.el (mod-test-non-local-exit-signal-test): Adjust accordingly.
* Revert "Repair serious breakage in the batch tests."Michael Albinus6 days71-512/+171
| | | | | | | | | | | | | | | | | | | | | | | This reverts commit feac53141577161c32a7a6dfe75399a5ae98a7c1. 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.
* Rename 'any' to 'member-if' and deprecate 'cl-member-if'Sean Whitton6 days1-1/+1
| | | | | | | | | | | | * 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.
* Revert "Rename 'any' to 'member-if' and deprecate 'cl-member-if'"Mattias Engdegård7 days1-1/+1
| | | | | | This reverts commit 2bdf15f6d8293b21234cd236f39ce68f62e1f6c3. There is no consensus for this change.
* Rename 'any' to 'member-if' and deprecate 'cl-member-if'Sean Whitton7 days1-1/+1
| | | | | | | | | | | | | | * 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.
* Add Rust panic message pattern (bug#80403)Jacek Świerk9 days1-1/+5
| | | | | | | | | | * 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
* Fix `diary-rrule' recurrence rule calculation (Bug#80460)Richard Lawrence12 days1-0/+28
| | | | | | | | | | | | | | | Thanks to TAKAHASHI Yoshio for reporting and for fixing one of the typos. In addition to the reported bug involving :include/:exclude, testing revealed that the provided RRULE COUNT clause was also not being handled correctly; this change also fixes that. * lisp/calendar/diary-icalendar.el (diary-rrule): Handle recurrence rules with a COUNT clause. * lisp/calendar/icalendar-recur.el (icalendar-recur-recurrences-in-interval): Fix a couple of typos that caused RDATE/EXDATE calculations to fail. * test/lisp/calendar/diary-icalendar-tests.el (diary-icalendar-test-rrule-bug-80460): New test for this bug.
* ; Fix esh-proc-tests on MS-WindowsEli Zaretskii12 days1-2/+10
| | | | | * test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill/process-id) (esh-proc-test/kill/process-object): Fix these tests on MS-Windows.
* Repair serious breakage in the batch tests.Eric S. Raymond12 days71-171/+512
| | | | | | | | | | | | | | 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".
* New function multiple-command-partition-argumentsSean Whitton13 days1-0/+22
| | | | | | | | | * 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.
* Fix eglot-tests on MacOS (bug#80479)Mattias Engdegård13 days1-1/+2
| | | | | | * 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.
* Compare circular lists in 'equal' without error (bug#80456)Mattias Engdegård14 days1-18/+0
| | | | | | | | | | | | | | | | | | * 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.
* Fix VC Git error when patch matches staged changesPaul Nelson2026-02-231-0/+13
| | | | | | | | * 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.
* Add SHA-3 support to secure-hashCollin Funk2026-02-231-1/+6
| | | | | | | | | | | | | | | | | | | | | | | * 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.
* Improve m4-mode font lockBasil L. Contovounesios2026-02-222-0/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Support displaying more months in the calendarLiu Hui2026-02-221-0/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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)
* Preserve the original order of Eshell aliases when loadingJim Porter2026-02-211-1/+27
| | | | | | | | | * lisp/eshell/em-alias.el (eshell-read-aliases-list): Reverse the alias list back to its original order at the end of loading. * test/lisp/eshell/em-alias-tests.el (em-alias-test/alias-load-preserves-order) (em-alias-test/alias-save-sorted): New tests.
* Sort Eshell aliases when adding new onesArto Jantunen2026-02-211-0/+9
| | | | | | | | | | | | | | | | The main point is to make the content of 'eshell-aliases-file' stable so that storing it in git becomes feasible. This also makes the output of the alias command come out in alphabetical order (bug#80401). * lisp/eshell/em-alias.el (eshell/alias): Sort when updating 'eshell-command-aliases-list'. * test/lisp/eshell/em-alias-tests.el (em-alias-test/alias-list-is-sorted): New test. * etc/NEWS: Announce this change.
* Make Rmail summary address display customizablePaul Nelson2026-02-211-0/+53
| | | | | | | | | | | | | | | | | | | | * lisp/mail/rmailsum.el (rmail-summary-sender-function) (rmail-summary-recipient-function, rmail-summary-address-width): New user options. (rmail-summary--address-display, rmail-summary-name-or-address) (rmail-summary-recipient-strip-quoted-names) (rmail-summary-recipient-names): New functions. (rmail-header-summary): Use them when formatting sender and recipient fields (bug#80406). * doc/emacs/rmail.texi (Rmail Make Summary): Document them. * test/lisp/mail/rmailsum-tests.el: New file. (rmailsum-tests-name-or-address-prefers-name) (rmailsum-tests-name-or-address-fallback-to-address) (rmailsum-tests-recipient-strip-quoted-names-first-line) (rmailsum-tests-recipient-names-folded) (rmailsum-tests-recipient-names-fallback-to-address): New tests.
* Use a custom Pdb class in the Python shellLiu Hui2026-02-211-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | The custom Pdb class enables native completion in pdb by wrapping the pdb's native completer. It also makes necessary function definitions like __PYTHON_EL_* available between pdb frames, and enables non-native completion/ffap/eldoc functionalities when debugging inside python modules. * lisp/progmodes/python.el (python-shell-send-setup-code): Fix the separator between python-shell-setup-codes. (python-shell-completion-native-setup): Move common completion setup code ... (python-shell-completion-setup-code): ... here. (python-shell-completion-at-point): Enable native completion for pdb and respect the delimiter of pdb completer. (python-shell-pdb-setup-code): New variable. (python-shell-comint-watch-for-first-prompt-output-filter): Send setup codes only once. (python-ffap-module-path, python-eldoc--get-doc-at-point): Stop sending setup code in every function call. * test/lisp/progmodes/python-tests.el (python-tests--pdb-1) (python-shell-pdb-1): New test. * etc/NEWS: Mention the change. (bug#80182)
* elisp-scope.el: Add variable value specificationsEshel Yaron2026-02-181-0/+5
| | | | | | | | | | | | | | | | | | | | | | | We add a symbol property 'elisp-scope-variable-spec', which holds a specification for the values of a variable with that property. For example, (put 'foo '(symbol . face)) says that the value of variable 'foo' is a face name. This allows elisp-scope.el to analyze forms such as (setq foo 'bar) and (let ((foo 'bar)) ...) more accurately. This is also used for analyzing macros that let-bind (one of) their arguments to a specific special variable, such as 'with-connection-local-application-variables'. We initially add this new property to some common variables. * lisp/emacs-lisp/elisp-scope.el: Add 'elisp-scope-variable-spec' property to 'coding-system-for-read/write' and 'major-mode'. (elisp-scope--variable-spec): New defsubst. (elisp-scope--let-1, elisp-scope-let*, elisp-scope-setq): Use it. * test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el: Add test form.
* Fix failing iCalendar tests when TZ=UTCRichard Lawrence2026-02-151-1/+2
| | | | | | | | | | | | * lisp/calendar/diary-icalendar.el (diary-icalendar--tz-is-utc-p): New function. (diary-icalendar-convert-time-via-strategy): Don't expect a VTIMEZONE for UTC times. (diary-icalendar-export-region): Don't generate a VTIMEZONE for 'local export strategy in UTC. * test/lisp/calendar/diary-icalendar-tests.el (diary-icalendar-test-entry-parser): Don't generate a VTIMEZONE for 'local export strategy in UTC.
* Prefer value< with new 'sort' in json.elBasil L. Contovounesios2026-02-141-1/+1
| | | | | | | | | | | | | Now that json.el uses the new sort calling convention, there's no need to prefer string< over value<, which may even run faster. Suggested by Mattias Engdegård <mattias.engdegard@gmail.com>. * lisp/json.el (json-encoding-object-sort-predicate): Mention value< in docstring. (json-pretty-print-buffer-ordered, json-pretty-print-ordered): Use value< in place of string<. * test/lisp/json-tests.el (test-json-encode-hash-table-sort): Use value< as json-encoding-object-sort-predicate in at least one test.
* Escape attribute values and string DOMs when inserting themVisuwesh2026-02-141-0/+15
| | | | | | | * lisp/net/shr.el (shr-dom-print): Escape these strings, as done in `dom-print', to prevent producing an erroneous XML document. * test/lisp/net/shr-tests.el (dom-print-escape): Add new test (Bug#80383).
* Rewrite flex completion with Gotoh algorithmJoão Távora2026-02-131-44/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The greedy regexp matching, broken scoring and broken highlight were sources of frequent complaints about the 'flex' matching style. This commit fixes that. Inspired by the 'hotfuzz' style (available at https://github.com/axelf4/hotfuzz) it uses a modified version of Gotoh's 1982 dynamic programming algorithm. It is strictly more correct than the "old" flex. For example, when matching the pattern 'goto' to no longer will 'eglot-format' be sorted before some hypothetical much better 'goobarbaz-goto'. And of course the highlighting is also correctly placed on the 'goto', not scattered across the candidate. Regarding performance, it is faster than the naive 'flex', primarily because of the Elisp rewrite in minibuffer.el. The matching and costing algorithm matters but is not the bottleneck. The Elisp parts of the style were almost completely decoupled from the pcm/substring styles in lisp/minibuffer.el. Only 'completion-flex-try-completion' uses some of pcm's code for pattern augmentation. * src/minibuf.c (completion--flex-cost-gotoh): New function. * lisp/minibuffer.el (completion-flex--pattern-str): New variable. (flex-score-match-tightness): Make obsolete. (completion--flex-all-completions-1): New helper function. (completion-flex-try-completion, completion-flex-all-completions): Rewrite. (completion-substring--all-completions): No longer take transform-pattern-fn. (completion--flex-adjust-metadata): Tweak. (completion--flex-score, completion--flex-score-1) (completion--flex-score-last-md, completion-flex--make-flex-pattern): Delete. * test/lisp/minibuffer-tests.el (completion--sorted-flex-completions): New helper function. (completion-flex-test-non-ascii): New test. (completion--pcm-score): Delete. (completion-pcm-test-3, completion-pcm-test-4) (completion-substring-test-1, completion-substring-test-2) (completion-flex-test-2, completion-flex-test-3): Tweak. * etc/NEWS: Describe change.
* Fix new eglot test failure due to project cacheDmitry Gutov2026-02-131-1/+2
| | | | | | | * test/lisp/progmodes/eglot-tests.el (eglot-test-project-wide-diagnostics-rust-analyzer): Bind project-vc-non-essential-cache-timeout to 0 so that the result of project-current is refreshed (bug#80387).
* Tramp signals 'remote-file-error' consequentlyMichael Albinus2026-02-122-22/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/misc/tramp.texi (External packages): Mention also special events. Emphasise, that Tramp raises remote-file-error. * etc/NEWS: Tramp signals 'remote-file-error' consequently. Presentational fixes and improvements. * lisp/net/tramp.el (tramp-skeleton-process-file) (tramp-handle-make-symbolic-link, tramp-process-actions) (tramp-wait-for-regexp, tramp-send-string): * lisp/net/tramp-adb.el (tramp-adb-get-device) (tramp-adb-send-command-and-check, tramp-adb-barf-unless-okay) (tramp-adb-wait-for-output, tramp-adb-maybe-open-connection): * lisp/net/tramp-archive.el (tramp-archive-handle-not-implemented): * lisp/net/tramp-crypt.el (tramp-crypt-do-encrypt-or-decrypt-file-name) (tramp-crypt-do-encrypt-or-decrypt-file): * lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-event-error) (tramp-gvfs-maybe-open-connection): * lisp/net/tramp-sh.el (tramp-do-directory-files-and-attributes-with-perl) (tramp-do-copy-or-rename-file-directly) (tramp-do-copy-or-rename-file-out-of-band) (tramp-sh-handle-file-local-copy, tramp-sh-handle-write-region) (tramp-bundle-read-file-names, tramp-maybe-send-script) (tramp-find-file-exists-command, tramp-barf-if-no-shell-prompt) (tramp-maybe-open-connection, tramp-wait-for-output) (tramp-send-command-and-check, tramp-barf-unless-okay) (tramp-send-command-and-read, tramp-get-ls-command): * lisp/net/tramp-smb.el (tramp-smb-handle-file-attributes) (tramp-smb-handle-make-symbolic-link) (tramp-smb-maybe-open-connection, tramp-smb-call-winexe): * lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection): * lisp/net/tramp-sudoedit.el (tramp-sudoedit-send-command-and-read): Raise a `remote-file-error' in case of connection problems. * lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection): Improve check for host. * lisp/net/tramp-smb.el (tramp-smb-get-localname): Improve error message. * lisp/net/tramp-sudoedit.el (tramp-default-host-alist): Set a default for "sudoedit" method. (tramp-sudoedit-maybe-open-connection): Check for proper host name. (tramp-sudoedit-send-command): Do not expand ?h. * lisp/net/tramp.el (tramp-compute-multi-hops): Check for cycle proxy definition. * test/lisp/net/tramp-archive-tests.el (tramp-archive-test20-file-modes) (tramp-archive-test21-file-links): Check for `rmote-file-error'. * test/lisp/net/tramp-tests.el (tramp-file-name-with-sudo): Declare. (tramp--test-ignore-make-symbolic-link-error): Check for `rmote-file-error'. (tramp-test03-file-name-method-rules): Delete. (tramp-test03-file-error): New test. (tramp--test-supports-processes-p): Make it more rebust.
* ; * test/lisp/net/dbus-tests.el: Remove obsolete function declarations.Michael Albinus2026-02-111-4/+0
|
* ; * test/lisp/net/dbus-tests.el: no warnings for non-dbus configsMattias Engdegård2026-02-111-0/+3
|
* Merge branch 'main' into icalendarStefan Monnier2026-02-08534-962/+2028
|\
| * ; Minor changes to 'truncate-string-pixelwise' (bug#80244)Stéphane Marks2026-02-071-0/+10
| | | | | | | | Fix two bugs and add tests for them.
| * Support D-Bus file descriptor manipulationMichael Albinus2026-02-071-50/+117
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/misc/dbus.texi (Synchronous Methods): Adapt `dbus-call-method'. (Asynchronous Methods): Adapt `dbus-call-method-asynchronously'. (File Descriptors): New chapter, replaces Inhibitor Locks. * etc/NEWS: Replace "New D-Bus functions to support systemd inhibitor locks" by "Support D-Bus file descriptor manipulation". Presentational fixes and improvements. * lisp/net/dbus.el (dbus-call-method) (dbus-call-method-asynchronously): Adapt docstring. (dbus-list-hash-table): Return (nreverse result). (dbus-monitor-goto-serial): Declare `completion'. * src/dbusbind.c (Fdbus_message_internal, xd_read_message_1): Handle `:keep-fd'. (xd_registered_inhibitor_locks, Fdbus_make_inhibitor_lock) (Fdbus_close_inhibitor_lock, Fdbus_registered_inhibitor_locks): Delete. (xd_registered_fds): New variable. (Fdbus__fd_open, Fdbus__fd_close, Fdbus__registered_fds): New DEFUNs. (Bug#79963) (syms_of_dbusbind_for_pdumper): Initialize `xd_registered_fds'. (syms_of_dbusbind): Remove subroutines `Sdbus_make_inhibitor_lock', `Sdbus_close_inhibitor_lock' and `Sdbus_registered_inhibitor_locks'. Remove symbol `Qdbus_call_method'. Declare subroutines `Sdbus__fd_open', `Sdbus__fd_close' and `Sdbus__registered_fds'. Declare symbol `QCkeep_fd'. staticpro `xd_registered_fds'. * test/lisp/net/dbus-tests.el (dbus-test10-inhibitor-locks): Delete. (dbus-test10-keep-fd, dbus-test10-open-close-fd): New tests.
| * ; * test/lisp/vc/ediff-mult-tests.el: use ert-with-temp-directoryMattias Engdegård2026-02-051-24/+20
| | | | | | | | Suggested by Pip Cet.
| * Fix aligning buffer regions containing multiple alignment sectionsJohn Wiegley2026-02-051-0/+47
| | | | | | | | | | | | | | * lisp/align.el (align-region): Use markers to ensure the regions stay accurate after overlapping aligning modifications. (Bug#80316) * test/lisp/align-tests.el (align-c-multi-section): New test.
| * ediff-mult-tests.el: remove temporary directory after testMattias Engdegård2026-02-041-18/+21
| | | | | | | | * test/lisp/vc/ediff-mult-tests.el (ediff-test-bug3348): Clean up.
| * Make vc-git-tests work with git < 2.46Mattias Engdegård2026-02-041-1/+1
| | | | | | | | | | | | * test/lisp/vc/vc-git-tests.el (vc-git-test-branch-remotes): The 'unset' subcommand to 'git config' was introduced in git 2.46; use the '--unset' option instead.
| * New function 'truncate-string-pixelwise' (bug#80244)Stéphane Marks2026-01-311-0/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This function will truncate a string on a pixelwise basis in a work buffer and using a binary search rather than brute force. * lisp/emacs-lisp/subr-x.el (work-buffer--prepare-pixelwise): New defun helper function. (string-pixel-width): Use the helper function. (truncate-string-pixelwise): New defun. * test/lisp/misc-tests.el (misc-test-truncate-string-pixelwise): (misc-test-truncate-string-pixelwise-unicode): New test. * doc/lispref/display.texi (Size of Displayed Text): Document the function. * etc/NEWS: Announce the function.
| * Factor out vc-git--branch-remotesSean Whitton2026-01-301-0/+35
| | | | | | | | | | | | | | * lisp/vc/vc-git.el (vc-git--branch-remotes): New function. (vc-git-trunk-or-topic-p): Use it. * test/lisp/vc/vc-git-tests.el (vc-git-test-branch-remotes): New test.
| * ; Fix package-vc-tests for older versions of GitEli Zaretskii2026-01-291-1/+2
| | | | | | | | | | | | * test/lisp/emacs-lisp/package-vc-tests.el (package-vc-tests-create-repository): Fix commands for older versions of Git.
| * Create package-vc-tests repositories once per tests run (bug#80235)Przemysław Kryger2026-01-281-29/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * test/lisp/emacs-lisp/package-vc-tests.el (package-vc-tests-repos): New variable. (package-vc-tests-create-repository): Add argument `repos-dir'. (package-vc-tests-make-temp-dir): Create a temporary directory with prefix. (package-vc-with-tests-environment): Use `package-vc-tests-make-temp-dir' to create a temporary directory for package test. Use `package-vc-tests-repos' to cache test package repository. (package-vc-tests-preserve-pkg-artifacts-p): Detect when to preserve package temporary files. (package-vc-tests-environment-tear-down): Use `package-vc-tests-preserve-pkg-artifacts-p'. Use plural there are more than one buffer. Report temporary directory with test repository. (package-vc-tests-add-ert-run-tests-listener): Wrap listener in args with custom functionality for `package-vc-tests'. On tests run start reset `package-vc-tests-repos' cache. On tests run end delete temporary directories.
| * New Tramp testMichael Albinus2026-01-281-0/+36
| | | | | | | | | | * test/lisp/net/tramp-tests.el (tramp-test45-force-remote-file-error): New test.
| * ; Instrument filenotify testMichael Albinus2026-01-271-1/+5
| | | | | | | | | | * test/lisp/filenotify-tests.el (file-notify-test08-backup): Instrument test.
| * Ensure skipped package-vc-tests are not installed (bug#80235)Przemysław Kryger2026-01-271-69/+79
| | | | | | | | | | | | | | | | | | * test/lisp/emacs-lisp/package-vc-tests.el (package-vc-tests-packages): Add argument `full'. When `full' is non-nil, then return full entries. (package-vc-test-deftest): Use `pkg-arg' for the name of argument `in-body'. Call `skip-when' and `skip-unless' before `packgage-vc-tests-with-installed'.
| * Neater pcase predicate transformMattias Engdegård2026-01-261-0/+18
| | | | | | | | | | | | | | Suggested by Stefan Monnier. * lisp/emacs-lisp/pcase.el (pcase--macroexpand): Simplify. * test/lisp/emacs-lisp/pcase-tests.el (pcase-pred-equiv): New test.
| * Support cons cell for 'line-spacing'Daniel Mendler2026-01-241-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * etc/NEWS: Announce the change. * src/dispextern.h (struct glyph_row): Add 'extra_line_spacing_above' member. (struct it): Add 'extra_line_spacing_above' member. * src/frame.h (struct frame): Add 'extra_line_spacing_above' member. Update comment for 'extra_line_spacing.' * src/buffer.c (syms_of_buffer): Update the docstring of 'line-spacing' to describe the cons cell usage. * src/buffer.h (struct buffer): Update comment for 'extra_line_spacing'. * src/frame.c (gui_set_line_spacing): Handle cons cell value for 'line-spacing'. Calculate and set 'extra_line_spacing_above' for both integer and float pairs. * src/xdisp.c (init_iterator): Initialize 'extra_line_spacing_above' from buffer or frame 'line-spacing', handling cons cells for both integer and float values. (gui_produce_glyphs): Use 'extra_line_spacing_above' to distribute spacing between ascent and descent. Update 'max_extra_line_spacing' calculation. (resize_mini_window): Take line spacing into account when resizing the mini window. Pass height of a single line to 'grow_mini_window' and 'shrink_mini_window'. * src/window.c (grow_mini_window, shrink_mini_window): Add unit argument which defines height of a single line. * src/window.h (grow_mini_window, shrink_mini_window): Adjust function prototypes accordingly with unit argument. * lisp/subr.el (total-line-spacing): New function to calculate total spacing from a number or cons cell. (posn-col-row): Use total-line-spacing. * lisp/simple.el (default-line-height): Use 'total-line-spacing'. * lisp/textmodes/picture.el (picture-mouse-set-point): Use 'total-line-spacing'. * lisp/window.el (window-default-line-height): Use 'total-line-spacing'. (window--resize-mini-window): Take 'line-spacing' into account. * test/lisp/subr-tests.el (total-line-spacing): New test. * test/src/buffer-tests.el (test-line-spacing): New test. * doc/emacs/display.texi (Display Custom): Document that 'line-spacing' can be a cons cell. (Line Height): Document the new cons cell format for 'line-spacing' to allow vertical centering. Co-authored-by: Przemysław Alexander Kamiński <alexander@kaminski.se> Co-authored-by: Daniel Mendler <mail@daniel-mendler.de>
| * ; calendar-bahai: Move tests and convert to ERTJacob S. Gordon2026-01-241-0/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/calendar/cal-bahai.el (calendar-bahai--nawruz-reference-dates) (calendar-bahai--twin-birthdays-reference-dates): Move to test file. (calendar-bahai--verify-nawruz) (calendar-bahai--verify-twin-birthdays): Remove and adapt contents in test file. (calendar-bahai-verify-calculations, calendar-bahai-run-tests): Remove. * test/lisp/calendar/cal-bahai-tests.el: Add file. (calendar-bahai--nawruz-reference-dates) (calendar-bahai--twin-birthdays-reference-dates): Add test data. (calendar-bahai-verify-nawruz, calendar-bahai-verify-twin-birthdays): Create ERT tests. (Bug#80207)
| * ; Tramp code cleanupMichael Albinus2026-01-241-1/+1
| | | | | | | | | | | | | | | | | | * lisp/net/tramp-cache.el (tramp-cache-unload-hook): * lisp/net/tramp-cmds.el (tramp-enable-method, tramp-bug): * lisp/net/tramp-compat.el: * test/lisp/net/tramp-tests.el (tramp-test26-interactive-file-name-completion): Simplify retrieving proper function symbols.
| * ; * test/lisp/net/dbus-tests.el: Fix typos.Michael Albinus2026-01-221-2/+2
| |
| * Add JSON path utility command to json-ts-modeBinbin Ye2026-01-211-0/+86
| | | | | | | | | | | | | | | | | | | | | | * lisp/progmodes/json-ts-mode.el (json-ts--get-path-at-node) (json-ts--path-to-jq, json-ts--path-to-python): New functions. (json-ts-jq-path-at-point): New command for getting JSON path at point. * test/lisp/progmodes/json-ts-mode-tests.el: New file. Add tests for the utility command. * etc/NEWS: Announce new command 'json-ts-jq-path-at-point' (bug#80190).
| * ; * test/lisp/net/dbus-tests.el: hush warnings on no-dbus platformsMattias Engdegård2026-01-211-0/+4
| |