* doc/misc/tramp.texi (Traces and Profiles): Add
tramp-debug-buffer-limit to index. Describe it.
* lisp/net/tramp-message.el (tramp-debug-buffer-limit): New defcustom.
(tramp-debug-message): Use it. (Bug#79182)
* lisp/net/tramp-adb.el (tramp-adb-handle-set-file-times):
Don't use UTC in all cases.
* lisp/net/tramp-smb.el (tramp-smb-handle-set-file-times): New defun.
(tramp-smb-file-name-handler-alist): Use it.
* test/lisp/net/tramp-tests.el (tramp-test22-file-times): Adapt test.
* lisp/net/tramp-sh.el (tramp-maybe-open-connection): Do not set "TERM",
"PROMPT_COMMAND" and "PS1".
* lisp/net/tramp.el (with-tramp-local-environment): Do not override
`process-environment'. Set "TERM", "PROMPT_COMMAND", "PS1" and
"INSIDE_EMACS". (Bug#79103)
* lisp/net/trampver.el (tramp-inside-emacs): Remove duplicate entries.
* lisp/net/newst-plainview.el (newsticker-hide-old-feed-header):
Define that new user option
(newsticker-mode-map): Add the new bindings related to that new
user option.
(newsticker-buffer-update): Hide the old feeds if the new user
option is true.
(newsticker-hide-old-feed-header): Define a function to hide the
old feeds.
(newsticker-show-old-feed-header): Define a function to restore
them.
(newsticker--old-feed-p): Define a function to check if a feed is
old.
(newsticker--buffer-do-insert-text): Set age of feed to old if
applicable.
(newsticker--buffer-set-invisibility): Update the function to
account for the fact that there are two lines (not just one) to
hide feeds.
* etc/NEWS: Announce the new user option
'newsticker-hide-old-feed-header' to hide old feeds. (Bug#78305)
* lisp/filenotify.el (file-notify--rm-descriptor):
Use `insert-special-event'.
* lisp/net/tramp-sh.el (tramp-bundle-read-file-names): Fix docstring.
(tramp-sh-gio-monitor-process-filter): Extend error strings.
* test/infra/Dockerfile.emba (emacs-base): Install python3.
* test/lisp/filenotify-tests.el (auto-revert-buffer-list): Declare.
(file-notify--test-rootdir): New defvar. Replace all uses of
`temporary-file-directory' by it.
(file-notify--test-cleanup): Set `auto-revert-buffer-list' to nil.
(file-notify--test-monitor): Check also for `process-live-p'.
Skip test, if the monitor cannot be determined.
(file-notify--deftest-remote): Do not call
`tramp-cleanup-connection', this is done in
`file-notify--test-cleanup' already.
(with-file-notify-test): New defmacro. Use it in (almost) all tests.
(file-notify--test-make-temp-name): Do not create
`file-notify--test-tmpdir'.
(file-notify--test-event-handler): Use `directory-file-name '.
(auto-revert-debug): Set it to nil.
(file-notify-test<nn>-*): Rewrite, using `with-file-notify-test'
and `ert-with-temp-file'.
* test/lisp/net/tramp-tests.el (tramp-test46-file-notifications):
Tag it :unstable.
The previous version made a lot of string copies, but only needed the
word count of each DOM node. In this version, we just sum up the word
counts in all the existing nodes, which results in a significant
performance improvement (bug#78902).
* lisp/net/eww.el (eww--string-count-words, eww--dom-count-words): New
functions...
(eww--walk-readability, eww-readable-dom): Use them.
This replaces 'dom-text' and 'dom-texts', and is both more correct and
more efficient than them.
* lisp/dom.el (dom-text, dom-texts): Make obsolete in favor of...
(dom-inner-text--1, dom-inner-text): ... these new functions. Update
callers.
* doc/lispref/text.texi (Document Object Model): Update documentation to
refer to 'dom-inner-text'.
* etc/NEWS: Announce this change.
* doc/lispref/processes.texi (Subprocess Creation):
Add function exec-suffixes.
* etc/NEWS: New function 'exec-suffixes'.
Presentational fixes and improvements.
* lisp/files-x.el (exec-suffixes): New defun. (Bug#78886)
* lisp/files.el (executable-find): Use function `exec-suffixes'.
* lisp/net/tramp-integration.el
(tramp-connection-local-default-system-variables): Add also
`exec-suffixes'.
* lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): Use
default values of `path-separator', `null-device' and
`exec-suffixes'.
(tramp-smb-connection-local-default-system-variables):
New defconst. Add it to connection-local profiles.
This makes sure 'eww--track-changes' doesn't interfere with the initial
rendering process. Previously, this caused problems like <textareas>
consuming the rest of the page when reloading the document.
* lisp/net/eww.el (eww--change-tracker-id): New variable.
(eww-display-document): Temporarily unregister our change tracker.
* test/lisp/net/eww-tests.el (eww-test/tag/textarea/reload): New test.
* lisp/net/eww.el (eww-tag-textarea): Set 'start' after ensuring
preceding newline.
* test/lisp/net/eww-tests.el (eww-test/tag/textarea/starts-on-new-line):
New test.
* doc/misc/tramp.texi (Ad-hoc multi-hops):
tramp-file-name-with-method can be set connection-local.
* etc/NEWS: tramp-file-name-with-method can be set connection-local.
Presentational fixes and improvements.
* lisp/net/tramp-cmds.el (tramp-get-file-name-with-method): New defun.
(with-tramp-file-name-with-method, tramp-file-name-with-sudo): Use it.
(tramp-dired-find-file-with-sudo): Fix docstring.
* lisp/net/eww.el (eww-display-html): Check whether a readable form of
the document exists; if not, don't set ':readable' to t.
(eww-readable): Check whether a readable form of the document exists; if
not, warn the user and don't add to history.
(eww-readable-dom): Return nil if no readable form exists.
(eww-mode): Check the ':readable' property of 'eww-data' to show
"readable" state in the mode line.
* test/lisp/net/eww-tests.el
(eww-test/readable/default-readable/non-readable-page): New test
(bug#78958).
* etc/NEWS: Mention new file notification handler for Tramp "smb".
* lisp/filenotify.el (file-notify--expand-file-name): Fix the
remote case.
(file-notify-callback): Extend for "smb-notify".
(file-notify--call-handler): Fix debug message.
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch):
* lisp/net/tramp-sh.el (tramp-sh-gio-monitor-process-filter):
Use connection property "file-monitor".
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
Use `tramp-smb-handle-file-notify-add-watch'.
(tramp-smb-handle-delete-directory): Do not error if there is a
pending deletion of a directory under file-watch.
(tramp-smb-handle-file-notify-add-watch)
(tramp-smb-notify-process-filter): New defuns.
(tramp-smb-send-command): New optional argument NOOUTPUT.
(tramp-smb-wait-for-output): Improve debug message.
* lisp/net/tramp.el (tramp-directory-watched): New defun.
(tramp-accept-process-output, tramp-wait-for-regexp):
Improve debug message.
* test/lisp/filenotify-tests.el (top): Filter also for
"smb-notify". Set some other Tramp related variables.
(file-notify--test-wait-for-events)
(file-notify--test-with-actions-check)
(file-notify--test-with-actions): Add debug message.
(file-notify--test-cleanup, file-notify--deftest-remote):
Keep Tramp debugs buffer.
(file-notify--test-monitor): Check for "smb-notify".
(file-notify--deftest-remote): Call `file-notify-rm-all-watches'.
(file-notify--test-make-temp-name): Use a better name for parent
directory.
(file-notify--test-event-handler): Use `string-match-p'.
(file-notify--test-with-actions): Check also for the `stopped'
event as limit.
(file-notify-test03-events, file-notify-test04-autorevert)
(file-notify-test05-file-validity)
(file-notify-test07-many-events, file-notify-test08-backup)
(file-notify-test09-watched-file-in-watched-dir): Adapt tests for
"smb-notify".
(file-notify-test12-unmount): Skip for "smb-notify".
The base tag is necessary to correctly resolve relative links.
* lisp/net/eww.el (eww-readable-dom): Retain the base tag in addition to
the title/link tags. (Bug#78948)
* test/lisp/net/eww-tests.el (eww-test--wordy-page): Add a base tag.
(eww-test/readable/default-readable): Test that the base tag is retained.
This helps fix EWW readable mode on some web pages that use these tags,
like the FSF blog.
* lisp/net/eww.el (eww--walk-readability): Check for <style> and
<template> tags.
* lisp/net/eww.el (eww--walk-readability, eww-readable-dom): New
functions.
(eww-display-html): Call 'eww-readable-dom'.
(eww-readable): Call 'eww-readable-dom'. Don't copy over 'eww-data'
properties that our new readable page can handle on its own.
(eww-score-readability): Rewrite in terms of 'eww--walk-readability'.
Make obsolete.
(eww-highest-readability): Make obsolete.
* test/lisp/net/eww-tests.el (eww-test--lots-of-words)
(eww-test--wordy-page): New variables...
(eww-test/readable/toggle-display): ... use them.
(eww-test/readable/default-readable): Make sure that the readable page
includes the <title> and <link> tags (bug#77299).
Previously, navigating to an in-page anchor target would clear
'eww-data', removing many important properties like the original source
and the DOM. Among other things, this prevented enabling/disabling
readable mode.
* lisp/net/eww.el (eww-follow-link): Copy previous 'eww-data'.
This restores the ability to use 'kill-this-buffer' when a
keyboard event pops up the Global Menu. Instead of raising an
error if the command was not called by a mouse event, an error is
now raised if it was not called from a menu or a tool bar.
* lisp/menu-bar.el (kill-this-buffer): Remove optional EVENT from
argument list and "e" code from interactive spec. Adjust doc
string. Use 'last-command-event' to determine if command was
called from a menu or a tool bar. Use 'event--posn-at-point' in
test for frame.
* lisp/net/eudc-hotlist.el (eudc-hotlist-quit-edit):
* lisp/net/eudc.el (eudc-display-records, eudc-query-form):
* lisp/vc/pcvs.el (cvs-mode-map): Replace uses of
'kill-this-buffer' by 'kill-current-buffer'.
This ensures iCalendar attachments are always displayed correctly
(via `gnus-icalendar-mm-inline'), even when they have an incorrect
MIME type (looking at you Google Calendar).
* lisp/net/mailcap.el (mailcap-mime-extensions): Add a mapping from ".ics"
to "text/calendar". (Bug#78764)
* doc/misc/rcirc.texi: Mention new feature.
* etc/NEWS: Mention new feature.
* lisp/net/rcirc.el (rcirc-authinfo): Update type and documentation.
(rcirc-authenticate): Handle a special type to indicate that the
password is stored via auth-source.