* src/w32console.c (DEFAULTP, SSPRINTF, w32con_write_vt_seq)
(w32con_get_cursor_coords): New functions and macros.
(w32con_write_glyphs): Hide cursor before writing to the console.
Add code for writing in virtual-terminal mode when
'w32_use_virtual_terminal' is non-zero.
(w32con_write_glyphs_with_face): Add code for writing in
virtual-terminal mode when 'w32_use_virtual_terminal' is non-zero.
(w32con_setup_virtual_terminal): New function.
(w32con_set_terminal_modes): Call it.
(turn_on_face, turn_off_face): New functions.
(initialize_w32_display): Save background and foreground, and the
current TTY.
(Fset_screen_color): Accept an additional optional argument VTP;
if non-nil, arrange for 24-bit display to use the specified
colors.
(Fget_screen_color): Accept an additional optional argument VTP;
if non-nil, return colors used by 24-bit display.
(Fw32_use_virtual_terminal, Fw32_use_virtual_terminal_p): New
functions.
* src/term.c (tty_setup_colors) [WINDOWSNT]: Set up
virtual-terminal sequences for colors.
(init_tty) [WINDOWSNT]: Set up terminfo capabilities for Windows
virtual-terminal.
* src/xdisp.c (redisplay_internal): Don't call set_tty_color_mode
for WINDOWSNT.
* lisp/term/w32console.el (w32-tty-set-base-colors)
(w32-tty-define-base-colors, w32-tty-define-8bit-colors)
(w32-tty-define-24bit-colors, w32-tty-get-pixel): New functions.
(terminal-init-w32console): Remove color setup.
(w32-tty-setup-colors): New function.
* lisp/term/tty-colors.el (tty-color-mode-alist): Add --color
modes for 256 and 24-bit color modes.
* lisp/startup.el (tty-handle-args): Fix --color handling.
* lisp/faces.el (tty-set-up-initial-frame-faces): Set up colors
for MS-Windows consoles.
* etc/NEWS:
* doc/emacs/msdos.texi (Windows Misc):
* doc/emacs/cmdargs.texi (Colors X): Document 24-bit color support
on MS-Windows.
(Bug#79298)
* doc/misc/url.texi (Retrieving URLs): Describe the ':peer' entry
of the STATUS argument passed to CALLBACK of 'url-retrieve'.
* lisp/url/url.el (url-retrieve):
* src/gnutls.c (Fgnutls_peer_status): Doc fixes.
(Bug#80762)
* lisp/net/tramp-cache.el
(tramp-suppress-remote-file-name-inhibit-cache): New defsubst.
* lisp/net/tramp.el (tramp-skeleton-file-name-all-completions):
* lisp/net/tramp-sh.el (tramp-get-remote-path): Use it.
* lisp/net/tramp.el (tramp-skeleton-file-name-all-completions):
Use `file-directory-p' directly instead of calling `file-symlink-p'
and file-truename first. Since `file-directory-p' already follows
symlinks, symlinked directories are handled correctly without the
extra indirection.
* lisp/emacs-lisp/package.el (package-menu-status-faces): Add
new constant.
(package-menu--print-info-simple): Replace 'pcase' form with
'alist-get', which is my measurements is slightly faster.
* lisp/vc/vc-dir.el (vc-dir-hide-up-to-date-on-revert): Delete.
(vc-dir-auto-hide-up-to-date): New option.
(vc-dir-update, vc-dir-revert-buffer-function): Use it.
* etc/NEWS: Document it.
* lisp/vc/vc-dir.el (vc-dir--up-to-date-states): New constant.
(vc-dir-hide-state): Use it.
(vc-dir--only-files-state-and-model): New function.
(vc-dir-root-next-action, vc-dir-deduce-fileset): Use it.
* lisp/vc/vc.el (vc-only-files-state-and-model): Improve error
message readability.
Before the fix, if user uses the NODE-ONLY option, we don't keep
the capture names in the results, then predicates won't work
because they can't reference capture names.
* src/treesit.c (query_capture_remove_capture_name): New
function.
(Ftreesit_query_capture): Use the new function to remove capture
names AFTER running the predicate.
* test/src/treesit-tests.el:
(treesit-query-node-only-and-grouped): New test.
* lisp/emacs-lisp/package.el (package--compatible-packages): Add
new function.
(package-install): Use new function to restrict suggestions to
not include incompatible packages.
(package--incompatible-p): Check all dependencies to determine
package compatibility.
* etc/NEWS: Mention change. (Bug#80695)
* lisp/emacs-lisp/package.el (package--dependencies): Return
required dependency version along with every dependency.
(package-menu--list-to-prompt): Discard required versions.
Enable cursor focus tracking for visually-impaired users that
rely on macOS Zoom screen magnification.
* src/nsterm.m: Import ApplicationServices.h.
(ns_ua_zoom_enabled_p, ns_cg_rect_flip_y, ns_UAZoomChangeFocus):
New static function. Advise UAZoomChangeFocus of potentially
new cursor position.
(ns_update_end): Call ns_UAZoomChangeFocus.
(ns_draw_window_cursor): Cache the cursor position.
(applicationDidFinishLaunching): NSLog Accessibility API
permissions AXIsProcessTrusted.
(windowDidBecomeKey): Schedule a call to ns_UAZoomChangeFocus.
(deferred_UAZoomChangeFocus_handler): New view method to call
ns_UAZoomChangeFocus.
(accessibilityFrame): New view method to help UAZoomChangeFocus.
(initFrameFromEmacs): Initialize ns_UAZoom_cursor_rect_new and
ns_UAZoom_cursor_rect_old.
* etc/NEWS: Announce the change.