This fixes bugs that crashed Emacs when the Lisp interpreter was fed
bad code.
* src/eval.c (FletX, Flet, internal_lisp_condition_case)
(funcall_lambda): Hoist symbol-with-pos elimination and type checks to a
dominating position for efficiency. This also plugs at least two typing
holes. (Mea culpa.)
* test/src/eval-tests.el (eval-bad-specbind): New regression test.
This reverts commit daefd6771a.
* src/sfnt.c (sfnt_read_OS_2_table): Restore realignment after
s_family_class, as it occupies byte 32, not 34. Reported by Pip
Cet <pipcet@protonmail.com>.
* lisp/international/fontset.el (setup-default-fontset) <han>:
Don't search for fonts matching the `han' script elsewhere than
on Android, which restores the status quo existing in Emacs 29.
(bug#72188)
* lisp/doc-view.el (doc-view-new-window-function): Prevent
creation of duplicate overlays for the same window after a
window configuration change occasions a call to i-m-r-winprops.
This is better than 'delete-process' since it will ensure that any
stderr pipe-processes get stopped as well (bug#72117).
* lisp/eshell/esh-proc.el (eshell-insertion-filter): Use 'kill-process'
instead of 'delete-process'.
* lisp/which-key.el (which-key-dont-use-unicode): Check if the
user options have a 'standard-value' before proceeding to
reevaluate. This avoids accidentally setting the symbol value
to nil, before the user option has been declared, overriding the
actual non-nil, default values. (Bug#72077)
* doc/emacs/custom.texi (Find Init):
* doc/emacs/cmdargs.texi (Initial Options): More accurate and
detailed description of what '--init-directory' does and how it
affects the Emacs session. Add index entries and cross-references
as needed. (Bug#72294)
* lisp/progmodes/cperl-mode.el (cperl-find-pods-heres): Prevent a
movement of point from bleeding into a following clause.
* test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-72296):
Add a test for the flip-flop operator with code from the report.
0d7d835902 renamed 'server--process-filter' into
'server--process-filter-1' but updated the corresponding
'cl-return-from' tag to 'server--process-filter'.
* lisp/server.el (server--process-filter-1): Fix 'cl-return-from' tag.
Both XML and HTML forbid double hyphens inside comments. However,
nxml-mode was using a `!--' as a comment padding if `comment-style'
was set to any of the styles that supposed to add padding. This infix
was auto-derived due to `comment-continue' being nil. To fix that set
`comment-continue' explicitly. It's unclear what padding should be
used, but from looking at other editors it seems they don't typically
add padding in XML, so let's be simple for now and just set
`comment-continue' to empty string.
* lisp/nxml/nxml-mode.el (nxml-mode): Make 'comment-continue' a
buffer-local variable set to the empty string. (Bug#71772)