*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Sat, 13 Sep 1997 19:48:10 +0000 (19:48 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Sat, 13 Sep 1997 19:48:10 +0000 (19:48 +0000)
27 files changed:
lisp/ChangeLog
lisp/gnus-agent.el [new file with mode: 0644]
lisp/gnus-cite.el
lisp/gnus-demon.el
lisp/gnus-dup.el
lisp/gnus-group.el
lisp/gnus-int.el
lisp/gnus-picon.el
lisp/gnus-salt.el
lisp/gnus-spec.el
lisp/gnus-srvr.el
lisp/gnus-start.el
lisp/gnus-sum.el
lisp/gnus-topic.el
lisp/gnus-util.el
lisp/gnus-win.el
lisp/gnus-xmas.el
lisp/gnus.el
lisp/nnagent.el [new file with mode: 0644]
lisp/nnheader.el
lisp/nnkiboze.el
lisp/nnml.el
lisp/nnoo.el
lisp/nntp.el
lisp/nnvirtual.el
texi/gnus.texi
texi/message.texi

index 0c37249..0de2702 100644 (file)
-Sat Sep 13 19:48:49 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+Sat Sep 13 21:21:38 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
-       * gnus.el: Gnus v5.4.67 is released.
+       * gnus.el: Quassia Gnus v0.1 is released.
 
-Wed Sep 10 02:59:30 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+Sat Sep 13 21:16:07 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
-       * message.el (message-cleanup-headers): Don't "fix" Newsgroups
-       headers in bodies.remove 
-
-Tue Sep  9 04:02:33 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.66 is released.
-
-Tue Sep  9 03:09:29 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-topic.el (gnus-topic-check-topology): Protect against nil
-       entries. 
-
-       * nnfolder.el (nnfolder-request-regenerate): Typo.
-
-       * gnus-art.el (gnus-button-alist): mailto urls didn't work.
-
-Tue Sep  9 02:48:49 1997  Jay Sachs  <sachs@bull.cs.williams.edu>
-
-       * gnus-score.el (gnus-score-edit-current-scores): Switch on score
-       mode in the right buffer.
-
-Sat Aug 16 20:36:31 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.65 is released.
-
-Sat Aug 16 20:10:09 1997  Sigbjorn Finne  <sof@dcs.gla.ac.uk>
-
-       * gnus-srvr.el (gnus-browse-foreign-server): Message fix.
-
-Sat Aug 16 17:44:31 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-start.el (gnus-1): Don't read the dribble file
-       unconditionally in slaves.
-
-       * gnus-sum.el (gnus-summary-edit-article): Restore original date
-       header. 
-
-       * gnus-start.el (gnus-1): Set gnus-slave earlier.
-
-       * gnus-sum.el (gnus-parent-headers): Would infloop.
-
-       * message.el (message-make-message-id): Make better Message-ID
-       when superseding.
-
-Sat Aug 16 17:36:25 1997  Jason Rumney  <jasonr@pec.co.nz>
-
-       * nnkiboze.el (nnkiboze-request-delete-group): Transliate file
-       chars. 
-
-Sat Aug 16 17:26:59 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnml.el (nnml-directory): Dox fox.
-
-       * gnus-topic.el (gnus-topic-make-menu-bar): Added
-       gnus-topic-edit-parameters. 
-
-Sat Aug 16 17:21:21 1997  Jay Sachs  <sachs@interactive.net>
-
-       * gnus-win.el (gnus-buffer-configuration): New entry:
-       score-trace. 
-
-Sat Aug 16 16:51:24 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-topic.el (gnus-topic-delete): Mark as changed.
-       (gnus-topic-change-level): Make last param optional.
-
-       * gnus-group.el (gnus-group-iterate): Make sure window is
-       selected. 
-
-Sat Aug 16 16:56:23 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-topic.el (gnus-topic-check-topology): Add new groups to the
-       end of the first topic.
-
-       * gnus-cache.el (gnus-jog-cache): Use gnus-group-iterate.
-
-Wed Aug 13 22:00:07 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Escape
-       newlines. 
-
-Thu Aug  7 20:51:12 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * smiley.el (smiley-deformed-regexp-alist): Fix.
-
-Wed Jul 30 13:46:30 1997  Danny Siu  <dsiu@adobe.com>
-
-       * smiley.el (smiley-buffer): make smiley case sensitive
-       (smiley-deformed-regexp-alist): added more regexp for happy smiley
-       (smiley-nosey-regexp-alist): same as above
-
-Sat Aug  2 01:48:26 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-nocem.el (gnus-nocem-close): Nix out
-       gnus-real-group-hashtb. 
-
-Sat Aug  2 01:46:49 1997  roth@klondike.cse.ucsc.edu (Carl D. Roth)
-
-       * gnus-nocem.el (gnus-fill-real-hashtb): New function.
-
-Sat Aug  2 01:26:17 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-read-init-file): Message.
-
-Fri Jul 25 20:48:31 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nntp.el (nntp-nov-gap): Changed default.
-
-       * gnus-nocem.el (gnus-nocem-issuers): Fixed names.
-
-Wed Jul 23 20:11:24 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-catchup): Also removed cached
-       articles. 
-
-       * nnvirtual.el (nnvirtual-update-xref-header): Don't double
-       Xrefs. 
-
-Sat Jul 19 23:32:28 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.64 is released.
-
-Sat Jul 19 23:22:03 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-article-set-globals): New function.
-
-1997-07-17  Steven L Baur  <steve@altair.xemacs.org>
-
-       * gnus-ems.el (gnus-mode-line-modified): Refine detection on
-       whether narrow indicators should be used.
-
-Sat Jul 19 23:04:30 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-cache.el (gnus-jog-cache): Bind gnus-auto-select-next.
-
-Sat Jul 19 23:00:33 1997  Guy Geens  <Guy.Geens@elis.rug.ac.be>
-
-       * gnus-score.el (gnus-score-load-file): Fix decay.
-
-Sat Jul 19 20:21:42 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-iterate): Save excursion.
-
-       * gnus-score.el (message): Required.
-
-       * gnus-sum.el (gnus-summary-limit-children): Unreads, not reads.
-
-       * gnus-topic.el (gnus-topic-change-level): Move groups.
-
-       * gnus-cache.el (gnus-jog-cache): Protect against nil groups.
-
-       * message.el (message-generate-headers): Don't delete Message-ID
-       if buffer not modified.
-
-       * gnus.el (gnus-simplify-mode-line): Use varying formats.
-
-       * gnus-xmas.el (gnus-xmas-group-remove-excess-properties): Removed.
-       (gnus-xmas-topic-remove-excess-properties): Removed.
-
-Sat Jul 12 21:04:08 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-start.el (gnus-activate-group): Always return the right
-       active range.
-
-Sat Jul 12 19:46:22 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.63 is released.
-
-Sat Jul 12 17:02:30 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-undo.el (gnus-undo-mode): Use it.
-
-       * gnus-salt.el (gnus-pick-mode): Use it.
-
-       * gnus-gl.el (gnus-grouplens-mode): Use it.
-
-       * gnus-ems.el (gnus-add-minor-mode): New function.
-
-Sat Jul 12 16:21:41 1997  Michael R. Cook  <mcook@cognex.com>
-
-       * gnus-topic.el (gnus-topic-toggle-display-empty-topics): List
-       groups. 
-
-Fri Jul 11 21:12:07 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-art.el (gnus-article-treat-html): Use `w3-region'.
-
-Fri Jul 11 13:20:58 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-check-news-header-syntax): Check repeated
-       groups. 
-
-       * gnus-move.el (gnus-move-group-to-server): Protect against nil
-       articles. 
-
-Thu Jul 10 20:01:44 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-start.el (gnus-check-first-time-used): Force reading the
-       active file the first time Gnus is used.
-
-       * gnus-group.el (gnus-group-set-mode-line): Conditionalize
-       modified. 
-
-       * gnus-ems.el (gnus-mode-line-modified): New variable.
-
-       * gnus-xmas.el (gnus-summary-toolbar): Typo fix.
-
-Mon Jul  7 11:06:32 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-start.el (gnus-check-new-newsgroups): New default.
-
-Sun Jul  6 17:22:47 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.62 is released.
-
-Sun Jul  6 12:38:56 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nngateway.el (nngateway-request-post): Call sendmail function.
-
-       * message.el (message-send-news): Supply the method to the post
-       function.
-
-       * gnus.el (gnus-group-auto-expirable-p): Dox fox.
-
-       * message.el (message-clone-locals): Only clone Gnus variables. 
-
-       * gnus-nocem.el (gnus-nocem-enter-article): Use real group name. 
-
-Fri Jul  4 13:00:39 1997  enami tsugutomo  <enami@but-b.or.jp>
-
-       * gnus-group.el (gnus-group-set-mode-line): Use new, shorter
-       format. 
-
-Fri Jul  4 12:31:18 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-score.el (gnus-score-headers): Let the score buffer inherit
-       variables from the summary buffer.
-
-       * message.el (message-clone-locals): Made into own function.
-
-       * gnus.el (gnus-select-method): Changed default.
-
-       * gnus-start.el (gnus-read-active-file): Changed default to
-       `some'. 
-
-Tue Jul  1 01:51:24 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.61 is released.
-
-Tue Jul  1 01:33:39 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-adjust-marked-articles): Typo.
-
-Tue Jul  1 00:56:21 1997  Gary D. Foster  <Gary.Foster@corp.sun.com>
-
-       * gnus-topic.el (gnus-topic-mode-map): [delete].
-
-Tue Jul  1 00:53:04 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-demon.el (gnus-demon): Make sure Emacs really is idle.
-
-Sun Jun 29 21:32:13 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.60 is released.
-
-Sun Jun 29 21:14:27 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-salt.el: Customized.
-
-1997-06-27  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-salt.el (gnus-tree-show-summary): New function.
-       (gnus-tree-mode-map): Use it.
-
-Sun Jun 29 20:19:27 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-salt.el (gnus-generate-horizontal-tree): Protect against
-       nil threads.
-
-       * gnus-sum.el (gnus-adjust-marked-articles): Change.
-
-Sun Jun 29 20:19:03 1997  Scott Byer  <byer@adobe.com>
-
-       * gnus-sum.el (gnus-adjust-marked-articles): Improper lists.
-
-1997-06-24  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-sum.el (gnus-summary-search-article): Inhibit updating tree 
-       buffer.
-
-Sun Jun 29 19:36:48 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-start.el (gnus-activate-group): Ignore zero returns.
-
-       * gnus-salt.el (gnus-generate-vertical-tree): Use a safer
-       line-drawing algorithm.
-
-       * nnml.el (nnml-generate-nov-file): Articles with null bodies are
-       legal. 
-
-Sun Jun 22 15:44:02 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (article-hide-pgp): Only run hook when hiding pgp. 
-
-       * nnfolder.el (nnfolder-save-buffer): Make sure the directory
-       exists. 
-
-       * gnus-uu.el (gnus-uu-post-news-inews): Didn't work when posting
-       threaded. 
-       (gnus-uu-post-encoded): Include sequence numbers in threaded
-       posts. 
-
-Sat Jun 21 00:17:16 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-set-auto-save-file-name): Translate / in
-       buffer names.
-
-Wed Jun 18 17:26:35 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.59 is released.
-
-Wed Jun 18 09:29:15 1997  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
-
-       * gnus-xmas.el (gnus-xmas-article-display-xface): Correct setting of
-       braces.
-
-1997-06-07  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
-
-       * smiley.el (smiley-deformed-regexp-alist): Add Japanese smiley
-       faces.
-
-Wed Jun 18 14:15:21 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (article-hide-pgp): Only run hook when there is a
-       PGP signature.
-
-       * gnus-sum.el (gnus-summary-fetch-faq): Have `C-u' work.
-
-       * gnus-xmas.el (gnus-xmas-summary-set-display-table): Don't nix
-       out chars that aren't supposed to be nixed out.
-
-       * gnus-art.el (gnus-article-delete-invisible-text): Would bug out
-       on point-max.
-       (gnus-article-delete-text-of-type): Ditto.
-
-       * gnus-xmas.el (gnus-xmas-redefine): Switch off horiz scrollbar in
-       tree buffers.
-
-Wed Jun 18 01:11:58 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.58 is released.
-
-Wed Jun 18 01:02:34 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Backed out all char-afters which caused bugs all over
-       the place.
-
-Wed Jun 18 00:33:41 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.57 is released.
-
-Wed Jun 18 00:09:35 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-demon.el (gnus-demon-add-nocem): Use a numerical idle.
-
-1997-06-10  Steven L Baur  <steve@altair.xemacs.org>
-
-       * nntp.el (nntp-wait-for): Replace following-char with char-after.
-
-1997-06-09  Steven L Baur  <steve@altair.xemacs.org>
-
-       * gnus-msg.el (gnus-extended-version): Put XEmacs codename in
-       default X-Mailer/X-Newsreader if the symbol exists.
-
-Tue Jun 10 20:24:35 1997  Christoph Wedler  <wedler@fmi.uni-passau.de>
-
-       * message.el (message-checksum): Do not only inspect the last
-       32/64 characters; technical: `ash' is no bit-rotate.
-
-Tue Jun 17 23:45:00 1997  Guy Geens  <Guy.Geens@elis.rug.ac.be>
-
-       * gnus-score.el (gnus-decay-scores): Use the right index.
-
-Tue Jun 17 23:22:24 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-score.el (gnus-score-load-file): Set the decay when not
-       set. 
-
-       * gnus-art.el (gnus-article-treat-html): Do w3 setup.
-
-       * gnus.el (gnus-indent-rigidly): Be useful on odd tab widths.
-
-       * gnus-xmas.el (gnus-article-x-face-command): Allow just using
-       xpm. 
-
-Thu Jun  5 18:33:31 1997  Robert Bihlmeyer  <robbe@orcus.priv.at>
-
-       * gnus-score.el (gnus-score-find-trace): Would bug out for
-       file-less rules.
-
-Tue Jun 17 22:57:14 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-xmas.el (gnus-xmas-group-startup-message): Cleanup. 
-
-Tue Jun 17 22:55:14 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nntp.el (nntp-request-head): Guess at article number.
-
-Tue Jun 17 22:40:49 1997  David Moore  <dmoore@ucsd.edu>
-
-       * gnus-xmas.el (gnus-xmas-set-text-properties): New version.
-
-Tue Jun 17 21:30:37 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-search-forward): Ignore topic lines. 
-
-Tue Jun 17 18:06:09 1997  "Karl M. Hegbloom" <karlheg@inetarena.com>
-
-       * gnus.el: ebola fixes.
-
-Wed Jun 11 19:23:09 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (t): Moved pop article keystroke.
-
-Tue Jun 10 06:32:52 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-search-unix-mail-delim-backward): Allow
-       several "From "'s.
-       (nnmail-search-unix-mail-delim): Ditto.
-
-Fri Jun  6 19:31:10 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-make-web-group): Use default prompt
-       instead of string.
-
-       * gnus.el (gnus-string-or): New macro.
-       (gnus-string-or-1): New function.
-
-Sat May 31 15:41:09 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.56 is released.
-
-Sat May 31 14:51:37 1997  Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
-
-       * message.el (message-make-in-reply-to): Make valid In-Reply-To.
-
-Sat May 31 14:45:54 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-header-button-alist): Check for URLs in the
-       Subject. 
-
-Sat May 31 14:42:53 1997  Hrvoje Niksic <hniksic@srce.hr>
-
-       * gnus-xmas.el: Cleanup.
-
-Sat May 31 14:34:39 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-output-to-file): Return t.
-
-Sat May 31 14:14:40 1997  Guy Geens <Guy.Geens@elis.rug.ac.be>
-
-       * gnus-score.el (gnus-decay-score): Make decay work on negative
-       scores. 
-
-Sat May 31 14:07:53 1997  Kurt Swanson <kurt@dna.lth.se>
-
-       * nnmail.el (nnmail-article-group): Handle junk properly.
-
-Sat May 31 14:03:32 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-limit-children): Typo.  Wouldn't
-       marked NoCeM'ed out messages as read.
-
-Sat May 31 13:46:49 1997  Darren Stalder  <torin@daft.com>
-
-       * gnus-util.el (gnus-encode-date): Fix time zone.
-
-Sat May 31 13:38:02 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-move.el (gnus-move-group-to-server): Don't sort nil lists.
-
-Tue May 27 16:03:12 1997  Paul Franklin  <paul@cs.washington.edu>
-
-       * nnmail.el (nnmail-keep-last-article): clarify docstring
-
-Tue May 27 15:03:30 1997  Danny Siu  <dsiu@adobe.com>
-
-       * gnus-picon.el (gnus-group-display-picons): use
-       gnus-group-real-name so that picons for foreign groups display
-       correctly.
-
-Fri May 30 22:03:39 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-topic.el (gnus-topic-mode): Nix out topic missing group
-       function when switching off.
-
-       * gnus-salt.el (gnus-pick-start-reading): Don't prompt.
-
-Mon May 26 11:49:53 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-hack-decode-rfc1522): New function.
-
-       * gnus-sum.el (gnus-parse-headers-hook): New default.
-
-Sun May 25 17:08:16 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.55 is released.
-
-Sun May 25 15:13:45 1997  Michael R. Cook  <mcook@cognex.com>
-
-       * gnus-art.el (gnus-button-alist): Typo fix.
-
-Sun May 25 14:44:38 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-salt.el (gnus-pick-start-reading): Mark unpicked as read.
-
-       * gnus-sum.el (gnus-summary-move-article): Don't scan.
-
-       * gnus-group.el (gnus-group-get-new-news-this-group): Accept an
-       optional non-scan parameter.
-
-Sun May 25 14:33:47 1997  Jan Vroonhof  <vroonhof@math.ethz.ch>
-
-       * gnus-cite.el (gnus-cite-attribution-prefix): Typo.
-
-Sat May 24 12:57:46 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-nocem.el (gnus-nocem-verify-issuer): Ignore errors when
-       verifying. 
-
-Sat May 24 11:55:04 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.54 is released.
-
-Sat May 24 10:35:40 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-set-auto-save-file-name): Don't use "*" in
-       autosave name.
-
-       * gnus-art.el (gnus-article-delete-text-of-type): New version.
-
-Sat May 24 10:33:43 1997  Dan Christensen  <jdchrist@math.mit.edu>
-
-       * gnus-art.el (gnus-article-delete-invisible-text): New version. 
-
-Sat May 24 10:26:34 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-article-group): Remove all 'junk splits.
-
-Wed May 21 16:18:03 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-cite.el (gnus-cite-attribution-prefix): Recognize
-       Microsoft/Agent style attribution lines.
-       (gnus-cite-attribution-suffix): Ditto.
-
-Sat May 24 05:23:46 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-cache.el (gnus-cache-read-active): Would generate cache
-       active file too often.
-       (gnus-cache-possibly-alter-active): Test statement removed.
-       (gnus-cache-articles-in-group): Would destroy hashtb.
-
-       * gnus-sum.el (gnus-summary-limit-mark-excluded-as-read): Don't
-       mark everything as read.
-
-       * gnus-cite.el (gnus-article-fill-cited-article): Nix out
-       gnus-cite-article. 
-
-Tue May 20 21:43:31 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-move-article): Don't suppress moved
-       articles. 
-
-       * gnus-start.el (gnus-dribble-read-file): Check that the dribble
-       file exists.
-
-       * gnus-cache.el (gnus-cache-articles-in-group): Update cache
-       active file.
-
-Mon May 19 02:04:01 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-search-article): Typo.
-
-       * nnml.el (nnml-update-file-alist): Allow forcing.
-
-       * nnheaderxm.el (nnheader-xmas-find-file-noselect): Removed.
-       (nnheader-xmas-cancel-timer): Removed.
-       (nnheader-xmas-cancel-function-timers): Removed.
-
-Sun May 18 07:35:43 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.53 is released.
-
-Sun May 18 06:20:57 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-set-auto-save-file-name): Create unique auto
-       save file names.
-
-       * gnus-topic.el (gnus-topic-tallied-groups): Removed.
-       (gnus-topic-prepare-topic): Output right number of articles in
-       each sub-topic.
-
-       * gnus-sum.el (gnus-summary-next-group): Don't pass on killed
-       buffers. 
-
-       * nnmail.el (nnmail-article-group): When crossposted to `junk', do
-       `junk'.
-
-       * gnus-util.el (gnus-kill-all-overlays): Remove nil overlays from
-       list. 
-
-       * gnus-art.el (gnus-article-treat-html): Don't kill buf.
-
-       * gnus-group.el (gnus-group-find-new-newsgroups): Newish function.
-
-Sun May 18 06:16:41 1997  Kim-Minh Kaplan  <kimminh.kaplan@utopia.eunet.fr>
-
-       * gnus-picon.el (gnus-picons-has-modeline-p): new user variable.
-       (gnus-picons-set-buffer): new function.
-       (gnus-picons-prepare-for-annotations): use it.
-       (gnus-picons-network-display-internal): ditto.
-       (gnus-picons-make-annotation): new function.
-       (gnus-picons-display-x-face): use it.
-       (gnus-article-display-picons): ditto.
-       (gnus-picons-display-picon-or-name): ditto.
-       (gnus-picons-display-pairs): ditto.  Remember the correct
-       order of insertion of annotations.
-       (gnus-picons-display-glyph): use gnus-picons-make-annotation.
-       (gnus-article-display-picons): move group annotations in article
-       buffer to the correct place if displaying in article buffer.
-       (gnus-picons-network-search-internal): don't display "@" if there
-       is no domain picon works again.  Check that the picons still
-       need be displayed.  Add the bar bar.xpm separator if
-       gnus-picons-display-as-address.
-       (gnus-picons-network-display-callback): check that the picon still
-       need be displayed.
-       (gnus-picons-lock): function deleted.
-       (gnus-picons-remove): don't use it.  New way of locking.
-       (gnus-picons-next-job-internal): new way of locking.  Handle
-       new tag 'bar.
-       (gnus-picons-next-job): new way of locking.
-       (gnus-picons-buffer): variable deleted.
-       (gnus-picons-remove-all): modified accordingly.
-       (gnus-group-annotations-lock): variable deleted.
-       (gnus-article-annotations-lock): variable deleted.
-       (gnus-x-face-annotations-lock): variable deleted.
-       (gnus-picons-news-directories): renamed, was
-       gnus-picons-news-directory.
-       (gnus-picons-url-retrieve): do not change url-show-status.
-       (gnus-picons-clear-cache): also clear gnus-picons-url-alist.
-
-Sun May 18 05:57:31 1997  Michael R. Cook  <mcook@cognex.com>
-
-       * gnus-topic.el (gnus-topic-toggle-display-empty-topics): New
-       function. 
-
-Sun May 18 05:52:59 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnfolder.el (nnfolder-request-create-group): Read folder.
-
-Sat May 17 22:45:07 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-search-article): Require gnus-asynch. 
-
-       * nnweb.el (nnweb-dejanews-wash-article): Remove "More Headers".
-
-Sun May 11 20:07:21 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (article-hide-pgp): Run hook.
-       (gnus-article-hide-pgp-hook): New variable.
-
-Sat May 10 00:37:32 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.52 is released.
-
-Sat May 10 00:13:30 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnfolder.el (nnfolder-possibly-change-group): Set wrong
-       variable. 
-
-       * gnus-art.el (gnus-article-edit-article): Remove invisible text
-       under XEmacs.
-       (gnus-article-treat-html): Insert string.
-
-Thu May  8 10:53:12 1997  Steven L Baur  <steve@altair.xemacs.org>
-
-       * gnus-msg.el (gnus-summary-mail-crosspost-complaint):
-       `deactivate-mark' doesn't exist in XEmacs.
-
-Fri May  9 23:50:01 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-topic.el (gnus-topic-create-topic): Added doc.
-
-       * gnus-sum.el (gnus-summary-refer-article): Insert sparse
-       non-displayed articles properly.
-       (gnus-cut-thread): Exclude non-displayed sparse articles.
-
-Thu May  8 17:37:38 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.51 is released.
-
-Thu May  8 15:58:43 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-execute-command): Place point at start of
-       prompt. 
-
-       * gnus-int.el (gnus-request-replace-article): Don't bug out on
-       unknown groups.
-
-       * gnus-sum.el (gnus-summary-update-info): Force undo boundary here.
-       (gnus-update-read-articles): ... and not here.
-
-       * gnus-art.el (article-display-x-face): Would only show one X-Face.
-
-Wed May  7 05:23:20 1997  Kim-Minh Kaplan  <kimminh.kaplan@utopia.eunet.fr>
-
-       * gnus-picon.el: (gnus-picons-url-alist): new variable.
-       (gnus-picons-jobs-alist): new variable.
-       (gnus-picons-remove): clean this new variable. FIXME: race
-       condition.
-       (gnus-picons-job-already-running): new variable.
-       (gnus-article-display-picons): use the job queue if using the
-       network.
-       (gnus-group-display-picons): ditto.
-       (gnus-picons-make-path): function deleted.
-       (gnus-picons-lookup-internal): modified accordingly.
-       (gnus-picons-lookup-user-internal): take the LETs out of the
-       loops.
-       (gnus-picons-lookup-pairs): take constant calculation outside of
-       loop.
-       (gnus-picons-display-picon-or-name): use COND instead of nested IFs
-       (gnus-picons-display-pairs): take the LET outside of loop.
-       (gnus-picons-try-face): ditto.
-       (gnus-picons-users-image-alist): variable deleted.
-       (gnus-picons-clear-cache): don't clear it.
-       (gnus-picons-retrieve-limit): variable deleted.
-       (gnus-picons-url-retrieve): clear url-request-method
-       (gnus-picons-retrieve-user-callback): function deleted.
-       (gnus-picons-retrieve-user): function deleted.
-       (gnus-picons-retrieve-domain-callback): function deleted
-       (gnus-picons-retrieve-domain-internal): function deleted.
-       (gnus-picons-parse-value): new function.
-       (gnus-picons-parse-filenames): new function.
-       (gnus-picons-network-display-internal): new function.
-       (gnus-picons-network-display-callback): new function.
-       (gnus-picons-network-display): new function.
-       (gnus-picons-network-search-internal): new function.
-       (gnus-picons-network-search-callback): new function.
-       (gnus-picons-network-search): new function.
-       (gnus-picons-next-job-internal): new function.
-       (gnus-picons-next-job): new function.
-
-Wed May  7 22:14:32 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-start.el (gnus-setup-news): Don't fold case.
-
-Sat May  3 16:55:25 1997  Kim-Minh Kaplan  <kimminh.kaplan@utopia.eunet.fr>
-
-       * gnus-picon.el: * gnus-picons-clear-cache-on-shutdown: new variable.
-       * gnus-picons-piconsearch-cache-user: variable deleted.
-       * gnus-picons-clear-cache: new function.
-       * gnus-picons-close: only clear cache if
-       gnus-picons-clear-cache-on-shutdown.
-       * gnus-picons-url-retrieve: set url-package-name and
-       url-package-version.
-       * gnus-picons-users-image-alist: new variable.
-       * gnus-picons-retrieve-user-callback: use it.
-       * Added support for network retrieval of picons.
-       * gnus-picons-map: removed.
-       * gnus-picons-remove: removed case to handle processes.
-       * gnus-picons-processes-alist: new variable
-       * gnus-picons-x-face-sentinel: simplified.  Use processes alist.
-       * gnus-picons-display-x-face: explicitly request an xface image.
-       Always call gnus-picons-prepare-for-annotations.  Use processes
-       alist.
-       * gnus-picons-lookup-internal: new function.
-       * gnus-picons-lookup: use it.
-       * gnus-picons-lookup-user-internal: ditto.
-       * gnus-picons-display-picon-or-name: no more xface-p argument.
-       * gnus-picons-try-suffixes: removed.
-       * gnus-picons-try-face: new function.  Does the caching in
-       gnus-picons-glyph-alist.
-       * gnus-picons-try-to-find-face: take a glyph argument instead of a
-       path.  No more xface-p argument.  Only use one annotation even if
-       gnus-picons-display-as-address.
-       * gnus-picons-toggle-extent: changed into an annotation action.
-
-Sat May  3 00:59:39 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.50 is released.
-
-Sat May  3 00:30:12 1997  Kim-Minh Kaplan  <kimminh.kaplan@utopia.eunet.fr>
-
-       * gnus-picon.el (gnus-picons-prepare-for-annotations): New
-       function, and many changes.
-
-Sat May  3 00:03:51 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnfolder.el (nnfolder-possibly-change-group): Wouldn't always
-       switch buffers.
-
-       * gnus-sum.el (gnus-update-read-articles): Force boundary.
-
-       * gnus-undo.el (gnus-force-undo-boundary): New function.
-
-Fri May  2 23:44:54 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-article-treat-html): w3-parse-buffer
-       incompatibility. 
-
-Thu May  1 17:56:05 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.49 is released.
-
-Sat Apr 19 16:13:03 1997  Erik Toubro Nielsen  <erik@ifad.dk>
-
-       * gnus-sum.el (gnus-summary-exit): Returned to the wrong topic in
-       certain obscure cases if selected group occured in multiple
-       topics.
-
-       * gnus-topic.el (gnus-topic-update-topic): Did not preserve point
-       on the same instance of a group if group occured in multiple
-       topics. Caused gnus-summary-exit to return to wrong topic if the
-       selected group was in more than one topic.
-
-       Above two bugs happened only if the window configuration for
-       summary mode caused the group buffer not to be shown in a window.
-
-Thu May  1 14:28:20 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-send): Would pretend to have sent.
-
-       * nnmh.el (nnmh-request-list-1): Don't use truename.
-
-Sun Apr 27 15:16:16 1997  Steven L Baur  <steve@altair.xemacs.org>
-
-       * gnus-xmas.el: Undo previous change, and restore the version from 
-       5.4.46 (without the require 'gnus-art).
-
-Tue Apr 29 11:08:27 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-score.el (gnus-summary-increase-score): Better error
-       messages. 
-
-Sun Apr 27 23:15:58 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.48 is released.
-
-Sun Apr 27 11:40:57 1997  Steven L Baur  <steve@altair.xemacs.org>
-
-       * gnus-xmas.el (gnus-art): (require 'gnus-art) introduces a
-       circular dependency on gnus-xmas-define and gnus-xmas-redefine.
-       Brute force it away.
-
-Sun Apr 27 12:32:13 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.47 is released.
-
-Sun Apr 27 10:42:08 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-cache.el (gnus-cache-move-cache): Allow entering directory
-       name. 
-
-       * nntp.el (nntp-telnet-command, nntp-telnet-switches): New
-       variables. 
-
-       * gnus-score.el (gnus-summary-increase-score): Refuse illegal
-       match types.
-
-Fri Apr 25 06:16:05 1997  Arne Georg Gleditsch  <argggh@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-refer-article): Go to article when
-       expunged. 
-
-Wed Apr 23 19:48:43 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-ems.el (gnus-article-x-face-command): Removed bogus
-       declaration.
-
-Mon Apr 21 16:44:00 1997  Paul Franklin  <paul@cs.washington.edu>
-
-       * nnmail.el (nnmail-move-inbox): fewer (0?) file calls on inbox if
-       popmail.
-
-Thu Apr 24 14:04:31 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-font-lock-keywords): Be more conservative in
-       determining headers.
-
-       * nnmh.el (nnmh-request-list-1): Use truenames.
-
-       * gnus-undo.el (gnus-undo-mode): Don't infest
-       gnus-summary-exit-hook. 
-
-       * gnus-sum.el (gnus-update-read-articles): Force an undo
-       boundary. 
-
-       * nnweb.el (nnweb-fetch-url): Don't rely on return values from
-       url-insert-file-contents. 
-
-Sat Apr 19 06:11:31 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.46 is released.
-
-Sat Apr 19 05:40:40 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-read-save-file-name): Expand file name i save
-       dir. 
-
-Fri Apr 18 14:25:21 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-art.el (gnus-signature-face): New face; use it.
-
-Sat Apr 19 05:32:43 1997  Kim-Minh Kaplan  <kimminh.kaplan@utopia.eunet.fr>
-
-       * gnus-picon.el (gnus-picons-insert-face-if-exists): Add picons to
-       list.
-
-Tue Apr 15 14:08:32 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * message.el (message-font-lock-keywords): Be a little bit more
-       case-insensitive.
-  
-Wed Apr 16 02:41:31 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * message.el (message-insert-to): New argument FORCE.
-
-Sat Apr 19 05:18:10 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-setup): Nix out undo list.
-
-Sat Apr 19 05:00:06 1997  Katsumi Yamaoka  <yamaoka@ga.sony.co.jp>
-
-       * gnus-sum.el: Redefine.
-
-Sat Apr 19 04:53:29 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (article-display-x-face): Display all XFace
-       headers. 
-
-       * gnus-ems.el: appt, not appt.el.
-
-Sat Apr 19 04:04:42 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-xmas.el (gnus-xmas-summary-set-display-table): Don't nix
-       out in Latin1.
-
-Sat Apr 19 02:55:45 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-cancel-news): Only say we cancel if we
-       cancel. 
-
-       * gnus-msg.el (gnus-summary-mail-crosspost-complaint): Deactivate
-       mark. 
-
-Thu Apr 17 21:37:22 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-mail-alias-type): New variable.
-       (message-mode): Use it.
-
-Wed Apr 16 00:03:37 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-demon.el (gnus-demon): Ignore errors.
-
-Tue Apr 15 23:50:02 1997  Brad Howes  <bhowes@cssun3.corp.mot.com>
-
-       * gnus-demon.el (gnus-demon-time-to-step): New version.
-
-Tue Apr 15 23:32:58 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-send-method-alist): New variable.
-       (message-send): Use it.
-       (message-send-via-news): New function.
-       (message-send-via-mail): New function.
-
-Sun Apr 13 18:22:02 1997  Jens Lautenbacher  <jens@metrix.de>
-
-       * gnus.el (gnus-article-display-hook): Fix.
-
-Sun Apr 13 02:07:33 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-get-newsgroup-headers): Protect against bogus
-       Lines headers.
-
-       * gnus-cache.el (gnus-cache-possibly-enter-article): Check number
-       not nil.
-
-Sat Apr 12 23:28:30 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.45 is released.
-
-Sat Apr 12 02:00:51 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-update-article-line): Insert the
-       subject. 
-
-       * gnus-msg.el (gnus-post-news): Use it.
-
-       * message.el (message-wide-reply): Accept ignore-reply-to.
-
-       * gnus-sum.el (gnus-thread-loop-p): Don't recurse; use a stack.
-
-       * message.el (message-generate-headers): Don't insert incomlete
-       Senders in mail-only messages.
-       (message-check-news-header-syntax): Check subject first.
-
-Sat Apr 12 01:42:42 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.44 is released.
-
-Sat Apr 12 01:10:31 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnweb.el (nnweb-request-scan): Init nnweb-hashtb.
-
-Thu Apr 10 20:05:13 1997  Sudish Joseph  <sj@eng.mindspring.net>
-
-       * gnus-art.el (gnus-article-delete-invisible-text): Do an entire
-       region instead a single char in each pass.  It's faster and
-       doesn't confuse ps-print.
-       (gnus-article-delete-text-of-type): Ditto.
-
-Sat Apr 12 00:35:07 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-adjust-marked-articles): Wouldn't remove
-       `expire' marks.
-
-Thu Apr 10 22:07:46 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.43 is released.
-
-Thu Apr 10 21:47:08 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-start.el (gnus-save-newsrc-file): Message less.
-
-Thu Apr 10 21:35:45 1997  ISO-2022-JP  <morioka@jaist.ac.jp>
-
-       * gnus-sum.el (gnus-summary-show-article): Bind gnus-show-mime. 
-
-Thu Apr 10 21:26:19 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Removed gnus-add-hook.
-
-Thu Apr  3 21:08:57 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-xmas.el (gnus-xmas-summary-set-display-table): Don't change
-       the values that are non-nil in the default table.
-       (gnus-xmas-add-hook): Removed it.
-
-Thu Apr 10 20:44:46 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-article-show-summary): Error better.
-
-       * message.el (message-indent-citation): Tippy-foot when deleting
-       leading empty lines.
-
-       * gnus-sum.el (gnus-summary-move-article): Update group lines. 
-
-       * gnus-srvr.el (gnus-server-exit): Configure windows.
-
-       * gnus-group.el: Added gnus-version to help map.
-
-Thu Apr 10 20:41:11 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-xmas.el: Customized.
-
-Thu Apr 10 19:58:40 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-next-group): Selected deleted group. 
-
-       * gnus-art.el (article-treat-overstrike): Don't bug out on empty
-       articles. 
-
-Thu Apr 10 19:52:27 1997  David Moore  <dmoore@ucsd.edu>
-
-       * nnvirtual.el (nnvirtual-partition-sequence): Style fix.
-
-Thu Apr 10 19:45:30 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-kill-group): Kill more carefully.
-
-Tue Apr  8 23:02:30 1997  Michael Welsh Duggan  <md5i@schenley.com>
-
-       * message.el (message-insert-to): Fetch reply field.
-
-Tue Apr  8 21:41:13 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-refer-article): Accept prefix.
-
-Sun Apr  6 14:08:03 1997  Steven L Baur  <steve@altair.xemacs.org>
-
-       * gnus-xmas.el (gnus-xmas-summary-set-display-table): Add
-       missing paren.
-       (gnus-xmas-summary-set-display-table): current-display-table can
-       be nil.
-
-Sun Apr  6 23:17:21 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.42 is released.
-
-Sun Apr  6 23:13:50 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-xmas.el (gnus-xmas-summary-set-display-table): There isn't
-       always a default table, it seems.
-
-Sun Apr  6 22:45:52 1997  Aaron M. Ucko  <amu@mit.edu>
-
-       * gnus-xmas.el (gnus-xmas-summary-set-display-table): Typo.
-
-Sun Apr  6 22:26:52 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el: All the sorting commands were shadowed.
-
-Sun Apr  6 21:46:05 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.41 is released.
-
-Sun Apr  6 20:58:38 1997  Kim-Minh Kaplan  <kimminh.kaplan@utopia.eunet.fr>
-
-       * gnus-picon.el (gnus-picons-insert-face-if-exists): "." instead
-       of "".
-
-Sun Apr  6 20:19:49 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-sort-groups): Touch dribble.
-
-Sun Apr  6 19:28:19 1997  Stainless Steel Rat  <ratinox@peorth.gweep.net>
-
-       * pop3.el (pop3-quit): New version.
-
-Fri Apr  4 21:46:34 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-page-broken): New variable.
-       (gnus-article-prepare): Use it.
-
-Fri Apr  4 05:08:00 1997  Gunnar Horrigmo  <horrigmo@ikke.no>
-
-       * gnus-art.el (article-treat-overstrike): Search from beginning of
-       article.
-
-Thu Apr  3 15:16:05 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-article-hidden-text-p): Be more thorough.
-
-Thu Apr  3 12:23:44 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-score.el: (gnus-score-default-duration): Accept nil in
-       :type. 
-
-Thu Apr  3 05:49:56 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-next-group): Make sure buffer is alive
-       before switching to it.
-
-Wed Apr  2 12:39:15 1997  Steven L Baur  <steve@altair.xemacs.org>
-
-       * gnus-util.el (gnus-kill-all-overlays): Force Gnus to use extents 
-       even when overlays are available.  (From a patch by MORIOKA
-       Tomohiko).
-
-Thu Apr  3 05:28:03 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-topic.el (gnus-topic-goto-missing-group): Make sure topic
-       exists. 
-
-       * gnus-srvr.el (gnus-browse-group-name): Remove text props.
-
-       * gnus-sum.el (gnus-summary-move-article): Enter into dribble.
-
-Wed Apr  2 14:12:45 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.40 is released.
-
-Wed Apr  2 13:17:16 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-start.el (gnus-check-bogus-newsgroups): Supply a help
-       param. 
-       
-       * message.el (message-bounce): Remove the right portion of
-       "simple" bounces.
-
-       * gnus-art.el (gnus-read-save-file-name): Would bug out when
-       saving multiple articles.
-
-       * gnus-sum.el (gnus-summary-update-article-line): Insert the
-       correct subject.
-
-Tue Apr  1 11:21:48 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-score.el (gnus-score-find-hierarchical): Translate file
-       chars. 
-
-       * gnus-topic.el (gnus-topic-goto-missing-topic): Bugola.
-       (gnus-topic-forward-topic): New function.
-       (gnus-topic-goto-missing-topic): Use it.
-
-       * nnmh.el (nnmh-active-number): Make sure the directory exist.
-       (nnmh-request-accept-article): Bizarre problem.
-
-       * gnus-topic.el (gnus-topic-goto-missing-group): Don't double
-       topics. 
-
-Mon Mar 31 17:30:10 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.39 is released.
-
-Mon Mar 31 17:29:13 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nntp.el (nntp-connection-alist): Ooize.
-
-Mon Mar 31 16:34:37 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.38 is released.
-
-Mon Mar 31 16:12:31 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * message.el (message-add-header): New function.
-
-       * gnus-art.el (gnus-sorted-header-list): List `Followup-To' after
-       `Newsgroups'.
-
-       * gnus-undo.el (gnus-undo-mode-map): Bind `gnus-undo' to `C-_',
-       `C-x u' and `C-/'.
-
-Mon Mar 31 16:02:47 1997  Toby Speight  <tms@ansa.co.uk>
-
-       * gnus-art.el (gnus-article-add-buttons): Eval the right element. 
-
-Mon Mar 31 15:57:17 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-msg.el (gnus-add-to-list): New variable.
-       (gnus-post-news): Use it.
-
-Mon Mar 31 15:46:34 1997  Francois Felix Ingrand  <felix@laas.fr>
-
-       * gnus-start.el (gnus-slave-save-newsrc): Get modes right.
-
-Mon Mar 31 15:43:29 1997  Michael Sperber  <sperber@informatik.uni-tuebingen.de>
-
-       * message.el (message-functionp): Recognize compiled functions.
-
-Mon Mar 31 15:43:57 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-util.el (gnus-functionp): Ditto.
-
-Mon Mar 31 15:18:11 1997  Katsumi Yamaoka  <yamaoka@ga.sony.co.jp>
-
-       * gnus-ems.el (gnus-ems-redefine): Don't change display table. 
-
-Mon Mar 24 11:33:59 1997  Michael Welsh Duggan  <md5i@schenley.com>
-
-      * message.el (message-insert-to): Use mail-copies-to.
-
-Mon Mar 31 12:35:12 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-topic.el (gnus-topic-goto-missing-topic): New function.
-       (gnus-topic-goto-missing-group): Use it.
-
-       * gnus-msg.el (gnus-debug): Scan gnus-topic.el.
-
-       * message.el (message-reply): Don't insert extra , when not to
-       header. 
-
-       * nntp.el (nntp-connection-alist): Un-voo.
-
-Sun Mar 30 09:48:41 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-article-mode-syntax-table): Make <> paren
-       chars. 
-       (gnus-emphasis-alist): Use it.
-
-       * gnus.el (gnus-maintainer): Changed.
-
-       * nnfolder.el (nnfolder-request-accept-article): Ask before
-       junking. 
-       (nnfolder-save-mail): Make buffer read/write.
-
-       * nnmh.el (nnmh-request-accept-article): Ditto.
-       * nnbabyl.el (nnbabyl-request-accept-article): Ditto.
-       * nnmbox.el (nnmbox-request-accept-article): Ditto.
-       * nnml.el (nnml-request-accept-article): Ditto.
-
-Mon Mar 24 16:57:26 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.37 is released.
-
-Mon Mar 24 01:16:15 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-xmas.el (gnus-xmas-redefine): Use it.
-
-       * gnus-xmas.el (gnus-xmas-summary-set-display-table): New function.
-
-       * gnus-sum.el (gnus-summary-mode): Use it.
-
-       * gnus-sum.el (gnus-summary-set-display-table): New function.
-
-Mon Mar 24 16:27:46 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-util.el (gnus-buffer-live-p): Reinstated.
-
-Mon Mar 24 01:24:27 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.36 is released.
-
-Sun Mar 23 18:51:00 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-list-groups): Doc fix.
-
-       * gnus-demon.el (gnus-inhibit-demon): New variable.
-       (gnus-demon): Use it.
-
-Sun Mar 23 18:42:55 1997  David Moore  <dmoore@ucsd.edu>
-
-       * gnus-nocem.el (gnus-nocem-already-running): New variable.
-
-Sun Mar 23 17:27:17 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-select-newsgroup): Revert to old duplicate
-       behavior for nnvirtual groups.
-
-       * gnus-util.el (gnus-buffer-live-p): Removed.
-
-Sat Mar 22 22:11:28 1997  Steven L Baur  <steve@altair.xemacs.org>
-
-       * gnus-msg.el (gnus-setup-message): Mark buffer unmodified as last 
-       step of setting message buffer up.
-
-       * message.el (message-kill-buffer): Make prompt look more like the 
-       one in kill-buffer.
-       Only prompt if the buffer has been changed.
-
-Sun Mar 23 02:52:51 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.35 is released.
-
-Sun Mar 23 01:09:23 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-read-save-file-name): Tweaked definition.
-       (gnus-summary-save-in-rmail): Use it.
-       (gnus-summary-save-in-file): Ditto.
-       (gnus-summary-save-in-mail): Ditto.
-       (gnus-summary-save-body-in-file): Ditto.
-
-       * gnus-vm.el (gnus-summary-save-in-vm): Ditto.
-
-       * gnus-sum.el (gnus-summary-enter-digest-group): Add group param. 
-
-       * gnus-art.el (gnus-split-methods): New default.
-       (gnus-article-nndoc-name): New function.
-
-Sat Mar 22 15:47:14 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmh.el (nnmh-request-accept-article): Do 'junk.
-       * nnbabyl.el (nnbabyl-request-accept-article): Ditto.
-       * nnmbox.el (nnmbox-request-accept-article): Ditto.
-       * nnfolder.el (nnfolder-request-accept-article): Ditto.
-
-Sat Mar 22 15:42:53 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.34 is released.
-
-Sat Mar 22 01:37:00 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-move-article): Understand 'junk.
-
-       * nnml.el (nnml-request-accept-article): Return 'junk when legal.
-
-       * gnus-sum.el (gnus-summary-respool-query): Message better, and
-       return right value.
-
-       * nnmail.el (nnmail-split-abbrev-alist): New `to' and `from'
-       abbrevs. 
-
-Wed Mar 19 19:36:25 1997  Dewey M. Sasser  <dewey@newvision.com>
-
-       * message.el (message-make-from): Changed so that
-       message-from-style value is captured from message buffer instead
-       of temp buffer.
-
-Sat Mar 22 00:47:39 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-srvr.el (gnus-browse-foreign-server): Understand server
-       names. 
-
-       * gnus-group.el (gnus-group-browse-foreign-server): Down methodize
-       the server.
-
-Thu Mar 20 22:49:16 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnfolder.el (nnfolder-read-folder): Do checking if there are new
-       articles after the last nnfolder marker.
-
-Thu Mar 20 17:33:54 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.33 is released.
-
-Thu Mar 20 16:01:38 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-build-get-header): Don't fold case.
-
-       * nnfolder.el (nnfolder-read-folder): Would always parse the
-       entire mbox.
-
-       * gnus-sum.el (gnus-summary-read-group-1): Return right value.
-
-       * gnus-start.el (gnus-slave-save-newsrc): Set file modes.
-
-       * nneething.el (nneething-open-server): New function.
-       (nneething-possibly-change-directory): Redefined.
-
-Wed Mar 19 21:16:48 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.32 is released.
-
-Wed Mar 19 21:06:07 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-cache-accepted-message-ids): Bogus.
-
-Wed Mar 19 20:53:34 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.31 is released.
-
-Wed Mar 19 14:29:26 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmh.el (nnmh-request-accept-article): Ditto.
-
-       * nnbabyl.el (nnbabyl-request-accept-article): Ditto.
-
-       * nnmbox.el (nnmbox-request-accept-article): Ditto.
-
-       * nnfolder.el (nnfolder-request-accept-article): Ditto.
-
-       * nnml.el (nnml-request-accept-article): Cache or not.
-
-       * gnus-sum.el (gnus-summary-read-group): Don't recurse.
-       (gnus-summary-ignore-duplicates): New variable.
-       (gnus-get-newsgroup-headers): Use it.
-       (gnus-nov-parse-line): Ditto.
-
-       * message.el (message-reply): Remove excessive white space in
-       headers. 
-
-       * nnfolder.el (nnfolder-read-folder): Work when ignoring active
-       file. 
-
-       * nnmail.el (nnmail-process-unix-mail-format): Narrow to the right
-       portion.
-       (nnmail-process-mmdf-mail-format): Ditto.
-
-       * gnus.el (gnus-group-remove-parameter): New function.
-       (gnus-group-set-parameter): Use it.
-       (gnus-group-add-parameter): Ditto.
-
-       * gnus-msg.el (gnus-post-news): Check first whether
-       to-list/to-address exists before adding.
-
-Tue Mar 18 23:54:17 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.30 is released.
-
-Tue Mar 18 23:43:50 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-subscribe): Doc fix.
-
-Tue Mar 18 23:39:08 1997  Lance A. Brown  <brown9@niehs.nih.gov>
-
-       * gnus-sum.el (gnus-update-marks): Articles->list.
-
-Tue Mar 18 23:07:35 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-update-article-line): Don't pass nil
-       on as subject string.
-
-       * gnus-group.el (gnus-group-read-group): Revert to old
-       definition. 
-
-       * gnus-sum.el (gnus-summary-read-group-1): New function.
-       (gnus-summary-read-group): Use it.
-
-Tue Mar 18 17:56:26 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.29 is released.
-
-Tue Mar 18 14:29:49 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-read-ephemeral-group): Would set virt
-       ser too much. 
-       (gnus-group-read-group): Return right value.
-
-       * nnml.el (nnml-generate-nov-databases-1): Save active.
-
-       * gnus-msg.el (gnus-summary-supersede-article): Place point in the
-       with buffer.
-       (gnus-inews-add-to-address): Prompt before adding.
-
-       * gnus-art.el (article-strip-leading-space): Not a new command
-       and keystroke (HTDW Jaari fix).
-
-       * nnfolder.el (nnfolder-close-group): Don't push bogus entries
-       onto alist.
-
-Tue Mar 18 14:28:27 1997  Jan Vroonhof  <vroonhof@math.ethz.ch>
-
-       * nnfolder.el (nnfolder-request-scan): Check whether buffer really
-       is live.
-
-Tue Mar 18 13:53:00 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-read-group): Iterate instead of
-       recurse. 
-
-       * nnfolder.el (nnfolder-request-accept-article): Don't insert into
-       Message-ID cache.
-       * nnbabyl.el (nnbabyl-request-accept-article): Ditto.
-       * nnmbox.el (nnmbox-request-accept-article): Ditto.
-       * nnml.el (nnml-request-accept-article): Ditto.
-       * nnmh.el (nnmh-request-accept-article): Ditto.
-
-Tue Mar 18 00:35:06 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.28 is released.
-
-Mon Mar 17 18:36:11 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-update-marks): Use `list' instead of
-       `articles'.
-
-       * nndoc.el (nndoc-rfc822-forward-type-p): Renamed.
-       (nndoc-rfc822-forward-body-end-function): Ditto.
-
-Mon Mar 17 17:35:35 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.27 is released.
-
-Mon Mar 17 15:59:11 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nndoc.el (nndoc-x400-forward-type-p): New function.
-       (nndoc-x400-forward-body-end-function): Ditto.
-
-       * nnfolder.el (nnfolder-adjust-min-active): Be in the right
-       buffer. 
-
-Sat Mar 15 16:09:44 1997  Steven L Baur  <steve@altair.xemacs.org>
-
-       * message.el (message-post-method): Fix typo.
-
-       * gnus-load.el (message-sending): Fix typo.
-
-Mon Mar 17 15:47:59 1997  Gordon Matzigkeit  <gord@m-tech.ab.ca>
-
-       * message.el (message-set-auto-save-file-name): Expand before
-       temping. 
-
-Mon Mar 17 15:05:44 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-update-marks): Get rid of article entries of
-       articles with the default score.
-
-       * gnus-group.el (gnus-group-read-ephemeral-group): Be more careful
-       when uniquifying methods.
-
-       * gnus-sum.el (gnus-execute-command): Insert asynch into buffer.
-
-       * nnfolder.el (nnfolder-possibly-change-group): Didn't set the
-       current group.
-
-Mon Mar 17 15:03:02 1997  Paul Stodghill  <stodghil@cs.cornell.edu>
-
-       * gnus-srvr.el (gnus-server-prepare): Would infloop.
-
-Mon Mar 17 06:37:07 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-crosspost-link-function): Change default on
-       NT. 
-
-Fri Mar 14 12:07:12 1997  Steven L Baur  <steve@altair.xemacs.org>
-
-       * gnus-msg.el (gnus-extended-version): Add XEmacs beta # to
-       default X-Mailer/X-Newsreader.
-
-Fri Mar 14 20:57:03 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnfolder.el (nnfolder-possibly-change-group): Check folder
-       buffer. 
-
-       * nnheader.el (nnheader-parse-head): Understand Message-ID with
-       spaces. 
-       * gnus-sum.el (gnus-get-newsgroup-headers): Ditto.
-       (gnus-group-make-articles-read): Doc fix.
-
-       * nnml.el (nnml-generate-nov-databases-1): Made interactive.
-
-       * gnus-msg.el (gnus-inews-narrow-to-headers): Removed.
-       (gnus-post-news): Add `to-list' to the right group.
-
-Fri Mar 14 20:11:01 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.26 is released.
-
-Fri Mar 14 19:57:41 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-setup.el (gnus-use-sc): Changed default.
-
-Fri Mar 14 19:53:05 1997  Kurt Swanson  <kurt@dna.lth.se>
-
-       * gnus-art.el (gnus-article-goto-next-page): Place point.
-
-Fri Mar 14 18:46:54 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-article-mode-syntax-table): Make "-"
-       word-constituant. 
-
-       * gnus-sum.el (gnus-article-sort-by-author): Don't bug out on
-       Froms without names.
-
-       * messagexmas.el (message-xmas-make-caesar-translation-table): Use
-       char-int.
-
-Fri Mar 14 18:44:33 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * message.el (message-faces): New group.
-
-Fri Mar 14 18:43:16 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-limit-to-unread): Also exclude souped
-       articles. 
-
-Fri Mar 14 18:35:06 1997  Matt Armstrong  <Matt_Armstrong@geoworks.com>
-
-       * gnus-score.el (gnus-all-score-files): Remove duplicates.
-
-Fri Mar 14 18:21:07 1997  Andy Norman  <ange@hplb.hpl.hp.com>
-
-       * gnus-xmas.el (gnus-xmas-switch-horizontal-scrollbar-off): Check
-       whether we have a scrollbar first.
-
-Fri Mar 14 18:15:32 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnfolder.el (nnfolder-save-mail): Don't fold case when doing
-       From_. 
-
-Wed Mar 12 06:51:49 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnfolder.el (nnfolder-possibly-change-group): Accept a
-       dont-check param.
-       (nnfolder-request-group): Don't load folder.
-
-       * gnus.el (gnus-home-directory): New variable.
-
-Tue Mar 11 17:25:46 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-async.el (gnus-async-prefetch-article): Raise the level of
-       the message.
-
-Mon Mar 10 06:30:59 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-score.el (gnus-score-find-trace): Would clobber the score
-       of other articles.
-
-       * nneething.el (nneething-create-mapping): Make sure
-       nneething-directory exists.
-
-       * nnfolder.el (nnfolder-adjust-min-active): New function.
-       (nnfolder-request-expire-articles): Use it.
-       (nnfolder-request-move-article): Ditto.
-       (nnfolder-request-scan): Switch to the right server first. 
-
-Mon Mar 10 06:28:58 1997  Joev Dubach  <dubach1@husc.harvard.edu>
-
-       * nnfolder.el (nnfolder-generate-active-file): Didn't work.
-
-Sun Mar  9 18:38:37 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.25 is released.
-
-Sun Mar  9 04:11:02 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Inlined and defsubsts various functions.
-
-       * nnmail.el (nnmail-search-unix-mail-delim): Made into subst.
-
-       * nnfolder.el (nnfolder-request-scan): Don't do anything when not
-       getting mail.
-
-       * nnmh.el (nnmh-request-accept-article): Return the correct
-       value. 
-
-       * gnus-group.el (gnus-group-kill-all-zombies): Touch dribble.
-
-       * gnus-score.el (gnus-score-find-trace): Message default score.
-
-Sat Mar  8 18:17:53 1997  Steven L Baur  <steve@altair.xemacs.org>
-
-       * gnus-util.el (gnus-byte-code): Use better (and still compatible)
-       name of `compiled-function-p'.
-
-Sat Mar  8 18:17:53 1997  Steven L Baur  <steve@altair.xemacs.org>
-
-       * messagexmas.el (message-xmas-make-caesar-translation-table):
-       char-int is a braindamaged and stupid name for a conversion
-       function.
-
-Sun Mar  9 01:51:16 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.24 is released.
-
-Sun Mar  9 00:52:47 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-set-local-parameters): Ignore errors. 
-
-Sat Mar  8 08:55:52 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-article-prev-page): Return a proper value.
-
-       * gnus-sum.el (gnus-summary-prev-page-or-article): New command.
-       * gnus-xmas.el (gnus-summary-toolbar): Use it.
-
-Sat Mar  8 08:34:22 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.23 is released.
-
-Sat Mar  8 02:09:53 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-font-lock-keywords): Recognize continuation
-       headers. 
-
-       * gnus-group.el (gnus-group-expire-articles): Touch dribble
-       buffer. 
-
-       * gnus-sum.el (gnus-summary-default-score): Doc fix.
-
-       * gnus.el (gnus-local-organization): Doc fix.
-
-       * gnus-spec.el (gnus-compile): Don't work under XEmacs.
-
-       * gnus-art.el (gnus-article-highlight-headers): Work on bodiless
-       articles.
-
-Fri Mar  7 23:33:34 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.22 is released.
-
-Fri Mar  7 08:25:20 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-msg.el (gnus-inews-do-gcc): Made interactive.
-
-       * gnus-sum.el (gnus-read-move-group-name): Beep on empty names.
-
-       * nnmail.el (nnmail-check-duplication): Don't rename Message-ID.
-       (nnmail-cache-message-id-when-accepting): Removed.
-
-       * gnus-sum.el (gnus-nov-parse-line): Allow showing of multiple
-       articles with the same Message-ID.
-       (gnus-get-newsgroup-headers): Ditto.
-
-       * gnus.el: Removed trailing spaces throughout.
-
-       * gnus-art.el (gnus-header-name-face): Made easier on the eyes.
-       (gnus-article-add-buttons): Make buffer read/write before doing
-       anything. 
-
-       * message.el (message-font-lock-keywords): Changed expression and
-       faces. 
-
-Fri Mar  7 07:36:14 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.21 is released.
-
-Fri Mar  7 04:17:40 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnfolder.el (nnfolder-request-accept-article): Switch to the
-       right folder.
-
-       * Makefile (gnus-load.el): cus-edit.
-
-       * gnus.el: Removed all compilation warnings under both Emacs and
-       XEmacs. 
-
-       * cus-face.el: Moved variable defintions around a bit to avoid
-       compilation warnings.
-
-       * nnmail.el (nnmail-cache-message-id-when-accepting): New
-       variable. 
-
-       * nnfolder.el (nnfolder-dont-cache-message-id): Removed.
-       * nnmh.el (nnmh-request-accept-article): Ditto.
-       * nnbabyl.el (nnbabyl-request-accept-article): Ditto.
-       * nnml.el (nnml-request-accept-article): Ditto.
-       * nnmbox.el (nnmbox-request-accept-article): Use it.
-
-Thu Mar  6 18:22:29 1997  Steven L Baur  <steve@altair.xemacs.org>
-
-       * nnfolder.el (nnfolder-dont-cache-message-id): Variable to allow
-       backwards compatibility with respect to saved messages.
-       (nnfolder-request-accept-article): Use it.
-
-Fri Mar  7 04:10:21 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el: Autoload pop3.
-
-Fri Mar  7 01:33:34 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.20 is released.
-
-Fri Mar  7 00:12:39 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-header-to-face): New faces.
-       (message-font-lock-keywords): Use them.
-
-       * gnus-sum.el (gnus-summary-make-menu-bar): No addition.
-       (gnus-summary-move-article): When crossposting, get the Xrefs
-       header right.
-
-       * nnfolder.el (nnfolder-request-accept-article): Work when
-       respooling. 
-
-Thu Mar  6 08:41:16 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.19 is released.
-
-Thu Mar  6 08:00:31 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-newgroups-header-regexp): Include Gcc
-       header. 
-
-       * gnus-sum.el (gnus-summary-delete-article): Message errors.
-
-       * gnus-group.el (gnus-group-unsubscribe-group): Work on ranked
-       groups. 
-
-Thu Mar  6 07:46:56 1997  Katsumi Yamaoka  <yamaoka@ga.sony.co.jp>
-
-       * nnmail.el (nnmail-move-inbox): Protect against nil results.
-
-Thu Mar  6 04:23:11 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-kill-buffer): Ask before killing.
-
-       * nnfolder.el (nnfolder-possibly-activate-groups): Removed.
-       (nnfolder-request-group): Changed servers too late.
-       (nnfolder-active-timestamp): New variable.
-
-       * gnus-sum.el (gnus-summary-respool-query): Narrow to head instead
-       of body.
-
-       * nntp.el (nntp-accept-process-output): Inhibit logging.
-
-       * gnus-group.el (gnus-group-sort-groups): Doc fix.
-
-       * nnfolder.el (nnfolder-request-accept-article): Insert Message-ID
-       into cache.
-       * nnmh.el (nnmh-request-accept-article): Ditto.
-       * nnml.el (nnml-request-accept-article): Ditto.
-       * nnbabyl.el (nnbabyl-request-accept-article): Ditto.
-       * nnmbox.el (nnmbox-request-accept-article): Ditto.
-
-       * nnmail.el (nnmail-cache-close): Kill buffer.
-       (nnmail-cache-insert): Make sure the cache is open.
-       (nnmail-fetch-field): New function.
-
-Thu Mar  6 02:19:31 1997  James LewisMoss  <dres@scsn.net>
-
-       * smiley.el (smiley-deformed-regexp-alist): Fix FaceIronic.
-
-Wed Mar  5 09:15:04 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-check-duplication): Ditto.
-
-Wed Mar  5 09:14:12 1997  Carsten Leonhardt  <leo@arioch.oche.de>
-
-       * nnmail.el (nnmail-check-duplication): Use a different
-       Message-ID. 
-
-Sun Mar  2 16:58:16 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.18 is released.
-
-Sun Mar  2 05:48:56 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-load.el (customize): Load `cus-edit'.
-
-Sun Mar  2 04:40:48 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.17 is released.
-
-Sun Mar  2 04:01:29 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-mail): Don't `list' other-headers.
-
-Sat Mar  1 22:46:37 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus.el: Added mail keyword.
-       (gnus): Add to mail and news customization groups.
-       (gnus-visual): Added to the faces customization group.
-       * message.el (message): Add to mail and news customization groups.
-
-       * gnus-cus.el (wid-edit): Changed from widget-edit.
-
-Sun Mar  2 03:44:07 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-respool-query): Use it.
-
-       * gnus.el (gnus-narrow-to-body): New function.
-
-       * nnfolder.el (nnfolder-active-number): Simplify.
-
-Sun Mar  2 03:26:57 1997  Joev Dubach  <dubach1@husc.harvard.edu>
-
-       * gnus-art.el (article-make-date-line): Add "Date: ".
-
-Sun Mar  2 02:54:13 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-uu.el (gnus-quote-arg-for-sh-or-csh): Also escape {}. 
-
-       * gnus-srvr.el (gnus-server-prepare): Don't insert servers twice.
-
-       * nnmail.el (nnmail-read-passwd): Conditionalize
-       `ange-ftp-read-passwd'.
-
-Sat Mar  1 17:53:05 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-xmas.el (gnus-xmas-read-event-char): Exit on button-press
-       event.
-
-       * nnml.el (nnml-retrieve-headers): Make sure file is non-nil.
-
-Sun Mar  2 02:43:46 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nndoc.el (nndoc-type-alist): Have rfc934 separators handled
-       better. 
-
-       * nnmail.el (nnmail-move-inbox): Take heed of the return value
-       from movemail.
-
-Fri Feb 21 19:54:24 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-xmas.el (gnus-xmas-redefine): Use `region-active-p'.
-       (gnus-xmas-region-active-p): Removed.
-
-Sun Mar  2 02:16:38 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-update-article-line): Only insert
-       Subject string when needed.
-
-       * gnus-util.el (gnus-output-to-mail): Quote all "From " lines. 
-
-Sun Mar  2 02:13:17 1997  David Martin  <dm@cs.bu.edu>
-
-       * nndir.el (nndir): Use `nnml-close-group'.
-
-Sun Mar  2 01:51:21 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-start.el (gnus-init-file): Changed default.
-
-       * gnus-group.el (gnus-ephemeral-group-server): New server.
-       (gnus-group-read-ephemeral-group): Use it to use unique servers. 
-
-Sat Mar  1 04:06:11 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-article-mode): Made `gnus-button-marker-list'
-       buffer-local.
-       (gnus-article-add-buttons): Don't buttonize the same article
-       twice. 
-
-       * gnus-sum.el (gnus-set-mode-line): Chop better.
-
-       * gnus-art.el (gnus-article-treat-html): Not a new function.
-       Uh-uh.  No way.  I don't even exist.
-
-       * gnus-cite.el (gnus-article-fill-cited-article): Bind
-       filladapt-mode to nil.
-
-Sat Mar  1 03:51:18 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.16 is released.
-
-Sat Mar  1 00:04:09 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-set-mode-line): Possibly take into account the
-       buffer name.
-
-       * gnus-srvr.el (gnus-server-prepare): Try to make sure we only
-       insert servers once.
-
-       * gnus-sum.el (gnus-summary-walk-group-buffer): Don't move point
-       much. 
-
-       * gnus-group.el (gnus-group-update-group): Don't move point.
-
-       * gnus-xmas.el (gnus-xmas-force-redisplay): Changed default to
-       nil. 
-       (gnus-xmas-switch-horizontal-scrollbar-off): New function.
-       (gnus-xmas-redefine): Use it.
-
-       * nnfolder.el (nnfolder-active-number): Don't save active here.
-
-       * gnus-sum.el (gnus-summary-reparent-thread): Use the original
-       article. 
-
-Fri Feb 28 01:01:33 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-start.el (gnus-1): Pass ARG on to listing.
-       (gnus-started-hook): New.
-       (gnus-1): Use it.
-
-       * gnus-group.el (gnus-group-get-new-news): List using ARG if ARG
-       is higher than current listing.
-
-Tue Feb 25 23:28:47 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nntp.el (nntp-retrieve-headers): Go to the next-to-last line.
-
-Fri Feb 21 00:28:37 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-rename-group): Rename to right name.
-
-       * nnmail.el (nnmail-process-babyl-mail-format): Allow continuation
-       Message-IDs.
-       (nnmail-process-unix-mail-format): Ditto.
-       (nnmail-process-mmdf-mail-format): Ditto.
-
-       * nnml.el (nnml-update-file-alist): New function.
-       (nnml-retrieve-headers): Use it.
-       (nnml-request-move-article): Delete zipped files.
-       (nnml-request-replace-article): Write to gzipped, if wanted.
-
-Thu Feb 20 18:36:22 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-picon.el (gnus-picons-display-where): Doc fix.
-
-       * gnus-start.el (gnus-read-newsrc-el-file): Offer to break.
-
-       * nnmail.el (nnmail-search-unix-mail-delim): Exclude newlines from
-       matches.
-
-Thu Feb 20 04:16:50 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.15 is released.
-
-Thu Feb 20 03:28:00 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-xmas.el (gnus-xmas-mode-line-buffer-identification):
-       Respect non-standard mode line settings.
-
-       * gnus-group.el (gnus-group-line-format): Doc fix.
-
-       * nndoc.el (nndoc-rfc934-type-p): New function.
-       (nndoc-type-alist): Define RFC934 type.
-
-Wed Feb 19 05:18:06 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-group.el (gnus-group-set-mode-line): Mark the change with
-       two asterisks.
-
-Thu Feb 20 03:19:28 1997  Joev Dubach  <dubach1@husc.harvard.edu>
-
-       * gnus-topic.el (gnus-topic-prepare-topic): Show empty topics. 
-
-Thu Feb 20 02:30:27 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-process-prefix): Use
-       `gnus-region-active-p'. 
-
-       * gnus-score.el (gnus-hierarchial-home-score-file): Respect short
-       file names.
-       (gnus-hierarchial-home-adapt-file): Ditto.
-
-Wed Feb 19 00:44:41 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnml.el (nnml-request-regenerate): Return t.
-
-       * gnus-srvr.el (gnus-server-regenerate-server): Better messaging.
-
-       * gnus.el: Autoload gnus-quote-arg-for-sh-or-csh.
-
-Tue Feb 18 23:26:28 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.14 is released.
-
-Tue Feb 18 21:47:18 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-xmas.el (gnus-xmas-modeline-glyph): Didn't work when the
-       etc dir couldn't be found.
-
-       * gnus-topic.el (gnus-topic-fold): Enter into dribble.
-
-       * nnbabyl.el (nnbabyl-request-scan): Put things in right dir.
-       * nnmbox.el (nnmbox-request-scan): Ditto.
-
-       * gnus-sum.el (gnus-offer-save-summaries): Use
-       `switch-to-buffer'. 
-
-       * nnkiboze.el (nnkiboze-enter-nov): Removed debug.
-
-       * gnus-sum.el (gnus-summary-insert-pseudos): Quote when not
-       viewing separately.
-
-Sun Feb 16 23:43:19 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-topic.el (gnus-topic-edit-parameters): Print the topic
-       name.
-
-       * gnus-group.el (gnus-group-edit-group): Print the group name.
-
-Sun Feb 16 18:30:27 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-score.el (gnus-score-adaptive): Respect score adapt
-       settings. 
-
-       * gnus-sum.el (gnus-summary-prev-page): Search all frames for
-       window. 
-       (gnus-summary-next-page): Ditto.
-
-Sun Feb 16 18:12:01 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.13 is released.
-
-Sun Feb 16 16:20:33 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-nocem.el (gnus-nocem-scan-groups): Allow NULL references.
-
-       * message.el (message-make-caesar-translation-table): New function.
-       (message-caesar-region): Use it.
-
-       * messagexmas.el (message-xmas-make-caesar-translation-table): New
-       function.
-
-       * gnus-art.el (gnus-article-add-buttons): Respect previous
-       buttons. 
-       (gnus-button-in-region-p): New function.
-       (gnus-article-add-buttons): Use it.
-
-       * nnweb.el (nnweb-max-hits): Fixed default.
-
-Tue Feb 11 20:25:42 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-srvr.el (gnus-server-regenerate-server): Typo.
-
-Sun Feb 16 15:24:40 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el: Removed `message-point-at-bol' and `eol'.
-
-       * gnus-start.el (gnus-read-active-file): Allow FORCE argument.
-       (gnus-check-bogus-newsgroups): Use it.
-
-       * gnus-srvr.el (gnus-server-copy-server): Allow copying of
-       unreadable servers.
-
-Thu Feb 13 19:44:33 1997  Steven L Baur  <steve@altair.xemacs.org>
-
-       * gnus-util.el (gnus-output-to-mail): Make sure `From ' lines in
-       saved messages are preceded by a newline.
-
-Wed Feb 12 05:28:32 1997  Zlatko Calusic  <zcalusic@srce.hr>
-
-       * gnus-sum.el (gnus-summary-copy-article): Use TO-NEWSGROUP.
-
-Sat Feb 15 21:48:23 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * nnmail.el: Organized customization options.
-       * gnus.el: Updated.
-
-Wed Feb 12 18:06:11 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-kill.el: Reorganized customization
-       options.  
-       * gnus-sum.el: Ditto.
-       * gnus-score.el: Ditto.
-       * gnus-start.el: Ditto.
-       * gnus.el: Ditto.
-
-Fri Feb 14 09:30:42 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (article-strip-multiple-blank-lines): Inhibit
-       point-motion hooks.
-       (article-hide-pgp): Don't hide the leading newline.
-
-       * gnus-group.el (gnus-group-quick-select-group): Bind
-       gnus-home-score-file to nil.
-
-       * gnus-start.el (gnus-dribble-read-file): Changed prompt.
-
-Wed Feb 12 09:39:53 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-get-new-mail): Make sure we're using directory
-       file names.
-
-Tue Feb 11 14:00:56 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-followup): Respect Posted-To.
-
-Tue Feb 11 08:15:38 1997  Rich Pieri  <rich.pieri@prescienttech.com>
-
-       * nnmail.el (nnmail-pop3-movemail): New function.
-
-Tue Feb 11 03:44:43 1997  Karl Kleinpaste  <karl@jprc.com>
-
-       * gnus-art.el (gnus-emphasis-alist): Made compounds available
-       again. 
-
-Mon Feb 10 08:54:09 1997  Steven L Baur  <steve@altair.xemacs.org>
-
-       * dgnushack.el (dgnushack-compile): XEmacs doesn't complain about
-       portability variables any more.
-
-Mon Feb 10 14:19:55 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.12 is released.
-
-Mon Feb 10 12:47:41 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-fetch-field): Accept an optional param.
-       (message-reply): Only fetch the first Message-ID.
-
-       * gnus-score.el (gnus-summary-score-effect): Update mode line.
-
-Mon Feb 10 12:32:38 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-art.el: Simplify.
-
-Mon Feb 10 12:23:48 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-prev-page): Don't scroll when the
-       article buffer isn't visible.
-
-       * gnus.el ((featurep 'gnus-xmas)): Removed
-       `gnus-make-local-hook'. 
-
-Mon Feb 10 12:08:31 1997  Adrian Aichner  <aichner@ecf.teradyne.com>
-
-       * gnus-util.el (gnus-turn-off-edit-menu): Doc fix.
-
-Mon Feb 10 07:42:37 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-prepare-unthreaded): Make sure point
-       is at bol.
-
-       * gnus-srvr.el (gnus-browse-mode-map): Define gnus-bug.
-       (gnus-server-mode-map): Ditto.
-
-       * gnus-sum.el (gnus-summary-edit-article-done): Update original
-       article buffer.
-
-       * gnus-uu.el (gnus-uu-digest-mail-forward): Restore window
-       config. 
-
-       * nnmail.el (nnmail-move-inbox): Make sure tofile exists before
-       setting modes.
-
-       * gnus-xmas.el (gnus-xmas-region-active-p): New function.
-
-       * gnus-ems.el (gnus-region-active-p): New function.
-
-Mon Feb 10 07:40:45 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-sum.el (gnus-summary-work-articles): Use zmacs-region. 
-
-Mon Feb 10 07:06:44 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-mode): Nix out all local variables.
-
-       * gnus-art.el (gnus-summary-save-in-mail): Don't ask.
-
-       * gnus-sum.el (gnus-ps-print-hook): New hook.
-       (gnus-summary-print-article): Use it.
-
-       * message.el (message-reply): Make sure there is something
-       inserted as a To.
-
-Mon Feb 10 05:54:28 1997  Paul Franklin  <paul@cs.washington.edu>
-
-       * gnus-group.el (gnus-group-edit-group): Ignore errors while
-       closing group.
-
-Mon Feb 10 05:22:09 1997  Steven L. Baur  <steve@miranova.com>
-
-       * messagexmas.el (message-xmas-maybe-fontify): New function.
-       (message-mode-hook): Use it.
-
-Sat Feb  8 21:18:25 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-user-organization): Only use string values
-       of `gnus-local-organization'.
-
-Tue Feb  4 20:26:20 1997  Paul Franklin  <paul@cs.washington.edu>
-
-       * nnmail.el (nnmail-get-spool-files): Don't call file-directory-p
-       on pop spool specifiers.
-
-Wed Feb  5 01:56:07 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-delete-mh-headers): Changed default.
-       (message-send-mail-with-mh): Use it.
-       (message-mh-deletable-headers): Renamed.
-
-       * gnus-sum.el (gnus-read-header): Don't do anything if the article
-       can't be requested.
-
-Wed Feb  5 01:51:07 1997  Joev Dubach  <dubach1@husc.harvard.edu>
-
-       * gnus-sum.el (gnus-select-newsgroup): Update group line.
-
-Tue Feb  4 20:23:30 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-util.el (gnus-output-to-mail): Insert a newline before the
-       "From ".
-
-       * nnml.el (nnml-request-move-article): Update active ranges.
-       (nnml-nov-delete-article): Update active ranges.
-
-Tue Feb  4 17:54:09 1997  HISASHIGE Kenji  <hysa@adtec.ed.fujitsu.co.jp>
-
-       * gnus-msg.el (gnus-summary-reply-with-original): Pass on the
-       `wide' param.
-
-Tue Feb  4 03:49:59 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.11 is released.
-
-Tue Feb  4 01:57:56 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnvirtual.el (nnvirtual-last-accessed-component-group): New
-       variable. 
-       (nnvirtual-request-article): Use it and allow fetching by
-       Message-ID. 
-
-       * gnus-dup.el (gnus-dup-enter-articles): Don't enter canceled
-       articles into dup lists.
-
-       * nnvirtual.el (nnvirtual-update-read-and-marked): Check that we
-       have a current group.
-
-       * message.el (message-mode): Add "field" menu under XEmacs.
-
-Mon Feb  3 07:46:33 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.10 is released.
-
-Mon Feb  3 05:48:09 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-fcc-handler-function): Doc fix.
-       (message-do-fcc): Revert to 5.4.8 behavior.
-
-       * gnus-util.el ((fboundp 'point-at-bol)): Made into defun.
-
-       * gnus-topic.el (gnus-topic-check-topology): Skip "dummy.group".
-       (gnus-group-sort-topic): Delete "dummy.group".
-
-       * gnus-art.el (article-make-date-line): Add a newline.
-
-       * nnkiboze.el (nnkiboze-generate-group): Check that the nov file
-       exists. 
-
-       * gnus-sum.el (gnus-summary-make-menu-bar): Moved some.
-
-       * gnus-art.el (gnus-article-make-menu-bar): Exclude the summary
-       menu. 
-
-       * gnus.el (gnus-similar-server-opened): New function.
-       (gnus-server-extend-method): Use it.
-
-       * gnus-sum.el (gnus-data-set-header): New macro.
-       (gnus-summary-edit-article-done): Update when the Message-ID is
-       edited. 
-
-       * nnml.el (nnml-request-article): Return the correct group name. 
-
-Sat Feb  1 21:29:56 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * smiley.el (smiley-buffer): Use the `smiley-mouse-face' variable,
-       not face.
-
-Sat Feb  1 14:19:54 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.9 is released.
-
-Sat Feb  1 13:30:33 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Insert
-       "-*- emacs-lisp -*-" at the first line.
-
-Sat Feb  1 13:23:19 1997  Mark Borges  <mdb@cdc.noaa.gov>
-
-       * gnus-xmas.el (gnus-xmas-define): Do the right characterp thing. 
-
-Sat Feb  1 12:28:33 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * smiley.el (smiley-mouse-face): New variable.
-       (smiley-buffer): Use it.
-
-       * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Use gnus-prin1.
-
-       * gnus-util.el (gnus-prin1): Bind print-level and print-length to
-       nil 
-
-       * gnus-art.el (gnus-button-alist): Let mailto: be less greedy.
-       (gnus-button-alist): Ditto with news:.
-
-       * gnus-topic.el (gnus-topic-unmark-topic): Let groups be unmarked.
-
-       * gnus.el (gnus-read-group): Place point at bol.
-
-       * gnus-util.el ((fboundp 'point-at-bol)): Use the functions if
-       they exist. 
-
-       * gnus-msg.el (gnus-summary-supersede-article): Mark article as
-       canceled. 
-
-Wed Jan 29 22:28:44 1997  Steven L Baur  <steve@altair.xemacs.org>
-
-       * gnus-xmas.el (gnus-xmas-define): Correct XEmacs version test to
-       handle v20.
-
-Sat Feb  1 12:19:14 1997  Katsumi Yamaoka  <yamaoka@ga.sony.co.jp>
-
-       * nnml.el (nnml-generate-active-info): Don't bug out.
-
-Sat Feb  1 00:52:03 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-fcc-handler-function): Changed default.
-       (message-output): New function.
-       (message-do-fcc): Use it.
-
-       * gnus-util.el (gnus-convert-article-to-rmail,
-       gnus-output-to-rmail): Moved here.
-
-       * message.el (message-check-news-header-syntax): Allow trailing
-       periods. 
-       (message-check-news-header-syntax): Don't allow trailing periods. 
-
-Fri Jan 31 22:18:03 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-resend): Rename "From ".
-
-       * nntp.el (nntp-accept-process-output): Use nnheader-message.
-
-Fri Jan 31 11:51:18 1997  Katsumi Yamaoka  <yamaoka@ga.sony.co.jp>
-
-       * nnml.el (nnml-generate-nov-databases-1): Sort the file alist. 
-
-Thu Jan 30 13:13:39 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus.el: More cleanup of customization groups.
-
-Thu Jan 30 04:33:01 1997  Sudish Joseph  <sudish@mindspring.com>
-
-       * gnus-xmas.el (gnus-xmas-define): Use `char-or-char-int-p'. 
-
-Thu Jan 30 04:15:28 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.8 is released.
-
-Thu Jan 30 02:07:13 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-indent-citation): Place point the right
-       place when indenting.
-
-       * nnml.el (nnml-generate-active-info): Don't enter conses into
-       lists. 
-
-       * gnus-score.el (gnus-score-file-rank): All global score files
-       have low ranks.
-
-       * nnweb.el (nnweb-possibly-change-server): Read active file.
-       (nnweb-dejanews-create-mapping): Respect .overview.
-       (nnweb-reference-create-mapping): Ditto.
-       (nnweb-altavista-create-mapping): Ditto.
-
-Wed Jan 29 04:52:31 1997  Katsumi Yamaoka  <yamaoka@ga.sony.co.jp>
-
-       * nnml.el (nnml-generate-nov-databases-1): Generate NOV files in
-       the right order.
-
-Tue Jan 28 23:28:49 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-list-groups): Position point.
-
-Tue Jan 28 22:11:36 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.7 is released.
-
-Tue Jan 28 19:48:54 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmh.el (nnmh-deletable-article-p): Never allow deleting the
-       last article in the group.
-
-       * nnweb.el (nnweb-definition): Accept an optional noerror
-       argument. 
-       (nnweb-request-article): Don't bug out when requesting by MsgId. 
-
-       * gnus-topic.el (gnus-group-prepare-topics): Return the number of
-       unread articles in the buffer.
-
-       * gnus-group.el (gnus-group-list-groups): On empty buffers, let
-       point go to the beginning.
-       (gnus-group-list-groups): Give "No news" message when using
-       topics. 
-
-       * gnus-topic.el (gnus-topic-goto-next-group): Let point remain
-       at the end of the buffer.
-
-       * gnus-group.el (gnus-group-rename-group): Check group name
-       syntax. 
-
-       * gnus.el (gnus-read-group): Accept an optional default.
-
-Tue Jan 28 18:11:54 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.6 is released.
-
-Tue Jan 28 13:55:12 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-article-check-hidden-text): Widen before doing
-       anything.
-
-       * gnus.el (gnus-visual): Doc fix.
-
-       * gnus-art.el (gnus-visible-headers): Just include "Resent-From". 
-
-Mon Jan 27 19:40:37 1997  Paul Franklin  <paul@cs.washington.edu>
-
-       * gnus-sum.el (gnus-read-header): Make sure nntp-server-buffer is
-       empty on failure.
-
-Tue Jan 28 00:33:27 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-delete-incoming): Changed default.
-
-       * gnus-topic.el (gnus-topic-mark-topic): Let groups be marked.
-       (gnus-topic-unmark-topic): Ditto.
-
-       * nnmail.el (nnmail-process-babyl-mail-format): Unquote ">From ". 
-
-       * gnus-sum.el (gnus-summary-read-group): Only beep dead groups. 
-
-Mon Jan 27 18:24:27 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnml.el (nnml-generate-nov-databases-1): Work properly on
-       compressed files.
-       (nnml-generate-nov-file): Ditto.
-
-       * gnus.el (gnus-article-mode-map): Don't unconditionally suppress
-       all the major keymaps.
-
-       * gnus-sum.el (gnus-summary-read-group): Beep dead non-native
-       groups can't be entered. 
-
-Mon Jan 27 18:03:17 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.5 is released.
-
-Mon Jan 27 17:35:21 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-expand-group): Don't skip over ":".
-
-       * gnus-score.el (gnus-score-find-bnews): Wouldn't find "nntp+"
-       score files.
-
-       * gnus-art.el (t): Define `M-^'.
-
-Mon Jan 27 15:00:11 1997  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-sum.el (gnus-summary-search-article): Inhibit forced
-       redisplay on XEmacs.
-
-Mon Jan 27 08:54:55 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.4 is released.
-
-Mon Jan 27 07:29:30 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnsoup.el (nnsoup-file-name): Also find AREAS.
-
-Mon Jan 27 07:09:13 1997  Joev Dubach  <dubach1@husc.harvard.edu>
-
-       * message.el (message-use-followup-to): Doc fix.
-
-Mon Jan 27 06:59:14 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-article-read-summary-keys): Don't mess up when
-       using pick mode.
-
-       * gnus-undo.el (gnus-undo-mode): Set undo boundary.
-
-       * gnus-sum.el (gnus-summary-exit-hook): Doc fix.
-
-Sun Jan 26 13:20:42 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Autoload gnus-add-configuration.
-
-Sun Jan 26 13:01:07 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.3 is released.
-
-Sun Jan 26 12:52:11 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.2 is released.
-
-Sun Jan 26 09:28:31 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-group.el: Organized customization options, and moved group
-       definitions to `gnus.el'.
-       * gnus-sum.el: Ditto.
-       * gnus.el: Ditto.
-
-Sun Jan 26 07:37:40 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Autoload topic function.
-
-       * gnus-topic.el (gnus-topic-set-parameters): Quote strings to
-       enter into dribble file.
-
-       * gnus-salt.el (gnus-pick-setup-message): Also restore right
-       config on sending.
-
-       * gnus.el (gnus-group-startup-message): Add a space to the
-       beginning of the version string.
-
-Sat Jan 25 12:17:56 1997  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Gnus v5.4.1 is released.
-
-Sat Jan 25 10:59:31 1997  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.84 is released.
-
-Fri Jan 24 20:31:25 1997  Paul Franklin  <paul@cs.washington.edu>
-
-       * gnus-sum.el (gnus-summary-next-article): There's no
-       reason not to select the current article if it's what should
-       be selected.
-
-Sat Jan 25 01:03:59 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-        * gnus-art.el: Organized customization options.
-        * gnus-sum.el: Adjusted.
-        * gnus-cite.el: Ditto.
-        * gnus.el: Ditto.
-
-Sat Jan 25 09:49:40 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-demon.el (gnus-demon): Disable demons when the minibuffer
-       window is active.
-
-       * gnus-art.el (gnus-article-read-summary-keys): Disable pick mode
-       commands. 
-
-Sat Jan 25 09:42:41 1997  Kurt Swanson  <kurt@dna.lth.se>
-
-       * message.el (message-pipe-buffer-body): New function.
-
-       * gnus-sum.el (gnus-summary-pipe-message): New command and
-       keystroke. 
-
-Fri Jan 24 11:01:06 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-uu.el: Cleaned up customization groups.
-
-Fri Jan 24 15:45:48 1997  Kurt Swanson  <kurt@dna.lth.se>
-
-       * gnus-sum.el (gnus-summary-make-menu-bar): Moved cache menu.
-
-Fri Jan 24 10:05:49 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-msg.el (gnus-summary-resend-message): Accept
-       process/prefix. 
-
-       * gnus-cite.el (gnus-article-fill-cited-article): Accept a width
-       prefix. 
-
-       * gnus-art.el (gnus-article-read-summary-keys): Disable pick mode
-       map. 
-
-       * gnus-sum.el (gnus-summary-make-menu-bar): Duplication removed.
-
-Fri Jan 24 08:33:42 1997  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.83 is released.
-
-Fri Jan 24 05:05:38 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el (gnus-article-display-hook): Removed emphasize.
-
-       * gnus-score.el (gnus-score-edit-current-scores): Set global
-       vars. 
-
-       * nnml.el (nnml-possibly-change-directory): Return nil when the
-       group can't be selected.
-
-       * gnus-art.el (gnus-emphasis-alist): Don't underline
-       all-underscore words.
-
-       * gnus-topic.el (gnus-topic-unindent): Give the right number of
-       unread articles.
-       (gnus-topic-indent): Ditto.
-
-       * gnus-msg.el (gnus-summary-wide-reply-with-original): New command
-       and keystroke.
-       (gnus-summary-wide-reply): Ditto.
-
-Fri Jan 24 04:57:07 1997  Joe Wells  <jbw@cs.bu.edu>
-
-       * gnus-uu.el (gnus-quote-arg-for-sh-or-csh): New function.
-       (gnus-uu-command): Use it.
-
-Fri Jan 24 04:55:10 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-topic.el (gnus-topic-mark-topic): Also bound to `#'.
-
-Fri Jan 24 04:44:10 1997  Greg Klanderman  <greg@alphatech.com>
-
-       * message.el (message-do-send-housekeeping): Check for nil
-       message-buffer-list. 
-
-Fri Jan 24 02:55:33 1997  Kurt Swanson  <kurt@dna.lth.se>
-
-       * gnus-util.el (gnus-eval-in-buffer-window): Set buffer.
-
-Thu Jan 23 03:39:48 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnsoup.el (nnsoup-file-name): New function.
-       (nnsoup-read-areas): Use it.
-       (nnsoup-dissect-buffer): New function.
-       (nnsoup-number-of-articles): Use it.
-       (nnsoup-narrow-to-article): Ditto.
-       (nnsoup-header): Removed.
-
-       * gnus.el (gnus-check-backend-function): Doc fix.
-
-       * gnus-art.el (gnus-article-goto-prev-page): Went to next article,
-       not prev.
-
-       * gnus-group.el (gnus-group-insert-group-line-info): Display "*"
-       on unknown groups.
-
-       * gnus-art.el (article-hide-boring-headers): Ignore errors in
-       `mail-extract-address-components'. 
-
-       * nnmail.el (nnmail-date-to-time): Parse zone correctly.
-       (nnmail-date-to-time): Seconds, dammit, seconds!
-
-Tue Jan 21 09:31:55 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-url-mailto): Didn't accept mailto links. 
-
-       * gnus-score.el (gnus-summary-score-effect): Doc fix.
-
-       * nnmail.el (nnmail-move-inbox): Don't prin1 password.
-
-Mon Jan 20 18:06:19 1997  Paul Franklin  <paul@cs.washington.edu>
-
-       * gnus-sum.el (gnus-simplify-buffer-fuzzy-step): New function.
-       (gnus-simplify-buffer-fuzzy): Use it.
-
-       * gnus-sum.el (gnus-simplify-buffer-fuzzy): Fix while condition.
-       Add self-discipline tags.
-
-Tue Jan 21 05:28:05 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-get-newsgroup-headers-xover): Would return
-       nil from NoCeM.
-
-Mon Jan 20 04:59:53 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-button-alist): Only on word boundaries.
-
-       * message.el (message-check-news-header-syntax): Don't prompt when
-       not read active file.
-
-       * gnus-msg.el (gnus-setup-message): Always set actions.
-
-Sat Jan 18 07:23:41 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nntp.el (nntp-have-messaged): New variable.
-       (nntp-accept-process-output): Use it.
-       (nntp-wait-for): Ditto.
-
-Sat Jan 18 02:44:53 1997  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.82 is released.
-
-Fri Jan 17 00:04:47 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnheader.el (nnheader-find-nov-line): Do the right thing with
-       short buffers.
-
-       * nnkiboze.el (nnkiboze-generate-group): Supress duplicate
-       suppression. 
-       (nnkiboze-generate-group): Message better.
-
-       * gnus-sum.el (gnus-get-newsgroup-headers-xover): Don't always
-       fetch more heads.
-       (gnus-select-newsgroup): Use it.
-
-       * nnmail.el (nnmail-get-new-mail): Weird file-truename problem.
-
-       * gnus-sum.el (gnus-summary-caesar-message): Dox fix.
-       (gnus-articles-to-read): Limit length of prompt.
-
-       * message.el (message-followup): Fold case before comparing
-       "world" to Distribution.
-
-       * gnus-sum.el (gnus-summary-save-newsrc): Save dribble buffer.
-
-       * nnfolder.el (nnfolder-request-expire-articles): Better message. 
-
-       * gnus-nocem.el (gnus-nocem-load-cache): Interactive.
-
-Thu Jan 16 23:48:05 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-move-inbox): Use `nnmail-pop-password'. 
-
-Wed Jan 15 18:41:42 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnml.el (nnml-request-expire-articles): Typo.
-       (nnml-request-expire-articles): Don't blank out messages so
-       often. 
-
-       * nnsoup.el (nnsoup-request-type): Let commands like `a' work
-       better. 
-
-Wed Jan 15 05:33:23 1997  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.81 is released.
-
-Wed Jan 15 02:57:18 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-topic.el (gnus-topic-indent): Don't remove all groups from
-       topic. 
-       (gnus-topic-unindent): Ditto.
-
-       * gnus-sum.el (gnus-summary-respool-query): Don't mark anything as
-       read.
-
-       * gnus-art.el (gnus-button-alist): Move news:mesg-id up.
-
-       * gnus.el (gnus-article-display-hook): Emphasize by default.
-
-       * gnus-topic.el (gnus-topic-rename): Mark newsrc as dirty.
-
-       * gnus-sum.el (gnus-summary-next-page): When the article window
-       isn't displayed, don't scroll.
-
-Wed Jan 15 02:19:56 1997  Markus Linnala  <maage@ee.tut.fi>
-
-       * gnus-cite.el (gnus-cite-reply-regexp, gnus-cite-always-check):
-       New variables.
-
-Wed Jan 15 02:02:03 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (article-date-user): New command and keystroke.
-
-Wed Jan 15 02:01:15 1997  David Moore  <dmoore@ucsd.edu>
-
-       * gnus-art.el (gnus-article-time-format): New variable.
-       (article-make-date-line): Use it.
-
-Wed Jan 15 01:44:15 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-emphasis-alist): Allow emphasis around
-       sentences. 
-       (gnus-button-url-regexp): Don't allow empty URLs.
-
-Sun Jan 12 19:27:23 1997  Thor Kristoffersen  <thor@unik.no>
-
-       * nntp.el (nntp-request-head): Work when using rlogin. 
-
-Sun Jan 12 15:17:16 1997  Chris Bone  <bone@al.com.au>
-
-       * nntp.el (nntp-accept-process-output): Give numerical messages. 
-       (nntp-wait-for): Search less.
-
-Fri Jan 10 17:38:38 1997  Erik Toubro Nielsen  <erik@ifad.dk>
-
-       * gnus-art.el (gnus-Numeric-save-name): Doc fix.
-
-Thu Jan  9 21:51:59 1997  Dan Schmidt  <dfan@harmonixmusic.com>
-
-       * nnmail.el (nnmail-move-inbox): Quote password.
-
-Thu Jan  9 18:24:32 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-move-inbox): Don't nix out
-       nnmail-internal-password. 
-
-       * nnml.el (nnml-request-expire-articles): Also expire gzipped
-       articles. 
-
-       * gnus-art.el (article-emphasize): Wouldn't toggle.
-
-Thu Jan  9 18:18:26 1997  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.80 is released.
-
-Thu Jan  9 12:00:21 1997  Wesley Hardaker  <Wesley.Hardaker@sphys.unil.ch>
-
-       * acronym.el: New package.
-
-Thu Jan  9 11:43:28 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Updated copyrights.
-
-       * nnoo.el (nnoo-push-server): Only push the first server.
-
-Wed Jan  8 11:34:07 1997  David Moore  <dmoore@ucsd.edu>
-
-       * nnoo.el (nnoo-push-server): Revert to 0.77 behaviour.
-
-       * nnvirtual.el (nnvirtual-info-installed): New variable.
-       (nnvirtual-open-server): Use it.
-       (nnvirtual-request-update-info): ditto.
-       (nnvirtual-create-mapping): ditto.
-
-       * gnus-group.el (gnus-group-edit-group): Close the group before
-       editing it.
-       (gnus-group-add-to-virtual): ditto.
-
-Thu Jan  9 11:32:13 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el: Redefine ems.
-
-Wed Jan  8 20:34:09 1997  John McClary Prevost  <visigoth@naiad.fac.cs.cmu.edu>
-
-       * message.el (message-sendmail-f-is-evil): New variable.
-       (message-elide-elipsis): Ditto.
-
-Wed Jan  8 17:19:02 1997  Paul Stodghill  <stodghil@cs.cornell.edu>
-
-       * gnus-demon.el (gnus-demon): Don't run when not idle.
-
-Wed Jan  8 12:58:23 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-work-articles): Accept non-numerical
-       prefix values.
-
-Wed Jan  8 12:52:53 1997  Jason Rumney  <jasonr@pec.co.nz>
-
-       * nnmail.el (nnmail-move-inbox): Use `nnmail-internal-password'. 
-
-Tue Jan  7 15:41:35 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-article-show-hidden-text): Would bug out on
-       signatures. 
-
-Mon Jan  6 23:46:53 1997  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.79 is released.
-
-Mon Jan  6 11:23:05 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-process-babyl-mail-format): Widen at the right
-       place.
-
-       * nnfolder.el (nnfolder-possibly-change-group): Set current group
-       before reading folder.
-
-       * message.el (message-send-mail-with-mh): Expand file name.
-       (message-mode-menu): Check whether mark-active exists.
-
-       * gnus-group.el (gnus-group-get-new-news): Don't pass ARG to the
-       listing function.
-
-       * gnus-xmas.el (gnus-xmas-article-show-hidden-text): Deleted.
-
-Sun Jan  5 21:35:37 1997  Sudish Joseph  <sudish@mindspring.com>
-
-       * gnus-xmas.el (gnus-xmas-article-show-hidden-text): Use
-       'article-type as the textprop of interest.  Speed fix.
-
-       * gnus-art.el (gnus-article-show-hidden-text): Speed fix.
-
-Sun Jan  5 11:43:08 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnml.el (nnml-retrieve-headers-with-nov): Use faster method for
-       finding the right range.
-
-       * gnus-demon.el (gnus-demon): Would fire off even if not idle.
-
-       * gnus-srvr.el (gnus-server-add-server): Error when defining an
-       existing server.
-
-       * gnus-start.el (gnus-get-unread-articles): Update info for native
-       groups.
-
-       * gnus-load.el (gnus-nocem): New file.
-
-       * gnus-sum.el (gnus-get-newsgroup-headers-xover): Make sure the
-       group name isn't nil.
-
-Sun Jan  5 11:18:22 1997  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.78 is released.
-
-Sun Jan  5 09:39:14 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-exit-no-update): Prompt change.
-       (gnus-summary-limit-to-author): Ditto.
-       (gnus-summary-limit-to-subject): Ditto.
-
-       * gnus-cite.el (gnus-dissect-cited-text): Recognize articles that
-       end with cited text.
-
-       * gnus-topic.el (gnus-group-sort-topic): Remove nil elements.
-
-       * nnoo.el (nnoo-push-server): When switching from the nil server,
-       update all the default values of the variables.
-
-       * nnkiboze.el (nnkiboze-generate-group): Protect against nil
-       infos. 
-
-       * lpath.el: Included.
-
-Sun Jan  5 09:36:57 1997  Martin Buchholz  <mrb@eng.sun.com>
-
-       * dgnushack.el (bytecomp): Required.
-
-Sat Jan  4 11:45:45 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el: Rename some functions back.
-
-       * gnus-sum.el (gnus-summary-save-newsrc): Don't nix out scores.
-
-       * gnus-async.el (gnus-async-prefetched-article-entry): Would
-       hang Emacs.
-
-Sat Jan  4 11:28:24 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.77 is released.
-
-Sat Jan  4 08:35:06 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-cache.el (gnus-start): Don't require gnus-sum.
-
-       * gnus-art.el: All article functions moved here.
-
-       * article.el: Elided.
-
-       * gnus-async.el (gnus-async-prefetched-article-entry): Check for
-       empty articles.
-
-       * gnus-art.el (gnus-read-save-file-name): Expand file name in
-       article save dir.
-
-Fri Jan  3 21:22:21 1997  Paul Stodghill  <stodghil@cs.cornell.edu>
-
-       * gnus-demon.el (gnus-demon): Use `gnus-demon-idle-time'.
-
-Tue Dec 31 10:38:43 1996    <ratinox@peorth.gweep.net (Stainless Steel Rat)>
-
-       * pop3.el: version 1.3
-
-       * pop3.el: (pop3-retr): added bill@attmail.com's big buffer sleeps
-       to save wear and tear on he heap.
-
-Thu Aug 01 11:53:48 1996    <ratinox@peorth.gweep.net (Stainless Steel Rat)>
-
-       * pop3.el: version 1.2
-
-       * pop3.el: (pop3-apop): minor changes to support XEmacs built-in
-       md5, or William Perry's modified md5.el.
-       
-       * pop3.el: (pop3-movemail): changed to use
-       pop3-authentication-scheme instead of pop3-use-apop.
-       
-       * pop3.el: pop3-use-appop: transformed into
-       pop3-authentication-scheme.
-       
-       * pop3.el: version 1.1
-       
-       * pop3.el: (pop3-apop): new function.  Send alternate
-       authentication information to the server.  Requires md5.el.
-       
-       * pop3.el: (pop3-open-server): set pop3-timestamp if server
-       returns one.
-       
-       * pop3.el: (pop3-movemail): use APOP authentication if
-       pop3-use-apop non-nil.
-       
-       * pop3.el: pop3-timestamp: added variable
-       
-       * pop3.el: pop3-use-apop: added variable
-
-Fri Jan  3 18:52:23 1997  Wesley Hardaker  <Wesley.Hardaker@sphys.unil.ch>
-
-       * gnus-group.el (gnus-group-get-new-news): Pass the ARG on to the
-       listing function.
-
-Fri Jan  3 18:32:24 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * article.el (article-hide-boring-headers): Respect
-       gnus-show-all-headers. 
-
-       * gnus-sum.el (gnus-summary-save-article): Update the mode line.
-
-Fri Jan  3 18:30:50 1997  Erik Toubro Nielsen  <erik@ifad.dk>
-
-       * nnmail.el (nnmail-remove-leading-whitespace): Replacing should
-       be non-literal.
-
-Fri Jan  3 18:18:30 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-expire-articles-now): Use
-       "yes-or-no". 
-       (gnus-summary-delete-article): Ditto.
-
-Fri Jan  3 18:16:27 1997  Peter Skov Knudsen  <knu@dde.dk>
-
-       * gnus-win.el (gnus-buffer-configuration): Don't create picons
-       frame unless needed.
-
-Fri Jan  3 17:21:30 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-elide-region): New command and keystroke.
-
-       * gnus-salt.el (gnus-generate-vertical-tree): Check whether we can
-       go backwards.
-
-       * gnus-group.el (gnus-group-catchup-current): Prompt better.
-
-       * gnus-undo.el (gnus-undo-make-menu-bar): Nonsense.
-
-Fri Jan  3 16:52:22 1997  Rajappa Iyer  <rsi@lucent.com>
-
-       * gnus-salt.el (gnus-pick-start-reading): Possibly catch up all
-       unpicked articles.
-
-Fri Jan  3 12:12:22 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-get-newsgroup-headers-xover): Try to get the
-       few last headers using HEAD in any case to work around a bug in
-       inn. 
-
-       * gnus-xmas.el (gnus-xmas-define): Redefined.
-
-       * gnus.el (gnus-characterp): Made into func.
-
-Thu Jan  2 16:21:47 1997  Sudish Joseph  <sudish@mindspring.com>
-
-       * gnus-util.el (gnus-characterp): New function.
-
-Wed Dec 18 18:15:39 1996  Jan Vroonhof  <vroonhof@math.ethz.ch>
-
-       * gnus-start.el (gnus-dribble-enter): Make sure we write at the
-       end of the dribble file
-
-Thu Jan  2 16:01:58 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-limit-children): Make NoCeM'ed
-       articles read.
-
-Tue Dec 17 20:24:40 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-save-newsrc): Respect the prefix.
-
-Mon Dec 16 23:47:30 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.76 is released.
-
-Mon Dec 16 14:33:58 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-msg.el (gnus-bug): Insert nntp server type.
-       (gnus-copy-article-buffer): Remove prev/next buttons.
-
-       * gnus-cache.el (gnus-jog-cache): Let the call func be
-       interactive. 
-
-       * gnus-art.el (gnus-summary-save-in-pipe): Include number of
-       articles. 
-       (gnus-article-add-buttons): Don't add buttons to already
-       buttonized areas.
-
-       * nntp.el (nntp-open-connection): Allow `C-g' to continue.
-
-       * nnbabyl.el (nnbabyl-retrieve-headers): Wouldn't find all
-       articles sometimes.
-
-       * gnus-sum.el (gnus-data-compute-positions): Reinstated.
-       (gnus-remove-thread): Do the right thing with dummy roots.
-
-       * nndoc.el (nndoc-request-article): Only return valid articles.
-
-       * nnfolder.el (nnfolder-delete-mail): Wouldn't delete From lines. 
-
-       * gnus-topic.el (gnus-topic-find-groups): Ignore nil groups. 
-
-       * nnfolder.el (nnfolder-save-mail): Quote all "From " lines.
-
-Sat Dec 14 11:49:21 1996  David Moore  <dmoore@ucsd.edu>
-
-       * gnus-nocem.el (gnus-nocem-groups):
-       news.admin.net-abuse.bulletins is to replace
-       news.admin.net-abuse.announce for nocemish postings.
-
-Mon Dec 16 13:38:38 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-move-inbox): Message at end.
-
-       * gnus-sum.el (gnus-summary-refer-parent-article): Use
-       "in-reply-to" header.
-
-       * gnus-topic.el (gnus-topic-set-parameters): Enter into dribble. 
-
-       * gnus-sum.el (gnus-summary-save-newsrc): Change.
-       (gnus-summary-catchup): Only catch up the limited articles. 
-       (gnus-simplify-subject-fuzzy-regexp): Changed to nil.
-       (gnus-simplify-buffer-fuzzy): Ignore nil
-       gnus-simplify-subject-fuzzy-regexp. 
-
-       * gnus-srvr.el (gnus-server-prepare): Don't insert servers twice.
-
-Thu Dec 12 18:18:11 1996  David Moore  <dmoore@ucsd.edu>
-
-       * gnus-start.el (gnus-setup-news): Use gnus-make-hashtable.
-       (gnus-update-active-hashtb-from-killed): ditto.
-       (gnus-newsrc-to-gnus-format): ditto.
-       
-       * gnus-bcklg.el (gnus-backlog-setup): ditto.
-
-       * gnus-sum.el (gnus-create-xref-hashtb): ditto.
-
-       * gnus-move.el (gnus-move-group-to-server): ditto.
-
-       * gnus-util.el (gnus-create-hash-size): Power of 2 hashtables can
-       be _significantly_ faster than 2^x-1 tables on many risc
-       machines.  Any gains of 2^x-1 are comparably small on other
-       machines. 
-
-Fri Dec 13 05:05:03 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.75 is released.
-
-Fri Dec 13 04:49:21 1996  Andre Deparade  <deparade@i3.informatik.rwth-aachen.de>
-
-       * gnus-cite.el (gnus-cited-text-button-line-format-alist): Make %b
-       and %e usable.
-
-Fri Dec 13 01:06:09 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * article.el (article-decode-rfc1522): Would collate subsequent
-       encodings. 
-
-       * gnus-start.el (gnus-check-bogus-newsgroups): Use
-       `map-y-or-n-p'. 
-
-       * gnus-topic.el (gnus-topic-kill-group): Save topic contents.
-       (gnus-topic-yank-group): Insert topic contents.
-
-       * gnus-sum.el (gnus-simplify-subject-fuzzy-regexp): Changed
-       default to "".
-
-       * gnus-score.el (gnus-score-find-favourite-words): Put point at bob.
-
-       * gnus-sum.el (gnus-summary-limit-to-age): Dox fix & interactive
-       spec. 
-
-Fri Dec 13 01:01:46 1996  David Moore  <dmoore@ucsd.edu>
-
-       * gnus-sum.el (gnus-summary-limit-to-age): New function and
-       keystroke. 
-
-Tue Dec 10 23:42:00 1996  David Moore  <dmoore@ucsd.edu>
-
-       * gnus-nocem.el (gnus-nocem-groups): news.lists.filters is to
-       replace alt.nocem.misc
-
-Wed Dec 11 01:15:31 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnfolder.el (nnfolder-request-expire-articles): Better message.
-       (nnfolder-delete-mail): Actually delete.
-
-       * gnus-sum.el (gnus-summary-update-info): Don't run
-       `gnus-exit-group-hook'. 
-       (gnus-summary-expire-articles): Do it.
-       (gnus-summary-exit): Ditto.
-       (gnus-summary-save-newsrc): New command and keystroke.
-
-Wed Dec 11 00:38:12 1996  Stainless Steel Rat  <ratinox@peorth.gweep.net>
-
-       * gnus-sum.el (gnus-simplify-buffer-fuzzy): New version.
-
-Mon Dec  9 21:00:09 1996  David Moore  <dmoore@ucsd.edu>
-
-       * gnus-sum.el (gnus-summary-catchup): Out dated catchup code
-       removed.
-
-       * nnvirtual.el (nnvirtual-update-read-and-marked): Work around a
-       cache of active count in gnus-update-read-articles.
-
-Mon Dec  9 22:55:56 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * article.el (article-emphasize): Use it.
-
-       * gnus-util.el (gnus-put-text-property-excluding-newlines): New
-       function. 
-
-Mon Dec  9 08:38:08 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-sum.el: Split customize groups and added links to the manual.
-
-1996-12-08  Dave Love  <d.love@dl.ac.uk>
-
-       * gnus-vis.el (gnus-button-alist): Allow whitespace in `<URL:...'
-       markup (rfc1738), done last, after possible partial matches.
-       (gnus-button-url): Zap any whitespace from a <URL:...> match.
-
-Mon Dec  9 02:18:35 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-button-embedded-url): New function.
-       (gnus-button-alist): Use it.
-
-       * gnus-util.el (gnus-strip-whitespace): New function.
-
-Mon Dec  9 00:04:24 1996  Richard Stallman  <rms@gnu.ai.mit.edu>
-
-       * gnus-start.el (gnus-read-init-file): Don't read init file when
-       started with "emacs -q".
-
-Sun Dec  8 18:25:34 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.74 is released.
-
-Fri Dec  6 12:47:24 1996  Wes Hardaker  <Wesley.Hardaker@sphys.unil.ch>
-
-       * gnus-picon.el (gnus-picons-insert-face-if-exists): Don't reverse
-       domains.
-
-Fri Dec  6 11:33:44 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnfolder.el (nnfolder-request-article): Use it.
-       (nnfolder-retrieve-headers): Wouldn't find the right header.
-
-       * nnmail.el (nnmail-search-unix-mail-delim-backward): New function.
-
-Thu Dec  5 21:51:03 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el (gnus-server-add-address): Don't add "*-address" to all
-       servers. 
-
-Thu Dec  5 21:01:22 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.73 is released.
-
-Thu Dec  5 19:29:50 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-get-newsgroup-headers-xover): Message the line
-       number.
-
-       * nnml.el (nnml-request-scan): Change server.
-
-Sat Nov 30 00:42:39 1996  Steven L Baur  <steve@altair.xemacs.org>
-
-       * earcon.el: Added Customization.
-
-Thu Dec  5 11:24:15 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-prepare-threads): Don't output
-       articles outside the limit.
-
-       * gnus-group.el (gnus-group-level): New function.
-       (gnus-group-list-active): Faster implementation.
-       (gnus-group-list-all-matching): Accept a `C-u' prefix.
-
-       * message.el (message-news): Make sure newsey things are done.
-
-       * gnus-kill.el (gnus-execute-1): Eval forms properly.
-
-       * gnus-score.el (gnus-score-find-bnews): Treat "+" like ordinary
-       characters. 
-
-       * gnus-sum.el (gnus-summary-make-menu-bar): Update.
-
-       * nndoc.el (nndoc-forward-type-p): Don't give false positives. 
-
-       * message.el (message-user-mail-address): Bypass mail-extr.
-       (message-make-forward-subject): Only fetch the first Subject.
-
-       * gnus-art.el (gnus-button-alist): Reconize news:group urls.
-
-       * gnus-start.el (gnus-group-change-level): Didn't quote strings
-       entered into dribble.
-
-       * gnus-util.el (gnus-prin1-to-string): Use print-quoted-
-
-       * nnbabyl.el (nnbabyl-request-article): Wouldn't find first
-       article properly.
-       (nnbabyl-delete-mail): Ditto.
-
-Thu Dec  5 06:16:25 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * nnmail.el (nnmail-split-history): Use
-       `with-output-to-temp-buffer'. 
-
-Thu Dec  5 08:46:26 1996  Shuhei KOBAYASHI  <shuhei-k@jaist.ac.jp>
-
-       * gnus-sum.el (gnus-nov-parse-line): unwind-protect the
-       narrowing. 
-
-Tue Dec  3 14:06:17 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnheader.el (nnheader-find-file-noselect): Disable local
-       variables. 
-
-       * gnus-group.el (gnus-group-fetch-faq): Ditto.
-
-Mon Dec  2 17:12:26 1996  Ralph Schleicher  <rs@purple.UL.BaWue.DE>
-
-       * gnus-demon.el (gnus-demon-time-to-step): Make it work.
-
-Sun Dec  1 07:35:32 1996  Lars Magne Ingebrigtsen  <larsi@proletcult.slip.ifi.uio.no>
-
-       * nntp.el (nntp-retrieve-articles): New function.
-       (nntp-next-result-arrived-p): New function.
-
-Sat Nov 30 13:50:15 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnfolder.el (nnfolder-retrieve-headers): Parse unix mboxes better.
-       (nnfolder-request-article): Ditto.
-
-       * message.el (message-rename-buffer): Make sure the renamed buffer
-       is valid.
-
-Sat Nov 30 12:06:47 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-cache.el (gnus-cache-enter-article): Warn when trying to
-       cache negative articles.
-
-Sat Nov 30 08:53:48 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.72 is released.
-
-1996-11-30  Markus Linnala  <maage@cs.tut.fi>
-
-       * gnus-sum.el (gnus-summary-refer-parent-article): Work when there
-       are no references.
-
-1996-11-30  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-fetch-field): Fetch all headers.
-
-       * gnus-sum.el (gnus-cut-thread): Would cut off the wrong
-       children. 
-
-       * gnus-score.el (gnus-all-score-files): Take an optional group
-       param. 
-
-       * gnus-start.el (gnus-dribble-touch): New function.
-       (gnus-master-read-slave-newsrc): Use it.
-
-       * gnus-salt.el (gnus-generate-vertical-tree): Would bug out on
-       sparse articles.
-
-       * gnus-sum.el (gnus-summary-search-article): Would infloop.
-
-       * gnus-nocem.el: Ignore invalid entries.
-
-       * gnus-sum.el (gnus-data-remove): Wouldn't update properly when
-       treating the first article in the buffer.
-       (gnus-rebuild-thread): Would compute the wrong offset.
-       (gnus-summary-move-article): Don't mark as read.
-
-1996-11-28  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-thread-loop-p): New function.
-       (gnus-make-threads): Avoid inflooped references.
-
-       * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bind
-       print-length to nil.
-
-Wed Nov 27 02:41:31 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-process-babyl-mail-format): Goto-char placed
-       wrongly. 
-
-       * gnus-group.el (gnus-group-select-group-emphemerally): New
-       command and keystroke.
-
-       * gnus-sum.el (gnus-read-header): Fold continuation lines.
-
-Tue Nov 26 18:43:29 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-update-info): Don't change buffer.
-
-Tue Nov 26 17:56:19 1996  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-sum.el (gnus-summary-print-article): Prompt for file name. 
-
-Tue Nov 26 17:08:07 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * article.el (article-date-ut): Use original date.
-
-Tue Nov 26 08:36:38 1996  Wes Hardaker <Wesley.Hardaker@sphys.unil.ch>
-
-       * gnus-picon.el: Customize.
-
-       * smiley.el: Customize.  Change artist's email address in comments.
-
-Tue Nov 26 04:37:54 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.71 is released.
-
-Tue Nov 26 00:58:25 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-get-split-value): Expand file names in save
-       dir. 
-
-Mon Nov 25 22:50:19 1996  Jens Lautenbacher  <jens@lemming5.lem.uni-karlsruhe.de>
-
-       * gnus-group.el (gnus-group-make-menu-bar): Moved customize.
-
-Mon Nov 25 15:27:41 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus.el (custom-facep): Removed.
-
-       * gnus-topic.el (gnus-topic-line-format): Added customize
-       support. 
-
-       * gnus.el (gnus-article-display-hook): Moved
-       `gnus-article-treat-overstrike' last.
-
-Mon Nov 25 11:21:15 1996  Wes Hardaker <Wesley.Hardaker@sphys.unil.ch>
-
-       * gnus-picon.el: (gnus-picons-try-to-find-face): New param: rightp.
-       (gnus-picons-insert-face-if-exists): Use it and own new param.
-       More properly detect location of bar and dots.
-       (gnus-group-display-picons): Use above.
-       (gnus-article-display-picons): ditto.
-
-Mon Nov 25 04:17:03 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnfolder.el (nnfolder-read-folder): Make buffer read/write.
-
-       * gnus-sum.el (gnus-summary-print-article): Delete invisible text
-       first. 
-
-       * article.el (article-delete-invisible-text): New function.
-
-       * nntp.el (nntp-possibly-change-group): Would abort async
-       fetches. 
-
-       * gnus-sum.el (gnus-summary-print-article): New command and
-       keystroke. 
-       (gnus-summary-move-article): Select the article first.
-
-       * message.el (message-user-agent): Define the message mail user
-       agent. 
-
-Sun Nov 24 02:28:56 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nntp.el (nntp-possibly-change-group): Would get confused.
-
-       * gnus-art.el (gnus-button-url-regexp): Allow all word-constituent
-       characters to be part of urls.
-
-       * nntp.el (nntp-possibly-change-group): Wait until the status line
-       arrives and delete it.
-
-Sun Nov 24 01:36:45 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.70 is released.
-
-Sat Nov 23 23:22:27 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * message.el (message-mode-menu): Added `message-caesar-region'. 
-       (message-mode-field-menu): Added `message-insert-to' and
-       `message-insert-newsgroups'. 
-
-Sat Nov 23 19:53:30 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnkiboze.el: Would destroy all component group infos.
-
-       * gnus-xmas.el (gnus-summary-mail-toolbar): Reversed cathup.
-
-       * gnus-sum.el (gnus-summary-article-unread-p): New function.
-       (gnus-remove-thread-1): Avoid `text-propery-any'.
-       (gnus-summary-insert-subject): Ditto.
-       (gnus-data-compute-positions): Removed.
-
-       * gnus-dup.el (gnus-dup-suppress-articles): Didn't do anything.
-
-       * gnus-group.el (gnus-group-restart): Just start up Gnus
-       properly. 
-
-Sat Nov 23 07:16:39 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.69 is released.
-
-Sat Nov 23 05:00:36 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-cache.el (gnus-cache-update-active): Wouldn't mark the
-       cache active file as changed.
-
-       * gnus-start.el (gnus-setup-news): Slaves shouldn't check for new
-       newsgroups. 
-
-       * gnus-sum.el (gnus-group-make-articles-read): Update group line
-       on undo.
-
-       * gnus-move.el (gnus-move-group-to-server): Check whether
-       to-active is nil.
-
-       * gnus-score.el (gnus-score-find-hierarchical): Do the right thing
-       for prefixed group names.
-
-       * nnml.el (nnml-generate-nov-databases-1): Don't infloop.
-
-Sat Nov 23 04:58:49 1996  Steven L. Baur  <steve@miranova.com>
-
-       * gnus-score.el (gnus-score-score-files-1): Don't infloop. 
-
-Sat Nov 23 04:40:55 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-article-make-menu-bar): Protect against
-       undefined menu vars.
-
-       * gnus-group.el (gnus-group-rename-group): Prompt fix.
-
-Fri Nov 22 12:17:14 1996  David Moore  <dmoore@ucsd.edu>
-
-       * nnml.el (nnml-generate-nov-databases-1): Don't infloop.
-
-       * gnus-score.el (gnus-score-score-files-1): Don't infloop, be
-       slightly faster.
-
-Fri Nov 22 22:18:52 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-move.el (gnus-move-group-to-server): Looking-at bug.
-       (gnus-move-group-to-server): Extend.
-
-       * message.el (message-check-news-header-syntax): Change shoot-me
-       line. 
-
-Thu Nov 21 18:31:56 1996  David Moore  <dmoore@ucsd.edu>
-
-       * gnus-util.el (gnus-atomic-progn, gnus-atomic-progn-assign,
-       gnus-atomic-setq): Routines to help protect against corruption to
-       internal Gnus datastructures from C-g or error signals.
-
-       * gnus-util.el (gnus-atomic-be-safe): Variable which can set to
-       nil to disable the C-g atomic protection.
-
-       * nnvirtual.el (nnvirtual-update-read-and-marked): Replaces
-       nnvirtual-update-reads and nnvirtual-update-marked.  Does updates
-       to component groups atomically.
-       (nnvirtual-request-update-info): Update the virtual group
-       atomically.
-
-Fri Nov 22 00:19:23 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Create menu bar even when not using menu-bar-mode.
-
-       * gnus-start.el (gnus-1): Don't paint picture gnu twice.
-
-       * gnus-sum.el (gnus-group-make-articles-read): Undo in the right
-       buffer.
-       (gnus-update-read-articles): Ditto.
-
-Fri Nov 22 00:04:59 1996  Raja R. Harinath  <harinath@cs.umn.edu>
-
-       * nnheader.el (nnheader-generate-fake-message-id): Interact better
-       with duplicate suppression.
-
-Thu Nov 21 23:31:30 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el (gnus-info-set-entry): Wouldn't extend far enough.
-
-       * gnus-salt.el (gnus-tree-minimize): Ignore errors.
-
-       * gnus-sum.el (gnus-summary-article-sparse-p): New macro.
-       (gnus-summary-article-ancient-p): Ditto.
-       (gnus-summary-search-article): Skip sparse articles.
-
-       * article.el (article-date-ut): Wouldn't pick out the date right. 
-
-Thu Nov 21 23:07:34 1996  Raja R. Harinath  <harinath@cs.umn.edu>
-
-       * gnus-dup.el (gnus-dup-enter-articles): Ignore sparse articles. 
-
-Thu Nov 21 21:57:52 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-dup.el (gnus-dup-suppress-articles): Only suppress read
-       articles. 
-
-       * article.el (article-delete-text-of-type): Would bug out.
-
-Thu Nov 21 11:02:36 1996  David Moore  <dmoore@ucsd.edu>
-
-       * nnoo.el (nnoo-change-server): Only preserve un-ooed variables if
-       they exist globally.
-
-Thu Nov 21 10:52:39 1996  Steven L Baur  <steve@miranova.com>
-
-       * article.el (article-date-ut): Extend date header recognition to
-       deal with systems that put a TAB after the colon.
-
-Thu Nov 21 19:50:26 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.68 is released.
-
-Thu Nov 21 05:33:24 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnoo.el (nnoo-change-server): Protect against void vars.
-
-Thu Nov 21 00:00:29 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.67 is released.
-
-Wed Nov 20 22:54:34 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-mode-field-menu): Separated.
-
-       * nnoo.el (nnoo-change-server): Preserve un-ooed variables as
-       well. 
-
-       * nnbabyl.el (nnbabyl-read-mbox): Understand movemailed babyl
-       files. 
-
-Wed Nov 20 19:25:40 1996  Kurt Swanson  <kurt@dna.lth.se>
-
-       * gnus-art.el (gnus-article-make-menu-bar): Fix menu bar.
-
-Wed Nov 20 05:27:45 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-article-sort-by-lines,
-       gnus-thread-sort-by-lines): New functions.
-       (gnus-summary-sort-by-lines): New command and keystroke.
-
-       * gnus.el (gnus-other-frame): Be a bit more clever.
-
-       * gnus-group.el (gnus-group-get-new-news): Check for new
-       newsgroups. 
-
-       * nnheader.el (nnheader-insert-file-contents-literally): Bind
-       `default-major-mode' to nil.
-
-       * gnus-sum.el (gnus-group-make-articles-read): Yet another undo
-       bug. 
-
-       * nnmail.el (nnmail-article-group): Wrong `junk' check.
-
-Wed Nov 20 05:13:05 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.66 is released.
-
-Wed Nov 20 01:57:31 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-article-group): Would lose mail when using
-       advanced splitting!
-
-       * gnus-sum.el (gnus-update-read-articles): Undo fix.
-
-Tue Nov 19 22:56:56 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnheader.el (nnheader-auto-mode-alist): New function.
-
-Tue Nov 19 21:57:29 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.65 is released.
-
-Tue Nov 19 17:41:17 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-do-fcc): Supply FROM-GNUS param to
-       rmail-output. 
-
-       * gnus-msg.el (gnus-setup-message): Use the buffer name instead of
-       the buffer.
-
-       * nnmail.el (nnmail-article-group): Respect `junk' advanced
-       splits. 
-
-       * gnus-group.el (gnus-group-restart): Clear system.
-
-       * nnfolder.el (nnfolder-read-folder): Handle zipped files.
-
-       * nnheader.el (nnheader-find-file-noselect): New definition.
-
-       * gnus-art.el (gnus-article-make-menu-bar): Use the menu bar.
-
-       * gnus-score.el (gnus-all-score-files): Would still get the score
-       files in wrong order.
-
-       * gnus-start.el (gnus-find-new-newsgroups): End message on wrong
-       level. 
-
-       * gnus-srvr.el (gnus-server-prepare): Don't list servers twice.
-
-       * gnus-xmas.el (gnus-xmas-read-event-char): Mystery hanging bug.
-
-       * gnus-score.el (gnus-all-score-files): Expand all files in the
-       kill files directory.
-
-       * gnus-sum.el (gnus-group-make-articles-read): Register with undo
-       properly. 
-       (gnus-update-read-articles): Ditto.
-
-       * gnus-msg.el (gnus-debug): Include gnus-async in variables.
-
-Tue Nov 19 00:07:14 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.64 is released.
-
-Mon Nov 18 21:42:40 1996  Loren Schall  <schall@saifr00.ateng.az.honeywell.com>
-
-       * gnus-sum.el (gnus-summary-insert-line): Pick apart the From
-       header in reversed order.
-
-Mon Nov 18 02:00:33 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-refer-references): Protect against nil
-       References.
-
-       * gnus-score.el (gnus-all-score-files): Remove duplicate score
-       files from the end first.
-
-       * gnus-start.el (gnus-after-getting-new-news-hook,
-       gnus-get-new-news-hook): Switched defaults.
-
-       * gnus-score.el (gnus-all-score-files): Returned score files in
-       reverse order. 
-
-       * gnus-util.el (gnus-make-directory): Protect against nil dirs.
-
-       * gnus-art.el (gnus-decode-encoded-word-method): Default to
-       'gnus-article-de-quoted-unreadable. 
-
-       * gnus.el (gnus-read-group): Prohibit : in group name.
-       (gnus-article-display-hook): Removed
-       `gnus-article-de-quoted-unreadable'. 
-
-       * article.el (gnus-emphasis-alist): Accept "-" as word marker.
-
-       * messagexmas.el (message-xmas-dont-activate-region): Changed
-       default to t.
-
-Sun Nov 17 01:09:21 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * message.el: Added customize support.
-
-Sun Nov 17 23:42:03 1996  Raja R. Harinath  <harinath@cs.umn.edu>
-
-       * gnus-gl.el (bbb-extract-token-number): Fix.
-
-Sun Nov 17 12:18:27 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-next-article): Use it.
-       (gnus-group-make-articles-read): Quote undo forms.
-       (gnus-update-read-articles): Ditto.
-
-       * gnus.el (gnus-key-press-event-p): New alias.
-
-Sat Nov 16 22:05:24 1996  Steven L Baur  <steve@miranova.com>
-
-       * gnus-sum.el (gnus-summary-next-article): XEmacs doesn't use
-       integers for keyboard events.
-
-Sun Nov 17 12:09:44 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-set-timestamp): Protect against nil
-       gnus-newsgroup-name. 
-
-Sun Nov 17 01:09:21 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * nnmail.el: Added customize support.
-
-Sat Nov 16 22:59:47 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el (gnus-summary-line-format): Dox fix.
-
-       * nnfolder.el (nnfolder-save-mail): Would insert extra newline at
-       the start.
-
-Sat Nov 16 19:43:22 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.63 is released.
-
-Sat Nov 16 11:32:43 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-next-article): Ignore non-keyboard
-       events before starting to walk.
-
-       * gnus-topic.el (gnus-topic-prepare-topic): Insert topics that
-       have 0 unread if there is anything under.
-
-       * gnus-sum.el (gnus-summary-move-article): Do `B B' properly.
-
-       * gnus-topic.el (gnus-topic-parameters): Return nil on
-       non-existant topics.
-
-       * nntp.el (nntp-possibly-change-group): Would nix out async buffer
-       when switching groups.
-
-       * gnus-sum.el (gnus-summary-expire-articles): Update info before
-       expiring. 
-
-       * article.el (article-strip-leading-blank-lines): Would strip too
-       much. 
-
-       * gnus-sum.el (gnus-summary-mode): Update specs after running
-       hook. 
-
-       * gnus-util.el (gnus-boundp): New function.
-
-       * gnus-start.el (gnus-get-new-news-hook): Default to updating
-       display-time, if present.
-
-Fri Nov 15 13:59:16 1996  Steven L Baur  <steve@miranova.com>
-
-       * gnus-xmas.el (gnus-xmas-define): Better fix for dealing with
-       scroll-in-place, which will be preloaded in XEmacs 19.15.
-
-       * gnus-art.el (gnus-article-prev-page): Guard scroll-(up|down)
-       against scroll-in-place package.
-       (gnus-article-next-page): Ditto.
-
-       * gnus-salt.el (gnus-pick-next-page): Ditto.
-
-Fri Nov 15 21:40:12 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnweb.el (gnus): Required.
-
-       * gnus-group.el (gnus-group-clear-data-on-native-groups): Offer to
-       move cache.
-
-       * gnus-cache.el (gnus-cache-move-cache): New command.
-
-       * nnvirtual.el (nnvirtual-create-mapping): Handle groups with no
-       articles. 
-
-       * gnus-group.el (gnus-group-insert-group-line-info): Compute the
-       right number for dead groups.
-
-       * nnvirtual.el: Complete-first-sentence-in-first-line-of-doc fix. 
-
-Thu Nov 14 10:20:44 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-win.el: Added customize support.
-
-       * gnus-uu.el: Added customize support.
-
-Thu Nov 14 17:50:12 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.62 is released.
-
-Thu Nov 14 12:25:23 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el (gnus-article-display-hook): Add
-       `gnus-article-de-quoted-unreadable' to default value.
-
-       * gnus-art.el (gnus-summary-article-menu): Dummy define.
-
-       * article.el (custom): Require first.
-
-       * dgnushack.el (require): New implementation.
-
-       * article.el (gnus-emphasis-alist): Recognize emphasis inside
-       quotes. 
-
-Thu Nov 14 10:20:44 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * nnmail.el (nnmail-split-abbrev-alist): Added `uucp' to `mail'. 
-
-Thu Nov 14 11:25:51 1996  Samuel Tardieu  <sam@inf.enst.fr>
-
-       * nnmail.el (nnmail-search-unix-mail-delim): Skip past ">From "
-       after "From ".
-
-Thu Nov 14 10:08:27 1996  Raja R. Harinath  <harinath@cs.umn.edu>
-
-       * gnus-gl.el (bbb-connect-to-bbbd): Only connect if we have the
-       token. 
-
-Thu Nov 14 08:46:31 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-insert-to): Deny with "never"
-       courtesy-copies-to header.
-
-       * dgnushack.el (require): Try both the uncompiled and the compiled
-       versions.
-
-       * nntp.el (nntp-send-authinfo): Hide password.
-
-Wed Nov 13 12:00:43 1996  David Moore  <dmoore@ucsd.edu>
-
-       * gnus-start.el (gnus-parse-active): Correct range parsing
-       restored.
-
-Tue Nov 12 14:09:15 1996  David Moore  <dmoore@ucsd.edu>
-
-       * gnus-nocem.el (gnus-nocem-enter-article): Don't store the same
-       message id in the cache twice.
-       (gnus-nocem-liberal-fetch): 
-
-       * gnus-nocem.el (gnus-nocem-liberal-fetch): New Variable.
-
-       * gnus-nocem.el (gnus-nocem-check-article,
-       gnus-nocem-scan-groups): Don't re-fetch a crossposted @@NCM
-       posting that we've alread verified and scanned.
-
-Wed Nov 13 23:38:00 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-start.el (gnus-parse-active): Gave wrong results.
-
-       * gnus-win.el (gnus-buffer-configuration): Doc fix.
-
-Wed Nov 13 13:52:20 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-topic.el: Added customize support.
-
-       * gnus-group.el (gnus-group-mode-hook): Added `gnus-topic-mode'
-       option.
-
-       * gnus-util.el (gnus-verbose): Made customizable.
-
-       * gnus.el (gnus-summary-line-format): Customize.
-
-       * gnus-sum.el (gnus-summary-respool-default-method): Customize.
-
-       * gnus.el (gnus-select-method-name): New widget.
-       (gnus-select-method): Use it.
-
-Wed Nov 13 14:19:48 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-info-clear-data): Quote lists.
-
-       * nntp.el (nntp-send-authinfo): Prompt right.
-
-Tue Nov 12 19:33:00 1996  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.61 is released.
-
-Tue Nov 12 17:55:17 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-move-inbox): Delete empty crash box.
-
-       * gnus-art.el (gnus-article-make-menu-bar): Define summary article
-       map.
-
-       * gnus-group.el (gnus-group-set-timestamp): Removed reference to
-       free variable `group'.
-
-Mon Nov 11 16:29:00 1996  David Moore  <dmoore@ucsd.edu>
-
-       * gnus-group.el (gnus-group-timestamp-delta): New function.
-
-       * gnus-demon.el (gnus-demon-add-scan-timestamps,
-       gnus-demon-scan-timestamps): New functions.
-
-Mon Nov 11 05:27:20 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * article.el (gnus-emphasis-alist): Added ":" as sentence-end. 
-
-Mon Nov 11 05:14:02 1996  David Moore  <dmoore@ucsd.edu>
-
-       * nnvirtual.el: New version.
-
-Mon Nov 11 05:09:14 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * article.el (gnus-emphasis-underline-bold): Renamed.
-
-Mon Nov 11 05:05:09 1996  Alexandre Oliva  <oliva@dcc.unicamp.br>
-
-       * nntp.el (nntp-possibly-change-group): Bind
-       `nnheader-callback-function' to nil.
-
-Sun Nov 10 12:13:08 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-start.el (gnus-parse-active): Give correct answer.
-
-       * nntp.el (nntp-snarf-error-message): Massage the message.
-
-Sun Nov 10 11:49:33 1996  Joe Wells  <jbw@cs.bu.edu>
-
-       * dgnushack.el (require): Load .el files only.
-
-Sun Nov 10 10:06:12 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-move.el (gnus-move-group-to-server): Would pass wrong
-       params to `gnus-retrieve-headers'.
-
-       * nntp.el (nntp-wait-for): Accept a `discard' param.
-       (nntp-open-connection): Would mix it up when establishing asynch
-       connections. 
-
-       * nnml.el (nnml-find-id): Would report false positives.
-
-       * gnus-spec.el (gnus-update-format-specifications): Do all
-       computations in the right buffer.
-
-       * nnweb.el (nnweb-type-definition): Moved search engine.
-       (nnweb-fetch-form): Use "POST" instead of `POST'.
-
-       * gnus-undo.el (gnus-undo-register): Entered malformed undo
-       statements. 
-
-       * smiley.el (smiley-nosey-regexp-alist): Add a devilish face.
-
-Sun Nov 10 06:38:38 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.60 is released.
-
-Sun Nov 10 06:31:36 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.59 is released.
-
-Sun Nov 10 06:09:37 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nntp.el (nntp-decode-text): Erased everything.
-
-       * article.el (article-remove-trailing-blank-lines): Would
-       infloop. 
-
-Sun Nov 10 06:06:31 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.58 is released.
-
-Sun Nov 10 06:02:51 1996  Alexandre Oliva  <oliva@dcc.unicamp.br>
-
-       * nntp.el (nntp-possibly-change-group): Bind callback function to
-       nil. 
-
-Sun Nov 10 05:35:25 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-topic.el (gnus-topic-remove-topic): Remove from alist. 
-
-       * gnus-score.el (gnus-score-string): Didn't trace fuzzies and
-       words. 
-
-Sat Nov  9 18:14:42 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnweb.el (nnweb-set-hashtb): Typo.
-       (nnweb-read-overview): Typo.
-
-       * nnheader.el (nnheader-skeleton-replace): New macro.
-       (nnheader-replace-string): Use it.
-       (nnheader-replace-regexp): Use it.
-       (nnheader-strip-cr): Use it.
-
-       * nntp.el (nntp-retrieve-headers): Be faster.
-       (nntp-decode-text): Use faster algorithm.
-
-       * nnheader.el (nnheader-replace-string): New function.
-
-Sat Nov  9 17:22:16 1996  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * article.el (gnus-emphasis-alist): Doc fix.
-
-Sat Nov  9 16:27:27 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * nnmail.el (nnmail-split-it): Fix bug in abbrev handling.
-
-Sat Nov  9 05:59:02 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnweb.el (nnweb-set-hashtb): Typo.
-
-       * article.el (gnus-emphasis-alist): One ' too many.
-
-       * gnus-async.el (gnus-async-prefetch-article): Only message when
-       in the summary buffer.
-
-       * gnus-msg.el (gnus-post-news): Handle `newsgroup' param.
-       (gnus-debug): Be `defcustom' aware.
-
-Sat Nov  9 05:41:27 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.57 is released.
-
-Fri Nov  8 22:56:59 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus.el: Added customize support.
-
-Sat Nov  9 05:14:58 1996  David Moore  <dmoore@ucsd.edu>
-
-       * nnmail.el (nnmail-expand-newtext): New version.
-
-Sat Nov  9 04:28:42 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-xmas.el (gnus-xmas-force-redisplay): New variable.
-       (gnus-xmas-summary-recenter): Use it.
-
-       * gnus-art.el (gnus-button-url): Removed seconds param since old
-       versions of `browse-url.el' don't support it.
-       (gnus-article-make-menu-bar): Add article menu to article menu. 
-
-       * article.el (gnus-emphasis-alist): Use ")" as a sentence end
-       marker. 
-
-Fri Nov  8 05:33:08 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * article.el (gnus-emphasis-alist): Recognize "_this_here_".
-
-       * gnus-art.el (gnus-article-save): Save the right buffer after
-       stripping headers. 
-
-       * nntp.el (nntp-wait-for): Nix out "nntp reading...." message.
-
-       * article.el (article-narrow-to-signature): Typo.
-
-       * nntp.el (nntp-try-list-active): Would guess wrong on `some'. 
-
-       * gnus.el: condition-case -> ignore-errors.
-
-       * nntp.el (nntp-request-close): Protect against errors.
-
-Fri Nov  8 03:23:02 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.56 is released.
-
-Fri Nov  8 02:45:21 1996  David S. Goldberg  <dsg@linus.mitre.org>
-
-       * gnus-art.el (gnus-button-url): Respect
-       `browse-url-new-window-p'. 
-
-Fri Nov  8 02:34:31 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-process-unix-mail-format): Fold searches.
-
-Thu Nov  7 09:07:32 1996  Steven L Baur  <steve@miranova.com>
-
-       * nnmail.el (nnmail-search-unix-mail-delim): Take better care in
-       ignoring bogus From_ lines.
-
-Fri Nov  8 02:01:06 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-move-inbox): Cleaned up code.
-
-       * gnus-int.el (gnus-request-regenerate): New function.
-
-       * nnml.el (nnml-request-regenerate): New function.
-
-       * gnus-srvr.el (gnus-server-regenerate-server): New command and
-       keystroke. 
-
-Thu Nov  7 16:12:30 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-start.el: Added customize support.
-
-Fri Nov  8 01:47:16 1996  David S. Goldberg  <dsg@linus.mitre.org>
-
-       * gnus-win.el (gnus-delete-windows-in-gnusey-frames): Would bug
-       out on nil variables.
-
-Fri Nov  8 01:45:06 1996  Kurt Swanson  <kurt@dna.lth.se>
-
-       * gnus-sum.el (gnus-handle-ephemeral-exit): Go to the next
-       article. 
-
-Thu Nov  7 16:12:30 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * article.el (gnus-visible-headers): Convert string to list of
-       strings. 
-
-Fri Nov  8 01:40:38 1996  Kurt Swanson  <Kurt.Swanson@dna.lth.se>
-
-       * gnus-sum.el (gnus-summary-first-article): New function.
-
-       * gnus-salt.el (gnus-pick-start-reading): Use it.
-
-Thu Nov  7 09:42:17 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-catchup): Better message.
-
-       * gnus-util.el (gnus-date-get-time): Protect against "" Dates. 
-
-       * article.el (article-strip-leading-blank-lines): Would infloop.
-
-       * gnus-msg.el (gnus-debug): Protect against odd load-paths.
-
-Fri Nov  8 05:30:51 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-get-newsgroup-headers): `ref' should never be
-       nil. 
-
-       * gnus-msg.el (gnus-summary-followup-to-mail,
-       gnus-summary-followup-to-mail-with-original): New commands.
-
-       * nnmail.el (nnmail-split-it): Use `replace-match'.
-
-Fri Nov  8 05:30:46 1996  David Moore  <dmoore@ucsd.edu>
-
-       * nnmail.el (nnmail-split-it): New version.
-
-Fri Nov  8 03:44:10 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el (gnus-article-display-hook): Customized.
-
-       * article.el (gnus-emphasis-alist): Define more combinations.
-       (gnus-emphasis-underline-bold-italic): New face.
-
-Fri Nov  8 00:20:29 1996  Lars Magne Ingebrigtsen  <menja.larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.55 is released.
-
-Thu Nov  7 00:14:45 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-win.el (gnus-delete-windows-in-gnusey-frames): New function.
-       (gnus-configure-windows): Use it.
-
-       * nntp.el (nntp-possibly-change-group): Erased wrong buffer.
-
-       * gnus-score.el (gnus-score-find-bnews): Anchor mathces.
-
-       * gnus-group.el (gnus-group-insert-group-line): Would bug out on
-       on gnus-moderated-hashtb.
-
-Wed Nov  6 22:54:41 1996  Sudish Joseph  <sudish@mindspring.com>
-
-       * gnus-nocem.el (gnus-sum): Required.
-
-Wed Nov  6 09:13:34 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-date-to-time): Trap errors.
-
-       * nntp.el (nntp-open-connection): Erase contents of the right
-       buffer. 
-
-       * gnus-sum.el (gnus-summary-first-article-p): New function.
-
-       * gnus-topic.el (gnus-topic-remove-group): Didn't use
-       process/prefix. 
-
-       * gnus-group.el (gnus-group-iterate): New macro.
-
-       * gnus-sum.el (gnus-summary-prev-unread-article): Respect
-       `gnus-summary-goto-unread' `never'.
-
-Wed Nov  6 06:55:03 1996  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * article.el (gnus-emphasis-alist): New version.
-
-Wed Nov  6 06:26:34 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-article-syntax-table): New variable.
-       (gnus-article-mode): Use it.
-
-       * article.el (article-strip-leading-blank-lines): Didn't do much. 
-
-Wed Nov  6 05:51:56 1996  Kevin Buhr  <buhr@stat.wisc.edu>
-
-       * gnus-sum.el (gnus-summary-respool-article): Get the right
-       servers. 
-
-Wed Nov  6 04:00:48 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnheader.el (nnheader-header-value): Use old definition.
-
-       * message.el: Removed many autoloads.
-
-Wed Nov  6 03:44:44 1996  ISO-2022-JP  <morioka@jaist.ac.jp>
-
-       * gnus-ems.el (gnus-ems-redefine): New Mule definition.
-
-Wed Nov  6 03:02:25 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-xmas.el (gnus-xmas-summary-recenter): Force redisplay.
-
-       * gnus.el (gnus-check-backend-function): Protect against errors. 
-
-       * gnus-start.el (gnus-group-change-level): Enter info into dribble
-       file. 
-
-Wed Nov  6 01:58:46 1996  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * article.el (gnus-emphasis-alist): New default.
-
-Wed Nov  6 01:47:17 1996  Joe Wells  <jbw@cs.bu.edu>
-
-       * gnus-uu.el (gnus-uu-reginize-string): Buggy.
-       (gnus-uu-uustrip-article): Temp name mixup.
-
-Wed Nov  6 01:27:54 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-make-group): Use new function.
-
-       * gnus.el (gnus-read-group): New function.
-
-       * dgnushack.el: Less error messages under XEmacs.
-
-Tue Nov  5 23:59:40 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-search-unix-mail-delim): New implementation.
-
-Tue Nov  5 23:43:34 1996  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.54 is released.
-
-Tue Nov  5 22:34:01 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-goto-signature): Place point better.
-
-       * gnus-art.el (gnus-summary-save-body-in-file): Restored.
-
-       * nntp.el (nntp-send-authinfo): Better password prompting.
-
-       * nnmail.el (nnmail-read-passwd): Allow format strings.
-
-Tue Nov  5 22:10:20 1996  David Moore  <dmoore@ucsd.edu>
-
-       * gnus-sum.el (gnus-valid-move-group-p): New function.
-       (gnus-read-move-group-name): Faster implementation.
-
-Tue Nov  5 12:35:40 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-topic.el (gnus-topic-remove-topic): Would wipe out topic
-       parameters. 
-
-       * gnus-sum.el (gnus-summary-stop-page-breaking): Remove all
-       buttons. 
-
-       * nnweb.el (nnweb-set-hashtb): Typo.
-
-Tue Nov  5 10:43:24 1996  Randal Schwartz  <merlyn@stonehenge.com>
-
-       * gnus-uu.el (gnus-uu-be-dangerous): New variable.
-       (gnus-uu-save-files): Use it.
-
-Tue Nov  5 10:19:39 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-read-document): Doc fix.
-       (gnus-summary-catchup-and-exit): Don't exit when replying "n".
-
-       * gnus-art.el (gnus-summary-write-to-file): Doc fix.
-
-       * gnus-uu.el (gnus-uu-get-list-of-articles): Get numerical prefix
-       value. 
-
-Tue Nov  5 10:14:02 1996  David Moore  <dmoore@ucsd.edu>
-
-       * gnus-start.el (gnus-groups-to-gnus-format): Simplified and made
-       faster. 
-
-Tue Nov  5 04:56:33 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-search-unix-mail-delim): Protect against
-       regexp overflows.
-
-       * nnheader.el (nnheader-header-value): New definition.
-
-       * nntp.el (nntp-open-connection): Erase buffer.
-       (nntp-possibly-change-group): Ditto.
-
-       * nnvirtual.el (nnvirtual-create-mapping): Would ignore groups
-       with just one article.
-
-Tue Nov  5 03:41:30 1996  David Moore  <dmoore@ucsd.edu>
-
-       * gnus-nocem.el (gnus-nocem-enter-article): Would bug out on some
-       lines. 
-
-Tue Nov  5 03:36:03 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-score.el (gnus-score-find-favourite-words): Put point at
-       bob. 
-
-Tue Nov  5 03:33:04 1996  jeff sparkes  <jsparkes@nortel.ca>
-
-       * gnus-kill.el (gnus-batch-score): Run in slave mode.
-
-Mon Nov  4 03:16:18 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnheader.el (nnheader-directory-regular-files): New function. 
-
-       * nnmail.el (nnmail-get-spool-files): Allow nnmail-spool-file to
-       be a directory.
-
-       * gnus-sum.el (gnus-summary-next-group): Halt prefetch.
-
-       * gnus-async.el (gnus-async-halt-prefetch): New function.
-
-       * message.el (message-check-news-header-syntax): Anchor
-       multiple-searches. 
-
-       * gnus-topic.el (gnus-topic-mode): Reset sorting function.
-
-Tue Oct 29 20:42:07 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-topic.el (gnus-topic-remove-topic): Fold properly.
-
-Tue Oct 29 19:45:25 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-generate-new-buffer-clone-locals): Bugged
-       out under XEmacs.
-
-Tue Oct 29 19:21:47 1996  David Moore  <dmoore@ucsd.edu>
-
-       * gnus.el: Fixed autoloads.
-
-Tue Oct 29 17:21:42 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-art.el (gnus-url-mailto): `message-goto-subject' takes no
-       args. 
-
-Mon Oct 28 15:42:21 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el: Autoload gnus-score-followup-thread.
-       (gnus-inhibit-startup-message): Doc fix.
-
-Sat Oct 26 15:48:28 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-xmas.el (gnus-xmas-topic-menu-add): Add menu.
-
-       * gnus-topic.el (gnus-topic-kill-group): Enter into dribble.
-
-       * gnus-sum.el (gnus-summary-universal-argument): Bind
-       `gnus-newsgroup-process-marked' to nil before calling functions. 
-
-Sat Oct 26 15:31:18 1996  David Moore  <dmoore@ucsd.edu>
-
-       * nnmail.el (nnmail-activate): Faster version.
-
-Fri Oct 25 09:02:08 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nnsoup.el (nnsoup-pack-replies): Error empty dirs.
-
-       * gnus-msg.el (gnus-summary-mail-forward): Allow prefix to forward
-       full headers. 
-
-Thu Oct 24 07:20:30 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-nocem.el (gnus-nocem-enter-article): Would enter unbound
-       symbols into hashtb.
-
-Thu Oct 24 07:12:23 1996  Michael R. Cook  <mcook@cognex.com>
-
-       * nnmh.el (nnmh-active-number): Misplaced paren.
-
-Thu Oct 24 07:02:54 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-group.el (gnus-group-list-groups): Clear inboxes.
-
-       * gnus-async.el (gnus-make-async-article-function): Use the
-       success param.
-
-       * nntp.el (nntp-after-change-function-callback): Pass along the
-       right success param.
-
-Wed Oct 23 18:33:15 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-score.el (gnus-summary-increase-score): Spud.
-
-Wed Oct 23 07:55:42 1996  William Perry  <wmperry@aventail.com>
-
-       * gnus-art.el (gnus-url-mailto): New function.
-
-Wed Oct 23 06:57:10 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nnbabyl.el (nnbabyl-create-mbox): New function.
-       (nnbabyl-open-server): Create mbox.
-
-       * nnmbox.el (nnmbox-create-mbox): New function.
-
-Tue Oct 22 07:30:12 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nnml.el (nnml-request-list): Always return t.
-
-Tue Oct 22 03:16:27 1996  Felix Lee  <flee@teleport.com>
-
-       * gnus-score.el (gnus-score-adaptive): Use the right syntax
-       table. 
-
-Tue Oct 22 03:08:30 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * message.el (message-generate-headers): Rename Original-Sender as
-       well.
-       (message-send-news): Typo.
-       (message-send-news): Don't message.
-
-Tue Oct 22 03:06:49 1996  Felix Lee  <flee@teleport.com>
-
-       * gnus-score.el (gnus-score-adaptive): gnus-score-adaptive will do
-       line scoring or word scoring, but not both.
-
-Tue Oct 22 02:48:08 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * message.el (message-send-news): Use it.
-       (message-send-mail): Ditto.
-
-Tue Oct 22 02:40:14 1996  Joev Dubach  <dubach1@husc.harvard.edu>
-
-       * message.el (message-generate-new-buffer-clone-locals): New
-       function. 
-
-Tue Oct 22 01:19:47 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * message.el: Removed `lisp-indent-hook' throughout all files. 
-
-       * gnus.el (gnus-sethash): Fix edebug form spec.
-
-       * gnus-cache.el (gnus-cache-file-name): Translate file chars.
-
-Sun Oct 20 03:41:47 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nntp.el (nntp-read-server-type): Fold case.
-
-Sat Oct 19 08:03:17 1996  Michael Ernst  <mernst@cs.washington.edu>
-
-       * article.el (article-hide-headers): Do the right thing on
-       articles with no bodies.
-       (article-narrow-to-signature): Doc fix.
-
-Sat Oct 19 07:53:49 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nnsoup.el (nnsoup-pack-replies): Refuse to pack when there is
-       nothing to pack.
-       (nnsoup-read-areas): Don't bug out on empty packets.
-
-       * gnus-soup.el (gnus-soup-pack-packet): Refuse to pack empty
-       packets. 
-
-Sat Oct 19 07:43:33 1996  Kees de Bruin  <kees_de_bruin@tasking.nl>
-
-       * gnus-sum.el (gnus-auto-center-summary): Fix.
-
-Sat Oct 19 07:32:27 1996  Marc Horowitz  <marc@cygnus.com>
-
-       * gnus-topic.el (gnus-topic-remove-topic): Would clobber
-       duplicates. 
-
-Sat Oct 19 07:01:14 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * message.el (message-send-mail-hook): New hook.
-       (message-send-news-hook): Ditto.
-
-       * gnus-art.el (gnus-summary-write-to-file): New function.
-
-Sat Oct 19 06:56:34 1996  Kees de Bruin  <kees_de_bruin@tasking.nl>
-
-       * gnus-sum.el (gnus-summary-save-article-mail-overwrite): New
-       command and keystroke.
-
-Thu Oct 17 06:25:55 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-sum.el (gnus-article-sort-by-date): Use faster
-       implementation. 
-
-       * gnus-util.el (gnus-string-get-time): New macro.
-
-       * message.el (message-check-news-syntax): Check more thorougly the
-       From header.
-       (message-check): New macro.
-
-Thu Oct 17 06:03:56 1996  Carsten Leonhardt  <leo@arioch.tng.oche.de>
-
-       * gnus-ems.el (gnus-xemacs): Avoid clobbering functions.
-
-Thu Oct 17 05:34:15 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * message.el (message-cite-function): Initialize from
-       mail-citation-hook. 
-
-Thu Oct 17 02:45:47 1996  Lars Magne Ingebrigtsen  <larsi@hrym.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.52 is released.
-
-Wed Oct 16 21:01:41 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-sum.el (gnus-summary-catchup): Return t.
-
-Wed Oct 16 20:32:53 1996  Kees de Bruin  <kees_de_bruin@tasking.nl>
-
-       * gnus-group.el (gnus-group-mail-low-empty-face): Face fix.
-
-Wed Oct 16 20:00:15 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * message.el (message-mode): Doc fix.
-
-       * nnml.el (nnml-request-group): Re-read directory.
-
-Wed Oct 16 04:01:27 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.51 is released.
-
-Wed Oct 16 03:49:12 1996  Alexandre Oliva  <oliva@dcc.unicamp.br>
-
-       * gnus-start.el (gnus-setup-news): Make sure
-       `gnus-group-line-format' is bound.
-
-Wed Oct 16 02:57:37 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * nntp.el (nntp-after-change-function-callback): Would delete the
-       first line of all articles.
-
-Mon Oct 14 21:31:42 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-sum.el (gnus-summary-limit-to-marks): Accept prefix.
-
-Sun Oct 13 16:37:05 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-srvr.el (gnus-browse-foreign-server): Message better.
-
-Sat Oct 12 19:33:01 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * message.el (message-indent-citation): Would infloop on empty
-       articles. 
-
-Sat Oct 12 19:21:05 1996  Raja R. Harinath  <harinath@cs.umn.edu>
-
-       * gnus.el: Autoload more functions.
-
-Sat Oct 12 19:09:12 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-sum.el (gnus-summary-catchup): Don't move point.
-       (gnus-summary-limit-exclude-marks): New command.
-
-Fri Oct 11 15:26:02 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.50 is released.
-
-Thu Oct 10 23:36:32 1996  Jan Vroonhof  <vroonhof@math.ethz.ch>
-
-       * gnus-nocem.el (gnus-nocem): Typo.
-
-Thu Oct 10 23:16:57 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-group.el (gnus-group-clear-data-on-native-groups): Only
-       clear data on native groups.
-
-Thu Oct 10 14:11:18 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-cus.el (gnus-group-customize): Allow unknown entries.
-       (gnus-score-customize): Ditto.
-       (gnus-score-string-convert): Ditto.
-       (gnus-score-parameters): Added `touched'.
-
-Thu Oct 10 23:06:42 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-start.el (gnus-read-active-file): Don't bug out on null
-       methods. 
-
-Thu Oct 10 22:29:05 1996  Randell Jesup  <Randell.Jesup@scala.com>
-
-       * article.el (article-hide-boring-headers): Reversed `date'
-       check. 
-
-Thu Oct 10 15:24:08 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-xmas.el (gnus-xmas-define): Removed gnus-display-type.
-
-       * gnus-group.el (gnus-group-new-mail): Strip prefix.
-
-       * nnmail.el (nnmail-new-mail-p): Didn't work.
-
-       * gnus-score.el (gnus-score-adaptive): Use
-       gnus-adaptive-word-score-alist. 
-
-       * nnoo.el (nnoo-define-skeleton-1): Define
-       request-list-newsgroups. 
-
-       * nnweb.el (w3-forms): Removed.
-
-       * gnus-uu.el (gnus-uu-digest-mail-forward): Use directory form. 
-
-Tue Oct  8 14:30:53 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.49 is released.
-
-Tue Oct  8 00:15:04 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-nocem.el: Added customize support.
-
-Tue Oct  8 11:48:25 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-group.el (gnus-group-mail-3-empty-face): Use magenta4.
-
-       * gnus.el (gnus-short-group-name): Would bug out on complex group
-       names. 
-       (gnus-splash-face): New face.
-       (gnus-group-startup-message): Use it.
-
-       * nnvirtual.el (nnvirtual-request-group): Respect
-       `always-rescan'. 
-
-       * gnus-load.el: Removed.
-
-       * gnus.el (gnus-check-backend-function): Require before
-       checking... 
-
-       * gnus-sum.el (gnus-summary-respool-article): Use it.
-
-       * gnus-load.el (gnus-mail-method-history): New variable.
-
-       * gnus-sum.el (gnus-summary-normal-unread-face): Use default
-       face. 
-
-Mon Oct  7 15:00:58 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.48 is released.
-
-Mon Oct  7 02:24:02 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-sum.el: Added customize support.
-
-Sat Oct  5 01:29:20 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-async.el: Added customize support.
-       * gnus-cache.el: Ditto.
-       * gnus-cite.el: Ditto.
-       * gnus-demon.el: Ditto.
-       * gnus-dup.el: Ditto.
-       * gnus-eform.el: Ditto.
-       * gnus-group.el: Ditto.
-       * gnus-int.el: Ditto.
-       * gnus-kill.el: Ditto.
-       * gnus-load.el (gnus-make-face, gnus-face-light-name-list,
-       gnus-face-dark-name-list): Removed.
-
-Fri Oct  4 07:17:09 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-start.el (gnus-setup-news): Slaves should read the slave
-       files. 
-
-       * gnus-art.el (gnus-request-article-this-buffer): Removed
-       reference to doing-request.
-
-Thu Oct  3 05:06:53 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.47 is released.
-
-Thu Oct  3 02:04:37 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-int.el (gnus-request-head): Use the cache.
-
-Wed Oct  2 00:57:22 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * message.el (message-resend): Message.
-
-       * gnus-group.el (gnus-group-timestamp-string): New function.
-
-       * gnus-util.el (gnus-time-iso8601): New function.
-
-       * gnus-group.el (gnus-group-set-timestamp): New function.
-       (gnus-group-timestamp): New subst.
-
-       * gnus-start.el (gnus-subscribe-hierarchical-interactive): Accept
-       RET as default. 
-
-Tue Oct  1 05:13:57 1996  Martin Buchholz  <mrb@eng.sun.com>
-
-       * gnus-sum.el (gnus-summary-insert-pseudos): Error takes a format
-       string. 
-
-Tue Oct  1 05:12:29 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.46 is released.
-
-Tue Oct  1 03:41:17 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-picon.el (gnus-picons-glyph-hashtb): Made into hashtb.
-
-Tue Oct  1 01:50:10 1996  Lars Magne Ingebrigtsen  <larsi@hrym.ifi.uio.no>
-
-       * gnus-group.el (gnus-group-new-mail): New function.
-       (gnus-new-mail-mark): New variable.
-
-       * nnmail.el (nnmail-new-mail-p): New function.
-
-       * gnus-xmas.el (gnus-xmas-splash): New function.
-
-Tue Oct  1 01:36:17 1996  Raja R. Harinath  <harinath@cs.umn.edu>
-
-        * gnus-score.el (gnus-all-score-files): Didn't handle alist.
-
-        * gnus-gl.el: Dropped `bbb-alist'.  Changed cl-hashtable to obarray,
-        using gnus-{get,set}hash to access it.  Dropped a few temp. bindings
-        Changed (aref (assoc "message-id" ...) ...) to (mail-header-id ...).
-
-Mon Sep 30 00:02:13 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el: General (and major) indentation, breaking,
-       if/when/unless/and/or, push revision.
-
-       * gnus-sum.el (gnus-read-header): Set buffer before changing
-       vars. 
-
-Sun Sep 29 23:20:26 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-util.el (gnus-write-buffer): New function.
-
-Sun Sep 29 23:05:33 1996  Kurt Swanson  <Kurt.Swanson@dna.lth.se>
-
-       * gnus-sum.el (gnus-handle-ephemeral-exit): New function.
-
-Sun Sep 29 22:41:01 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-cache.el (gnus-cache-possibly-enter-article): Allow making
-       articles persistent in uncacheable groups.
-
-Sun Sep 29 01:23:43 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.45 is released.
-
-Sun Sep 29 00:57:13 1996  Dave Disser  <disser@sdd.hp.com>
-
-       * gnus-sum.el (gnus-summary-display-article): Don't show tree
-       unless using threads.
-
-Sun Sep 29 00:19:35 1996  Lars Magne Ingebrigtsen  <larsi@hrym.ifi.uio.no>
-
-       * gnus-score.el (gnus-all-score-files): Remove duplicates.
-
-Sat Sep 28 23:47:43 1996  Lars Magne Ingebrigtsen  <larsi@hrym.ifi.uio.no>
-
-       * gnus-score.el (gnus-summary-increase-score): Wouldn't do regexp
-       bodies. 
-
-       * gnus-topic.el (gnus-topic-group-indentation): Give the right
-       indentation always.
-
-Sat Sep 28 23:23:58 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-group.el (gnus-group-quick-select-group): Require
-       gnus-score. 
-
-       * gnus-score.el (gnus-score-thread): New function.
-
-Sat Sep 28 00:41:54 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-cus.el: New file.
-
-Sat Sep 28 21:32:52 1996  Kevin Buhr  <buhr@stat.wisc.edu>
-
-       * nnbabyl.el (nnbabyl-request-article): Would delete wrong
-       articles. 
-
-Fri Sep 27 21:54:30 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.44 is released.
-
-Fri Sep 27 21:24:46 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-sum.el (gnus-nov-parse-line): Would double articles.
-
-Fri Sep 27 20:52:31 1996  Shlomo Mahlab  <shlomo@en3501.oren.co.il>
-
-       * gnus-cache.el (gnus-jog-cache): Call with function name.
-
-       * gnus-group.el (gnus-group-universal-argument): Shadowed `func'. 
-
-Fri Sep 27 19:48:52 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-cite.el (gnus-article-fill-cited-article): Nix out data
-       after filling.
-
-       * gnus-group.el (gnus-group-unsubscribe-current-group): Accept
-       second param.
-       (gnus-group-unsubscribe): New function.
-       (gnus-group-subscribe): New function.
-
-Fri Sep 27 17:36:31 1996  Kurt Swanson  <kurt@dna.lth.se>
-
-       * gnus-sum.el (gnus-get-newsgroup-headers-xover): Never add nil
-       headers. 
-
-Fri Sep 27 17:33:30 1996  Stephen Peters  <speters@cygnus.com>
-
-       * gnus-art.el (gnus-header-face-alist): Typo.
-
-Fri Sep 27 04:10:21 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-msg.el (gnus-summary-mail-crosspost-complaint): Add a tag
-       to the subject.
-       (gnus-mail-yank-original): Elided.
-       (gnus-inews-yank-articles): Would yank articles in reverse order.
-
-Thu Sep 26 22:39:45 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.43 is released.
-
-Thu Sep 26 22:13:00 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnweb.el (nnweb-altavista-wash-article): Didn't remove all
-       markup. 
-
-       * gnus-nocem.el (gnus-nocem-check-article): Fix security hole. 
-
-Thu Sep 26 20:23:11 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-group.el (gnus-group-make-group): Accept an ARGS param.
-
-       * nnheader.el (nnheader-concat): Accept many file names.
-
-Thu Sep 26 19:53:09 1996  Kurt Swanson  <kurt@dna.lth.se>
-
-       * gnus-art.el (gnus-header-content-face): Buggy color names.
-
-Thu Sep 26 14:57:38 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nnmail.el (nnmail-save-active): Rewrite.
-       (nnmail-generate-active): New function.
-
-       * gnus-util.el (gnus-delete-assq): New macro.
-       (gnus-delete-assoc): Ditto.
-
-Wed Sep 25 23:44:40 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-sum.el (gnus-get-newsgroup-headers-xover): Just use one
-       single condition-case.
-
-Wed Sep 25 21:15:59 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.42 is released.
-
-Wed Sep 25 19:40:34 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-header-newsgroups-face): Yucky on light
-       backgrounds. 
-
-Wed Sep 25 19:25:27 1996  Michael R. Cook  <mcook@cognex.com>
-
-       * message.el (message-ignored-news-headers): Strip Resent-Fcc.
-
-Wed Sep 25 19:12:59 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-group.el (gnus-group-jump-to-group): Use
-       `gnus-group-goto-group'. 
-
-       * gnus-xmas.el (gnus-xmas-mode-line-buffer-identification): Don't
-       chop off half line when no colon.
-
-Mon Sep 23 22:12:10 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-nocem.el (gnus-nocem-verifyer): Change to `mc-verify'.
-
-Mon Sep 23 21:43:47 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.41 is released.
-
-Mon Sep 23 21:10:37 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * article.el (article-hide-headers): Don't ignore
-       gnus-visible-headers. 
-
-Mon Sep 23 19:10:20 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-goto-subject): Made into command.
-
-Mon Sep 23 18:26:47 1996  Tonny Madsen  <Tonny.Madsen@netman.dk>
-
-       * nnmail.el (nnmail-default-file-modes): Use integer.
-
-Tue Sep 24 18:39:41 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-sum.el (gnus-summary-respool-query): Better message.
-
-Sun Sep 22 15:12:54 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-art.el: Customized.
-
-       * gnus.el (gnus-inhibit-startup-message): Changed type to
-       boolean. 
-       (gnus-play-startup-jingle): Ditto.
-
-Sun Sep 22 12:58:57 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.40 is released.
-
-Sun Sep 22 11:48:02 1996  Lars Magne Ingebrigtsen  <larsi@hler.ifi.uio.no>
-
-       * custom.el (defcustom): Eval and compile.
-       * widget.el (define-widget-keywords): Ditto.
-
-Sat Sep 21 09:29:54 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * article.el (article-strip-multiple-blank-lines): Would strip all
-       blank lines.
-
-Fri Sep 20 06:52:07 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.39 is released.
-
-Thu Sep 19 18:57:59 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * message.el (message-ignored-cited-headers): Doc fix.
-
-Thu Sep 19 03:05:01 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.38 is released.
-
-Thu Sep 19 03:05:01 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.37 is released.
-
-Wed Sep 18 10:36:08 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-async.el (gnus-async-prefetch-article-p): New variable.
-       (gnus-async-prefetch-article): Use it.
-       (gnus-async-unread-p): New function.
-
-Tue Sep 17 14:41:56 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-cite.el (gnus-custom-import-cite-face-list): Removed.
-
-Wed Sep 18 04:28:16 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nnmail.el (nnmail-split-history): mapcar instead of mapconcat.
-
-Tue Sep 17 14:41:56 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus.el: Customized.
-
-       * dgnushack.el (custom-file): Removed.
-
-Wed Sep 18 03:04:17 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nnmail.el (nnmail-check-duplication): Do splitting after
-       duplicate suppression.
-
-       * gnus-salt.el (gnus-pick-mode): Don't go to unread article.
-
-       * gnus-dup.el (gnus-dup-enter-articles): Don't enter Message-IDs
-       ento lists multiple times.
-
-Tue Sep 17 03:44:08 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-uu.el (gnus-uu-grab-articles): Don't prefetch.  Ask before
-       deleting. 
-
-       * gnus.el: Red Gnus v0.37 is released.
-
-Tue Sep 17 03:15:26 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * custom.el: 0.9 included.
-
-       * gnus-art.el (browse-url): Required.
-
-       * gnus.el: Red Gnus v0.36 is released.
-
-Tue Sep 17 02:37:26 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-edit.el: Removed.
-
-       * custom.el: Removed.
-
-       * gnus-cus.el: Removed.
-
-Mon Sep 16 05:59:45 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.35 is released.
-
-Sun Sep 15 00:47:08 1996  Lars Magne Ingebrigtsen  <larsi@hrym.ifi.uio.no>
-
-       * nnmail.el (nnmail-default-file-modes): New default.
-
-Sat Sep 14 01:48:58 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-group.el (gnus-group-make-doc-group): Typo.
-       (gnus-useful-groups): New format.
-
-       * gnus-cache.el (gnus-jog-cache): Doc fix.
-
-Fri Sep 13 02:28:47 1996  Lars Magne Ingebrigtsen  <larsi@hrym.ifi.uio.no>
-
-       * gnus-group.el (gnus-group-get-new-news): Read slave files here. 
-
-Fri Sep 13 01:04:50 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * article.el (article-decode-rfc1522): New version.
-
-Fri Sep 13 00:00:25 1996  Lars Magne Ingebrigtsen  <larsi@hrym.ifi.uio.no>
-
-       * gnus-msg.el (gnus-crosspost-complaint): Added a newline.
-       (gnus-summary-mail-crosspost-complaint): Insert message at the
-       head of the message.
-
-Thu Sep 12 01:56:07 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.34 is released.
-
-Thu Sep 12 01:16:38 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.33 is released.
-
-Wed Sep 11 00:22:01 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-score.el (gnus-adaptive-word-syntax-table): Modified
-       standard syntax table.
-
-       * nntp.el (nntp-read-server-type): Worked in the wrong buffer.
-
-       * gnus-demon.el (gnus-demon-cancel): Put
-       nnheader-cancel-function-timers back in again.
-
-       * gnus.el: Red Gnus v0.32 is released.
-
-Tue Sep 10 19:10:09 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-kill.el (gnus-batch-score): Didn't work at all.
-
-       * gnus-msg.el (gnus-summary-mail-nastygram): Place point at
-       appropriate place.
-
-       * gnus-util.el (gnus-make-sort-function): Would nix out the
-       sorting list.
-
-       * gnus-demon.el (gnus-demon-cancel): Don't run
-       `cancel-function-timers'. 
-
-       * message.el (message-header-format-alist): Don't fill References
-       headers. 
-
-Mon Sep  9 21:51:46 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nntp.el (nntp-server-action-alist): Don't try LIST ACTIVE GROUP
-       on Netscape's brain-dead nntp server.
-
-       * message.el (message-dont-send): Take proper actions.
-
-Mon Sep  9 21:46:44 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.31 is released.
-
-Mon Sep  9 21:16:11 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-msg.el (gnus-copy-article-buffer): Decode headers after
-       copying. 
-
-       * gnus-picon.el (gnus-picons-refresh-before-display): New
-       variable.
-       (gnus-picons-insert-face-if-exists): Put bar back in.
-
-Mon Sep  9 20:31:56 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-uu.el (gnus-uu-digest-mail-forward): Use the newsgroup name.
-
-Mon Sep  9 20:04:35 1996  Kurt Swanson  <kurt@dna.lth.se>
-
-       * gnus-salt.el (gnus-pick-mouse-pick-region): New function.
-
-Mon Sep  9 18:37:07 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-enter-digest-group): Bugged.
-
-       * gnus-score.el (gnus-adaptive-word-syntax-table): Make ' a
-       word-constituant character.
-
-Sun Sep  8 14:46:01 1996  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
-
-       * gnus-group.el (gnus-group-make-useful-group): New command and
-       keystroke. 
-       (gnus-useful-groups): New variable.
-
-Sun Sep  8 14:46:01 1996  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.30 is released.
-
-Sun Sep  8 13:26:36 1996  Lars Magne Ingebrigtsen  <larsi@gymir.ifi.uio.no>
-
-       * nndoc.el (nndoc-article-begin-function): Defvarred.
-
-       * gnus-srvr.el (gnus-browse-unsubscribe-group): Would sometimes be
-       somewhat tricky.
-
-       * gnus.el (gnus-kill-ephemeral-group): New function.
-
-       * gnus-art.el (gnus-button-alist): Recognize group-news urls.
-
-       * nndoc.el (nndoc-dissect-buffer): Wouldn't dissect an mbox
-       properly. 
-       (nndoc-article-begin): New function.
-       (nndoc-mbox-body-end): Use it.
-       (nndoc-mbox-article-begin): Would bug out.
-
-Sun Sep  8 13:10:28 1996  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
-
-       * gnus.el (gnus-other-frame): Always pop up a frame.
-
-Sun Sep  8 12:57:03 1996  Lars Magne Ingebrigtsen  <larsi@gymir.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.29 is released.
-
-Sun Sep  8 12:24:11 1996  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
-
-       * nntp.el (nntp-accept-process-output): Don't message so
-       obsessively. 
-
-       * gnus.el: Fixed indentation and stuff.
-
-Sun Sep  8 12:23:56 1996  Sudish Joseph  <sudish@mindspring.com>
-
-       * nnweb.el (nnweb-fetch-form): Return t.
-
-Sat Sep  7 15:15:42 1996  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.28 is released.
-
-Sat Sep  7 14:33:17 1996  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
-
-       * nntp.el (nntp-after-change-function-callback): Renamed.
-
-       * nnweb.el (nnweb-reference-search): Nix out file name.
-
-Sat Sep  7 14:07:13 1996  Lars Magne Ingebrigtsen  <larsi@hler.ifi.uio.no>
-
-       * nnweb.el (nnweb-altavista-search): Nix out buffer file name.
-
-       * gnus-async.el (gnus-asynch-with-semaphore): New macro.
-       (gnus-make-async-article-function): Nix out prefetch list when the
-       summary buffer dies. 
-
-       * nnweb.el (nnweb-altavista-create-mapping): Would search forever
-       when not getting any matches.
-
-Sat Sep  7 12:43:24 1996  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
-
-       * gnus-msg.el (gnus-inews-yank-articles): Goto body before
-       yanking. 
-
-       * nnheader.el (nnheader-insert-file-contents-literally): New
-       definition. 
-       (nnheader-insert-head): Use new definition.
-
-Sat Sep  7 12:35:37 1996  Kurt Swanson  <kurt@dna.lth.se>
-
-       * gnus-salt.el (gnus-pick-elegant-flow): New variable.
-
-Sat Sep  7 12:03:00 1996  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
-
-       * nnheader.el (nnheader-insert-head): Don't use
-       `insert-file-contents-literally'.
-       (nnheader-head-chop-length): New variable.
-
-       * gnus-sum.el (gnus-summary-read-document): Prepend "nnvirtual:"
-       to group name.
-
-Sat Sep  7 11:12:26 1996  Lars Magne Ingebrigtsen  <larsi@gymir.ifi.uio.no>
-
-       * gnus-score.el (gnus-score-save): Don't check result from
-       gnus-make-directory.
-
-       * gnus-util.el (gnus-make-directory): Return t.
-
-Fri Sep  6 17:55:48 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-range.el (gnus-copy-sequence): Didn't work for all
-       sequences. 
-
-Fri Sep  6 14:38:54 1996  Wes Hardaker <Wesley.Hardaker@sphys.unil.ch>
-
-       * gnus-picons.el (gnus-picons-display-as-address): New variable.
-       (gnus-picons-map): New keymap for picons.
-       (gnus-picons-toggle-extent): New function.
-       (gnus-article-display-picons): use them.
-       (gnus-picons-insert-face-if-exists): ditto.
-       (gnus-picons-try-to-find-face): ditto.
-       (gnus-group-display-picons): let display catch up.
-       (gnus-article-display-picons): ditto.
-
-Fri Sep  6 08:11:02 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nnkiboze.el (nnkiboze-close-group): Rewrite.
-       (nnkiboze-request-list, nnkiboze-request-newgroups,
-       nnkiboze-request-list-newsgroups): Removed.
-       (nnkiboze-request-scan): New function.
-       (nnkiboze-directory): New default.
-
-       * gnus-sum.el (gnus-article-read-p): New function.
-
-       * nnkiboze.el (nnkiboze-retrieve-headers): Rewrite.
-       (nnkiboze-open-server): Removed.
-       (nnkiboze-server-opened): Ditto.
-
-       * nnheader.el (nnheader-find-nov-line): Renamed.
-       (nnheader-nov-delete-outside-range): New function.
-
-       * gnus-uu.el (gnus-uu-invert-processable): New command and
-       keystroke. 
-
-       * gnus-load.el (gnus-predefined-server-alist): New variable.
-
-       * gnus.el (gnus-server-to-method): Use it.
-       (gnus-read-method): Ditto.
-
-       * gnus-sum.el (t): "M V" commands weren't defined.
-
-       * gnus-cache.el (gnus-summary-insert-cached-articles): New command
-       and keystroke.
-
-       * gnus-score.el (gnus-sort-score-files): New function.
-       (gnus-score-file-rank): New function.
-       (gnus-score-find-bnews): Use it.
-
-       * gnus-topic.el (gnus-topic-mode-map): New sort submap.
-       (gnus-topic-sort-groups, gnus-topic-sort-groups-by-alphabet,
-       gnus-topic-sort-groups-by-unread, gnus-topic-sort-groups-by-level,
-       gnus-topic-sort-groups-by-score, gnus-topic-sort-groups-by-rank,
-       gnus-topic-sort-groups-by-method): New commands and keystrokes.
-
-       * gnus-group.el (gnus-group-sort-selected): New command.
-       (gnus-group-sort-selected-flat): New function.
-       (gnus-group-sort-selected-groups-by-alphabet,
-       gnus-group-sort-selected-groups-by-unread,
-       gnus-group-sort-selected-groups-by-level,
-       gnus-group-sort-selected-groups-by-score,
-       gnus-group-sort-selected-groups-by-rank,
-       gnus-group-sort-selected-groups-by-method): New commands and
-       keystrokes. 
-       (gnus-group-make-menu-bar): Updated.
-
-       * gnus-util.el (gnus-make-sort-function): Create a complete
-       function. 
-       (gnus-make-sort-function-1): Renamed.
-
-       * gnus-topic.el (gnus-group-sort-topic): New function.
-
-       * gnus-group.el (gnus-group-sort-flat): Made into own function.
-       (gnus-group-sort-alist-function): New variable.
-
-       * nnmail.el (nnmail-split-history): New variable.
-       (nnmail-split-history): New command.
-
-       * gnus-score.el (gnus-score-adaptive): Don't do any work on
-       pseudos. 
-
-       * gnus-msg.el (gnus-post-method): Allow easier posting from mail
-       groups. 
-
-Thu Sep  5 19:56:41 1996  Lars Magne Ingebrigtsen  <larsi@hler.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.27 is released.
-
-Thu Sep  5 19:50:19 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-xmas.el (gnus-xmas-modeline-glyph): Set string properly.
-
-Thu Sep  5 18:39:47 1996  Lars Magne Ingebrigtsen  <larsi@gymir.ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-edit-article-done): Make params
-       optional. 
-
-       * nntp.el (nntp-list-active-group): Don't change group first. 
-
-       * gnus-util.el (gnus-make-directory): New function.
-
-       * gnus-msg.el (gnus-post-method): Do the right thing in
-       `to-group' groups.
-
-Fri Sep  6 08:05:53 1996  ISO-2022-JP  <morioka@jaist.ac.jp>
-
-       * nnheader.el (nnheader-insert-head): Use
-       nnheader-insert-file-contents-literally. 
-
-Thu Sep  5 08:29:08 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-win.el (gnus-always-force-window-configuration): New
-       variable. 
-       (gnus-configure-windows): Use it.
-
-       * gnus-sum.el (gnus-summary-save-article): Give better prompts. 
-
-       * gnus-load.el (gnus-valid-select-methods): Update.
-
-       * gnus-score.el (gnus-score-find-favourite-words): Didn't find any
-       words.
-
-       * gnus-sum.el (gnus-scores-exclude-files): Defined.
-
-       * gnus-async.el (gnus-async-prefetch-next): Don't do so much on
-       un-asynch groups.
-
-Thu Sep  5 08:26:11 1996  jeff sparkes  <jsparkes@nortel.ca>
-
-       * gnus-win.el (gnus-buffer-configuration): Bad cut'n'paste.
-
-Thu Sep  5 07:41:08 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-group.el (gnus-group-list-groups): Update format specs.
-
-Thu Sep  5 07:11:18 1996  Jan Vroonhof  <vroonhof@math.ethz.ch>
-
-       * gnus-sum.el (gnus-summary-read-document): Generated wrong nndoc
-       group names. 
-
-Thu Sep  5 06:53:07 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nnvirtual.el (nnvirtual-close-group): Don't update ephemeral
-       groups. 
-
-       * gnus.el (gnus-group-auto-expirable-p): Allow nil expiry params. 
-
-Wed Sep  4 06:46:03 1996  Lars Magne Ingebrigtsen  <larsi@hrym.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.26 is released.
-
-Wed Sep  4 06:42:34 1996  Lars Magne Ingebrigtsen  <larsi@nipling.ifi.uio.no>
-
-       * nnmail.el (nnmail-move-inbox): Reverse logic.
-
-Wed Sep  4 06:35:05 1996  Lars Magne Ingebrigtsen  <larsi@hrym.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.25 is released.
-
-Wed Sep  4 05:19:58 1996  Lars Magne Ingebrigtsen  <larsi@hrym.ifi.uio.no>
-
-       * nnmail.el (nnmail-move-inbox): Refuse to move if
-       nnmail-crash-box can't be written.
-
-       * gnus-art.el (gnus-button-url-regexp): Include : and ; in
-       regexp. 
-
-       * gnus-score.el (gnus-adaptive-word-score-alist): New variable. 
-
-       * nnmail.el (nnmail-move-inbox): Set file modes on wrong file. 
-
-Tue Sep  3 06:44:36 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.24 is released.
-
-Tue Sep  3 05:30:02 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-async.el (gnus-async-prefetch-article): Reset async list
-       when the summary buffer is killed.
-
-       * gnus-xmas.el (gnus-xmas-modeline-glyph): Don't use glyph under
-       tty. 
-
-       * gnus-msg.el (gnus-copy-article-buffer): Deleted text in article
-       buffer. 
-
-Tue Sep  3 05:10:19 1996  Kurt Swanson  <kurt@dna.lth.se>
-
-       * gnus-sum.el (gnus-group-no-more-groups-hook): New variable.
-
-Tue Sep  3 04:44:31 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-exit): Would bug out when using a
-       single article buffer.
-
-Mon Sep  2 05:50:07 1996  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus-audio.el (gnus-audio-play): Give the sound-file argument as
-       ARG in addition to stdin.
-
-Mon Sep  2 05:28:26 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.23 is released.
-
-Mon Sep  2 05:16:46 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-audio.el: Renamed from "gnus-sound".
-
-Mon Sep  2 05:06:17 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-ems.el (gnus-xemacs): New variable.
-
-Mon Sep  2 03:18:18 1996  Lars Magne Ingebrigtsen  <larsi@hrym.ifi.uio.no>
-
-       * gnus-async.el (gnus-async-prefetch-next): Don't start fetching
-       the next article until we have been idle a while.
-
-       * gnus-group.el (gnus-group-make-help-group): Use the new find-etc
-       function.
-       
-       * nnheader.el (nnheader-find-etc-directory): Accept a FILE
-       parameter. 
-
-       * gnus-msg.el (gnus-debug): Use `locate-library' instead of doing
-       things the hard way.
-
-       * gnus-sum.el (gnus-set-global-variables): Copy 
-
-Mon Sep  2 03:01:27 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el (gnus-splash): Play jingle.
-
-       * gnus-sound.el (gnus-startup-jingle): New variable.
-       (gnus-play-jingle): New command.
-
-       * gnus.el (gnus-play-startup-jingle): New variable.
-
-Sun Sep  1 06:38:45 1996  Lars Magne Ingebrigtsen  <larsi@hrym.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.22 is released.
-
-Sun Sep  1 05:45:59 1996  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Removed unreferenced let bindings from all files. 
-
-Sun Sep  1 02:10:28 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus.el ((load)): Only do the initial splash on "gnus"
-       commands. 
-
-       * gnus-cus.el (gnus-face-dark-name-list): Don't use "dark blue".
-
-       * nntp.el (nntp-retrieve-headers): Would infloop sometimes.
-
-       * gnus-group.el (gnus-group-insert-group-line-info): Indent
-       properly. 
-
-       * gnus-sum.el (gnus-gather-threads-by-references): Avoid
-       infloops. 
-
-       * gnus-salt.el (gnus-mouse-pick): Changed name.
-
-       * nntp.el (nntp-retrieve-groups): Didn't do the right thing on
-       servers that don't support LIST ACTIVE.
-
-       * gnus-win.el (gnus-current-window-configuration): New variable.
-       (gnus-configure-windows): Use it.
-
-       * gnus-art.el (gnus-article-read-summary-keys): Let `C-d' work
-       properly. 
-
-       * gnus-sum.el (gnus-list-of-unread-articles): Active group.
-
-Sat Aug 31 05:05:14 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.21 is released.
-
-Sat Aug 31 02:54:39 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-topic.el (gnus-topic-goto-next-group): Go to the proper
-       group when listing.
-
-       * gnus-start.el (gnus-get-killed-groups): Mark .newsrc as needing
-       saving. 
-
-       * nnmail.el (nnmail-remove-tabs): New function.
-
-Fri Aug 30 06:26:37 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-start.el (gnus-set-default-directory): Set to directory
-       file name.
-
-       * nnmail.el (nnmail-remove-list-identifiers): New function.
-       (nnmail-list-identifiers): New variable.
-       (nnmail-prepare-incoming-message-hook): New variable.
-       (nnmail-move-inbox): Allow nnmail-movemail-program to be a
-       function. 
-
-       * article.el (article-mime-decode-quoted-printable-buffer): New
-       function.
-
-       * nnmail.el (nnmail-prepare-incoming-header-hook): New variable.
-       (nnmail-clean-whitespace-from-headers): New function.
-
-       * nntp.el (nntp-connection-alist): New variable.
-       (nntp-open-connection): Use it.
-       (nntp-request-close): New function.
-
-       * gnus-demon.el (timer): Required.
-
-       * message.el (message-reply): Bugged out on wide replies.
-
-Fri Aug 30 03:51:39 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.20 is released.
-
-Fri Aug 30 01:36:10 1996  Lars Magne Ingebrigtsen  <larsi@hrym.ifi.uio.no>
-
-       * gnus-msg.el (gnus-inews-insert-archive-gcc): Use
-       `gnus-group-find-parameter'.
-
-       * nndoc.el (nndoc-mbox-article-begin): New function.
-
-       * gnus-sum.el (gnus-summary-search-article): Would expose the
-       first hidden thread.
-
-       * gnus-msg.el (gnus-copy-article-buffer): Delete annotations
-       before following up.
-
-       * gnus-cite.el (gnus-article-hide-citation): Mark buttons as
-       annotations. 
-
-       * article.el (article-delete-text-of-type): New function.
-
-       * nndoc.el (nndoc-type-alist): Be slightly more permissive. 
-
-       * gnus-sum.el (gnus-summary-enter-digest-group): Would nix out
-       quit-conf. 
-       (gnus-summary-read-document): Ditto.
-
-       * nndoc.el (nndoc-dissect-buffer): Escape errors in overflows.
-
-       * message.el (message-send-news): Give a message after not
-       posting. 
-       (message-reply): Remove leading spaces from Cc.
-
-Fri Aug 30 01:32:27 1996  Jack Vinson  <jvinson@cheux.ecs.umass.edu>
-
-       * nnmail.el (nnmail-get-split-group): New version.
-
-Fri Aug 30 00:47:17 1996  Jens Lautenbacher  <jens@lemming0.lem.uni-karlsruhe.de>
-
-       * gnus.texi (Group Parameters): Updated documentation 
-
-       * gnus-msg.el (gnus-inews-insert-archive-gcc): Updated to use the
-                 topic's value of gcc-self if no group value present.
-
-Fri Aug 30 00:19:43 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-start.el (gnus-set-default-directory): Expand default
-       directory. 
-
-       * gnus-group.el (gnus-group-make-web-group): Changed keystroke.
-
-       * gnus-sum.el (gnus-summary-verbose-headers): Show article after
-       toggling. 
-
-Thu Aug 29 23:50:54 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-demon.el (gnus-demon-add-rescan): New function.
-       (gnus-demon-scan-news): New function.
-
-Thu Aug 29 05:34:40 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.19 is released.
-
-Thu Aug 29 02:04:35 1996  Lars Magne Ingebrigtsen  <larsi@hrym.ifi.uio.no>
-
-       * nndoc.el (nndoc-babyl-body-begin): Would skip empty messages. 
-
-       * nntp.el (nntp-retrieve-groups): Would infloop on some servers.
-
-       * gnus-sum.el (gnus-nov-parse-line): Don't let messages refer back
-       to themselves.
-
-       * gnus-util.el (gnus-parent-id): Don't bug out on nil references. 
-
-       * gnus-cite.el (gnus-article-hide-citation): Hide/unhide better.
-
-       * article.el (article-hide-text-of-type): New function.
-       (article-hidden-text-type-p): New function.
-
-       * gnus-cite.el (gnus-article-hide-citation): Marked the hidden
-       text with wrong type.
-       (gnus-article-hide-citation-maybe): Ditto.
-       (gnus-article-hide-citation): Toggle.
-
-       * gnus-dup.el (gnus-dup-enter-articles): Would bug out on
-       pseudo-articles. 
-
-       * nntp.el (nntp-server-opened-hook): Send mode reader as a
-       default. 
-       (nntp-retrieve-data): Format error.
-
-Thu Aug 29 01:52:19 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-display-article): Check whether
-       `gnus-current-article' is nil.
-
-Wed Aug 28 08:44:22 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-async.el (gnus-async-prefetch-article): Would clobber
-       fetches in progress.
-
-       * gnus-sum.el (gnus-summary-prepare): Made into command.
-
-       * gnus-srvr.el (gnus-server-scan-server): New command and
-       keystroke. 
-
-       * gnus-group.el (gnus-group-read-group): Accept a 0 prefix to not
-       generate buffer.
-
-Sun Jul 21 14:56:28 1996  Steven L Baur  <steve@miranova.com>
-
-       * earcon.el (earcon-regexp-alist): Plonk!
-
-Wed Aug 28 04:14:36 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.18 is released.
-
-Wed Aug 28 02:09:20 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnweb.el (nnweb-dejanews-create-mapping): Would just fetch the
-       first 100 hits.
-       (nnweb-close-group): Set file name to nil before killing.
-       (nnweb-altavista-create-mapping): Fetch the required number of
-       articles. 
-
-       * gnus-group.el (gnus-group-read-ephemeral-group): Don't call the
-       activation several times.
-
-       * gnus-sum.el (gnus-summary-enter-digest-group): Copy the parent's
-       params to the nndoc group.
-       (gnus-summary-read-document): Ditto.
-
-       * message.el (message-followup): Would produce buggy messages when
-       replying to messages without Message-IDs.
-
-Sat Aug 10 23:41:07 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus.el (gnus-decode-rfc1522): Start decoding from beginning of
-       headers instead of end.
-
-Wed Aug 28 01:35:26 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-demon.el (gnus-demon-cancel): Cancel function timers.
-
-       * nnheaderxm.el (nnheader-xmas-cancel-function-timers): New
-       function.
-
-       * nnheader.el (nnheader-cancel-function-timers): New alias.
-
-       * gnus-topic.el (gnus-topic-mode): Update groups.
-       (gnus-topic-remove-group): Update topic.
-
-       * gnus-group.el (gnus-group-update-group-function): New variable. 
-       (gnus-group-update-group): Use it.
-
-       * gnus-topic.el (gnus-topic-update-topics-containing-group): New
-       function. 
-
-Tue Aug 27 14:35:01 1996  Ken Raeburn  <raeburn@cygnus.com>
-
-       * nnmail.el (nnmail-move-inbox): Don't try setting modes on
-       "po:$USER".
-
-Tue Aug 27 21:45:14 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-sum.el (gnus-summary-number-of-articles-in-thread): Would
-       bug out on unthreadeds.
-
-Tue Aug 27 21:38:13 1996  Kurt Swanson  <kurt@dna.lth.se>
-
-       * gnus-salt.el (gnus-pick-mode-map): Typo.
-
-Tue Aug 27 21:35:58 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-load.el: Removed gnus-vis thingies.
-
-Tue Aug 27 00:54:05 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.17 is released.
-
-Tue Aug 27 00:46:48 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnweb.el (nnweb-dejanews-create-mapping): Dummy function.
-
-Tue Aug 27 00:43:33 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.16 is released.
-
-Tue Aug 27 00:36:58 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-topic.el (gnus-topic-set-parameters): Bugout.
-
-Mon Aug 26 22:41:04 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nntp.el (nntp-retrieve-groups): Didn't inhibit erasing.
-
-       * nnweb.el (nnweb-callback): Ignore if the callback buffer is
-       dead. 
-
-       * gnus-async.el (gnus-async-prefetch-article): Don't do anything
-       if Gnus is dead.
-
-Mon Aug 26 00:57:06 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nnweb.el (nnweb-dejanews-create-mapping): Fold search.
-       (nnweb-reference-create-mapping): Ditto.
-       (nnweb-altavista-create-mapping): Ditto.
-
-       * gnus-async.el (gnus-asynchronous): New variable.
-       (gnus-async-prefetch-article): Use it.
-       (gnus-async-prefetch-headers): Ditto.
-
-       * nnweb.el (nnweb-close-group): New function.
-
-       * gnus-topic.el (gnus-topic-clean-alist): Would remove foreign
-       groups from topics.
-
-Mon Aug 26 00:10:40 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.15 is released.
-
-Sun Aug 25 23:09:18 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-send-mail-with-qmail): Use
-       `message-qmail-program', which doesn't exist.
-
-       * nndoc.el (nndoc-type-alist): Slack digests are guessable.
-
-Sun Aug 25 21:27:17 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * gnus-salt.el (gnus-pick-mode): Nixed out the format.
-       (gnus-summary-pick-line-format): Buggy def.
-
-       * gnus-sum.el (gnus-summary-read-document): Provide a quit-conf.
-       (gnus-summary-read-document): Do better names.
-
-       * nnvirtual.el (nnvirtual-close-group): Don't do the unread
-       setting on ephemeral groups.
-
-       * nntp.el (nntp-retrieve-groups): Would infloop.
-
-Sun Aug 25 02:52:11 1996  Sudish Joseph  <sudish@MindSpring.COM>
-
-       * message.el (message-qmail-inject-program): New variable.
-       (message-qmail-inject-args): New variable.
-       (message-send-mail-with-qmail): New function, suitable for use
-       as message-send-mail-function.
-
-Sun Aug 25 20:41:45 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
-
-       * nnweb.el (nnweb-fetch-form): Clear buffer file name. 
-
-       * nntp.el (nntp-request-article): Would try to copy to the same
-       buffer. 
-
-       * gnus-group.el (gnus-group-read-ephemeral-group): Better error
-       message. 
-
-       * nnweb.el (nnweb-request-group): Better error report. 
-
-       * gnus-score.el (gnus-score-load-file): Gave `nil' as a day param.
-
-Sun Aug 25 03:32:51 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.14 is released.
-
-Sun Aug 25 00:16:44 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-util.el (gnus-prin1): New function.
-       (gnus-prin1-to-string): New function.
-
-       * gnus-sum.el (gnus-summary-refer-parent-article): Bugout.
-
-       * nndb.el (nndb-request-accept-article): Use new nntp functions.
-
-       * pop3.el: Make MD5 defined when compiling.
-
-       * article.el (article-strip-blank-lines): Called Gnus functions.
-
-       * nnweb.el (nnweb-init): Create a better buffer name.
-       (nnweb-altavista-search): Wasn't defined.
-       (nnweb-reference-search): Use advanced search.
-
-       * nnfolder.el (nnfolder-request-accept-article): Wrong params to
-       `save-mail'. 
-       * nnbabyl.el (nnbabyl-request-accept-article): Ditto.
-       * nnmbox.el (nnmbox-request-accept-article): Ditto.
-       * nnmh.el (nnmh-request-accept-article): Ditto.
-       * nnml.el (nnml-request-accept-article): Ditto.
-
-Sat Aug 24 23:53:32 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-get-new-mail): Tried calling nonexisting
-       functions. 
-
-Sat Aug 24 23:30:07 1996  Lars Magne Ingebrigtsen  <larsi@nipling.ifi.uio.no>
-
-       * gnus-group.el (gnus-group-enter-directory): Temporarily bound
-       `nneething-read-only'. 
-
-Fri Aug 23 23:22:16 1996  Katsumi Yamaoka  <yamaoka@ga.sony.co.jp>
-
-       * gnus-ems.el (gnus-ems-redefine): Set
-       `gnus-summary-display-table' to nil.
-
-Fri Aug 23 22:55:09 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-art.el (gnus-summary-save-in-file): Didn't check before
-       creating dir.
-       (gnus-summary-save-in-rmail): Ditto.
-       (gnus-summary-save-body-in-file): Ditto.
-
-       * message.el (message-check-news-syntax): Faulty Newsgroups
-       regexp. 
-
-Thu Aug 22 20:47:48 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nnmail.el (nnmail-split-hook): New variable.
-
-       * nnmh.el (nnmh-update-gnus-unreads): cl-nged.
-       (nnmh-active-number): Find the largest article number.
-
-Thu Aug 22 20:39:10 1996  Sam Falkner  <sam@steel.central.sun.com>
-
-       * nnmh.el (nnmh-update-gnus-unreads): Check all articles.
-
-Thu Aug 22 16:49:35 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-kill.el (gnus-execute): Ignored read articles.
-
-       * gnus-sum.el (gnus-summary-execute-command): Give a form, not a
-       function. 
-
-       * gnus-kill.el (gnus-execute-1): Evaled functions instead of
-       calling them.
-
-       * nnmail.el (nnmail-move-inbox): Allow continuation after error. 
-
-       * gnus-score.el (gnus-adaptive-word-syntax-table): New variable. 
-       (gnus-score-adaptive): Use it.
-
-       * nnbabyl.el (nnbabyl-request-scan): Change group.
-
-       * nnmbox.el (nnmbox-request-scan): Change group.
-
-       * gnus-score.el (gnus-ignored-adaptive-words): Renamed.
-       (gnus-ignored-adaptive-words): New variable.
-       (gnus-score-adaptive): Use it.
-       (gnus-score-adaptive): Bugged out on undefined symbols.
-       (gnus-summary-score-entry): Accept numerical DATE.
-       (gnus-score-adaptive): Pos in wrong buf.
-       (gnus-score-string): Didn't accept word matches.
-       (gnus-enter-score-words-into-hashtb): Wrong sequence.
-       (gnus-score-string): Word matches inflooped.
-
-Wed Aug 21 15:06:47 1996    <Wesley.Hardaker@sphys.unil.ch>
-
-       * smiley.el (smiley-buffer): Added some additional extent parameters.
-       (smiley-toggle-extent): rewrote to use above.
-
-Mon Aug 19 20:19:59 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-spec.el (gnus-tilde-cut-form): Cut off wrong part.
-
-Mon Aug 19 20:09:44 1996  Samuel Tardieu  <sam@inf.enst.fr>
-
-       * gnus-cache.el (gnus-cache-write-active): Would try to create
-       existing directory.
-
-Mon Aug 19 00:12:11 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * article.el (article-strip-multiple-blank-lines): New command and
-       keystroke.
-       (article-strip-blank-lines): New command and keystroke.
-
-       * nnmail.el (nnmail-move-inbox): Set file permissions on the
-       Incoming files.
-
-       * gnus-group.el (gnus-group-fetch-faq): Go through the FAQ dirs
-       until we manage to open one.
-
-       * nntp.el (nntp-send-authinfo-function): New variable.
-       (nntp-wait-for): Handle authinfo requests better.
-
-       * gnus-sum.el (gnus-summary-article-posted-p): New command and
-       keystroke. 
-
-       * gnus-topic.el (gnus-topic-display-empty-topics): New variable.
-
-       * gnus-msg.el (gnus-setup-message): Make `gnus-newsgroup-name'
-       local to the message buffers.
-
-       * gnus-int.el (gnus-remove-denial): New function.
-
-       * gnus-sum.el (gnus-summary-refer-parent-article): Allow negative
-       prefixes. 
-       (gnus-summary-refer-parent-article): Allow skipping past canceled
-       articles. 
-
-       * gnus-util.el (gnus-parent-id): Take an optional N ancestor
-       param. 
-
-       * gnus-async.el (gnus-async-prefetch-article): Don't clobber async
-       fetches already in progress.
-
-       * nnmail.el (nnmail-check-duplication): Allow /dev/null mail
-       filing. 
-
-       * gnus-sum.el (gnus-summary-catchup): Didn't do suppression.
-       (gnus-summary-limit-children): Never hide ticked articles.
-       (gnus-highlight-selected-summary): Selected face spans the entire
-       %(-%) area.
-
-Sun Aug 18 22:05:00 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-group.el (gnus-group-restart): Better prompt.
-
-       * gnus-async.el (gnus-async-prefetch-article): Don't try to fetch
-       old-fetched articles.
-
-Sun Aug 18 22:02:17 1996  Raja R. Harinath  <harinath@cs.umn.edu>
-
-       * gnus-gl.el (gnus-grouplens-mode): Make hooks local.
-
-Sun Aug 18 16:53:19 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-group.el (gnus-group-get-new-news): Don't move point.
-
-       * nnweb.el (nndejagnus): Renamed from nndejagnus.
-       (nnweb-remove-markup): New function.
-
-Sun Aug 18 14:53:55 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.13 is released.
-
-Tue Aug 20 17:30:00 1996    <Wesley.Hardaker@sphys.unil.ch>
-
-       * smiley.el (smiley-map): New keymap for smileys.
-       (smiley-toggle-extent): New function to toggle smiley invisibility.
-       (smiley-buffer): Use them.
-
-Sun Aug 18 12:46:12 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnoo.el (nnoo-define-skeleton-1): Defined too many functions.
-
-Sat Aug 17 18:43:22 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-group.el (gnus-group-make-dejanews-group): New command and
-       keystroke. 
-
-       * gnus-start.el (gnus-site-init-file): New variable.
-       (gnus-read-init-file): Use it.
-
-       * nndejanews.el: New file.
-
-       * nnheader.el (make-full-mail-header): New function.
-
-       * nngateway.el (nngateway-open-server): Used nntp vars.
-
-Sat Aug 17 15:35:28 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.12 is released.
-
-Sat Aug 17 12:58:28 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-win.el (gnus-window-configuration-element): New function. 
-       (gnus-windows-old-to-new): Use it.
-       (gnus-windows-old-to-new): Produced bogus results.
-
-       * message.el (message-cancel-message): New variable.
-
-       * gnus-srvr.el (gnus-server-mode-map): Buggy keymap.
-
-       * gnus-group.el (gnus-group-get-new-news-this-group): Illegal
-       gnus-error value.
-
-Fri Aug 16 21:22:12 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nnmail.el (nnmail-replace-status, nnmail-decode-status,
-       nnmail-encode-status): New variables.
-
-       * nnml.el (nnml-article-to-file): New function.
-
-Fri Aug 16 20:26:12 1996  Kurt Swanson  <kurt@dna.lth.se>
-
-       * nnfolder.el (nnfolder-generate-active-file): Test the right
-       files. 
-
-Fri Aug 16 19:30:57 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-salt.el (gnus-possibly-generate-tree): Would bug out on
-       unthreaded buffers.
-
-       * gnus-xmas.el (gnus-xmas-modeline-right-extent): Disabled.
-       (gnus-xmas-modeline-left-extent): Ditto.
-
-       * gnus-group.el (gnus-group-make-menu-bar): Bugged out on
-       undefined variable.
-
-       * gnus.el (gnus-read-method): Return the virtual server name if
-       possible. 
-
-Thu Aug 15 18:15:58 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nngateway.el: New file.
-
-       * nnoo.el (nnoo-define-skeleton): New macro.
-       (nnoo-define-skeleton-1): New function.
-
-       * gnus-start.el (gnus-strip-killed-list): New function.
-       (gnus-gnus-to-quick-newsrc-format): Use it.
-
-       * gnus-sum.el (gnus-summary-process-mark-set): New function.
-       (gnus-summary-yank-process-mark, gnus-summary-kill-process-mark,
-       gnus-summary-save-process-mark): New commands and keystrokes.
-
-       * nnml.el (nnml-generate-nov-file): Set modes.
-
-       * nnmail.el (nnmail-default-file-modes): New variable.
-       (nnmail-write-region): New function.
-
-       * gnus-score.el (gnus-score-score-files-1): Bind case-fold-search
-       to nil.
-
-Wed Aug 14 21:20:07 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-soup.el (gnus-soup-send-packet): Disable syntax checks.
-
-Wed Aug 14 20:28:09 1996  Fred Johansen  <Fred.Johansen@ifi.ntnu.no>
-
-       * gnus-logic.el (gnus-advanced-score-rule): `and' rules were
-       treated improperly.
-
-Wed Aug 14 15:29:39 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-salt.el (gnus-mouse-pick-article): New command. 
-
-       * gnus-art.el (gnus-button-url): Call with one argument.
-
-       * gnus-start.el (gnus-set-default-directory): New function.
-
-       * gnus-load.el (gnus-default-directory): New variable.
-
-Wed Aug 14 15:03:01 1996  Sudish Joseph  <sudish@mindspring.com>
-
-       * gnus-score.el (gnus-home-score-file): Changed syntax.
-
-Tue Aug 13 22:07:11 1996  Jan Vroonhof  <vroonhof@math.ethz.ch>
-
-       * nndoc.el (nndoc-dissect-buffer): Went into infinite loop if end
-       of file token wasn't properly detected.
-       (nndoc-type-alist): Better end-of-header regexp for
-       lanl.gov preprints
-       (nndoc-article-type): Updated doc string
-
-Mon Aug 12 21:01:25 1996  Sudish Joseph  <sudish@mindspring.com>
-
-       * nntp.el (nntp-request-newgroups): Switch to nntp-server-buffer
-       first.
-
-Tue Aug 13 09:44:46 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-group.el (gnus-group-sort-by-real-name): New function.
-
-       * gnus-sum.el (gnus-summary-save-article): Pass on number of
-       articles to be saved.
-
-       * gnus-art.el (gnus-article-edit-article): Remove all text props.
-       (gnus-read-save-file-name): Take an optional defaultish parameter.
-
-       * nntp.el (nntp-retrieve-groups): Saved.
-
-       * message.el (message-forward): Didn't work well with multi-line
-       separators. 
-
-       * gnus-msg.el (gnus-summary-mail-crosspost-complaint): Check
-       wheteher followup-to was restricted.
-
-       * nnsoup.el (nnsoup-store-reply): Would insert double courtesy
-       headers. 
-
-       * gnus-group.el (gnus-group-highlight-line): New `total' number. 
-
-Mon Aug 12 06:25:00 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.11 is released.
-
-Mon Aug 12 03:51:57 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-async.el (gnus-make-async-article-function): New function.
-       (gnus-async-prefetch-article): Use it.
-
-Sat Aug 10 07:16:29 1996  Greg Stark  <gsstark@mit.edu>
-
-       * gnus-start.el (gnus-activate-level): Doc fix.
-
-Sun Aug 11 03:33:02 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-msg.el (gnus-summary-mail-crosspost-complaint): New command.
-       (gnus-crosspost-message): New variable.
-
-       * gnus-vis.el: Removed file -- functions spread out over
-       gnus-group.el, gnus-sum.el and gnus-art.el.
-
-       * gnus-util.el (gnus-turn-off-edit-menu): Renamed function.
-
-       * gnus-salt.el (gnus-carpal-mode): Moved to this file.
-
-       * gnus-vis.el (gnus-score-set-default): Removed.
-       (gnus-visual-score-map): Removed.
-
-       * nntp.el (nntp-send-nosy-authinfo): Don't echo password.
-
-       * gnus-srvr.el (gnus-server-open-all-servers): New command and
-       keystroke. 
-       (gnus-server-close-all-servers): Ditto.
-
-       * gnus-async.el (gnus-async-get-semaphore): New function.
-       (gnus-async-release-semaphore): New function.
-       (gnus-async-prefetch-article): Use them.
-
-       * nntp.el (nntp-make-process-buffer): New function.
-       (nntp-retrieve-data): Use after-change instead of filter.
-       (nntp-after-change-function): New function.
-
-       * gnus.el (gnus-read-method): Intern method.
-
-       * gnus-cache.el (gnus-cache-save-buffers): Didn't check before
-       making dir.
-
-Sat Aug 10 14:55:33 1996  Sudish Joseph  <sudish@mindspring.com>
-
-       * gnus-win.el (gnus-buffer-configuration): Don't create picon
-       frame if gnus-picons-display-where is 'article.
-
-Sun Aug 11 02:47:30 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-vis.el (gnus-highlight-selected-summary): Would bug out on
-       some lines. 
-
-       * gnus-spec.el (gnus-tilde-cut-form): Typo.
-       (gnus-parse-simple-format): Forgot to check `max-right' and
-       `max-left'.
-       (gnus-compile): Don't issue warnings.
-
-Fri Aug  2 14:53:02 1996  Christoph Wedler  <wedler@fmi.uni-passau.de>
-       
-       * smiley.el (smiley-buffer): `smiley-regexp-alist' can be a symbol
-       now.
-
-Sun Aug 11 02:37:57 1996  Greg Stark  <gsstark@mit.edu>
-
-       * gnus-msg.el (gnus-post-method): Tested the wrong variable. 
-
-Sun Aug 11 02:28:30 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * message.el (message-check-news-syntax): Messaged wrong number.
-
-Sat Aug 10 11:26:56 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * message.el (message-y-or-n-p): Moved to before usage.
-
-Fri Aug  9 16:42:52 1996  Danny Siu  <dsiu@adobe.com>
-
-       * gnus-picon.el (gnus-article-display-picons): display picon even if
-       From line doesn't have full domain name.
-
-Sat Aug 10 10:11:21 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * message.el (message-reply): Didn't narrow properly to the head.
-       (message-indent-citation): Remove all blank lines at the start. 
-
-Sat Aug 10 07:00:34 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.9 is released.
-
-Sat Aug 10 06:03:07 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-soup.el (gnus-soup-write-prefixes): Protect against
-       existing dirs.
-
-       * gnus-topic.el (gnus-topic-parameters): Third parameter instead
-       of second.
-       (gnus-topic-set-parameters): Ditto.
-
-Sat Aug 10 05:22:43 1996  Lee Iverson  <leei@ai.sri.com>
-
-       * message.el (message-send-mail-with-mh): Didn't work.
-
-Sat Aug 10 03:57:42 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-dup.el (gnus-dup-unsuppress-article): Data instead of
-       ingo. 
-       (gnus-dup-unsuppress-article): Set the wrong variable.
-
-Sat Aug 10 00:52:26 1996  Jack Vinson  <jvinson@cheux.ecs.umass.edu>
-
-       * gnus.el (gnus-short-group-name): Bug in dotless names.
-
-Sat Aug 10 00:45:32 1996  Jens Lautenbacher  <jens@lemhrem.lem.uni-karlsruhe.de>
-
-       * gnus-msg.el (gnus-inews-insert-archive-gcc): Use the `gcc-self'
-       parameter. 
-
-Sat Aug 10 00:28:41 1996  François Pinard  <pinard@progiciels-bpi.ca>
-
-       * gnus-load.el (gnus-info-nodes): Add info node for
-       `mime/viewer-mode'. 
-
-Sat Aug 10 00:25:51 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * message.el (message-reply): Don't include first empty line. 
-
-Sat Aug 10 00:11:52 1996  François Pinard  <pinard@progiciels-bpi.ca>
-
-       * gnus-sum.el (gnus-summary-prev-unread-article): Doc fix.
-
-Sat Aug 10 00:08:42 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-util.el (gnus-date-iso8601): Protect against buggy Dates. 
-
-Fri Aug  9 06:39:22 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-topic.el (gnus-topic-mode): Hook into parameter thingies. 
-       (gnus-topic-parameters): Buggy definition.
-
-       * gnus-group.el (gnus-group-get-parameter-function): New
-       variable. 
-
-       * gnus.el (gnus-group-find-parameter): New function.
-
-       * gnus-sum.el (gnus-summary-read-document): New command and
-       keystroke. 
-
-       * gnus-group.el (gnus-group-clear-data-on-native-groups): New
-       command. 
-       (gnus-group-read-ephemeral-group): Accept an ACTIVATE-ONLY
-       parameter.
-
-       * gnus-score.el (gnus-decay-score): New function.
-       (gnus-decay-scores): New function.
-       (gnus-decay-score-function): New variable.
-       (gnus-score-date): Accept a `regexp' match.
-
-       * gnus-util.el (gnus-time-to-day): New function.
-
-       * gnus-score.el (gnus-decay-scores): New variable.
-       (gnus-score-decay-constant): New variable.
-       (gnus-score-decay-scale): New variable.
-
-       * gnus-sum.el (gnus-group-make-articles-read): Register undo. 
-
-       * gnus-group.el (gnus-update-read-articles): Register undo.
-
-       * gnus-undo.el (gnus-undo-register-1): Renamed.
-       (gnus-undo-register): New macro.
-
-       * gnus-group.el (gnus-group-yank-group): Be undoable.
-       (gnus-group-kill-group): Be undoable.
-       (gnus-undo): Required.
-       (gnus-group-clear-data): New keystroke.
-
-       * gnus-undo.el (gnus-undo-last-command): New variable.
-       (gnus-undo): Didn't work.
-       (gnus-undo-boundary): Keep track of whether the last command did a
-       boundary.
-       (gnus-undo): Set boundary.
-
-Thu Aug  8 19:43:02 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-spec.el (gnus-tilde-cut-form): New function.
-       (gnus-tilde-max-form): New definition.
-       (gnus-tilde-ignore-form): New function.
-       (gnus-parse-format): Rewrite to accept extended syntax.
-
-       * gnus-topic.el (gnus-topic-goto-missing-group): Try to be a bit
-       faster.
-
-       * gnus-group.el (gnus-group-goto-group): Accept optional FAR
-       parameter. 
-
-       * gnus-int.el (gnus-request-newgroups): Don't bug out on servers
-       that don't support this.
-
-       * gnus.el (gnus-server-extend-method): Would bug out on non-known
-       methods. 
-
-       * gnus-group.el (gnus-group-get-new-news): Put point in the group
-       buffer. 
-
-Wed Aug  7 15:40:44 1996  Jan Vroonhof  <vroonhof@math.ethz.ch>
-
-       * nntp.el (nntp-open-rlogin): Now can be used as
-       nntp-open-connection function
-       (nntp-open-telnet): Ditto
-       (nntp-open-rlogin): Needed to remove telnet junk from nntp buffer
-       to make new nntp-wait-for happy
-       all: required carriage return for end of line 
-
-Tue Aug  6 21:58:26 1996  Jan Vroonhof  <vroonhof@math.ethz.ch (Jan Vroonhof)>
-
-       * nndoc.el (nndoc-generate-lanl-gov-head): New function
-       (nndoc-transform-lanl-gov-announce): New function
-       (nndoc-lanl-gov-announce-type-p): New function
-       (nndoc-type-alist): Added support for preprint announcements
-       (nndoc-type-alist): Only use 'slack-digests' if forced to.
-
-Tue Aug  6 20:41:02 1996  Jan Vroonhof  <vroonhof@math.ethz.ch>
-
-       * nndoc.el (nndoc-type-alist): tried to call nndoc-guess-type-p
-
-Thu Aug  8 05:40:28 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-sum.el (gnus-summary-walk-group-buffer): Put cursor in echo
-       area.
-
-       * gnus-dup.el (gnus-dup-unsuppress-article): New function.
-
-       * gnus-sum.el (gnus-mark-article-as-unread): Unsuppress
-       duplicates. 
-
-       * gnus-msg.el (gnus-debug): Scan gnus-load.el.
-
-Thu Aug  8 01:48:57 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.8 is released.
-
-Thu Aug  8 01:36:34 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.7 is released.
-
-Thu Aug  8 01:29:56 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-deletable-headers): Have Lines be
-       deletable. 
-
-Wed Aug  7 23:41:26 1996  Richard Pieri  <ratinox@unilab.dfci.harvard.edu>
-
-       * gnus.el (gnus-short-group-name): New version.
-
-Wed Aug  7 19:55:25 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-start.el (gnus-declare-backend): New function.
-
-       * gnus-xmas.el (gnus-xmas-pointer-glyph): New variable.
-       (gnus-xmas-modeline-glyph): New variable.
-       (gnus-xmas-mode-line-buffer-identification): New definition. 
-
-       * nntp.el (nntp-request-article): Would sometimes return nil
-       falsely. 
-       (nntp-find-group-and-number): Saved function.
-       (nntp-request-article): Use it.
-       (nntp-request-head): Saved.
-
-       * gnus-dup.el (gnus-dup-suppress-articles): Message.
-
-       * gnus-group.el (gnus-group-mark-group): Used string instead of
-       char. 
-
-Wed Aug  7 02:52:55 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-util.el: Use `format-time-string'.
-
-       * gnus-sum.el (gnus-summary-edit-article-postpone): Defined
-       again. 
-
-       * article.el (article-make-date-line): Would say "unknown" on
-       "now" dates.
-
-Wed Aug  7 02:48:12 1996  Katsumi Yamaoka  <yamaoka@ga.sony.co.jp>
-
-       * message.el (message-rename-buffer): Set proper outsave name. 
-
-Wed Aug  7 00:28:44 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nnheader.el (nnheader-temp-write): Always use
-       `fundamental-mode'. 
-
-       * gnus-util.el (gnus-date-iso8601): Illegal format.
-
-       * gnus-group.el (gnus-group-make-doc-group): Full name in server
-       name. 
-
-       * gnus-undo.el (gnus-undo): Typo.
-
-       * gnus-group.el (gnus-group-mark-group): Don't touch props.
-
-       * gnus-score.el (gnus-score-headers): Don't root out 0 scores when
-       saving.
-
-       * gnus-art.el (gnus-narrow-to-page): Don't do a "next-page" if
-       `^L' is the last char.
-
-       * gnus.el (gnus): Autoload.
-
-Tue Aug  6 23:00:01 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-score.el (gnus-score-string): Wouldn't do word and fuzzy
-       matching properly.
-
-Mon Aug  5 22:23:03 1996  Raja R. Harinath  <harinath@cs.umn.edu>
-
-       * gnus-gl.el (gnus-grouplens-mode): Clear proper variables.
-
-Mon Aug  5 20:27:11 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-art.el (gnus-article-edit-exit): Would move point.
-       (gnus-article-edit): New command.
-
-       * nnml.el (nnml-request-rename-group): Copy over .overview file. 
-       (nnml-request-group): Better error message.
-
-Sat Aug  3 17:52:01 1996  Steven L Baur  <steve@miranova.com>
-
-       * gnus-setup.el (message): Can't require 'message until we know
-       where the Gnus .elcs are.
-       
-Mon Aug  5 20:07:11 1996  François Pinard  <pinard@progiciels-bpi.ca>
-
-       * gnus-util.el (gnus-date-iso8601): New function.
-
-Mon Aug  5 19:14:12 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-sum.el (gnus-summary-search-article-forward): Show thread
-       when finding matches.
-
-       * nnmail.el (nnmail-get-spool-files): Sort procmail files.
-
-Mon Aug  5 02:25:06 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.6 is released.
-
-Mon Aug  5 01:12:24 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nntp.el (nntp-request-type): Defined again.
-
-Mon Aug  5 01:01:15 1996  Ralph Schleicher  <rs@purple.ul.bawue.de>
-
-       * gnus-score.el (gnus-ignored-adaptive-words): New value.
-
-Mon Aug  5 00:12:54 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-util.el (gnus-group-real-name): Tweaked definition.
-
-       * gnus-eform.el (gnus-edit-form-done): Didn't call the right
-       function. 
-
-Sun Aug  4 23:30:52 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-score.el (gnus-score-load-files): Returned nil.
-
-Sun Aug  4 06:11:02 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-load.el (gnus-use-undo): New variable.
-
-       * gnus-undo.el: New file.
-
-       * gnus-score.el (gnus-default-adaptive-word-score-alist): New
-       variable. 
-       (gnus-score-adaptive): Adaptivity on words.
-       (gnus-ignored-adaptive-words): New variable.
-       (gnus-all-score-files): Made into own function.
-       (gnus-score-load-files): Ditto.
-       (gnus-score-find-favourite-words): New command and keystroke.
-
-       * gnus-load.el (gnus-use-adaptive-scoring): Doc fix.
-
-       * gnus-score.el (gnus-enter-score-words-into-hashtb): New
-       function. 
-       (gnus-score-build-cons): Removed.
-       (gnus-score-string): Score words.
-
-Sun Aug  4 01:33:31 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.5 is released.
-
-Sun Aug  4 00:17:51 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nntp.el (nntp-wait-for): Goto point-max before inserting.
-       (nntp-retrieve-headers): Didn't inhibit Erasure.
-
-       * gnus-eform.el (gnus-edit-form-mode-map): Buggy.
-
-       * nntp.el (nntp-send-command-nodelete): New function.
-
-Sat Aug  3 22:21:24 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * article.el (article-date-ut): Wouldn't do anything much.
-
-       * nntp.el (nntp-wait-for): Wouldn't allow posting.
-
-       * nnmail.el (nnmail-delete-incoming): Set to nil.
-
-Sat Aug  3 01:31:24 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-score.el (gnus-home-score-file): New variable.
-       (gnus-home-score-file): New function.
-       (gnus-hierarchial-home-score-file): New function.
-       (gnus-possibly-score-headers): Use `adapt-file' param.
-       (gnus-home-adapt-file): New variable.
-       (gnus-hierarchial-home-adapt-file): New function.
-
-       * gnus-load.el (gnus-original-article-buffer): Moved here.
-
-       * gnus-sum.el (gnus-article-mark): New macro.
-       (gnus-summary-prepare-unthreaded): Use it.
-       (gnus-summary-prepare-threads): Ditto.
-
-       * gnus-win.el (gnus-buffer-configuration): New `edit-article'
-       setting. 
-
-       * gnus-sum.el (gnus-summary-edit-article): Don't move point in the
-       article buffer.
-       (gnus-summary-edit-article-done): Don't move point after editing.
-       (gnus-summary-edit-article-postpone): Removed.
-       (gnus-summary-update-article-line): New function.
-
-       * gnus-art.el (gnus-article-edit-mode-map): Buggy map.
-
-Fri Aug  2 22:36:40 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.4 is released.
-
-Wed Jul 31 15:23:54 1996  Ken Olstad  <ken@mn.cheyenne.com>
-
-       * gnus-xmas.el (gnus-xmas-redefine): Disable XFace when running
-       under tty.
-
-Wed Jul 31 14:21:38 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-group-read-group): Use `gnus-range-length' instead
-       of `length'.
-
-Fri Aug  2 21:48:17 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-dup.el (gnus-dup-suppress-articles): Wouldn't mark articles
-       properly.
-
-Fri Aug  2 21:40:33 1996  Glenn Coombs  <glenn@prl.research.philips.com>
-
-       * gnus-vis.el (gnus-button-url): New definition.
-
-Fri Aug  2 19:08:55 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-update-read-articles): Moved here.
-
-       * gnus-sum.el (gnus-update-read-articles): Moved here.
-
-       * gnus-async.el (gnus-async-request-fetched-article): Would bug
-       out on Message-IDs.
-
-       * gnus-score.el (gnus-score-save): Would kill wrong buffer.
-
-       * nntp.el (nntp-process-filter): Insert at point-max.
-
-       * nnheader.el (nnheader-set-temp-buffer): Accept a noerase param.
-
-Fri Aug  2 00:14:16 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-topic.el (gnus-topic-edit-parameters): New command.
-       (gnus-group-topic-parameters): New function.
-       (gnus-topic-set-parameters): New function.
-       (gnus-topic-parameters): New function.
-
-       * gnus-group.el (gnus-group-edit-group-done): Newish definition.
-
-       * gnus-srvr.el (gnus-server-edit-server): Use new edit function.
-       (gnus-server-edit-server-done): Removed.
-
-       * gnus-group.el: Use new edit function.
-
-       * gnus-eform.el (gnus-eform): New file.
-
-       * gnus-group.el (gnus-group-goto-group): Tippy-toe around some
-       more to find the most likely instance of the group.
-       (gnus-edit-form): New function.
-       (gnus-edit-form-mode): New command.
-       (gnus-edit-form-make-menu-bar): New function.
-       (gnus-edit-form-mode-hook): New variable.
-       (gnus-edit-form-exit): New command and keystroke.
-       (gnus-edit-form-done): Ditto.
-
-       * gnus-topic.el: Moved functions around.
-       (gnus-current-topic): Renamed.
-       (gnus-current-topics): New function.
-       (gnus-group-parent-topic): New function.
-
-       * article.el (gnus-signature-separator): New default.
-       (gnus-signature-limit): Extended value.
-       (article-narrow-to-signature): Use it.
-
-       * gnus-cite.el (gnus-cite-parse): Use new signature functions.
-
-       * article.el (article-search-signature): New function.
-       (gnus-signature-separator): Allow wider syntax.
-
-       * gnus-async.el (gnus-use-header-prefetch): New variable.
-       (gnus-async-set-article-buffer): Removed.
-       (gnus-async-prefetch-headers): New function.
-       (gnus-async-retrieve-fetched-headers): New function.
-       (gnus-async-prefetch-headers-buffer): New variable.
-
-       * gnus-salt.el (gnus-summary-pick-line-format): New variable.
-       (gnus-pick-mode): Use it.
-       (gnus-pick-line-number): New function.
-       (gnus-pick-article): New command and keystroke.
-       (gnus-pick-mode-map): Changed " " to `gnus-pick-next-page'.
-       (gnus-pick-next-page): New command and keystroke.
-       (gnus-mark-unpicked-articles-as-read): New variable.
-       (gnus-pick-start-reading): Use it.
-
-       * gnus-sum.el (gnus-summary-line-format-alist): Add pick line
-       number. 
-
-Thu Aug  1 23:32:15 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nntp.el (nntp-request-list): Decode.
-       (nntp-request-list-newsgroups): Ditto.
-
-       * gnus-gl.el (gnus-grouplens-mode): Update summary line specs. 
-
-       * gnus-msg.el (gnus-debug): Would bug out.
-
-Thu Aug  1 23:24:48 1996  Glenn Coombs  <glenn@prl.research.philips.com>
-
-       * gnus-sum.el (gnus-summary-update-mark): Work on hidden threads.
-
-Thu Aug  1 00:00:16 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-score.el (gnus-score-save): Wouldn't save scores.
-
-       * gnus-load.el (gnus-summary-line-format): Moved here.
-
-       * gnus.el (gnus-alive-p): More thorough definition.
-       (gnus-info-set-entry): New macro.
-
-       * gnus-move.el: New file.
-       (gnus-move-group-to-server): New function.
-       (gnus-change-server): New command.
-       (gnus-group-move-group-to-server): New command.
-
-       * gnus-start.el (gnus-parse-active): New function.
-
-       * gnus.el (gnus-read-method): Mew function.
-       * gnus-group.el: Use it.
-
-       * gnus-load.el (gnus-suppress-duplicates): New variable.
-
-       * gnus-dup.el: New file.
-
-       * gnus-sum.el (gnus-data-read-p): New macro.
-       (gnus-duplicate-mark): New variable.
-
-Wed Jul 31 23:09:35 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.3 is released.
-
-Wed Jul 31 21:38:08 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nntp.el (nntp-retrieve-headers-with-xover): Didn't work.
-
-       * gnus-load.el (gnus-suppress-keymap): New function.
-
-Wed Jul 31 01:20:58 1996  Sudish Joseph  <sudish@mindspring.com>
-
-       * gnus-picon.el (gnus-group-display-picons): Delete just the live
-        extents. 
-
-Wed Jul 31 21:15:01 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el ((load)): Only eval splash when loading.
-
-       * gnus-group.el (gnus-group-quit): Always kill group buffer.
-
-       * nntp.el (nntp-open-connection): Escape errors.
-
-Wed Jul 31 16:09:22 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nnml.el (nnml-request-rename-group): Would move subgroups as
-       well. 
-       * nnmh.el: Ditto.
-
-       * gnus-group.el (gnus-group-rename-group): Use current group name
-       as default.
-       (gnus-group-rename-group): Added doc string.
-
-       * gnus-sum.el (gnus-general-simplify-subject): Renamed.
-
-Wed Jul 31 16:05:06 1996  Paul Franklin  <paul@transmeta.com>
-
-       * gnus-sum.el (gnus-pdf-simplify-subject): New version.
-
-Wed Jul 31 15:59:04 1996  Raja R. Harinath  <harinath@cs.umn.edu>
-
-       * nntp.el (nntp-retrieve-headers-with-xover): `last' returns cdr. 
-
-Wed Jul 31 15:18:33 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nntp.el (nntp-retrieve-headers-with-xover): Put the result in
-       the right buffer.
-       (nntp-request-body): Decode.
-
-       * gnus.el (gnus-no-server): Would bug out when gnus-start wasn't
-       loaded. 
-
-       * gnus-art.el (gnus-article-edit-mode): New command.
-       (gnus-article-edit-mode-hook): New variable.
-       (gnus-article-edit-mode-map): New variable.
-
-Wed Jul 31 15:18:26 1996  François Pinard  <pinard@progiciels-bpi.ca>
-
-       * gnus-art.el (gnus-article-edit-full-stops): New command.
-
-Wed Jul 31 13:03:48 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-sum.el (gnus-summary-edit-wash): New command and keystroke.
-
-       * message.el (message-sort-headers-1): Sort properly on totally
-       empty headers.
-
-       * article.el (article-hide-boring-headers): Didn't hide completely
-       empty headers.
-
-       * nntp.el (nntp-encode-text): Rescued.
-       (nntp-send-buffer): New function.
-       (nntp-request-post): New function.
-
-       * gnus-util.el (gnus-define-keys-safe): New macro.
-       (gnus-define-keys-1): Accept `safe' param.
-
-       * gnus-load.el (gnus-summary-mode-map): Define the main three
-       keymaps prematurely here.
-
-Wed Jul 31 12:48:23 1996  Steven L. Baur  <steve@miranova.com>
-
-       * gnus-load.el (gnus-default-nntp-server): Moved.
-
-Wed Jul 31 03:15:02 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nndoc.el (nndoc-add-type): Remove old type definition.
-
-       * article.el: Changed variable names back to `gnus-'.
-
-Tue Jul 30 23:07:04 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nntp.el (nntp-connection-alist): Define as oo.
-
-       * nndoc.el (nndoc-add-type): Wrong number of args.
-       (nndoc-set-delims): Free var.
-
-Tue Jul 30 23:02:51 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Red Gnus v0.1 is released.
-
-Tue Jul 30 22:34:11 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nntp.el (nntp-find-connection-buffer): New function.
-       (nntp-retrieve-headers): Use it.
-
-Tue Jul 30 00:00:28 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * nndoc.el (nndoc-add-type): New function.
-       (nndoc-guess-type): New function.
-       (nndoc-set-delims): New definition.
-
-       * nntp.el (nntp-open-server): Init server buffer.
-
-       * gnus.el (gnus-group-prefixed-name): Do the right thing with nil
-       methods. 
-       (gnus-group-rename-group): Would act oddly when renaming native
-       groups. 
-
-Mon Jul 29 14:17:30 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-load.el (gnus-startup-hook): Removed hilit removal.
-
-       * gnus-async.el: New file.
-
-       * gnus-int.el (gnus-asynchronous-p): New function.
-
-       * nntp.el: Replaced with new, asynchronous version.
-
-Mon Jul 29 11:48:07 1996  Paul Franklin  <paul@transmeta.com>
-
-       * gnus-sum.el (gnus-pdf-simplify-subject): New function.
-       (gnus-summary-simplify-subject-query): New command.
-
-Mon Jul 29 10:05:30 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-sum.el (gnus-summary-mode-map): Command for emphasis.
-
-       * gnus-art.el (gnus-article-wash-status): Report emphasis.
-
-       * article.el (article-unhide-text-type): New function.
-       (article-emphasize): New function.
-       (article-emphasis-alist): New variable.
-
-       * gnus-score.el (gnus-score-headers): Hook into advanced scoring.
-
-       * gnus-logic.el: New file.
-
-       * article.el (article-treat-overstrike): Mark hiding type.
-
-Mon Jul 29 10:00:52 1996  d. hall  <dhall@illusion.apk.net>
-
-       * gnus-art.el (gnus-article-wash-status): New function.
-
-Sun Jul 28 15:20:19 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
-
-       * article.el (article-hidden-arg): Renamed all variables and
-       functions to `article-'.
-
-       * gnus.el: Split file into gnus-start.el, gnus-group.el,
-       gnus-sum.el, gnus-art.el, gnus-win.el, gnus-load.el, gnus-util.el,
-       gnus-bcklg.el, gnus-spec.el, article.el, and gnus-int.el.
+       * gnus.el: Quassia Gnus v0.1 is released.
 
diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el
new file mode 100644 (file)
index 0000000..daa2868
--- /dev/null
@@ -0,0 +1,1187 @@
+;;; gnus-agent.el --- unplugged support for Gnus
+;; Copyright (C) 1997 Free Software Foundation, Inc.
+
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+;; Keywords: news
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; (add-hook 'gnus-before-startup-hook 'gnus-open-agent)
+
+;;; Code:
+
+(require 'gnus)
+(require 'gnus-cache)
+(require 'nnvirtual)
+(require 'gnus-sum)
+
+(defcustom gnus-agent-directory (nnheader-concat gnus-directory "agent/")
+  "Where the Gnus agent will store its files."
+  :group 'gnus-agent
+  :type 'directory)
+
+(defcustom gnus-agent-plugged-hook nil
+  "Hook run when plugging into the network."
+  :group 'gnus-agent
+  :type 'hook)
+
+(defcustom gnus-agent-unplugged-hook nil
+  "Hook run when unplugging from the network."
+  :group 'gnus-agent
+  :type 'hook)
+
+;;; Internal variables
+
+(defvar gnus-agent-history-buffers nil)
+(defvar gnus-agent-buffer-alist nil)
+(defvar gnus-agent-article-alist nil)
+(defvar gnus-agent-group-alist nil)
+(defvar gnus-agent-covered-methods nil)
+(defvar gnus-category-alist nil)
+(defvar gnus-agent-current-history nil)
+(defvar gnus-agent-overview-buffer nil)
+(defvar gnus-category-predicate-cache nil)
+(defvar gnus-category-group-cache nil)
+(defvar gnus-agent-spam-hashtb nil)
+(defvar gnus-agent-file-name nil)
+
+(defvar gnus-plugged t
+  "Whether Gnus is plugged or not.")
+
+;; Dynamic variables
+(defvar gnus-headers)
+(defvar gnus-score)
+
+;;;
+;;; Setup
+;;;
+
+(defun gnus-open-agent ()
+  (setq gnus-agent t)
+  (gnus-agent-read-servers)
+  (gnus-category-read)
+  (setq gnus-agent-overview-buffer
+       (get-buffer-create " *Gnus agent overview*"))
+  (add-hook 'gnus-group-mode-hook 'gnus-agent-mode)
+  (add-hook 'gnus-summary-mode-hook 'gnus-agent-mode)
+  (add-hook 'gnus-server-mode-hook 'gnus-agent-mode))
+
+(gnus-add-shutdown 'gnus-close-agent 'gnus)
+
+(defun gnus-close-agent ()
+  (setq gnus-agent-covered-methods nil
+       gnus-category-predicate-cache nil
+       gnus-category-group-cache nil
+       gnus-agent-spam-hashtb nil)
+  (gnus-kill-buffer gnus-agent-overview-buffer))
+
+;;;
+;;; Utility functions
+;;;
+
+(defun gnus-agent-read-file (file)
+  "Load FILE and do a `read' there."
+  (nnheader-temp-write nil
+    (ignore-errors
+      (insert-file-contents file)
+      (goto-char (point-min))
+      (read (current-buffer)))))
+
+(defsubst gnus-agent-method ()
+  (concat (symbol-name (car gnus-command-method)) "/"
+         (if (equal (cadr gnus-command-method) "")
+             "unnamed"
+           (cadr gnus-command-method))))
+
+(defsubst gnus-agent-directory ()
+  "Path of the Gnus agent directory."
+  (nnheader-concat gnus-agent-directory (gnus-agent-method) "/"))
+
+(defun gnus-agent-lib-file (file)
+  "The full path of the Gnus agent library FILE."
+  (concat (gnus-agent-directory) "lib/" file))
+
+;;;
+;;; Mode infestation
+;;;
+
+(defvar gnus-agent-mode-hook nil
+  "Hook run when installing agent mode.")
+
+(defvar gnus-agent-mode nil)
+(defvar gnus-agent-mode-status '(gnus-agent-mode " Plugged"))
+
+(defun gnus-agent-mode ()
+  "Minor mode for providing a agent support in Gnus buffers."
+  (let* ((buffer (progn (string-match "^gnus-\\(.*\\)-mode$"
+                                     (symbol-name major-mode))
+                       (match-string 1 (symbol-name major-mode))))
+        (mode (intern (format "gnus-agent-%s-mode" buffer))))
+    (set (make-local-variable 'gnus-agent-mode) t)
+    (set mode nil)
+    (set (make-local-variable mode) t)
+    ;; Set up the menu.
+    (when (gnus-visual-p 'agent-menu 'menu)
+      (funcall (intern (format "gnus-agent-%s-make-menu-bar" buffer))))
+    (unless (assq 'gnus-agent-mode minor-mode-alist)
+      (push gnus-agent-mode-status minor-mode-alist))
+    (unless (assq mode minor-mode-map-alist)
+      (push (cons mode (symbol-value (intern (format "gnus-agent-%s-mode-map"
+                                                    buffer))))
+           minor-mode-map-alist))
+    (gnus-agent-toggle-plugged gnus-plugged)
+    (run-hooks 'gnus-agent-mode-hook)))
+
+(defvar gnus-agent-group-mode-map (make-sparse-keymap))
+(gnus-define-keys gnus-agent-group-mode-map
+  "Ju" gnus-agent-fetch-group
+  "Jc" gnus-enter-category-buffer
+  "Jj" gnus-agent-toggle-plugged
+  "Js" gnus-agent-fetch-session
+  "Ja" gnus-agent-add-group)
+
+(defun gnus-agent-group-make-menu-bar ()
+  (unless (boundp 'gnus-agent-group-menu)
+    (easy-menu-define
+     gnus-agent-group-menu gnus-agent-group-mode-map ""
+     '("Agent"
+       ["Toggle plugged" gnus-agent-toggle-plugged t]
+       ["List categories" gnus-enter-category-buffer t]
+       ("Fetch"
+       ["Group" gnus-agent-fetch-group t])))))
+
+(defvar gnus-agent-summary-mode-map (make-sparse-keymap))
+(gnus-define-keys gnus-agent-summary-mode-map
+  "Jj" gnus-agent-toggle-plugged
+  "J#" gnus-agent-mark-article
+  "J\M-#" gnus-agent-unmark-article
+  "@" gnus-agent-toggle-mark
+  "Jc" gnus-agent-catchup)
+
+(defun gnus-agent-summary-make-menu-bar ()
+  (unless (boundp 'gnus-agent-summary-menu)
+    (easy-menu-define
+     gnus-agent-summary-menu gnus-agent-summary-mode-map ""
+     '("Agent"
+       ["Toggle plugged" gnus-agent-toggle-plugged t]
+       ["Mark as downloadable" gnus-agent-mark-article t]
+       ["Unmark as downloadable" gnus-agent-unmark-article t]
+       ["Toggle mark" gnus-agent-toggle-mark t]
+       ["Catchup undownloaded" gnus-agent-catchup t]))))
+
+(defvar gnus-agent-server-mode-map (make-sparse-keymap))
+(gnus-define-keys gnus-agent-server-mode-map
+  "Jj" gnus-agent-toggle-plugged
+  "Ja" gnus-agent-add-server
+  "Jr" gnus-agent-remove-server)
+
+(defun gnus-agent-server-make-menu-bar ()
+  (unless (boundp 'gnus-agent-server-menu)
+    (easy-menu-define
+     gnus-agent-server-menu gnus-agent-server-mode-map ""
+     '("Agent"
+       ["Toggle plugged" gnus-agent-toggle-plugged t]
+       ["Add" gnus-agent-add-server t]
+       ["Remove" gnus-agent-remove-server t]))))
+
+(defun gnus-agent-toggle-plugged (plugged)
+  "Toggle whether Gnus is unplugged or not."
+  (interactive (list (not gnus-plugged)))
+  (if plugged
+      (progn
+       (run-hooks 'gnus-agent-plugged-hook)
+       (setcar (cdr gnus-agent-mode-status) " Plugged"))
+    (gnus-agent-close-connections)
+    (run-hooks 'gnus-agent-unplugged-hook)
+    (setcar (cdr gnus-agent-mode-status) " Unplugged"))
+  (setq gnus-plugged plugged)
+  (set-buffer-modified-p t))
+
+(defun gnus-agent-close-connections ()
+  "Close all methods covered by the Gnus agent."
+  (let ((methods gnus-agent-covered-methods))
+    (while methods
+      (gnus-close-server (pop methods)))))
+
+;;;###autoload
+(defun gnus-unplugged ()
+  "Start Gnus unplugged."
+  (interactive)
+  (setq gnus-plugged nil)
+  (gnus))
+
+;;;
+;;; Group mode commands
+;;;
+
+(defun gnus-agent-fetch-group (group)
+  "Put all new articles in GROUP into the agent."
+  (interactive (list (gnus-group-group-name)))
+  (unless group
+    (error "No group on the current line"))
+  (let ((articles (gnus-list-of-unread-articles group))
+       (gnus-command-method (gnus-find-method-for-group group)))
+    (gnus-agent-with-fetch
+      (gnus-agent-fetch-articles group articles))))
+
+(defun gnus-agent-add-group (category arg)
+  "Add the current group to an agent category."
+  (interactive
+   (list
+    (intern
+     (completing-read
+      "Add to category: "
+      (mapcar (lambda (cat) (list (symbol-name (car cat))))
+             gnus-category-alist)
+      nil t))
+    current-prefix-arg))
+  (let ((cat (assq category gnus-category-alist))
+       c groups)
+    (gnus-group-iterate arg
+      (lambda (group)
+       (when (cadddr (setq c (gnus-group-category group)))
+         (setf (cadddr c) (delete group (cadddr c))))
+       (push group groups)))
+    (setf (cadddr cat) (nconc (cadddr cat) groups))
+    (gnus-category-write)))
+
+;;;
+;;; Server mode commands
+;;;
+
+(defun gnus-agent-add-server (server)
+  "Enroll SERVER in the agent program."
+  (interactive (list (gnus-server-server-name)))
+  (unless server
+    (error "No server on the current line"))
+  (let ((method (gnus-server-get-method nil (gnus-server-server-name))))
+    (when (member method gnus-agent-covered-methods)
+      (error "Server already in the agent program"))
+    (push method gnus-agent-covered-methods)
+    (gnus-agent-write-servers)
+    (message "Entered %s into the agent" server)))
+
+(defun gnus-agent-remove-server (server)
+  "Remove SERVER from the agent program."
+  (interactive (list (gnus-server-server-name)))
+  (unless server
+    (error "No server on the current line"))
+  (let ((method (gnus-server-get-method nil (gnus-server-server-name))))
+    (unless (member method gnus-agent-covered-methods)
+      (error "Server not in the agent program"))
+    (setq gnus-agent-covered-methods
+         (delete method gnus-agent-covered-methods))
+    (gnus-agent-write-servers)
+    (message "Removed %s from the agent" server)))
+
+(defun gnus-agent-read-servers ()
+  "Read the alist of covered servers."
+  (setq gnus-agent-covered-methods
+       (gnus-agent-read-file
+        (nnheader-concat gnus-agent-directory "lib/servers"))))
+
+(defun gnus-agent-write-servers ()
+  "Write the alist of covered servers."
+  (nnheader-temp-write (nnheader-concat gnus-agent-directory "lib/servers")
+    (prin1 gnus-agent-covered-methods (current-buffer))))
+
+;;;
+;;; Summary commands
+;;;
+
+(defun gnus-agent-mark-article (n &optional unmark)
+  "Mark the next N articles as downloadable.
+If N is negative, mark backward instead.  If UNMARK is non-nil, remove
+the mark instead.  The difference between N and the actual number of
+articles marked is returned."
+  (interactive "p")
+  (gnus-set-global-variables)
+  (let ((backward (< n 0))
+       (n (abs n)))
+    (while (and
+           (> n 0)
+           (progn
+             (gnus-summary-set-agent-mark
+              (gnus-summary-article-number) unmark)
+             (zerop (gnus-summary-next-subject (if backward -1 1) nil t))))
+      (setq n (1- n)))
+    (when (/= 0 n)
+      (gnus-message 7 "No more articles"))
+    (gnus-summary-recenter)
+    (gnus-summary-position-point)
+    n))
+
+(defun gnus-agent-unmark-article (n)
+  "Remove the downloadable mark from the next N articles.
+If N is negative, unmark backward instead.  The difference between N and
+the actual number of articles unmarked is returned."
+  (interactive "p")
+  (gnus-set-global-variables)
+  (gnus-agent-mark-article n t))
+
+(defun gnus-agent-toggle-mark (n)
+  "Toggle the downloadable mark from the next N articles.
+If N is negative, toggle backward instead.  The difference between N and
+the actual number of articles toggled is returned."
+  (interactive "p")
+  (gnus-set-global-variables)
+  (gnus-agent-mark-article n 'toggle))
+
+(defun gnus-summary-set-agent-mark (article &optional unmark)
+  "Mark ARTICLE as downloadable."
+  (let ((unmark (if (and (not (null unmark)) (not (eq t unmark)))
+                   (memq article gnus-newsgroup-downloadable)
+                 unmark)))
+    (setq gnus-newsgroup-downloadable
+         (delq article gnus-newsgroup-downloadable))
+    (unless unmark
+      (push article gnus-newsgroup-downloadable))
+    (gnus-summary-update-mark
+     (if unmark gnus-undownloaded-mark gnus-downloadable-mark)
+     'unread)))
+
+(defun gnus-agent-get-undownloaded-list ()
+  "Mark all unfetched articles as read."
+  (let ((gnus-command-method (gnus-find-method-for-group gnus-newsgroup-name)))
+    (when (and (not gnus-plugged)
+              (gnus-agent-method-p gnus-command-method))
+      (gnus-agent-load-alist gnus-newsgroup-name)
+      (let ((articles gnus-newsgroup-unreads)
+           article)
+       (while (setq article (pop articles))
+         (unless (or (cdr (assq article gnus-agent-article-alist))
+                 (memq article gnus-newsgroup-downloadable))
+           (push article gnus-newsgroup-undownloaded)))))))
+
+(defun gnus-agent-catchup ()
+  "Mark all undownloaded articles as read."
+  (interactive)
+  (save-excursion
+    (while gnus-newsgroup-undownloaded
+      (gnus-summary-mark-article
+       (pop gnus-newsgroup-undownloaded) gnus-catchup-mark)))
+  (gnus-summary-position-point))
+
+;;;
+;;; Internal functions
+;;;
+
+(defun gnus-agent-save-active (method)
+  (when (gnus-agent-method-p method)
+    (let* ((gnus-command-method method)
+          (file (gnus-agent-lib-file "active")))
+      (gnus-make-directory (file-name-directory file))
+      (write-region (point-min) (point-max) file nil 'silent)
+      (when (file-exists-p (gnus-agent-lib-file "groups"))
+       (delete-file (gnus-agent-lib-file "groups"))))))
+
+(defun gnus-agent-save-groups (method)
+  (let* ((gnus-command-method method)
+        (file (gnus-agent-lib-file "groups")))
+    (gnus-make-directory (file-name-directory file))
+    (write-region (point-min) (point-max) file nil 'silent))
+    (when (file-exists-p (gnus-agent-lib-file "active"))
+      (delete-file (gnus-agent-lib-file "active"))))
+
+(defun gnus-agent-group-path (group)
+  "Translate GROUP into a path."
+  (nnheader-replace-chars-in-string group ?. ?/))
+
+\f
+
+(defun gnus-agent-method-p (method)
+  "Say whether METHOD is covered by the agent."
+  (member method gnus-agent-covered-methods))
+
+(defun gnus-agent-get-function (method)
+  (if (and (not gnus-plugged)
+          (gnus-agent-method-p method))
+      (progn
+       (require 'nnagent)
+       'nnagent)
+    (car method)))
+
+;;; History functions
+
+(defun gnus-agent-history-buffer ()
+  (cdr (assoc (gnus-agent-method) gnus-agent-history-buffers)))
+
+(defun gnus-agent-open-history ()
+  (save-excursion
+    (push (cons (gnus-agent-method)
+               (set-buffer (get-buffer-create
+                            (format " *Gnus agent %s history*"
+                                    (gnus-agent-method)))))
+         gnus-agent-history-buffers)
+    (erase-buffer)
+    (insert "\n")
+    (let ((file (gnus-agent-lib-file "history")))
+      (when (file-exists-p file)
+       (insert-file file))
+      (set (make-local-variable 'gnus-agent-file-name) file))))
+
+(defun gnus-agent-save-history ()
+  (save-excursion
+    (set-buffer gnus-agent-current-history)
+    (gnus-make-directory (file-name-directory gnus-agent-file-name))
+    (write-region (1+ (point-min)) (point-max)
+                 gnus-agent-file-name nil 'silent)))
+
+(defun gnus-agent-close-history ()
+  (when (gnus-buffer-live-p gnus-agent-current-history)
+    (kill-buffer gnus-agent-current-history)
+    (setq gnus-agent-history-buffers
+         (delq (assoc (gnus-agent-method) gnus-agent-history-buffers)
+               gnus-agent-history-buffers))))
+
+(defun gnus-agent-enter-history (id group-arts date)
+  (save-excursion
+    (set-buffer gnus-agent-current-history)
+    (goto-char (point-max))
+    (insert id "\t" (number-to-string date) "\t")
+    (while group-arts
+      (insert (caar group-arts) "/" (number-to-string (cdr (pop group-arts)))
+             " "))
+    (insert "\n")))
+
+(defun gnus-agent-article-in-history-p (id)
+  (save-excursion
+    (set-buffer (gnus-agent-history-buffer))
+    (goto-char (point-min))
+    (search-forward (concat "\n" id "\t") nil t)))
+
+(defun gnus-agent-history-path (id)
+  (save-excursion
+    (set-buffer (gnus-agent-history-buffer))
+    (goto-char (point-min))
+    (when (search-forward (concat "\n" id "\t") nil t)
+      (let ((method (gnus-agent-method)))
+       (let (paths group)
+         (while (not (numberp (setq group (read (current-buffer)))))
+           (push (concat method "/" group) paths))
+         (nreverse paths))))))
+
+;;;
+;;; Fetching
+;;;
+
+(defun gnus-agent-start-fetch ()
+  "Initialize data structures for efficient fetching."
+  (gnus-agent-open-history)
+  (setq gnus-agent-current-history (gnus-agent-history-buffer)))
+
+(defun gnus-agent-stop-fetch ()
+  "Save all data structures and clean up."
+  (gnus-agent-save-history)
+  (gnus-agent-close-history)
+  (setq gnus-agent-spam-hashtb nil)
+  (save-excursion
+    (set-buffer nntp-server-buffer)
+    (widen)))
+
+(defmacro gnus-agent-with-fetch (&rest forms)
+  "Do FORMS safely."
+  `(unwind-protect
+       (progn
+        (gnus-agent-start-fetch)
+        ,@forms)
+     (gnus-agent-stop-fetch)))
+
+(put 'gnus-agent-with-fetch 'lisp-indent-function 0)
+(put 'gnus-agent-with-fetch 'edebug-form-spec '(body))
+
+(defun gnus-agent-fetch-articles (group articles)
+  "Fetch ARTICLES from GROUP and put them into the agent."
+  (when articles
+    ;; Prune off articles that we have already fetched.
+    (while (and articles
+               (cdr (assq (car articles) gnus-agent-article-alist)))
+      (pop articles))
+    (let ((arts articles))
+      (while (cdr arts)
+       (if (cdr (assq (cadr arts) gnus-agent-article-alist))
+           (setcdr arts (cddr arts))
+         (setq arts (cdr arts)))))
+    (when articles
+      (let ((dir (concat
+                 (gnus-agent-directory)
+                 (gnus-agent-group-path group) "/"))
+           (date (gnus-time-to-day (current-time)))
+           (case-fold-search t)
+           pos alists crosses id elem)
+       (gnus-make-directory dir)
+       (gnus-message 7 "Fetching articles for %s..." group)
+       ;; Fetch the articles from the backend.
+       (if (gnus-check-backend-function 'retrieve-articles group)
+           (setq pos (gnus-retrieve-articles articles group))
+         (nnheader-temp-write nil
+           (let ((buf (current-buffer))
+                 article)
+             (while (setq article (pop articles))
+               (when (gnus-request-article article group)
+                 (goto-char (point-max))
+                 (push (cons article (point)) pos)
+                 (insert-buffer-substring nntp-server-buffer)))
+             (copy-to-buffer nntp-server-buffer (point-min) (point-max))
+             (setq pos (nreverse pos)))))
+       ;; Then save these articles into the agent.
+       (save-excursion
+         (set-buffer nntp-server-buffer)
+         (while pos
+           (narrow-to-region (cdar pos) (or (cdadr pos) (point-max)))
+           (goto-char (point-min))
+           (when (search-forward "\n\n" nil t)
+             (when (search-backward "\nXrefs: " nil t)
+               ;; Handle crossposting.
+               (skip-chars-forward "^ ")
+               (skip-chars-forward " ")
+               (setq crosses nil)
+               (while (looking-at "\\([^: \n]+\\):\\([0-9]+\\) +")
+                 (push (cons (buffer-substring (match-beginning 1)
+                                               (match-end 1))
+                             (buffer-substring (match-beginning 2)
+                                               (match-end 2)))
+                       crosses)
+                 (goto-char (match-end 0)))
+               (gnus-agent-crosspost crosses (caar pos))))
+           (goto-char (point-min))
+           (if (not (re-search-forward "^Message-ID: *<\\([^>\n]+\\)>" nil t))
+               (setq id "No-Message-ID-in-article")
+             (setq id (buffer-substring (match-beginning 1) (match-end 1))))
+           (write-region (point-min) (point-max)
+                         (concat dir (number-to-string (caar pos)))
+                         nil 'silent)
+           (when (setq elem (assq (caar pos) gnus-agent-article-alist))
+             (setcdr elem t))
+           (gnus-agent-enter-history
+            id (or crosses (list (cons group (caar pos)))) date)
+           (widen)
+           (pop pos)))
+       (gnus-agent-save-alist group)))))
+
+(defun gnus-agent-crosspost (crosses article)
+  (let (gnus-agent-article-alist group alist beg end)
+    (save-excursion
+      (set-buffer gnus-agent-overview-buffer)
+      (when (nnheader-find-nov-line article)
+       (forward-word 1)
+       (setq beg (point))
+       (setq end (progn (forward-line 1) (point)))))
+    (while crosses
+      (setq group (caar crosses))
+      (unless (setq alist (assoc group gnus-agent-group-alist))
+       (push (setq alist (list group (gnus-agent-load-alist (caar crosses))))
+             gnus-agent-group-alist))
+      (setcdr alist (cons (cons (cdar crosses) t) (cdr alist)))
+      (save-excursion
+       (set-buffer (get-buffer-create (format " *Gnus agent overview %s*"
+                                              group)))
+       (when (= (point-max) (point-min))
+         (push (cons group (current-buffer)) gnus-agent-buffer-alist)
+         (ignore-errors
+           (insert-file-contents
+            (gnus-agent-article-name ".overview" group))))
+       (nnheader-find-nov-line (string-to-number (cdar crosses)))
+       (insert (string-to-number (cdar crosses)))
+       (insert-buffer-substring gnus-agent-overview-buffer beg end))
+      (pop crosses))))
+
+(defun gnus-agent-flush-cache ()
+  (save-excursion
+    (while gnus-agent-buffer-alist
+      (set-buffer (cdar gnus-agent-buffer-alist))
+      (write-region (point-min) (point-max)
+                   (gnus-agent-article-name ".overview"
+                                            (caar gnus-agent-buffer-alist))
+                    nil 'silent)
+      (pop gnus-agent-buffer-alist))
+    (while gnus-agent-group-alist
+      (nnheader-temp-write (caar gnus-agent-group-alist)
+       (princ (cdar gnus-agent-group-alist))
+       (insert "\n"))
+      (pop gnus-agent-group-alist))))
+
+(defun gnus-agent-fetch-headers (group articles &optional force)
+  (gnus-agent-load-alist group)
+  ;; Find out what headers we need to retrieve.
+  (when articles
+    (while (and articles
+               (assq (car articles) gnus-agent-article-alist))
+      (pop articles))
+    (let ((arts articles))
+      (while (cdr arts)
+       (if (assq (cadr arts) gnus-agent-article-alist)
+           (setcdr arts (cddr arts))
+         (setq arts (cdr arts)))))
+    ;; Fetch them.
+    (when articles
+      (gnus-message 7 "Fetching headers for %s..." group)
+      (save-excursion
+       (set-buffer nntp-server-buffer)
+       (unless (eq 'nov (gnus-retrieve-headers articles group))
+         (nnvirtual-convert-headers))
+       ;; Save these headers for later processing.
+       (copy-to-buffer gnus-agent-overview-buffer (point-min) (point-max))
+       (let (file)
+         (when (file-exists-p
+                (setq file (gnus-agent-article-name ".overview" group)))
+           (gnus-agent-braid-nov group articles file))
+         (gnus-make-directory (file-name-directory file))
+         (write-region (point-min) (point-max) file nil 'silent)
+         (gnus-agent-save-alist group articles nil))
+       t))))
+
+(defsubst gnus-agent-copy-nov-line (article)
+  (let (b e)
+    (set-buffer gnus-agent-overview-buffer)
+    (setq b (point))
+    (if (eq article (read (current-buffer)))
+       (setq e (progn (forward-line 1) (point)))
+      (setq e b))
+    (set-buffer nntp-server-buffer)
+    (insert-buffer-substring gnus-agent-overview-buffer b e)))
+
+(defun gnus-agent-braid-nov (group articles file)
+  (let (beg end)
+    (set-buffer gnus-agent-overview-buffer)
+    (goto-char (point-min))
+    (set-buffer nntp-server-buffer)
+    (erase-buffer)
+    (insert-file-contents file)
+    (goto-char (point-min))
+    (if (or (= (point-min) (point-max))
+           (progn
+             (forward-line -1)
+             (< (read (current-buffer)) (car articles))))
+       ;; We have only headers that are after the older headers,
+       ;; so we just append them.
+       (progn
+         (goto-char (point-max))
+         (insert-buffer-substring gnus-agent-overview-buffer))
+      ;; We do it the hard way.
+      (nnheader-find-nov-line (car articles))
+      (gnus-agent-copy-nov-line (car articles))
+      (pop articles)
+      (while (and articles
+                 (not (eobp)))
+       (while (and (not (eobp))
+                   (< (read (current-buffer)) (car articles)))
+         (forward-line 1))
+       (beginning-of-line)
+       (unless (eobp)
+         (gnus-agent-copy-nov-line (car articles))
+         (setq articles (cdr articles))))
+      (when articles
+       (let (b e)
+         (set-buffer gnus-agent-overview-buffer)
+         (setq b (point)
+               e (point-max))
+         (set-buffer nntp-server-buffer)
+         (insert-buffer-substring gnus-agent-overview-buffer b e))))))
+
+(defun gnus-agent-load-alist (group &optional dir)
+  "Load the article-state alist for GROUP."
+  (setq gnus-agent-article-alist
+       (gnus-agent-read-file
+        (if dir
+            (concat dir ".agentview")
+          (gnus-agent-article-name ".agentview" group)))))
+
+(defun gnus-agent-save-alist (group &optional articles state dir)
+  "Load the article-state alist for GROUP."
+  (nnheader-temp-write (if dir
+                          (concat dir ".agentview")
+                        (gnus-agent-article-name ".agentview" group))
+    (princ (setq gnus-agent-article-alist
+                (nconc gnus-agent-article-alist
+                       (mapcar (lambda (article) (cons article state))
+                               articles)))
+          (current-buffer))
+    (insert "\n")))
+
+(defun gnus-agent-article-name (article group)
+  (concat (gnus-agent-directory) (gnus-agent-group-path group) "/"
+         (if (stringp article) article (string-to-number article))))
+
+(defun gnus-agent-fetch-session ()
+  "Fetch all articles and headers that are eligible for fetching."
+  (interactive)
+  (unless gnus-agent-covered-methods
+    (error "No servers are covered by the Gnus agent"))
+  (unless gnus-plugged
+    (error "Can't fetch articles while Gnus is unplugged"))
+  (let ((methods gnus-agent-covered-methods)
+       gnus-newsgroup-dependencies gnus-newsgroup-headers
+       gnus-newsgroup-scored
+       gnus-headers gnus-score
+       gnus-use-cache
+       gnus-command-method groups group articles score arts
+       category predicate info marks score-param)
+    (save-excursion
+      (while methods
+       (setq gnus-command-method (car methods)
+             groups (gnus-groups-from-server (pop methods)))
+       (gnus-agent-with-fetch
+         (while (setq group (pop groups))
+           ;; Fetch headers.
+           (when (and (setq articles (gnus-list-of-unread-articles group))
+                      (gnus-agent-fetch-headers group articles))
+             ;; Parse them and see which articles we want to fetch.
+             (setq gnus-newsgroup-dependencies
+                   (make-vector (length articles) 0))
+             (setq gnus-newsgroup-headers
+                   (gnus-get-newsgroup-headers-xover articles nil nil group))
+             (setq category (gnus-group-category group))
+             (setq predicate
+                   (gnus-get-predicate 
+                    (or (gnus-group-get-parameter group 'agent-predicate)
+                        (cadr category))))
+             (setq score-param
+                   (or (gnus-group-get-parameter group 'agent-score)
+                       (caddr category)))
+             (when score-param
+               (gnus-score-headers (list (list score-param))))
+             (setq arts nil)
+             (while (setq gnus-headers (pop gnus-newsgroup-headers))
+               (setq gnus-score
+                     (or (cdr (assq (mail-header-number gnus-headers)
+                                    gnus-newsgroup-scored))
+                         gnus-summary-default-score))
+               (when (funcall predicate)
+                 (push (mail-header-number gnus-headers)
+                       arts)))
+             ;; Fetch the articles.
+             (when arts
+               (gnus-agent-fetch-articles group arts)))
+           ;; Perhaps we have some additional articles to fetch.
+           (setq arts (assq 'download (gnus-info-marks
+                                       (setq info (gnus-get-info group)))))
+           (when (cdr arts)
+             (gnus-agent-fetch-articles
+              group (gnus-uncompress-range (cdr arts)))
+             (setq marks (delq arts (gnus-info-marks info)))
+             (gnus-info-set-marks info marks)))))
+      (gnus-message 6 "Finished fetching articles into the Gnus agent"))))
+
+;;;
+;;; Agent Category Mode
+;;;
+
+(defvar gnus-category-mode-hook nil
+  "Hook run in `gnus-category-mode' buffers.")
+
+(defvar gnus-category-line-format "     %(%20c%): %g\n"
+  "Format of category lines.")
+
+(defvar gnus-category-mode-line-format "Gnus: %%b"
+  "The format specification for the category mode line.")
+
+;;; Internal variables.
+
+(defvar gnus-category-buffer "*Agent Category*")
+
+(defvar gnus-category-line-format-alist
+  `((?c name ?s)
+    (?g groups ?d)))
+
+(defvar gnus-category-mode-line-format-alist
+  `((?u user-defined ?s)))
+
+(defvar gnus-category-line-format-spec nil)
+(defvar gnus-category-mode-line-format-spec nil)
+
+(defvar gnus-category-mode-map nil)
+(put 'gnus-category-mode 'mode-class 'special)
+
+(unless gnus-category-mode-map
+  (setq gnus-category-mode-map (make-sparse-keymap))
+  (suppress-keymap gnus-category-mode-map)
+
+  (gnus-define-keys gnus-category-mode-map
+    "q" gnus-category-exit
+    "k" gnus-category-kill
+    "c" gnus-category-copy
+    "a" gnus-category-add
+    "p" gnus-category-edit-predicate
+    "g" gnus-category-edit-groups
+    "s" gnus-category-edit-score
+    "l" gnus-category-list
+
+    "\C-c\C-i" gnus-info-find-node
+    "\C-c\C-b" gnus-bug))
+
+(defvar gnus-category-menu-hook nil
+  "*Hook run after the creation of the menu.")
+
+(defun gnus-category-make-menu-bar ()
+  (gnus-turn-off-edit-menu 'category)
+  (unless (boundp 'gnus-category-menu)
+    (easy-menu-define
+     gnus-category-menu gnus-category-mode-map ""
+     '("Categories"
+       ["Add" gnus-category-add t]
+       ["Kill" gnus-category-kill t]
+       ["Copy" gnus-category-copy t]
+       ["Edit predicate" gnus-category-edit-predicate t]
+       ["Edit score" gnus-category-edit-score t]
+       ["Edit groups" gnus-category-edit-groups t]
+       ["Exit" gnus-category-exit t]))
+
+    (run-hooks 'gnus-category-menu-hook)))
+
+(defun gnus-category-mode ()
+  "Major mode for listing and editing agent categories.
+
+All normal editing commands are switched off.
+\\<gnus-category-mode-map>
+For more in-depth information on this mode, read the manual
+(`\\[gnus-info-find-node]').
+
+The following commands are available:
+
+\\{gnus-category-mode-map}"
+  (interactive)
+  (when (gnus-visual-p 'category-menu 'menu)
+    (gnus-category-make-menu-bar))
+  (kill-all-local-variables)
+  (gnus-simplify-mode-line)
+  (setq major-mode 'gnus-category-mode)
+  (setq mode-name "Category")
+  (gnus-set-default-directory)
+  (setq mode-line-process nil)
+  (use-local-map gnus-category-mode-map)
+  (buffer-disable-undo (current-buffer))
+  (setq truncate-lines t)
+  (setq buffer-read-only t)
+  (run-hooks 'gnus-category-mode-hook))
+
+(defalias 'gnus-category-position-point 'gnus-goto-colon)
+
+(defun gnus-category-insert-line (category)
+  (let* ((name (car category))
+        (groups (length (cadddr category))))
+    (beginning-of-line)
+    (gnus-add-text-properties
+     (point)
+     (prog1 (1+ (point))
+       ;; Insert the text.
+       (eval gnus-category-line-format-spec))
+     (list 'gnus-category name))))
+
+(defun gnus-enter-category-buffer ()
+  "Go to the Category buffer."
+  (interactive)
+  (gnus-category-setup-buffer)
+  (gnus-configure-windows 'category)
+  (gnus-category-prepare))
+
+(defun gnus-category-setup-buffer ()
+  (unless (get-buffer gnus-category-buffer)
+    (save-excursion
+      (set-buffer (get-buffer-create gnus-category-buffer))
+      (gnus-add-current-to-buffer-list)
+      (gnus-category-mode))))
+
+(defun gnus-category-prepare ()
+  (gnus-set-format 'category-mode)
+  (gnus-set-format 'category t)
+  (let ((alist gnus-category-alist)
+       (buffer-read-only nil))
+    (erase-buffer)
+    (while alist
+      (gnus-category-insert-line (pop alist)))
+    (goto-char (point-min))
+    (gnus-category-position-point)))
+
+(defun gnus-category-name ()
+  (or (get-text-property (gnus-point-at-bol) 'gnus-category)
+      (error "No category on the current line")))
+
+(defun gnus-category-read ()
+  "Read the category alist."
+  (setq gnus-category-alist
+       (or (gnus-agent-read-file
+            (nnheader-concat gnus-agent-directory "lib/categories"))
+           (list (list 'default 'true nil nil)))))
+    
+(defun gnus-category-write ()
+  "Write the category alist."
+  (setq gnus-category-predicate-cache nil
+       gnus-category-group-cache nil)
+  (nnheader-temp-write (nnheader-concat gnus-agent-directory "lib/categories")
+    (prin1 gnus-category-alist (current-buffer))))
+
+(defun gnus-category-edit-predicate (category)
+  "Edit the predicate for CATEGORY."
+  (interactive (list (gnus-category-name)))
+  (let ((info (assq category gnus-category-alist)))
+    (gnus-edit-form
+     (cadr info) (format "Editing the predicate for category %s" category)
+     `(lambda (predicate)
+       (setf (cadr (assq ',category gnus-category-alist)) predicate)
+       (gnus-category-write)
+       (gnus-category-list)))))
+  
+(defun gnus-category-edit-score (category)
+  "Edit the score expression for CATEGORY."
+  (interactive (list (gnus-category-name)))
+  (let ((info (assq category gnus-category-alist)))
+    (gnus-edit-form
+     (caddr info)
+     (format "Editing the score expression for category %s" category)
+     `(lambda (groups)
+       (setf (caddr (assq ',category gnus-category-alist)) groups)
+       (gnus-category-write)
+       (gnus-category-list)))))
+
+(defun gnus-category-edit-groups (category)
+  "Edit the group list for CATEGORY."
+  (interactive (list (gnus-category-name)))
+  (let ((info (assq category gnus-category-alist)))
+    (gnus-edit-form
+     (cadddr info) (format "Editing the group list for category %s" category)
+     `(lambda (groups)
+       (setf (cadddr (assq ',category gnus-category-alist)) groups)
+       (gnus-category-write)
+       (gnus-category-list)))))
+
+(defun gnus-category-kill (category)
+  "Kill the current category."
+  (interactive (list (gnus-category-name)))
+  (let ((info (assq category gnus-category-alist))
+       (buffer-read-only nil))
+    (gnus-delete-line)
+    (gnus-category-write)
+    (setq gnus-category-alist (delq info gnus-category-alist))))
+
+(defun gnus-category-copy (category to)
+  "Copy the current category."
+  (interactive (list (gnus-category-name) (intern (read-string "New name: "))))
+  (let ((info (assq category gnus-category-alist)))
+    (push (list to (gnus-copy-sequence (cadr info))
+               (gnus-copy-sequence (caddr info)) nil)
+         gnus-category-alist)
+    (gnus-category-write)
+    (gnus-category-list)))
+
+(defun gnus-category-add (category)
+  "Create a new category."
+  (interactive "SCategory name: ")
+  (when (assq category gnus-category-alist)
+    (error "Category %s already exists" category))
+  (push (list category 'true nil nil)
+       gnus-category-alist)
+  (gnus-category-write)
+  (gnus-category-list))
+
+(defun gnus-category-list ()
+  "List all categories."
+  (interactive)
+  (gnus-category-prepare))
+
+(defun gnus-category-exit ()
+  "Return to the group buffer."
+  (interactive)
+  (kill-buffer (current-buffer))
+  (gnus-configure-windows 'group t))
+
+;; To avoid having 8-bit characters in the source file.
+(defvar gnus-category-not (list '! 'not (intern (format "%c" 172))))
+
+(defvar gnus-category-predicate-alist
+  '((spam . gnus-agent-spam-p)
+    (short . gnus-agent-short-p)
+    (long . gnus-agent-long-p)
+    (low . gnus-agent-low-scored-p)
+    (high . gnus-agent-high-scored-p)
+    (true . gnus-agent-true)
+    (false . gnus-agent-false))
+  "Mapping from short score predicate symbols to predicate functions.")
+
+(defun gnus-agent-spam-p ()
+  "Say whether an article is spam or not."
+  (unless gnus-agent-spam-hashtb
+    (setq gnus-agent-spam-hashtb (gnus-make-hashtable 1000)))
+  (if (not (equal (mail-header-references gnus-headers) ""))
+      nil
+    (let ((string (gnus-simplify-subject (mail-header-subject gnus-headers))))
+      (prog1
+         (gnus-gethash string gnus-agent-spam-hashtb)
+       (gnus-sethash string t gnus-agent-spam-hashtb)))))
+
+(defun gnus-agent-short-p ()
+  "Say whether an article is short (less than 100 lines) or not."
+  (< (mail-header-lines gnus-headers) 100))
+
+(defun gnus-agent-long-p ()
+  "Say whether an article is long (more than 200 lines) or not."
+  (> (mail-header-lines gnus-headers) 200))
+
+(defun gnus-agent-low-scored-p ()
+  "Say whether an article has a low score or not."
+  (< gnus-score gnus-summary-default-score))
+
+(defun gnus-agent-high-scored-p ()
+  "Say whether an article has a high score or not."
+  (> gnus-score gnus-summary-default-score))
+
+(defun gnus-category-make-function (cat)
+  "Make a function from category CAT."
+  `(lambda () ,(gnus-category-make-function-1 cat)))
+
+(defun gnus-agent-true ()
+  "Return t."
+  t)
+
+(defun gnus-agent-false ()
+  "Return nil."
+  nil)
+  
+(defun gnus-category-make-function-1 (cat)
+  "Make a function from category CAT."
+  (cond
+   ;; Functions are just returned as is.
+   ((or (symbolp cat)
+       (gnus-functionp cat))
+    `(,(or (cdr (assq cat gnus-category-predicate-alist))
+          cat)))
+   ;; More complex category.
+   ((consp cat)
+    `(,(cond
+       ((memq (car cat) '(& and))
+        'and)
+       ((memq (car cat) '(| or))
+        'or)
+       ((memq (car cat) gnus-category-not)
+        'not))
+      ,@(mapcar 'gnus-category-make-function-1 (cdr cat))))
+   (t
+    (error "Unknown category type: %s" cat))))
+
+(defun gnus-get-predicate (predicate)
+  "Return the predicate for CATEGORY."
+  (or (cdr (assoc predicate gnus-category-predicate-cache))
+      (cdar (push (cons predicate
+                       (gnus-category-make-function predicate))
+                 gnus-category-predicate-cache))))
+
+(defun gnus-group-category (group)
+  "Return the category GROUP belongs to."
+  (unless gnus-category-group-cache
+    (setq gnus-category-group-cache (gnus-make-hashtable 1000))
+    (let ((cs gnus-category-alist)
+         groups cat)
+      (while (setq cat (pop cs))
+       (setq groups (cadddr cat))
+       (while groups
+         (gnus-sethash (pop groups) cat gnus-category-group-cache)))))
+  (or (gnus-gethash group gnus-category-group-cache)
+      (assq 'default gnus-category-alist)))
+
+(defun gnus-agent-expire ()
+  "Expire all old articles."
+  (interactive)
+  (let ((methods gnus-agent-covered-methods)
+       (alist (cdr gnus-newsrc-alist))
+       gnus-command-method ofiles info method file group)
+    (while (setq gnus-command-method (pop methods))
+      (setq ofiles (nconc ofiles (gnus-agent-expire-directory
+                                 (gnus-agent-directory)))))
+    (while (setq info (pop alist))
+      (when (and (gnus-agent-method-p
+                 (setq gnus-command-method
+                       (gnus-find-method-for-group
+                        (setq group (gnus-info-group info)))))
+                (member
+                 (setq file
+                       (concat
+                        (gnus-agent-directory)
+                        (gnus-agent-group-path group) "/.overview"))
+                 ofiles))
+       (setq ofiles (delete file ofiles))
+       (gnus-agent-expire-group file group)))
+    (while ofiles
+      (gnus-agent-expire-group (pop ofiles)))))
+
+(defun gnus-agent-expire-directory (dir)
+  "Expire all groups in DIR recursively."
+  (when (file-directory-p dir)
+    (let ((files (directory-files dir t))
+         file ofiles)
+      (while (setq file (pop files))
+       (cond
+        ((member (file-name-nondirectory file) '("." ".."))
+         ;; Do nothing.
+         )
+        ((file-directory-p file)
+         ;; Recurse.
+         (setq ofiles (nconc ofiles (gnus-agent-expire-directory file))))
+        ((string-match "\\.overview$" file)
+         ;; Expire group.
+         (push file ofiles))))
+      ofiles)))
+
+(defun gnus-agent-expire-group (overview &optional group)
+  "Expire articles in OVERVIEW."
+  (gnus-message 5 "Expiring %s..." overview)
+  (let ((odate (- (gnus-time-to-day (current-time)) 4))
+       (dir (file-name-directory overview))
+       (info (when group (gnus-get-info group)))
+       headers article file point unreads)
+    (gnus-agent-load-alist nil dir)
+    (when info
+      (setq unreads
+           (nconc
+            (gnus-list-of-unread-articles group)
+            (gnus-uncompress-range
+             (cdr (assq 'tick (gnus-info-marks info))))
+            (gnus-uncompress-range
+             (cdr (assq 'dormant (gnus-info-marks info)))))))
+    (nnheader-temp-write overview
+      (insert-file-contents overview)
+      (goto-char (point-min))
+      (while (not (eobp))
+       (setq point (point))
+       (condition-case ()
+           (setq headers (inline (nnheader-parse-nov)))
+         (error
+          (goto-char point)
+          (gnus-delete-line)
+          (setq headers nil)))
+       (when headers
+         (unless (memq (setq article (mail-header-number headers)) unreads)
+           (if (not (< (inline
+                         (gnus-time-to-day
+                          (inline (nnmail-date-to-time
+                                   (mail-header-date headers)))))
+                       odate))
+               (forward-line 1)              
+             (gnus-delete-line)
+             (setq gnus-agent-article-alist
+                   (delq (assq article gnus-agent-article-alist)
+                         gnus-agent-article-alist))
+             (when (file-exists-p
+                    (setq file (concat dir (number-to-string article))))
+               (delete-file file))))))
+      (gnus-agent-save-alist nil nil nil dir))))
+   
+(provide 'gnus-agent)
+
+;;; gnus-agent.el ends here
index 09d688c..78701d0 100644 (file)
@@ -107,7 +107,7 @@ The first regexp group should match the Supercite attribution."
   :type 'regexp)
 
 (defcustom gnus-cite-attribution-suffix
-  "\\(\\(wrote\\|writes\\|said\\|says\\|>\\)\\(:\\|\\.\\.\\.\\)\\)[    ]*$"
+  "\\(\\(wrote\\|writes\\|said\\|says\\|>\\)\\(:\\|\\.\\.\\.\\)\\)[ \t]*$"
   "Regexp matching the end of an attribution line.
 The text matching the first grouping will be used as a button."
   :group 'gnus-cite
@@ -449,9 +449,7 @@ See the documentation for `gnus-article-highlight-citation'.
 If given a negative prefix, always show; if given a positive prefix,
 always hide."
   (interactive (append (gnus-article-hidden-arg) (list 'force)))
-  (setq gnus-cited-text-button-line-format-spec
-       (gnus-parse-format gnus-cited-text-button-line-format
-                          gnus-cited-text-button-line-format-alist t))
+  (gnus-set-format 'cited-text-button t)
   (save-excursion
     (set-buffer gnus-article-buffer)
     (cond
index 0900784..ec1f2bd 100644 (file)
@@ -105,9 +105,8 @@ time Emacs has been idle for IDLE `gnus-demon-timestep's."
   "Initialize the Gnus daemon."
   (interactive)
   (gnus-demon-cancel)
-  (if (null gnus-demon-handlers)
-      ()                               ; Nothing to do.
-    ;; Set up timer.
+  (when gnus-demon-handlers
+    ;; Set up the timer.
     (setq gnus-demon-timer
          (nnheader-run-at-time
           gnus-demon-timestep gnus-demon-timestep 'gnus-demon))
@@ -130,7 +129,8 @@ time Emacs has been idle for IDLE `gnus-demon-timestep's."
   (when gnus-demon-timer
     (nnheader-cancel-timer gnus-demon-timer))
   (setq gnus-demon-timer nil
-       gnus-use-demon nil)
+       gnus-use-demon nil
+       gnus-demon-idle-has-been-called nil)
   (condition-case ()
       (nnheader-cancel-function-timers 'gnus-demon)
     (error t)))
index dd0bce1..e0265e3 100644 (file)
@@ -118,7 +118,7 @@ seen in the same session."
     (while (setq datum (pop data))
       (when (and (not (gnus-data-pseudo-p datum))
                 (> (gnus-data-number datum) 0)
-                (gnus-data-read-p datum)
+                (not (memq (gnus-data-number datum) gnus-newsgroup-unreads))
                 (not (= (gnus-data-mark datum) gnus-canceled-mark))
                 (setq msgid (mail-header-id (gnus-data-header datum)))
                 (not (nnheader-fake-message-id-p msgid))
index 6587d90..70ba0bc 100644 (file)
@@ -1052,7 +1052,7 @@ If REGEXP, only list groups matching REGEXP."
         (gnus-tmp-moderated-string
          (if (eq gnus-tmp-moderated ?m) "(m)" ""))
         (gnus-tmp-method
-         (gnus-server-get-method gnus-tmp-group gnus-tmp-method))
+         (gnus-server-get-method gnus-tmp-group gnus-tmp-method)) ;
         (gnus-tmp-news-server (or (cadr gnus-tmp-method) ""))
         (gnus-tmp-news-method (or (car gnus-tmp-method) ""))
         (gnus-tmp-news-method-string
@@ -1198,10 +1198,7 @@ already."
     (save-excursion
       (set-buffer gnus-group-buffer)
       (let* ((gformat (or gnus-group-mode-line-format-spec
-                         (setq gnus-group-mode-line-format-spec
-                               (gnus-parse-format
-                                gnus-group-mode-line-format
-                                gnus-group-mode-line-format-alist))))
+                         (gnus-set-format 'group-mode)))
             (gnus-tmp-news-server (cadr gnus-select-method))
             (gnus-tmp-news-method (car gnus-select-method))
             (gnus-tmp-colon (if (equal gnus-tmp-news-server "") "" ":"))
@@ -1447,20 +1444,21 @@ Take into consideration N (the prefix) and the list of marked groups."
     (let ((group (gnus-group-group-name)))
       (and group (list group))))))
 
-(defun gnus-group-iterate (arg function)
+;;;!!! All the variables below should be gensymmed.
+(defun gnus-group-iterate (arg gnus-group-iterate-function)
   "Iterate FUNCTION over all process/prefixed groups.
-FUNCTION will be called with the group name as the paremeter
-and with point over the group in question."
+  FUNCTION will be called with the group name as the paremeter
+  and with point over the group in question."
   (let ((groups (gnus-group-process-prefix arg))
-       (window (selected-window))
-       group)
+       (window (selected-window))
+       group)
     (while (setq group (pop groups))
       (select-window window)
       (gnus-group-remove-mark group)
       (save-selected-window
-       (save-excursion
-         (funcall function group))))))
-
+       (save-excursion
+         (funcall function group))))))
+  
 (put 'gnus-group-iterate 'lisp-indent-function 1)
 
 ;; Selecting groups.
index b11ad1a..c4e85f1 100644 (file)
@@ -134,7 +134,10 @@ If it is down, start it up (again)."
     (error "Attempted use of a nil select method"))
   (when (stringp method)
     (setq method (gnus-server-to-method method)))
-  (let ((func (intern (format "%s-%s" (car method) function))))
+  (let ((func (intern (format "%s-%s" (if gnus-agent
+                                         (gnus-agent-get-function method)
+                                       (car method))
+                             function))))
     ;; If the functions isn't bound, we require the backend in
     ;; question.
     (unless (fboundp func)
@@ -150,11 +153,11 @@ If it is down, start it up (again)."
 ;;; Interface functions to the backends.
 ;;;
 
-(defun gnus-open-server (method)
-  "Open a connection to METHOD."
-  (when (stringp method)
-    (setq method (gnus-server-to-method method)))
-  (let ((elem (assoc method gnus-opened-servers)))
+(defun gnus-open-server (gnus-command-method)
+  "Open a connection to GNUS-COMMAND-METHOD."
+  (when (stringp gnus-command-method)
+    (setq gnus-command-method (gnus-server-to-method gnus-command-method)))
+  (let ((elem (assoc gnus-command-method gnus-opened-servers)))
     ;; If this method was previously denied, we just return nil.
     (if (eq (nth 1 elem) 'denied)
        (progn
@@ -162,137 +165,160 @@ If it is down, start it up (again)."
          nil)
       ;; Open the server.
       (let ((result
-            (funcall (gnus-get-function method 'open-server)
-                     (nth 1 method) (nthcdr 2 method))))
+            (funcall (gnus-get-function gnus-command-method 'open-server)
+                     (nth 1 gnus-command-method)
+                     (nthcdr 2 gnus-command-method))))
        ;; If this hasn't been opened before, we add it to the list.
        (unless elem
-         (setq elem (list method nil)
+         (setq elem (list gnus-command-method nil)
                gnus-opened-servers (cons elem gnus-opened-servers)))
        ;; Set the status of this server.
        (setcar (cdr elem) (if result 'ok 'denied))
        ;; Return the result from the "open" call.
        result))))
 
-(defun gnus-close-server (method)
-  "Close the connection to METHOD."
-  (when (stringp method)
-    (setq method (gnus-server-to-method method)))
-  (funcall (gnus-get-function method 'close-server) (nth 1 method)))
-
-(defun gnus-request-list (method)
-  "Request the active file from METHOD."
-  (when (stringp method)
-    (setq method (gnus-server-to-method method)))
-  (funcall (gnus-get-function method 'request-list) (nth 1 method)))
-
-(defun gnus-request-list-newsgroups (method)
-  "Request the newsgroups file from METHOD."
-  (when (stringp method)
-    (setq method (gnus-server-to-method method)))
-  (funcall (gnus-get-function method 'request-list-newsgroups) (nth 1 method)))
-
-(defun gnus-request-newgroups (date method)
-  "Request all new groups since DATE from METHOD."
-  (when (stringp method)
-    (setq method (gnus-server-to-method method)))
-  (let ((func (gnus-get-function method 'request-newgroups t)))
+(defun gnus-close-server (gnus-command-method)
+  "Close the connection to GNUS-COMMAND-METHOD."
+  (when (stringp gnus-command-method)
+    (setq gnus-command-method (gnus-server-to-method gnus-command-method)))
+  (funcall (gnus-get-function gnus-command-method 'close-server)
+          (nth 1 gnus-command-method)))
+
+(defun gnus-request-list (gnus-command-method)
+  "Request the active file from GNUS-COMMAND-METHOD."
+  (when (stringp gnus-command-method)
+    (setq gnus-command-method (gnus-server-to-method gnus-command-method)))
+  (funcall (gnus-get-function gnus-command-method 'request-list)
+          (nth 1 gnus-command-method)))
+
+(defun gnus-request-list-newsgroups (gnus-command-method)
+  "Request the newsgroups file from GNUS-COMMAND-METHOD."
+  (when (stringp gnus-command-method)
+    (setq gnus-command-method (gnus-server-to-method gnus-command-method)))
+  (funcall (gnus-get-function gnus-command-method 'request-list-newsgroups)
+          (nth 1 gnus-command-method)))
+
+(defun gnus-request-newgroups (date gnus-command-method)
+  "Request all new groups since DATE from GNUS-COMMAND-METHOD."
+  (when (stringp gnus-command-method)
+    (setq gnus-command-method (gnus-server-to-method gnus-command-method)))
+  (let ((func (gnus-get-function gnus-command-method 'request-newgroups t)))
     (when func
-      (funcall func date (nth 1 method)))))
-
-(defun gnus-server-opened (method)
-  "Check whether a connection to METHOD has been opened."
-  (when (stringp method)
-    (setq method (gnus-server-to-method method)))
-  (funcall (inline (gnus-get-function method 'server-opened)) (nth 1 method)))
-
-(defun gnus-status-message (method)
-  "Return the status message from METHOD.
-If METHOD is a string, it is interpreted as a group name.   The method
+      (funcall func date (nth 1 gnus-command-method)))))
+
+(defun gnus-server-opened (gnus-command-method)
+  "Check whether a connection to GNUS-COMMAND-METHOD has been opened."
+  (when (stringp gnus-command-method)
+    (setq gnus-command-method (gnus-server-to-method gnus-command-method)))
+  (funcall (inline (gnus-get-function gnus-command-method 'server-opened))
+          (nth 1 gnus-command-method)))
+
+(defun gnus-status-message (gnus-command-method)
+  "Return the status message from GNUS-COMMAND-METHOD.
+If GNUS-COMMAND-METHOD is a string, it is interpreted as a group name.   The method
 this group uses will be queried."
-  (let ((method (if (stringp method) (gnus-find-method-for-group method)
-                 method)))
-    (funcall (gnus-get-function method 'status-message) (nth 1 method))))
-
-(defun gnus-request-regenerate (method)
-  "Request a data generation from METHOD."
-  (when (stringp method)
-    (setq method (gnus-server-to-method method)))
-  (funcall (gnus-get-function method 'request-regenerate) (nth 1 method)))
-
-(defun gnus-request-group (group &optional dont-check method)
+  (let ((gnus-command-method
+        (if (stringp gnus-command-method)
+            (gnus-find-method-for-group gnus-command-method)
+          gnus-command-method)))
+    (funcall (gnus-get-function gnus-command-method 'status-message)
+            (nth 1 gnus-command-method))))
+
+(defun gnus-request-regenerate (gnus-command-method)
+  "Request a data generation from GNUS-COMMAND-METHOD."
+  (when (stringp gnus-command-method)
+    (setq gnus-command-method (gnus-server-to-method gnus-command-method)))
+  (funcall (gnus-get-function gnus-command-method 'request-regenerate)
+          (nth 1 gnus-command-method)))
+
+(defun gnus-request-group (group &optional dont-check gnus-command-method)
   "Request GROUP.  If DONT-CHECK, no information is required."
-  (let ((method (or method (inline (gnus-find-method-for-group group)))))
-    (when (stringp method)
-      (setq method (inline (gnus-server-to-method method))))
-    (funcall (inline (gnus-get-function method 'request-group))
-            (gnus-group-real-name group) (nth 1 method) dont-check)))
+  (let ((gnus-command-method
+        (or gnus-command-method (inline (gnus-find-method-for-group group)))))
+    (when (stringp gnus-command-method)
+      (setq gnus-command-method
+           (inline (gnus-server-to-method gnus-command-method))))
+    (funcall (inline (gnus-get-function gnus-command-method 'request-group))
+            (gnus-group-real-name group) (nth 1 gnus-command-method)
+            dont-check)))
 
 (defun gnus-list-active-group (group)
   "Request active information on GROUP."
-  (let ((method (gnus-find-method-for-group group))
+  (let ((gnus-command-method (gnus-find-method-for-group group))
        (func 'list-active-group))
     (when (gnus-check-backend-function func group)
-      (funcall (gnus-get-function method func)
-              (gnus-group-real-name group) (nth 1 method)))))
+      (funcall (gnus-get-function gnus-command-method func)
+              (gnus-group-real-name group) (nth 1 gnus-command-method)))))
 
 (defun gnus-request-group-description (group)
   "Request a description of GROUP."
-  (let ((method (gnus-find-method-for-group group))
+  (let ((gnus-command-method (gnus-find-method-for-group group))
        (func 'request-group-description))
     (when (gnus-check-backend-function func group)
-      (funcall (gnus-get-function method func)
-              (gnus-group-real-name group) (nth 1 method)))))
+      (funcall (gnus-get-function gnus-command-method func)
+              (gnus-group-real-name group) (nth 1 gnus-command-method)))))
 
 (defun gnus-close-group (group)
   "Request the GROUP be closed."
-  (let ((method (inline (gnus-find-method-for-group group))))
-    (funcall (gnus-get-function method 'close-group)
-            (gnus-group-real-name group) (nth 1 method))))
+  (let ((gnus-command-method (inline (gnus-find-method-for-group group))))
+    (funcall (gnus-get-function gnus-command-method 'close-group)
+            (gnus-group-real-name group) (nth 1 gnus-command-method))))
 
 (defun gnus-retrieve-headers (articles group &optional fetch-old)
   "Request headers for ARTICLES in GROUP.
 If FETCH-OLD, retrieve all headers (or some subset thereof) in the group."
-  (let ((method (gnus-find-method-for-group group)))
+  (let ((gnus-command-method (gnus-find-method-for-group group)))
     (if (and gnus-use-cache (numberp (car articles)))
        (gnus-cache-retrieve-headers articles group fetch-old)
-      (funcall (gnus-get-function method 'retrieve-headers)
-              articles (gnus-group-real-name group) (nth 1 method)
-              fetch-old))))
-
-(defun gnus-retrieve-groups (groups method)
-  "Request active information on GROUPS from METHOD."
-  (when (stringp method)
-    (setq method (gnus-server-to-method method)))
-  (funcall (gnus-get-function method 'retrieve-groups) groups (nth 1 method)))
+      (funcall (gnus-get-function gnus-command-method 'retrieve-headers)
+              articles (gnus-group-real-name group)
+              (nth 1 gnus-command-method) fetch-old))))
+
+(defun gnus-retrieve-articles (articles group)
+  "Request ARTICLES in GROUP."
+  (let ((gnus-command-method (gnus-find-method-for-group group)))
+    (funcall (gnus-get-function gnus-command-method 'retrieve-articles)
+            articles (gnus-group-real-name group)
+            (nth 1 gnus-command-method))))
+
+(defun gnus-retrieve-groups (groups gnus-command-method)
+  "Request active information on GROUPS from GNUS-COMMAND-METHOD."
+  (when (stringp gnus-command-method)
+    (setq gnus-command-method (gnus-server-to-method gnus-command-method)))
+  (funcall (gnus-get-function gnus-command-method 'retrieve-groups)
+          groups (nth 1 gnus-command-method)))
 
 (defun gnus-request-type (group &optional article)
   "Return the type (`post' or `mail') of GROUP (and ARTICLE)."
-  (let ((method (gnus-find-method-for-group group)))
-    (if (not (gnus-check-backend-function 'request-type (car method)))
+  (let ((gnus-command-method (gnus-find-method-for-group group)))
+    (if (not (gnus-check-backend-function
+             'request-type (car gnus-command-method)))
        'unknown
-      (funcall (gnus-get-function method 'request-type)
+      (funcall (gnus-get-function gnus-command-method 'request-type)
               (gnus-group-real-name group) article))))
 
 (defun gnus-request-update-mark (group article mark)
   "Return the type (`post' or `mail') of GROUP (and ARTICLE)."
-  (let ((method (gnus-find-method-for-group group)))
-    (if (not (gnus-check-backend-function 'request-update-mark (car method)))
+  (let ((gnus-command-method (gnus-find-method-for-group group)))
+    (if (not (gnus-check-backend-function
+             'request-update-mark (car gnus-command-method)))
        mark
-      (funcall (gnus-get-function method 'request-update-mark)
+      (funcall (gnus-get-function gnus-command-method 'request-update-mark)
               (gnus-group-real-name group) article mark))))
 
 (defun gnus-request-article (article group &optional buffer)
   "Request the ARTICLE in GROUP.
 ARTICLE can either be an article number or an article Message-ID.
 If BUFFER, insert the article in that group."
-  (let ((method (gnus-find-method-for-group group)))
-    (funcall (gnus-get-function method 'request-article)
-            article (gnus-group-real-name group) (nth 1 method) buffer)))
+  (let ((gnus-command-method (gnus-find-method-for-group group)))
+    (funcall (gnus-get-function gnus-command-method 'request-article)
+            article (gnus-group-real-name group)
+            (nth 1 gnus-command-method) buffer)))
 
 (defun gnus-request-head (article group)
   "Request the head of ARTICLE in GROUP."
-  (let* ((method (gnus-find-method-for-group group))
-        (head (gnus-get-function method 'request-head t))
+  (let* ((gnus-command-method (gnus-find-method-for-group group))
+        (head (gnus-get-function gnus-command-method 'request-head t))
         res clean-up)
     (cond
      ;; Check the cache.
@@ -304,7 +330,7 @@ If BUFFER, insert the article in that group."
      ;; Use `head' function.
      ((fboundp head)
       (setq res (funcall head article (gnus-group-real-name group)
-                        (nth 1 method))))
+                        (nth 1 gnus-command-method))))
      ;; Use `article' function.
      (t
       (setq res (gnus-request-article article group)
@@ -320,60 +346,66 @@ If BUFFER, insert the article in that group."
 
 (defun gnus-request-body (article group)
   "Request the body of ARTICLE in GROUP."
-  (let ((method (gnus-find-method-for-group group)))
-    (funcall (gnus-get-function method 'request-body)
-            article (gnus-group-real-name group) (nth 1 method))))
-
-(defun gnus-request-post (method)
-  "Post the current buffer using METHOD."
-  (when (stringp method)
-    (setq method (gnus-server-to-method method)))
-  (funcall (gnus-get-function method 'request-post) (nth 1 method)))
-
-(defun gnus-request-scan (group method)
-  "Request a SCAN being performed in GROUP from METHOD.
-If GROUP is nil, all groups on METHOD are scanned."
-  (let ((method (if group (gnus-find-method-for-group group) method))
+  (let ((gnus-command-method (gnus-find-method-for-group group)))
+    (funcall (gnus-get-function gnus-command-method 'request-body)
+            article (gnus-group-real-name group)
+            (nth 1 gnus-command-method))))
+
+(defun gnus-request-post (gnus-command-method)
+  "Post the current buffer using GNUS-COMMAND-METHOD."
+  (when (stringp gnus-command-method)
+    (setq gnus-command-method (gnus-server-to-method gnus-command-method)))
+  (funcall (gnus-get-function gnus-command-method 'request-post)
+          (nth 1 gnus-command-method)))
+
+(defun gnus-request-scan (group gnus-command-method)
+  "Request a SCAN being performed in GROUP from GNUS-COMMAND-METHOD.
+If GROUP is nil, all groups on GNUS-COMMAND-METHOD are scanned."
+  (let ((gnus-command-method
+        (if group (gnus-find-method-for-group group) gnus-command-method))
        (gnus-inhibit-demon t))
-    (funcall (gnus-get-function method 'request-scan)
-            (and group (gnus-group-real-name group)) (nth 1 method))))
-
-(defsubst gnus-request-update-info (info method)
-  "Request that METHOD update INFO."
-  (when (stringp method)
-    (setq method (gnus-server-to-method method)))
-  (when (gnus-check-backend-function 'request-update-info (car method))
-    (funcall (gnus-get-function method 'request-update-info)
+    (funcall (gnus-get-function gnus-command-method 'request-scan)
+            (and group (gnus-group-real-name group))
+            (nth 1 gnus-command-method))))
+
+(defsubst gnus-request-update-info (info gnus-command-method)
+  "Request that GNUS-COMMAND-METHOD update INFO."
+  (when (stringp gnus-command-method)
+    (setq gnus-command-method (gnus-server-to-method gnus-command-method)))
+  (when (gnus-check-backend-function
+        'request-update-info (car gnus-command-method))
+    (funcall (gnus-get-function gnus-command-method 'request-update-info)
             (gnus-group-real-name (gnus-info-group info))
-            info (nth 1 method))))
+            info (nth 1 gnus-command-method))))
 
 (defun gnus-request-expire-articles (articles group &optional force)
-  (let ((method (gnus-find-method-for-group group)))
-    (funcall (gnus-get-function method 'request-expire-articles)
-            articles (gnus-group-real-name group) (nth 1 method)
+  (let ((gnus-command-method (gnus-find-method-for-group group)))
+    (funcall (gnus-get-function gnus-command-method 'request-expire-articles)
+            articles (gnus-group-real-name group) (nth 1 gnus-command-method)
             force)))
 
 (defun gnus-request-move-article
   (article group server accept-function &optional last)
-  (let ((method (gnus-find-method-for-group group)))
-    (funcall (gnus-get-function method 'request-move-article)
+  (let ((gnus-command-method (gnus-find-method-for-group group)))
+    (funcall (gnus-get-function gnus-command-method 'request-move-article)
             article (gnus-group-real-name group)
-            (nth 1 method) accept-function last)))
+            (nth 1 gnus-command-method) accept-function last)))
 
-(defun gnus-request-accept-article (group method &optional last)
+(defun gnus-request-accept-article (group gnus-command-method &optional last)
   ;; Make sure there's a newline at the end of the article.
-  (when (stringp method)
-    (setq method (gnus-server-to-method method)))
-  (when (and (not method)
+  (when (stringp gnus-command-method)
+    (setq gnus-command-method (gnus-server-to-method gnus-command-method)))
+  (when (and (not gnus-command-method)
             (stringp group))
-    (setq method (gnus-group-name-to-method group)))
+    (setq gnus-command-method (gnus-group-name-to-method group)))
   (goto-char (point-max))
   (unless (bolp)
     (insert "\n"))
-  (let ((func (car (or method (gnus-find-method-for-group group)))))
+  (let ((func (car (or gnus-command-method
+                      (gnus-find-method-for-group group)))))
     (funcall (intern (format "%s-request-accept-article" func))
             (if (stringp group) (gnus-group-real-name group) group)
-            (cadr method)
+            (cadr gnus-command-method)
             last)))
 
 (defun gnus-request-replace-article (article group buffer)
@@ -382,53 +414,56 @@ If GROUP is nil, all groups on METHOD are scanned."
             article (gnus-group-real-name group) buffer)))
 
 (defun gnus-request-associate-buffer (group)
-  (let ((method (gnus-find-method-for-group group)))
-    (funcall (gnus-get-function method 'request-associate-buffer)
+  (let ((gnus-command-method (gnus-find-method-for-group group)))
+    (funcall (gnus-get-function gnus-command-method 'request-associate-buffer)
             (gnus-group-real-name group))))
 
 (defun gnus-request-restore-buffer (article group)
   "Request a new buffer restored to the state of ARTICLE."
-  (let ((method (gnus-find-method-for-group group)))
-    (funcall (gnus-get-function method 'request-restore-buffer)
-            article (gnus-group-real-name group) (nth 1 method))))
+  (let ((gnus-command-method (gnus-find-method-for-group group)))
+    (funcall (gnus-get-function gnus-command-method 'request-restore-buffer)
+            article (gnus-group-real-name group)
+            (nth 1 gnus-command-method))))
 
-(defun gnus-request-create-group (group &optional method args)
-  (when (stringp method)
-    (setq method (gnus-server-to-method method)))
-  (let ((method (or method (gnus-find-method-for-group group))))
-    (funcall (gnus-get-function method 'request-create-group)
-            (gnus-group-real-name group) (nth 1 method) args)))
+(defun gnus-request-create-group (group &optional gnus-command-method args)
+  (when (stringp gnus-command-method)
+    (setq gnus-command-method (gnus-server-to-method gnus-command-method)))
+  (let ((gnus-command-method
+        (or gnus-command-method (gnus-find-method-for-group group))))
+    (funcall (gnus-get-function gnus-command-method 'request-create-group)
+            (gnus-group-real-name group) (nth 1 gnus-command-method) args)))
 
 (defun gnus-request-delete-group (group &optional force)
-  (let ((method (gnus-find-method-for-group group)))
-    (funcall (gnus-get-function method 'request-delete-group)
-            (gnus-group-real-name group) force (nth 1 method))))
+  (let ((gnus-command-method (gnus-find-method-for-group group)))
+    (funcall (gnus-get-function gnus-command-method 'request-delete-group)
+            (gnus-group-real-name group) force (nth 1 gnus-command-method))))
 
 (defun gnus-request-rename-group (group new-name)
-  (let ((method (gnus-find-method-for-group group)))
-    (funcall (gnus-get-function method 'request-rename-group)
+  (let ((gnus-command-method (gnus-find-method-for-group group)))
+    (funcall (gnus-get-function gnus-command-method 'request-rename-group)
             (gnus-group-real-name group)
-            (gnus-group-real-name new-name) (nth 1 method))))
+            (gnus-group-real-name new-name) (nth 1 gnus-command-method))))
 
 (defun gnus-close-backends ()
   ;; Send a close request to all backends that support such a request.
   (let ((methods gnus-valid-select-methods)
        (gnus-inhibit-demon t)
-       func method)
-    (while (setq method (pop methods))
+       func gnus-command-method)
+    (while (setq gnus-command-method (pop methods))
       (when (fboundp (setq func (intern
-                                (concat (car method) "-request-close"))))
+                                (concat (car gnus-command-method)
+                                        "-request-close"))))
        (funcall func)))))
 
-(defun gnus-asynchronous-p (method)
-  (let ((func (gnus-get-function method 'asynchronous-p t)))
+(defun gnus-asynchronous-p (gnus-command-method)
+  (let ((func (gnus-get-function gnus-command-method 'asynchronous-p t)))
     (when (fboundp func)
       (funcall func))))
 
-(defun gnus-remove-denial (method)
-  (when (stringp method)
-    (setq method (gnus-server-to-method method)))
-  (let* ((elem (assoc method gnus-opened-servers))
+(defun gnus-remove-denial (gnus-command-method)
+  (when (stringp gnus-command-method)
+    (setq gnus-command-method (gnus-server-to-method gnus-command-method)))
+  (let* ((elem (assoc gnus-command-method gnus-opened-servers))
         (status (cadr elem)))
     ;; If this hasn't been opened before, we add it to the list.
     (when (eq status 'denied)
index 00bf6cb..cf511bb 100644 (file)
@@ -130,7 +130,7 @@ Otherwise the cache will be cleared every time you exit Gnus."
 
 (defcustom gnus-picons-piconsearch-url nil
   "*The url to query for picons.  Setting this to nil will disable it.
-The only plublicly available address currently known is
+The only publicly available address currently known is
 http://www.cs.indiana.edu:800/piconsearch.  If you know of any other,
 please tell me so that we can list it."
   :type '(choice (const :tag "Disable" :value nil)
index 1f680e2..955d203 100644 (file)
@@ -70,25 +70,24 @@ It accepts the same format specs that `gnus-summary-line-format' does."
 (unless gnus-pick-mode-map
   (setq gnus-pick-mode-map (make-sparse-keymap))
 
-  (gnus-define-keys
-   gnus-pick-mode-map
-   "t" gnus-uu-mark-thread
-   "T" gnus-uu-unmark-thread
-   " " gnus-pick-next-page
-   "u" gnus-summary-unmark-as-processable
-   "U" gnus-summary-unmark-all-processable
-   "v" gnus-uu-mark-over
-   "r" gnus-uu-mark-region
-   "R" gnus-uu-unmark-region
-   "e" gnus-uu-mark-by-regexp
-   "E" gnus-uu-mark-by-regexp
-   "b" gnus-uu-mark-buffer
-   "B" gnus-uu-unmark-buffer
-   "." gnus-pick-article
-   gnus-down-mouse-2 gnus-pick-mouse-pick-region
-   ;;gnus-mouse-2 gnus-pick-mouse-pick
-   "X" gnus-pick-start-reading
-   "\r" gnus-pick-start-reading))
+  (gnus-define-keys gnus-pick-mode-map
+    "t" gnus-uu-mark-thread
+    "T" gnus-uu-unmark-thread
+    " " gnus-pick-next-page
+    "u" gnus-summary-unmark-as-processable
+    "U" gnus-summary-unmark-all-processable
+    "v" gnus-uu-mark-over
+    "r" gnus-uu-mark-region
+    "R" gnus-uu-unmark-region
+    "e" gnus-uu-mark-by-regexp
+    "E" gnus-uu-mark-by-regexp
+    "b" gnus-uu-mark-buffer
+    "B" gnus-uu-unmark-buffer
+    "." gnus-pick-article
+    gnus-down-mouse-2 gnus-pick-mouse-pick-region
+    ;;gnus-mouse-2 gnus-pick-mouse-pick
+    "X" gnus-pick-start-reading
+    "\r" gnus-pick-start-reading))
 
 (defun gnus-pick-make-menu-bar ()
   (unless (boundp 'gnus-pick-menu)
@@ -445,12 +444,8 @@ Two predefined functions are available:
 (defun gnus-tree-mode ()
   "Major mode for displaying thread trees."
   (interactive)
-  (setq gnus-tree-mode-line-format-spec
-       (gnus-parse-format gnus-tree-mode-line-format
-                          gnus-summary-mode-line-format-alist))
-  (setq gnus-tree-line-format-spec
-       (gnus-parse-format gnus-tree-line-format
-                          gnus-tree-line-format-alist t))
+  (gnus-set-format 'tree-mode)
+  (gnus-set-format 'tree t)
   (when (gnus-visual-p 'tree-menu 'menu)
     (gnus-tree-make-menu-bar))
   (kill-all-local-variables)
index df440c9..33333b4 100644 (file)
@@ -525,6 +525,14 @@ If PROPS, insert the result."
       (gnus-dribble-enter " ")
       (gnus-message 7 "Compiling user specs...done"))))
 
+(defun gnus-set-format (type &optional insertable)
+  (set (intern (format "gnus-%s-line-format-spec" type))
+       (gnus-parse-format
+       (symbol-value (intern (format "gnus-%s-line-format" type)))
+       (symbol-value (intern (format "gnus-%s-line-format-alist" type)))
+       insertable)))
+       
+
 (provide 'gnus-spec)
 
 ;;; gnus-spec.el ends here
index 05fb4ae..d5122fe 100644 (file)
 (defconst gnus-server-line-format "     {%(%h:%w%)} %s\n"
   "Format of server lines.
 It works along the same lines as a normal formatting string,
-with some simple extensions.")
+with some simple extensions.
 
-(defvar gnus-server-mode-line-format "Gnus  List of servers"
+The following specs are understood:
+
+%h backend
+%n name
+%w address
+%s status")
+
+(defvar gnus-server-mode-line-format "Gnus: %%b"
   "The format specification for the server mode line.")
 
 (defvar gnus-server-exit-hook nil
@@ -108,28 +115,27 @@ with some simple extensions.")
   (setq gnus-server-mode-map (make-sparse-keymap))
   (suppress-keymap gnus-server-mode-map)
 
-  (gnus-define-keys
-   gnus-server-mode-map
-   " " gnus-server-read-server
-   "\r" gnus-server-read-server
-   gnus-mouse-2 gnus-server-pick-server
-   "q" gnus-server-exit
-   "l" gnus-server-list-servers
-   "k" gnus-server-kill-server
-   "y" gnus-server-yank-server
-   "c" gnus-server-copy-server
-   "a" gnus-server-add-server
-   "e" gnus-server-edit-server
-   "s" gnus-server-scan-server
-
-   "O" gnus-server-open-server
-   "\M-o" gnus-server-open-all-servers
-   "C" gnus-server-close-server
-   "\M-c" gnus-server-close-all-servers
-   "D" gnus-server-deny-server
-   "R" gnus-server-remove-denials
-
-   "g" gnus-server-regenerate-server
+  (gnus-define-keys gnus-server-mode-map
+    " " gnus-server-read-server
+    "\r" gnus-server-read-server
+    gnus-mouse-2 gnus-server-pick-server
+    "q" gnus-server-exit
+    "l" gnus-server-list-servers
+    "k" gnus-server-kill-server
+    "y" gnus-server-yank-server
+    "c" gnus-server-copy-server
+    "a" gnus-server-add-server
+    "e" gnus-server-edit-server
+    "s" gnus-server-scan-server
+
+    "O" gnus-server-open-server
+    "\M-o" gnus-server-open-all-servers
+    "C" gnus-server-close-server
+    "\M-c" gnus-server-close-all-servers
+    "D" gnus-server-deny-server
+    "R" gnus-server-remove-denials
+
+    "g" gnus-server-regenerate-server
 
     "\C-c\C-i" gnus-info-find-node
     "\C-c\C-b" gnus-bug))
@@ -195,12 +201,8 @@ The following commands are available:
        (gnus-carpal-setup-buffer 'server)))))
 
 (defun gnus-server-prepare ()
-  (setq gnus-server-mode-line-format-spec
-       (gnus-parse-format gnus-server-mode-line-format
-                          gnus-server-mode-line-format-alist))
-  (setq gnus-server-line-format-spec
-       (gnus-parse-format gnus-server-line-format
-                          gnus-server-line-format-alist t))
+  (gnus-set-format 'server-mode)
+  (gnus-set-format 'server t)
   (let ((alist gnus-server-alist)
        (buffer-read-only nil)
        (opened gnus-opened-servers)
@@ -638,7 +640,7 @@ buffer.
 (defun gnus-browse-read-group (&optional no-article)
   "Enter the group at the current line."
   (interactive)
-  (let ((group (gnus-group-real-name (gnus-browse-group-name))))
+  (let ((group (gnus-browse-group-name)))
     (unless (gnus-group-read-ephemeral-group
             group gnus-browse-current-method nil
             (cons (current-buffer) 'browse))
index ad4a437..44cac3d 100644 (file)
@@ -337,6 +337,12 @@ This hook is called after Gnus is connected to the NNTP server."
   :group 'gnus-start
   :type 'hook)
 
+(defcustom gnus-before-startup-hook nil
+  "A hook called at before startup.
+This hook is called as the first thing when Gnus is started."
+  :group 'gnus-start
+  :type 'hook)
+
 (defcustom gnus-started-hook nil
   "A hook called as the last thing after startup."
   :group 'gnus-start
@@ -642,6 +648,7 @@ prompt the user for the name of an NNTP server to use."
 
     (gnus-splash)
     (gnus-clear-system)
+    (run-hooks 'gnus-before-startup-hook)
     (nnheader-init-server-buffer)
     (setq gnus-slave slave)
     (gnus-read-init-file)
@@ -1621,9 +1628,11 @@ newsgroup."
                     1.2 "Cannot read partial active file from %s server."
                     (car method)))
                   ((eq list-type 'active)
-                   (gnus-active-to-gnus-format method gnus-active-hashtb))
+                   (gnus-active-to-gnus-format
+                    method gnus-active-hashtb nil t))
                   (t
-                   (gnus-groups-to-gnus-format method gnus-active-hashtb))))))
+                   (gnus-groups-to-gnus-format
+                    method gnus-active-hashtb t))))))
             ((null method)
              t)
             (t
@@ -1632,7 +1641,7 @@ newsgroup."
                    (gnus-error 1 "Cannot read active file from %s server"
                                (car method)))
                (gnus-message 5 mesg)
-               (gnus-active-to-gnus-format method gnus-active-hashtb)
+               (gnus-active-to-gnus-format method gnus-active-hashtb nil t)
                ;; We mark this active file as read.
                (push method gnus-have-read-active-file)
                (gnus-message 5 "%sdone" mesg))))))
@@ -1647,7 +1656,8 @@ newsgroup."
                gnus-ignored-newsgroups))
 
 ;; Read an active file and place the results in `gnus-active-hashtb'.
-(defun gnus-active-to-gnus-format (&optional method hashtb ignore-errors)
+(defun gnus-active-to-gnus-format (&optional method hashtb ignore-errors
+                                            real-active)
   (unless method
     (setq method gnus-select-method))
   (let ((cur (current-buffer))
@@ -1676,6 +1686,10 @@ newsgroup."
     (while (re-search-backward "[][';?()#]" nil t)
       (insert ?\\))
 
+    ;; Let the Gnus agent save the active file.
+    (when (and gnus-agent real-active)
+      (gnus-agent-save-active method))
+
     ;; If these are groups from a foreign select method, we insert the
     ;; group prefix in front of the group names.
     (when (not (gnus-server-equal
@@ -1724,7 +1738,7 @@ newsgroup."
        (widen)
        (forward-line 1)))))
 
-(defun gnus-groups-to-gnus-format (method &optional hashtb)
+(defun gnus-groups-to-gnus-format (method &optional hashtb real-active)
   ;; Parse a "groups" active file.
   (let ((cur (current-buffer))
        (hashtb (or hashtb
@@ -1739,6 +1753,10 @@ newsgroup."
                           (gnus-server-get-method nil gnus-select-method)))
                     (gnus-group-prefixed-name "" method))))
 
+    ;; Let the Gnus agent save the active file.
+    (when (and gnus-agent real-active)
+      (gnus-agent-save-groups method))
+    
     (goto-char (point-min))
     ;; We split this into to separate loops, one with the prefix
     ;; and one without to speed the reading up somewhat.
index 1ed7948..aaafbd2 100644 (file)
@@ -413,6 +413,16 @@ It uses the same syntax as the `gnus-split-methods' variable."
   :group 'gnus-summary-marks
   :type 'character)
 
+(defcustom gnus-undownloaded-mark ?@
+  "*Mark used for articles that weren't downloaded."
+  :group 'gnus-summary-marks
+  :type 'character)
+
+(defcustom gnus-downloadable-mark ?%
+  "*Mark used for articles that are to be downloaded."
+  :group 'gnus-summary-marks
+  :type 'character)
+
 (defcustom gnus-score-over-mark ?+
   "*Score mark used for articles with high scores."
   :group 'gnus-summary-marks
@@ -870,6 +880,12 @@ variable (string, integer, character, etc).")
 (defvar gnus-newsgroup-processable nil
   "List of articles in the current newsgroup that can be processed.")
 
+(defvar gnus-newsgroup-downloadable nil
+  "List of articles in the current newsgroup that can be processed.")
+
+(defvar gnus-newsgroup-undownloaded nil
+  "List of articles in the current newsgroup that haven't been downloaded..")
+
 (defvar gnus-newsgroup-bookmarks nil
   "List of articles in the current newsgroup that have bookmarks.")
 
@@ -909,6 +925,7 @@ variable (string, integer, character, etc).")
     gnus-newsgroup-reads gnus-newsgroup-saved
     gnus-newsgroup-replied gnus-newsgroup-expirable
     gnus-newsgroup-processable gnus-newsgroup-killed
+    gnus-newsgroup-downloadable gnus-newsgroup-undownloaded
     gnus-newsgroup-bookmarks gnus-newsgroup-dormant
     gnus-newsgroup-headers gnus-newsgroup-threads
     gnus-newsgroup-prepared gnus-summary-highlight-line-function
@@ -2153,6 +2170,8 @@ This is all marks except unread, ticked, dormant, and expirable."
 
 (defmacro gnus-article-mark (number)
   `(cond
+    ((memq ,number gnus-newsgroup-undownloaded) gnus-undownloaded-mark)
+    ((memq ,number gnus-newsgroup-downloadable) gnus-downloadable-mark)
     ((memq ,number gnus-newsgroup-unreads) gnus-unread-mark)
     ((memq ,number gnus-newsgroup-marked) gnus-ticked-mark)
     ((memq ,number gnus-newsgroup-dormant) gnus-dormant-mark)
@@ -2316,11 +2335,13 @@ This is all marks except unread, ticked, dormant, and expirable."
     (let ((gnus-replied-mark 129)
          (gnus-score-below-mark 130)
          (gnus-score-over-mark 130)
+         (gnus-download-mark 131)
          (spec gnus-summary-line-format-spec)
          thread gnus-visual pos)
       (save-excursion
        (gnus-set-work-buffer)
-       (let ((gnus-summary-line-format-spec spec))
+       (let ((gnus-summary-line-format-spec spec)
+             (gnus-newsgroup-downloadable '((0 . t))))
          (gnus-summary-insert-line
           [0 "" "" "" "" "" 0 0 ""]  0 nil 128 t nil "" nil 1)
          (goto-char (point-min))
@@ -2332,6 +2353,10 @@ This is all marks except unread, ticked, dormant, and expirable."
                pos)
          (goto-char (point-min))
          (push (cons 'score (and (search-forward "\202" nil t) (- (point) 2)))
+               pos)
+         (goto-char (point-min))
+         (push (cons 'download
+                     (and (search-forward "\203" nil t) (- (point) 2)))
                pos)))
       (setq gnus-summary-mark-positions pos))))
 
@@ -3704,6 +3729,9 @@ If READ-ALL is non-nil, all articles in the group are selected."
       ;; Removed marked articles that do not exist.
       (gnus-update-missing-marks
        (gnus-sorted-complement fetched-articles articles))
+      ;; Let the Gnus agent mark articles as read.
+      (when gnus-agent
+       (gnus-agent-get-undownloaded-list))
       ;; We might want to build some more threads first.
       (and gnus-fetch-old-headers
           (eq gnus-headers-retrieved-by 'nov)
@@ -4048,64 +4076,65 @@ The resulting hash table is returned, or nil if no Xrefs were found."
         (info (nth 2 entry))
         (active (gnus-active group))
         range)
-    ;; First peel off all illegal article numbers.
-    (when active
-      (let ((ids articles)
-           id first)
-       (while (setq id (pop ids))
-         (when (and first (> id (cdr active)))
-           ;; We'll end up in this situation in one particular
-           ;; obscure situation.  If you re-scan a group and get
-           ;; a new article that is cross-posted to a different
-           ;; group that has not been re-scanned, you might get
-           ;; crossposted article that has a higher number than
-           ;; Gnus believes possible.  So we re-activate this
-           ;; group as well.  This might mean doing the
-           ;; crossposting thingy will *increase* the number
-           ;; of articles in some groups.  Tsk, tsk.
-           (setq active (or (gnus-activate-group group) active)))
-         (when (or (> id (cdr active))
-                   (< id (car active)))
-           (setq articles (delq id articles))))))
-    (save-excursion
-      (set-buffer gnus-group-buffer)
-      (gnus-undo-register
-       `(progn
-          (gnus-info-set-marks ',info ',(gnus-info-marks info) t)
-          (gnus-info-set-read ',info ',(gnus-info-read info))
-          (gnus-get-unread-articles-in-group ',info (gnus-active ,group))
-          (gnus-group-update-group ,group t))))
-    ;; If the read list is nil, we init it.
-    (and active
-        (null (gnus-info-read info))
-        (> (car active) 1)
-        (gnus-info-set-read info (cons 1 (1- (car active)))))
-    ;; Then we add the read articles to the range.
-    (gnus-info-set-read
-     info
-     (setq range
-          (gnus-add-to-range
-           (gnus-info-read info) (setq articles (sort articles '<)))))
-    ;; Then we have to re-compute how many unread
-    ;; articles there are in this group.
-    (when active
-      (cond
-       ((not range)
-       (setq num (- (1+ (cdr active)) (car active))))
-       ((not (listp (cdr range)))
-       (setq num (- (cdr active) (- (1+ (cdr range))
-                                    (car range)))))
-       (t
-       (while range
-         (if (numberp (car range))
-             (setq num (1+ num))
-           (setq num (+ num (- (1+ (cdar range)) (caar range)))))
-         (setq range (cdr range)))
-       (setq num (- (cdr active) num))))
-      ;; Update the number of unread articles.
-      (setcar entry num)
-      ;; Update the group buffer.
-      (gnus-group-update-group group t))))
+    (when entry
+      ;; First peel off all illegal article numbers.
+      (when active
+       (let ((ids articles)
+             id first)
+         (while (setq id (pop ids))
+           (when (and first (> id (cdr active)))
+             ;; We'll end up in this situation in one particular
+             ;; obscure situation.  If you re-scan a group and get
+             ;; a new article that is cross-posted to a different
+             ;; group that has not been re-scanned, you might get
+             ;; crossposted article that has a higher number than
+             ;; Gnus believes possible.  So we re-activate this
+             ;; group as well.  This might mean doing the
+             ;; crossposting thingy will *increase* the number
+             ;; of articles in some groups.  Tsk, tsk.
+             (setq active (or (gnus-activate-group group) active)))
+           (when (or (> id (cdr active))
+                     (< id (car active)))
+             (setq articles (delq id articles))))))
+      (save-excursion
+       (set-buffer gnus-group-buffer)
+       (gnus-undo-register
+         `(progn
+            (gnus-info-set-marks ',info ',(gnus-info-marks info) t)
+            (gnus-info-set-read ',info ',(gnus-info-read info))
+            (gnus-get-unread-articles-in-group ',info (gnus-active ,group))
+            (gnus-group-update-group ,group t))))
+      ;; If the read list is nil, we init it.
+      (and active
+          (null (gnus-info-read info))
+          (> (car active) 1)
+          (gnus-info-set-read info (cons 1 (1- (car active)))))
+      ;; Then we add the read articles to the range.
+      (gnus-info-set-read
+       info
+       (setq range
+            (gnus-add-to-range
+             (gnus-info-read info) (setq articles (sort articles '<)))))
+      ;; Then we have to re-compute how many unread
+      ;; articles there are in this group.
+      (when active
+       (cond
+        ((not range)
+         (setq num (- (1+ (cdr active)) (car active))))
+        ((not (listp (cdr range)))
+         (setq num (- (cdr active) (- (1+ (cdr range))
+                                      (car range)))))
+        (t
+         (while range
+           (if (numberp (car range))
+               (setq num (1+ num))
+             (setq num (+ num (- (1+ (cdar range)) (caar range)))))
+           (setq range (cdr range)))
+         (setq num (- (cdr active) num))))
+       ;; Update the number of unread articles.
+       (setcar entry num)
+       ;; Update the group buffer.
+       (gnus-group-update-group group t)))))
 
 (defun gnus-methods-equal-p (m1 m2)
   (let ((m1 (or m1 gnus-select-method))
@@ -4745,7 +4774,7 @@ displayed, no centering will be performed."
       (push first unread)
       (setq first (1+ first)))
     ;; Return the list of unread articles.
-    (nreverse unread)))
+    (delq 0 (nreverse unread))))
 
 (defun gnus-list-of-read-articles (group)
   "Return a list of unread, unticked and non-dormant articles."
@@ -7257,8 +7286,8 @@ number of articles marked is returned."
 
 (defun gnus-summary-unmark-as-processable (n)
   "Remove the process mark from the next N articles.
-If N is negative, mark backward instead.  The difference between N and
-the actual number of articles marked is returned."
+If N is negative, unmark backward instead.  The difference between N and
+the actual number of articles unmarked is returned."
   (interactive "p")
   (gnus-set-global-variables)
   (gnus-summary-mark-as-processable n t))
index 413a43f..b802979 100644 (file)
@@ -181,10 +181,10 @@ with some simple extensions.
     (beginning-of-line)
     (get-text-property (point) 'gnus-active)))
 
-(defun gnus-topic-find-groups (topic &optional level all)
+(defun gnus-topic-find-groups (topic &optional level all lowest)
   "Return entries for all visible groups in TOPIC."
   (let ((groups (cdr (assoc topic gnus-topic-alist)))
-        info clevel unread group lowest params visible-groups entry active)
+        info clevel unread group params visible-groups entry active)
     (setq lowest (or lowest 1))
     (setq level (or level 7))
     ;; We go through the newsrc to look for matches.
@@ -371,7 +371,8 @@ If LOWEST is non-nil, list all newsgroups of level LOWEST or higher."
       (erase-buffer))
 
     ;; List dead groups?
-    (when (and (>= level gnus-level-zombie) (<= lowest gnus-level-zombie))
+    (when (and (>= level gnus-level-zombie)
+              (<= lowest gnus-level-zombie))
       (gnus-group-prepare-flat-list-dead
        (setq gnus-zombie-list (sort gnus-zombie-list 'string<))
        gnus-level-zombie ?Z
@@ -389,20 +390,23 @@ If LOWEST is non-nil, list all newsgroups of level LOWEST or higher."
          (if list-topic
              (let ((top (gnus-topic-find-topology list-topic)))
                (gnus-topic-prepare-topic (cdr top) (car top)
-                                         (or topic-level level) all))
+                                         (or topic-level level) all
+                                         nil lowest))
            (gnus-topic-prepare-topic gnus-topic-topology 0
-                                     (or topic-level level) all)))
+                                     (or topic-level level) all
+                                     nil lowest)))
 
       (gnus-group-set-mode-line)
       (setq gnus-group-list-mode (cons level all))
       (run-hooks 'gnus-group-prepare-hook))))
 
-(defun gnus-topic-prepare-topic (topicl level &optional list-level all silent)
+(defun gnus-topic-prepare-topic (topicl level &optional list-level all silent
+                                       lowest)
   "Insert TOPIC into the group buffer.
 If SILENT, don't insert anything.  Return the number of unread
 articles in the topic and its subtopics."
   (let* ((type (pop topicl))
-        (entries (gnus-topic-find-groups (car type) list-level all))
+        (entries (gnus-topic-find-groups (car type) list-level all lowest))
         (visiblep (and (eq (nth 1 type) 'visible) (not silent)))
         (gnus-group-indentation
          (make-string (* gnus-topic-indent-level level) ? ))
@@ -418,7 +422,7 @@ articles in the topic and its subtopics."
       (incf unread
            (gnus-topic-prepare-topic
             (pop topicl) (1+ level) list-level all
-            (not visiblep))))
+            (not visiblep) lowest)))
     (setq end (point))
     (goto-char beg)
     ;; Insert all the groups that belong in this topic.
@@ -943,13 +947,11 @@ articles in the topic and its subtopics."
          (if (null arg) (not gnus-topic-mode)
            (> (prefix-numeric-value arg) 0)))
     ;; Infest Gnus with topics.
-    (if (not gnus-topic-mode)
-       (setq gnus-goto-missing-group-function nil)
+     (if (not gnus-topic-mode)
+       (setq gnus-goto-missing-group-function nil)
       (when (gnus-visual-p 'topic-menu 'menu)
        (gnus-topic-make-menu-bar))
-      (setq gnus-topic-line-format-spec
-           (gnus-parse-format gnus-topic-line-format
-                              gnus-topic-line-format-alist t))
+      (gnus-set-format 'topic t)
       (gnus-add-minor-mode 'gnus-topic-mode " Topic" gnus-topic-mode-map)
       (add-hook 'gnus-summary-exit-hook 'gnus-topic-update-topic)
       (add-hook 'gnus-group-catchup-group-hook 'gnus-topic-update-topic)
index 3d75515..6ce52ae 100644 (file)
@@ -381,7 +381,7 @@ Cache the result as a text property stored in DATE."
 (defun gnus-date-iso8601 (header)
   "Convert the date field in HEADER to YYMMDDTHHMMSS"
   (condition-case ()
-      (gnus-time-iso8601 (gnus-date-get-time (mail-header-date header)))
+      (gnus-time-iso8601 (gnus-date-get-time header))
     (error "")))
 
 (defun gnus-mode-string-quote (string)
index 59a80e9..87d7bb1 100644 (file)
      (vertical 1.0
               (summary 0.5 point)
               ("*Score Words*" 1.0)))
+    (category
+     (vertical 1.0
+              (category 1.0)))
     (compose-bounce
      (vertical 1.0
               (article 0.5)
@@ -186,6 +189,7 @@ See the Gnus manual for an explanation of the syntax used.")
     (tree . gnus-tree-buffer)
     (score-trace . "*Score Trace*")
     (info . gnus-info-buffer)
+    (category . gnus-category-buffer)
     (article-copy . gnus-article-copy)
     (draft . gnus-draft-buffer))
   "Mapping from short symbols to buffer names or buffer variables.")
index 11a992f..6d70110 100644 (file)
@@ -56,7 +56,7 @@ automatically."
     (september "#bf9900" "#ffcc00"))
   "Color alist used for the Gnus logo.")
 
-(defcustom gnus-xmas-logo-color-style 'flame
+(defcustom gnus-xmas-logo-color-style 'moss
   "Color styles used for the Gnus logo."
   :type '(choice (const flame) (const pine) (const moss)
                 (const irish) (const sky) (const tin)
index 5c8244c..d0905fa 100644 (file)
   :group 'gnus
   :group 'faces)
 
+(defgroup gnus-agent nil
+  "Offline support for Gnus."
+  :group 'gnus)
+
 (defgroup gnus-files nil
   "Files used by Gnus."
   :group 'gnus)
@@ -240,10 +244,10 @@ is restarted, and sometimes reloaded."
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "5.4.67"
+(defconst gnus-version-number  "0.1"
   "Version number for this version of Gnus.")
 
-(defconst gnus-version (format "Gnus v%s" gnus-version-number)
+(defconst gnus-version (format "Quassia Gnus v%s" gnus-version-number)
   "Version string for this version of Gnus.")
 
 (defcustom gnus-inhibit-startup-message nil
@@ -636,10 +640,10 @@ be set in `.emacs' instead."
 (defface gnus-splash-face
   '((((class color)
       (background dark))
-     (:foreground "red"))
+     (:foreground "green"))
     (((class color)
       (background light))
-     (:foreground "red"))
+     (:foreground "green"))
     (t
      ()))
   "Level 1 newsgroup face.")
@@ -1155,7 +1159,8 @@ slower."
     ("nndraft" post-mail)
     ("nnfolder" mail respool address)
     ("nngateway" none address prompt-address physical-address)
-    ("nnweb" none))
+    ("nnweb" none)
+    ("nnagent" post-mail))
   "An alist of valid select methods.
 The first element of each list lists should be a string with the name
 of the select method.  The other elements may be the category of
@@ -1397,6 +1402,12 @@ want."
 (defvar gnus-original-article-buffer " *Original Article*")
 (defvar gnus-newsgroup-name nil)
 
+(defvar gnus-agent nil
+  "Whether we want to use the Gnus agent or not.")
+
+(defvar gnus-command-method nil
+  "Dynamically bound variable that says what the current backend is.")
+
 (defvar gnus-current-select-method nil
   "The current method for selecting a newsgroup.")
 
@@ -1434,7 +1445,7 @@ want."
     (expirable . expire) (killed . killed)
     (bookmarks . bookmark) (dormant . dormant)
     (scored . score) (saved . save)
-    (cached . cache)))
+    (cached . cache) (downloadable . download)))
 
 (defvar gnus-headers-retrieved-by nil)
 (defvar gnus-article-reply nil)
@@ -1576,7 +1587,8 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.")
       gnus-tree-open gnus-tree-close gnus-carpal-setup-buffer)
      ("gnus-nocem" gnus-nocem-scan-groups gnus-nocem-close
       gnus-nocem-unwanted-article-p)
-     ("gnus-srvr" gnus-enter-server-buffer gnus-server-set-info)
+     ("gnus-srvr" gnus-enter-server-buffer gnus-server-set-info
+      gnus-server-server-name)
      ("gnus-srvr" gnus-browse-foreign-server)
      ("gnus-cite" :interactive t
       gnus-article-highlight-citation gnus-article-hide-citation-maybe
@@ -1683,6 +1695,10 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.")
      ("gnus-async" gnus-async-request-fetched-article gnus-async-prefetch-next
       gnus-async-prefetch-article gnus-async-prefetch-remove-group
       gnus-async-halt-prefetch)
+     ("gnus-agent" gnus-open-agent gnus-agent-get-function
+      gnus-agent-save-groups gnus-agent-save-active)
+     ("gnus-agent" :interactive t
+      gnus-unplugged)
      ("gnus-vm" :interactive t gnus-summary-save-in-vm
       gnus-summary-save-article-vm))))
 
@@ -1725,6 +1741,7 @@ with some simple extensions.
 %l   GroupLens score (string).
 %V   Total thread score (number).
 %P   The line number (number).
+%O   Download mark (character).
 %u   User defined specifier.  The next character in the format string should
      be a letter.  Gnus will call the function gnus-user-format-function-X,
      where X is the letter following %u.  The function will be passed the
@@ -2246,6 +2263,15 @@ You should probably use `gnus-find-method-for-group' instead."
       (setq methods (cdr methods)))
     methods))
 
+(defun gnus-groups-from-server (server)
+  "Return a list of all groups that are fetched from SERVER."
+  (let ((alist (cdr gnus-newsrc-alist))
+       info groups)
+    (while (setq info (pop alist))
+      (when (gnus-server-equal (gnus-info-method info) server)
+       (push (gnus-info-group info) groups)))
+    (sort groups 'string<)))
+
 (defun gnus-group-foreign-p (group)
   "Say whether a group is foreign or not."
   (and (not (gnus-group-native-p group))
diff --git a/lisp/nnagent.el b/lisp/nnagent.el
new file mode 100644 (file)
index 0000000..b5d967f
--- /dev/null
@@ -0,0 +1,116 @@
+;;; nnagent.el --- offline backend for Gnus
+;; Copyright (C) 1997 Free Software Foundation, Inc.
+
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+;; Keywords: news, mail
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;;; Code:
+
+(require 'nnheader)
+(require 'nnoo)
+(require 'cl)
+(require 'gnus-agent)
+(require 'nnml)
+
+(nnoo-declare nnagent
+  nnml)
+
+\f
+
+(defconst nnagent-version "nnagent 1.0")
+
+(defvoo nnagent-directory nil
+  "Internal variable."
+  nnml-directory)
+
+(defvoo nnagent-active-file nil
+  "Internal variable."
+  nnml-active-file)
+
+(defvoo nnagent-newsgroups-file nil
+  "Internal variable."
+  nnml-newsgroups-file)
+
+(defvoo nnagent-get-new-mail nil
+  "Internal variable."
+  nnml-get-new-mail)
+
+;;; Interface functions.
+
+(nnoo-define-basics nnagent)
+
+(deffoo nnagent-open-server (server &optional defs)
+  (setq defs
+       `((nnagent-directory ,(gnus-agent-directory))
+         (nnagent-active-file ,(gnus-agent-lib-file "active"))
+         (nnagent-newsgroups-file ,(gnus-agent-lib-file "newsgroups"))
+         (nnagent-get-new-mail nil)))
+  (nnoo-change-server 'nnagent server defs)
+  (let ((dir (gnus-agent-directory))
+       err)
+    (cond
+     ((not (condition-case arg
+              (file-exists-p dir)
+            (ftp-error (setq err (format "%s" arg)))))
+      (nnagent-close-server)
+      (nnheader-report
+       'nnagent (or err "No such file or directory: %s" dir)))
+     ((not (file-directory-p (file-truename dir)))
+      (nnagent-close-server)
+      (nnheader-report 'nnagent "Not a directory: %s" dir))
+     (t
+      (nnheader-report 'nnagent "Opened server %s using directory %s"
+                      server dir)
+      t))))
+
+(deffoo nnagent-retrieve-groups (groups &optional server)
+  (save-excursion
+    (cond
+     ((file-exists-p (gnus-agent-lib-file "groups"))
+      (nnmail-find-file (gnus-agent-lib-file "groups"))
+      'groups)
+     ((file-exists-p (gnus-agent-lib-file "active"))
+      (nnmail-find-file (gnus-agent-lib-file "active"))
+      'active)
+     (t nil))))
+
+(defun nnagent-request-type (group article)
+  (let ((gnus-plugged t))
+    (if (not (gnus-check-backend-function
+             'request-type (car gnus-command-method)))
+       'unknown
+      (funcall (gnus-get-function gnus-command-method 'request-type)
+              (gnus-group-real-name group) article))))
+
+(deffoo nnagent-request-newgroups (date server)
+  nil)
+
+;; Use nnml functions for just about everything.
+(nnoo-import nnagent
+  (nnml))
+
+\f
+;;; Internal functions.
+
+(provide 'nnagent)
+
+;;; nnagent.el ends here
index 448fb82..5853aef 100644 (file)
@@ -341,7 +341,10 @@ the line could be found."
              (eobp))
          (setq found t)
        (setq prev (point))
-       (cond ((> (setq num (read cur)) article)
+       (while (and (not (numberp (setq num (read cur))))
+                   (not (eobp)))
+         (gnus-delete-line))
+       (cond ((> num article)
               (setq max (point)))
              ((< num article)
               (setq min (point)))
index 971d74a..2d8de2e 100644 (file)
@@ -283,7 +283,8 @@ Finds out what articles are to be part of the nnkiboze groups."
                                           (car ginfo)))
                                  0))
                           (progn
-                            (gnus-group-select-group nil)
+                            (ignore-errors 
+                              (gnus-group-select-group nil))
                             (eq major-mode 'gnus-summary-mode)))
                  ;; We are now in the group where we want to be.
                  (setq method (gnus-find-method-for-group
index 3cfd12b..7a0773e 100644 (file)
@@ -264,10 +264,10 @@ all.  This may very well take some time.")
 (deffoo nnml-request-expire-articles (articles group
                                               &optional server force)
   (nnml-possibly-change-directory group server)
-  (let* ((active-articles
-         (nnheader-directory-articles nnml-current-directory))
-        (is-old t)
-        article rest mod-time number)
+  (let ((active-articles
+        (nnheader-directory-articles nnml-current-directory))
+       (is-old t)
+       article rest mod-time number)
     (nnmail-activate 'nnml)
 
     (while (and articles is-old)
index d2f271f..251fdc9 100644 (file)
        (pop functions)))))
 
 (defun nnoo-parent-function (backend function args)
-  (let* ((pbackend (nnoo-backend function)))
+  (let ((pbackend (nnoo-backend function)))
     (nnoo-change-server pbackend (nnoo-current-server backend)
                        (cdr (assq pbackend (nnoo-parents backend))))
     (apply function args)))
 
 (defun nnoo-execute (backend function &rest args)
   "Execute FUNCTION on behalf of BACKEND."
-  (let* ((pbackend (nnoo-backend function)))
+  (let ((pbackend (nnoo-backend function)))
     (nnoo-change-server pbackend (nnoo-current-server backend)
                        (cdr (assq pbackend (nnoo-parents backend))))
     (apply function args)))
index 0cca4cc..6be9b15 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nntp.el --- nntp access for Gnus
-;;; Copyright (C) 1987,88,89,90,92,93,94,95,96,97 Free Software Foundation, Inc.
+;;; Copyright (C) 1987-90,92-97 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
@@ -339,6 +339,20 @@ server there that you can connect to.  See also `nntp-open-connection-function'"
 
 (nnoo-define-basics nntp)
 
+(defsubst nntp-next-result-arrived-p ()
+  (let ((point (point)))
+    (cond
+     ((eq (following-char) ?2)
+      (if (re-search-forward "\n\\.\r?\n" nil t)
+         t
+       (goto-char point)
+       nil))
+     ((looking-at "[34]")
+      (forward-line 1)
+      t)
+     (t
+      nil))))
+
 (deffoo nntp-retrieve-headers (articles &optional group server fetch-old)
   "Retrieve the headers of ARTICLES."
   (nntp-possibly-change-group group server)
@@ -358,48 +372,37 @@ server there that you can connect to.  See also `nntp-open-connection-function'"
            (last-point (point-min))
            (buf (nntp-find-connection-buffer nntp-server-buffer))
            (nntp-inhibit-erase t))
-       ;; Send HEAD command.
-       (while articles
-         (nntp-send-command
-          nil
-          "HEAD" (if (numberp (car articles))
-                     (int-to-string (car articles))
-                   ;; `articles' is either a list of article numbers
-                   ;; or a list of article IDs.
-                   (car articles)))
-         (setq articles (cdr articles)
-               count (1+ count))
-         ;; Every 400 header requests we have to read the stream in
-         ;; order to avoid deadlocks.
-         (when (or (null articles)     ;All requests have been sent.
-                   (zerop (% count nntp-maximum-request)))
-           (nntp-accept-response)
-           (while (progn
-                    (progn
-                      (set-buffer buf)
-                      (goto-char last-point))
-                    ;; Count replies.
-                    (while (re-search-forward "^[0-9]" nil t)
-                      (incf received))
-                    (setq last-point (point))
-                    (< received count))
-             ;; If number of headers is greater than 100, give
-             ;;  informative messages.
-             (and (numberp nntp-large-newsgroup)
-                  (> number nntp-large-newsgroup)
-                  (zerop (% received 20))
-                  (nnheader-message 6 "NNTP: Receiving headers... %d%%"
-                                    (/ (* received 100) number)))
-             (nntp-accept-response))))
-       ;; Wait for text of last command.
-       (goto-char (point-max))
-       (re-search-backward "^[0-9]" nil t)
-       (when (looking-at "^[23]")
+       ;; Send HEAD commands.
+      (while (setq article (pop articles))
+       (nntp-send-command
+        nil
+        "HEAD" (if (numberp article)
+                   (int-to-string article)
+                 ;; `articles' is either a list of article numbers
+                 ;; or a list of article IDs.
+                 article))
+       (incf count)
+       ;; Every 400 requests we have to read the stream in
+       ;; order to avoid deadlocks.
+       (when (or (null articles)       ;All requests have been sent.
+                 (zerop (% count nntp-maximum-request)))
+         (nntp-accept-response)
          (while (progn
-                  (goto-char (point-max))
-                  (forward-line -1)
-                  (not (looking-at "^\\.\r?\n")))
-           (nntp-accept-response)))
+                  (set-buffer buf)
+                  (goto-char last-point)
+                  ;; Count replies.
+                  (while (nntp-next-result-arrived-p)
+                    (setq last-point (point))
+                    (incf received))
+                  (< received count))
+           ;; If number of headers is greater than 100, give
+           ;;  informative messages.
+           (and (numberp nntp-large-newsgroup)
+                (> number nntp-large-newsgroup)
+                (zerop (% received 20))
+                (nnheader-message 6 "NNTP: Receiving headers... %d%%"
+                                  (/ (* received 100) number)))
+           (nntp-accept-response))))
        (and (numberp nntp-large-newsgroup)
             (> number nntp-large-newsgroup)
             (nnheader-message 6 "NNTP: Receiving headers...done"))
@@ -487,7 +490,7 @@ server there that you can connect to.  See also `nntp-open-connection-function'"
          article alist)
       (set-buffer buf)
       (erase-buffer)
-      ;; Send HEAD command.
+      ;; Send ARTICLE command.
       (while (setq article (pop articles))
        (nntp-send-command
         nil
@@ -503,14 +506,13 @@ server there that you can connect to.  See also `nntp-open-connection-function'"
                  (zerop (% count nntp-maximum-request)))
          (nntp-accept-response)
          (while (progn
-                  (progn
-                    (set-buffer buf)
-                    (goto-char last-point))
+                  (set-buffer buf)
+                  (goto-char last-point)
                   ;; Count replies.
                   (while (nntp-next-result-arrived-p)
                     (aset map received (cons (aref map received) (point)))
+                    (setq last-point (point))
                     (incf received))
-                  (setq last-point (point))
                   (< received count))
            ;; If number of headers is greater than 100, give
            ;;  informative messages.
@@ -522,12 +524,13 @@ server there that you can connect to.  See also `nntp-open-connection-function'"
            (nntp-accept-response))))
       (and (numberp nntp-large-newsgroup)
           (> number nntp-large-newsgroup)
-          (nnheader-message 6 "NNTP: Receiving headers...done"))
-
+          (nnheader-message 6 "NNTP: Receiving articles...done"))
+      
       ;; Now we have all the responses.  We go through the results,
       ;; washes it and copies it over to the server buffer.
       (set-buffer nntp-server-buffer)
       (erase-buffer)
+      (setq last-point (point-min))
       (mapcar
        (lambda (entry)
         (narrow-to-region
@@ -535,25 +538,12 @@ server there that you can connect to.  See also `nntp-open-connection-function'"
          (progn
            (insert-buffer-substring buf last-point (cdr entry))
            (point-max)))
+        (setq last-point (cdr entry))
         (nntp-decode-text)
         (widen)
         (cons (car entry) point))
        map))))
 
-(defun nntp-next-result-arrived-p ()
-  (let ((point (point)))
-    (cond
-     ((looking-at "2")
-      (if (re-search-forward "\n.\r?\n" nil t)
-         t
-       (goto-char point)
-       nil))
-     ((looking-at "[34]")
-      (forward-line 1)
-      t)
-     (t
-      nil))))
-
 (defun nntp-try-list-active (group)
   (nntp-list-active-group group)
   (save-excursion
@@ -634,7 +624,8 @@ server there that you can connect to.  See also `nntp-open-connection-function'"
     (while (setq process (car (pop nntp-connection-alist)))
       (when (memq (process-status process) '(open run))
        (set-process-sentinel process nil)
-       (nntp-send-string process "QUIT"))
+       (ignore-errors
+         (nntp-send-string process "QUIT")))
       (when (buffer-name (process-buffer process))
        (kill-buffer (process-buffer process))))
     (nnoo-close-server 'nntp)))
index aece741..8682d26 100644 (file)
@@ -560,27 +560,28 @@ If UPDATE-P is not nil, call gnus-group-update-group on the components."
 
 (defun nnvirtual-reverse-map-article (group article)
   "Return the virtual article number corresponding to the given component GROUP and ARTICLE."
-  (let ((table nnvirtual-mapping-table)
-       (group-pos 0)
-       entry)
-    (while (not (string= group (car (aref nnvirtual-mapping-offsets
+  (when (numberp article)
+    (let ((table nnvirtual-mapping-table)
+         (group-pos 0)
+         entry)
+      (while (not (string= group (car (aref nnvirtual-mapping-offsets
+                                           group-pos))))
+       (setq group-pos (1+ group-pos)))
+      (setq article (- article (cdr (aref nnvirtual-mapping-offsets
                                          group-pos))))
-      (setq group-pos (1+ group-pos)))
-    (setq article (- article (cdr (aref nnvirtual-mapping-offsets
-                                       group-pos))))
-    (while (and table
-               (> article (aref (car table) 0)))
-      (setq table (cdr table)))
-    (setq entry (car table))
-    (when (and entry
-              (> article 0)
-              (< group-pos (aref entry 2))) ; article not out of range below
-      (+ (aref entry 4)
-        group-pos
-        (* (- article (aref entry 1))
-           (aref entry 2))
-        1))
-    ))
+      (while (and table
+                 (> article (aref (car table) 0)))
+       (setq table (cdr table)))
+      (setq entry (car table))
+      (when (and entry
+                (> article 0)
+                (< group-pos (aref entry 2))) ; article not out of range below
+       (+ (aref entry 4)
+          group-pos
+          (* (- article (aref entry 1))
+             (aref entry 2))
+          1))
+      )))
 
 
 (defsubst nnvirtual-reverse-map-sequence (group articles)
index 8264e71..793a45b 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Gnus 5.4.67 Manual
+@settitle Quassia Gnus 0.1 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -309,7 +309,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Gnus 5.4.67 Manual
+@title Quassia Gnus 0.1 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -345,7 +345,7 @@ can be gotten by any nefarious means you can think of---@sc{nntp}, local
 spool or your mbox file.  All at the same time, if you want to push your
 luck.
 
-This manual corresponds to Gnus 5.4.67.
+This manual corresponds to Quassia Gnus 0.1.
 
 @end ifinfo
 
@@ -984,13 +984,17 @@ A hook run while Gnus is being loaded.  Note that this hook will
 normally be run just once in each Emacs session, no matter how many
 times you start Gnus.
 
+@item gnus-before-startup-hook
+@vindex gnus-before-startup-hook
+A hook run after starting up Gnus successfully.
+
 @item gnus-startup-hook
 @vindex gnus-startup-hook
-A hook run after starting up Gnus successfully.
+A hook run as the very last thing after starting up Gnus
 
 @item gnus-started-hook
 @vindex gnus-started-hook
-A hook run as the very last thing after starting up Gnus
+A hook that is run as the very last thing after starting up Gnus
 successfully.
 
 @item gnus-check-bogus-newsgroups
@@ -1629,7 +1633,7 @@ Two closely related variables are @code{gnus-level-default-subscribed}
 (default 3) and @code{gnus-level-default-unsubscribed} (default 6),
 which are the levels that new groups will be put on if they are
 (un)subscribed.  These two variables should, of course, be inside the
-relevant legal ranges.
+relevant valid ranges.
 
 @vindex gnus-keep-same-level
 If @code{gnus-keep-same-level} is non-@code{nil}, some movement commands
@@ -1776,7 +1780,7 @@ to subscribe to @sc{nntp} groups, @pxref{Browse Foreign Server}.
 @findex gnus-group-rename-group
 @cindex renaming groups
 Rename the current group to something else
-(@code{gnus-group-rename-group}).  This is legal only on some
+(@code{gnus-group-rename-group}).  This is valid only on some
 groups---mail groups mostly.  This command might very well be quite slow
 on some backends.
 
@@ -1871,7 +1875,7 @@ this command without a prefix, Gnus will guess at the file type.
 Make an ephemeral group based on a web search
 (@code{gnus-group-make-web-group}).  If you give a prefix to this
 command, make a solid group instead.  You will be prompted for the
-search engine type and the search string.  Legal search engine types
+search engine type and the search string.  Valid search engine types
 include @code{dejanews}, @code{altavista} and @code{reference}.
 @xref{Web Searches}.
 
@@ -2004,14 +2008,14 @@ the symbols @code{never} or @code{immediate}.
 @item score-file
 @cindex score file group parameter
 Elements that look like @code{(score-file . "file")} will make
-@file{file} into the current score file for the group in question.  This
-means that all score commands you issue will end up in that file. 
+@file{file} into the current adaptive score file for the group in
+question.  All adaptive score entries will be put into this file.
 
 @item adapt-file
 @cindex adapt file group parameter
 Elements that look like @code{(adapt-file . "file")} will make
-@file{file} into the current adaptive score file for the group in
-question.  All adaptive score entries will be put into this file.
+@file{file} into the current adaptive file for the group in question.
+All adaptive score entries will be put into this file.
 
 @item admin-address
 When unsubscribing from a mailing list you should never send the
@@ -2021,7 +2025,7 @@ put the admin address somewhere convenient.
 
 @item display
 Elements that look like @code{(display . MODE)} say which articles to
-display on entering the group.  Legal values are:
+display on entering the group.  Valid values are:
 
 @table @code
 @item all
@@ -2524,7 +2528,7 @@ really neat, I think.
 @vindex gnus-topic-line-format
 The topic lines themselves are created according to the
 @code{gnus-topic-line-format} variable (@pxref{Formatting Variables}).
-Legal elements are:
+Valid elements are:
 
 @table @samp
 @item i
@@ -2781,7 +2785,7 @@ allowed---@code{visible} and @code{invisible}.
 @cindex topic parameters
 
 All groups in a topic will inherit group parameters from the parent (and
-ancestor) topic parameters.  All legal group parameters are legal topic
+ancestor) topic parameters.  All valid group parameters are valid topic
 parameters (@pxref{Group Parameters}).  
 
 Group parameters (of course) override topic parameters, and topic
@@ -3233,6 +3237,8 @@ An @samp{=} (@code{gnus-not-empty-thread-mark}) will be displayed if the
 article has any children.
 @item P
 The line number.
+@item O
+Download mark.
 @item u
 User defined specifier.  The next character in the format string should
 be a letter.  Gnus will call the function
@@ -3245,7 +3251,7 @@ into the summary just like information from any other summary specifier.
 The @samp{%U} (status), @samp{%R} (replied) and @samp{%z} (zcore) specs
 have to be handled with care.  For reasons of efficiency, Gnus will
 compute what column these characters will end up in, and ``hard-code''
-that.  This means that it is illegal to have these specs after a
+that.  This means that it is invalid to have these specs after a
 variable-length spec.  Well, you might not be arrested, but your summary
 buffer will look strange, which is bad enough.
 
@@ -3518,8 +3524,8 @@ Go to the article with the highest score
 @findex gnus-summary-goto-last-article
 Go to the previous article read (@code{gnus-summary-goto-last-article}).
 
-@item G p
-@kindex G p (Summary)
+@item G o
+@kindex G o (Summary)
 @findex gnus-summary-pop-article
 Pop an article off the summary history and go to this article
 (@code{gnus-summary-pop-article}).  This command differs from the
@@ -5388,6 +5394,7 @@ encoded in some way or other.  Gnus can decode them for you.
 * Uuencoded Articles::    Uudecode articles.
 * Shared Articles::       Unshar articles.
 * PostScript Files::      Split PostScript.
+* Other Files::           Plain save and binhex.
 * Decoding Variables::    Variables for a happy decoding.
 * Viewing Files::         You want to look at the result of the decoding?
 @end menu
@@ -5439,7 +5446,8 @@ Uudecodes and views the current series (@code{gnus-uu-decode-uu-view}).
 @kindex X v U (Summary)
 @findex gnus-uu-decode-uu-and-save-view
 Uudecodes, views and saves the current series
-(@code{gnus-uu-decode-uu-and-save-view}). 
+(@code{gnus-uu-decode-uu-and-save-view}).
+
 @end table
 
 Remember that these all react to the presence of articles marked with
@@ -5524,6 +5532,24 @@ View and save the current PostScript series
 @end table
 
 
+@node Other Files
+@subsection Other Files
+
+@table @kbd
+@item X o
+@kindex X o (Summary)
+@findex gnus-uu-decode-save
+Save the current series
+(@code{gnus-uu-decode-save}).
+
+@item X b
+@kindex X b (Summary)
+@findex gnus-uu-decode-binhex
+Unbinhex the current series (@code{gnus-uu-decode-binhex}).  This
+doesn't really work yet.
+@end table
+
+
 @node Decoding Variables
 @subsection Decoding Variables
 
@@ -5993,7 +6019,7 @@ is hidden.
 Gnus adds buttons to show where the cited text has been hidden, and to
 allow toggle hiding the text.  The format of the variable is specified
 by this format-like variable (@pxref{Formatting Variables}).  These
-specs are legal:
+specs are valid:
 
 @table @samp
 @item b
@@ -6653,7 +6679,7 @@ A hook called in all tree mode buffers.
 @item gnus-tree-mode-line-format
 @vindex gnus-tree-mode-line-format
 A format string for the mode bar in the tree mode buffers.  The default
-is @samp{Gnus: %%b [%A] %Z}.  For a list of legal specs, @pxref{Summary
+is @samp{Gnus: %%b [%A] %Z}.  For a list of valid specs, @pxref{Summary
 Buffer Mode Line}. 
 
 @item gnus-selected-tree-face
@@ -6669,7 +6695,7 @@ is @samp{%(%[%3,3n%]%)}, which displays the first three characters of
 the name of the poster.  It is vital that all nodes are of the same
 length, so you @emph{must} use @samp{%4,4n}-like specifiers.
 
-Legal specs are:
+Valid specs are:
 
 @table @samp
 @item n
@@ -6777,7 +6803,7 @@ following to your @file{.gnus.el} file:
 @cindex mail group commands
 
 Some commands only make sense in mail groups.  If these commands are
-illegal in the current group, they will raise hell and let you know.
+invalid in the current group, they will raise a hell and let you know.
 
 All these commands (except the expiry and edit commands) use the
 process/prefix convention (@pxref{Process/Prefix}).
@@ -10014,7 +10040,7 @@ This should be one of @code{mbox}, @code{babyl}, @code{digest},
 @item nndoc-post-type
 @vindex nndoc-post-type
 This variable says whether Gnus is to consider the group a news group or
-a mail group.  There are two legal values:  @code{mail} (the default)
+a mail group.  There are two valid values:  @code{mail} (the default)
 and @code{news}.
 @end table
 
@@ -10142,7 +10168,7 @@ is of @code{mmdf} type, and so on.  These type predicates should return
 @code{nil} if the document is not of the correct type; @code{t} if it is
 of the correct type; and a number if the document might be of the
 correct type.  A high number means high probability; a low number means
-low probability with @samp{0} being the lowest legal number.
+low probability with @samp{0} being the lowest valid number.
 
 
 @node SOUP
@@ -10883,7 +10909,7 @@ Score on the head.
 @end table
 
 @item
-The third key is the match type.  Which match types are legal depends on
+The third key is the match type.  Which match types are valid depends on
 what headers you are scoring on.
 
 @table @code
@@ -11165,7 +11191,7 @@ approach, see @pxref{Advanced Scoring}.
 
 Even though this looks much like lisp code, nothing here is actually
 @code{eval}ed.  The lisp reader is used to read this form, though, so it
-has to be legal syntactically, if not semantically.
+has to be valid syntactically, if not semantically.
 
 Six keys are supported by this alist:
 
@@ -12098,7 +12124,7 @@ In either case, GroupLens gives you a few choices for how you would like
 to see your predictions displayed.  The display of predictions is
 controlled by the @code{grouplens-prediction-display} variable.
 
-The following are legal values for that variable.
+The following are valid values for that variable.
 
 @table @code
 @item prediction-spot
@@ -12551,7 +12577,7 @@ Padding, limiting, cutting off parts and suppressing certain values can
 be achieved by using @dfn{tilde modifiers}.  A typical tilde spec might
 look like @samp{%~(cut 3)~(ignore "0")y}.
 
-These are the legal modifiers:
+These are the valid modifiers:
 
 @table @code
 @item pad
@@ -12759,7 +12785,7 @@ For each split, there @emph{must} be one element that has the 100% tag.
 The splitting is never accurate, and this buffer will eat any leftover
 lines from the splits.
 
-To be slightly more formal, here's a definition of what a legal split
+To be slightly more formal, here's a definition of what a valid split
 may look like:
 
 @example
@@ -12972,7 +12998,7 @@ colors or fonts.  This will also inhibit loading the @file{gnus-vis.el}
 file.
 
 This variable can be a list of visual properties that are enabled.  The
-following elements are legal, and are all included by default:
+following elements are valid, and are all included by default:
 
 @table @code
 @item group-highlight
@@ -13621,7 +13647,6 @@ The name of the buffer that @code{picons} points to.  Defaults to
 
 @end table
 
-
 @node Smileys
 @subsection Smileys
 @cindex smileys
@@ -13766,6 +13791,8 @@ default.
 @end table
 
 
+
+
 @node Fuzzy Matching
 @section Fuzzy Matching
 @cindex fuzzy matching
@@ -13813,7 +13840,7 @@ This is annoying.
 The way to deal with this is having Gnus split out all spam into a
 @samp{spam} mail group (@pxref{Splitting Mail}).
 
-First, pick one (1) legal mail address that you can be reached at, and
+First, pick one (1) valid mail address that you can be reached at, and
 put it in your @code{From} header of all your news articles.  (I've
 chosen @samp{larsi@@trym.ifi.uio.no}, but for many addresses on the form
 @samp{larsi+usenet@@ifi.uio.no} will be a better choice.  Ask your
@@ -13934,10 +13961,10 @@ read when doing the operation described above.
 @item nnheader-file-name-translation-alist 
 @vindex nnheader-file-name-translation-alist 
 @cindex file names
-@cindex illegal characters in file names
+@cindex invalid characters in file names
 @cindex characters in file names
 This is an alist that says how to translate characters in file names.
-For instance, if @samp{:} is illegal as a file character in file names
+For instance, if @samp{:} is invalid as a file character in file names
 on your system (you OS/2 user you), you could say something like:
 
 @lisp
@@ -15191,7 +15218,7 @@ A machine one can connect to and get news (or mail) from.
 @item select method
 @cindex select method
 A structure that specifies the backend, the server and the virtual
-server parameters.
+server settings.
 
 @item virtual server
 @cindex virtual server
@@ -16478,7 +16505,7 @@ are equal.  In fact, any non-descending list is a range:
 @end example
 
 is a perfectly valid range, although a pretty long-winded one.  This is
-also legal:
+also valid:
 
 @example
 (1 . 5)
index 73c8ed1..2f5a127 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message
-@settitle Message 5.4.67 Manual
+@settitle Message 0.1 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -39,7 +39,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Message 5.4.67 Manual
+@title Message 0.1 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -79,7 +79,7 @@ buffers.
 * Key Index::         List of Message mode keys.
 @end menu
 
-This manual corresponds to Message 5.4.67.  Message is distributed with
+This manual corresponds to Message 0.1.  Message is distributed with
 the Gnus distribution bearing the same version number as this manual
 has.