* lisp/gnus/gnus-group.el (gnus-group-jump-to-group): Return
whether we found the group.
(gnus-info-clear-data): Make the group visible if it wasn't.
* lisp/gnus/gnus-sum.el (gnus-group-make-articles-read): Ditto.
(gnus-update-read-articles): Ditto.
https://lists.gnu.org/archive/html/emacs-devel/2018-04/msg00207.html
* lisp/simple.el (next-error-buffer): New buffer-local variable
instead of making buffer-local next-error-last-buffer. (Bug#20489)
(next-error-found-function): New defcustom.
(next-error-buffer-on-selected-frame): Use t for avoid-current arg
of next-error-buffer-p.
(next-error-find-buffer): Add second rule for using the current
next-error-buffer if it's not visited by other navigation.
(next-error, next-error-internal): Call next-error-found.
(next-error-found): New function with body extracted mostly from
next-error.
* lisp/vc/add-log.el (change-log-goto-source-internal): New function
with body from change-log-goto-source.
(change-log-goto-source): Call change-log-goto-source-internal and
next-error-found.
(change-log-next-error): Call change-log-goto-source-internal
instead of change-log-goto-source.
(change-log-mode): Don't set next-error-last-buffer. (Bug#28864)
* lisp/vc/diff-mode.el (diff-goto-source): Call next-error-found.
* lisp/progmodes/xref.el (xref-goto-xref): Call next-error-found.
* lisp/replace.el (occur-mode-goto-occurrence)
(occur-mode-goto-occurrence-other-window)
(occur-mode-display-occurrence): Call next-error-found.
(occur-next-error): Remove unnecessary with-current-buffer.
(Bug#27362, bug#30646)
* lisp/net/shr.el (shr-insert-document): The computation of the
window width is apparently one pixel too wide for the shr line
folding algorithm (bug#31196).
* lisp/gnus/gnus-sum.el (gnus-summary-exit): Place point correctly
when exiting with `q' (and the like) from the article buffer when
only the article buffer is displayed (bug#31195). This is
apparently yet another fall-out from the "preserve-visible-point-
in-windows" patches of yesteryear...
* lisp/mail/sendmail.el (mail-sendmail-undelimit-header): Actually
remove the mail header separator (bug#17488). In all the cases
where this is called, the separator will probably already have
been removed, so the only thing this does is place point at the
end of the headers.
* lisp/net/eudc.el: Enable lexical binding.
(cl-lib): Always require cl-lib, not only when byte compiling.
(eudc-mode-map): Set parent keymap within let form.
(eudc-update-local-variables): Use #' read syntax for function
argument to map function.
(eudc-select): Likewise.
(eudc-format-attribute-name-for-display): Likewise
(eudc-filter-duplicate-attributes): Likewise.
(eudc-format-query): Likewise.
(eudc-expand-inline): Likewise.
(eudc-query-form): Likewise.
(eudc-print-attribute-value): Use mapc instead of mapcar.
(eudc-filter-partial-records): Use cl-every.
(eudc-distribute-field-on-records): Use delete-dups to
simplify function.
(eudc-expand-inline): Replace while with dolist and let form.
(eudc-query-form): Set inhibit-read-only after switching
buffers. Remove useless and call.
(eudc-load-eudc): Add a FIXME comment.
* lisp/url/url-cookie.el (url-cookie--generate-buffer): Factor out
into its own function.
(url-cookie-delete): Use it to make the buffer look consistent
after deleting a cookie.
* lisp/url/url-cookie.el (url-cookie-write-file): If
`url-cookie-file' isn't set (due to url.el not being used yet),
don't error out in this function (bug#23183).
* lisp/files.el (abort-if-file-too-large): There's no point in
warning the user about a too-large file if we're not able to read
it (bug#29549). Hopefully this doesn't introduce a race condition
between this test and the `file-readable-p' test later.
* lisp/mail/sendmail.el (sendmail-query-once): Only save the
mailer choice after we've sent the mail, so that if that fails,
the user has an easy way to back out of the choice and make
another (bug#14487).
(sendmail-query-user-about-smtp): Return the choice; don't save it.
This reverts commit 8b50ae8b22.
According to tests in bug#27656 by OGAWA Hirofumi, this patch
led to wrong results when binding
(dolist (addr '("Rasmus <rasmus@gmx.us>" "Rasmus <mbox@gmx.us>"))
(dolist (ignore-single '(t nil))
(dolist (ignore-same '(t nil))
(let ((mail-extr-ignore-single-names ignore-single)
(mail-extr-ignore-realname-equals-mailbox-name ignore-same))
(message "%s" (mail-extract-address-components addr))))))
in combination.
* lisp/net/shr.el (shr-insert-document): Bind `max-specpdl-size'
here... (bug#30675).
(shr-descend): So that we can increase it temporarily here if the
user wants to.
* doc/misc/gnus.texi (Summary Message Commands): Document it.
* lisp/gnus/gnus-msg.el (gnus-summary-attach-article): New command
and keystroke (bug#19788).
* lisp/gnus/gnus-sum.el (gnus-summary-make-menu-bar): Menu bar
entry for it.
* lisp/gnus/gnus-group.el (gnus-group-get-new-news-this-group):
Divert to call `gnus-activate-group' with the SCAN argument set,
if request-group-scan is not defined for the backend. Ensure that
the server is open when calling `gnus-request-group-scan'
(bug#22649).
* lisp/gnus/gnus-group.el
(gnus--abort-on-unsaved-message-buffers): New function (bug#28843).
(gnus-group-exit): Use it to abort exit if we have unsaved Message
buffers.
* lisp/net/shr.el (shr-fill-line): If we have an indentation
that's wider than the width of what we're trying to fill, just
give up. This avoids an infloop when `shr-use-fonts' in nil.
* lisp/gnus/nntp.el (nntp-copy-to-buffer): Apparently `insert' now
behaves more like string-make-multibyte, but it now behaves more
like string-to-multibyte, so remove that call here. I'm not quite
sure I follow that logic, but apparently there are no ill effects.
* lisp/gnus/nnheader.el (nnheader-insert-buffer-substring): Ditto.
* lisp/gnus/nndoc.el (nndoc-oe-dbx-type-p): My testing shows that
no matter whether we're in a unibyte or a multibyte buffer, doing
the looking-at here without the string-to-multibyte, we'll get a
match. We did not get a match with the call in and if we were in
a unibyte buffer, but we presumably never are.
* lisp/gnus/gnus-group.el (gnus-update-group-mark-positions):
Rewrite a call to string-to-multibyte that didn't even work.
After the rewrite it gives the correct result and should allow
people to customise Gnus group process mark positions (but that's
a pretty obscure feature).
* lisp/gnus/nnmail.el (nnmail-insert-xref): Rewrite
string-as-unibyte/string-as-multibyte logic and confirm that the
result is the same in both multibyte and unibyte buffers after the
change.
* lisp/gnus/nnmail.el (nnmail-parse-active): Remove call to
string-as-unibyte; the alist before and after the change are
`equal' to each other, so it should presumably have no impact.