summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2020-10-16 07:21:05 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2020-10-16 07:21:05 +0200
commit41d220dc6085cb8cd96cfcf65248eb83015c1b90 (patch)
treeee71ce13d43191588e3abccff364b800861fc470
parent7e3a95d8fd0ced4a75edea7b14b3038b1997d516 (diff)
downloademacs-41d220dc6085cb8cd96cfcf65248eb83015c1b90.tar.gz
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>.
-rw-r--r--doc/misc/gnus.texi5
-rw-r--r--etc/NEWS5
-rw-r--r--lisp/gnus/gnus-art.el1
-rw-r--r--lisp/gnus/gnus-async.el1
-rw-r--r--lisp/gnus/gnus.el8
5 files changed, 20 insertions, 0 deletions
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index f356dfe4d05..3f893e93c8c 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -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
diff --git a/etc/NEWS b/etc/NEWS
index 2a75e13effe..1838b6b38a7 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -435,6 +435,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)
groups. Most importantly, Gnus doesn't download external images from
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 2d9d5ece01a..2e9d85e39d8 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -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))
diff --git a/lisp/gnus/gnus-async.el b/lisp/gnus/gnus-async.el
index e3e81c8bbce..9b08e6a0ef8 100644
--- a/lisp/gnus/gnus-async.el
+++ b/lisp/gnus/gnus-async.el
@@ -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))
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index cb534260a65..c1cfddc87b3 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -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