* src/xdisp.c (display_mode_element): Use parse_str_as_multibyte,
not multibyte_chars_in_text, to determine whether mode-line spec
shall be displayed as a multibyte or unibyte string. We cannot
use multibyte_chars_in_text here because it aborts when it finds
raw bytes in the spec string. (Bug#43409)
Scanning through fonts can be very slow, especially with the 'x' font
backend, and the result is almost always not used. Stop looking for a
font as soon as one is found rather than scanning all the backends.
* src/font.c (font_list_entities): Stop scanning through the font
backends as soon as we find a match unless
'query-all-font-backends is set (Bug#43177).
(syms_of_font): New variable 'query-all-font-backends', default
false.
* nt/inc/ms-w32.h (_WIN32_WINNT_WIN2K, _WIN32_WINNT_WINXP)
(_WIN32_WINNT_WS03, _WIN32_WINNT_VISTA, _WIN32_WINNT_WIN7,
_WIN32_WINNT_WIN8, _WIN32_WINNT_WINBLUE, _WIN32_WINNT_WIN10)
[__MINGW32__]: Define if any of these is not defined. Reported by
martin rudalics <rudalics@gmx.at>.
* lisp/uniquify.el (uniquify-buffer-name-style) : Add "Other" custom
option
(uniquify-get-proposed-name) : Add condition for when
uniquify-buffer-name-style is a function.
* lisp/mail/mailclient.el (mailclient-send-it): Make this function
work again after the browse-url machinery was changed to use
browse-url-default-handlers instead.
* lisp/emacs-lisp/ert-x.el (ert-simulate-keys): New macro.
* test/lisp/international/mule-tests.el
(mule-cmds--test-universal-coding-system-argument): Use it and enable
the test also in batch mode.
* lisp/dired.el (dired-unhide-subdir):
(dired-subdir-hidden-p):
(dired-subdir-min): Moved from subr-x.
(dired-get-filename): Get the correct filename when directories
are hidden (bug#8484).
* doc/lispref/minibuf.texi (Text from Minibuffer): Document it.
* lisp/minibuffer.el (completion--replace): Preserve text
properties on completed items (bug#43218).
* lisp/minibuf-eldef.el (minibuffer-default--in-prompt-regexps):
Really allow shortening the default prompt format to [foo] (if
requested) (bug#12443).
For some values outside integers 0≤k≤n, (n choose k) gave wrong
results, entered infinite recursion or used unreasonably amounts of
stack space. This change fixes that and extends the function to all
integer arguments using the definitions from M. J. Kronenburg
(https://arxiv.org/abs/1105.3689).
* lisp/calc/calc-comb.el (calcFunc-choose):
Fix sign error to prevent infinite recursion and extend function to
handle all integer arguments.
(math-choose-iter, math-choose-float-iter): Rewrite in iterative form;
no TCO in elisp yet.
* test/lisp/calc/calc-tests.el (calc-tests--fac, calc-tests--choose)
(calc-tests--check-choose, calc-tests--explain-choose)
(calc-tests--calc-to-number): New helper functions.
(calc-choose): New test.
* lisp/progmodes/compile.el (compilation-mode-map): Remove mention of
compilation-minor-mode-map (bug#43382).
As the comment in the body says:
;; Don't inherit from compilation-minor-mode-map,
;; because that introduces a menu bar item we don't want.
;; That confuses C-down-mouse-3.
and the map actually inherits from special-mode-map.
Copyright-paperwork-exempt: yes
* src/module-env-28.h: Add field for 'make_interactive' function.
* src/emacs-module.c (Lisp_Module_Function): Add new field holding the
interactive form.
(allocate_module_function): Adapt to structure layout change.
(module_make_interactive, module_function_interactive_form): New
functions.
(initialize_environment): Use them.
* src/eval.c (Fcommandp):
* src/data.c (Finteractive_form): Also handle interactive module
functions.
* test/data/emacs-module/mod-test.c (Fmod_test_identity): New test
function.
(emacs_module_init): Create two interactive module test functions.
* test/src/emacs-module-tests.el (module/interactive/return-t)
(module/interactive/return-t-int, module/interactive/identity):
New unit tests.
* doc/lispref/internals.texi (Module Functions): Document new
function. Rework paragraph about wrapping module functions, as the
example no longer applies.
* etc/NEWS: Document new facility.
* src/xdisp.c (syms_of_xdisp): Replace 'invocation-name' with the text
"%b - GNU Emacs" and replace "@" with " at ". (Bug#41147)
* etc/NEWS: Announce the above change.
* lisp/xml.el (xml-invalid-characters-re): New constant.
* lisp/erc/erc-desktop-notifications.el
(erc-notifications-notify): Strip IRC control codes and invalid
XML characters before notifying (bug#43328).
* lisp/gnus/gnus-agent.el (gnus-agent-store-article): Made
obsolete.
* lisp/gnus/gnus-art.el (gnus-request-article-this-buffer): Don't
call it.
* lisp/gnus/gnus-async.el (gnus-async-article-callback): Ditto
(bug#43356).
This partially reverts f3b146e943, which
in was response to what appears to be an erroneous feature-request -
bug#8502.
Instead this should be done instead:
“If I read an article while plugged, do they get entered into the
Agent?”
*No*. If you want this behavior, add
‘gnus-agent-fetch-selected-article’ to
‘gnus-select-article-hook’.
* lisp/simple.el (read-extended-command): Don't hide obsolete
commands.
(read-extended-command--annotation): Show an annotation for obsolete
commands that says what their new name is.
This reverts commit de4f347901.
read-file-name already displays a long path when given a default
(like INITIAL in many other prompting functions), so using
format-prompt here is superfluous.
* test/lisp/net/tramp-archive-tests.el
(tramp-archive-test-file-archive-hexlified): New defun.
(tramp-archive-test02-file-name-dissect): Use it. (Bug#43353)