Add a new variable to control Gnus Agent caching

* doc/misc/gnus.texi (Agent Variables): Document it.

* lisp/gnus/gnus-art.el (gnus-request-article-this-buffer): Ditto.

* lisp/gnus/gnus-async.el (gnus-async-article-callback): Use it.

* lisp/gnus/gnus.el (gnus-agent-eagerly-store-articles): New variable.

Includes work from Madhu <enometh@meer.net>.
This commit is contained in:
Lars Ingebrigtsen 2020-10-16 07:21:05 +02:00
parent 7e3a95d8fd
commit 41d220dc60
5 changed files with 20 additions and 0 deletions

View file

@ -19489,6 +19489,11 @@ Variable to control whether use the locally stored @acronym{NOV} and
articles when plugged, e.g., essentially using the Agent as a cache.
The default is non-@code{nil}, which means to use the Agent as a cache.
@item gnus-agent-eagerly-store-articles
@vindex gnus-agent-eagerly-store-articles
If non-@code{nil} (which is the default), store all articles read in
agentized groups in the Agent cache.
@item gnus-agent-go-online
@vindex gnus-agent-go-online
If @code{gnus-agent-go-online} is @code{nil}, the Agent will never

View file

@ -434,6 +434,11 @@ tags to be considered as well.
** Gnus
+++
*** New user option 'gnus-agent-eagerly-store-articles'.
If non-nil (which is the default), the Gnus Agent will store all read
articles in the Agent cache.
+++
*** New user option 'gnus-global-groups'.
Gnus handles private groups differently from public (i.e., NNTP-like)

View file

@ -7094,6 +7094,7 @@ If given a prefix, show the hidden text instead."
(gnus-backlog-enter-article
group article (current-buffer)))
(when (and gnus-agent
gnus-agent-eagerly-store-articles
(gnus-agent-group-covered-p group))
(gnus-agent-store-article article group)))
(setq result 'article))

View file

@ -227,6 +227,7 @@ that was fetched."
(narrow-to-region mark (point-max))
;; Put the articles into the agent, if they aren't already.
(when (and gnus-agent
gnus-agent-eagerly-store-articles
(gnus-agent-group-covered-p group))
(save-restriction
(narrow-to-region mark (point-max))

View file

@ -2285,6 +2285,14 @@ a string, be sure to use a valid format, see RFC 2616."
(gnus-message 1 "Edit your init file to make this change permanent.")
(sit-for 2)))
(defcustom gnus-agent-eagerly-store-articles t
"If non-nil, cache articles eagerly.
When using the Gnus Agent and reading an agentized newsgroup,
automatically cache the article in the agent cache."
:type 'boolean
:version "28.1")
;;; Internal variables