Sync up with Gnus 5.6.36.
authorshuhei-k <shuhei-k>
Sun, 16 Aug 1998 22:32:00 +0000 (22:32 +0000)
committershuhei-k <shuhei-k>
Sun, 16 Aug 1998 22:32:00 +0000 (22:32 +0000)
39 files changed:
ChangeLog
Makefile.in
lisp/ChangeLog
lisp/gnus-agent.el
lisp/gnus-art.el
lisp/gnus-bcklg.el
lisp/gnus-cache.el
lisp/gnus-cite.el
lisp/gnus-cus.el
lisp/gnus-eform.el
lisp/gnus-ems.el
lisp/gnus-gl.el
lisp/gnus-group.el
lisp/gnus-int.el
lisp/gnus-kill.el
lisp/gnus-mh.el
lisp/gnus-msg.el
lisp/gnus-picon.el
lisp/gnus-salt.el
lisp/gnus-score.el
lisp/gnus-soup.el
lisp/gnus-srvr.el
lisp/gnus-start.el
lisp/gnus-sum.el
lisp/gnus-util.el
lisp/gnus-uu.el
lisp/gnus-win.el
lisp/gnus-xmas.el
lisp/gnus.el
lisp/message.el
lisp/nndir.el
lisp/nndoc.el
lisp/nnmail.el
lisp/nntp.el
make.bat
texi/ChangeLog
texi/Makefile.in
texi/gnus.texi
texi/message.texi

index dca94e4..cab01c3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 1998-08-16  Shuhei KOBAYASHI  <shuhei-k@jaist.ac.jp>
 
+       * lisp/gnus.el (gnus-version-number): Update to 6.8.5.
+
+       * Sync up with Gnus 5.6.36.
+
+1998-08-16  Shuhei KOBAYASHI  <shuhei-k@jaist.ac.jp>
+
        * lisp/gnus.el (gnus-version-number): Update to 6.8.4.
 
        * Sync up with Gnus 5.6.30.
index 7c675a4..a30ae8d 100644 (file)
@@ -1,3 +1,5 @@
+prefix = @prefix@
+datadir = @datadir@
 lispdir = @lispdir@
 srcdir = @srcdir@
 
index ed55690..5435e3d 100644 (file)
@@ -1,3 +1,192 @@
+Fri Aug 14 23:03:51 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Gnus v5.6.36 is released.
+
+1998-08-14 21:49:22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.el (load): Push onto list.
+
+       * gnus-group.el (gnus-group-get-new-news-this-group): Store active
+       info. 
+
+Fri Aug 14 21:41:59 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Gnus v5.6.35 is released.
+
+1998-08-14 00:00:15  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-srvr.el (gnus-server-scan-server): Error better.
+
+       * nndir.el: Make independent of nnmh.
+       Revert.
+
+       * message.el (message-remove-text-with-property): New function.
+       (message-fix-before-sending): Check for invisible text.
+
+       * gnus.el (load): Create the Gnus buffer even when no splash.
+
+       * gnus-msg.el (gnus-setup-message): Add buffer to list.
+
+       * gnus-win.el (gnus-remove-some-windows): Use new buffer system. 
+       (gnus-delete-windows-in-gnusey-frames): Ditto.
+
+       * gnus.el (gnus-add-buffer): New function.
+
+1998-08-13 23:38:21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-xmas.el (gnus-buffer-list): Removed.
+
+       * gnus.el (gnus-buffers): New variable.
+       (gnus-get-buffer-create): New function; used throughout.
+       (gnus-buffers): New function.
+
+       * gnus-msg.el (gnus-configure-posting-styles): Go to eoh
+       reliably. 
+
+       * message.el (message-goto-eoh): New command.
+
+1998-08-13 23:13:53  Simon Josefsson  <jas@pdc.kth.se>
+
+       * gnus-msg.el (gnus-setup-message): use message-setup-hook
+       instead
+       (gnus-configure-posting-styles): new posting-style 'body
+       (gnus-configure-posting-styles): insert headers immediately
+
+1998-08-13 13:05:36  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-score.el (gnus-summary-increase-score): Change thread to
+       "r". 
+
+       * gnus-sum.el (gnus-summary-scroll-down): New command and
+       keystroke. 
+
+       * gnus-agent.el (gnus-agent-expire): Check that directories
+       exist. 
+
+1998-08-12 20:56:41  Simon Josefsson  <jas@pdc.kth.se>
+
+       * gnus-cache.el (gnus-uncacheable-groups): doc change
+       (gnus-cacheable-groups): new variable
+       (gnus-cache-possibly-enter-article): use it
+
+1998-08-12 22:30:16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * nntp.el (nntp-encode-text): Too much text.
+
+1998-08-12 21:58:50  Matt Pharr  <mmp@Graphics.Stanford.EDU>
+
+       * message.el (message-make-forward-subject-function): New
+       variable. 
+       (message-wash-forwarded-subjects): Ditto.
+
+Wed Aug 12 21:09:58 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Gnus v5.6.34 is released.
+
+1998-08-12 13:32:38  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-msg.el (gnus-post-method): Don't use `current' in drafts.
+
+       * gnus-score.el (gnus-summary-increase-score): Changed T to h and
+       downcase. 
+
+Tue Aug 11 20:46:25 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Gnus v5.6.33 is released.
+
+1998-08-11 20:07:55  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-group.el (gnus-group-apropos): Check symbol value.
+
+       * gnus-cite.el (gnus-cited-closed-text-button-line-format):
+       Changed.
+
+Tue Aug 11 19:42:42 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Gnus v5.6.32 is released.
+
+1998-08-11 13:36:56  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * nndoc.el (nndoc-type-alist): Do MIME digests before multiparts.
+
+       * gnus.el (gnus-predefined-server-alist): Expand vars.
+
+1998-08-09  Dave Love  <d.love@dl.ac.uk>
+
+       * gnus-art.el (article-display-x-face): Don't try (and fail) to
+       display multiple faces.
+
+1998-08-11 11:41:43  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-art.el (gnus-header-newsgroups-face): Don't bold so much.
+
+       * gnus-group.el (gnus-group-rename-group): Remove old group name
+       from list of killed groups.
+
+       * gnus-int.el (gnus-get-function): Error better.
+
+       * gnus-art.el (gnus-article-narrow-to-signature): Inhibit motion
+       hooks.
+       (article-hide-pgp): Delete text instead of hiding it.
+
+       * gnus-group.el (gnus-group-find-new-groups): Ditto.
+
+       * gnus-start.el (gnus-find-new-newsgroups): Accept C-u C-u as a
+       total query.
+
+1998-08-10 09:31:36  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-art.el (gnus-article-prepare): Place point at the beginning
+       of the body.
+
+       * gnus-cite.el (gnus-cite-attribution-face): Changed to italic.
+
+       * gnus-art.el (gnus-article-edit-article): Delete "annotation"
+       text.
+       (gnus-insert-prev-page-button): Mark as annotation.
+       (gnus-insert-next-page-button): Ditto.
+
+       * gnus-cite.el (gnus-cited-closed-text-button-line-format): New
+       variable.
+       (gnus-cited-closed-text-button-line-format-alist): Ditto.
+       (gnus-article-toggle-cited-text): Toggle between different
+       symbols.
+
+1998-08-09 19:58:36  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.el (gnus-version): Remove backend info.
+
+Sun Aug  9 19:37:40 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Gnus v5.6.31 is released.
+
+1998-08-09  François Pinard  <pinard@iro.umontreal.ca>
+
+       * nndoc.el: Split MIME multipart messages, maybe recursively.
+       (nndoc-mime-parts-type-p, nndoc-transform-mime-parts,
+       nndoc-generate-mime-parts-head, nndoc-dissect-mime-parts,
+       nndoc-dissect-mime-parts-sub): New functions.
+
+       * nndoc.el: Quoting boundaries is optional, for multipart digests.
+
+1998-08-09 17:51:25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-agent.el (gnus-agent-save-group-info): Check whether file
+       exists.
+
+       * message.el (message-goto-signature): Return nil if no sig.
+       (message-delete-not-region): Delete properly if no sig.
+
+1998-08-09 17:26:30  Simon Josefsson  <jas@pdc.kth.se>
+
+        * gnus-srvr.el (gnus-browse-make-menu-bar): select did read
+
+1998-08-09 15:51:43  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-sum.el (t): Added keystroke for W W C.
+
+       * gnus-cite.el (gnus-article-hide-citation-maybe): hiden->hidden.
+
 Sun Aug  9 15:46:16 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Gnus v5.6.30 is released.
@@ -25,7 +214,7 @@ Sun Aug  9 15:46:16 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el (gnus-continuum-version): Include quassia.
 
-       * gnus-sum.el (gnus-data-enter-list): Check before entering list. 
+       * gnus-sum.el (gnus-data-enter-list): Check before entering list.
 
 1998-08-06 11:13:56  Francois Felix Ingrand  <felix@dial.oleane.com>
 
@@ -41,7 +230,7 @@ Thu Aug  6 07:58:17 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * gnus-agent.el (gnus-agent-expire): Check whether (caar
        gnus-agent-article-alist) is nil.
 
-       * gnus.el (gnus-read-method): Allow selecting predefined servers. 
+       * gnus.el (gnus-read-method): Allow selecting predefined servers.
 
        * gnus-topic.el (gnus-topic-update-topic-line): Compute right
        number when inserting missing topic lines.
@@ -50,7 +239,7 @@ Thu Aug  6 07:58:17 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        is alive.
 
        * gnus-score.el (gnus-score-load-score-alist): Better error
-       messaging. 
+       messaging.
 
 Tue Aug  4 09:42:31 1998  Kurt Swanson  <ksw@dna.lth.se>
 
@@ -88,7 +277,7 @@ Tue Aug  4 09:42:31 1998  Kurt Swanson  <ksw@dna.lth.se>
        * gnus-sum.el (gnus-select-newsgroup): Set
        `gnus-newsgroup-unselected' when selecting specific articles via
        SELECT-ARTICLE - there may be more headers to fetch if
-       `gnus-fetch-old-headers' is non-nil. 
+       `gnus-fetch-old-headers' is non-nil.
        (gnus-summary-read-group): pass SELECT-ARTICLE to
        `gnus-summary-read-group-1' and reset to nil when going to next group.
        (gnus-summary-read-group): Change `select-article' to
@@ -120,7 +309,7 @@ Tue Aug  4 05:25:01 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-07-30 21:47:23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus-cache.el (gnus-summary-insert-cached-articles): Sort
-       articles. 
+       articles.
 
        * nndir.el (nndir): Use nnml functions.
 
@@ -160,7 +349,7 @@ Mon Jul 27 03:26:00 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-07-26 19:01:58  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus-art.el (gnus-request-article-this-buffer): Pass along
-       header. 
+       header.
 
        * gnus-sum.el (gnus-summary-update-article): Don't pass along
        iheader to regeneration routine.
@@ -177,7 +366,7 @@ Sat Jul 25 19:31:36 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-07-25 14:53:24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus-salt.el (gnus-pick-mouse-pick-region): Use
-       gnus-read-event-char. 
+       gnus-read-event-char.
 
 Sat Jul 25 02:43:35 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
@@ -216,7 +405,7 @@ Sat Jul 25 02:43:35 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-07-15 10:47:39  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * nnvirtual.el (nnvirtual-request-type): Handle non-numerical
-       articles. 
+       articles.
 
        * gnus.el (gnus-news-group-p): Do something sensible with negative
        articlies.
@@ -240,7 +429,7 @@ Wed Jul 15 10:10:07 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Wed Jul 15 09:56:47 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-sum.el (gnus-select-newsgroup): Accept select-articles
-       para, 
+       para,
 
 1998-07-13  Mike McEwan  <mike@lotusland.demon.co.uk>
 
@@ -266,17 +455,17 @@ Sun Jul 12 04:01:22 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-agent.el (gnus-agent-expire): Update group info to add
        expired articles to list of read articles and prevent
-       re-fetching. 
+       re-fetching.
 
 1998-07-12  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * nnmail.el (nnmail-active-file-coding-system): Changed to
-       binary. 
+       binary.
 
 Sun Jul 12 03:16:18 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-score.el (gnus-score-load-file): Specify which alist to
-       decay. 
+       decay.
 
 1998-07-12  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -298,11 +487,11 @@ Fri Jul 10 04:15:35 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Fri Jul 10 03:03:48 1998  François Pinard  <pinard@iro.umontreal.ca>
 
        * gnus-sum.el (gnus-summary-respool-trace): New command and
-       keystroke. 
+       keystroke.
 
 Fri Jul 10 02:18:01 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
-       * gnus-util.el (gnus-prin1): Bind print-escape-multibyte to nil. 
+       * gnus-util.el (gnus-prin1): Bind print-escape-multibyte to nil.
 
 Mon Jul  6 01:02:59 1998  Simon Josefsson  <jas@pdc.kth.se>
 
@@ -331,7 +520,7 @@ Wed Jul  1 17:30:41 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * gnus-topic.el (gnus-topic-mode-map): Bind TAB and M-TAB.
 
        * gnus-sum.el (gnus-build-sparse-threads): Make sure no dates are
-       nil. 
+       nil.
        (gnus-summary-limit-mark-excluded-as-read): Use the intersection.
 
        * gnus-msg.el (gnus-setup-message): Clone all local variables from
@@ -352,7 +541,7 @@ Wed Jul  1 13:33:26 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 Wed Jul  1 12:52:32 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
-       * nntp.el (nntp-record-command): Give more precise time info. 
+       * nntp.el (nntp-record-command): Give more precise time info.
        (nntp-next-result-arrived-p): Look for the end of error lines.
 
 Wed Jul  1 12:24:06 1998  François Pinard  <pinard@iro.umontreal.ca>
@@ -394,7 +583,7 @@ Mon Jun 29 21:22:46 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
 Sun Jun 28 14:32:08 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
-       * gnus-spec.el (gnus-face-face-function): Double quoting removed. 
+       * gnus-spec.el (gnus-face-face-function): Double quoting removed.
 
 Sun Jun 28 09:54:52 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
@@ -406,7 +595,7 @@ Sun Jun 28 08:51:39 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        a temp buffer before replacing.
 
        * gnus-msg.el (gnus-post-news): Treat broken-reply-to in
-       followups. 
+       followups.
 
        * gnus-sum.el (gnus-summary-goto-subject): Position point.
 
@@ -420,7 +609,7 @@ Sat Jun 27 09:19:20 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-util.el
        (gnus-put-text-properties-excluding-characters-with-faces): New
-       function. 
+       function.
 
 Sat Jun 27 08:56:08 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
@@ -433,7 +622,7 @@ Sat Jun 27 08:49:51 1998  Arne Georg Gleditsch  <argggh@ifi.uio.no>
 Sat Jun 27 08:45:09 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * message.el (message-check-news-body-syntax): Buggy checksum
-       check. 
+       check.
 
 Sat Jun 27 07:59:22 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
@@ -450,7 +639,7 @@ Sat Jun 27 03:18:57 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * nnfolder.el (nnfolder-request-replace-article): Check all X-From
        headers.
 
-       * gnus-sum.el (gnus-update-marks): Don't nix out cache lists.  
+       * gnus-sum.el (gnus-update-marks): Don't nix out cache lists.
 
        * nngateway.el (nngateway-mail2news-header-transformation):
        Changed semantics.
@@ -482,7 +671,7 @@ Fri Jun 26 13:45:24 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * gnus-util.el (gnus-delete-alist): New function.
 
        * gnus-sum.el (gnus-update-marks): Don't save list of cached
-       articles. 
+       articles.
 
        * message.el (message-mode-menu): Include kill-buffer.
 
@@ -499,7 +688,7 @@ Fri Jun 26 13:45:09 1998  Richard Stallman  <rms@santafe.edu>
 Fri Jun 26 13:30:42 1998  Kevin Christian  <Kevin.Christian@symbios.com>
 
        * gnus-score.el (gnus-score-string): Do updating of scores after
-       fuzzies. 
+       fuzzies.
 
 Fri Jun 26 07:26:03 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -517,7 +706,7 @@ Fri Jun 26 04:29:44 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * gnus-score.el (gnus-score-load-file): Would ignore all score
        files without un-advanced rules.
 
-       * gnus-ems.el ((fboundp 'split-string)): Use it where it exists. 
+       * gnus-ems.el ((fboundp 'split-string)): Use it where it exists.
 
 Fri Jun 26 04:23:12 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
@@ -526,7 +715,7 @@ Fri Jun 26 04:23:12 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 Fri Jun 26 03:39:32 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * nnfolder.el (nnfolder-request-replace-article): Delete old
-       delimiter. 
+       delimiter.
 
        * gnus-msg.el (gnus-summary-reply): Use it.
 
@@ -551,9 +740,9 @@ Thu Jun 25 10:35:48 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * gnus-sum.el (gnus-summary-limit-to-age): Reverse logic.
 
        * gnus-score.el (gnus-summary-score-entry): Removed interactive
-       spec. 
+       spec.
        ((gnus-summary-score-map "V" gnus-summary-mode-map)): Removed
-       keystroke. 
+       keystroke.
 
        * gnus-art.el (gnus-article-show-summary): Position point.
 
@@ -577,7 +766,7 @@ Thu Jun 25 05:13:31 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * gnus-salt.el (gnus-pick-mode-map): Reinstated keymap.
 
        * gnus-sum.el (gnus-build-sparse-threads): Put the proper date
-       in. 
+       in.
 
 Wed Jun 24 07:52:30 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
@@ -590,12 +779,12 @@ Wed Jun 24 07:47:04 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Wed Jun 24 07:33:17 1998  Vladimir Alexiev  <vladimir@cs.ualberta.ca>
 
        * nnvirtual.el (nnvirtual-update-xref-header): Regexp-quote group
-       name. 
+       name.
 
 Wed Jun 24 06:15:27 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-sum.el (gnus-build-sparse-threads): Give all the sparse
-       articles the date of the current child.  
+       articles the date of the current child.
 
        * gnus-topic.el (gnus-group-topic-parameters): Didn't compute.
 
@@ -626,7 +815,7 @@ Wed Jun 24 03:04:05 1998  Kim-Minh Kaplan  <kaplan@sky.fr>
 
 Wed Jun 24 02:49:57 1998  Castor  <castor@my-dejanews.com>
 
-       * nntp.el (nntp-open-ssl-stream): 
+       * nntp.el (nntp-open-ssl-stream):
 
 Wed Jun 24 02:31:46 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -636,7 +825,7 @@ Wed Jun 24 02:31:46 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Wed Jun 24 01:43:26 1998  Decklin Foster  <djarum@base.org>
 
        * nngateway.el (nngateway-mail2news-header-transformation): New
-       function. 
+       function.
 
 Wed Jun 24 00:25:45 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -650,18 +839,18 @@ Wed Jun 24 00:25:45 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Tue Jun 23 23:58:48 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-topic.el (gnus-topic-prepare-topic): Respect visible topic
-       param. 
+       param.
        (gnus-topic-hierarchical-parameters): New function.
 
 1998-06-02  Didier Verna  <verna@inf.enst.fr>
 
        * gnus-picon.el (gnus-get-buffer-name): use get-buffer-create
-       instead of get-buffer 
+       instead of get-buffer
 
 Wed Jun  3 04:41:45 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * nnkiboze.el (nnkiboze-request-delete-group): Delete .newsrc
-       file. 
+       file.
 
        * nnmail.el (nnmail-article-group): Nuke looong lines.
 
@@ -750,7 +939,7 @@ Sat May 23 19:44:43 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Tue May 19 04:11:33 1998  Yoshiki Hayashi  <g740685@komaba.ecc.u-tokyo.ac.jp>
 
        * nnheader.el (nnheader-translate-file-chars): Don't change
-       string. 
+       string.
 
 Tue May 19 03:07:45 1998  P. E. Jareth Hein  <jareth@camelot-soft.com>
 
@@ -767,7 +956,7 @@ Tue May 12 06:12:42 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Sun May 10 19:08:28 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-group.el (gnus-group-read-ephemeral-group): Don't add
-       `address'. 
+       `address'.
 
 Sun May  3 18:01:01 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -800,7 +989,7 @@ Sat May  2 01:36:37 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        `find-file-hooks' to nil.
 
        * nnmail.el (nnmail-process-unix-mail-format): Don't use
-       `find-file-noselect'. 
+       `find-file-noselect'.
 
        * gnus-group.el (gnus-group-make-menu-bar): Typo.
 
@@ -832,7 +1021,7 @@ Fri May  1 16:56:32 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        buffer.
 
        * gnus-soup.el (gnus-soup-parse-areas): Check whether the file
-       exists. 
+       exists.
 
        * gnus-draft.el (gnus-draft-send): Use meta-information.
 
@@ -844,7 +1033,7 @@ Fri May  1 16:56:32 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Fri May  1 16:43:35 1998  Paul Franklin  <paul@cs.washington.edu>
 
        * message.el (message-generate-headers): Insert Sender when
-       required. 
+       required.
 
 Fri May  1 15:28:55 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -854,10 +1043,10 @@ Fri May  1 15:28:55 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        when hiding.
 
        * gnus-msg.el (gnus-post-method): Allow ARG to override
-       `current'. 
+       `current'.
 
        * gnus-sum.el (gnus-remove-thread): Remove the dummy root
-       properly. 
+       properly.
 
        * nnfolder.el (nnfolder-goto-article): New function.
        (nnfolder-retrieve-headers): Use it.
@@ -875,7 +1064,7 @@ Wed Apr 29 20:54:35 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        dummy roots.
 
        * gnus-cache.el (gnus-cache-enter-article): Update marks
-       properly. 
+       properly.
 
        * gnus-xmas.el (gnus-xmas-draft-menu-add): New function.
 
@@ -891,22 +1080,22 @@ Wed Apr 29 20:54:35 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Wed Apr 29 20:18:45 1998  Kurt Swanson  <kurt@dna.lth.se>
 
        * gnus-art.el (article-update-date-lapsed): Bind
-       `deactivate-mark'. 
+       `deactivate-mark'.
 
        * gnus-salt.el (gnus-pick-mode-map): Moved keys around to avoid
-       shadowing. 
+       shadowing.
 
        * gnus-art.el (gnus-article-read-summary-keys): New version.
 
