* lib-src/make-docfile.c (compare_globals):
Make symbols 1 through 4 be t, unbound, error, lambda.
This is in addition to symbol 0 being nil.
This change improved ‘make compile-always’ performance by 0.6%
on my platform.
* src/fns.c (string_version_cmp): New function.
This has most of the old Fstring_version_lessp,
with an assertion to make things a bit clearer.
* src/fns.c (Fstring_version_lessp):
* src/keymap.c (describe_map_compare): Use it (Bug#33237).
* lisp/replace.el (perform-replace): Don't wrap replace-highlight
in save-match-data. Use `(nth 0 real-match-data)' instead of
`(match-beginning 0)' after replace-highlight. (Bug#36328)
* lisp/format-spec.el (format-spec): Allow passing through format
strings that have no specs (to be able to act as a filter). Also
add an example.
* test/lisp/format-spec-tests.el (test-format-spec): Add tests for
the new functionality.
* src/fileio.c (Fexpand_file_name): Clarify that "~" in NAME is
expanded, and not just "~/". Also clarify that ~USER is not
expanded if USER doesn't exist (bug#36490).
* src/keymap.c (describe_map_compare): Change the sorting order of
keystrokes, so that we get the order <f1> <f2> <f11> instead of
<f1> <f11> <f2> (bug#33237).
* lisp/progmodes/elisp-mode.el (eval-sexp-add-defvars): When
collecting defvars in the current buffer, ignore the ones that are
in comments or strings (bug#34233).
* src/image.c (syms_of_image) <Qgio> [HAVE_NTGUI]: New DEFSYM.
(init_svg_functions) [LIBRSVG_CHECK_VERSION >= 2.32.0]: Load
g_file_new_for_path and g_memory_input_stream_new_from_data
from libgio, not from libglib. (Bug#35548)
* lisp/term/w32-win.el (dynamic-library-alist): Add the libgio
DLL.
* src/xdisp.c (resize_mini_window): Always reset the
mini-window's start point to the beginning of the buffer, even
if resizing is not needed. This avoids assertion violations
when resize-mini-windows is nil. (Bug#36595)
* src/image.c (init_svg_functions) [WINDOWSNT]:
Load the pre-2.32 or 2.32 functions,
depending on LIBRSVG_CHECK_VERSION.
(svg_load_image): In librsvg 2.32 or later, use
g_memory_input_stream_new_from_data, g_file_new_for_path and
rsvg_handle_new_from_stream_sync rather than the
deprecated-in-2.45 rsvg_handle_write and rsvg_handle_close.
From a patch by YAMAMOTO Mitsuharu (Bug#35548#11).
* lisp/calc/calc-alg.el (calcFunc-sec, calcFunc-csc, calcFunc-cot):
Check that `math-known-sin' and `math-known-tan' succeeded before
using their value in arithmetic.
* test/lisp/calc/calc-tests.el (calc-test-trig): Add regression tests.
* lisp/progmodes/asm-mode.el: Remove "tools" from "Keywords" header.
Doc fixes.
(asm-comment-char, asm-comment): Doc fixes.
(asm-newline): Redefine as an obsolete function alias for
'newline-and-indent' instead of using a defalias.
* lisp/comint.el (comint--prompt-recursion-depth): New variable
(bug#33252).
(comint-watch-for-password-prompt): Use it to avoid bugging out
and making Emacs unusable when a shell script is prompting for
passwords in an infloop.
* lisp/gnus/message.el (message--fold-long-headers): Header lines
should be no longer than 79 characters before folding
(bug#33313). Previous comment about 998 octets is about maximum
allowed header field length.
* lisp/calc/calc-forms.el (calendar-current-time-zone-cache):
Remove defvar.
(math-get-calendar-tzinfo): Simplify and do not reach
into caldst’s cache.
(decide_coding_unwind): Re-introduce. Move text back to the gap.
Return the new `inserted` via the unwind_data.
(Finsert_file_contents): Use it.
Make sure `inserted` is always 0 when we jump straight to `notfound`.
Don't insert the text in the buffer until we know it's properly decoded
for the byteness of the buffer.
* test/src/fileio-tests.el (fileio-tests--insert-file-interrupt):
Allow insert-file-contents to return an empty buffer in case of
non-local exit in set-auto-coding-function.
* src/pdumper.c (Fdump_emacs_portable, pdumper_load):
Don’t cast volatile to non-volatile pointer, as that does not in
general suffice to prevent a compiler from optimizing away memcmp
and/or memcpy calls. Instead, copy the fingerprint by hand.