<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/test/lisp, branch feature/delsel-replace</title>
<subtitle>Emacs is the extensible, customizable, self-documenting real-time display editor. 
</subtitle>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/'/>
<entry>
<title>Rewrite flex completion with Gotoh algorithm</title>
<updated>2026-02-13T23:46:11+00:00</updated>
<author>
<name>João Távora</name>
</author>
<published>2026-02-03T12:14:03+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=aa181cd35220242a23fe98932386facaba18c4c5'/>
<id>aa181cd35220242a23fe98932386facaba18c4c5</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix new eglot test failure due to project cache</title>
<updated>2026-02-13T03:22:15+00:00</updated>
<author>
<name>Dmitry Gutov</name>
</author>
<published>2026-02-13T03:19:58+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=f1fe4d46190263e164ccd1e066095d46a156297f'/>
<id>f1fe4d46190263e164ccd1e066095d46a156297f</id>
<content type='text'>
* 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).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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).
</pre>
</div>
</content>
</entry>
<entry>
<title>Tramp signals 'remote-file-error' consequently</title>
<updated>2026-02-12T18:24:10+00:00</updated>
<author>
<name>Michael Albinus</name>
</author>
<published>2026-02-12T18:24:10+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=e0e0e95f5be6beb4e0a528e95ac466751b2f6a31'/>
<id>e0e0e95f5be6beb4e0a528e95ac466751b2f6a31</id>
<content type='text'>
* 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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.
</pre>
</div>
</content>
</entry>
<entry>
<title>; * test/lisp/net/dbus-tests.el: Remove obsolete function declarations.</title>
<updated>2026-02-11T13:17:30+00:00</updated>
<author>
<name>Michael Albinus</name>
</author>
<published>2026-02-11T13:17:30+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=17fb8a45f76500e354fd2a20bcf8c68ac740dcbe'/>
<id>17fb8a45f76500e354fd2a20bcf8c68ac740dcbe</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>; * test/lisp/net/dbus-tests.el: no warnings for non-dbus configs</title>
<updated>2026-02-11T10:06:54+00:00</updated>
<author>
<name>Mattias Engdegård</name>
</author>
<published>2026-02-10T13:05:43+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=37891d1a1e3dded6fd26478e9b2012ca433dfd4f'/>
<id>37891d1a1e3dded6fd26478e9b2012ca433dfd4f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'main' into icalendar</title>
<updated>2026-02-08T21:05:31+00:00</updated>
<author>
<name>Stefan Monnier</name>
</author>
<published>2026-02-08T21:05:31+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=f39eaad491bdab443389fc60c8ca2ee59f22758b'/>
<id>f39eaad491bdab443389fc60c8ca2ee59f22758b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>; Minor changes to 'truncate-string-pixelwise' (bug#80244)</title>
<updated>2026-02-07T12:49:15+00:00</updated>
<author>
<name>Stéphane Marks</name>
</author>
<published>2026-02-01T02:19:48+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=e0ce881be92f0cf26723c3714a3903a088912906'/>
<id>e0ce881be92f0cf26723c3714a3903a088912906</id>
<content type='text'>
Fix two bugs and add tests for them.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix two bugs and add tests for them.
</pre>
</div>
</content>
</entry>
<entry>
<title>Support D-Bus file descriptor manipulation</title>
<updated>2026-02-07T10:32:54+00:00</updated>
<author>
<name>Michael Albinus</name>
</author>
<published>2026-02-07T10:32:54+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=89209a83b60c87d97f0c05dbf6cb29ff3cdf3d5a'/>
<id>89209a83b60c87d97f0c05dbf6cb29ff3cdf3d5a</id>
<content type='text'>
* 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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.
</pre>
</div>
</content>
</entry>
<entry>
<title>; * test/lisp/vc/ediff-mult-tests.el: use ert-with-temp-directory</title>
<updated>2026-02-05T16:36:18+00:00</updated>
<author>
<name>Mattias Engdegård</name>
</author>
<published>2026-02-05T15:26:42+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=4169720313cc9786f5b68c2ffdc94ae94e6293ad'/>
<id>4169720313cc9786f5b68c2ffdc94ae94e6293ad</id>
<content type='text'>
Suggested by Pip Cet.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Suggested by Pip Cet.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix aligning buffer regions containing multiple alignment sections</title>
<updated>2026-02-05T08:51:16+00:00</updated>
<author>
<name>John Wiegley</name>
</author>
<published>2026-02-03T00:04:04+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=fd6d8faa62c56064c41a9709ab1010eecb8797f2'/>
<id>fd6d8faa62c56064c41a9709ab1010eecb8797f2</id>
<content type='text'>
* 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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.
</pre>
</div>
</content>
</entry>
</feed>
