When jit-lock is not in use, `font-lock-flush` is too costly to
justify using it just to maybe update the highlighting of a few macro calls.
* lisp/progmodes/elisp-mode.el (elisp--font-lock-flush-elisp-buffers):
Skip buffers that use jit-lock, like the `*ielm*-comint-indirect` buffer.
* lisp/progmodes/elisp-mode.el (elisp--local-variables): Restore
point before calling `elisp--safe-macroexpand-all` in case this
triggers a temporary redisplay.
* lisp/subr.el (listify-key-sequence): The funny
"7th bit is Meta" applies only to unibyte strings.
* test/lisp/subr-tests.el (subr-listify-key-sequence): New test.
* lisp/vc/vc.el (with-vc-properties): Don't substitute in the
value vc-touched-properties happens to have at macro expansion
time. This was left over from when vc-touched-properties was
bound to a local gensym.
* lisp/subr.el (take-while, drop-while, all, member-if): Don't inline
if `pred` is not a "constant" since it wouldn't bring any
significant benefit. Also, don't explicitly `macroexpand-all` since
the compiler macro will be called (again) after macro-expansion,
if needed.
(internal--effect-free-fun-arg-p): Return nil for variable references.
* lisp/ffap.el (ffap-read-file-or-url): Add `read-dir` argument to
indicate we expect a directory as return value.
Avoid `read-file-name` when we want a directory and the dialog UI
might prevent us from doing so.
(dired-at-point-prompter): Use the new arg.
To break the interdependence between `cl-macs` and `cl-preloaded`,
we refrain from defining some types in `cl-macs` in some corner case
situations which affect only the early bootstrap.
`transient.el` is used during early bootstrap (while loading
`emoji.el` to produce `emoji-labels.el`) and it uses the
`keyword` and `command` types, so make sure they're not among
those types that are sometimes not defined.
Include `natnum` while we're at it, so the only types still
affected by this corner case are "Common Lisp" types, which are
less likely to be used during early bootstrap.
* lisp/emacs-lisp/cl-macs.el (natnum, keyword, command): Move type
declaration from here to...
* lisp/emacs-lisp/cl-preloaded.el (natnum, keyword, command): ...here.
* 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.