-       * gnus-sum.el (gnus-summary-make-menu-bar): New for article mode. 
+       * gnus-sum.el (gnus-summary-make-menu-bar): New for article mode.
 
        * gnus-msg.el (gnus-post-method): `current' custom.
 
 Wed Apr 29 19:04:27 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-sum.el (gnus-summary-set-local-parameters): Ignore
-       quit-config. 
-       (gnus-select-newsgroup): Use the value of gnus-fetch-old-headers. 
+       quit-config.
+       (gnus-select-newsgroup): Use the value of gnus-fetch-old-headers.
 
        * message.el (message-post-method): Doc fix.
 
@@ -925,7 +1114,7 @@ Tue Apr 28 03:15:50 1998  Hallvard B. Furuseth  <h.b.furuseth@usit.uio.no>
 Tue Apr 28 03:00:16 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-sum.el (gnus-parent-headers): Don't infloop on nil
-       References. 
+       References.
 
        * gnus-art.el (gnus-article-mode): Don't kill local vars.
 
@@ -980,9 +1169,9 @@ Sun Apr 26 14:34:06 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * gnus-sum.el (gnus-summary-update-info): Don't nix out scores.
 
        * gnus-start.el (gnus-active-to-gnus-format): Removed "." from
-       quoting. 
+       quoting.
 
-       * gnus.el (gnus-cache-directory): Moved here. 
+       * gnus.el (gnus-cache-directory): Moved here.
        (gnus-predefined-server-alist): Use.
 
        * message.el (message-autosave-directory): Put back in.
@@ -1005,7 +1194,7 @@ Sun Apr 26 14:34:06 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Sun Apr 26 14:05:40 1998  Frank Bennett  <bennett@rumple.soas.ac.uk>
 
        * nnmail.el (nnmail-move-inbox): Push error'ed mailboxes onto the
-       list. 
+       list.
 
 Sun Apr 26 13:01:53 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -1077,7 +1266,7 @@ Wed Apr  1 16:01:44 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Sun Mar 29 11:54:33 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * nnkiboze.el (nnkiboze-generate-group): Would mess up newsrs
-       hashtb. 
+       hashtb.
        (nnkiboze-enter-nov): Created bogus Xrefs headers.
 
        * gnus-agent.el (gnus-agent-save-group-info): New function.
@@ -1087,7 +1276,7 @@ Sun Mar 29 11:54:33 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * message.el (message-expand-group): Allow completion from in the
        middle of strings.
        (message-font-lock-keywords): Work when mail-header-separator is
-       "". 
+       "".
 
 Sun Mar 29 09:56:00 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
@@ -1142,7 +1331,7 @@ Thu Mar 19 15:09:14 1998  Wes Hardaker  <wjhardaker@ucdavis.edu>
 1998-03-17  Per Abrahamsen  <abraham@dina.kvl.dk>
 
        * gnus-uu.el (gnus-uu-digest-headers): Add `Content-Type' and
-       `Content-Transfer-Encoding'. 
+       `Content-Transfer-Encoding'.
 
 1998-03-18  Per Abrahamsen  <abraham@dina.kvl.dk>
 
@@ -1170,7 +1359,7 @@ Thu Mar 19 12:44:12 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * gnus-msg.el: Would use nil group names.
 
        * nntp.el (nntp-send-authinfo): Send authinfo to "force"d
-       servers. 
+       servers.
 
        * gnus-util.el (gnus-parse-netrc): Accept the "force" token.
 
@@ -1207,7 +1396,7 @@ Fri Mar 13 22:07:17 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
 Fri Mar 13 21:10:24 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
-       * nnvirtual.el (nnvirtual-request-group): Force updating of info. 
+       * nnvirtual.el (nnvirtual-request-group): Force updating of info.
 
 Sun Mar  8 20:46:51 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -1220,7 +1409,7 @@ Sun Mar  8 14:05:25 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 Sun Mar  8 00:35:09 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-picon.el (gnus-get-buffer-name): Look in the assoc for the
-       variable. 
+       variable.
 
        * nntp.el (nntp-wait-for): Check more for dead connections.
 
@@ -1280,7 +1469,7 @@ Sat Mar  7 15:01:57 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Sat Mar  7 15:00:05 1998  Wes Hardaker  <wjhardaker@ucdavis.edu>
 
        * gnus-art.el (gnus-article-prepare): Mark articles as
-       downloadable. 
+       downloadable.
 
 Wed Mar  4 22:33:27 1998  Ken Raeburn  <raeburn@cygnus.com>
 
@@ -1329,10 +1518,10 @@ Sat Feb 28 13:35:26 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        (nntp-record-commands): New variable.
        (nntp-record-command): New function.
 
-       * gnus-agent.el (gnus-agent-group-path): Use real name of group. 
+       * gnus-agent.el (gnus-agent-group-path): Use real name of group.
 
        * gnus-sum.el (gnus-summary-insert-subject): Don't allow nil
-       articles. 
+       articles.
        (gnus-summary-read-group): Respect backward movement.
 
 1998-03-01  Kim-Minh Kaplan  <KimMinh.Kaplan@utopia.eunet.fr>
@@ -1366,7 +1555,7 @@ Sat Feb 28 08:17:37 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 Sat Feb 28 08:10:27 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-picon.el (gnus-picons-display-x-face): `buf' -- unbound
-       var. 
+       var.
 
 Sat Feb 28 08:03:23 1998  François Pinard  <pinard@iro.umontreal.ca>
 
@@ -1378,7 +1567,7 @@ Sat Feb 28 07:43:00 1998  Nelson Jose dos Santos Ferreira  <Nelson.Ferreira@ines
 
 Sat Feb 28 07:01:17 1998  Lasse Rasinen  <lrasinen@iki.fi>
 
-       * gnus-start.el (gnus-ask-server-for-new-groups): Message more. 
+       * gnus-start.el (gnus-ask-server-for-new-groups): Message more.
 
 Fri Feb 27 13:26:34 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -1399,7 +1588,7 @@ Mon Feb 23 18:26:48 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-ems.el (gnus-ems-redefine): Define
        'gnus-summary-set-display-table as a function that takes no
-       params. 
+       params.
 
        * gnus.el (gnus-interactive): Don't use gnus-sum macros.
        (gnus-valid-select-methods): Include nnlistserv.
@@ -1463,7 +1652,7 @@ Sat Feb 21 00:09:14 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        the mark doesn't change.
 
        * gnus-art.el (gnus-article-prepare): Don't enter article into
-       cache. 
+       cache.
 
        * gnus-sum.el (gnus-summary-reparent-thread): Don't mark as read.
        (gnus-summary-mark-article): Don't do cache things here.
@@ -1473,7 +1662,7 @@ Sat Feb 21 00:09:14 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Fri Feb 20 22:56:22 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-srvr.el (gnus-browse-unsubscribe-group): Wouldn't allow
-       unsubscription. 
+       unsubscription.
 
        * gnus-sum.el (gnus-summary-insert-subject): Allow inserting
        articles outside limits.
@@ -1481,7 +1670,7 @@ Fri Feb 20 22:56:22 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * gnus-start.el (gnus-dribble-enter): Update mode line.
 
        * gnus-srvr.el (gnus-browse-unsubscribe-group): Allow
-       unsubscription. 
+       unsubscription.
 
        * gnus-picon.el (gnus-article-display-picons): Check that the
        extents are live first.
@@ -1497,7 +1686,7 @@ Thu Feb 19 02:28:17 1998  Jens-Ulrik Holger Petersen  <petersen@kurims.kyoto-u.a
 Thu Feb 19 01:58:47 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-sum.el (gnus-get-newsgroup-headers): Just use the header
-       value. 
+       value.
        (gnus-summary-exit): Set global vars.
 
 Tue Feb 17 07:17:49 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
@@ -1513,7 +1702,7 @@ Tue Feb 17 07:00:43 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 Tue Feb 17 06:15:03 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * nnmail.el (nnmail-purge-split-history): List of alists, not
-       alist. 
+       alist.
 
 Mon Feb 16 20:22:04 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
@@ -1522,10 +1711,10 @@ Mon Feb 16 20:22:04 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-02-16  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * message.el (message-dont-send): Make sure the article really is
-       saved. 
+       saved.
 
        * nnmail.el (nnmail-purge-split-history): Alist; not a list of
-       alists. 
+       alists.
 
 1998-02-16  Hrvoje Niksic  <hniksic@srce.hr>
 
@@ -1540,7 +1729,7 @@ Mon Feb 16 20:22:04 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-02-16  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-util.el (gnus-run-hooks): Use unwind-protect instead of
-       save-excursion. 
+       save-excursion.
 
 1998-02-16  Per Abrahamsen  <abraham@dina.kvl.dk>
 
@@ -1572,7 +1761,7 @@ Sun Feb 15 19:41:14 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Sun Feb 15 19:35:11 1998  Kurt Swanson  <kurt@dna.lth.se>
 
        * gnus-art.el (gnus-article-read-summary-keys): Go to top on
-       some. 
+       some.
 
 Sun Feb 15 19:26:21 1998  SeokChan LEE  <chan@xfer.kren.nm.kr>
 
@@ -1605,14 +1794,14 @@ Sun Feb 15 14:23:51 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * message.el (message-mode): Set font-lock things before running
        mode hook.
 
-       * gnus-agent.el (gnus-agent-group-path): Respect long file names. 
+       * gnus-agent.el (gnus-agent-group-path): Respect long file names.
 
 Sat Feb 14 21:31:25 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-sum.el (gnus-summary-goto-last-article): Force jumping to
        articles outside limit.
 
-       * gnus-agent.el (gnus-agent-toggle-plugged): un/plug before hook. 
+       * gnus-agent.el (gnus-agent-toggle-plugged): un/plug before hook.
 
 Sat Feb 14 21:08:03 1998  Kim-Minh Kaplan  <KimMinh.Kaplan@utopia.eunet.fr>
 
@@ -1629,7 +1818,7 @@ Sat Feb 14 19:28:01 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 Sat Feb 14 18:40:55 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
-       * gnus-agent.el (gnus-agent-directory): Translate file chars. 
+       * gnus-agent.el (gnus-agent-directory): Translate file chars.
 
        * gnus-sum.el (gnus-summary-print-article): Don't display all
        headers.
@@ -1640,7 +1829,7 @@ Sat Feb 14 18:40:55 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Sat Feb 14 18:39:45 1998  Fred Oberhauser  <foberhauser@psipenta.de>
 
        * nnmail.el (nnmail-process-babyl-mail-format): Fix point
-       movement. 
+       movement.
 
 Sat Feb 14 18:31:39 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -1677,7 +1866,7 @@ Sat Feb 14 17:41:44 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * gnus-sum.el (gnus-summary-work-articles): change buffer
        before looking at marked articles
        (gnus-summary-work-articles): better check of marked articles
-       
+
 Sat Feb 14 15:10:36 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * nntp.el (nntp-send-authinfo): Use new .netrc functionality.
@@ -1691,10 +1880,10 @@ Sat Feb 14 15:10:36 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus.el (gnus-expert-user): Dix fox.
 
-       * nnmail.el (nnmail-article-group): Remove duplicates from split. 
+       * nnmail.el (nnmail-article-group): Remove duplicates from split.
 
        * message.el (message-check-news-header-syntax): Check more on
-       Message-ID. 
+       Message-ID.
 
        * nnmh.el: Don't call nnmail-activate.
 
@@ -1752,7 +1941,7 @@ Fri Feb 13 17:10:31 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        (gnus-cite-parse-maybe): Use it.
 
        * gnus-sum.el (gnus-summary-move-article): Move back to summary
-       buffer. 
+       buffer.
 
        * nnfolder.el (nnfolder-request-accept-article): Save excursion.
        (nnfolder-request-move-article): Ditto.
@@ -1785,12 +1974,12 @@ Tue Feb 10 21:59:53 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * gnus-agent.el (gnus-agent-fetch-session): Reversed reversal.
 
        * gnus-topic.el (gnus-topic-rename): Check whether the new name
-       exists. 
+       exists.
 
 Tue Feb 10 21:39:47 1998  dave edmondson  <dme@sco.com>
 
        * message.el (message-font-lock-keywords): Allow : as a citation
-       ending. 
+       ending.
 
 Tue Feb 10 20:09:02 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -1801,11 +1990,11 @@ Mon Feb  9 17:02:09 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * message.el (message-fill-header): Fill to column 990.
 
        * gnus-score.el (gnus-score-load-file): Exclude all excluded
-       files. 
+       files.
 
 Mon Feb  9 16:55:41 1998  jari aalto  <jari.aalto@poboxes.com>
 
-       * gnus-art.el (gnus-article-time-format): Extended variable. 
+       * gnus-art.el (gnus-article-time-format): Extended variable.
 
 Mon Feb  9 16:27:59 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -1837,7 +2026,7 @@ Sun Feb  8 18:13:58 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 Sun Feb  8 17:20:40 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
-       * gnus-group.el (gnus-update-group-mark-positions): Bind `topic'. 
+       * gnus-group.el (gnus-update-group-mark-positions): Bind `topic'.
 
        * message.el (message-expand-group): Added doc string.
 
@@ -1847,7 +2036,7 @@ Sun Feb  8 17:20:40 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Sun Feb  8 16:44:36 1998  Richard Hoskins  <rmh@interlaced.net>
 
        * message.el (message-kill-to-signature): Don't kill the
-       delimiter. 
+       delimiter.
 
 Sun Feb  8 16:15:33 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -1855,7 +2044,7 @@ Sun Feb  8 16:15:33 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        (gnus-summary-read-group-1): Use it.
 
        * message.el (message-cite-original-without-signature): New
-       function. 
+       function.
        (message-cite-function): Added to custom.
 
 1998-01-13  Per Abrahamsen  <abraham@dina.kvl.dk>
@@ -1878,7 +2067,7 @@ Mon Feb  2 18:56:22 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        (gnus-agent-fetch-session): Use it.
 
        * gnus-art.el (article-strip-all-blank-lines): New command and
-       keystroke. 
+       keystroke.
 
 Sun Feb  1 18:00:54 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -1895,7 +2084,7 @@ Sun Feb  1 18:00:54 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Thu Jan 15 22:47:38 1998   <Use-Author-Address-Header@[127.1]>
 
        * gnus-art.el (gnus-request-article-this-buffer): Put it into the
-       backlog. 
+       backlog.
 
 Mon Jan 12 23:30:59 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -1953,15 +2142,15 @@ Sun Jan  4 14:28:35 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1997-12-10  Per Abrahamsen  <abraham@dina.kvl.dk>
 
        * gnus/gnus-msg.el (gnus-inews-insert-mime-headers): Added
-       documentation. 
+       documentation.
        (gnus-inews-insert-mime-headers): Made it work with Emacs MULE.
        (gnus-inews-insert-mime-headers): Added as option to
-       `message-header-hook'. 
+       `message-header-hook'.
 
 1997-12-22  Per Abrahamsen  <abraham@dina.kvl.dk>
 
        * gnus/gnus-art.el (gnus-button-alist): Assume msg-id after "in
-       message". 
+       message".
 
 1997-12-22  Simon Josefsson  <jas@faun.nada.kth.se>
 
@@ -1977,9 +2166,9 @@ Sun Jan  4 13:35:14 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * nndraft.el (nndraft-request-associate-buffer): Open the damn
        server first.  Sheesh.
 
-       * gnus-draft.el (gnus-draft-send): Bind message-send-hook to nil. 
+       * gnus-draft.el (gnus-draft-send): Bind message-send-hook to nil.
 
-       * gnus-sum.el (gnus-summary-catchup): Don't nix out downloadable. 
+       * gnus-sum.el (gnus-summary-catchup): Don't nix out downloadable.
        (gnus-summary-highlight): Highlight down/un as unread.
 
 Sun Jan  4 13:27:31 1998  Kim-Minh Kaplan  <KimMinh.Kaplan@utopia.eunet.fr>
@@ -1989,7 +2178,7 @@ Sun Jan  4 13:27:31 1998  Kim-Minh Kaplan  <KimMinh.Kaplan@utopia.eunet.fr>
 Sun Jan  4 13:18:04 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * nnsoup.el (nnsoup-store-reply): Bind mail-header-separator to
-       "". 
+       "".
 
        * gnus-xmas.el (gnus-xmas-agent-server-menu-add): New.
 
@@ -2054,7 +2243,7 @@ Fri Dec 19 21:39:43 1997  Hrvoje Niksic  <hniksic@srce.hr>
 
 Fri Dec 19 21:26:08 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
-       * gnus-cache.el (gnus-cache-read-active): Check for empty files. 
+       * gnus-cache.el (gnus-cache-read-active): Check for empty files.
 
 Sun Dec 14 11:46:50 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -2063,7 +2252,7 @@ Sun Dec 14 11:46:50 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
 1997-12-10  SL Baur  <steve@altair.xemacs.org>
 
-       * gnus-start.el (gnus-read-descriptions-file): Really bind and gag 
+       * gnus-start.el (gnus-read-descriptions-file): Really bind and gag
        Mule.
 
 Fri Dec  5 15:15:05 1997  Danny Siu  <dsiu@adobe.com>
@@ -2077,7 +2266,7 @@ Sun Dec 14 11:11:22 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * gnus-uu.el (gnus-uu-pre-uudecode-hook): New hook.
 
        * gnus-sum.el (gnus-summary-read-group-1): Set mode line after
-       configuring. 
+       configuring.
 
 Sun Dec 14 11:03:26 1997  Wes Hardaker  <wjhardaker@ucdavis.edu>
 
@@ -2099,7 +2288,7 @@ Sat Dec  6 17:27:04 1997  Kim-Minh Kaplan  <KimMinh.Kaplan@Utopia.EUnet.fr>
 Sat Dec  6 17:23:26 1997  Christian von Roques  <roques@scalar.pond.sub.org>
 
        * gnus-start.el (gnus-read-descriptions-file): Fix
-       enable-multibyte-characters. 
+       enable-multibyte-characters.
 
 1997-12-05  Dave Love  <d.love@dl.ac.uk>
 
@@ -2112,7 +2301,7 @@ Sat Dec  6 17:23:26 1997  Christian von Roques  <roques@scalar.pond.sub.org>
 
 Sat Dec  6 17:16:28 1997  Lars Balker Rasmussen  <lbr@mjolner.dk>
 
-       * gnus-art.el (article-make-date-line): Don't add extra newlines. 
+       * gnus-art.el (article-make-date-line): Don't add extra newlines.
 
 1997-11-27  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
@@ -2127,7 +2316,7 @@ Sat Dec  6 17:04:40 1997  Kim-Minh Kaplan  <KimMinh.Kaplan@utopia.eunet.fr>
        * nnml.el (nnml-parse-head): Out-of-bounds fix.
 
        * nndraft.el (nndraft-request-associate-buffer): Get proper file
-       name. 
+       name.
 
 Sat Dec  6 15:35:37 1997  Gary D. Foster  <Gary.Foster@Corp.Sun.COM>
 
@@ -2136,7 +2325,7 @@ Sat Dec  6 15:35:37 1997  Gary D. Foster  <Gary.Foster@Corp.Sun.COM>
 Thu Nov 27 19:56:59 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-agent.el (gnus-summary-set-agent-mark): Remove marks
-       properly. 
+       properly.
 
 1997-11-27  Christoph Wedler  <wedler@fmi.uni-passau.de>
 
@@ -2165,7 +2354,7 @@ Wed Nov 26 18:19:29 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * nnweb.el (nnweb-type-definition): Rescued dejanewsold.
 
        * gnus-mh.el (gnus-summary-save-in-folder): Reverted to old
-       version. 
+       version.
 
        * gnus-sum.el (gnus-kill-or-deaden-summary): Save excursion.
 
@@ -2174,7 +2363,7 @@ Wed Nov 26 18:19:29 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * gnus-start.el (gnus-setup-news): Always push archive server.
 
        * gnus-sum.el (gnus-read-header): Would bug out on sparse
-       articles. 
+       articles.
 
 Wed Nov 26 17:50:41 1997  Kurt Swanson  <kurt@dna.lth.se>
 
@@ -2187,16 +2376,16 @@ Wed Nov 26 17:40:57 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 Wed Nov 26 16:04:25 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-sum.el (gnus-summary-move-article): Don't work on canceled
-       articles. 
+       articles.
 
        * gnus-start.el (gnus-subscribe-hierarchical-interactive): Use
-       `read-char-exclusive'. 
+       `read-char-exclusive'.
 
        * gnus-sum.el (gnus-summary-mode): Localize
-       gnus-summary-dummy-line-format. 
+       gnus-summary-dummy-line-format.
 
        * nnml.el (nnml-open-nov): Check that the file exists before
-       inserting it. 
+       inserting it.
 
        * gnus-art.el (article-date-ut): Insert a newline if needed.
 
@@ -2214,7 +2403,7 @@ Wed Nov 26 15:47:40 1997  Greg Klanderman  <greg@alphatech.com>
 Wed Nov 26 15:43:53 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-start.el (gnus-setup-news): Protect against nil
-       gnus-message-archive-method. 
+       gnus-message-archive-method.
 
 1997-11-26  Christoph Wedler  <wedler@fmi.uni-passau.de>
 
@@ -2238,7 +2427,7 @@ Wed Nov 26 13:50:01 1997  Alastair Burt <alastair.burt@dfki.de>
 
 Wed Nov 26 13:45:35 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
-       * gnus-util.el (gnus-kill-all-overlays): Remove check for XEmacs. 
+       * gnus-util.el (gnus-kill-all-overlays): Remove check for XEmacs.
 
 1997-09-30  Dave Love  <d.love@dl.ac.uk>
 
@@ -2268,7 +2457,7 @@ Wed Nov 26 10:31:17 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        that spanned several lines.
 
        * gnus-util.el (gnus-date-iso8601): Didn't pick out the date
-       header. 
+       header.
 
        * gnus-demon.el (gnus-demon-scan-mail): Clean inboxes.
 
@@ -2280,7 +2469,7 @@ Wed Nov 26 10:31:17 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Wed Nov 26 08:54:26 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-sum.el (gnus-summary-update-info): Would use wrong group
-       name. 
+       name.
 
 1997-11-26  Hrvoje Niksic  <hniksic@srce.hr>
 
@@ -2305,7 +2494,7 @@ Wed Nov 26 08:54:26 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
 Wed Nov 26 08:31:28 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
-       * gnus-art.el (gnus-stop-date-timer): Cancel instead of delete. 
+       * gnus-art.el (gnus-stop-date-timer): Cancel instead of delete.
        (gnus-start-date-timer): Use the numerical prefix.
 
 Tue Nov 25 20:03:34 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
@@ -2319,7 +2508,7 @@ Tue Nov 25 19:57:55 1997  Dan Christensen  <jdc@chow.mat.jhu.edu>
 Tue Nov 25 19:54:00 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-move.el (gnus-move-group-to-server): Protect agains
-       nil-ness. 
+       nil-ness.
 
 Tue Nov 25 19:03:38 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
@@ -2328,7 +2517,7 @@ Tue Nov 25 19:03:38 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 Tue Nov 25 16:05:01 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-sum.el (gnus-read-header): Remove thread entry before
-       rebuilding. 
+       rebuilding.
 
        * gnus-cite.el (gnus-cite-add-face): Keep track of all overlays.
 
@@ -2338,10 +2527,10 @@ Tue Nov 25 16:05:01 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        (article-date-ut): Would move around.
 
        * gnus-group.el (gnus-group-read-ephemeral-group): Accept server
-       names. 
+       names.
 
        * gnus-srvr.el (gnus-browse-foreign-server): Use proper server
-       names. 
+       names.
 
        * gnus.el (gnus-group-prefixed-name): Give the right result for
        native groups.
@@ -2373,7 +2562,7 @@ Mon Nov 24 18:07:21 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Mon Nov 24 17:36:00 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * message.el (message-reply): Respect Mail-Copies-To even when
-       `to-address'. 
+       `to-address'.
 
 Mon Nov 24 17:32:47 1997  Thor Kristoffersen  <thor@unik.no>
 
@@ -2385,7 +2574,7 @@ Mon Nov 24 16:18:19 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        entering group.
 
        * gnus-start.el (gnus-setup-news): Get correct value of archive
-       server. 
+       server.
 
 Wed Oct  8 20:29:35 1997  Robert Bihlmeyer  <robbe@orcus.priv.at>
 
@@ -2398,7 +2587,7 @@ Mon Nov 24 14:09:00 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-sum.el (gnus-last-newsgroup-variables-set): New variable.
        (gnus-set-global-variables): Don't do to much; gets run off of
-       pre-command-hook. 
+       pre-command-hook.
        Got rid of gnus-set-global-variables throughout.
        (gnus-summary-exit): Update adaptive scoring here.
        (gnus-summary-isearch-article): Widen.
@@ -2430,12 +2619,12 @@ Sun Nov 23 14:04:07 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        bound.  And gagged.
 
        * message.el (message-send-mail-with-mh): Use
-       `mh-new-draft-name'. 
+       `mh-new-draft-name'.
 
        * nnfolder.el (nnfolder-read-folder): Save new buffers.
 
        * gnus-sum.el (gnus-summary-make-menu-bar): Removed "write to
-       file". 
+       file".
 
        * gnus-util.el (gnus-byte-code): Use indirect-function.
 
@@ -2444,7 +2633,7 @@ Sun Nov 23 14:04:07 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * gnus-sum.el (gnus-summary-reparent-thread): Update thread.
 
        * gnus-score.el (gnus-all-score-files): Don't do anything unless
-       GROUP. 
+       GROUP.
 
        * nnmail.el (nnmail-split-it): Save-excursion.
        (nnmail-group-pathname): Translate file chars.
@@ -2452,7 +2641,7 @@ Sun Nov 23 14:04:07 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Sun Nov 23 13:41:10 1997  Gunnar Horrigmo  <horrigmo@online.no>
 
        * gnus-sum.el (gnus-summary-exit): Don't skip if group
-       disappeared. 
+       disappeared.
 
 Sun Nov 23 13:32:55 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -2478,7 +2667,7 @@ Sun Nov 23 12:44:38 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Sun Nov 23 12:15:00 1997  Hallvard B. Furuseth  <h.b.furuseth@usit.uio.no>
 
        * gnus-sum.el (gnus-summary-limit-include-thread): Interactive
-       fix. 
+       fix.
 
 Sun Nov 23 07:06:58 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -2499,7 +2688,7 @@ Sat Nov 22 18:04:34 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
 Sat Nov 22 18:01:26 1997  Didier Verna  <verna@inf.enst.fr>
 
-       * gnus-sum.el (gnus-summary-remove-bookmark): Interactive spec. 
+       * gnus-sum.el (gnus-summary-remove-bookmark): Interactive spec.
 
 Mon Nov 17 23:50:51 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -2517,7 +2706,7 @@ Thu Nov 13 22:57:23 1997  Kenichi Handa  <handa@etl.go.jp>
 Thu Nov 13 22:30:19 1997  seokchan lee  <chan@xfer.kren.nm.kr>
 
        * message.el (message-ignored-supersedes-headers): Ignore more
-       headers. 
+       headers.
 
 Thu Nov 13 22:28:13 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -2549,15 +2738,15 @@ Thu Nov  6 01:53:51 1997  Stefan Waldherr  <swa@cs.cmu.edu>
 Thu Nov  6 01:52:43 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-topic.el (gnus-topic-change-level): Really delete multiple
-       instances. 
+       instances.
 
 Wed Nov  5 14:04:54 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-topic.el (gnus-topic-update-topic-line): Possibly fix nil
-       numbers. 
+       numbers.
 
        * gnus-sum.el (gnus-summary-show-article): New command and
-       keystroke. 
+       keystroke.
 
 Tue Nov  4 06:29:58 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -2573,7 +2762,7 @@ Sat Oct 25 05:52:22 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Sat Oct 25 00:39:42 1997  Lars Balker Rasmussen  <lbr@mjolner.dk>
 
        * gnus-art.el (gnus-article-fill-paragraph): New command and
-       keystroke. 
+       keystroke.
 
 1997-10-16  Colin Rafferty  <craffert@ml.com>
 
@@ -2600,7 +2789,7 @@ Mon Oct 13 00:01:35 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Sun Oct 12 23:54:55 1997  ISO-2022-JP  <ichikawa@hv.epson.co.jp>
 
        * gnus-agent.el (gnus-agent-article-file-coding-system): New
-       variable. 
+       variable.
 
 Sun Oct 12 16:46:11 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -2628,21 +2817,21 @@ Sat Oct  4 00:16:39 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * nnmail.el (nnmail-delete-incoming): Changed default to nil.
 
        * gnus-int.el (gnus-request-scan): Don't do anything if
-       unplugged. 
+       unplugged.
 
 Fri Oct  3 21:09:19 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-art.el (gnus-ignored-headers): Doc fix.
 
        * gnus-demon.el (gnus-demon-add-nntp-close-connection): New
-       function. 
+       function.
        (gnus-demon-nntp-close-connection): Ditto.
 
        * nntp.el (nntp-last-command-time): New variable.
        (nntp-retrieve-data): Use it.
 
        * message.el (message-news-p): Messages with Posted-To aren't
-       news. 
+       news.
        (message-mode): Heed message-yank-prefix when filling.
 
        * nndraft.el (nndraft-request-restore-buffer): Remove Xrefs and
@@ -2664,7 +2853,7 @@ Sat Sep 27 12:57:44 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * gnus-xmas.el (gnus-xmas-window-edges): New function.
 
        * gnus-score.el (gnus-score-edit-current-scores): Don't select
-       window. 
+       window.
 
 Sat Sep 27 12:52:31 1997  Hallvard B. Furuseth  <h.b.furuseth@usit.uio.no>
 
@@ -2677,10 +2866,10 @@ Sat Sep 27 09:22:15 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * gnus-sum.el (gnus-summary-pop-article): Force.
 
        * gnus-art.el (gnus-article-prepare): Push the article onto the
-       history. 
+       history.
 
        * gnus-sum.el (gnus-summary-pop-article): Pop to the right
-       article. 
+       article.
 
        * gnus-demon.el (gnus-demon-scan-news): Save excursion.
 
@@ -2721,7 +2910,7 @@ Sat Sep 27 04:32:45 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 Sat Sep 27 03:50:12 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * message.el (message-send): Post without asking.
-       (message-mode): Modify paragraphs-start and paragraph-separate. 
+       (message-mode): Modify paragraphs-start and paragraph-separate.
        (message-newline-and-reformat): New command and keystroke.
 
 Thu Sep 25 00:13:41 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
@@ -2769,17 +2958,17 @@ Tue Sep 23 01:41:04 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * dgnushack.el (dgnushack-compile): Check for cus-edit.
 
        * message.el (message-included-forward-headers): Include Mime
-       headers. 
+       headers.
        (message-send): Allow posting without confirming from Agent.
 
 Mon Sep 22 05:43:14 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * dgnushack.el (byte-compile-warnings): Don't warn about obsolete
-       variables. 
+       variables.
 
        * gnus-sum.el (gnus-summary-refer-thread): New command and
-       keystroke. 
-       (gnus-summary-limit-include-thread): New command and keystroke. 
+       keystroke.
+       (gnus-summary-limit-include-thread): New command and keystroke.
        (gnus-summary-articles-in-thread): New function.
        (gnus-articles-in-thread): Renamed.
 
@@ -2814,14 +3003,14 @@ Sun Sep 21 00:14:40 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        (gnus-current-prefix-symbols): New variable.
 
        * gnus-score.el (gnus-summary-increase-score): Take symbolic
-       prefix. 
+       prefix.
 
        * gnus.el (gnus-interactive): Removed.
        (gnus-interactive): Renamed from gnus-interactive-1.
        (gnus-symbolic-argument): New command.
 
        * gnus-draft.el (gnus-draft-send-message): Disable message
-       checks. 
+       checks.
        (gnus-draft-send): Ditto.
        (gnus-draft-setup): Don't save buffer.
 
@@ -2830,7 +3019,7 @@ Sun Sep 21 00:14:40 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * gnus-group.el (gnus-group-iterate): Use gensymmed variables.
 
        * pop3.el (pop3-md5): `with-temp-buffer' doesn't exist in Emacs
