* Agent Commands:: \e$B3F%P%C%U%!!<$G$N?7$7$$L?Na\e(B
* Agent as Cache:: \e$B%(!<%8%'%s%H$OBg$-$J%-%c%C%7%e$G$b$"$k\e(B
* Agent Expiry:: \e$B8E$$5-;v$r>C$9J}K!\e(B
+* Agent Regeneration:: \e$BDL?.@ZCG$dB>$N;v8N$+$i2sI|$9$kJ}K!\e(B
* Agent and IMAP:: \e$B%(!<%8%'%s%H$r\e(B IMAP \e$B$G;H$&J}K!\e(B
* Outgoing Messages:: \e$BEj9F!"%a!<%k$r=P$9$H$-$K$J$K$,5/$3$k$N$+\e(B?
* Agent Variables:: \e$B%+%9%?%^%$%:$O3Z$7\e(B
Agent Commands
-* Group Agent Commands::
-* Summary Agent Commands::
-* Server Agent Commands::
+* Group Agent Commands:: \e$B%0%k!<%W$N@_Dj$H$=$l$i$NFbMF$N<hF@\e(B
+* Summary Agent Commands:: \e$B<jF0$GA*Br$7$?5-;v$r<hF@$9$k\e(B
+* Server Agent Commands:: \e$B%(!<%8%'%s%H$G%5%]!<%H$5$l$k%5!<%P!<$NA*Br\e(B
Scoring
@item gnus-select-article-hook
@vindex gnus-select-article-hook
\e$B$3$N%U%C%/$O5-;v$,A*Br$5$l$?$H$-$K>o$K8F$P$l$^$9!#=i4|@_Dj$G$O!"A*Br$5$l\e(B
-\e$B$?5-;v$N2<$K1#$l$F$$$k%9%l%C%I$r8+$;$k$h$&$K$J$C$F$$$^$9!#%(!<%8%'%s%H$,\e(B
-\e$B$9$Y$F$N4{FI$N5-;v$r%;!<%V$9$k$h$&$K$5$;$?$$>l9g$O!"$3$N%U%C%/\e(B
-\e$B$K\e(B @code{gnus-agent-fetch-selected-article} \e$B$rDI2C$9$k$3$H$G!"$=$l$r$9$k\e(B
-\e$B$O$:$G$9!#\e(B
+\e$B$?5-;v$N2<$K1#$l$F$$$k%9%l%C%I$r8+$;$k$h$&$K$J$C$F$$$^$9!#$"$J$?$,FI$s$@\e(B
+\e$B$=$l$>$l$N5-;v$r%(!<%8%'%s%H$K%;!<%V$5$;$?$$>l9g$O!"$3$N%U%C%/\e(B
+\e$B$K\e(B @code{gnus-agent-fetch-selected-article} \e$B$rDI2C$9$k$3$H$G!"$=$l$r9T$J\e(B
+\e$B$&$G$7$g$&!#\e(B
@item gnus-mark-article-hook
@vindex gnus-mark-article-hook
\e$B$9\e(B (@code{gnus-unseen-mark})\e$B!#\e(B@code{gnus-recent-mark} \e$B$H8+Hf$Y$F2<$5$$!#\e(B
@item
+@vindex gnus-downloaded-mark
+gnus \e$B%(!<%8%'%s%H\e(B @pxref{Agent Basics} \e$B$r;H$C$F$$$k$H$-!"5-;v\e(B
+\e$B$O\e(B unplugged (\e$B%*%U%i%$%s\e(B) \e$B$G8+$k$?$a$K%@%&%s%m!<%I$5$l$F$$$k$+$b$7$l$^$;\e(B
+\e$B$s!#\e(B@samp{%O} \e$B$N;EMM$r;H$C$F$$$k$H!"$=$l$i$N5-;v$K$O$=$N;EMM\e(B
+\e$B$K\e(B @samp{+} \e$B$N0u$,IU$-$^$9!#\e(B(\e$BJQ?t\e(B @code{gnus-downloaded-mark} \e$B$G$I$NJ8;z\e(B
+\e$B$r;H$&$+$r@)8f$7$^$9!#\e(B)
+
+@item
@vindex gnus-undownloaded-mark
gnus \e$B%(!<%8%'%s%H\e(B @pxref{Agent Basics} \e$B$r;H$C$F$$$k$H$-!"$$$/$D$+$N5-;v\e(B
-\e$B$O%@%&%s%m!<%I$5$l$F$$$J$$$+$b$7$l$^$;$s!#%*%U%i%$%s\e(B (unplugged) \e$B$N>uBV\e(B
-\e$B$G$O$=$N$h$&$J5-;v$r8+$k$3$H$,$G$-$^$;$s!#$=$l$i$N5-;v$K$O:G=i$N7e\e(B
-\e$B$K\e(B @samp{@@} \e$B$N0u$,IU$-$^$9!#\e(B(\e$BJQ?t\e(B @code{gnus-undownloaded-mark} \e$B$G$I$N\e(B
-\e$BJ8;z$r;H$&$+$r@)8f$7$^$9!#\e(B)
+\e$B$O%@%&%s%m!<%I$5$l$F$$$J$$$+$b$7$l$^$;$s!#\e(BUnplugged (\e$B%*%U%i%$%s\e(B) \e$B$N>uBV\e(B
+\e$B$G$O$=$N$h$&$J5-;v$r8+$k$3$H$,$G$-$^$;$s!#\e(B@samp{%O} \e$B$N;EMM$r;H$C$F$$$k$H!"\e(B
+\e$B$=$l$i$N5-;v$K$O$=$N;EMM$K\e(B @samp{-} \e$B$N0u$,IU$-$^$9!#\e(B(\e$BJQ\e(B
+\e$B?t\e(B @code{gnus-undownloaded-mark} \e$B$G$I$NJ8;z$r;H$&$+$r@)8f$7$^$9!#\e(B)
@item
@vindex gnus-downloadable-mark
@itemx #
@kindex # (\e$B35N,\e(B)
@kindex M P p (\e$B35N,\e(B)
-@findex gnus-pick-unmark-article-or-thread
-\e$B%9%l%C%I$+5-;v$rL$A*Br$K$7$^\e(B
-\e$B$9\e(B (@code{gnus-pick-unmark-article-or-thread})\e$B!#JQ\e(B
-\e$B?t\e(B @code{gnus-thread-hide-subtree} \e$B$,\e(B true \e$B$G$"$l$P!"$3$N%-!<$O%9%l%C%I\e(B
-\e$B$N:G=i$N5-;v$G;H$o$l$?$H$-$O%9%l%C%I$rL$A*Br$K$7$^$9!#$=$&$G$J$$>l9g$O!"\e(B
-\e$B$=$N5-;v$@$1$rL$A*Br$K$7$^$9!#$=$N9T$N%9%l%C%I$+5-;v$rL$A*Br$K$9$k$?$a$K\e(B
-\e$B$3$N%-!<$K?tCM@\F,0z?t$rM?$($k;v$,$G$-$^$9!#\e(B
+@findex gnus-summary-mark-as-processable
+\e$B8=:_$N5-;v$K%W%m%;%90u$rIU$1$^\e(B
+\e$B$9\e(B (@code{gnus-summary-mark-as-processable})\e$B!#\e(B
+@findex gnus-summary-unmark-as-processable
@item M P u
@itemx M-#
\e$B:G=i$KHa$7$$$*CN$i$;$,$R$H$D!#\e(B@file{gnus-namazu.el} \e$B$O!"8=;~E@$G$O!"\e(B
@code{nnml} \e$B%P%C%/%(%s%I$"$k$$$O\e(B @code{nnmh} \e$B%P%C%/%(%s%I$K$h$C$FJ]B8\e(B
\e$B$5$l$F$$$k5-;v$H!"\e(B@code{gnus-cache-enter-article} \e$B$K$h$C$F1JB32=$5$l$?\e(B
-\e$B5-;v$7$+!"<h$j07$&$3$H$,$G$-$^$;$s!#\e(B@code{nnimap} \e$B%P%C%/%(%s%I$d\e(B
-@code{nnmbox} \e$B%P%C%/%(%s%I$r;H$C$F$$$k?M$O!"$4$a$s$J$5$$!#\e(B
+\e$B5-;v$7$+!"<h$j07$&$3$H$,$G$-$^$;$s!#\e(B@code{nnimap} \e$B%P%C%/%(%s%I\e(B
+\e$B$d\e(B @code{nnmbox} \e$B%P%C%/%(%s%I$r;H$C$F$$$k?M$O!"$4$a$s$J$5$$!#\e(B
\e$B$=$l$G$O5$$r<h$jD>$7$F!"$^$:!"\e(BNamazu \e$B$r;H$($k$h$&$K$7$^$7$g$&!#>\$7$$\e(B
\e$B$3$H$O!"<!$N%Z!<%8$GCN$k$3$H$,$G$-$^$9!#\e(B
* Agent Commands:: \e$B3F%P%C%U%!!<$G$N?7$7$$L?Na\e(B
* Agent as Cache:: \e$B%(!<%8%'%s%H$OBg$-$J%-%c%C%7%e$G$b$"$k\e(B
* Agent Expiry:: \e$B8E$$5-;v$r>C$9J}K!\e(B
+* Agent Regeneration:: \e$BDL?.@ZCG$dB>$N;v8N$+$i2sI|$9$kJ}K!\e(B
* Agent and IMAP:: \e$B%(!<%8%'%s%H$r\e(B IMAP \e$B$G;H$&J}K!\e(B
* Outgoing Messages:: \e$BEj9F!"%a!<%k$r=P$9$H$-$K$J$K$,5/$3$k$N$+\e(B?
* Agent Variables:: \e$B%+%9%?%^%$%:$O3Z$7\e(B
\e$B$GF0:n$7!"\e(Bgnus \e$B%(!<%8%'%s%H$N@Z$jN%$7\e(B/\e$B:9$79~$_>uBV$r@Z$jBX$($^$9!#\e(B
@menu
-* Group Agent Commands::
-* Summary Agent Commands::
-* Server Agent Commands::
+* Group Agent Commands:: \e$B%0%k!<%W$N@_Dj$H$=$l$i$NFbMF$N<hF@\e(B
+* Summary Agent Commands:: \e$B<jF0$GA*Br$7$?5-;v$r<hF@$9$k\e(B
+* Server Agent Commands:: \e$B%(!<%8%'%s%H$G%5%]!<%H$5$l$k%5!<%P!<$NA*Br\e(B
@end menu
@node Group Agent Commands
@item J c
@kindex J c (\e$B%(!<%8%'%s%H\e(B \e$B35N,\e(B)
@findex gnus-agent-catchup
-\e$B%@%&%s%m!<%I0u$NL5$$5-;v$rA4$F4{FI$K$9$k\e(B (@code{gnus-agent-catchup})\e$B!#\e(B
+\e$B%-%c%C%7%e$5$l$F$$$J$$!"%@%&%s%m!<%I$5$l$F$$$J$$!"$^$?$O%@%&%s%m!<%I$G$-\e(B
+\e$B$J$$$9$Y$F$N5-;v$r4{FI$K$9$k\e(B (@code{gnus-agent-catchup})\e$B!#\e(B
+
+@item J S
+@kindex J S (\e$B%(!<%8%'%s%H\e(B \e$B35N,\e(B)
+@findex gnus-agent-fetch-group
+\e$B$3$N%0%k!<%W$N$9$Y$F$NK>$^$7$$5-;v\e(B (@pxref{Agent Categories} \e$B;2>H\e(B) \e$B$r%@\e(B
+\e$B%&%s%m!<%I$9$k!#\e(B(@code{gnus-agent-fetch-group})\e$B!#\e(B
+
+@item J s
+@kindex J s (\e$B%(!<%8%'%s%H\e(B \e$B35N,\e(B)
+@findex gnus-agent-fetch-series
+\e$B$3$N%0%k!<%W$N$9$Y$F$N%W%m%;%90u$,IU$$$?5-;v$r%@%&%s%m!<%I$9$k!#\e(B
+(@code{gnus-agent-fetch-series})\e$B!#\e(B
@item J u
@kindex J u (\e$B%(!<%8%'%s%H\e(B \e$B35N,\e(B)
@findex gnus-agent-summary-fetch-group
-\e$B8=:_$N%0%k!<%W$N%@%&%s%m!<%I2DG=$J5-;v$r!"$9$Y$F%@%&%s%m!<%I$7$^\e(B
-\e$B$9\e(B (@code{gnus-agent-summary-fetch-group})\e$B!#\e(B
+\e$B8=:_$N%0%k!<%W$N%@%&%s%m!<%I2DG=$J5-;v$r!"$9$Y$F%@%&%s%m!<%I$9\e(B
+\e$B$k\e(B (@code{gnus-agent-summary-fetch-group})\e$B!#\e(B
@end table
@node Server Agent Commands
\e$BE*$G$b$J$/!"0lC6;O$a$F$7$^$C$?$i\e(B (@kbd{C-g} \e$B$d$=$NB>$G\e(B) \e$BCfCG$9$k$3$H$b$"\e(B
\e$B$^$jNI$$$3$H$G$O$"$j$^$;$s!#\e(B
+\e$BNc$($P\e(B @code{gnus-request-expire-articles} \e$B$N$h$&$JB>$N4X?t$O!"%(!<%8%'\e(B
+\e$B%s%H$r%0%k!<%W$KF14|$5$;$k$?$a$K\e(B @code{gnus-agent-expire} \e$B$r<B9T$9$k$+$b\e(B
+\e$B$7$l$J$$$3$H$KCm0U$7$F2<$5$$!#\e(B
+
@code{gnus-agent-expire-days} \e$B$O@55,I=8=\e(B/\e$BF|?t$N%Z%"$N%j%9%H$G$"$C$F$b9=\e(B
\e$B$$$^$;$s!#@55,I=8=$O%0%k!<%WL>$K%^%C%A$7!"0[$J$k%0%k!<%W$G0[$J$k4|8B@Z$l\e(B
\e$B>C5n$r9T$J$&$3$H$r2DG=$K$7$^$9!#\e(B
@end lisp
\e$B$b$7%j%9%H$N7A<0$r;H$&>l9g$O!":G8e$NMWAG$O%G%#%U%)%k%H$N%a%=%C%I!"$9$J$o\e(B
-\e$B$A$9$Y$F$N%0%k!<%W$K%^%C%A$9$k$b$N$K$7$J$1$l$P$J$j$^$;$s!#\e(B
+\e$B$A$9$Y$F$N%0%k!<%W$K%^%C%A$9$k$b$N$K$7$J$1$l$P$J$j$^$;$s!#@55,I=8=$K4X$7\e(B
+\e$B$F!"$5$i$K$=$l$O%0%k!<%WL>$N@hF,$+$i%^%C%A$7$J$1$l$P$J$j$^$;$s!#\e(B
@vindex gnus-agent-expire-all
@code{gnus-agent-expire-all} \e$B$,\e(B @code{nil} \e$B$G$J$1$l$P!"$3$NL?Na$OA4$F$N\e(B
\e$B=i4|@_DjCM\e(B) \e$B$G$"$l$P!"4{FI5-;v$N$_$,>C5n$NBP>]$H$J$j!"L$FI!"2D;k!"J]N15-\e(B
\e$B;v$O$5$i$KL54|8B$KJ];}$7$^$9!#\e(B
-@findex gnus-agent-regenerate
\e$B4|8B@Z$l>C5n$5$l$F$$$k$O$:$J$N$K;D$C$F$$$k5-;v$r8+$D$1$?$J$i$P!"$?$V$s$$\e(B
\e$B$/$D$+$N\e(B gnus \e$B%(!<%8%'%s%H%U%!%$%k$,2u$l$F$$$^$9!#\e(B
@code{gnus-agent-regenerate} \e$B$O!"5/$3$j$&$kLdBj$r=$I|$9$k$?$a$NFCJL$J%3\e(B
\e$B%^%s%I$G$9!#\e(B
+@c TRANSLATEME!
+@node Agent Regeneration
+@subsection Agent Regeneration
+
+@cindex Agent Regeneration
+@cindex Gnus Agent Regeneration
+@cindex regeneration
+
+The local data structures used by @code{nnagent} may become corrupted
+due to certain exceptional conditions. When this happens,
+@code{nnagent} functionality may degrade or even fail. The solution
+to this problem is to repair the local data structures by removing all
+internal inconsistencies.
+
+For example, if your connection to your server is lost while
+downloaded articles into the agent, the local data structures will not
+know about articles downloaded prior to the connection failure.
+Running @code{gnus-agent-regenerate} or
+@code{gnus-agent-regenerate-group} will update the data structures
+such that you don't need to download these articles a second time.
+
+@findex gnus-agent-regenerate
+@kindex M-x gnus-agent-regenerate
+The command @code{gnus-agent-regenerate} will perform
+@code{gnus-agent-regenerate-group} on every agentized group. While
+you can run @code{gnus-agent-regenerate} in any buffer, it is strongly
+recommended that you first close all summary buffers.
+
+@findex gnus-agent-regenerate-group
+@kindex M-x gnus-agent-regenerate-group
+The command @code{gnus-agent-regenerate-group} uses the local copies
+of individual articles to repair the local NOV(header) database. It
+then updates the internal data structures that document which articles
+are stored locally. An optional argument will mark articles in the
+agent as unread.
+
@node Agent and IMAP
@subsection \e$B%(!<%8%'%s%H$r\e(B IMAP \e$B$G;H$&J}K!\e(B
\e$B%P!<$r%*%s%i%$%s>uBV$K$9$k$+$I$&$+$r?R$M$^$9!#$=$l0J30$NCM$@$C$?$i!"%*%U\e(B
\e$B%i%$%s>uBV$N%5!<%P!<$O<+F0E*$K%*%s%i%$%s>uBV$K$J$j$^$9!#\e(B
+@c TRANSLATEME!
+@item gnus-agent-mark-unread-after-downloaded
+@vindex gnus-agent-mark-unread-after-downloaded
+If @code{gnus-agent-mark-unread-after-downloaded} is non-@code{nil},
+mark articles as unread after downloading. The default is t.
+
+@item gnus-agent-consider-all-articles
+@vindex gnus-agent-consider-all-articles
+If @code{gnus-agent-consider-all-articles} is non-@code{nil}, the
+agent will fetch all missing headers. When @code{nil}, the agent will
+fetch only new headers. The default is @code{nil}.
+
+@item gnus-agent-max-fetch-size
+@vindex gnus-agent-max-fetch-size
+The agent fetches articles into a temporary buffer prior to parsing
+them into individual files. To avoid exceeding the max. buffer size,
+the agent alternates between fetching and parsing until all articles
+have been fetched. @code{gnus-agent-max-fetch-size} provides a size
+limit to control how often the cycling occurs. A large value improves
+performance. A small value minimizes the time lost should the
+connection be lost while fetching (You may need to run
+@pxref{gnus-agent-regenerate-group} to update the group's state.
+However, all articles parsed prior to loosing the connection will be
+available while unplugged).
+
@item gnus-server-unopen-status
@vindex gnus-server-unopen-status
\e$B$?$V$s%(!<%8%'%s%HJQ?t$G$O$J$$$,%(!<%8%'%s%H$KL)@\$K4XO"$9$k$3$NJQ?t$O!"\e(B
@end table
\e$BMWLs$9$k$H!"\e(Bgnus \e$B$,@Z$jN%$5$l$F$$$k$H$-$O%m!<%+%k$KJ]B8$5$l$?5-;v$r8+$k\e(B
-\e$B$@$1$G$9!#@\B3$5$l$F$$$k$H$-$O\e(B ISP \e$B$HOC$9$@$1$G!"$+$D%m!<%+%k$K;}$C$F$$\e(B
-\e$B$k5-;v$r;H$$$^$9!#\e(B
+\e$B$@$1$G$9!#@\B3$5$l$F$$$k$H$-$O\e(B ISP \e$B$HOC$7!"$+$D%m!<%+%k$K;}$C$F$$$k5-;v\e(B
+\e$B$b;H$&$+$b$7$l$^$;$s!#\e(B
@node Scoring
@chapter \e$B%9%3%"\e(B
* Agent Commands:: New commands for all the buffers.
* Agent as Cache:: The Agent is a big cache too.
* Agent Expiry:: How to make old articles go away.
+* Agent Regeneration:: How to recover from lost connections and other accidents.
* Agent and IMAP:: How to use the Agent with IMAP.
* Outgoing Messages:: What happens when you post/mail something?
* Agent Variables:: Customizing is fun.
Agent Commands
-* Group Agent Commands::
-* Summary Agent Commands::
-* Server Agent Commands::
+* Group Agent Commands:: Configure groups and fetch their contents.
+* Summary Agent Commands:: Manually select then fetch specific articles.
+* Server Agent Commands:: Select the servers that are supported by the agent.
Scoring
@item gnus-select-article-hook
@vindex gnus-select-article-hook
This hook is called whenever an article is selected. By default it
-exposes any threads hidden under the selected article. If you wish
-that the Agent saves all articles you read, putting
-@code{gnus-agent-fetch-selected-article} on this hook should do it.
+exposes any threads hidden under the selected article. If you would
+like each article to be saved in the Agent as you read it, putting
+@code{gnus-agent-fetch-selected-article} on this hook will do so.
@item gnus-mark-article-hook
@vindex gnus-mark-article-hook
Compare with @code{gnus-recent-mark}.
@item
+@vindex gnus-downloaded-mark
+When using the Gnus agent @pxref{Agent Basics}, articles may be
+downloaded for unplugged (offline) viewing. If you are using the
+@samp{%O} spec, these articles get the @samp{+} mark in that spec.
+(The variable @code{gnus-downloaded-mark} controls which character to
+use.)
+
+@item
@vindex gnus-undownloaded-mark
-When using the Gnus agent @pxref{Agent Basics}, some articles might not
-have been downloaded. Such articles cannot be viewed while you are
-offline (unplugged). These articles get the @samp{@@} mark in the
-first column. (The variable @code{gnus-undownloaded-mark} controls
-which character to use.)
+When using the Gnus agent @pxref{Agent Basics}, some articles might
+not have been downloaded. Such articles cannot be viewed while you
+are unplugged (offline). If you are using the @samp{%O} spec, these
+articles get the @samp{-} mark in that spec. (The variable
+@code{gnus-undownloaded-mark} controls which character to use.)
@item
@vindex gnus-downloadable-mark
* Agent Commands:: New commands for all the buffers.
* Agent as Cache:: The Agent is a big cache too.
* Agent Expiry:: How to make old articles go away.
+* Agent Regeneration:: How to recover from lost connections and other accidents.
* Agent and IMAP:: How to use the Agent with IMAP.
* Outgoing Messages:: What happens when you post/mail something?
* Agent Variables:: Customizing is fun.
@menu
-* Group Agent Commands::
-* Summary Agent Commands::
-* Server Agent Commands::
+* Group Agent Commands:: Configure groups and fetch their contents.
+* Summary Agent Commands:: Manually select then fetch specific articles.
+* Server Agent Commands:: Select the servers that are supported by the agent.
@end menu
@item J c
@kindex J c (Agent Summary)
@findex gnus-agent-catchup
-Mark all undownloaded articles as read (@code{gnus-agent-catchup}).
+Mark all articles as read (@code{gnus-agent-catchup}) that are neither cached, downloaded, nor downloadable.
+
+@item J S
+@kindex J S (Agent Summary)
+@findex gnus-agent-fetch-group
+Download all eligible (See @pxref{Agent Categories}) articles in this group.
+(@code{gnus-agent-fetch-group}).
+
+@item J s
+@kindex J s (Agent Summary)
+@findex gnus-agent-fetch-series
+Download all processable articles in this group.
+(@code{gnus-agent-fetch-series}).
@item J u
@kindex J u (Agent Summary)
particularly fast or efficient, and it's not a particularly good idea to
interrupt it (with @kbd{C-g} or anything else) once you've started it.
+Note that other functions, e.g. @code{gnus-request-expire-articles},
+might run @code{gnus-agent-expire} for you to keep the agent
+synchronized with the group.
+
@code{gnus-agent-expire-days} can also be a list of regexp/day pairs.
The regexps will be matched against group names to allow differing
expiry in different groups.
@end lisp
If you use the list form, the last element must always be the default
-method---it must always match all groups.
+method---it must always match all groups. Also, for a regexp to match,
+it must match from the beginning of the group's name.
@vindex gnus-agent-expire-all
If @code{gnus-agent-expire-all} is non-@code{nil}, this command will
(which is the default), only read articles are eligible for expiry, and
unread, ticked and dormant articles will be kept indefinitely.
-@findex gnus-agent-regenerate
If you find that some articles eligible for expiry are never expired,
perhaps some Gnus Agent files are corrupted. There's a special
-@code{gnus-agent-regenerate} command to fix possible problems.
+@pxref{gnus-agent-regenerate} command to fix possible problems.
+
+@node Agent Regeneration
+@subsection Agent Regeneration
+
+@cindex Agent Regeneration
+@cindex Gnus Agent Regeneration
+@cindex regeneration
+
+The local data structures used by @code{nnagent} may become corrupted
+due to certain exceptional conditions. When this happens,
+@code{nnagent} functionality may degrade or even fail. The solution
+to this problem is to repair the local data structures by removing all
+internal inconsistencies.
+
+For example, if your connection to your server is lost while
+downloaded articles into the agent, the local data structures will not
+know about articles downloaded prior to the connection failure.
+Running @code{gnus-agent-regenerate} or
+@code{gnus-agent-regenerate-group} will update the data structures
+such that you don't need to download these articles a second time.
+
+@findex gnus-agent-regenerate
+@kindex M-x gnus-agent-regenerate
+The command @code{gnus-agent-regenerate} will perform
+@code{gnus-agent-regenerate-group} on every agentized group. While
+you can run @code{gnus-agent-regenerate} in any buffer, it is strongly
+recommended that you first close all summary buffers.
+
+@findex gnus-agent-regenerate-group
+@kindex M-x gnus-agent-regenerate-group
+The command @code{gnus-agent-regenerate-group} uses the local copies
+of individual articles to repair the local NOV(header) database. It
+then updates the internal data structures that document which articles
+are stored locally. An optional argument will mark articles in the
+agent as unread.
@node Agent and IMAP
@subsection Agent and IMAP
-The Agent work with any Gnus back end, including nnimap. However,
+The Agent works with any Gnus back end, including nnimap. However,
since there are some conceptual differences between @sc{nntp} and
@sc{imap}, this section (should) provide you with some information to
make Gnus Agent work smoother as a @sc{imap} Disconnected Mode client.
other value, all offline servers will be automatically switched into
online status.
+@item gnus-agent-mark-unread-after-downloaded
+@vindex gnus-agent-mark-unread-after-downloaded
+If @code{gnus-agent-mark-unread-after-downloaded} is non-@code{nil},
+mark articles as unread after downloading. The default is t.
+
+@item gnus-agent-consider-all-articles
+@vindex gnus-agent-consider-all-articles
+If @code{gnus-agent-consider-all-articles} is non-@code{nil}, the
+agent will fetch all missing headers. When @code{nil}, the agent will
+fetch only new headers. The default is @code{nil}.
+
+@item gnus-agent-max-fetch-size
+@vindex gnus-agent-max-fetch-size
+The agent fetches articles into a temporary buffer prior to parsing
+them into individual files. To avoid exceeding the max. buffer size,
+the agent alternates between fetching and parsing until all articles
+have been fetched. @code{gnus-agent-max-fetch-size} provides a size
+limit to control how often the cycling occurs. A large value improves
+performance. A small value minimizes the time lost should the
+connection be lost while fetching (You may need to run
+@pxref{gnus-agent-regenerate-group} to update the group's state.
+However, all articles parsed prior to loosing the connection will be
+available while unplugged).
+
@item gnus-server-unopen-status
@vindex gnus-server-unopen-status
Perhaps not a Agent variable, but closely related to the Agent, this
@end table
In short, when Gnus is unplugged, it only looks into the locally stored
-articles; when it's plugged, it only talks to your ISP and also uses the
+articles; when it's plugged, it talks to your ISP and may also use the
locally stored articles.