* lisp/vc/vc-dispatcher.el (vc-do-command): Restore using a pipe
in the async case. This was unintentionally changed when adding
support for discarding output.
The idea is to reduce the probability for stray pointers on the stack.
pdumper_object_p uses dump_public.start and pdumper_object_p is called
quite frequently, e.g. by xfree.
* src/pdumper.c (pdumper_load): Set dump_public.start to ~0.
Use GC handles for help-echo strings instead of raw pointers.
* src/w32menu.c (add_menu_item): Store GC handles.
(w32_menu_display_help): Dereference the string.
(w32_free_submenu_strings): Free GC handles.
* src/android-asset.h (AAssetManager_open): Initialize desc and
asset to NULL, lest `desc' be accessed uninitialized if C_NAME
does not exist in the directory tree.
bug#79810
* lisp/progmodes/hideshow.el (hs-hideable-region-p): Simplify.
(hs-block-positions): Change return value.
(hs--add-indicators): Go to the next line only if we have
successfully created the overlays.
(hs-hide-block-at-point, hs-hide-block): Update code.
* lisp/progmodes/heex-ts-mode.el (heex-ts--thing-settings): Add 'defun' thing.
(heex-ts-mode): Use it in 'hs-treesit-things'.
* lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode): Set 'hs-treesit-things'
and 'hs-adjust-block-end-function'.
* lisp/progmodes/elixir-ts-mode.el (elixir-ts--thing-settings):
Add 'defun' thing.
(elixir-ts-mode): Set 'hs-treesit-things'.
* lisp/progmodes/heex-ts-mode.el (heex-ts-mode):
Set 'hs-treesit-things'. Use bos/eos instead of bol/eol.
* lisp/vc/vc-dispatcher.el (vc-do-command): Support discarding
standard error.
* lisp/vc/vc-hg.el (vc-hg-dir-status-files): Discard standard
error of 'hg status' to avoid parsing mistakes.
(vc-hg-command): Update docstring given new meaning of first
argument to vc-do-command.
* test/lisp/vc/vc-tests/vc-test-misc.el (vc-test-do-command-1)
(vc-test-do-command-2, vc-test-do-command-3)
(vc-test-do-command-4, vc-test-do-command-5)
(vc-test-do-command-6, vc-test-do-command-7): New tests.
Newer/newest clangd support more encodings and actually
negotiate with us, so test shouldn't assume UTF-16..
* test/lisp/progmodes/eglot-tests.el
(eglot-tests--lsp-abiding-column-1): Tweak.
* src/xmenu.c (create_and_show_popup_menu): Use record_unwind_protect
instead of record_unwind_protect_ptr.
(leave_toolkit_menu): Use a Lisp_Object instead of a untagged pointer.
Since we keep the invisible characters of all the
server-supplied markdown, we risk that the first lines are
entirely invisible. This defeats the :echo calculation in
eglot-hover-eldoc-function.
Fallout of bug#79552.
* lisp/progmodes/eglot.el (eglot-hover-eldoc-function): Fix.
Co-authored-by: João Távora <joaotavora@gmail.com>
* src/comp.h (USE_POINTER_TO_CONSTANT_VECTOR): If defined, don't
use vectors.
(Lisp_Native_Comp_Unit): Make data_relocs and data_eph_relocs
pointers to Lisp_Object pointers.
* src/comp.c (ABI_VERSION): Increase to 13.
(check_comp_unit_relocs): Don't check if pointers are used.
* src/comp.c (load_comp_unit, Fcomp__register_lambda): Handle
case that constant vectors are pointers.
* src/comp.c (emit_static_object): Add some FIXME comments.
(declare_imported_data_relocs): Handle case of pointers to
constants vectors differently.
* src/comp.c (declare_imported_data_relocs): Make array elemen
type volatile.
* src/comp.c (comp_t): Add n_data_relocs and
n_data_relocs_ephemeral.
(obj_to_reloc): Set array length correctly.
(declare_imported_data_relocs): Return # of constants.
(declare_imported_data): Set comp's number of constants.
* src/igc.c (root_create_exact_ptr, igc_root_create_exact_ptr):
Return root list node.
* src/igc.h (igc_root_create_exact_ptr): Change return type.
* src/pdumper.c (dump_do_dump_relocation): Don't do fixup if
using pointers to constants vectors.
* src/comp.h (struct Lisp_Native_Comp_Unit): Add member
data_eph_vec.
* src/comp.c (load_comp_unit): Use data_eph_vec to protect the
eph constants.
* lisp/play/zone.el: Multi-window and -frame support.
(zone): New group.
(zone-buffer-name): New constant.
(zone-add-program, zone-remove-program): New functions.
* : User configuration
(zone-all-frames, zone-all-windows-in-frame)
(zone-delete-other-windows): New boolean options.
(zone-time-elapsed-while-zoning): New var.
(zone-start-hook, zone-finish-hook): New hooks.
* : Preserve frame configuration
(zone-frame-configuration-alist): New Alist of cursor type and
window configuration per frame.
(zone--save-frame-configuration)
(zone--restore-frame-configuration)
(zone--restore-all-frame-configuration): New internal functions to
restore windows and frames.
* : Rewrite/modularization of zone logic
(zone): Refactor function.
(zone--buffer-empty-p, zone--buffer-encrypted-p): New functions.
(zone--choose-window-and-buffer): New function.
(zone-ignored-buffers, zone--buffer-zoneable-p): New var and function.
(zone--build-zone-buffer): New function to create zone buffer.
(zone--prepare-frames): New function to configure multi-frames and -windows.
(zone--apologize-seconds, zone--apologize-for-failing): New var
and function when zone fails.
Restore yellow colors previously used in the 'diff-changed' face.
Copy color values from 'smerge-base'. This will distinguish them
from grey 'diff-file-header' and 'diff-hunk-header' in context diffs.
This function is shortly to gain support for separating standard
output and standard error from the child. Commit untabifying it
first to make the diff adding the new features more readable.
This will include documented support for BUFFER nil, meaning to
discard output.
* lisp/vc/vc-dispatcher.el (vc-do-command): Untabify the source
in preparation for work on this function. If BUFFER is nil,
signal an error, in keeping with the current docstring.
Use ensure-list. Use equal not string= for string comparison.
* src/xfaces.c (get_lface_attributes): Avoid crashes if F is NULL.
This happens when 'face_inheritance_cycle' is for some reason
called for the default attributes of a face (which are applicable
to future frames). We avoid the crashes by not consulting face
remapping in that case, since face remapping is buffer-local, and
therefore cannot possibly affect face defaults. (Bug#79790)
Credentials cached in 'url-basic-auth-storage' are keyed by
"server:port", but were being looked up by just "server" in
'url-basic-auth'.
* lisp/url/url-auth.el (url-basic-auth): Lookup cached basic auth
credentials by "server:port". (Bug#79486)
* test/lisp/url/url-auth-tests.el (url-auth-test-auth-retrieve-cache):
Check the digest auth test-cases cache retrieval test cases against the
basic auth logic.