-       19.34. 
+       19.34.
 
        * nneething.el (nneething-directory): Defvarred.
 
@@ -2847,12 +3036,12 @@ Sun Sep 21 00:14:40 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        throughout.
 
        * gnus-sum.el (gnus-summary-edit-article): Supply additional
-       param. 
+       param.
 
        * gnus-group.el (gnus-group-iterate): Undo bogus change.
 
        * gnus-agent.el (gnus-agentize): Just call gnus-open-agent
-       directly. 
+       directly.
 
        * gnus.el (gnus-interactive): New macro.
        (gnus-interactive-1): New function.
@@ -2919,12 +3108,12 @@ Thu Sep 18 03:33:54 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-msg.el (gnus-setup-message): Slap a progn around forms.
 
-       * nndraft.el (nndraft-articles): Make sure directory exists. 
+       * nndraft.el (nndraft-articles): Make sure directory exists.
 
        * message.el (message-mode): Don't delete article.
 
        * nnmh.el (nnmh-request-accept-article): Don't save when
-       noinsert. 
+       noinsert.
 
 Wed Sep 17 03:37:59 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -2947,10 +3136,10 @@ Wed Sep 17 02:30:04 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        References.
 
        * gnus-agent.el (gnus-agent-fetch-group-1): Separated out into
-       function. 
+       function.
 
        * message.el (message-delete-not-region): New command and
-       keystroke. 
+       keystroke.
 
 Tue Sep 16 00:58:26 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -2963,7 +3152,7 @@ Tue Sep 16 00:58:26 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        * gnus-agent.el (gnus-agentize): Don't set twice.
 
        * gnus-art.el (gnus-article-prepare): Go to the right line before
-       marking. 
+       marking.
 
        * gnus-start.el: Renamed the drafts group.
 
@@ -2982,7 +3171,7 @@ Mon Sep 15 00:53:50 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
        (gnus-get-newsgroup-headers): Ditto.
 
        * gnus-draft.el (gnus-group-send-drafts): Don't send when
-       unplugged. 
+       unplugged.
 
        * gnus-sum.el (gnus-summary-read-group): Don't show-all when
        skipping groups.
