* lisp/emacs-lisp/eieio-base.el (eieio-persistent-validate/fix-slot-value):
Make handling of hash tables and vectors recursive. This is
necessary because the write process, in `eieio-override-prin1' is
also recursive. With any luck, this will be the last fix of its
kind. If that's true, cherry-pick to Emacs 26.2 later on.
* lisp/gnus/nnimap.el (nnimap-transform-headers): Unfold certain
pathological IMAP headers more correctly (bug#25502). Perhaps
this function should be re-implemented.
* doc/misc/emacs-mime.texi (mailcap): Document the variable and
how mailcap chooses which viewer to use.
* lisp/net/mailcap.el (mailcap-prefer-mailcap-viewers): New variable.
(mailcap-mime-info): Use it.
* lisp/net/gnutls.el (open-gnutls-stream): IDNA-encode hostnames
before passing them on to gnutls for verification.
* lisp/net/network-stream.el (network-stream-open-starttls): Ditto.
* lisp/url/url-http.el (url-http--get-referer): Be IDNA-aware.
(url-http-create-request): Don't de-Unicodify host names, because
they may be IDNA names (that are later encoded).
* lisp/url/url-util.el (url-domain): Be IDNA-aware when doing
domain name computations.
* lisp/auth-source.el (auth-source-secrets-search): Do not
suppress creation.
(auth-source-secrets-create): Implement it. (Bug#30246)
* lisp/net/secrets.el (secrets-debug): Set default to nil.
* test/lisp/auth-source-tests.el (secrets): Require it.
(auth-source-test-secrets-create-secret): New test.
* doc/misc/url.texi (Customization): Describe the new user
option url-lastloc-privacy-level.
* lisp/net/eww.el (eww-render): Set url-current-lastloc to the
url we are rendering, to get the referer header right on
subsequent requests.
* lisp/url/url-http.el (url-http--get-referer): New function
to determine which referer to send, if any, considering the
users privacy settings and the target url we are visiting.
(url-http-referer): New variable keeping track of the referer
computed by url-http--get-referer
(url-http-create-request): Use url-http-referer instead of the
optional argument to set up the referer header. Leave
checking of privacy settings to url-http--get-referer.
(url-http): Set up url-http-referer by using
url-http--get-referer.
* lisp/url/url-queue.el (url-queue): New struct member
context-buffer for keeping track of the context a queued job
started from.
(url-queue-retrieve): Store the current buffer in the queue
object.
(url-queue-start-retrieve): Make sure url-retrieve is called
in the context of the original buffer, if available.
* lisp/url/url-util.el (url-domain): New function to determine
the domain of a given URL.
* lisp/url/url-vars.el (url-current-lastloc): New variable to
keep track of the desired "last location" (referer header).
(url-lastloc-privacy-level): New custom setting for more
fine-grained control over how lastloc (referer) is sent to
servers (Bug#27012).
* lisp/net/eww.el (eww-render): When we have a #link link, then
url.el will say that we have a redirect to a non-#link link, so
get the anchor before url.el mangles the URL (bug#28441).
(eww-display-html): ... and don't get it here, because it's gone
by now.
Test URL: http://www.gnu.org/s/hyperbole/#summary
* lisp/net/eww.el (eww-follow-link): Ditto.
* lisp/net/shr.el (shr-selected-link): New face (bug#25096).
(shr--blink-link): New function to blink links.
(shr--current-link-region): New utility function.
(shr-browse-url): Use it to blink external links.
Blinking the link allows the user to get immediate feedback that the
action has been performed. Opening the external browser may take a
while, and may not be obvious that is going on.
* lisp/gnus/nnimap.el (nnimap-sequence): Start the sequence at a
higher number to avoid reusing the sequence number used by
`open-network-stream' (bug#30022).
* lisp/net/shr.el (shr-tag-label): Remove so that labels don't
break lines (because they shouldn't: They're usually part of a
selection interface) (bug#30557).
From: Lars Ingebrigtsen <larsi@gnus.org>
* lisp/dom.el (dom-texts): Don't return contents of <script> as
text, because it isn't and makes reasoning about textual parts
more difficult.
* lisp/emacs-lisp/crm.el (completing-read-multiple):
Consider head of DEF argument when specified as a list,
as per completing-read-default. (bug#30072)
* doc/misc/gnus.texi (Summary Mail Commands): Ditto.
* doc/misc/message.texi (Forwarding): Note the new default.
* lisp/gnus/message.el (message-forward-as-mime): Default to nil
since it's been reported that many recipients can't read MIME
digest forwards (bug#24878).
* doc/misc/emacs-mime.texi (Display Customization): Remove the doc
for the nil case of mm-inline-text-html.
* doc/misc/mh-e.texi (HTML): Ditto.
* lisp/gnus/mm-view.el (mm-inline-text-html): If no
mm-text-html-renderer is specified, just insert the raw text
instead of erroring out (bug#30870).
* lisp/gnus/gnus-start.el (gnus-save-newsrc-file): Don't error out
here so that we can proceed with shutting down Gnus without saving
the .newsrc.eld file when it has been updated externally (bug#23761).
* lisp/gnus/nnmail.el (nnmail-expiry-target-group): Always pass in
the `last' parameter to the acceptance function so that backends
like nnml save the .overview file (bug#24499). This may slow down
some use cases.
* lisp/gnus/message.el (message-simplify-recipients)
(message-recipients-without-full-name): Made obsolete since
Message now simplifies all addresses by default.
* lisp/gnus/message.el (message--alter-repeat-address): New function.
(message-get-reply-headers): Use it to remove repetitions on the
form "foo@bar.com" <foo@bar.com>.