Preprocess the history (and the default) through the new function
`minibuffer--sort-preprocess-history` to filter out the completion
base for completion tables with boundaries (in particular the file
completion table).
* lisp/minibuffer.el (minibuffer--sort-preprocess-history_: New function.
(completion-all-sorted-completions): Use it.
* test/lisp/minibuffer-tests.el (completion-all-sorted-completions):
Add tests for various combinations of with/without history/base/default.
(mpc-format): Compose functions instead of constructing
source-code expressions at run time.
Rename `mpc-pred` property to `mpc--uptodate-p`.
(mpc-status-buffer-refresh): Adjust to the new property name.
* Makefile.in (clean_dirs, distclean_dirs, maintainer_clean_dirs):
Add admin directories.
(clean, distclean, bootstrap-clean, maintainer-clean): Simplify.
(maybeclean_dirs): Remove - this dates to when admin/ was not
included in tar files.
* doc/emacs/maintaining.texi (Xref Commands): Remove the
description of the TAB binding. Enhance the description of the
RET binding. (Bug#44611)
* etc/NEWS: Announce the obsolescence of TAB binding in XREF.
* lisp/progmodes/xref.el (xref-goto-xref): Improve doc string.
* lisp/erc/erc-backend.el (erc-open-network-stream): Need to use apply
to call open-network-stream with the supplied arguments because of the
plist p of arguments. Thanks to neverwas for pointing it out.
The interplay between nontrivial completion boundaries and the other
completion functions is somewhat subtle, so it deserves a bit more
explanation.
* doc/lispref/minibuf.texi (Basic Completion)
(Programmed Completion): Add a few more remarks about nontrivial
completion boundaries.
Even for a trivial underlying completion table (where the 'boundaries'
action returns nil), we need to provide nontrivial boundaries so that
they match the behavior of 'all-completions'.
* lisp/minibuffer.el (completion-table-subvert): Return boundaries
even for trivial underlying completion table.
* test/lisp/minibuffer-tests.el (completion-table-subvert-test):
Amend unit test to also test boundaries. While there, also test
the other completion functions.
* lisp/erc/erc-backend.el (erc-session-client-certificate): New
buffer-local variable storing the TLS client certificate used for the
current connection.
(erc-open-network-stream): Use open-network-stream instead of
make-network-process, and pass any additional arguments to it.
(erc-server-connect): Add an optional client-certificate argument
that if present is passed with the :client-certificate keyword as part
of the arguments to erc-server-connect-function.
* lisp/erc/erc.el (erc-open): Add new optional client-certificate
argument, set it as erc-session-client-certificate, and pass it along
to erc-server-connect.
(erc): Clarify documentation string with respect to the full-name
argument.
(erc-tls): Add new client-certificate keyword argument and pass it in
the direct call to erc-open (instead of going through erc).
(erc-open-tls-stream): Pass any additional arguments (such as
:client-certificate) to open-network-stream. Also allow overriding
:nowait if desired.
* doc/misc/erc.texi: Add documentation for erc-tls, including the new
:client-certificate argument.
* etc/NEWS: Announce the change.
* lisp/progmodes/project.el (project-compilation-buffer-name-function):
New option.
(project-compile): Use it.
(project-prefixed-buffer-name): New function.
Copyright-paperwork-exempt: yes
* configure.ac (LD_SWITCH_SYSTEM_TEMACS) [mingw32]: Disable ASLR
when linking for unexec. Reported by Nikolay Kudryavtsev
<nikolay.kudryavtsev@gmail.com>.
* lisp/progmodes/project.el (project--find-regexp-in-files):
Don't unquote file names here.
* lisp/progmodes/xref.el (xref-matches-in-files): Do it here.
And only if the first element in the list is quoted (bug#47799).
Casting NULL is not a constant expression (Bug#47951).
* lib-src/seccomp-filter.c (main): Turn check for null pointer
representation into a runtime assertion.
* lisp/custom.el (custom-initialize-delay): Don't delay if
`custom-delayed-init-variables` has already been processed.
* lisp/startup.el (command-line): Mark `custom-delayed-init-variables`
as processed.
Also fix a bug where, with minibuffer-follows-selected-frame neither nil nor
t, a minibuffer could appear in two frames at the same time.
* src/window.c (Fset_window_configuration): Add a new &optional parameter
DONT-SET-MINIWINDOW, which inhibits the minibuffer from being restored from
the supplied window configuration.
(restore_window_configuration): Enhance to match the above.
* src/minibuf.c (read_minibuf): Enhance the argument list to the
restore_window_configuration calls to match the above. In the main case,
restoring the minibuffer is inhibited.
(read_minibuf_unwind): Should the frame with the expired minibuffer not be
found ("can't happen"), unwind the stacked data nevertheless, rather than just
exiting.
* src/keyboard.c (read_char_help_form_unwind): Amend a call of
Fset_window_configuration.
* doc/lispref/windows.texi (Window Configurations): Document the new form of
set-window-configuration.
* etc/NEWS (Lisp Changes in Emacs 28.1): Amend the entry for
set-window-configuration.
* lisp/isearch.el (isearch-update): When we start hscrolled,
consider also the case that point ends up being to the left of the
hscrolled window's edge. (Bug#46316)