index 33ab63c..f3409ec 100644 (file)
@@ -107,7 +107,7 @@ If nil, only read articles will be expired."
   (gnus-agent-read-servers)
   (gnus-category-read)
   (setq gnus-agent-overview-buffer
-       (get-buffer-create " *Gnus agent overview*"))
+       (gnus-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))
@@ -535,7 +535,8 @@ the actual number of articles toggled is returned."
           (file (gnus-agent-lib-file "active")))
       (gnus-make-directory (file-name-directory file))
       (nnheader-temp-write file
-       (insert-file-contents file)
+       (when (file-exists-p file)
+         (insert-file-contents file))
        (goto-char (point-min))
        (when (re-search-forward (concat "^" (regexp-quote group) " ") nil t)
          (gnus-delete-line))
@@ -572,7 +573,7 @@ the actual number of articles toggled is returned."
 (defun gnus-agent-open-history ()
   (save-excursion
     (push (cons (gnus-agent-method)
-               (set-buffer (get-buffer-create
+               (set-buffer (gnus-get-buffer-create
                             (format " *Gnus agent %s history*"
                                     (gnus-agent-method)))))
          gnus-agent-history-buffers)
@@ -714,7 +715,7 @@ the actual number of articles toggled is returned."
              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*"
+       (set-buffer (gnus-get-buffer-create (format " *Gnus agent overview %s*"
                                               group)))
        (when (= (point-max) (point-min))
          (push (cons group (current-buffer)) gnus-agent-buffer-alist)
@@ -1063,8 +1064,7 @@ The following commands are available:
 (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)
+      (set-buffer (gnus-get-buffer-create gnus-category-buffer))
       (gnus-category-mode))))
 
 (defun gnus-category-prepare ()
@@ -1272,7 +1272,7 @@ The following commands are available:
        history overview file histories elem art nov-file low info
        unreads marked article)
     (save-excursion
-      (setq overview (get-buffer-create " *expire overview*"))
+      (setq overview (gnus-get-buffer-create " *expire overview*"))
       (while (setq gnus-command-method (pop methods))
        (let ((expiry-hashtb (gnus-make-hashtable 1023)))
        (gnus-agent-open-history)
@@ -1348,6 +1348,7 @@ The following commands are available:
                   (delete-file file))
                 ;; Schedule the history line for nuking.
                 (push (cdr elem) histories)))
+            (gnus-make-directory (file-name-directory nov-file))
             (write-region (point-min) (point-max) nov-file nil 'silent)
             ;; Delete the unwanted entries in the alist.
             (setq gnus-agent-article-alist
index 224408b..6996a10 100644 (file)
@@ -456,12 +456,12 @@ Obsolete; use the face `gnus-signature-face' for customizations instead."
 (defface gnus-header-from-face
   '((((class color)
       (background dark))
-     (:foreground "spring green" :bold t))
+     (:foreground "spring green"))
     (((class color)
       (background light))
-     (:foreground "red3" :bold t))
+     (:foreground "red3"))
     (t
-     (:bold t :italic t)))
+     (:italic t)))
   "Face used for displaying from headers."
   :group 'gnus-article-headers
   :group 'gnus-article-highlight)
@@ -469,10 +469,10 @@ Obsolete; use the face `gnus-signature-face' for customizations instead."
 (defface gnus-header-subject-face
   '((((class color)
       (background dark))
-     (:foreground "SeaGreen3" :bold t))
+     (:foreground "SeaGreen3"))
     (((class color)
       (background light))
-     (:foreground "red4" :bold t))
+     (:foreground "red4"))
     (t
      (:bold t :italic t)))
   "Face used for displaying subject headers."
@@ -482,12 +482,12 @@ Obsolete; use the face `gnus-signature-face' for customizations instead."
 (defface gnus-header-newsgroups-face
   '((((class color)
       (background dark))
-     (:foreground "yellow" :bold t :italic t))
+     (:foreground "yellow" :italic t))
     (((class color)
       (background light))
-     (:foreground "MidnightBlue" :bold t :italic t))
+     (:foreground "MidnightBlue" :italic t))
     (t
-     (:bold t :italic t)))
+     (:italic t)))
   "Face used for displaying newsgroups headers."
   :group 'gnus-article-headers
   :group 'gnus-article-highlight)
@@ -588,7 +588,7 @@ Initialized from `text-mode-syntax-table.")
    b e (cons 'article-type (cons type gnus-hidden-properties))))
 
 (defun gnus-article-unhide-text-type (b e type)
-  "Hide text of TYPE between B and E."
+  "Unhide text of TYPE between B and E."
   (remove-text-properties
    b e (cons 'article-type (cons type gnus-hidden-properties)))
   (when (memq 'intangible gnus-hidden-properties)
@@ -907,15 +907,19 @@ characters to translate to."
        (nnheader-narrow-to-headers)
        (setq from (message-fetch-field "from"))
        (goto-char (point-min))
-       (while (and gnus-article-x-face-command
-                   (or force
-                       ;; Check whether this face is censored.
-                       (not gnus-article-x-face-too-ugly)
-                       (and gnus-article-x-face-too-ugly from
-                            (not (string-match gnus-article-x-face-too-ugly
-                                               from))))
-                   ;; Has to be present.
-                   (re-search-forward "^X-Face: " nil t))
+       ;; This used to try to do multiple faces (`while' instead of
+       ;; `when' below), but (a) sending multiple EOFs to xv doesn't
+       ;; work (b) it can crash some versions of Emacs (c) are
+       ;; multiple faces really something to encourage?
+       (when (and gnus-article-x-face-command
+                  (or force
+                      ;; Check whether this face is censored.
+                      (not gnus-article-x-face-too-ugly)
+                      (and gnus-article-x-face-too-ugly from
+                           (not (string-match gnus-article-x-face-too-ugly
+                                              from))))
+                  ;; Has to be present.
+                  (re-search-forward "^X-Face: " nil t))
          ;; We now have the area of the buffer where the X-Face is stored.
          (save-excursion
            (let ((beg (point))
@@ -958,27 +962,25 @@ always hide."
        (goto-char (point-min))
        ;; Hide the "header".
        (when (search-forward "\n-----BEGIN PGP SIGNED MESSAGE-----\n" nil t)
-         (gnus-article-hide-text-type (1+ (match-beginning 0))
-                                      (match-end 0) 'pgp)
+         (delete-region (1+ (match-beginning 0)) (match-end 0))
          (setq beg (point))
          ;; Hide the actual signature.
          (and (search-forward "\n-----BEGIN PGP SIGNATURE-----\n" nil t)
               (setq end (1+ (match-beginning 0)))
-              (gnus-article-hide-text-type
+              (delete-region
                end
                (if (search-forward "\n-----END PGP SIGNATURE-----\n" nil t)
                    (match-end 0)
                  ;; Perhaps we shouldn't hide to the end of the buffer
                  ;; if there is no end to the signature?
-                 (point-max))
-               'pgp))
+                 (point-max))))
          ;; Hide "- " PGP quotation markers.
          (when (and beg end)
            (narrow-to-region beg end)
            (goto-char (point-min))
            (while (re-search-forward "^- " nil t)
-             (gnus-article-hide-text-type
-              (match-beginning 0) (match-end 0) 'pgp))
+             (delete-region
+              (match-beginning 0) (match-end 0)))
            (widen))
          (gnus-run-hooks 'gnus-article-hide-pgp-hook))))))
 
@@ -1086,37 +1088,38 @@ always hide."
 (defun gnus-article-narrow-to-signature ()
   "Narrow to the signature; return t if a signature is found, else nil."
   (widen)
-  (when (and (boundp 'mime::preview/content-list)
-            mime::preview/content-list)
-    ;; We have a MIMEish article, so we use the MIME data to narrow.
-    (let ((pcinfo (car (last mime::preview/content-list))))
-      (ignore-errors
-       (narrow-to-region
-        (funcall (intern "mime::preview-content-info/point-min") pcinfo)
-        (point-max)))))
-
-  (when (gnus-article-search-signature)
-    (forward-line 1)
-    ;; Check whether we have some limits to what we consider
-    ;; to be a signature.
-    (let ((limits (if (listp gnus-signature-limit) gnus-signature-limit
-                   (list gnus-signature-limit)))
-         limit limited)
-      (while (setq limit (pop limits))
-       (if (or (and (integerp limit)
-                    (< (- (point-max) (point)) limit))
-               (and (floatp limit)
-                    (< (count-lines (point) (point-max)) limit))
-               (and (gnus-functionp limit)
-                    (funcall limit))
-               (and (stringp limit)
-                    (not (re-search-forward limit nil t))))
-           ()                          ; This limit did not succeed.
-         (setq limited t
-               limits nil)))
-      (unless limited
-       (narrow-to-region (point) (point-max))
-       t))))
+  (let ((inhibit-point-motion-hooks t))
+    (when (and (boundp 'mime::preview/content-list)
+              mime::preview/content-list)
+      ;; We have a MIMEish article, so we use the MIME data to narrow.
+      (let ((pcinfo (car (last mime::preview/content-list))))
+       (ignore-errors
+         (narrow-to-region
+          (funcall (intern "mime::preview-content-info/point-min") pcinfo)
+          (point-max)))))
+
+    (when (gnus-article-search-signature)
+      (forward-line 1)
+      ;; Check whether we have some limits to what we consider
+      ;; to be a signature.
+      (let ((limits (if (listp gnus-signature-limit) gnus-signature-limit
+                     (list gnus-signature-limit)))
+           limit limited)
+       (while (setq limit (pop limits))
+         (if (or (and (integerp limit)
+                      (< (- (point-max) (point)) limit))
+                 (and (floatp limit)
+                      (< (count-lines (point) (point-max)) limit))
+                 (and (gnus-functionp limit)
+                      (funcall limit))
+                 (and (stringp limit)
+                      (not (re-search-forward limit nil t))))
+             ()                        ; This limit did not succeed.
+           (setq limited t
+                 limits nil)))
+       (unless limited
+         (narrow-to-region (point) (point-max))
+         t)))))
 
 (defun gnus-article-search-signature ()
   "Search the current buffer for the signature separator.
@@ -1409,7 +1412,7 @@ is to run."
   (unless n
     (setq n 1))
   (gnus-stop-date-timer)
-  (setq article-lapsed-timer 
+  (setq article-lapsed-timer
        (nnheader-run-at-time 1 n 'article-update-date-lapsed)))
 
 (defun gnus-stop-date-timer ()
@@ -1891,9 +1894,9 @@ commands:
   (use-local-map gnus-article-mode-map)
   (gnus-update-format-specifications nil 'article-mode)
   (set (make-local-variable 'page-delimiter) gnus-page-delimiter)
-  (make-local-variable 'gnus-page-broken) 
-  (make-local-variable 'gnus-button-marker-list) 
-  (make-local-variable 'gnus-article-current-summary) 
+  (make-local-variable 'gnus-page-broken)
+  (make-local-variable 'gnus-button-marker-list)
+  (make-local-variable 'gnus-article-current-summary)
   (gnus-set-default-directory)
   (buffer-disable-undo (current-buffer))
   (setq buffer-read-only t)
@@ -1919,23 +1922,20 @@ commands:
        (gnus-set-global-variables)))
     ;; Init original article buffer.
     (save-excursion
-      (set-buffer (get-buffer-create gnus-original-article-buffer))
+      (set-buffer (gnus-get-buffer-create gnus-original-article-buffer))
       (buffer-disable-undo (current-buffer))
       (setq major-mode 'gnus-original-article-mode)
-      (gnus-add-current-to-buffer-list)
       (make-local-variable 'gnus-original-article))
     (if (get-buffer name)
        (save-excursion
          (set-buffer name)
          (buffer-disable-undo (current-buffer))
          (setq buffer-read-only t)
-         (gnus-add-current-to-buffer-list)
          (unless (eq major-mode 'gnus-article-mode)
            (gnus-article-mode))
          (current-buffer))
       (save-excursion
-       (set-buffer (get-buffer-create name))
-       (gnus-add-current-to-buffer-list)
+       (set-buffer (gnus-get-buffer-create name))
        (gnus-article-mode)
        (make-local-variable 'gnus-summary-buffer)
        (current-buffer)))))
@@ -2038,7 +2038,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
                      (message "Message marked for downloading"))
                  (gnus-summary-mark-article article gnus-canceled-mark)
                  (unless (memq article gnus-newsgroup-sparse)
-                   (gnus-error 1 
+                   (gnus-error 1
                     "No such article (may have expired or been canceled)")))))
          (if (or (eq result 'pseudo) (eq result 'nneething))
              (progn
@@ -2119,6 +2119,8 @@ If ALL-HEADERS is non-nil, no headers are hidden."
            (gnus-set-mode-line 'article)
            (gnus-configure-windows 'article)
            (goto-char (point-min))
+           (search-forward "\n\n" nil t)
+           (set-window-point (get-buffer-window (current-buffer)) (point))
            t))))))
 
 (defun gnus-article-wash-status ()
@@ -2143,7 +2145,9 @@ If ALL-HEADERS is non-nil, no headers are hidden."
              (if mime ?m ? )
              (if emphasis ?e ? )))))
 
-(defun gnus-article-hide-headers-if-wanted ()
+(fset 'gnus-article-hide-headers-if-wanted 'gnus-article-maybe-hide-headers)
+
+(defun gnus-article-maybe-hide-headers ()
   "Hide unwanted headers if `gnus-have-all-headers' is nil.
 Provided for backwards compatibility."
   (or (save-excursion (set-buffer gnus-summary-buffer) gnus-have-all-headers)
@@ -2504,6 +2508,26 @@ If given a prefix, show the hidden text instead."
           ;; It was a pseudo.
           (t article)))
 
+      ;; Associate this article with the current summary buffer.
+      (setq gnus-article-current-summary gnus-summary-buffer)
+
+      ;; Take the article from the original article buffer
+      ;; and place it in the buffer it's supposed to be in.
+      (when (and (get-buffer gnus-article-buffer)
+                (equal (buffer-name (current-buffer))
+                       (buffer-name (get-buffer gnus-article-buffer))))
+       (save-excursion
+         (if (get-buffer gnus-original-article-buffer)
+             (set-buffer gnus-original-article-buffer)
+           (set-buffer (gnus-get-buffer-create gnus-original-article-buffer))
+           (buffer-disable-undo (current-buffer))
+           (setq major-mode 'gnus-original-article-mode)
+           (setq buffer-read-only t))
+         (let (buffer-read-only)
+           (erase-buffer)
+           (insert-buffer-substring gnus-article-buffer))
+         (setq gnus-original-article (cons group article))))
+
       ;; Update sparse articles.
       (when (and do-update-line
                 (or (numberp article)
@@ -2577,6 +2601,7 @@ groups."
   (let ((winconf (current-window-configuration)))
     (set-buffer gnus-article-buffer)
     (gnus-article-edit-mode)
+    (gnus-article-delete-text-of-type 'annotation)
     (gnus-set-text-properties (point-min) (point-max) nil)
     (gnus-configure-windows 'edit-article)
     (setq gnus-article-edit-done-function exit-func)
@@ -3178,7 +3203,8 @@ forbidden in URL encoding."
     (gnus-eval-format
      gnus-prev-page-line-format nil
      `(gnus-prev t local-map ,gnus-prev-page-map
-                gnus-callback gnus-article-button-prev-page))))
+                gnus-callback gnus-article-button-prev-page
+                gnus-type annotation))))
 
 (defvar gnus-next-page-map nil)
 (unless gnus-next-page-map
@@ -3206,9 +3232,10 @@ forbidden in URL encoding."
 (defun gnus-insert-next-page-button ()
   (let ((buffer-read-only nil))
     (gnus-eval-format gnus-next-page-line-format nil
-                     `(gnus-next t local-map ,gnus-next-page-map
-                                 gnus-callback
-                                 gnus-article-button-next-page))))
+                     `(gnus-next
+                       t local-map ,gnus-next-page-map
+                       gnus-callback gnus-article-button-next-page
+                       gnus-type annotation))))
 
 (defun gnus-article-button-next-page (arg)
   "Go to the next page."
index d9934e5..d370673 100644 (file)
   "Return the backlog buffer."
   (or (get-buffer gnus-backlog-buffer)
       (save-excursion
-       (set-buffer (get-buffer-create gnus-backlog-buffer))
+       (set-buffer (gnus-get-buffer-create gnus-backlog-buffer))
        (buffer-disable-undo (current-buffer))
        (setq buffer-read-only t)
-       (gnus-add-current-to-buffer-list)
        (get-buffer gnus-backlog-buffer))))
 
 (defun gnus-backlog-setup ()
index ff070f8..a772c6b 100644 (file)
   :group 'gnus-cache
   :type '(set (const ticked) (const dormant) (const unread) (const read)))
 
+(defcustom gnus-cacheable-groups nil
+  "*Groups that match this regexp will be cached.
+
+If you only want to cache your nntp groups, you could set this
+variable to \"^nntp\".
+
+If a group matches both gnus-cacheable-groups and gnus-uncacheable-groups
+it's not cached."
+  :group 'gnus-cache
+  :type '(choice (const :tag "off" nil)
+                regexp))
+
 (defcustom gnus-uncacheable-groups nil
   "*Groups that match this regexp will not be cached.
 
 If you want to avoid caching your nnml groups, you could set this
-variable to \"^nnml\"."
+variable to \"^nnml\".
+
+If a group matches both gnus-cacheable-groups and gnus-uncacheable-groups
+it's not cached."
   :group 'gnus-cache
   :type '(choice (const :tag "off" nil)
                 regexp))
@@ -139,7 +154,9 @@ variable to \"^nnml\"."
       (when (and number
                 (> number 0)           ; Reffed article.
                 (or force
-                    (and (or (not gnus-uncacheable-groups)
+                     (and (or (not gnus-cacheable-groups)
+                              (string-match gnus-cacheable-groups group))
+                          (or (not gnus-uncacheable-groups)
                              (not (string-match
                                    gnus-uncacheable-groups group)))
                          (gnus-cache-member-of-class
@@ -375,7 +392,7 @@ Returns the list of articles removed."
     (save-excursion
       (setq gnus-cache-buffer
            (cons group
-                 (set-buffer (get-buffer-create " *gnus-cache-overview*"))))
+                 (set-buffer (gnus-get-buffer-create " *gnus-cache-overview*"))))
       (buffer-disable-undo (current-buffer))
       ;; Insert the contents of this group's cache overview.
       (erase-buffer)
@@ -463,7 +480,7 @@ Returns the list of articles removed."
       articles)))
 
 (defun gnus-cache-braid-nov (group cached &optional file)
-  (let ((cache-buf (get-buffer-create " *gnus-cache*"))
+  (let ((cache-buf (gnus-get-buffer-create " *gnus-cache*"))
        beg end)
     (gnus-cache-save-buffers)
     (save-excursion
@@ -495,7 +512,7 @@ Returns the list of articles removed."
     (kill-buffer cache-buf)))
 
 (defun gnus-cache-braid-heads (group cached)
-  (let ((cache-buf (get-buffer-create " *gnus-cache*")))
+  (let ((cache-buf (gnus-get-buffer-create " *gnus-cache*")))
     (save-excursion
       (set-buffer cache-buf)
       (buffer-disable-undo (current-buffer))
index 5dd0f89..5710910 100644 (file)
@@ -1,12 +1,7 @@
 ;;; gnus-cite.el --- parse citations in articles for Gnus
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Per Abrahamsen <abraham@iesd.auc.dk>
-;; Keywords: news, mail
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; Author: Per Abhiddenware; 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.
@@ -52,8 +47,13 @@ article has citations."
   :type '(choice (const :tag "no" nil)
                  (const :tag "yes" t)))
 
-(defcustom gnus-cited-text-button-line-format "%(%{[...]%}%)\n"
-  "Format of cited text buttons."
+(defcustom gnus-cited-opened-text-button-line-format "%(%{[-]%}%)\n"
+  "Format of opened cited text buttons."
+  :group 'gnus-cite
+  :type 'string)
+
+(defcustom gnus-cited-closed-text-button-line-format "%(%{[+]%}%)\n"
+  "Format of closed cited text buttons."
   :group 'gnus-cite
   :type 'string)
 
@@ -100,7 +100,7 @@ The first regexp group should match the Supercite attribution."
   :group 'gnus-cite
   :type 'integer)
 
-(defcustom gnus-cite-attribution-prefix 
+(defcustom gnus-cite-attribution-prefix
   "In article\\|in <\\|On \\(Mon\\|Tue\\|Wed\\|Thu\\|Fri\\|Sat\\|Sun\\),"
   "*Regexp matching the beginning of an attribution line."
   :group 'gnus-cite
@@ -114,7 +114,7 @@ The text matching the first grouping will be used as a button."
   :type 'regexp)
 
 (defface gnus-cite-attribution-face '((t
-                                      (:underline t)))
+                                      (:italic t)))
   "Face used for attribution lines.")
 
 (defcustom gnus-cite-attribution-face 'gnus-cite-attribution-face
@@ -281,11 +281,15 @@ This should make it easier to see who wrote what."
 ;; PREFIX: Is the citation prefix of the attribution line(s), and
 ;; TAG: Is a Supercite tag, if any.
 
-(defvar gnus-cited-text-button-line-format-alist
+(defvar gnus-cited-opened-text-button-line-format-alist
   `((?b (marker-position beg) ?d)
     (?e (marker-position end) ?d)
     (?l (- end beg) ?d)))
-(defvar gnus-cited-text-button-line-format-spec nil)
+(defvar gnus-cited-opened-text-button-line-format-spec nil)
+(defvar gnus-cited-closed-text-button-line-format-alist
+  gnus-cited-opened-text-button-line-format-alist)
+(defvar gnus-cited-closed-text-button-line-format-spec nil)
+
 
 ;;; Commands:
 
@@ -450,7 +454,8 @@ 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)))
-  (gnus-set-format 'cited-text-button t)
+  (gnus-set-format 'cited-opened-text-button t)
+  (gnus-set-format 'cited-closed-text-button t)
   (save-excursion
     (set-buffer gnus-article-buffer)
     (cond
@@ -465,7 +470,7 @@ always hide."
            (inhibit-point-motion-hooks t)
            (props (nconc (list 'article-type 'cite)
                          gnus-hidden-properties))
-           beg end)
+           beg end start)
        (while marks
          (setq beg nil
                end nil)
@@ -494,26 +499,49 @@ always hide."
            (unless (save-excursion (search-backward "\n\n" nil t))
              (insert "\n"))
            (put-text-property
-            (point)
+            (setq start (point-marker))
             (progn
               (gnus-article-add-button
                (point)
-               (progn (eval gnus-cited-text-button-line-format-spec) (point))
+               (progn (eval gnus-cited-closed-text-button-line-format-spec)
+                      (point))
                `gnus-article-toggle-cited-text
-               (cons beg end))
+               (list (cons beg end) start))
               (point))
             'article-type 'annotation)
            (set-marker beg (point)))))))))
 
-(defun gnus-article-toggle-cited-text (region)
+(defun gnus-article-toggle-cited-text (args)
   "Toggle hiding the text in REGION."
-  (let (buffer-read-only)
-    (funcall 
-     (if (text-property-any
-         (car region) (1- (cdr region))
-         (car gnus-hidden-properties) (cadr gnus-hidden-properties))
+  (let* ((region (car args))
+        (start (cadr args))
+        (hidden
+         (text-property-any
+          (car region) (1- (cdr region))
+          (car gnus-hidden-properties) (cadr gnus-hidden-properties)))
+        (inhibit-point-motion-hooks t)
+        buffer-read-only)
+    (funcall
+     (if hidden
         'remove-text-properties 'gnus-add-text-properties)
-     (car region) (cdr region) gnus-hidden-properties)))
+     (car region) (cdr region) gnus-hidden-properties)
+    (save-excursion
+      (goto-char start)
+      (gnus-delete-line)
+      (put-text-property
+       (point)
+       (progn
+        (gnus-article-add-button
+         (point)
+         (progn (eval
+                 (if hidden
+                     gnus-cited-opened-text-button-line-format-spec
+                   gnus-cited-closed-text-button-line-format-spec))
+                (point))
+         `gnus-article-toggle-cited-text
+         args)
+        (point))
+       'article-type 'annotation))))
 
 (defun gnus-article-hide-citation-maybe (&optional arg force)
   "Toggle hiding of cited text that has an attribution line.
@@ -535,27 +563,27 @@ See also the documentation for `gnus-article-highlight-citation'."
            (atts gnus-cite-attribution-alist)
            (buffer-read-only nil)
            (inhibit-point-motion-hooks t)
-           (hiden 0)
+           (hidden 0)
            total)
        (goto-char (point-max))
        (gnus-article-search-signature)
        (setq total (count-lines start (point)))
        (while atts
-         (setq hiden (+ hiden (length (cdr (assoc (cdar atts)
-                                                  gnus-cite-prefix-alist))))
+         (setq hidden (+ hidden (length (cdr (assoc (cdar atts)
+                                                    gnus-cite-prefix-alist))))
                atts (cdr atts)))
        (when (or force
-                 (and (> (* 100 hiden) (* gnus-cite-hide-percentage total))
-                      (> hiden gnus-cite-hide-absolute)))
+                 (and (> (* 100 hidden) (* gnus-cite-hide-percentage total))
+                      (> hidden gnus-cite-hide-absolute)))
          (setq atts gnus-cite-attribution-alist)
          (while atts
            (setq total (cdr (assoc (cdar atts) gnus-cite-prefix-alist))
                  atts (cdr atts))
            (while total
-             (setq hiden (car total)
+             (setq hidden (car total)
                    total (cdr total))
-             (goto-line hiden)
-             (unless (assq hiden gnus-cite-attribution-alist)
+             (goto-line hidden)
+             (unless (assq hidden gnus-cite-attribution-alist)
                (gnus-add-text-properties
                 (point) (progn (forward-line 1) (point))
                 (nconc (list 'article-type 'cite)
index 1bd882d..6e25832 100644 (file)
@@ -186,8 +186,8 @@ DOC is a documentation string for the parameter.")
     (unless (setq info (gnus-get-info group))
       (error "Killed group; can't be edited"))
     ;; Ready.
-    (kill-buffer (get-buffer-create "*Gnus Customize*"))
-    (switch-to-buffer (get-buffer-create "*Gnus Customize*"))
+    (kill-buffer (gnus-get-buffer-create "*Gnus Customize*"))
+    (switch-to-buffer (gnus-get-buffer-create "*Gnus Customize*"))
     (gnus-custom-mode)
     (make-local-variable 'gnus-custom-group)
     (setq gnus-custom-group group)
@@ -544,8 +544,8 @@ eh?")))
                         ,(nth 1 entry)))
               gnus-score-parameters)))
     ;; Ready.
-    (kill-buffer (get-buffer-create "*Gnus Customize*"))
-    (switch-to-buffer (get-buffer-create "*Gnus Customize*"))
+    (kill-buffer (gnus-get-buffer-create "*Gnus Customize*"))
+    (switch-to-buffer (gnus-get-buffer-create "*Gnus Customize*"))
     (gnus-custom-mode)
     (make-local-variable 'gnus-custom-score-alist)
     (setq gnus-custom-score-alist scores)
index ff35a42..6a93242 100644 (file)
@@ -88,9 +88,8 @@ It is a slightly enhanced emacs-lisp-mode.
 Call EXIT-FUNC on exit.  Display DOCUMENTATION in the beginning
 of the buffer."
   (let ((winconf (current-window-configuration)))
-    (set-buffer (get-buffer-create gnus-edit-form-buffer))
+    (set-buffer (gnus-get-buffer-create gnus-edit-form-buffer))
     (gnus-configure-windows 'edit-form)
-    (gnus-add-current-to-buffer-list)
     (gnus-edit-form-mode)
     (setq gnus-prev-winconf winconf)
     (setq gnus-edit-form-done-function exit-func)
index 8138113..f51c81d 100644 (file)
   (let ((dir (nnheader-find-etc-directory "gnus"))
        pixmap file height beg i)
     (save-excursion
-      (switch-to-buffer (get-buffer-create gnus-group-buffer))
+      (switch-to-buffer (gnus-get-buffer-create gnus-group-buffer))
       (let ((buffer-read-only nil))
        (erase-buffer)
        (when (and dir
index c4fd928..93ef915 100644 (file)
@@ -234,7 +234,7 @@ If this times out we give up and assume that something has died..." )
 (defun bbb-connect-to-bbbd (host port)
   (unless grouplens-bbb-buffer
     (setq grouplens-bbb-buffer
-         (get-buffer-create (format " *BBBD trace: %s*" host)))
+         (gnus-get-buffer-create (format " *BBBD trace: %s*" host)))
     (save-excursion
       (set-buffer grouplens-bbb-buffer)
       (make-local-variable 'bbb-read-point)
index f79b976..10a9bd9 100644 (file)
@@ -816,9 +816,8 @@ The following commands are available:
     (or level gnus-group-default-list-level gnus-level-subscribed))))
 
 (defun gnus-group-setup-buffer ()
-  (set-buffer (get-buffer-create gnus-group-buffer))
+  (set-buffer (gnus-get-buffer-create gnus-group-buffer))
   (unless (eq major-mode 'gnus-group-mode)
-    (gnus-add-current-to-buffer-list)
     (gnus-group-mode)
     (when gnus-carpal
       (gnus-carpal-setup-buffer 'group))))
@@ -1472,7 +1471,7 @@ and with point over the group in question."
            (save-selected-window
              (save-excursion
                (funcall ,function ,group)))))))))
-  
+
 (put 'gnus-group-iterate 'lisp-indent-function 1)
 
 ;; Selecting groups.
@@ -1900,6 +1899,8 @@ and NEW-NAME will be prompted for."
        (gnus-set-active new-name (gnus-active group))
        (gnus-message 6 "Renaming group %s to %s...done" group new-name)
        new-name)
+    (setq gnus-killed-list (delete group gnus-killed-list))
+    (gnus-set-active group nil)
     (gnus-dribble-touch)
     (gnus-group-position-point)))
 
@@ -2912,17 +2913,19 @@ If N is negative, this group and the N-1 previous groups will be checked."
         (ret (if (numberp n) (- n (length groups)) 0))
         (beg (unless n
                (point)))
-        group)
+        group method)
     (while (setq group (pop groups))
       (gnus-group-remove-mark group)
       ;; Bypass any previous denials from the server.
-      (gnus-remove-denial (gnus-find-method-for-group group))
+      (gnus-remove-denial (setq method (gnus-find-method-for-group group)))
       (if (gnus-activate-group group (if dont-scan nil 'scan))
          (progn
            (gnus-get-unread-articles-in-group
             (gnus-get-info group) (gnus-active group) t)
            (unless (gnus-virtual-group-p group)
              (gnus-close-group group))
+           (gnus-agent-save-group-info
+            method (gnus-group-real-name group) (gnus-active group))
            (gnus-group-update-group group))
        (if (eq (gnus-server-status (gnus-find-method-for-group group))
                'denied)
@@ -3021,6 +3024,7 @@ to use."
      (lambda (group)
        (and (symbol-name group)
            (string-match regexp (symbol-name group))
+           (symbol-value group)
            (push (symbol-name group) groups)))
      gnus-active-hashtb)
     ;; Also go through all descriptions that are known to Gnus.
@@ -3121,12 +3125,14 @@ group."
 (defun gnus-group-find-new-groups (&optional arg)
   "Search for new groups and add them.
 Each new group will be treated with `gnus-subscribe-newsgroup-method.'
-If ARG (the prefix), use the `ask-server' method to query
-the server for new groups."
-  (interactive "P")
-  (gnus-find-new-newsgroups arg)
+With 1 C-u, use the `ask-server' method to query the server for new
+groups.
+With 2 C-u's, use most complete method possible to query the server
+for new groups, and subscribe the new groups as zombies."
+  (interactive "p")
+  (gnus-find-new-newsgroups (or arg 1))
   (gnus-group-list-groups))
-  
+
 (defun gnus-group-edit-global-kill (&optional article group)
   "Edit the global kill file.
 If GROUP, edit that local kill file instead."
@@ -3156,16 +3162,13 @@ The hook gnus-suspend-gnus-hook is called before actually suspending."
   (interactive)
   (gnus-run-hooks 'gnus-suspend-gnus-hook)
   ;; Kill Gnus buffers except for group mode buffer.
-  (let* ((group-buf (get-buffer gnus-group-buffer))
-        ;; Do this on a separate list in case the user does a ^G before we finish
-        (gnus-buffer-list
-         (delete group-buf (delete gnus-dribble-buffer
-                                   (append gnus-buffer-list nil)))))
-    (while gnus-buffer-list
-      (gnus-kill-buffer (pop gnus-buffer-list)))
+  (let* ((group-buf (get-buffer gnus-group-buffer)))
+    (apply (lambda (buf)
+            (unless (equal buf group-buf)
+              (kill-buffer buf)))
+          (gnus-buffers))
     (gnus-kill-gnus-frames)
     (when group-buf
-      (setq gnus-buffer-list (list group-buf))
       (bury-buffer group-buf)
       (delete-windows-on group-buf t))))
 
index 6a641aa..6eff329 100644 (file)
@@ -149,6 +149,8 @@ If it is down, start it up (again)."
                 (cdr method-fnlist-elt))))
     ;; Maybe complain if there is no function.
     (unless (fboundp func)
+      (unless (car method)
+       (error "Trying to require a method that doesn't exist"))
       (require (car method))
       (when (not (fboundp func))
        (if noerror
index 40d94d4..4672116 100644 (file)
@@ -406,7 +406,6 @@ Returns the number of articles marked as read."
                ()
              (gnus-message 6 "Processing kill file %s..." (car kill-files))
              (find-file (car kill-files))
-             (gnus-add-current-to-buffer-list)
              (goto-char (point-min))
 
              (if (consp (ignore-errors (read (current-buffer))))
@@ -566,7 +565,7 @@ COMMAND must be a lisp expression or a string representing a key sequence."
               (not (consp (cdadr (nth 2 object))))))
       (concat "\n" (gnus-prin1-to-string object))
     (save-excursion
-      (set-buffer (get-buffer-create "*Gnus PP*"))
+      (set-buffer (gnus-get-buffer-create "*Gnus PP*"))
       (buffer-disable-undo (current-buffer))
       (erase-buffer)
       (insert (format "\n(%S %S\n  '(" (nth 0 object) (nth 1 object)))
index 3960408..fa01f5a 100644 (file)
@@ -64,7 +64,7 @@ Optional argument FOLDER specifies folder name."
                   (funcall gnus-folder-save-name gnus-newsgroup-name
                            gnus-current-headers gnus-newsgroup-last-folder)
                   t))))
-       (errbuf (get-buffer-create " *Gnus rcvstore*"))
+       (errbuf (gnus-get-buffer-create " *Gnus rcvstore*"))
        ;; Find the rcvstore program.
        (exec-path (if mh-lib (cons mh-lib exec-path) exec-path)))
     (gnus-eval-in-buffer-window gnus-original-article-buffer
index 08a85bd..af8a885 100644 (file)
@@ -189,7 +189,7 @@ Thank you for your help in stamping out bugs.
            (copy-sequence message-header-setup-hook)))
        (add-hook 'message-header-setup-hook 'gnus-inews-insert-gcc)
        (add-hook 'message-header-setup-hook 'gnus-inews-insert-archive-gcc)
-       (add-hook 'message-mode-hook 'gnus-configure-posting-styles)
+       (add-hook 'message-setup-hook 'gnus-configure-posting-styles)
        (unwind-protect
           (progn
             ,@forms)
@@ -199,6 +199,7 @@ Thank you for your help in stamping out bugs.
              (cons ,group ,article))
         (make-local-variable 'gnus-newsgroup-name)
         (gnus-run-hooks 'gnus-message-setup-hook))
+       (gnus-add-buffer)
        (gnus-configure-windows ,config t)
        (set-buffer-modified-p nil))))
 
@@ -350,10 +351,8 @@ header line with the old Message-ID."
   ;; this copy is in the buffer gnus-article-copy.
   ;; if ARTICLE-BUFFER is nil, gnus-article-buffer is used
   ;; this buffer should be passed to all mail/news reply/post routines.
-  (setq gnus-article-copy (get-buffer-create " *gnus article copy*"))
+  (setq gnus-article-copy (gnus-get-buffer-create " *gnus article copy*"))
   (buffer-disable-undo gnus-article-copy)
-  (or (memq gnus-article-copy gnus-buffer-list)
-      (push gnus-article-copy gnus-buffer-list))
   (let ((article-buffer (or article-buffer gnus-article-buffer))
        end beg contents)
     (if (not (and (get-buffer article-buffer)
@@ -512,6 +511,7 @@ If SILENT, don't prompt the user."
          method-alist))))
      ;; Override normal method.
      ((and (eq gnus-post-method 'current)
+          (not (eq (car group-method) 'nndraft))
           (not arg))
       group-method) 
      (gnus-post-method
@@ -844,7 +844,7 @@ The source file has to be in the Emacs load path."
     (sit-for 0)
     ;; Go through all the files looking for non-default values for variables.
     (save-excursion
-      (set-buffer (get-buffer-create " *gnus bug info*"))
+      (set-buffer (gnus-get-buffer-create " *gnus bug info*"))
       (buffer-disable-undo (current-buffer))
       (while files
        (erase-buffer)
@@ -1087,6 +1087,7 @@ this is a reply."
                variable nil)
          ;; We find the variable that is to be modified.
          (if (and (not (stringp (car attribute)))
+                   (not (eq 'body (car attribute)))
                   (not (setq variable (cdr (assq (car attribute) 
                                                  gnus-posting-style-alist)))))
              (message "Couldn't find attribute %s" (car attribute))
@@ -1103,19 +1104,20 @@ this is a reply."
                        ((listp value)
                         (eval value))))
            (if variable
-               (progn
-                 ;; This is an ordinary variable.
-                 (make-local-variable variable)
-                 (set variable value-value))
-             ;; This is a header to be added to the headers when
-             ;; posting. 
-             (when value-value
-               (make-local-variable 'message-required-mail-headers)
-               (make-local-variable 'message-required-news-headers)
-               (push (cons (car attribute) value-value) 
-                     message-required-mail-headers)
-               (push (cons (car attribute) value-value) 
-                     message-required-news-headers)))))))))
+               ;; This is an ordinary variable.
+               (set (make-local-variable variable) value-value)
+              ;; This is either a body or a header to be inserted in the
+              ;; message
+              (when value-value
+                (let ((attr (car attribute)))
+                  (if (eq 'body attr)
+                      (save-excursion
+                        (goto-char (point-max))
+                        (insert value-value))
+                    (save-excursion
+                     (message-goto-eoh)
+                      (insert (if (stringp attr) attr (symbol-name attr))
+                              ": " value-value "\n"))))))))))))
 
 ;;; Allow redefinition of functions.
 
index 0291690..fd0d4ec 100644 (file)
@@ -184,7 +184,7 @@ arguments necessary for the job.")
 
 (defun gnus-get-buffer-name (variable)
   "Returns the buffer name associated with the contents of a variable."
-  (let ((buf (get-buffer-create (gnus-window-to-buffer-helper
+  (let ((buf (gnus-get-buffer-create (gnus-window-to-buffer-helper
                                 (cdr 
                                  (assq variable gnus-window-to-buffer))))))
     (and buf
@@ -211,10 +211,9 @@ arguments necessary for the job.")
     (save-excursion
       (if (get-buffer name)
          (set-buffer name)
-       (set-buffer (get-buffer-create name))
+       (set-buffer (gnus-get-buffer-create name))
        (buffer-disable-undo)
        (setq buffer-read-only t)
-       (gnus-add-current-to-buffer-list)
        (add-hook 'gnus-summary-prepare-exit-hook 'gnus-picons-kill-buffer))
       (current-buffer))))
 
index d3c5ccf..43c9d91 100644 (file)
@@ -557,9 +557,8 @@ Two predefined functions are available:
 (defun gnus-get-tree-buffer ()
   "Return the tree buffer properly initialized."
   (save-excursion
-    (set-buffer (get-buffer-create gnus-tree-buffer))
+    (set-buffer (gnus-get-buffer-create gnus-tree-buffer))
     (unless (eq major-mode 'gnus-tree-mode)
-      (gnus-add-current-to-buffer-list)
       (gnus-tree-mode))
     (current-buffer)))
 
@@ -981,11 +980,10 @@ The following commands are available:
     (if (get-buffer buffer)
        ()
       (save-excursion
-       (set-buffer (get-buffer-create buffer))
+       (set-buffer (gnus-get-buffer-create buffer))
        (gnus-carpal-mode)
        (setq gnus-carpal-attached-buffer
              (intern (format "gnus-%s-buffer" type)))
-       (gnus-add-current-to-buffer-list)
        (let ((buttons (symbol-value
                        (intern (format "gnus-carpal-%s-buffer-buttons"
                                        type))))
index 141fbd9..4bdbcb6 100644 (file)
@@ -505,7 +505,7 @@ used as score."
            (?l "lines" nil nil number)
            (?d "date" nil nil date)
            (?f "followup" nil nil string)
-           (?T "thread" nil nil string)))
+           (?r "thread" nil nil string)))
         (char-to-type
          '((?s s "substring" string)
            (?e e "exact string" string)
@@ -550,7 +550,7 @@ used as score."
              (gnus-score-insert-help "Match on header" char-to-header 1)))
 
          (gnus-score-kill-help-buffer)
-         (unless (setq entry (assq hchar char-to-header))
+         (unless (setq entry (assq (downcase hchar) char-to-header))
            (if mimic (error "%c %c" prefix hchar)
              (error "Illegal header type")))
 
@@ -671,7 +671,7 @@ used as score."
 (defun gnus-score-insert-help (string alist idx)
   (setq gnus-score-help-winconf (current-window-configuration))
   (save-excursion
-    (set-buffer (get-buffer-create "*Score Help*"))
+    (set-buffer (gnus-get-buffer-create "*Score Help*"))
     (buffer-disable-undo (current-buffer))
     (delete-windows-on (current-buffer))
     (erase-buffer)
@@ -1403,7 +1403,7 @@ SCORE is the score to add."
                          gnus-scores-articles))))
 
          (save-excursion
-           (set-buffer (get-buffer-create "*Headers*"))
+           (set-buffer (gnus-get-buffer-create "*Headers*"))
            (buffer-disable-undo (current-buffer))
            (when (gnus-buffer-live-p gnus-summary-buffer)
              (message-clone-locals gnus-summary-buffer))
@@ -2289,7 +2289,6 @@ SCORE is the score to add."
           1 "No score rules apply to the current article (default score %d)."
           gnus-summary-default-score)
        (set-buffer "*Score Trace*")
-       (gnus-add-current-to-buffer-list)
        (while trace
          (insert (format "%S  ->  %s\n" (cdar trace)
                          (if (caar trace)
@@ -2335,7 +2334,6 @@ SCORE is the score to add."
       (while rules
        (insert (format "%-5d: %s\n" (caar rules) (cdar rules)))
        (pop rules))
-      (gnus-add-current-to-buffer-list)
       (goto-char (point-min))
       (gnus-configure-windows 'score-words))))
 
@@ -2506,7 +2504,7 @@ GROUP using BNews sys file syntax."
         (trans (cdr (assq ?: nnheader-file-name-translation-alist)))
         ofiles not-match regexp)
     (save-excursion
-      (set-buffer (get-buffer-create "*gnus score files*"))
+      (set-buffer (gnus-get-buffer-create "*gnus score files*"))
       (buffer-disable-undo (current-buffer))
       ;; Go through all score file names and create regexp with them
       ;; as the source.
index 3842c20..3d97829 100644 (file)
@@ -133,7 +133,7 @@ If N is nil and any articles have been marked with the process mark,
 move those articles instead."
   (interactive "P")
   (let* ((articles (gnus-summary-work-articles n))
-        (tmp-buf (get-buffer-create "*soup work*"))
+        (tmp-buf (gnus-get-buffer-create "*soup work*"))
         (area (gnus-soup-area gnus-newsgroup-name))
         (prefix (gnus-soup-area-prefix area))
         headers)
@@ -512,7 +512,7 @@ Return whether the unpacking was successful."
                                 ".MSG"))
               (msg-buf (and (file-exists-p msg-file)
                             (nnheader-find-file-noselect msg-file)))
-              (tmp-buf (get-buffer-create " *soup send*"))
+              (tmp-buf (gnus-get-buffer-create " *soup send*"))
               beg end)
          (cond
           ((/= (gnus-soup-encoding-format
index 24e9bfd..e925ef1 100644 (file)
@@ -195,7 +195,7 @@ The following commands are available:
   "Initialize the server buffer."
   (unless (get-buffer gnus-server-buffer)
     (save-excursion
-      (set-buffer (get-buffer-create gnus-server-buffer))
+      (set-buffer (gnus-get-buffer-create gnus-server-buffer))
       (gnus-server-mode)
       (when gnus-carpal
        (gnus-carpal-setup-buffer 'server)))))
@@ -466,9 +466,12 @@ The following commands are available:
 (defun gnus-server-scan-server (server)
   "Request a scan from the current server."
   (interactive (list (gnus-server-server-name)))
-  (gnus-message 3 "Scanning %s...done" server)
-  (gnus-request-scan nil (gnus-server-to-method server))
-  (gnus-message 3 "Scanning %s...done" server))
+  (let ((method (gnus-server-to-method server)))
+    (if (not (gnus-get-function method 'request-scan))
+       (error "Server %s can't scan" (car method))
+      (gnus-message 3 "Scanning %s..." server)
+      (gnus-request-scan nil method)
+      (gnus-message 3 "Scanning %s...done" server))))
 
 (defun gnus-server-read-server (server)
   "Browse a server."
@@ -534,7 +537,7 @@ The following commands are available:
      '("Browse"
        ["Subscribe" gnus-browse-unsubscribe-current-group t]
        ["Read" gnus-browse-read-group t]
-       ["Select" gnus-browse-read-group t]
+       ["Select" gnus-browse-select-group t]
        ["Next" gnus-browse-next-group t]
        ["Prev" gnus-browse-next-group t]
        ["Exit" gnus-browse-exit t]))
@@ -568,8 +571,7 @@ The following commands are available:
        1 "Couldn't request list: %s" (gnus-status-message method))
       nil)
      (t
-      (get-buffer-create gnus-browse-buffer)
-      (gnus-add-current-to-buffer-list)
+      (gnus-get-buffer-create gnus-browse-buffer)
       (when gnus-carpal
        (gnus-carpal-setup-buffer 'browse))
       (gnus-configure-windows 'browse)
index 581ed9f..40eebef 100644 (file)
@@ -586,6 +586,7 @@ the first newsgroup."
 (defvar gnus-newsgroup-unreads)
 (defvar nnoo-state-alist)
 (defvar gnus-current-select-method)
+
 (defun gnus-clear-system ()
   "Clear all variables and buffers."
   ;; Clear Gnus variables.
@@ -629,8 +630,9 @@ the first newsgroup."
     (kill-buffer (get-file-buffer (gnus-newsgroup-kill-file nil))))
   (gnus-kill-buffer nntp-server-buffer)
   ;; Kill Gnus buffers.
-  (while gnus-buffer-list
-    (gnus-kill-buffer (pop gnus-buffer-list)))
+  (let ((buffers (gnus-buffers)))
+    (when buffers
+      (mapcar 'kill-buffer buffers)))
   ;; Remove Gnus frames.
   (gnus-kill-gnus-frames))
 
@@ -662,8 +664,8 @@ prompt the user for the name of an NNTP server to use."
              (> arg 0)
              (max (car gnus-group-list-mode) arg))))
 
-    (gnus-splash)
     (gnus-clear-system)
+    (gnus-splash)
     (gnus-run-hooks 'gnus-before-startup-hook)
     (nnheader-init-server-buffer)
     (setq gnus-slave slave)
@@ -780,9 +782,8 @@ prompt the user for the name of an NNTP server to use."
   (let ((dribble-file (gnus-dribble-file-name)))
     (save-excursion
       (set-buffer (setq gnus-dribble-buffer
-                       (get-buffer-create
+                       (gnus-get-buffer-create
                         (file-name-nondirectory dribble-file))))
-      (gnus-add-current-to-buffer-list)
       (erase-buffer)
       (setq buffer-file-name dribble-file)
       (auto-save-mode t)
@@ -942,13 +943,25 @@ If LEVEL is non-nil, the news will be set up at level LEVEL."
   "Search for new newsgroups and add them.
 Each new newsgroup will be treated with `gnus-subscribe-newsgroup-method.'
 The `-n' option line from .newsrc is respected.
-If ARG (the prefix), use the `ask-server' method to query the server
-for new groups."
-  (interactive "P")
-  (let ((check (if (or (and arg (not (listp gnus-check-new-newsgroups)))
-                      (null gnus-read-active-file)
-                      (eq gnus-read-active-file 'some))
-                  'ask-server gnus-check-new-newsgroups)))
+
+With 1 C-u, use the `ask-server' method to query the server for new
+groups.
+With 2 C-u's, use most complete method possible to query the server
+for new groups, and subscribe the new groups as zombies."
+  (interactive "p")
+  (let* ((gnus-subscribe-newsgroup-method
+         gnus-subscribe-newsgroup-method)
+        (check (cond
+               ((or (and (= (or arg 1) 4)
+                         (not (listp gnus-check-new-newsgroups)))
+                    (null gnus-read-active-file)
+                    (eq gnus-read-active-file 'some))
+                'ask-server)
+               ((= (or arg 1) 16)
+                (setq gnus-subscribe-newsgroup-method
+                      'gnus-subscribe-zombies)
+                t)
+               (t gnus-check-new-newsgroups))))
     (unless (gnus-check-first-time-used)
       (if (or (consp check)
              (eq check 'ask-server))
@@ -2255,13 +2268,12 @@ If FORCE is non-nil, the .newsrc file is read."
            (gnus-gnus-to-newsrc-format)
            (gnus-message 8 "Saving %s...done" gnus-current-startup-file))
          ;; Save .newsrc.eld.
-         (set-buffer (get-buffer-create " *Gnus-newsrc*"))
+         (set-buffer (gnus-get-buffer-create " *Gnus-newsrc*"))
          (make-local-variable 'version-control)
          (setq version-control 'never)
          (setq buffer-file-name
                (concat gnus-current-startup-file ".eld"))
          (setq default-directory (file-name-directory buffer-file-name))
-         (gnus-add-current-to-buffer-list)
          (buffer-disable-undo (current-buffer))
          (erase-buffer)
          (gnus-message 5 "Saving %s.eld..." gnus-current-startup-file)
@@ -2403,7 +2415,7 @@ If FORCE is non-nil, the .newsrc file is read."
        ()                              ; There are no slave files to read.
       (gnus-message 7 "Reading slave newsrcs...")
       (save-excursion
-       (set-buffer (get-buffer-create " *gnus slave*"))
+       (set-buffer (gnus-get-buffer-create " *gnus slave*"))
        (buffer-disable-undo (current-buffer))
        (setq slave-files
              (sort (mapcar (lambda (file)
index 766a736..81880d0 100644 (file)
@@ -1152,7 +1152,7 @@ increase the score of each group you read."
     [delete] gnus-summary-prev-page
     [backspace] gnus-summary-prev-page
     "\r" gnus-summary-scroll-up
-    "\e\r" gnus-summary-scroll-down
+    "\M-\r" gnus-summary-scroll-down
     "n" gnus-summary-next-unread-article
     "p" gnus-summary-prev-unread-article
     "N" gnus-summary-next-article
@@ -1359,6 +1359,7 @@ increase the score of each group you read."
     [delete] gnus-summary-prev-page
     "p" gnus-summary-prev-page
     "\r" gnus-summary-scroll-up
+    "\M-\r" gnus-summary-scroll-down
     "<" gnus-summary-beginning-of-article
     ">" gnus-summary-end-of-article
     "b" gnus-summary-beginning-of-article
@@ -1393,6 +1394,7 @@ increase the score of each group you read."
     "b" gnus-article-hide-boring-headers
     "s" gnus-article-hide-signature
     "c" gnus-article-hide-citation
+    "C" gnus-article-hide-citation-in-followups
     "p" gnus-article-hide-pgp
     "P" gnus-article-hide-pem
     "\C-c" gnus-article-hide-citation-maybe)
@@ -2278,8 +2280,7 @@ marks of articles."
          (setq gnus-summary-buffer (current-buffer))
          (not gnus-newsgroup-prepared))
       ;; Fix by Sudish Joseph <joseph@cis.ohio-state.edu>
-      (setq gnus-summary-buffer (set-buffer (get-buffer-create buffer)))
-      (gnus-add-current-to-buffer-list)
+      (setq gnus-summary-buffer (set-buffer (gnus-get-buffer-create buffer)))
       (gnus-summary-mode group)
       (when gnus-carpal
        (gnus-carpal-setup-buffer 'summary))
@@ -5239,12 +5240,6 @@ The state which existed when entering the ephemeral is reset."
   (select-window (get-buffer-window gnus-article-buffer))
   )
 
-(defun gnus-summary-scroll-down ()
-  "Scroll down one line current article."
-  (interactive)
-  (gnus-summary-scroll-up -1)
-  )
-
 ;;; Dead summaries.
 
 (defvar gnus-dead-summary-mode-map nil)
@@ -5814,6 +5809,12 @@ Argument LINES specifies lines to be scrolled up (or down if negative)."
   (gnus-summary-recenter)
   (gnus-summary-position-point))
 
+(defun gnus-summary-scroll-down (lines)
+  "Scroll down (or up) one line current article.
+Argument LINES specifies lines to be scrolled down (or up if negative)."
+  (interactive "p")
+  (gnus-summary-scroll-up (- lines)))
+
 (defun gnus-summary-next-same-subject ()
   "Select next article which has the same subject as current one."
   (interactive)
@@ -7204,7 +7205,7 @@ latter case, they will be copied into the relevant groups."
        (not (file-regular-p file))
        (error "Can't read %s" file))
     (save-excursion
-      (set-buffer (get-buffer-create " *import file*"))
+      (set-buffer (gnus-get-buffer-create " *import file*"))
       (buffer-disable-undo (current-buffer))
       (erase-buffer)
       (nnheader-insert-file-contents file)
index 826c8ec..dbb5baa 100644 (file)
@@ -540,7 +540,7 @@ Timezone package is used."
       (progn
        (set-buffer gnus-work-buffer)
        (erase-buffer))
-    (set-buffer (get-buffer-create gnus-work-buffer))
+    (set-buffer (gnus-get-buffer-create gnus-work-buffer))
     (kill-all-local-variables)
     (buffer-disable-undo (current-buffer))))
 
@@ -723,7 +723,7 @@ with potentially long computations."
   (setq filename (expand-file-name filename))
   (setq rmail-default-rmail-file filename)
   (let ((artbuf (current-buffer))
-       (tmpbuf (get-buffer-create " *Gnus-output*"))
+       (tmpbuf (gnus-get-buffer-create " *Gnus-output*"))
        (coding-system-for-write 'binary))
     (save-excursion
       (or (get-file-buffer filename)
@@ -772,7 +772,7 @@ with potentially long computations."
   "Append the current article to a mail file named FILENAME."
   (setq filename (expand-file-name filename))
   (let ((artbuf (current-buffer))
-       (tmpbuf (get-buffer-create " *Gnus-output*")))
+       (tmpbuf (gnus-get-buffer-create " *Gnus-output*")))
     (save-excursion
       ;; Create the file, if it doesn't exist.
       (when (and (not (get-file-buffer filename))
index dca97f0..f937bbe 100644 (file)
@@ -517,8 +517,8 @@ didn't work, and overwrite existing files.  Otherwise, ask each time."
     (gnus-setup-message 'forward
       (setq gnus-uu-digest-from-subject nil)
       (gnus-uu-decode-save n file)
-      (setq buf (switch-to-buffer (get-buffer-create " *gnus-uu-forward*")))
-      (gnus-add-current-to-buffer-list)
+      (setq buf (switch-to-buffer
+                (gnus-get-buffer-create " *gnus-uu-forward*")))
       (erase-buffer)
       (insert-file file)
       (let ((fs gnus-uu-digest-from-subject))
@@ -834,10 +834,10 @@ didn't work, and overwrite existing files.  Otherwise, ask each time."
              (eq in-state 'first-and-last))
          (progn
            (setq state (list 'begin))
-           (save-excursion (set-buffer (get-buffer-create "*gnus-uu-body*"))
+           (save-excursion (set-buffer (gnus-get-buffer-create "*gnus-uu-body*"))
                            (erase-buffer))
            (save-excursion
-             (set-buffer (get-buffer-create "*gnus-uu-pre*"))
+             (set-buffer (gnus-get-buffer-create "*gnus-uu-pre*"))
              (erase-buffer)
              (insert (format
                       "Date: %s\nFrom: %s\nSubject: %s Digest\n\nTopics:\n"
@@ -970,7 +970,7 @@ didn't work, and overwrite existing files.  Otherwise, ask each time."
        (if (not (re-search-forward gnus-uu-postscript-end-string nil t))
            (setq state (list 'wrong-type))
          (setq end-char (point))
-         (set-buffer (get-buffer-create gnus-uu-output-buffer-name))
+         (set-buffer (gnus-get-buffer-create gnus-uu-output-buffer-name))
          (insert-buffer-substring process-buffer start-char end-char)
          (setq file-name (concat gnus-uu-work-dir
                                  (cdr gnus-article-current) ".ps"))
@@ -1025,7 +1025,7 @@ didn't work, and overwrite existing files.  Otherwise, ask each time."
   ;; finally just replaces the next to last number with "[0-9]+".
   (let ((count 2))
     (save-excursion
-      (set-buffer (get-buffer-create gnus-uu-output-buffer-name))
+      (set-buffer (gnus-get-buffer-create gnus-uu-output-buffer-name))
       (buffer-disable-undo (current-buffer))
       (erase-buffer)
       (insert (regexp-quote string))
@@ -1126,7 +1126,7 @@ didn't work, and overwrite existing files.  Otherwise, ask each time."
   (let ((out-list string-list)
        string)
     (save-excursion
-      (set-buffer (get-buffer-create gnus-uu-output-buffer-name))
+      (set-buffer (gnus-get-buffer-create gnus-uu-output-buffer-name))
       (buffer-disable-undo (current-buffer))
       (while string-list
        (erase-buffer)
@@ -1419,7 +1419,7 @@ didn't work, and overwrite existing files.  Otherwise, ask each time."
                  (setq gnus-uu-uudecode-process
                        (start-process
                         "*uudecode*"
-                        (get-buffer-create gnus-uu-output-buffer-name)
+                        (gnus-get-buffer-create gnus-uu-output-buffer-name)
                         shell-file-name shell-command-switch
                         (format "cd %s %s uudecode" gnus-uu-work-dir
                                 gnus-shell-command-separator))))
@@ -1485,7 +1485,7 @@ didn't work, and overwrite existing files.  Otherwise, ask each time."
        (setq start-char (point))
        (call-process-region
         start-char (point-max) shell-file-name nil
-        (get-buffer-create gnus-uu-output-buffer-name) nil
+        (gnus-get-buffer-create gnus-uu-output-buffer-name) nil
         shell-command-switch
         (concat "cd " gnus-uu-work-dir " "
                 gnus-shell-command-separator  " sh"))))
@@ -1548,13 +1548,13 @@ didn't work, and overwrite existing files.  Otherwise, ask each time."
     (setq command (format "cd %s ; %s" dir (gnus-uu-command action file-path)))
 
     (save-excursion
-      (set-buffer (get-buffer-create gnus-uu-output-buffer-name))
+      (set-buffer (gnus-get-buffer-create gnus-uu-output-buffer-name))
       (erase-buffer))
 
     (gnus-message 5 "Unpacking: %s..." (gnus-uu-command action file-path))
 
     (if (= 0 (call-process shell-file-name nil
-                          (get-buffer-create gnus-uu-output-buffer-name)
+                          (gnus-get-buffer-create gnus-uu-output-buffer-name)
                           nil shell-command-switch command))
        (message "")
       (gnus-message 2 "Error during unpacking of archive")
@@ -1912,7 +1912,7 @@ If no file has been included, the user will be asked for a file."
     (unwind-protect
        (if (save-excursion
              (set-buffer (setq uubuf
-                               (get-buffer-create uuencode-buffer-name)))
+                               (gnus-get-buffer-create uuencode-buffer-name)))
              (erase-buffer)
              (funcall gnus-uu-post-encode-method file-path file-name))
            (insert-buffer-substring uubuf)
@@ -1945,7 +1945,7 @@ If no file has been included, the user will be asked for a file."
     (setq end-binary (point-max))
 
     (save-excursion
-      (set-buffer (setq uubuf (get-buffer-create encoded-buffer-name)))
+      (set-buffer (setq uubuf (gnus-get-buffer-create encoded-buffer-name)))
       (erase-buffer)
       (insert-buffer-substring post-buf beg-binary end-binary)
       (goto-char (point-min))
@@ -1977,7 +1977,7 @@ If no file has been included, the user will be asked for a file."
       (setq i 1)
       (setq beg 1)
       (while (not (> i parts))
-       (set-buffer (get-buffer-create send-buffer-name))
+       (set-buffer (gnus-get-buffer-create send-buffer-name))
        (erase-buffer)
        (insert header)
        (when (and threaded gnus-uu-post-message-id)
index 803d2ea..c41fbae 100644 (file)
@@ -319,7 +319,7 @@ See the Gnus manual for an explanation of the syntax used.")
                          (t (cdr (assq type gnus-window-to-buffer))))))
        (unless buffer
          (error "Illegal buffer type: %s" type))
-       (switch-to-buffer (get-buffer-create
+       (switch-to-buffer (gnus-get-buffer-create
                           (gnus-window-to-buffer-helper buffer)))
        (when (memq 'frame-focus split)
          (setq gnus-window-frame-focus window))
@@ -453,13 +453,7 @@ See the Gnus manual for an explanation of the syntax used.")
 
 (defun gnus-delete-windows-in-gnusey-frames ()
   "Do a `delete-other-windows' in all frames that have Gnus windows."
-  (let ((buffers
-        (mapcar
-         (lambda (elem)
-           (let ((buf (gnus-window-to-buffer-helper (cdr elem))))
-             (if (not (null buf))
-                 (get-buffer buf))))
-         gnus-window-to-buffer)))
+  (let ((buffers (gnus-buffers)))
     (mapcar
      (lambda (frame)
        (unless (eq (cdr (assq 'minibuffer
@@ -523,39 +517,22 @@ should have point."
   (nth 1 (window-edges window)))
 
 (defun gnus-remove-some-windows ()
-  (let ((buffers gnus-window-to-buffer)
+  (let ((buffers (gnus-buffers))
        buf bufs lowest-buf lowest)
     (save-excursion
       ;; Remove windows on all known Gnus buffers.
-      (while buffers
-       (and (setq buf (gnus-window-to-buffer-helper (cdar buffers)))
-            (get-buffer-window buf)
-            (progn
-              (push buf bufs)
-              (pop-to-buffer buf)
-              (when (or (not lowest)
-                        (< (gnus-window-top-edge) lowest))
-                (setq lowest (gnus-window-top-edge))
-                (setq lowest-buf buf))))
-       (setq buffers (cdr buffers)))
-      ;; Remove windows on *all* summary buffers.
-      (walk-windows
-       (lambda (win)
-        (let ((buf (window-buffer win)))
-          (when (string-match  "^\\*\\(Dead \\)?Summary" (buffer-name buf))
-            (push buf bufs)
-            (pop-to-buffer buf)
-            (when (or (not lowest)
-                      (< (gnus-window-top-edge) lowest))
-              (setq lowest-buf buf)
-              (setq lowest (gnus-window-top-edge)))))))
+      (while (setq buf (pop buffers))
+       (when (get-buffer-window buf)
+         (push buf bufs)
+         (pop-to-buffer buf)
+         (when (or (not lowest)
+                   (< (gnus-window-top-edge) lowest))
+           (setq lowest (gnus-window-top-edge)
+                 lowest-buf buf))))
       (when lowest-buf
        (pop-to-buffer lowest-buf)
        (switch-to-buffer nntp-server-buffer))
-      (while bufs
-       (when (not (eq (car bufs) lowest-buf))
-         (delete-windows-on (car bufs)))
-       (setq bufs (cdr bufs))))))
+      (mapcar (lambda (b) (delete-windows-on b t)) bufs))))
 
 (provide 'gnus-win)
 
index 9d3d239..00fc583 100644 (file)
@@ -90,7 +90,6 @@ asynchronously.        The compressed face will be piped to this command."
 (defvar gnus-active-hashtb)
 (defvar gnus-article-buffer)
 (defvar gnus-auto-center-summary)
-(defvar gnus-buffer-list)
 (defvar gnus-current-headers)
 (defvar gnus-level-killed)
 (defvar gnus-level-zombie)
index a25977f..791d6e4 100644 (file)
@@ -253,11 +253,11 @@ is restarted, and sometimes reloaded."
 (defconst gnus-product-name "Shoe-gnus"
   "Product name of this version of gnus.")
 
-(defconst gnus-version-number "6.8.4"
+(defconst gnus-version-number "6.8.5"
   "Version number for this version of gnus.")
 
 (defconst gnus-version
-  (format "%s %s (based on Gnus 5.6.30; for SEMI 1.8, FLIM 1.8/1.9)"
+  (format "%s %s (based on Gnus 5.6.36; for SEMI 1.8, FLIM 1.8/1.9)"
           gnus-product-name gnus-version-number)
   "Version string for this version of gnus.")
 
@@ -605,6 +605,33 @@ be set in `.emacs' instead."
   "Face used for normal interest read articles.")
 
 
+;;;
+;;; Gnus buffers
+;;;
+
+(defvar gnus-buffers nil)
+
+(defun gnus-get-buffer-create (name)
+  "Do the same as `get-buffer-create', but store the created buffer."
+  (or (get-buffer name)
+      (car (push (get-buffer-create name) gnus-buffers))))
+
+(defun gnus-add-buffer ()
+  "Add the current buffer to the list of Gnus buffers."
+  (push (current-buffer) gnus-buffers))
+
+(defun gnus-buffers ()
+  "Return a list of live Gnus buffers."
+  (while (and gnus-buffers
+             (not (buffer-name (car gnus-buffers))))
+    (pop gnus-buffers))
+  (let ((buffers gnus-buffers))
+    (while (cdr buffers)
+      (if (buffer-name (cadr buffers))
+         (pop buffers)
+       (setcdr buffers (cddr buffers)))))
+  gnus-buffers)
+
 ;;; Splash screen.
 
 (defvar gnus-group-buffer "*Group*")
@@ -625,7 +652,7 @@ be set in `.emacs' instead."
 
 (defun gnus-splash ()
   (save-excursion
-    (switch-to-buffer (get-buffer-create gnus-group-buffer))
+    (switch-to-buffer (gnus-get-buffer-create gnus-group-buffer))
     (let ((buffer-read-only nil))
       (erase-buffer)
       (unless gnus-inhibit-startup-message
@@ -693,9 +720,10 @@ be set in `.emacs' instead."
 
 (eval-when (load)
   (let ((command (format "%s" this-command)))
-    (when (and (string-match "gnus" command)
-              (not (string-match "gnus-other-frame" command)))
-      (gnus-splash))))
+    (if (and (string-match "gnus" command)
+            (not (string-match "gnus-other-frame" command)))
+       (gnus-splash)
+      (gnus-get-buffer-create gnus-group-buffer))))
 
 ;;; Do the rest.
 
@@ -758,7 +786,7 @@ used to 899, you would say something along these lines:
   (or (getenv "NNTPSERVER")
       (and (file-readable-p gnus-nntpserver-file)
           (save-excursion
-            (set-buffer (get-buffer-create " *gnus nntp*"))
+            (set-buffer (gnus-get-buffer-create " *gnus nntp*"))
             (buffer-disable-undo (current-buffer))
             (insert-file-contents gnus-nntpserver-file)
             (let ((name (buffer-string)))
@@ -1426,10 +1454,10 @@ want."
 (defvar gnus-predefined-server-alist
   `(("cache"
      nnspool "cache"
-     (nnspool-spool-directory gnus-cache-directory)
-     (nnspool-nov-directory gnus-cache-directory)
+     (nnspool-spool-directory ,gnus-cache-directory)
+     (nnspool-nov-directory ,gnus-cache-directory)
      (nnspool-active-file
-      (nnheader-concat gnus-cache-directory "active"))))
+      ,(nnheader-concat gnus-cache-directory "active"))))
   "List of predefined (convenience) servers.")
 
 (defvar gnus-topic-indentation "") ;; Obsolete variable.
@@ -1471,9 +1499,6 @@ want."
 (defvar gnus-article-buffer "*Article*")
 (defvar gnus-server-buffer "*Server*")
 
-(defvar gnus-buffer-list nil
-  "Gnus buffers that should be killed on exit.")
-
 (defvar gnus-slave nil
   "Whether this Gnus is a slave or not.")
 
@@ -1936,6 +1961,7 @@ This restriction may disappear in later versions of Gnus."
 ;;; Gnus Utility Functions
 ;;;
 
+
 (defmacro gnus-string-or (&rest strings)
   "Return the first element of STRINGS that is a non-blank string.
 STRINGS will be evaluated in normal `or' order."
@@ -1950,11 +1976,6 @@ STRINGS will be evaluated in normal `or' order."
        (setq strings nil)))
     string))
 
-;; Add the current buffer to the list of buffers to be killed on exit.
-(defun gnus-add-current-to-buffer-list ()
-  (or (memq (current-buffer) gnus-buffer-list)
-      (push (current-buffer) gnus-buffer-list)))
-
 (defun gnus-version (&optional arg)
   "Version number of this version of Gnus.
 If ARG, insert string at point."
@@ -1962,16 +1983,6 @@ If ARG, insert string at point."
   (let ((methods gnus-valid-select-methods)
        (mess gnus-version)
        meth)
-    ;; Go through all the legal select methods and add their version
-    ;; numbers to the total version string.  Only the backends that are
-    ;; currently in use will have their message numbers taken into
-    ;; consideration.
-    (while methods
-      (setq meth (intern (concat (caar methods) "-version")))
-      (and (boundp meth)
-          (stringp (symbol-value meth))
-          (setq mess (concat mess "; " (symbol-value meth))))
-      (setq methods (cdr methods)))
     (if arg
        (insert (message mess))
       (message mess))))
index 485b07b..23f43d6 100644 (file)
@@ -349,6 +349,27 @@ If t, use `message-user-organization-file'."
   :group 'message-forwarding
   :type 'regexp)
 
+(defcustom message-make-forward-subject-function 
+  'message-forward-subject-author-subject
+ "*A list of functions that are called to generate a subject header for forwarded messages.
+The subject generated by the previous function is passed into each
+successive function.
+
+The provided functions are:
+
+* message-forward-subject-author-subject (Source of article (author or
+      newsgroup)), in brackets followed by the subject
+* message-forward-subject-fwd (Subject of article with 'Fwd:' prepended
+      to it."
+ :group 'message-forwarding
+ :type '(radio (function-item message-forward-subject-author-subject)
+              (function-item message-forward-subject-fwd)))
+
+(defcustom message-wash-forwarded-subjects nil
+  "*If non-nil, try to remove as much old cruft as possible from the subject of messages before generating the new subject of a forward."
+  :group 'message-forwarding
+  :type 'boolean)
+
 (defcustom message-ignored-resent-headers "^Return-Receipt"
   "*All headers that match this regexp will be deleted when resending a message."
   :group 'message-interface
@@ -487,6 +508,7 @@ might set this variable to '(\"-f\" \"you@some.where\")."
 (defvar gnus-select-method)
 (defcustom message-post-method
   (cond ((and (boundp 'gnus-post-method)
+             (listp gnus-post-method)
              gnus-post-method)
         gnus-post-method)
        ((boundp 'gnus-select-method)
@@ -1532,13 +1554,22 @@ C-c C-r  message-caesar-buffer-body (rot13 the message body)."
   (goto-char (point-min))
   (search-forward (concat "\n" mail-header-separator "\n") nil t))
 
+(defun message-goto-eoh ()
+  "Move point to the end of the headers."
+  (interactive)
+  (message-goto-body)
+  (forward-line -2))
+
 (defun message-goto-signature ()
-  "Move point to the beginning of the message signature."
+  "Move point to the beginning of the message signature.
+If there is no signature in the article, go to the end and
+return nil."
   (interactive)
   (goto-char (point-min))
   (if (re-search-forward message-signature-separator nil t)
       (forward-line 1)
-    (goto-char (point-max))))
+    (goto-char (point-max))
+    nil))
 
 \f
 
@@ -1578,16 +1609,17 @@ With the prefix argument FORCE, insert the header anyway."
   (interactive "r")
   (save-excursion
     (goto-char end)
-    (delete-region (point) (progn (message-goto-signature)
-                                 (forward-line -2)
-                                 (point)))
+    (delete-region (point) (if (not (message-goto-signature))
+                              (point)
+                            (forward-line -2)
+                            (point)))
     (insert "\n")
     (goto-char beg)
     (delete-region beg (progn (message-goto-body)
                              (forward-line 2)
                              (point))))
-  (message-goto-signature)
-  (forward-line -2))
+  (when (message-goto-signature)
+    (forward-line -2)))
 
 (defun message-kill-to-signature ()
   "Deletes all text up to the signature."
@@ -2052,7 +2084,12 @@ the user from the mailer."
   ;; Make sure there's a newline at the end of the message.
   (goto-char (point-max))
   (unless (bolp)
-    (insert "\n")))
+    (insert "\n"))
+  ;; Delete all invisible text.
+  (when (text-property-any (point-min) (point-max) 'invisible t)
+    (put-text-property (point-min) (point-max) 'invisible nil)
+    (unless (yes-or-no-p "Invisible text found and made visible; continue posting?")
+      (error "Invisible text found and made visible"))))
 
 (defun message-add-action (action &rest types)
   "Add ACTION to be performed when doing an exit of type TYPES."
@@ -3815,19 +3852,81 @@ header line with the old Message-ID."
             (insert-file-contents file-name nil)))
          (t (error "message-recover cancelled")))))
 
+;;; Washing Subject:
+
+(defun message-wash-subject (subject)
+  "Remove junk like \"Re:\", \"(fwd)\", etc. that was added to the subject by previous forwarders, replyers, etc."
+  (nnheader-temp-write nil
+    (insert-string subject)
+    (goto-char (point-min))
+    ;; strip Re/Fwd stuff off the beginning
+    (while (re-search-forward
+           "\\([Rr][Ee]:\\|[Ff][Ww][Dd]:\\|[Ff][Ww]:\\)" nil t)
+      (replace-match ""))
+
+    ;; and gnus-style forwards [foo@bar.com] subject
+    (goto-char (point-min))
+    (while (re-search-forward "\\[[^ \t]*\\(@\\|\\.\\)[^ \t]*\\]" nil t)
+      (replace-match ""))
+
+    ;; and off the end
+    (goto-char (point-max))
+    (while (re-search-backward "([Ff][Ww][Dd])" nil t)
+      (replace-match ""))
+
+    ;; and finally, any whitespace that was left-over
+    (goto-char (point-min))
+    (while (re-search-forward "^[ \t]+" nil t)
+      (replace-match ""))
+    (goto-char (point-max))
+    (while (re-search-backward "[ \t]+$" nil t)
+      (replace-match ""))
+
+    (buffer-string)))
+    
 ;;; Forwarding messages.
 
+(defun message-forward-subject-author-subject (subject)
+  "Generate a subject for a forwarded message.
+The form is: [Source] Subject, where if the original message was mail,
+Source is the sender, and if the original message was news, Source is
+the list of newsgroups is was posted to."
+  (concat "["
+         (or (message-fetch-field
+              (if (message-news-p) "newsgroups" "from"))
+             "(nowhere)")
+         "] " subject))
+
+(defun message-forward-subject-fwd (subject)
+  "Generate a subject for a forwarded message.
+The form is: Fwd: Subject, where Subject is the original subject of
+the message."
+  (concat "Fwd: " subject))
+
 (defun message-make-forward-subject ()
   "Return a Subject header suitable for the message in the current buffer."
   (save-excursion
     (save-restriction
       (current-buffer)
       (message-narrow-to-head)
-      (concat "[" (or (message-fetch-field
-                      (if (message-news-p) "newsgroups" "from"))
-                     "(nowhere)")
-             "] " (or (eword-decode-unstructured-field-body
-                       (message-fetch-field "Subject") ""))))))
+      (let ((funcs message-make-forward-subject-function)
+           (subject (if message-wash-forwarded-subjects
+                        (message-wash-subject
+                         (or (eword-decode-unstructured-field-body
+                              (message-fetch-field "Subject")) ""))
+                      (or (eword-decode-unstructured-field-body
+                           (message-fetch-field "Subject")) ""))))
+       ;; Make sure funcs is a list.
+       (and funcs
+            (not (listp funcs))
+            (setq funcs (list funcs)))
+       ;; Apply funcs in order, passing subject generated by previous
+       ;; func to the next one.
+       (while funcs
+         (when (message-functionp (car funcs))
+           (setq subject (funcall (car funcs) subject)))
+         (setq funcs (cdr funcs)))
+       subject))))
 
 ;;;###autoload
 (defun message-forward (&optional news)
index c4c7509..a3b5eae 100644 (file)
@@ -89,7 +89,7 @@
 (nnoo-map-functions nndir
   (nnml-retrieve-headers 0 nndir-current-group 0 0)
   (nnml-request-article 0 nndir-current-group 0 0)
-  (nnml-request-group nndir-current-group 0 0)
+  (nnmh-request-group nndir-current-group 0 0)
   (nnml-close-group nndir-current-group 0)
   (nnml-request-list (nnoo-current-server 'nndir) nndir-directory)
   (nnml-request-newsgroups (nnoo-current-server 'nndir) nndir-directory))
index e4c79c1..16e6e9c 100644 (file)
@@ -38,7 +38,7 @@
 (defvoo nndoc-article-type 'guess
   "*Type of the file.
 One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward',
-`rfc934', `rfc822-forward', `mime-digest', `standard-digest',
+`rfc934', `rfc822-forward', `mime-digest', `mime-parts', `standard-digest',
 `slack-digest', `clari-briefs' or `guess'.")
 
 (defvoo nndoc-post-type 'mail
@@ -87,6 +87,9 @@ from the document.")
      (body-end . "")
      (file-end . "")
      (subtype digest guess))
+    (mime-parts
+     (generate-head-function . nndoc-generate-mime-parts-head)
+     (article-transform-function . nndoc-transform-mime-parts))
     (standard-digest
      (first-article . ,(concat "^" (make-string 70 ?-) "\n *\n+"))
      (article-begin . ,(concat "^\n" (make-string 30 ?-) "\n *\n+"))
@@ -128,7 +131,6 @@ from the document.")
      (subtype nil))))
 
 \f
-
 (defvoo nndoc-file-begin nil)
 (defvoo nndoc-first-article nil)
 (defvoo nndoc-article-begin nil)
@@ -140,6 +142,11 @@ from the document.")
 (defvoo nndoc-body-begin-function nil)
 (defvoo nndoc-head-begin-function nil)
 (defvoo nndoc-body-end nil)
+;; nndoc-dissection-alist is a list of sublists.  Each sublist holds the
+;; following items.  ARTICLE is an ordinal starting at 1.  HEAD-BEGIN,
+;; HEAD-END, BODY-BEGIN and BODY-END are positions in the `nndoc' buffer.
+;; LINE-COUNT is a count of lines in the body.  SUBJECT, MESSAGE-ID and
+;; REFERENCES, only present for MIME dissections, are field values.
 (defvoo nndoc-dissection-alist nil)
 (defvoo nndoc-prepare-body-function nil)
 (defvoo nndoc-generate-head-function nil)
@@ -151,6 +158,8 @@ from the document.")
 (defvoo nndoc-current-buffer nil
   "Current nndoc news buffer.")
 (defvoo nndoc-address nil)
+(defvoo nndoc-mime-header nil)
+(defvoo nndoc-mime-subject nil)
 
 (defconst nndoc-version "nndoc 1.0"
   "nndoc version.")
@@ -292,7 +301,9 @@ from the document.")
       (save-excursion
        (set-buffer nndoc-current-buffer)
        (nndoc-set-delims)
-       (nndoc-dissect-buffer)))
+       (if (eq nndoc-article-type 'mime-parts)
+           (nndoc-dissect-mime-parts)
+         (nndoc-dissect-buffer))))
     (unless nndoc-current-buffer
       (nndoc-close-server))
     ;; Return whether we managed to select a file.
@@ -436,6 +447,46 @@ from the document.")
 (defun nndoc-rfc822-forward-body-end-function ()
   (goto-char (point-max)))
 
+(defun nndoc-mime-parts-type-p ()
+  (let ((case-fold-search t)
+       (limit (search-forward "\n\n" nil t)))
+    (goto-char (point-min))
+    (when (and limit
+               (re-search-forward
+                (concat "\
+^Content-Type:[ \t]*multipart/[a-z]+;\\(.*;\\)*"
+                        "[ \t\n]*[ \t]boundary=\"?[^\"\n]*[^\" \t\n]")
+          limit t))
+      t)))
+
+(defun nndoc-transform-mime-parts (article)
+  (unless (= article 1)
+    ;; Ensure some MIME-Version.
+    (goto-char (point-min))
+    (search-forward "\n\n")
+    (let ((case-fold-search nil)
+         (limit (point)))
+      (goto-char (point-min))
+      (or (save-excursion (re-search-forward "^MIME-Version:" limit t))
+         (insert "MIME-Version: 1.0\n")))
+    ;; Generate default header before entity fields.
+    (goto-char (point-min))
+    (nndoc-generate-mime-parts-head article t)))
+
+(defun nndoc-generate-mime-parts-head (article &optional full-subject)
+  (let ((entry (cdr (assq article nndoc-dissection-alist))))
+    (let ((subject (concat "<" (nth 5 entry) ">"))
+         (message-id (nth 6 entry))
+         (references (nth 7 entry)))
+      (insert nndoc-mime-header
+             "Subject: "
+             (cond ((not full-subject) subject)
+                   (nndoc-mime-subject (concat nndoc-mime-subject " " subject))
+                   (t subject))
+             "\n")
+      (and message-id (insert "Message-ID: " message-id "\n"))
+      (and references (insert "References: " references "\n")))))
+
 (defun nndoc-clari-briefs-type-p ()
   (when (let ((case-fold-search nil))
          (re-search-forward "^\t[^a-z]+ ([^a-z]+) --" nil t))
@@ -473,7 +524,7 @@ from the document.")
     (when (and
           (re-search-forward
            (concat "^Content-Type: *multipart/digest;[ \t\n]*[ \t]"
-                   "boundary=\"\\([^\"\n]*[^\" \t\n]\\)\"")
+                   "boundary=\"?\\([^\"\n]*[^\" \t\n]\\)")
            nil t)
           (match-beginning 1))
       (setq boundary-id (match-string 1)
@@ -609,6 +660,104 @@ from the document.")
   (while (re-search-forward "^- -"nil t)
     (replace-match "-" t t)))
 
+;; Against compiler warnings.
+(defvar nndoc-mime-split-ordinal)
+
+(defun nndoc-dissect-mime-parts ()
+  "Go through a MIME composite article and partition it into sub-articles.
+When a MIME entity contains sub-entities, dissection produces one article for
+the header of this entity, and one article per sub-entity."
+  (setq nndoc-dissection-alist nil
+       nndoc-mime-split-ordinal 0)
+  (save-excursion
+    (set-buffer nndoc-current-buffer)
+    (message-narrow-to-head)
+    (let ((case-fold-search t)
+         (message-id (message-fetch-field "Message-ID"))
+         (references (message-fetch-field "References")))
+      (setq nndoc-mime-header (buffer-substring (point-min) (point-max))
+           nndoc-mime-subject (message-fetch-field "Subject"))
+      (while (string-match "\
+^\\(Subject\\|Message-ID\\|References\\|Lines\\|\
+MIME-Version\\|Content-Type\\|Content-Transfer-Encoding\\|\
+\\):.*\n\\([ \t].*\n\\)*"
+                          nndoc-mime-header)
+       (setq nndoc-mime-header (replace-match "" t t nndoc-mime-header)))
+      (widen)
+      (nndoc-dissect-mime-parts-sub (point-min) (point-max)
+                                   nil message-id references))))
+
+(defun nndoc-dissect-mime-parts-sub (begin end position message-id references)
+  "Dissect an entity within a composite MIME message.
+The article, which corresponds to a MIME entity, extends from BEGIN to END.
+The string POSITION holds a dotted decimal representation of the article
+position in the hierarchical structure, it is nil for the outer entity.
+The generated article should use MESSAGE-ID and REFERENCES field values."
+  ;; Note: `case-fold-search' is already `t' from the calling function.
+  (let ((head-begin begin)
+       (body-end end)
+       head-end body-begin type subtype composite comment)
+    (save-excursion
+      ;; Gracefully handle a missing body.
+      (goto-char head-begin)
+      (if (search-forward "\n\n" body-end t)
+         (setq head-end (1- (point))
+               body-begin (point))
+       (setq head-end end
+             body-begin end))
+      ;; Save MIME attributes.
+      (goto-char head-begin)
+      (if (re-search-forward "\
+^Content-Type: *\\([^ \t\n/;]+\\)/\\([^ \t\n/;]+\\)"
+                            head-end t)
+         (setq type (downcase (match-string 1))
+               subtype (downcase (match-string 2)))
+       (setq type "text"
+             subtype "plain"))
+      (setq composite (string= type "multipart")
+           comment (concat position
+                           (when (and position composite) ".")
+                           (when composite "*")
+                           (when (or position composite) " ")
+                           (cond ((string= subtype "plain") type)
+                                 ((string= subtype "basic") type)
+                                 (t subtype))))
+      ;; Generate dissection information for this entity.
+      (push (list (incf nndoc-mime-split-ordinal)
+                 head-begin head-end body-begin body-end
+                 (count-lines body-begin body-end)
+                 comment message-id references)
+           nndoc-dissection-alist)
+      ;; Recurse for all sub-entities, if any.
+      (goto-char head-begin)
+      (when (re-search-forward
+            (concat "\
+^Content-Type: *multipart/\\([a-z]+\\);\\(.*;\\)*"
+                    "[ \t\n]*[ \t]boundary=\"?\\([^\"\n]*[^\" \t\n]\\)")
+          head-end t)
+       (let ((boundary (concat "\n--" (match-string 3) "\\(--\\)?[ \t]*\n"))
+             (part-counter 0)
+             begin end eof-flag)
+         (goto-char head-end)
+         (setq eof-flag (not (re-search-forward boundary body-end t)))
+         (while (not eof-flag)
+           (setq begin (point))
+           (cond ((re-search-forward boundary body-end t)
+                  (or (not (match-string 1))
+                      (string= (match-string 1) "")
+                      (setq eof-flag t))
+                  (forward-line -1)
+                  (setq end (point))
+                  (forward-line 1))
+                 (t (setq end body-end
+                          eof-flag t)))
+           (nndoc-dissect-mime-parts-sub begin end
+                                         (concat position (when position ".")
+                                                 (format "%d"
+                                                         (incf part-counter)))
+                                         (nnmail-message-id)
+                                         message-id)))))))
+
 ;;;###autoload
 (defun nndoc-add-type (definition &optional position)
   "Add document DEFINITION to the list of nndoc document definitions.
index a03c195..c40f62c 100644 (file)
@@ -1154,7 +1154,7 @@ FUNC will be called with the group name to determine the article number."
          (let ((trace (nreverse nnmail-split-trace))
                (restore (current-buffer)))
            (nnheader-set-temp-buffer "*Split Trace*")
-           (gnus-add-current-to-buffer-list)
+           (gnus-add-buffer)
            (while trace
              (insert (car trace) "\n")
              (setq trace (cdr trace)))
index 5b6545f..3528e33 100644 (file)
@@ -400,7 +400,7 @@ server there that you can connect to.  See also
     (if (re-search-forward "\n\\.\r?\n" nil t)
        t
       nil))
-   ;; A result that startx with a 3xx or 4xx code is terminated
+   ;; A result that starts with a 3xx or 4xx code is terminated
    ;; by a newline.
    ((looking-at "[34]")
     (if (search-forward "\n" nil t)
@@ -585,7 +585,7 @@ server there that you can connect to.  See also
           (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.
+      ;; wash it and copy it over to the server buffer.
       (set-buffer nntp-server-buffer)
       (erase-buffer)
       (setq last-point (point-min))
@@ -1001,10 +1001,7 @@ password contained in '~/.nntp-authinfo'."
     (while (not (eobp))
       (end-of-line)
       (delete-char 1)
-      (insert nntp-end-of-line))
-    (forward-char -1)
-    (unless (eq (char-after (1- (point))) ?\r)
-      (insert "\r"))))
+      (insert nntp-end-of-line))))
 
 (defun nntp-retrieve-headers-with-xover (articles &optional fetch-old)
   (set-buffer nntp-server-buffer)
index 4a6b8a0..d183af9 100755 (executable)
--- a/make.bat
+++ b/make.bat
@@ -1,57 +1,57 @@
-@echo off\r
-\r
-rem Written by David Charlap <shamino@writeme.com>\r
-\r
-rem There are two catches, however.  The emacs.bat batch file may not exist\r
-rem in all distributions.  It is part of the Voelker build of Emacs 19.34\r
-rem (http://www.cs.washington.edu/homes/voelker/ntemacs.html).  If the user\r
-rem installs Gnus with some other build, he may have to replace calls to\r
-rem %1\emacs.bat with something else.\r
-rem \r
-rem Also, the emacs.bat file that Voelker ships does not accept more than 9\r
-rem parameters, so the attempts to compile the .texi files will fail.  To\r
-rem fix that (at least on NT.  I don't know about Win95), the following\r
-rem change should be made to emacs.bat:\r
-rem \r
-rem     %emacs_dir%\bin\emacs.exe %1 %2 %3 %4 %5 %6 %7 %8 %9\r
-rem \r
-rem should become\r
-rem \r
-rem     %emacs_dir%\bin\emacs.exe %*\r
-rem \r
-rem which will allow the batch file to accept an unlimited number of\r
-rem parameters.\r
-\r
-if "%1" == "" goto usage\r
-\r
-cd lisp\r
-call %1\bin\emacs.bat -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-compile\r
-if not "%2" == "copy" goto info\r
-copy *.el* %1\lisp\r
-\r
-:info\r
-cd ..\texi\r
-call %1\bin\emacs.bat -batch -q -no-site-file gnus.texi -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer\r
-call %1\bin\emacs.bat -batch -q -no-site-file message.texi -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer\r
-if not "%2" == "copy" goto done\r
-copy gnus %1\info\r
-copy gnus-?? %1\info\r
-copy message %1\info\r
-\r
-:etc\r
-cd ..\etc\r
-copy gnus-tut.txt %1\etc\r
-\r
-:done\r
-cd ..\r
-goto end\r
-\r
-:usage\r
-echo Usage: make ^<emacs-dir^> [copy]\r
-echo.\r
-echo where: ^<emacs-dir^> is the directory you installed emacs in\r
-echo                    eg. d:\emacs\19.34\r
-echo        copy indicates that the compiled files should be copied to your\r
-echo             emacs lisp, info, and etc directories\r
-\r
-:end\r
+@echo off
+
+rem Written by David Charlap <shamino@writeme.com>
+
+rem There are two catches, however.  The emacs.bat batch file may not exist
+rem in all distributions.  It is part of the Voelker build of Emacs 19.34
+rem (http://www.cs.washington.edu/homes/voelker/ntemacs.html).  If the user
+rem installs Gnus with some other build, he may have to replace calls to
+rem %1\emacs.bat with something else.
+rem 
+rem Also, the emacs.bat file that Voelker ships does not accept more than 9
+rem parameters, so the attempts to compile the .texi files will fail.  To
+rem fix that (at least on NT.  I don't know about Win95), the following
+rem change should be made to emacs.bat:
+rem 
+rem     %emacs_dir%\bin\emacs.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
+rem 
+rem should become
+rem 
+rem     %emacs_dir%\bin\emacs.exe %*
+rem 
+rem which will allow the batch file to accept an unlimited number of
+rem parameters.
+
+if "%1" == "" goto usage
+
+cd lisp
+call %1\bin\emacs.bat -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-compile
+if not "%2" == "copy" goto info
+copy *.el* %1\lisp
+
+:info
+cd ..\texi
+call %1\bin\emacs.bat -batch -q -no-site-file gnus.texi -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer
+call %1\bin\emacs.bat -batch -q -no-site-file message.texi -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer
+if not "%2" == "copy" goto done
+copy gnus %1\info
+copy gnus-?? %1\info
+copy message %1\info
+
+:etc
+cd ..\etc
+copy gnus-tut.txt %1\etc
+
+:done
+cd ..
+goto end
+
+:usage
+echo Usage: make ^<emacs-dir^> [copy]
+echo.
+echo where: ^<emacs-dir^> is the directory you installed emacs in
+echo                    eg. d:\emacs\19.34
+echo        copy indicates that the compiled files should be copied to your
+echo             emacs lisp, info, and etc directories
+
+:end
index a2ec074..99e2d27 100644 (file)
@@ -1,6 +1,44 @@
+1998-08-14 01:31:36  Simon Josefsson  <jas@pdc.kth.se>
+
+       * gnus.texi (Posting Styles): New 'body style.
+
+1998-08-13 21:17:00  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.texi (Paging the Article): Addition.
+
+1998-08-13 00:13:47  Simon Josefsson  <jas@pdc.kth.se>
+
+       * gnus.texi (Mail Group Commands): Typo.
+
+1998-08-12 21:28:09  Simon Josefsson  <jas@pdc.kth.se>
+
+       * gnus.texi (Article Caching): gnus-cacheable-groups.
+       (Newest Features): remove gnus-cacheable-groups.
+
+1998-08-12 22:01:12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * message.texi (Forwarding): Addition.
+
+1998-08-11 20:33:53  Justin Zaglio  <justin@caxton.com>
+
+       * gnus.texi (Group Maintenance): Fix.
+
+1998-08-11 11:44:20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.texi (Group Maintenance): Fix.
+
+1998-08-10 08:59:25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.texi (Article Highlighting): Addition.
+       (Article Fontisizing): Fix.
+       (Article Hiding): Change.
+       (Article Hiding): Fix.
+
 1998-08-09 15:32:24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus.texi (Hiding Headers): Fix.
+       (Article Hiding): Addition.
+       (Document Groups): Addition.
 
 1998-08-08 06:06:37  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
@@ -332,7 +370,7 @@ Sat Sep 20 20:53:43 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
 Wed Sep 17 02:32:56 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
-       * gnus.texi (Customizing Threading): Broken up into five nodes. 
+       * gnus.texi (Customizing Threading): Broken up into five nodes.
        (Article Washing): Addition.
 
        * message.texi (Various Commands): Add.
@@ -359,7 +397,7 @@ Sat Jul 19 23:02:03 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
 Sat Jul 12 16:29:35 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
-       * gnus.texi (Picon Configuration): Moved Picons to under XEmacs. 
+       * gnus.texi (Picon Configuration): Moved Picons to under XEmacs.
        (Smileys): New section.
 
 Fri Jul 11 11:58:20 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
@@ -541,7 +579,7 @@ Mon Feb  3 07:31:47 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 Mon Jan 27 17:51:29 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus.texi (Highlighting and Menus): Removed
-       `gnus-display-type'. 
+       `gnus-display-type'.
 
 Sat Jan 25 08:09:30 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
@@ -664,7 +702,7 @@ Fri Oct 25 09:04:59 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
 
 Wed Oct 23 08:28:29 1996  Hrvoje Niksic  <hniksic@srce.hr>
 
-       * gnus.texi (Fancy Mail Splitting): Removed trailing garbage. 
+       * gnus.texi (Fancy Mail Splitting): Removed trailing garbage.
 
 Tue Oct 22 07:36:02 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
 
@@ -942,4 +980,3 @@ Mon Jul 29 10:12:24 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
        (Advanced Scoring Example): New.
        (Advanced Scoring Syntax): New.
        (Advanced Scoring): New.
-
index c205abe..eb05e11 100644 (file)
@@ -16,6 +16,7 @@ PERL=perl
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 SHELL = /bin/sh
+PAPERTYPE=a4
 
 all: gnus message
 
@@ -73,7 +74,7 @@ latexps:
        cat postamble.tex >> gnus.tmplatexi
        $(LATEX) gnus.tmplatexi
        $(LATEX) gnus.tmplatexi
-       $(DVIPS) -f gnus.dvi > gnus.ps
+       $(DVIPS) -t $(PAPERTYPE) -f gnus.dvi > gnus.ps
 
 pss:
        make latex
@@ -87,25 +88,25 @@ psout:
 latexboth:
        rm -f gnus-manual-a4.ps.gz gnus-manual-standard.ps.gz
        make latexps
-       mv /local/tmp/larsi/gnus.ps /local/tmp/larsi/gnus-manual-a4.ps
-       gzip /local/tmp/larsi/gnus-manual-a4.ps
-       sed 's/,a4paper//' gnus.latexi > gnus-standard.latexi
+       mv gnus.ps gnus-manual-a4.ps
+       gzip gnus-manual-a4.ps
+       sed 's/,a4paper/,letterpaper/' gnus.latexi > gnus-standard.latexi
        mv gnus-standard.latexi gnus.latexi
-       make latexps
-       mv /local/tmp/larsi/gnus.ps /local/tmp/larsi/gnus-manual-standard.ps
-       gzip /local/tmp/larsi/gnus-manual-standard.ps
+       make latexps PAPERTYPE=letter
+       mv gnus.ps gnus-manual-standard.ps
+       gzip gnus-manual-standard.ps
 
 out:
-       cp /local/tmp/larsi/gnus-manual-standard.ps.gz \
-       /local/tmp/larsi/gnus-manual-a4.ps.gz \
+       cp gnus-manual-standard.ps.gz \
+       gnus-manual-a4.ps.gz \
        /local/ftp/pub/emacs/gnus/manual
-       mv /local/tmp/larsi/gnus-manual-standard.ps.gz \
-       /local/tmp/larsi/gnus-manual-a4.ps.gz \
+       mv gnus-manual-standard.ps.gz \
+       gnus-manual-a4.ps.gz \
        /hom/larsi/www_docs/www.gnus.org/documents
 
 veryclean:
        make clean
-       rm -f gnus.dvi gnus.ps
+       rm -f gnus.dvi gnus.ps texi2latex.elc
 
 distclean:
        make clean
index c8449b9..149fa32 100644 (file)
@@ -62,6 +62,8 @@
 \newcommand{\gnustilde}{\symbol{"7E}}
 \newcommand{\gnusless}{{$<$}}
 \newcommand{\gnusgreater}{{$>$}}
+\newcommand{\gnusbraceleft}{{$>$}}
+\newcommand{\gnusbraceright}{{$>$}}
 
 \newcommand{\gnushead}{\raisebox{-1cm}{\epsfig{figure=ps/gnus-head.eps,height=1cm}}}
 \newcommand{\gnusinteresting}{
@@ -1284,11 +1286,16 @@ Here's an example value for this variable that might look nice if the
 background is dark:
 
 @lisp
-(face-spec-set 'my-group-face-1 '((t (:foreground "Red" :bold t))))
-(face-spec-set 'my-group-face-2 '((t (:foreground "SeaGreen" :bold t))))
-(face-spec-set 'my-group-face-3 '((t (:foreground "SpringGreen" :bold t))))
-(face-spec-set 'my-group-face-4 '((t (:foreground "SteelBlue" :bold t))))
-(face-spec-set 'my-group-face-5 '((t (:foreground "SkyBlue" :bold t))))
+(face-spec-set 'my-group-face-1
+               '((t (:foreground "Red" :bold t))))
+(face-spec-set 'my-group-face-2
+               '((t (:foreground "SeaGreen" :bold t))))
+(face-spec-set 'my-group-face-3
+               '((t (:foreground "SpringGreen" :bold t))))
+(face-spec-set 'my-group-face-4
+               '((t (:foreground "SteelBlue" :bold t))))
+(face-spec-set 'my-group-face-5
+               '((t (:foreground "SkyBlue" :bold t))))
 
 (setq gnus-group-highlight
       '(((> unread 200) . my-group-face-1)
@@ -2390,8 +2397,10 @@ Find bogus groups and delete them
 @kindex F (Group)
 @findex gnus-group-find-new-groups
 Find new groups and process them (@code{gnus-group-find-new-groups}).
-If given a prefix, use the @code{ask-server} method to query the server
-for new groups.
+With 1 @kbd{C-u}, use the @code{ask-server} method to query the server
+for new groups.  With 2 @kbd{C-u}'s, use most complete method possible
+to query the server for new groups, and subscribe the new groups as
+zombies.
 
 @item C-c C-x
 @kindex C-c C-x (Group)
@@ -2894,7 +2903,7 @@ The @samp{Emacs} topic has the topic parameter @code{(score-file
 . "emacs.SCORE")}; the @samp{Relief} topic has the topic parameter
 @code{(score-file . "relief.SCORE")}; and the @samp{Misc} topic has the
 topic parameter @code{(score-file . "emacs.SCORE")}.  In addition,
-@samp{alt.religion.emacs} has the group parameter @code{(score-file
+@* @samp{alt.religion.emacs} has the group parameter @code{(score-file
 . "religion.SCORE")}.
 
 Now, when you enter @samp{alt.sex.emacs} in the @samp{Relief} topic, you
@@ -3696,6 +3705,12 @@ Scroll the current article back one page (@code{gnus-summary-prev-page}).
 Scroll the current article one line forward
 (@code{gnus-summary-scroll-up}).
 
+@item M-RET
+@kindex M-RET (Summary)
+@findex gnus-summary-scroll-down
+Scroll the current article one line backward
+(@code{gnus-summary-scroll-down}).
+
 @item A g
 @itemx g
 @kindex A g (Summary)
@@ -5293,13 +5308,17 @@ to score unwanted articles down and have them marked as read.  They will
 not then be downloaded by this command.
 
 @vindex gnus-uncacheable-groups
-It is likely that you do not want caching on some groups.  For instance,
+@vindex gnus-cacheable-groups
+It is likely that you do not want caching on all groups.  For instance,
 if your @code{nnml} mail is located under your home directory, it makes no
 sense to cache it somewhere else under your home directory.  Unless you
-feel that it's neat to use twice as much space.  To limit the caching,
-you could set the @code{gnus-uncacheable-groups} regexp to
-@samp{^nnml}, for instance.  This variable is @code{nil} by
-default.
+feel that it's neat to use twice as much space.  
+
+To limit the caching, you could set @code{gnus-cacheable-groups} to a
+regexp of groups to cache, @samp{^nntp} for instance, or set the
+@code{gnus-uncacheable-groups} regexp to @samp{^nnml}, for instance.
+Both variables are @code{nil} by default. If a group matches both
+variables, the group is not cached.
 
 @findex gnus-cache-generate-nov-databases
 @findex gnus-cache-generate-active
@@ -6073,17 +6092,25 @@ these articles easier.
 
 @node Article Highlighting
 @subsection Article Highlighting
-@cindex highlight
+@cindex highlighting
 
 Not only do you want your article buffer to look like fruit salad, but
-you want it to look like technicolor fruit salad.
+you want it to look like technicolor fruit salad.  
 
 @table @kbd
 
 @item W H a
 @kindex W H a (Summary)
 @findex gnus-article-highlight
-Highlight the current article (@code{gnus-article-highlight}).
+@findex gnus-article-maybe-highlight
+Do much highlighting of the current article
+(@code{gnus-article-highlight}).  This function highlights header, cited
+text, the signature, and adds buttons to the body and the head.
+
+Most users would prefer using @code{gnus-article-maybe-highlight} in
+@code{gnus-article-display-hook} (@pxref{Customizing Articles}) instead.
+This is a bit less agressive---it highlights only the headers, the
+signature and adds buttons.
 
 @item W H h
 @kindex W H h (Summary)
@@ -6169,6 +6196,8 @@ default.
 
 @end table
 
+@xref{Customizing Articles} for how to highlight articles automatically.
+
 
 @node Article Fontisizing
 @subsection Article Fontisizing
@@ -6182,9 +6211,9 @@ like @samp{_this_} or @samp{*this*}.  Gnus can make this look nicer by
 running the article through the @kbd{W e}
 (@code{gnus-article-emphasize}) command.
 
-@vindex gnus-article-emphasis
+@vindex gnus-emphasis-alist
 How the emphasis is computed is controlled by the
-@code{gnus-article-emphasis} variable.  This is an alist where the first
+@code{gnus-emphasis-alist} variable.  This is an alist where the first
 element is a regular expression to be matched.  The second is a number
 that says what regular expression grouping is used to find the entire
 emphasized word.  The third is a number that says what regexp grouping
@@ -6221,6 +6250,8 @@ say something like:
 (copy-face 'red 'gnus-emphasis-italic)
 @end lisp
 
+@xref{Customizing Articles} for how to fontize articles automatically.
+
 
 @node Article Hiding
 @subsection Article Hiding
@@ -6234,7 +6265,9 @@ too much cruft in most articles.
 @item W W a
 @kindex W W a (Summary)
 @findex gnus-article-hide
-Do maximum hiding on the summary buffer (@kbd{gnus-article-hide}).
+Do quite a lot of hiding on the article buffer
+(@kbd{gnus-article-hide}).  In particular, this function will hide
+headers, PGP, cited text and the signature.  
 
 @item W W h
 @kindex W W h (Summary)
@@ -6276,21 +6309,13 @@ customizing the hiding:
 
 @table @code
 
-@item gnus-cite-hide-percentage
-@vindex gnus-cite-hide-percentage
-If the cited text is of a bigger percentage than this variable (default
-50), hide the cited text.
-
-@item gnus-cite-hide-absolute
-@vindex gnus-cite-hide-absolute
-The cited text must have at least this length (default 10) before it
-is hidden.
-
-@item gnus-cited-text-button-line-format
-@vindex gnus-cited-text-button-line-format
+@item gnus-cited-opened-text-button-line-format
+@itemx gnus-cited-closed-text-button-line-format
+@vindex gnus-cited-closed-text-button-line-format
+@vindex gnus-cited-opened-text-button-line-format
 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
+by these format-like variable (@pxref{Formatting Variables}).  These
 specs are valid:
 
 @table @samp
@@ -6308,6 +6333,25 @@ The number of lines at the beginning of the cited text to leave shown.
 
 @end table
 
+@item W W C-c
+@kindex W W C-c (Summary)
+@findex gnus-article-hide-citation-maybe
+
+Hide citation (@code{gnus-article-hide-citation-maybe}) depending on the
+following two variables:
+
+@table @code
+@item gnus-cite-hide-percentage
+@vindex gnus-cite-hide-percentage
+If the cited text is of a bigger percentage than this variable (default
+50), hide the cited text.
+
+@item gnus-cite-hide-absolute
+@vindex gnus-cite-hide-absolute
+The cited text must have at least this length (default 10) before it
+is hidden.
+@end table
+
 @item W W C
 @kindex W W C (Summary)
 @findex gnus-article-hide-citation-in-followups
@@ -6325,6 +6369,9 @@ hidden.  If you give a positive prefix, they will always hide.
 Also @pxref{Article Highlighting} for further variables for
 citation customization.
 
+@xref{Customizing Articles} for how to hide article elements
+automatically.
+
 
 @node Article Washing
 @subsection Article Washing
@@ -6484,6 +6531,8 @@ body (@code{gnus-article-strip-leading-space}).
 
 @end table
 
+@xref{Customizing Articles} for how to wash articles automatically.
+
 
 @node Article Buttons
 @subsection Article Buttons
@@ -6568,6 +6617,8 @@ Face used when the mouse cursor is over a button.
 
 @end table
 
+@xref{Customizing Articles} for how to buttonize articles automatically.
+
 
 @node Article Date
 @subsection Article Date
@@ -6635,6 +6686,9 @@ that the article was posted in 1854.  Although something like that is
 
 @end table
 
+@xref{Customizing Articles} for how to display the date in your
+preferred format automatically.
+
 
 @node Article Signature
 @subsection Article Signature
@@ -7171,7 +7225,7 @@ name, a @code{From} header and a @code{Subject} header.
 @item B r
 @kindex B r (Summary)
 @findex gnus-summary-respool-article
-Respool the mail article (@code{gnus-summary-move-article}).
+Respool the mail article (@code{gnus-summary-respool-article}).
 @code{gnus-summary-respool-default-method} will be used as the default
 select method when respooling.  This variable is @code{nil} by default,
 which means that the current group select method will be used instead.
@@ -7863,9 +7917,12 @@ been inserted into the article buffer.  It is meant to handle all
 treatment of the article before it is displayed.
 
 @findex gnus-article-maybe-highlight
-By default this hook just contains @code{gnus-article-hide-headers},
-@code{gnus-article-treat-overstrike}, and
-@code{gnus-article-maybe-highlight}, but there are thousands, nay
+@findex gnus-article-maybe-hide-headers
+By default this hook just contains
+@code{gnus-article-maybe-hide-headers},
+@code{gnus-hide-boring-headers}, @code{gnus-article-treat-overstrike},
+and @code{gnus-article-maybe-highlight} (and under XEmacs,
+@code{gnus-article-display-x-face}), but there are thousands, nay
 millions, of functions you can put in this hook.  For an overview of
 functions @pxref{Article Highlighting}, @pxref{Article Hiding},
 @pxref{Article Washing}, @pxref{Article Buttons} and @pxref{Article
@@ -8332,9 +8389,10 @@ to @dfn{match}.
 Each style may contain a arbitrary amount of @dfn{attributes}.  Each
 attribute consists of a @var{(name . value)} pair.  The attribute name
 can be one of @code{signature}, @code{signature-file},
-@code{organization}, @code{address} or @code{name}.  The attribute name
-can also be a string.  In that case, this will be used as a header name,
-and the value will be inserted in the headers of the article.
+@code{organization}, @code{address}, @code{name} or @code{body}.  The
+attribute name can also be a string.  In that case, this will be used as
+a header name, and the value will be inserted in the headers of the
+article.
 
 The attribute value can be a string (used verbatim), a function (the
 return value will be used), a variable (its value will be used) or a
@@ -8356,6 +8414,7 @@ So here's a new example:
         (posting-from-work-p
          (signature-file "~/.work-signature")
          (address "user@@bar.foo")
+         (body "You are fired.\n\nSincerely, your boss.")
          (organization "Important Work, Inc"))
         ("^nn.+:"
          (signature-file "~/.mail-signature"))))
@@ -9651,6 +9710,9 @@ element is @code{:}, then the second element will be called as a
 function with @var{args} given as arguments.  The function should return
 a SPLIT.
 
+@item
+@code{nil}: If the split is @code{nil}, it is ignored.
+
 @end enumerate
 
 In these splits, @var{FIELD} must match a complete field name.
@@ -9679,8 +9741,8 @@ substitutions in the group names), you can say things like:
 @end example
 
 If the string contains the element @samp{\&}, then the previously
-matched string will be substituted.  Similarly, the elements @samp{\1}
-up to @samp{\9} will be substituted with the text matched by the
+matched string will be substituted.  Similarly, the elements @samp{\\1}
+up to @samp{\\9} will be substituted with the text matched by the
 groupings 1 through 9.
 
 
@@ -10473,6 +10535,9 @@ The rnews batch transport format.
 @item forward
 Forwarded articles.
 
+@item mime-parts
+MIME multipart messages, besides digests.
+
 @item mime-digest
 @cindex digest
 @cindex MIME digest
@@ -10515,8 +10580,9 @@ Virtual server variables:
 @vindex nndoc-article-type
 This should be one of @code{mbox}, @code{babyl}, @code{digest},
 @code{news}, @code{rnews}, @code{mmdf}, @code{forward}, @code{rfc934},
-@code{rfc822-forward}, @code{mime-digest}, @code{standard-digest},
-@code{slack-digest}, @code{clari-briefs} or @code{guess}.
+@code{rfc822-forward}, @code{mime-parts}, @code{mime-digest},
+@code{standard-digest}, @code{slack-digest}, @code{clari-briefs} or
+@code{guess}.
 
 @item nndoc-post-type
 @vindex nndoc-post-type
@@ -11153,7 +11219,7 @@ If you would like to read @samp{soc.motss} both from a server in Japan
 and a server in Norway, you could use the following as the group regexp:
 
 @example
-"^nntp\\+some\\.server\\.jp:soc\\.motss$\\|^nntp\\+some\\.server\\.no:soc\\.motss$"
+"^nntp\\+server\\.jp:soc\\.motss$\\|^nntp\\+server\\.no:soc\\.motss$"
 @end example
 
 (Remember, though, that if you're creating the group with @kbd{G m}, you
@@ -11649,7 +11715,7 @@ Mark the article for downloading (@code{gnus-agent-mark-article}).
 Remove the downloading mark from the article
 (@code{gnus-agent-unmark-article}).
 
-@item @@
+@item @@ 
 @kindex @@ (Agent Summary)
 @findex gnus-agent-toggle-mark
 Toggle whether to download the article (@code{gnus-agent-toggle-mark}).
@@ -13519,7 +13585,9 @@ definition of that function:
 
 @lisp
 (defun gnus-decay-score (score)
-  "Decay SCORE according to `gnus-score-decay-constant' and `gnus-score-decay-scale'."
+  "Decay SCORE.
+This is done according to `gnus-score-decay-constant'
+and `gnus-score-decay-scale'."
   (floor
    (- score
       (* (if (< score 0) 1 -1)
@@ -14738,12 +14806,12 @@ in either monochrome @code{XBM} format or color @code{XPM} and
 @vindex gnus-picons-piconsearch-url
 If you have a permanent connection to the Internet you can use Steve
 Kinzler's Picons Search engine by setting
-@code{gnus-picons-piconsearch-url} to the string
+@code{gnus-picons-piconsearch-url} to the string @*
 @file{http://www.cs.indiana.edu/picons/search.html}.
 
 @vindex gnus-picons-database
 Otherwise you need a local copy of his database.  For instructions on
-obtaining and installing the picons databases, point your Web browser at
+obtaining and installing the picons databases, point your Web browser at @*
 @file{http://www.cs.indiana.edu/picons/ftp/index.html}.  Gnus expects
 picons to be installed into a location pointed to by
 @code{gnus-picons-database}.
@@ -14775,8 +14843,10 @@ To enable displaying picons, simply put the following line in your
 
 @lisp
 (setq gnus-use-picons t)
-(add-hook 'gnus-article-display-hook 'gnus-article-display-picons t)
-(add-hook 'gnus-article-display-hook 'gnus-picons-article-display-x-face)
+(add-hook 'gnus-article-display-hook
+          'gnus-article-display-picons t)
+(add-hook 'gnus-article-display-hook
+          'gnus-picons-article-display-x-face)
 @end lisp
 
 and make sure @code{gnus-picons-database} points to the directory
@@ -14785,7 +14855,8 @@ containing the Picons databases.
 Alternatively if you want to use the web piconsearch engine add this:
 
 @lisp
-(setq gnus-picons-piconsearch-url "http://www.cs.indiana.edu:800/piconsearch")
+(setq gnus-picons-piconsearch-url
+      "http://www.cs.indiana.edu:800/piconsearch")
 @end lisp
 
 
@@ -15201,7 +15272,7 @@ each unsolicited commercial email---at your leisure.
 
 If you are also a lazy net citizen, you will probably prefer complaining
 automatically with the @file{gnus-junk.el} package, available FOR FREE
-at @file{<URL:http://stud2.tuwien.ac.at/~e9426626/gnus-junk.html>}.
+at @* @file{<URL:http://stud2.tuwien.ac.at/~e9426626/gnus-junk.html>}.
 Since most e-mail spam is sent automatically, this may reconcile the
 cosmic balance somewhat.
 
@@ -15388,7 +15459,7 @@ On July 28th 1996 work on Red Gnus was begun, and it was released on
 January 25th 1997 (after 84 releases) as ``Gnus 5.4'' (67 releases).
 
 On September 13th 1997, Quassia Gnus was started and lasted 37
-releases.  If was released as ``Gnus 5.6.30' on March 8th 1998.
+releases.  If was released as ``Gnus 5.6 on March 8th 1998.
 
 If you happen upon a version of Gnus that has a prefixed name --
 ``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'' --
@@ -15865,7 +15936,7 @@ actually are people who are using Gnus.  Who'd'a thunk it!
 * ding Gnus::          New things in Gnus 5.0/5.1, the first new Gnus.
 * September Gnus::     The Thing Formally Known As Gnus 5.3/5.3.
 * Red Gnus::           Third time best---Gnus 5.4/5.5.
-* Quassia Gnus::       Two times two is four, or Gnus 5.6.30.
+* Quassia Gnus::       Two times two is four, or Gnus 5.6.
 @end menu
 
 These lists are, of course, just @emph{short} overviews of the
@@ -16391,7 +16462,8 @@ mail before saving the mail (@pxref{Washing Mail}).
 Emphasized text can be properly fontisized:
 
 @lisp
-(add-hook 'gnus-article-display-hook 'gnus-article-emphasize)
+(add-hook 'gnus-article-display-hook
+          'gnus-article-emphasize)
 @end lisp
 
 @end itemize
@@ -16400,7 +16472,7 @@ Emphasized text can be properly fontisized:
 @node Quassia Gnus
 @subsubsection Quassia Gnus
 
-New features in Gnus 5.6.30:
+New features in Gnus 5.6:
 
 @itemize @bullet
 
@@ -16626,8 +16698,6 @@ articles aren't displayed.
 @item
  nndoc should always allocate unique Message-IDs.
 @item
- implement gnus-score-thread
-@item
  If there are mail groups the first time you use Gnus, Gnus'll
 make the mail groups killed.
 @item
@@ -17147,7 +17217,7 @@ you could also try to read the archive for that group.  Part of the
 problem is that archives are spread all over the net, unlike FAQs.
 What would be best I suppose is to find the one closest to your site.
 
-In any case, there is a list of general news group archives at
+In any case, there is a list of general news group archives at @*
 ftp://ftp.neosoft.com/pub/users/claird/news.lists/newsgroup_archives.html
 
 
@@ -17554,9 +17624,6 @@ Mac, MS (etc) characters into ISO 8859-1.
 numbers and match on the age of the article.
 
 @item
- gnus-cacheable-groups
-
-@item
 @example
 >  > > If so, I've got one gripe: It seems that when I fire up gnus 5.2.25
 >  > > under xemacs-19.14, it's creating a new frame, but is erasing the
@@ -17724,6 +17791,10 @@ summary buffer for each article.
 Implement gnus-batch-brew-soup.
 
 @item
+Group parameters and summary commands for un/subscribing to mailing
+lists. 
+
+@item
 Solve the halting problem.
 
 @c TODO
@@ -18049,7 +18120,8 @@ useful data is in the summary buffer, anyway.  Set this variable to
 Set this hook to all the available hiding commands:
 @lisp
 (setq gnus-article-display-hook
-      '(gnus-article-hide-headers gnus-article-hide-signature
+      '(gnus-article-hide-headers
+        gnus-article-hide-signature
         gnus-article-hide-citation))
 @end lisp
 
index 1d194f9..1fb2dfe 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message
-@settitle Message 5.6.30 Manual
+@settitle Message 5.6.33 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -42,7 +42,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Message 5.6.30 Manual
+@title Message 5.6.33 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -83,7 +83,7 @@ Message mode buffers.
 * Key Index::         List of Message mode keys.
 @end menu
 
-This manual corresponds to Message 5.6.30.  Message is distributed with
+This manual corresponds to Message 5.6.33.  Message is distributed with
 the Gnus distribution bearing the same version number as this manual
 has. 
 
@@ -267,6 +267,24 @@ forwarded message will be inserted first in the new mail.
 @vindex message-included-forward-headers
 Regexp matching header lines to be included in forwarded messages.  
 
+@item message-make-forward-subject-function
+@vindex message-make-forward-subject-function
+A list of functions that are called to generate a subject header for
+forwarded messages.  The subject generated by the previous function is
+passed into each successive function.
+
+The provided functions are:
+
+@table @code
+@item message-forward-subject-author-subject
+@findex message-forward-subject-author-subject
+Source of article (author or newsgroup), in brackets followed by the
+subject.
+
+@item message-forward-subject-fwd
+Subject of article with @samp{Fwd:} prepended to it.
+@end table
+
 @end table