Importing Pterodactyl Gnus v0.72.
authoryamaoka <yamaoka>
Wed, 20 Jan 1999 01:01:27 +0000 (01:01 +0000)
committeryamaoka <yamaoka>
Wed, 20 Jan 1999 01:01:27 +0000 (01:01 +0000)
53 files changed:
GNUS-NEWS
lisp/ChangeLog
lisp/base64.el
lisp/binhex.el
lisp/gnus-agent.el
lisp/gnus-art.el
lisp/gnus-cache.el
lisp/gnus-cus.el
lisp/gnus-ems.el
lisp/gnus-gl.el
lisp/gnus-msg.el
lisp/gnus-range.el
lisp/gnus-salt.el
lisp/gnus-score.el
lisp/gnus-spec.el
lisp/gnus-srvr.el
lisp/gnus-start.el
lisp/gnus-sum.el
lisp/gnus-topic.el
lisp/gnus-util.el
lisp/gnus-xmas.el
lisp/gnus.el
lisp/lpath.el
lisp/mailcap.el
lisp/md5.el
lisp/message.el
lisp/mm-bodies.el
lisp/mm-decode.el
lisp/mm-util.el
lisp/mm-uu.el
lisp/mm-view.el
lisp/mml.el
lisp/nndb.el
lisp/nndoc.el
lisp/nndraft.el
lisp/nnfolder.el
lisp/nnheader.el
lisp/nnkiboze.el
lisp/nnlistserv.el
lisp/nnmail.el
lisp/nnml.el
lisp/nnsoup.el
lisp/nntp.el
lisp/pop3.el
lisp/rfc1843.el
lisp/rfc2047.el
lisp/rfc2231.el
lisp/smiley.el
lisp/time-date.el
lisp/uudecode.el
texi/ChangeLog
texi/gnus.texi
texi/message.texi

index a0ba334..72fac76 100644 (file)
--- a/GNUS-NEWS
+++ b/GNUS-NEWS
@@ -8,4 +8,7 @@ called to position point.
 *** The user can now decide which extra headers should be included in
 summary buffers and NOV files.
 
+*** `gnus-article-display-hook' has been removed.  Instead, a number
+of variables starting with `gnus-treat-'.
+
 
index 2b73d3f..92ab5a5 100644 (file)
@@ -1,3 +1,67 @@
+Wed Jan 20 00:50:53 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Pterodactyl Gnus v0.72 is released.
+
+1999-01-20 01:39:48  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.el: Cleaned up trailing whitespace.
+
+       * mm-util.el (mm-read-charset): Work.
+
+1999-01-17  Matt Armstrong  <mattdav+matt@best.com>
+
+       * gnus-score.el (gnus-score-find-bnews): Match regexp on the
+       nnheader-translate-file-chars'd group name.
+
+1999-01-20 01:30:30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * message.el (message-encode-message-body): Fold case.
+
+1999-01-20 01:28:16  Alexei V. Barantsev  <barancev@ispras.ru>
+
+       * gnus-xmas.el (gnus-xmas-modeline-glyph): Backquote.
+
+1999-01-20 00:46:15  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * mailcap.el (mailcap-add): New function.
+
+1999-01-18 09:40:37  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-art.el (article-goto-body-goes-to-point-min-p): New variable.
+       (article-goto-body): Use it.
+       (gnus-treat-article): Ditto.
+
+       * gnus-agent.el (gnus-agent-get-undownloaded-list): Remove the
+       downloaded articles from the downloadeble list.
+
+1999-01-16 17:31:08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * message.el (message-encode-message-body): Bind
+       mail-parse-charset.
+
+       * mm-util.el (mm-charset-synonym-alist): New variable.
+       (mm-charset-to-coding-system): Use it.
+       (mm-charset-coding-system-alist): Removed.
+       (mm-charset-to-coding-system): Don't use it.
+       (mm-find-charset-region): Use mail-parse-charset.
+
+       * gnus-art.el (gnus-treatment-function-alist): Use
+       gnus-article-display-picons.
+       (gnus-treat-display-xface): Only do if we have xface feature.
+       (gnus-part-display-hook): New function.
+       (gnus-treat-article): Use it.
+       (gnus-treat-article): Use gnus-visual.
+
+       * gnus-msg.el (gnus-setup-posting-charset): Check elem.
+
+       * gnus-art.el (gnus-mm-display-part): Fix the MIME button after
+       displaying.
+
+       * mm-decode.el (mm-insert-part): Use insert-buffer-substring.
+
+       * gnus-score.el (gnus-score-find-bnews): Protect against invalid
+       regexp file names.
+
 Sat Jan 16 03:15:57 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Pterodactyl Gnus v0.71 is released.
@@ -15,7 +79,7 @@ Sat Jan 16 03:15:57 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * gnus-start.el (gnus-ignored-newsgroups-has-to-p): Removed.
 
        * gnus-msg.el (gnus-setup-posting-charset): Allow variables and
-       functions. 
+       functions.
 
        * message.el (message-posting-charset): New variable.
        (message-send-mail): Use it.
@@ -71,7 +135,7 @@ Fri Jan 15 20:50:38 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * mm-view.el (mm-inline-text): Ditto.
 
        * gnus-move.el (gnus-move-group-to-server): Protect against nil
-       ranges. 
+       ranges.
 
        * mm-decode.el (mm-display-external): Save the buffer.
        (mm-remove-part): Kill it.
@@ -86,7 +150,7 @@ Fri Jan 15 20:50:38 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        coding-system-for-read.
 
        * gnus-sum.el (gnus-summary-exit): Do adaptive scoring before
-       prepare-exit-hook. 
+       prepare-exit-hook.
 
        * mm-view.el (mm-setup-w3): Require w3.
 
@@ -100,7 +164,7 @@ Fri Jan 15 20:50:38 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * mm-encode.el: Ditto.
 
        * mm-bodies.el (mm-decode-content-transfer-encoding): Message the
-       error. 
+       error.
 
        * mailcap.el (mailcap-mime-data): SAFER ps.
 
@@ -165,7 +229,7 @@ Fri Jan 15 20:50:38 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 1999-01-12 07:20:31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
-       * gnus-picon.el (gnus-picons-setup-buffer): Don't set major mode. 
+       * gnus-picon.el (gnus-picons-setup-buffer): Don't set major mode.
        (gnus-picons-setup-p): New variable.
 
 1999-01-11 02:13:12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
@@ -174,7 +238,7 @@ Fri Jan 15 20:50:38 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 1999-01-04 12:58:13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
-       * gnus-sum.el (gnus-summary-exit-no-update): Don't use run-hooks. 
+       * gnus-sum.el (gnus-summary-exit-no-update): Don't use run-hooks.
        (gnus-summary-exit-no-update): Use mapcar.
 
 1999-01-02 14:36:32  Simon Josefsson  <jas@pdc.kth.se>
@@ -183,7 +247,7 @@ Fri Jan 15 20:50:38 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 1998-09-26 19:39:31 Simon Josefsson <jas@pdc.kth.se>
 
-       * gnus-sum.el (gnus-update-read-articles): 
+       * gnus-sum.el (gnus-update-read-articles):
        (gnus-update-marks): Request backend update of mark.
 
 1999-01-03 15:29:52  Lars Magne Ingebrigtsen  <larsi@gnus.org>
@@ -203,7 +267,7 @@ Sun Jan  3 13:32:02 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * gnus-picon.el (gnus-picons-setup-buffer): Run the hook.
 
        * gnus-agent.el (gnus-agent-remove-group): New command and
-       keystroke. 
+       keystroke.
 
        * rfc2047.el (rfc2047-decode-region): Check for us-ascii.
 
@@ -222,7 +286,7 @@ Sun Jan  3 13:32:02 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-12-23  Matt Pharr  <mmp@graphics.stanford.edu>
 
       * message.el (message-cite-original-without-signature): Use
-      message-signature-separator when searching for signature in 
+      message-signature-separator when searching for signature in
       message-cite-original-without-signature.
 
 1998-12-24 16:25:38  Simon Josefsson  <jas@pdc.kth.se>
@@ -238,7 +302,7 @@ Sun Jan  3 13:32:02 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus-msg.el (gnus-configure-posting-styles): Also do nil
        values.
-       
+
        * nnheader.el (nnheader-temp-directory): New variable.
        (nnheader-temp-directory): Removed.
 
@@ -249,7 +313,7 @@ Sun Jan  3 13:32:02 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 1998-12-24 03:02:15  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
-       * gnus-art.el (gnus-article-maybe-hide-headers): Check whether the 
+       * gnus-art.el (gnus-article-maybe-hide-headers): Check whether the
        summary buffer exists.
 
 1998-12-22  Aaron M. Ucko  <amu@mit.edu>
@@ -268,7 +332,7 @@ Sun Jan  3 13:32:02 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 1998-12-21 21:34:22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
-       * mm-view.el (mm-inline-text): Bind url-current-object. 
+       * mm-view.el (mm-inline-text): Bind url-current-object.
 
 1998-12-06 03:05:41  Simon Josefsson  <jas@pdc.kth.se>
 
@@ -296,13 +360,13 @@ Sun Jan  3 13:32:02 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 1998-12-19 23:02:26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
-       * nnmail.el (nnmail-split-header-length-limit): New variable. 
+       * nnmail.el (nnmail-split-header-length-limit): New variable.
 
        * mm-decode.el (mm-dissect-buffer): Check syntax.
 
        * rfc2231.el (rfc2231-parse-string): Remove check for syntax.
 
-       * rfc2047.el (rfc2047-encodable-p): Use mm-find-charset-region. 
+       * rfc2047.el (rfc2047-encodable-p): Use mm-find-charset-region.
        (rfc2047-dissect-region): Ditto.
 
 1998-12-17 18:36:43  Lars Magne Ingebrigtsen  <larsi@gnus.org>
@@ -312,7 +376,7 @@ Sun Jan  3 13:32:02 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-12-16 16:01:22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * rfc2231.el (rfc2231-parse-string): Ignore syntactically invalid
-       CT headers. 
+       CT headers.
 
 Wed Dec 16 01:44:40 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
@@ -354,14 +418,14 @@ Sat Dec  5 16:50:49 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
 1998-12-13 10:04:39  Lloyd Zusman  <ljz@asfast.com>
 
-       * gnus-xmas.el (gnus-xmas-summary-recenter): Allow numbers. 
+       * gnus-xmas.el (gnus-xmas-summary-recenter): Allow numbers.
 
 1998-12-13 09:32:38  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * mml.el (mml-insert-mime-headers): Encode description.
 
        * nnfolder.el (nnfolder-request-expire-articles): Go to the date
-       line. 
+       line.
 
        * gnus-sum.el (gnus-default-charset): Doc fix.
 
@@ -379,9 +443,9 @@ Wed Dec  9 13:30:29 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 1998-12-13 08:52:45  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus-picon.el (gnus-picons-network-display-internal): Don't set
-       buffer. 
+       buffer.
 
-       * message.el (message-insert-headers): New command and keystroke. 
+       * message.el (message-insert-headers): New command and keystroke.
 
 1998-12-07 23:42:14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
@@ -401,7 +465,7 @@ Sun Dec  6 21:58:31 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
        * mm-view.el (mm-view-message): New function.
 
-       * mm-encode.el (mm-content-transfer-encoding-defaults): Changed to 
+       * mm-encode.el (mm-content-transfer-encoding-defaults): Changed to
        qp.
 
 1998-12-07  Karl Kleinpaste  <karl@justresearch.com>
@@ -436,7 +500,7 @@ Sun Dec  6 19:36:53 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus-art.el (gnus-article-prepare-display): Don't init w3.
 
-       * mm-view.el (mm-inline-text): Bind url-standalone-mode here. 
+       * mm-view.el (mm-inline-text): Bind url-standalone-mode here.
 
 Sat Dec  5 18:35:42 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
@@ -462,14 +526,14 @@ Sat Dec  5 18:35:42 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-12-05 18:33:27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus-picon.el (gnus-picons-setup-buffer): Run picons hook.
-       (gnus-picons-setup-hook): New hook.     
+       (gnus-picons-setup-hook): New hook.
 
 1998-12-05  Per Abrahamsen  <abraham@dina.kvl.dk>
 
        * mailcap.el (mailcap-mime-data): Remove "*" from documentation
-       string. 
+       string.
        (mailcap-mime-extensions): Ditto.  Made first sentense fit a
-       line. 
+       line.
 
 1998-12-05 17:11:04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
@@ -495,7 +559,7 @@ Fri Dec  4 12:13:12 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
 1998-12-04 15:29:02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
-       * gnus-msg.el (gnus-message-insert-stylings): Don't insert twice. 
+       * gnus-msg.el (gnus-message-insert-stylings): Don't insert twice.
 
 Fri Dec  4 04:09:15 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
@@ -543,7 +607,7 @@ Fri Dec  4 04:09:15 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * gnus-art.el (gnus-display-mime): Set window point.
 
        * mm-decode.el (mm-display-external): Only decode when not
-       saving. 
+       saving.
        (mm-alternative-precedence): Prefer multiparts.
        (mm-inline-media-tests): Inline multiparts.
 
@@ -561,7 +625,7 @@ Thu Dec  3 12:53:58 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 1998-12-03 13:38:36  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
-       * gnus-art.el (gnus-mime-view-all-parts): Work with multiparts. 
+       * gnus-art.el (gnus-mime-view-all-parts): Work with multiparts.
 
 1998-12-03  Hrvoje Niksic  <hniksic@srce.hr>
 
@@ -583,7 +647,7 @@ Thu Dec  3 12:53:58 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 1998-12-03 13:03:37  Felix Lee  <flee@teleport.com>
 
-       * nntp.el (nntp-after-change-function): Fix. 
+       * nntp.el (nntp-after-change-function): Fix.
 
 1998-12-03 12:44:30  Mike McEwan  <mike@lotusland.demon.co.uk>
 
@@ -596,7 +660,7 @@ Thu Dec  3 12:53:58 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-12-02 22:22:03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus-sum.el (gnus-summary-show-article): Destroy parts when
-       prefixed. 
+       prefixed.
 
        * mm-encode.el (mm-content-transfer-encoding-defaults): Default
        application/emacs-lisp to 8bit.
@@ -655,13 +719,13 @@ Tue Dec  1 23:04:25 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
        (gnus-article-display-picons): Replace From line.
        (gnus-group-display-picons): Replace Newsgroups line.
        (gnus-picons-display-glyph): Set baseline.
-       (gnus-group-display-picons): Piconize the entire Newsgroups line. 
+       (gnus-group-display-picons): Piconize the entire Newsgroups line.
        (gnus-picons-xbm-face): Revert to old, standard colors.
 
        * message.el (message-fetch-field): Remove text props.
 
        * gnus-art.el (gnus-article-normalized-header-length): New
-       variable. 
+       variable.
        (article-normalize-headers): New command and keystroke.
 
        * gnus-picon.el (gnus-picons-xbm-face): Changed colors.
@@ -689,18 +753,18 @@ Wed Dec  2 01:43:48 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        (gnus-mime-internalize-part): New command and keystroke.
 
        * mm-decode.el (mm-user-automatic-external-display): New
-       variable. 
+       variable.
        (mm-automatic-external-display-p): New function.
 
        * gnus-picon.el (gnus-picons-xbm-face): Default to sensible
-       colors. 
+       colors.
 
 1998-12-01 23:52:05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
-       * gnus-sum.el (gnus-summary-repair-multipart): Reselect article. 
+       * gnus-sum.el (gnus-summary-repair-multipart): Reselect article.
 
        * gnus-art.el (gnus-with-article): Work in the original article
-       buffer. 
+       buffer.
        (gnus-with-article): Work in read-only groups.
 
 Tue Dec  1 00:15:36 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
@@ -742,7 +806,7 @@ Tue Dec  1 00:46:20 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * mm-view.el (mm-setup-w3): Protect url-misc.
 
        * message.el (message-ignored-resent-headers): Remove
-       Gnus-Warning. 
+       Gnus-Warning.
 
        * mml.el (mml-insert-mime-headers): Use encoding.
        (mml-parameter-string): Ditto.
@@ -788,15 +852,15 @@ Mon Nov 30 21:57:00 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * gnus-art.el (gnus-with-article): Don't encode.
        (gnus-insert-mime-button): Fall back on filename from C-D.
        (gnus-mime-display-single): Have dots right on text/plain
-       attachments. 
+       attachments.
 
-       * mm-decode.el (mm-dissect-buffer): Respect Content-Disposition in 
+       * mm-decode.el (mm-dissect-buffer): Respect Content-Disposition in
        broken parts.
 
        * gnus-art.el (gnus-with-article): Flush cache and backlog.
 
        * mm-bodies.el (mm-decode-content-transfer-encoding): Also do
-       binhex. 
+       binhex.
 
        * gnus-sum.el (gnus-summary-reparent-thread): Use new macro.
        (gnus-summary-repair-multipart): New command and keystroke.
@@ -823,7 +887,7 @@ Sun Nov 29 23:51:57 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 1998-11-29 23:44:44  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus-art.el (gnus-mime-display-mixed): Rewrite.
-       (gnus-mime-display-single): Don't insert lines between parts. 
+       (gnus-mime-display-single): Don't insert lines between parts.
 
 Sun Nov 29 04:55:40 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
@@ -895,7 +959,7 @@ Fri Nov 27 12:26:10 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * message.el (message-buffer-name): Check for unique first.
 
        * gnus-art.el (gnus-unbuttonized-mime-type-p): use
-       gnus-inhibit-mime-unbuttonizing. 
+       gnus-inhibit-mime-unbuttonizing.
 
        * gnus-sum.el (t): Bind M-t.
        (gnus-inhibit-unbuttonizing): New variable.
@@ -907,7 +971,7 @@ Fri Nov 27 12:26:10 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * nneething.el (nneething-include-files): New variable.
        (nneething-create-mapping): Use it.
 
-       * nntp.el (nntp-possibly-change-group): Use nntp-send-command. 
+       * nntp.el (nntp-possibly-change-group): Use nntp-send-command.
 
        * nnvirtual.el (nnvirtual-request-update-mark): Only yodate
        ayto-expirable marks.
@@ -917,7 +981,7 @@ Fri Nov 27 12:26:10 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * gnus-art.el (gnus-mime-view-all-parts): Set buffer.
 
        * gnus-sum.el (gnus-summary-display-buttonized): Don't pass on
-       ARG. 
+       ARG.
 
        * gnus-art.el (gnus-article-mode-line-format): Doc fix.
 
@@ -933,7 +997,7 @@ Tue Nov 24 10:43:06 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 1998-11-24 11:21:32  Katsumi Yamaoka  <yamaoka@jpl.org>
 
-       * gnus-sum.el (gnus-newsgroup-default-charset-alist): Note fj. 
+       * gnus-sum.el (gnus-newsgroup-default-charset-alist): Note fj.
 
 1998-11-24 11:14:54  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
@@ -941,7 +1005,7 @@ Tue Nov 24 10:43:06 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 1998-11-24 11:14:39  Matt Armstrong  <matta@geoworks.com>
 
-       * mm-decode.el (mm-save-part): Bind coding system for write. 
+       * mm-decode.el (mm-save-part): Bind coding system for write.
 
 1998-11-24 10:42:30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
@@ -949,7 +1013,7 @@ Tue Nov 24 10:43:06 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        (gnus-article-mime-part-status): New function.
 
        * message.el (message-send-news): Check the body syntax before
-       encoding. 
+       encoding.
 
        * gnus-art.el (gnus-unbuttonized-mime-type): New function.
        (gnus-mime-display-single): Use it.
@@ -960,7 +1024,7 @@ Tue Nov 24 10:43:06 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-11-22 08:12:25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * mm-decode.el (mm-preferred-alternative): Default to first
-       alternative. 
+       alternative.
        (mm-preferred-alternative): No, we dont.
 
 Tue Nov 24 03:01:48 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
@@ -978,8 +1042,8 @@ Mon Nov 23 01:51:57 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
 Mon Nov 23 01:26:40 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
-       * gnus-sum.el (gnus-newsgroup-default-charset): Rename 
-       coding-system -> default-charset. 
+       * gnus-sum.el (gnus-newsgroup-default-charset): Rename
+       coding-system -> default-charset.
        (gnus-newsgroup-default-charset-alist): Ditto.
        (gnus-summary-local-variables): Ditto.
        (gnus-set-global-variables): Ditto.
@@ -1004,7 +1068,7 @@ Mon Nov 23 00:54:33 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
        * gnus-art.el (article-decode-charset): Overlay
        rfc2047-default-charset.
        * message.el (message-draft-coding-system): New variable.
-       (message-set-auto-save-file-name): Use message-draft-coding-system. 
+       (message-set-auto-save-file-name): Use message-draft-coding-system.
        * nndraft.el (nndraft-request-article): Ditto.
        * gnus-start.el (gnus-start-draft-setup): Set charset nil.
        * gnus-agent.el (gnus-agent-queue-setup): Ditto.
@@ -1033,11 +1097,11 @@ Sat Nov 21 09:57:01 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 1998-11-20 10:34:04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
-       * gnus-art.el (gnus-mime-display-single): Insert blank line before 
+       * gnus-art.el (gnus-mime-display-single): Insert blank line before
        buttons.
 
        * gnus-sum.el (gnus-summary-display-buttonized): New command and
-       keystroke. 
+       keystroke.
 
        * gnus-art.el (gnus-mime-display-single): Don't insert a blank
        line between parts.
@@ -1055,11 +1119,11 @@ Fri Nov 20 03:50:30 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
 Fri Nov 20 03:37:53 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
-       * mm-bodies.el (mm-decode-body): Remove buffer-file-coding-system. 
+       * mm-bodies.el (mm-decode-body): Remove buffer-file-coding-system.
 
 Fri Nov 20 01:20:38 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
-       * gnus-sum.el (gnus-summary-from-or-to-or-newsgroups): Use 
+       * gnus-sum.el (gnus-summary-from-or-to-or-newsgroups): Use
        gnus-newsgroup-coding-system.
        (gnus-get-newsgroup-headers): Ditto.
        (gnus-get-newsgroup-headers-xover): Ditto.
@@ -1073,7 +1137,7 @@ Fri Nov 20 01:20:38 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
        (gnus-mm-display-part): Ditto.
        (gnus-mime-display-alternative): Ditto.
        (gnus-mime-display-single): Ditto.
-       * mm-view.el (mm-inline-text): Use default coding system. 
+       * mm-view.el (mm-inline-text): Use default coding system.
 
 Fri Nov 20 00:54:37 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
@@ -1089,7 +1153,7 @@ Fri Nov 20 00:54:37 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
        (mm-charset-to-coding-system): Use mm-charset-iso-8859-1-forced.
        * gnus-cus.el (gnus-group-parameters): Customizable
        iso-8859-1-forced.
-       
+
 Fri Nov 20 05:30:26 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Pterodactyl Gnus v0.52 is released.
@@ -1097,13 +1161,13 @@ Fri Nov 20 05:30:26 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-11-20 04:32:23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * rfc2047.el (rfc2047-encode-message-header): Encode the default
-       encoding. 
+       encoding.
 
        * gnus-art.el (gnus-mime-display-single): Insert buttons for
        undisplayed text types.
 
        * mm-decode.el (mm-automatic-display-p): Only prefer inlinable
-       types. 
+       types.
 
 1998-11-19  Felix Lee  <flee@cygnus.com>
 
@@ -1134,15 +1198,15 @@ Fri Nov 20 05:30:26 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        (gnus-article-read-summary-keys): Use it.
 
        * mm-decode.el (mm-user-automatic-display): Display all inline
-       images. 
+       images.
 
        * gnus-art.el (gnus-mime-display-single): Don't buttonize so
-       much. 
+       much.
        (gnus-unbuttonized-mime-types): New variable.
 
 1998-11-19 06:29:03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
-       * gnus-sum.el (gnus-inhibit-user-auto-expire): Changed to t. 
+       * gnus-sum.el (gnus-inhibit-user-auto-expire): Changed to t.
 
        * mm-decode.el (mm-quote-arg): Quote semicolons.
 
@@ -1150,7 +1214,7 @@ Fri Nov 20 05:30:26 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        attachments.
        (gnus-mime-externalize-part): New command and keystroke.
 
-       * mm-decode.el (mm-dissect-buffer): Pass on the description info. 
+       * mm-decode.el (mm-dissect-buffer): Pass on the description info.
        (mm-alternative-precedence): Changed order.
 
 1998-11-07 17:41:47  Simon Josefsson  <jas@pdc.kth.se>
@@ -1170,7 +1234,7 @@ Thu Nov 19 04:48:42 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * gnus.el: Applied patches from 5.6.45.
 
        * gnus-score.el (gnus-score-find-trace): Print complete file
-       paths. 
+       paths.
        (gnus-score-find-trace): Truncate lines.
 
        * gnus.el (gnus-message-archive-group): Allow function.
@@ -1180,7 +1244,7 @@ Thu Nov 19 04:48:42 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus-cus.el (gnus-group-customize): Optional topic.
 
-       * gnus-sum.el (gnus-summary-customize-parameters): New command and 
+       * gnus-sum.el (gnus-summary-customize-parameters): New command and
        keystroke.
 
 Wed Nov 18 13:46:08 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
@@ -1209,7 +1273,7 @@ Wed Nov 18 05:06:44 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-11-18 04:42:01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * mm-decode.el (mm-inline-media-tests): Check that device-type is
-       fbound. 
+       fbound.
 
        * gnus-sum.el (gnus-summary-sort): Didn't do reverse.
 
@@ -1251,10 +1315,10 @@ Wed Nov 18 05:06:44 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-11-18 02:36:37  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * mml.el (mml-generate-mime-1): Do right boundaries when several
-       multiparts. 
+       multiparts.
 
        * mm-decode.el (mm-user-automatic-display): Default to inline
-       jpeg. 
+       jpeg.
 
        * mml.el (mml-generate-mime-1): Encode non-text parts.
 
@@ -1277,17 +1341,17 @@ Wed Nov 18 02:22:23 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        (mml-generate-mime-1): Use unibyte for binaries.
 
        * gnus-art.el (gnus-display-mime): Call
-       gnus-article-mime-part-function. 
+       gnus-article-mime-part-function.
        (gnus-mime-part-function): New function.
        (gnus-article-mime-part-function): New function.
 
-       * mml.el (mml-generate-mime-1): Don't insert so many newlines. 
+       * mml.el (mml-generate-mime-1): Don't insert so many newlines.
 
 1998-11-16 06:44:19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * mml.el (mml-generate-mime-1): Do it in unibyte buffers.
 
-       * message.el (message-font-lock-keywords): Highlight MML. 
+       * message.el (message-font-lock-keywords): Highlight MML.
        (message-mml-face): New font.
 
 Mon Nov 16 23:34:12 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
@@ -1310,7 +1374,7 @@ Mon Nov 16 02:00:05 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * mm-util.el (mm-find-charset-region): Bogus change for non-Mule.
 
-       * message.el (message-cite-original-without-signature): Ditto. 
+       * message.el (message-cite-original-without-signature): Ditto.
        (message-cite-original): Quote parts.
 
 Sun Nov 15 22:01:55 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
@@ -1319,12 +1383,12 @@ Sun Nov 15 22:01:55 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 1998-11-15 20:11:33  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
-       * message.el (message-encode-message-body): Insert MIME warning. 
+       * message.el (message-encode-message-body): Insert MIME warning.
 
        * mml.el (mml-read-tag): Look for #tag.
 
        * mm-util.el (mm-find-charset-region): Check whether
-       enable-multibyte-characters is bound. 
+       enable-multibyte-characters is bound.
 
 Sun Nov 15 02:01:31 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
@@ -1382,10 +1446,10 @@ Sat Nov 14 05:47:57 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        (message-insert-mime-part): New command.
 
        * mm-encode.el (mm-encode-content-transfer-encoding): New
-       function. 
+       function.
 
        * mm-util.el (mm-content-transfer-encoding-defaults): New
-       variable. 
+       variable.
        (mm-mime-file-types): Taken from TM.
 
 Sat Nov 14 01:51:06 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
@@ -1408,14 +1472,14 @@ Sat Nov 14 01:51:06 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-11-13 20:30:40  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * message.el (message-resend): Bind message-required-mail-headers
-       to nil. 
+       to nil.
 
-       * mm-view.el (mm-inline-text): Bind w3-strict-width. 
+       * mm-view.el (mm-inline-text): Bind w3-strict-width.
 
        * nngateway.el (require): Require cl.
 
        * gnus-art.el (gnus-button-alist): Exclude more chars from news:
-       things. 
+       things.
 
 Wed Nov 11 02:15:06 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
@@ -1437,7 +1501,7 @@ Wed Nov 11 02:15:06 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
        (gnus-make-sort-function-1): Ditto.
 
        * gnus-art.el (gnus-mm-display-part): Switch to mm in right
-       window. 
+       window.
 
 1998-11-12 22:31:58  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
@@ -1486,7 +1550,7 @@ Sun Nov  8 01:00:16 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 1998-11-07  Mike McEwan  <mike@lotusland.demon.co.uk>
 
-       * gnus-agent.el (gnus-agent-save-group-info): Cater for group info 
+       * gnus-agent.el (gnus-agent-save-group-info): Cater for group info
        lines where `group' is the last thing on the line.
 
 1998-11-08 00:35:09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
@@ -1499,7 +1563,7 @@ Sun Nov  8 01:00:16 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * mm-decode.el (mm-dissect-multipart): Quote regexp.
 
        * nnmail.el (nnmail-expired-article-p): Protect against bogus
-       dates. 
+       dates.
 
        * gnus-cus.el (gnus-topic): Required.
 
@@ -1518,7 +1582,7 @@ Sun Nov  8 01:00:16 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-10-29 12:09:20  Karl Kleinpaste  <karl@jprc.com>
 
        * gnus-sum.el (gnus-summary-from-or-to-or-newsgroups): Add
-       indicators. 
+       indicators.
 
 1998-10-29 11:31:11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
@@ -1565,7 +1629,7 @@ Wed Oct 28 02:19:16 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 Tue Oct 27 11:59:31 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
        * mm-view.el (mm-inline-text): Postion of html portion.
-       
+
 1998-10-29 10:26:54  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * nntp.el (nntp-list-active-group): Waited for short strings.
@@ -1584,7 +1648,7 @@ Tue Oct 27 11:59:31 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 1998-10-26 23:03:48  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus-art.el (gnus-button-push): Don't go to
-       gnus-article-buffer. 
+       gnus-article-buffer.
 
        * mm-view.el (mm-inline-image): Add a newline.
 
@@ -1617,7 +1681,7 @@ Tue Oct 27 11:59:31 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
        * nnheader.el (nnheader-insert-nov): Work when not Xref.
 
        * gnus-sum.el (gnus-ignored-from-addresses): Default to
-       user-mail-address. 
+       user-mail-address.
        (gnus-nov-parse-extra): Didn't return right thing.
 
 1998-10-25 23:25:27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
@@ -1636,7 +1700,7 @@ Sun Oct 25 23:11:44 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus-sum.el (gnus-summary-mark-forward): Show thread.
 
-       * gnus-start.el (gnus-check-first-time-used): Ignore dribble. 
+       * gnus-start.el (gnus-check-first-time-used): Ignore dribble.
 
        * gnus-agent.el (gnus-agent-fetch-group-1): Bind name.
 
@@ -1649,7 +1713,7 @@ Sun Oct 25 23:11:44 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-10-25 19:26:11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus-sum.el (gnus-set-mode-line): Check that the spec has been
-       set up. 
+       set up.
 
 1998-10-25 19:22:03  Joerg Lenneis  <lenneis@statrix2.wu-wien.ac.at>
 
@@ -1658,9 +1722,9 @@ Sun Oct 25 23:11:44 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-10-25 17:56:23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus-art.el (gnus-treatment-function-alist): Fix.
-       (gnus-summary-save-in-rmail): Use gnus-output-to-rmail. 
+       (gnus-summary-save-in-rmail): Use gnus-output-to-rmail.
 
-       * nndoc.el (nndoc-dissect-mime-parts-sub): Recognize first part. 
+       * nndoc.el (nndoc-dissect-mime-parts-sub): Recognize first part.
 
 Sun Oct 25 06:23:13 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
@@ -1681,13 +1745,13 @@ Sun Oct 25 06:23:13 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * gnus.el: autoload gnus-uu-post-news.
 
        * mailcap.el (mailcap-mailcap-entry-passes-test): Also check
-       needsterm/DISPLAY. 
+       needsterm/DISPLAY.
 
        * mm-decode.el (mm-display-part): Default to inline text/.*
-       parts. 
+       parts.
 
        * mm-bodies.el (mm-decode-content-transfer-encoding): Default to
-       8bit. 
+       8bit.
 
        * gnus-art.el (gnus-mime-copy-part): Use normal-mode.
        (gnus-mime-display-single): Inline all text parts.
@@ -1698,14 +1762,14 @@ Sun Oct 25 06:23:13 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * nnml.el (nnml-possibly-create-directory): Rewrite.
        (nnml-request-create-group): Change to right server.
 
-       * gnus-xmas.el (gnus-xmas-define): Use byte-code-function-p. 
+       * gnus-xmas.el (gnus-xmas-define): Use byte-code-function-p.
 
-       * gnus-sum.el (gnus-set-mode-line): Use truncate-string-to-width. 
+       * gnus-sum.el (gnus-set-mode-line): Use truncate-string-to-width.
 
        * gnus.el: rmail-output-to-rmail-file autoload.
 
        * gnus-util.el (gnus-output-to-rmail): Didn't work if not in
-       Gnus. 
+       Gnus.
 
        * nnheader.el (nnheader-parse-head): Checked wrong variable.
 
@@ -1719,7 +1783,7 @@ Tue Oct 20 23:37:43 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 Tue Oct 20 23:36:43 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
        * gnus-sum.el (gnus-summary-exit): Use mm-destroy-parts.
-       
+
        * gnus-sum.el (gnus-summary-exit-no-update): Ditto.
 
 Tue Oct 20 16:22:51 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
@@ -1729,10 +1793,10 @@ Tue Oct 20 16:22:51 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 1998-10-24 20:51:53  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus-sum.el (gnus-valid-move-group-p): Make sure group has a
-       value. 
+       value.
 
        * gnus-art.el (gnus-article-hidden-text-p): Return nil when not
-       hidden. 
+       hidden.
 
        * gnus-spec.el (gnus-update-format-specifications): Use the
        article mode line spec.
@@ -1755,21 +1819,21 @@ Sat Oct 24 20:31:55 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-10-24 07:54:58  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus-art.el (article-mime-decode-quoted-printable-buffer):
-       Removed. 
+       Removed.
        (article-de-quoted-unreadable): Narrow to default.
 
        * qp.el (quoted-printable-encode-region): Encode before QP-ing.
 
        * gnus-art.el (article-decode-charset): Decode even when broken
-       MIME. 
+       MIME.
 
        * gnus-sum.el (gnus-summary-from-or-to-or-newsgroups): Return
-       name. 
+       name.
 
        * gnus-msg.el (gnus-copy-article-buffer): Delete headers.
 
        * gnus-cache.el (gnus-cache-possibly-enter-article): Use
-       nnheader. 
+       nnheader.
 
        * nnmail.el (nnmail-extra-headers): New variable.
 
@@ -1801,7 +1865,7 @@ Sat Oct 24 07:41:42 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * mm-bodies.el (mm-decode-body): Check for multibyticity.
 
        * mm-util.el (mm-enable-multibyte): Don't always switch multibyte
-       on. 
+       on.
 
 1998-10-22  Didier Verna  <verna@inf.enst.fr>
 
@@ -1815,7 +1879,7 @@ Sat Oct 24 07:41:42 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 1998-10-22 04:05:55  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
-       * mm-decode.el (mm-display-external): Protect more and message. 
+       * mm-decode.el (mm-display-external): Protect more and message.
 
 Wed Oct 21 03:26:30 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
@@ -1830,7 +1894,7 @@ Tue Oct 20 23:37:43 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 Tue Oct 20 23:36:43 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
        * gnus-sum.el (gnus-summary-exit): Use mm-destroy-parts.
-       
+
        * gnus-sum.el (gnus-summary-exit-no-update): Ditto.
 
 Tue Oct 20 16:22:51 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
@@ -1861,12 +1925,12 @@ Tue Oct 20 20:25:03 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 1998-10-20 18:13:08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
-       * gnus-art.el (article-translate-strings): 
+       * gnus-art.el (article-translate-strings):
        (gnus-article-dumbquotes-map): Don't dot.
 
        * pop3.el (pop3-open-server): Set point right.
 
-       * mm-decode.el (mm-dissect-multipart): Dissect hierarchically. 
+       * mm-decode.el (mm-dissect-multipart): Dissect hierarchically.
        (mm-dissect-buffer): Ditto.
        (mm-destroy-part): Ignore non-handles.
        (mm-remove-part): Ditto.
@@ -1878,9 +1942,9 @@ Tue Oct 20 20:25:03 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 Tue Oct 20 02:16:36 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
        * mm-uu.el : New file.
-       
+
        * gnus-art.el (gnus-display-mime): Dissect uu stuffs.
-       
+
        * mm-bodies.el (mm-decode-content-transfer-encoding): Encoding as
        a function.
 
@@ -1890,21 +1954,21 @@ Tue Oct 20 02:16:36 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
 Sat Sep 26 02:03:00 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
-       * gnus-sum.el (gnus-multi-decode-encoded-word-string): Rewrite. 
-       
+       * gnus-sum.el (gnus-multi-decode-encoded-word-string): Rewrite.
+
        * gnus-sum.el (gnus-decode-encoded-word-methods): New variable.
-       
+
        * gnus-sum.el (gnus-decode-encoded-word-methods-cache): New
        variable.
-       
+
        * gnus-sum.el (gnus-encoded-word-method-alist): Deleted.
-       
+
        * gnus-art.el (gnus-decode-header-methods): New variable.
 
        * gnus-art.el (gnus-decode-header-methods-cache): New variable.
 
        * gnus-art.el (gnus-multi-decode-header): New function.
-       
+
 Tue Oct 20 00:24:16 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Pterodactyl Gnus v0.35 is released.
@@ -1912,7 +1976,7 @@ Tue Oct 20 00:24:16 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-10-20 00:00:36  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * uudecode.el (uudecode-decode-region-external): Insert
-       literally. 
+       literally.
 
        * gnus-xmas.el (gnus-xmas-mime-button-menu): Moved here.
 
@@ -1936,7 +2000,7 @@ Tue Oct 20 00:24:16 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
 1998-09-26 19:39:31  Simon Josefsson  <jas@pdc.kth.se>
 
-       * gnus-sum.el (gnus-update-read-articles): 
+       * gnus-sum.el (gnus-update-read-articles):
        (gnus-update-marks): Request backend update of mark.
 
 1998-09-26 19:33:58  Simon Josefsson  <jas@pdc.kth.se>
@@ -1976,7 +2040,7 @@ Sun Oct 18 13:59:07 1998  Kurt Swanson  <ksw@dna.lth.se>
 
 1998-10-19 23:35:08  Joerg Lenneis  <lenneis@statrix2.wu-wien.ac.at>
 
-       * nnheader.el (nnheader-article-p): Recognize lower-case headers. 
+       * nnheader.el (nnheader-article-p): Recognize lower-case headers.
 
 1998-10-19  Hrvoje Niksic  <hniksic@srce.hr>
 
@@ -2024,7 +2088,7 @@ Sun Oct 18 13:59:07 1998  Kurt Swanson  <ksw@dna.lth.se>
 1998-10-19 00:50:22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * mm-bodies.el (mm-decode-content-transfer-encoding): Use
-       uudecode. 
+       uudecode.
 
 1998-10-18 18:20:34  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
@@ -2036,7 +2100,7 @@ Sun Oct 18 13:59:07 1998  Kurt Swanson  <ksw@dna.lth.se>
 
 1998-10-18 00:17:02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
-       * gnus-art.el (article-translate-strings): 
+       * gnus-art.el (article-translate-strings):
 
 1998-10-17 22:51:31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
@@ -2065,7 +2129,7 @@ Sun Oct 18 13:59:07 1998  Kurt Swanson  <ksw@dna.lth.se>
        * gnus-art.el (gnus-article-setup-buffer): Set params.
 
        * mm-decode.el (mm-user-display-methods): Inline
-       "message/delivery-status". 
+       "message/delivery-status".
 
 1998-10-11 07:06:38  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
@@ -2073,14 +2137,14 @@ Sun Oct 18 13:59:07 1998  Kurt Swanson  <ksw@dna.lth.se>
        (message-mode): Dof fix.
 
        * gnus-art.el (gnus-summary-save-in-pipe): Default to "cat".
-       (gnus-summary-save-in-pipe): No, check gnus-last-shell-command. 
+       (gnus-summary-save-in-pipe): No, check gnus-last-shell-command.
 
        * nndoc.el (nndoc-mime-parts-type-p): Be a bit more forgiving.
 
        * message.el (message-make-date): Avoid locale.
 
        * gnus-art.el (gnus-article-edit-done): Allow update before doing
-       cache. 
+       cache.
 
        * mm-decode.el (mm-display-inline): Goto point-min.
 
@@ -2092,7 +2156,7 @@ Sun Oct 18 13:59:07 1998  Kurt Swanson  <ksw@dna.lth.se>
 
 1998-10-10 -SL Baur  <steve@altair.xemacs.org>
 
-       * message.el (message-check): Move message-check macro above where 
+       * message.el (message-check): Move message-check macro above where
        it is first used.
 
        * gnus-art.el (article-hide-pgp): Hide the PGP 5/GNUPG Hash: line.
@@ -2120,24 +2184,24 @@ Sun Oct 11 02:28:40 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * gnus-art.el (gnus-article-edit-exit): Don't do updates.
        (article-update-date-lapsed): Record the buffer.
        (article-update-date-lapsed): Do all windows that display article
-       buffers. 
+       buffers.
 
        * nnml.el (nnml-generate-nov-databases-1): Ditto.
 
-       * gnus-score.el (gnus-score-score-files-1): Ignore dotted files. 
+       * gnus-score.el (gnus-score-score-files-1): Ignore dotted files.
 
        * gnus-art.el (gnus-insert-mime-button): Mark buttons as
-       annoations. 
+       annoations.
 
        * gnus-msg.el (gnus-summary-mail-forward): Decode properly.
 
 1998-10-10 22:07:03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus-agent.el (gnus-category-add): Change default category to
-       'false. 
+       'false.
 
        * nnvirtual.el (nnvirtual-update-read-and-marked): Don't nix out
-       scores. 
+       scores.
 
        * gnus-draft.el (gnus-draft-send): Check server more.
 
@@ -2146,7 +2210,7 @@ Sun Oct 11 02:28:40 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * mm-view.el (mm-inline-text): Insert richtext properly.
 
-       * gnus-art.el (gnus-insert-mime-button): Store handle in alist. 
+       * gnus-art.el (gnus-insert-mime-button): Store handle in alist.
 
 1998-10-03 15:04:27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
@@ -2160,7 +2224,7 @@ Sun Oct 11 02:28:40 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 1998-10-01 07:33:35  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * uudecode.el (uu-decode-region-external): Use
-       insert-file-contents-literally. 
+       insert-file-contents-literally.
 
        * gnus-cache.el (gnus-cache-generate-active): Translate _ to :.
 
@@ -2169,7 +2233,7 @@ Sun Oct 11 02:28:40 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * uudecode.el: New file.
 
        * mm-bodies.el (mm-decode-content-transfer-encoding): Do
-       x-uuencode. 
+       x-uuencode.
 
 1998-10-01 05:19:35  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
@@ -2213,13 +2277,13 @@ Sat Sep 26 03:04:18 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
 1998-09-29 11:35:09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus-art.el (gnus-mime-view-all-parts): New command and
-       keystroke. 
+       keystroke.
 
        * mm-decode.el (mm-display-external): Translate slashes.
 
        * nnmail.el (nnmail-find-file): Restrict auto-mode-alist.
 
-       * nndraft.el (nndraft-retrieve-headers): Don't copy so much. 
+       * nndraft.el (nndraft-retrieve-headers): Don't copy so much.
 
        * mm-decode.el (mm-quote-arg): Quote spaces.
        (mm-display-external): Quote args.
@@ -2240,7 +2304,7 @@ Thu Sep 24 20:28:31 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus-art.el (gnus-insert-mime-button): Get buffer size.
 
-       * mm-decode.el (mm-display-external): Don't switch for externals. 
+       * mm-decode.el (mm-display-external): Don't switch for externals.
        (mm-dissect-multipart): Don't include end-sep.
 
        * mm-util.el (mm-get-coding-system-list): New function.
@@ -2289,7 +2353,7 @@ Thu Sep 24 02:29:57 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * gnus-art.el: Protect against broken headers.
 
        * mm-decode.el (mm-display-external): Respect needsterm.
-       (mm-display-external): Create buffer for external commands. 
+       (mm-display-external): Create buffer for external commands.
 
 1998-09-23 22:04:05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
@@ -2307,7 +2371,7 @@ Thu Sep 24 02:29:57 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
        * gnus-util.el (gnus-output-to-rmail): Reinstated function.
 
        * gnus-sum.el (gnus-select-newsgroup): Set global variables before
-       headers. 
+       headers.
 
        * gnus-art.el (article-decode-charset): Fold case.
 
@@ -2338,7 +2402,7 @@ Sun Sep 20 00:27:55 1998  ZHU Shenghuo  <zsh@cs.rochester.edu>
 1998-09-23 19:30:52  Matt Armstrong  <matta@geoworks.com>
 
        * gnus-art.el (article-decode-charset): Narrow to the correct
-       region. 
+       region.
 
        * mm-bodies.el: Fix autoload.
 
@@ -2348,7 +2412,7 @@ Sun Sep 20 00:27:55 1998  ZHU Shenghuo  <zsh@cs.rochester.edu>
 
 1998-09-22 14:53:35  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
-       * rfc2047.el (rfc2047-decode): Use rfc2047-default-charset. 
+       * rfc2047.el (rfc2047-decode): Use rfc2047-default-charset.
 
 1998-09-19 13:58:35  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
@@ -2357,7 +2421,7 @@ Sun Sep 20 00:27:55 1998  ZHU Shenghuo  <zsh@cs.rochester.edu>
 
        * gnus-sum.el (gnus-summary-insert-pseudos): Use mm.
 
-       * gnus-art.el (gnus-article-prepare-display): Make article mode. 
+       * gnus-art.el (gnus-article-prepare-display): Make article mode.
        (gnus-article-prepare-display): Bind url-standalone-mode.
 
        * mm-decode.el (mm-remove-part): Also delete directory.
@@ -2372,7 +2436,7 @@ Sun Sep 20 00:27:55 1998  ZHU Shenghuo  <zsh@cs.rochester.edu>
        (nnmbox-possibly-change-newsgroup): Enable multibyte.
 
        * message.el (message-encode-message-body): Don't stomp MIME
-       headers. 
+       headers.
 
        * gnus-sum.el (gnus-summary-edit-article-done): Don't encode
        unless useful.
@@ -2386,11 +2450,11 @@ Sun Sep 20 00:27:55 1998  ZHU Shenghuo  <zsh@cs.rochester.edu>
 
        * mm-decode.el (mm-display-external): Use no-conv.
 
-       * rfc2047.el (rfc2047-q-encode-region): Bound properly. 
+       * rfc2047.el (rfc2047-q-encode-region): Bound properly.
        (rfc2047-charset-encoding-alist): Use B encoding for koi8-r.
 
        * gnus-art.el (gnus-article-mode-map): Bind button2 to
-       mouse-click. 
+       mouse-click.
 
 1998-09-15 14:38:02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
index 0c562d1..6cf78e0 100644 (file)
@@ -135,7 +135,7 @@ base64-encoder-program.")
               ((> (skip-chars-forward base64-alphabet end) 0)
                (setq lim (point))
                (while (< inputpos lim)
-                 (setq bits (+ bits 
+                 (setq bits (+ bits
                                (aref base64-alphabet-decoding-vector
                                      (char-int (char-after inputpos)))))
                  (setq counter (1+ counter)
@@ -264,7 +264,7 @@ base64-encoder-program.")
     (delete-region (point-max) (point))
     (prog1
        (buffer-string)
-      (kill-buffer (current-buffer)))))  
+      (kill-buffer (current-buffer)))))
 
 (fset 'base64-decode-string 'base64-decode)
 
index aa47d56..06b4cc1 100644 (file)
@@ -3,10 +3,10 @@
 
 ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
 ;; Create Date: Oct 1, 1998
-;; $Revision: 1.1.1.6 $
+;; $Revision: 1.1.1.7 $
 ;; Time-stamp: <Tue Oct  6 23:48:38 EDT 1998 zsh>
 ;; Keywords: binhex
-  
+
 ;; This file is not part of GNU Emacs, but the same permissions
 ;; apply.
 
@@ -77,44 +77,44 @@ input and write the converted data to its standard output.")
        (insert-char char count)))))
 
 (defvar binhex-crc-table
-  [0  4129  8258  12387  16516  20645  24774  28903 
-      33032  37161  41290  45419  49548  53677  57806  61935 
-      4657  528  12915  8786  21173  17044  29431  25302 
-      37689  33560  45947  41818  54205  50076  62463  58334 
-      9314  13379  1056  5121  25830  29895  17572  21637 
-      42346  46411  34088  38153  58862  62927  50604  54669 
-      13907  9842  5649  1584  30423  26358  22165  18100 
-      46939  42874  38681  34616  63455  59390  55197  51132 
-      18628  22757  26758  30887  2112  6241  10242  14371 
-      51660  55789  59790  63919  35144  39273  43274  47403 
-      23285  19156  31415  27286  6769  2640  14899  10770 
-      56317  52188  64447  60318  39801  35672  47931  43802 
-      27814  31879  19684  23749  11298  15363  3168  7233 
-      60846  64911  52716  56781  44330  48395  36200  40265 
-      32407  28342  24277  20212  15891  11826  7761  3696 
-      65439  61374  57309  53244  48923  44858  40793  36728 
-      37256  33193  45514  41451  53516  49453  61774  57711 
-      4224  161  12482  8419  20484  16421  28742  24679 
-      33721  37784  41979  46042  49981  54044  58239  62302 
-      689  4752  8947  13010  16949  21012  25207  29270 
-      46570  42443  38312  34185  62830  58703  54572  50445 
-      13538  9411  5280  1153  29798  25671  21540  17413 
-      42971  47098  34713  38840  59231  63358  50973  55100 
-      9939  14066  1681  5808  26199  30326  17941  22068 
-      55628  51565  63758  59695  39368  35305  47498  43435 
-      22596  18533  30726  26663  6336  2273  14466  10403 
-      52093  56156  60223  64286  35833  39896  43963  48026 
-      19061  23124  27191  31254  2801  6864  10931  14994 
-      64814  60687  56684  52557  48554  44427  40424  36297 
-      31782  27655  23652  19525  15522  11395  7392  3265 
-      61215  65342  53085  57212  44955  49082  36825  40952 
+  [0  4129  8258  12387  16516  20645  24774  28903
+      33032  37161  41290  45419  49548  53677  57806  61935
+      4657  528  12915  8786  21173  17044  29431  25302
+      37689  33560  45947  41818  54205  50076  62463  58334
+      9314  13379  1056  5121  25830  29895  17572  21637
+      42346  46411  34088  38153  58862  62927  50604  54669
+      13907  9842  5649  1584  30423  26358  22165  18100
+      46939  42874  38681  34616  63455  59390  55197  51132
+      18628  22757  26758  30887  2112  6241  10242  14371
+      51660  55789  59790  63919  35144  39273  43274  47403
+      23285  19156  31415  27286  6769  2640  14899  10770
+      56317  52188  64447  60318  39801  35672  47931  43802
+      27814  31879  19684  23749  11298  15363  3168  7233
+      60846  64911  52716  56781  44330  48395  36200  40265
+      32407  28342  24277  20212  15891  11826  7761  3696
+      65439  61374  57309  53244  48923  44858  40793  36728
+      37256  33193  45514  41451  53516  49453  61774  57711
+      4224  161  12482  8419  20484  16421  28742  24679
+      33721  37784  41979  46042  49981  54044  58239  62302
+      689  4752  8947  13010  16949  21012  25207  29270
+      46570  42443  38312  34185  62830  58703  54572  50445
+      13538  9411  5280  1153  29798  25671  21540  17413
+      42971  47098  34713  38840  59231  63358  50973  55100
+      9939  14066  1681  5808  26199  30326  17941  22068
+      55628  51565  63758  59695  39368  35305  47498  43435
+      22596  18533  30726  26663  6336  2273  14466  10403
+      52093  56156  60223  64286  35833  39896  43963  48026
+      19061  23124  27191  31254  2801  6864  10931  14994
+      64814  60687  56684  52557  48554  44427  40424  36297
+      31782  27655  23652  19525  15522  11395  7392  3265
+      61215  65342  53085  57212  44955  49082  36825  40952
       28183  32310  20053  24180  11923  16050  3793  7920])
 
 (defun binhex-update-crc (crc char &optional count)
   (if (null count) (setq count 1))
   (while (> count 0)
-    (setq crc (logxor (logand (lsh crc 8) 65280) 
-                     (aref binhex-crc-table 
+    (setq crc (logxor (logand (lsh crc 8) 65280)
+                     (aref binhex-crc-table
                            (logxor (logand (lsh crc -8) 255)
                                    char)))
          count (1- count)))
@@ -148,7 +148,7 @@ input and write the converted data to its standard output.")
 (defun binhex-header (buffer)
   (with-current-buffer buffer
     (let ((pos (point-min)) len)
-      (vector 
+      (vector
        (prog1
           (setq len (char-int (char-after pos)))
         (setq pos (1+ pos)))
@@ -158,23 +158,23 @@ input and write the converted data to its standard output.")
         (setq pos (1+ pos)))
        (buffer-substring pos (setq pos (+ pos 4)))
        (buffer-substring pos (setq pos (+ pos 4)))
-       (binhex-string-big-endian 
+       (binhex-string-big-endian
        (buffer-substring pos (setq pos (+ pos 2))))
-       (binhex-string-big-endian 
+       (binhex-string-big-endian
        (buffer-substring pos (setq pos (+ pos 4))))
-       (binhex-string-big-endian 
+       (binhex-string-big-endian
        (buffer-substring pos (setq pos (+ pos 4))))))))
 
 (defvar binhex-last-char)
 (defvar binhex-repeat)
 
 (defun binhex-push-char (char &optional count ignored buffer)
-  (cond 
-   (binhex-repeat 
+  (cond
+   (binhex-repeat
     (if (eq char 0)
-       (binhex-insert-char (setq binhex-last-char 144) 1 
+       (binhex-insert-char (setq binhex-last-char 144) 1
                            ignored buffer)
-      (binhex-insert-char binhex-last-char (- char 1) 
+      (binhex-insert-char binhex-last-char (- char 1)
                          ignored buffer)
       (setq binhex-last-char nil))
     (setq binhex-repeat nil))
@@ -190,7 +190,7 @@ If HEADER-ONLY is non-nil only decode header and return filename."
   (let ((work-buffer nil)
        (counter 0)
        (bits 0) (tmp t)
-       (lim 0) inputpos 
+       (lim 0) inputpos
        (non-data-chars " \t\n\r:")
        file-name-length data-fork-start
        header
@@ -200,10 +200,10 @@ If HEADER-ONLY is non-nil only decode header and return filename."
          (goto-char start)
          (when (re-search-forward binhex-begin-line end t)
            (if (boundp 'enable-multibyte-characters)
-               (let ((multibyte 
+               (let ((multibyte
                       (default-value 'enable-multibyte-characters)))
                  (setq-default enable-multibyte-characters nil)
-                 (setq work-buffer 
+                 (setq work-buffer
                        (generate-new-buffer " *binhex-work*"))
                  (setq-default enable-multibyte-characters multibyte))
              (setq work-buffer (generate-new-buffer " *binhex-work*")))
@@ -233,31 +233,31 @@ If HEADER-ONLY is non-nil only decode header and return filename."
                    (setq file-name-length (char-after (point-min))
                          data-fork-start (+ (point-min)
                                             file-name-length 22))))
-             (if (and (null header) 
+             (if (and (null header)
                       (with-current-buffer work-buffer
                         (>= (buffer-size) data-fork-start)))
                  (progn
-                   (binhex-verify-crc work-buffer 
+                   (binhex-verify-crc work-buffer
                                       1 data-fork-start)
                    (setq header (binhex-header work-buffer))
                    (if header-only (setq tmp nil counter 0))))
              (setq tmp (and tmp (not (eq inputpos end)))))
            (cond
             ((= counter 3)
-             (binhex-push-char (logand (lsh bits -16) 255) 1 nil 
+             (binhex-push-char (logand (lsh bits -16) 255) 1 nil
                                work-buffer)
              (binhex-push-char (logand (lsh bits -8) 255) 1 nil
                                work-buffer))
             ((= counter 2)
-             (binhex-push-char (logand (lsh bits -10) 255) 1 nil 
+             (binhex-push-char (logand (lsh bits -10) 255) 1 nil
                                work-buffer))))
       (if header-only nil
        (binhex-verify-crc work-buffer
-                          data-fork-start 
+                          data-fork-start
                           (+ data-fork-start (aref header 6) 2))
        (or (markerp end) (setq end (set-marker (make-marker) end)))
        (goto-char start)
-       (insert-buffer-substring work-buffer 
+       (insert-buffer-substring work-buffer
                                 data-fork-start (+ data-fork-start
                                                    (aref header 6)))
        (delete-region (point) end)))
@@ -268,7 +268,7 @@ If HEADER-ONLY is non-nil only decode header and return filename."
   "Binhex decode region between START and END using external decoder"
   (interactive "r")
   (let ((cbuf (current-buffer)) firstline work-buffer status
-       (file-name (concat binhex-temporary-file-directory 
+       (file-name (concat binhex-temporary-file-directory
                           (binhex-decode-region start end t)
                           ".data")))
     (save-excursion
@@ -277,7 +277,7 @@ If HEADER-ONLY is non-nil only decode header and return filename."
        (let ((cdir default-directory) default-process-coding-system)
          (unwind-protect
              (progn
-               (set-buffer (setq work-buffer 
+               (set-buffer (setq work-buffer
                                  (generate-new-buffer " *binhex-work*")))
                (buffer-disable-undo work-buffer)
                (insert-buffer-substring cbuf firstline end)
@@ -285,7 +285,7 @@ If HEADER-ONLY is non-nil only decode header and return filename."
                (apply 'call-process-region
                       (point-min)
                       (point-max)
-                      binhex-decoder-program 
+                      binhex-decoder-program
                       nil
                       nil
                       nil
@@ -307,5 +307,3 @@ If HEADER-ONLY is non-nil only decode header and return filename."
 (provide 'binhex)
 
 ;;; binhex.el ends here
-
-
index cd3d647..c2b29e2 100644 (file)
@@ -95,11 +95,8 @@ If nil, only read articles will be expired."
 (defvar gnus-agent-file-coding-system 'binary)
 
 (defconst gnus-agent-scoreable-headers
-  (list
-   "subject" "from" "date" "message-id" 
-   "references" "chars" "lines" "xref")
-  "Headers that are considered when scoring articles
-for download via the Agent.")
+  '("subject" "from" "date" "message-id" "references" "chars" "lines" "xref")
+  "Headers that are considered when scoring articles for download via the Agent.")
 
 ;; Dynamic variables
 (defvar gnus-headers)
@@ -321,7 +318,7 @@ agent minor mode in all Gnus buffers."
   (interactive)
   (gnus-open-agent)
   (add-hook 'gnus-setup-news-hook 'gnus-agent-queue-setup)
-  (unless gnus-agent-send-mail-function 
+  (unless gnus-agent-send-mail-function
     (setq gnus-agent-send-mail-function message-send-mail-function
          message-send-mail-function 'gnus-agent-send-mail))
   (unless gnus-agent-covered-methods
@@ -514,12 +511,21 @@ the actual number of articles toggled is returned."
     (when (and (not gnus-plugged)
               (gnus-agent-method-p gnus-command-method))
       (gnus-agent-load-alist gnus-newsgroup-name)
+      ;; First mark all undownloaded articles as undownloaded.
       (let ((articles gnus-newsgroup-unreads)
            article)
        (while (setq article (pop articles))
          (unless (or (cdr (assq article gnus-agent-article-alist))
                  (memq article gnus-newsgroup-downloadable))
-           (push article gnus-newsgroup-undownloaded)))))))
+           (push article gnus-newsgroup-undownloaded))))
+      ;; Then mark downloaded downloadable as not-downloadable,
+      ;; if you get my drift.
+      (let ((articles gnus-newsgroup-downloadable)
+           article)
+       (while (setq article (pop articles))
+         (when (cdr (assq article gnus-agent-article-alist))
+           (setq gnus-newsgroup-downloadable
+                 (delq article gnus-newsgroup-downloadable))))))))
 
 (defun gnus-agent-catchup ()
   "Mark all undownloaded articles as read."
@@ -778,7 +784,7 @@ the actual number of articles toggled is returned."
       (pop gnus-agent-group-alist))))
 
 (defun gnus-agent-fetch-headers (group &optional force)
-  (let ((articles (if (gnus-agent-load-alist group)   
+  (let ((articles (if (gnus-agent-load-alist group)
                      (gnus-sorted-intersection
                       (gnus-list-of-unread-articles group)
                       (gnus-uncompress-range
@@ -786,7 +792,7 @@ the actual number of articles toggled is returned."
                              (cdr (gnus-active group)))))
                    (gnus-list-of-unread-articles group)))
        (gnus-decode-encoded-word-function 'identity)
-       (file (gnus-agent-article-name ".overview" group))) 
+       (file (gnus-agent-article-name ".overview" group)))
     ;; Fetch them.
     (gnus-make-directory (nnheader-translate-file-chars
                          (file-name-directory file)))
@@ -927,7 +933,7 @@ the actual number of articles toggled is returned."
       ;; Parse them and see which articles we want to fetch.
       (setq gnus-newsgroup-dependencies
            (make-vector (length articles) 0))
-      ;; No need to call `gnus-get-newsgroup-headers-xover' with 
+      ;; No need to call `gnus-get-newsgroup-headers-xover' with
       ;; the entire .overview for group as we still have the just
       ;; downloaded headers in `gnus-agent-overview-buffer'.
       (let ((nntp-server-buffer gnus-agent-overview-buffer))
@@ -935,21 +941,21 @@ the actual number of articles toggled is returned."
              (gnus-get-newsgroup-headers-xover articles nil nil group)))
       (setq category (gnus-group-category group))
       (setq predicate
-           (gnus-get-predicate 
+           (gnus-get-predicate
             (or (gnus-group-get-parameter group 'agent-predicate t)
                 (cadr category))))
       ;; Do we want to download everything, or nothing?
       (if (or (eq (caaddr predicate) 'gnus-agent-true)
              (eq (caaddr predicate) 'gnus-agent-false))
          ;; Yes.
-         (setq arts (symbol-value 
-                     (cadr (assoc (caaddr predicate) 
+         (setq arts (symbol-value
+                     (cadr (assoc (caaddr predicate)
                                   '((gnus-agent-true articles)
                                     (gnus-agent-false nil))))))
        ;; No, we need to decide what we want.
        (setq score-param
              (let ((score-method
-                    (or 
+                    (or
                      (gnus-group-get-parameter group 'agent-score t)
                      (caddr category))))
                (when score-method
@@ -967,7 +973,7 @@ the actual number of articles toggled is returned."
                                          gnus-agent-scoreable-headers)
                              (push (car list) score-file))
                            (setq list (cdr list)))
-                         (setq score-param 
+                         (setq score-param
                                (append score-param (list (nreverse score-file)))
                                score-file nil entries (cdr entries)))
                        (list score-param))
@@ -1153,7 +1159,7 @@ The following commands are available:
        (or (gnus-agent-read-file
             (nnheader-concat gnus-agent-directory "lib/categories"))
            (list (list 'default 'short nil nil)))))
-    
+
 (defun gnus-category-write ()
   "Write the category alist."
   (setq gnus-category-predicate-cache nil
@@ -1172,7 +1178,7 @@ The following commands are available:
        (setf (cadr (assq ',category gnus-category-alist)) predicate)
        (gnus-category-write)
        (gnus-category-list)))))
-  
+
 (defun gnus-category-edit-score (category)
   "Edit the score expression for CATEGORY."
   (interactive (list (gnus-category-name)))
@@ -1287,7 +1293,7 @@ The following commands are available:
 (defun gnus-agent-false ()
   "Return nil."
   nil)
-  
+
 (defun gnus-category-make-function-1 (cat)
   "Make a function from category CAT."
   (cond
index e19fc39..41820ca 100644 (file)
@@ -570,7 +570,7 @@ displayed by the first non-nil matching CONTENT face."
     ("\224" "''")
     ("\225" "*")
     ("\226" "-")
-    ("\227" "-") 
+    ("\227" "-")
     ("\231" "(TM)")
     ("\233" ">")
     ("\234" "oe")
@@ -598,6 +598,9 @@ on parts -- for instance, adding Vcard info to a database."
 ;;; The treatment variables
 ;;;
 
+(defvar gnus-part-display-hook nil
+  "Hook called on parts that are to receive treatment.")
+
 (defvar gnus-article-treat-custom
   '(choice (const :tag "Off" nil)
           (const :tag "On" t)
@@ -727,7 +730,8 @@ on parts -- for instance, adding Vcard info to a database."
   :group 'gnus-article-treat
   :type gnus-article-treat-custom)
 
-(defcustom gnus-treat-display-xface (if gnus-xemacs 'head nil)
+(defcustom gnus-treat-display-xface (if (and gnus-xemacs (featurep 'xface))
+                                       'head nil)
   "Display X-Face headers."
   :group 'gnus-article-treat
   :type gnus-article-treat-custom)
@@ -739,13 +743,15 @@ on parts -- for instance, adding Vcard info to a database."
 
 (defcustom gnus-treat-display-picons (if gnus-xemacs 'head nil)
   "Display picons."
-  :group 'gnus-article
+  :group 'gnus-article-treat
   :type gnus-article-treat-custom)
 
 ;;; Internal variables
 
+(defvar article-goto-body-goes-to-point-min-p nil)
+
 (defvar gnus-article-mime-handle-alist-1 nil)
-(defvar gnus-treatment-function-alist 
+(defvar gnus-treatment-function-alist
   '((gnus-treat-highlight-signature gnus-article-highlight-signature)
     (gnus-treat-buttonize gnus-article-add-buttons)
     (gnus-treat-buttonize-head gnus-article-add-buttons-to-head)
@@ -774,7 +780,8 @@ on parts -- for instance, adding Vcard info to a database."
     (gnus-treat-strip-blank-lines gnus-article-strip-blank-lines)
     (gnus-treat-overstrike gnus-article-treat-overstrike)
     (gnus-treat-display-xface gnus-article-display-x-face)
-    (gnus-treat-display-smileys gnus-smiley-display)))
+    (gnus-treat-display-smileys gnus-smiley-display)
+    (gnus-treat-display-picons gnus-article-display-picons)))
 
 (defvar gnus-article-mime-handle-alist nil)
 (defvar article-lapsed-timer nil)
@@ -1411,12 +1418,16 @@ always hide."
          (gnus-delete-line))))))
 
 (defun article-goto-body ()
-  "Place point at the start of the body."  
+  "Place point at the start of the body."
   (goto-char (point-min))
-  (if (search-forward "\n\n" nil t)
-      t
+  (cond
+   (article-goto-body-goes-to-point-min-p
+    t)
+   ((search-forward "\n\n" nil t)
+    t)
+   (t
     (goto-char (point-max))
-    nil))
+    nil)))
 
 (defun article-strip-multiple-blank-lines ()
   "Replace consecutive blank lines with one empty line."
@@ -2517,8 +2528,8 @@ If ALL-HEADERS is non-nil, no headers are hidden."
       (set-buffer (window-buffer (posn-window pos)))
       (goto-char (posn-point pos))
       (gnus-article-check-buffer)
-      (let ((response (x-popup-menu 
-                      t `("MIME Part" 
+      (let ((response (x-popup-menu
+                      t `("MIME Part"
                           ("" ,@(mapcar (lambda (c)
                                           (cons (caddr c) (car c)))
                                         gnus-mime-button-commands))))))
@@ -2592,7 +2603,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
        (mm-remove-part data)
       (setq contents (mm-get-part data))
       (forward-line 2)
-      (when charset 
+      (when charset
        (unless (symbolp charset)
          (setq charset (mm-read-coding-system "Charset: ")))
        (setq contents (mm-decode-coding-string contents charset)))
@@ -2635,17 +2646,17 @@ If ALL-HEADERS is non-nil, no headers are hidden."
   "Pipe MIME part N, which is the numerical prefix."
   (interactive "p")
   (gnus-article-part-wrapper n 'mm-pipe-part))
-  
+
 (defun gnus-article-save-part (n)
   "Save MIME part N, which is the numerical prefix."
   (interactive "p")
   (gnus-article-part-wrapper n 'mm-save-part))
-  
+
 (defun gnus-article-interactively-view-part (n)
   "Pipe MIME part N, which is the numerical prefix."
   (interactive "p")
   (gnus-article-part-wrapper n 'mm-interactively-view-part))
-  
+
 (defun gnus-article-copy-part (n)
   "Pipe MIME part N, which is the numerical prefix."
   (interactive "p")
@@ -2655,7 +2666,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
   "Pipe MIME part N, which is the numerical prefix."
   (interactive "p")
   (gnus-article-part-wrapper n 'gnus-mime-externalize-part))
-  
+
 (defun gnus-article-view-part (n)
   "View MIME part N, which is the numerical prefix."
   (interactive "p")
@@ -2675,9 +2686,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
   (let ((id (get-text-property (point) 'gnus-part))
        (point (point))
        buffer-read-only)
-    (delete-region (gnus-point-at-bol) (progn (forward-line 1) (point)))
-    (gnus-insert-mime-button
-     handle id (list (not (mm-handle-displayed-p handle))))
+    (forward-line 1)
     (prog1
        (let ((window (selected-window))
              (mail-parse-charset gnus-newsgroup-charset))
@@ -2690,6 +2699,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
                  (goto-char point)
                  (forward-line)
                  (if (mm-handle-displayed-p handle)
+                     ;; This will remove the part.
                      (mm-display-part handle)
                    (save-restriction
                      (narrow-to-region (point) (1+ (point)))
@@ -2699,6 +2709,10 @@ If ALL-HEADERS is non-nil, no headers are hidden."
                       (1- (length gnus-article-mime-handles))
                       (car (mm-handle-type handle))))))
              (select-window window))))
+      (goto-char point)
+      (delete-region (gnus-point-at-bol) (progn (forward-line 1) (point)))
+      (gnus-insert-mime-button
+       handle id (list (mm-handle-displayed-p handle)))
       (goto-char point))))
 
 (defun gnus-article-goto-part (n)
@@ -4115,9 +4129,9 @@ FUNCTION, FUNCTION will be apply to all newsgroups. If item is a
 (REGEXP . FUNCTION), FUNCTION will be only apply to thes newsgroups
 whose names match REGEXP.
 
-For example: 
+For example:
 ((\"chinese\" . gnus-decode-encoded-word-region-by-guess)
- mail-decode-encoded-word-region 
+ mail-decode-encoded-word-region
  (\"chinese\" . rfc1843-decode-region))
 ")
 
@@ -4126,15 +4140,15 @@ For example:
 (defun gnus-multi-decode-header (start end)
   "Apply the functions from `gnus-encoded-word-methods' that match."
   (unless (and gnus-decode-header-methods-cache
-              (eq gnus-newsgroup-name 
+              (eq gnus-newsgroup-name
                   (car gnus-decode-header-methods-cache)))
     (setq gnus-decode-header-methods-cache (list gnus-newsgroup-name))
-    (mapc '(lambda (x) 
+    (mapc '(lambda (x)
             (if (symbolp x)
                 (nconc gnus-decode-header-methods-cache (list x))
-              (if (and gnus-newsgroup-name 
+              (if (and gnus-newsgroup-name
                        (string-match (car x) gnus-newsgroup-name))
-                  (nconc gnus-decode-header-methods-cache 
+                  (nconc gnus-decode-header-methods-cache
                          (list (cdr x))))))
          gnus-decode-header-methods))
   (let ((xlist gnus-decode-header-methods-cache))
@@ -4151,13 +4165,16 @@ For example:
 (defun gnus-treat-article (condition &optional part-number total-parts type)
   (let ((length (- (point-max) (point-min)))
        (alist gnus-treatment-function-alist)
+       (article-goto-body-goes-to-point-min-p t)
        val elem)
-    (when (or (not type)
-             (catch 'found
-               (let ((list gnus-article-treat-types))
-                 (while list
-                   (when (string-match (pop list) type)
-                     (throw 'found t))))))
+    (when (and (gnus-visual-p 'article-highlight 'highlight)
+              (or (not type)
+                  (catch 'found
+                    (let ((list gnus-article-treat-types))
+                      (while list
+                        (when (string-match (pop list) type)
+                          (throw 'found t)))))))
+      (gnus-run-hooks 'gnus-part-display-hook)
       (while (setq elem (pop alist))
        (setq val (symbol-value (car elem)))
        (when (cond
index d677a48..064c500 100644 (file)
@@ -423,7 +423,7 @@ Returns the list of articles removed."
 (defun gnus-cache-update-article (group article)
   "If ARTICLE is in the cache, remove it and re-enter it."
   (gnus-cache-change-buffer group)
-  (when (gnus-cache-possibly-remove-article article nil nil nil t)    
+  (when (gnus-cache-possibly-remove-article article nil nil nil t)
     (let ((gnus-use-cache nil))
       (gnus-cache-possibly-enter-article
        gnus-newsgroup-name article (gnus-summary-article-header article)
index 712d022..4a63495 100644 (file)
@@ -200,7 +200,7 @@ DOC is a documentation string for the parameter.")
     (make-local-variable 'gnus-custom-topic)
     (setq gnus-custom-topic topic)
     (widget-insert "Customize the ")
-    (if group 
+    (if group
        (widget-create 'info-link
                       :help-echo "Push me to learn more."
                       :tag "group parameters"
@@ -220,7 +220,7 @@ DOC is a documentation string for the parameter.")
     (make-local-variable 'gnus-custom-params)
     (setq gnus-custom-params
          (widget-create 'group
-                        :value (if group 
+                        :value (if group
                                    (gnus-info-params info)
                                  (gnus-topic-parameters topic))
                         `(set :inline t
@@ -274,7 +274,7 @@ form, but who cares?"
   "Apply changes and bury the buffer."
   (interactive)
   (if gnus-custom-topic
-      (gnus-topic-set-parameters gnus-custom-topic 
+      (gnus-topic-set-parameters gnus-custom-topic
                                 (widget-value gnus-custom-params))
     (gnus-group-edit-group-done 'params gnus-custom-group
                                (widget-value gnus-custom-params))
index 55e5efc..4aa6036 100644 (file)
     (fset 'gnus-cite-add-face 'gnus-mule-cite-add-face)
     (fset 'gnus-max-width-function 'gnus-mule-max-width-function)
     (fset 'gnus-summary-set-display-table (lambda ()))
-    
+
     (when (boundp 'gnus-check-before-posting)
       (setq gnus-check-before-posting
            (delq 'long-lines
index d4d716e..7e6381f 100644 (file)
@@ -765,7 +765,7 @@ If prefix argument ALL is non-nil, all articles are marked as read."
 (defun gnus-gl-get-trace ()
   "Insert the contents of the BBBD trace buffer."
   (when grouplens-bbb-buffer
-    (insert-buffer grouplens-bbb-buffer)))
+    (insert-buffer-substring grouplens-bbb-buffer)))
 
 ;;
 ;; GroupLens minor mode
index 9bc80d5..7fc7921 100644 (file)
@@ -108,9 +108,10 @@ the second with the current group name.")
     (name . user-full-name))
   "*Mapping from style parameters to variables.")
 
-(defcustom gnus-group-posting-charset-alist 
+(defcustom gnus-group-posting-charset-alist
   '(("^no\\." iso-8859-1)
     (".*" iso-8859-1)
+    (message-this-is-news iso-8859-1)
     (message-this-is-mail nil)
     )
   "Alist of regexps (to match group names) and default charsets to be unencoded when posting."
@@ -223,13 +224,13 @@ Thank you for your help in stamping out bugs.
        elem)
     (catch 'found
       (while (setq elem (pop alist))
-       (when (or (and (stringp (car alist))
-                      (string-match (car alist) group))
-                 (and (gnus-functionp (car alist))
-                      (funcall (car alist) group))
-                 (and (symbolp (car alist))
-                      (symbol-value (car alist))))
-         (throw 'found (cadr alist)))))))
+       (when (or (and (stringp (car elem))
+                      (string-match (car elem) group))
+                 (and (gnus-functionp (car elem))
+                      (funcall (car elem) group))
+                 (and (symbolp (car elem))
+                      (symbol-value (car elem))))
+         (throw 'found (cadr elem)))))))
 
 (defun gnus-inews-add-send-actions (winconf buffer article)
   (make-local-hook 'message-sent-hook)
index 89780a6..2705795 100644 (file)
@@ -233,7 +233,7 @@ RANGE1. The returned range is always a list."
       (setq range1 (if (listp (cdr range1)) range1 (list range1))
            range2 (if (listp (cdr range2)) range2 (list range2))
            r1 (car range1)
-           r2 (car range2) 
+           r2 (car range2)
            r1_min (if (consp r1) (car r1) r1)
            r1_max (if (consp r1) (cdr r1) r1)
            r2_min (if (consp r2) (car r2) r2)
index a091834..af6d285 100644 (file)
@@ -173,7 +173,7 @@ article number, then stay on current line."
     (if (not pos)
        (gnus-error 2 "No such line: %s" arg)
       (goto-char pos))))
-    
+
 (defun gnus-pick-article (&optional arg)
     "Pick the article on the current line.
 If ARG, pick the article on that line instead."
@@ -192,7 +192,7 @@ If ARG, pick the article/thread on that line instead."
   (if gnus-thread-hide-subtree
       (gnus-uu-mark-thread)
     (gnus-summary-mark-as-processable 1)))
-                 
+
 (defun gnus-pick-unmark-article-or-thread (&optional arg)
   "If gnus-thread-hide-subtree is t, then unmark the thread on current line.
 Otherwise unmark the article on current line.
@@ -203,7 +203,7 @@ If ARG, unmark thread/article on that line instead."
   (if gnus-thread-hide-subtree
       (gnus-uu-unmark-thread)
     (gnus-summary-unmark-as-processable 1)))
-  
+
 (defun gnus-pick-mouse-pick (e)
   (interactive "e")
   (mouse-set-point e)
@@ -483,7 +483,7 @@ Two predefined functions are available:
   (interactive "P")
   (let ((buf (current-buffer))
        win)
-    (set-buffer gnus-article-buffer)      
+    (set-buffer gnus-article-buffer)
     (gnus-article-read-summary-keys arg nil t)
     (when (setq win (get-buffer-window buf))
       (select-window win)
index f8b1a41..48514cd 100644 (file)
@@ -387,7 +387,7 @@ If nil, the user will be asked for a duration."
 (defcustom gnus-score-thread-simplify nil
   "If non-nil, subjects will simplified as in threading."
   :group 'gnus-score-various
-  :type 'boolean) 
+  :type 'boolean)
 
 \f
 
@@ -672,7 +672,7 @@ used as score."
           current-score-file)
          (t
           (gnus-score-file-name "all"))))))
-    
+
     (gnus-summary-score-entry
      (nth 1 entry)                     ; Header
      match                             ; Match
@@ -682,7 +682,7 @@ used as score."
         nil
        temporary)
      (not (nth 3 entry))               ; Prompt
-     nil                               ; not silent 
+     nil                               ; not silent
      extra)                            ; non-standard overview.
 
     (when (eq symp 'a)
@@ -1029,7 +1029,7 @@ EXTRA is the possible non-standard header."
     (let ((buffer-read-only nil))
       ;; Set score.
       (gnus-summary-update-mark
-       (if (= n (or gnus-summary-default-score 0)) ? 
+       (if (= n (or gnus-summary-default-score 0)) ? ;Whitespace
         (if (< n (or gnus-summary-default-score 0))
             gnus-score-below-mark gnus-score-over-mark))
        'score))
@@ -2299,7 +2299,7 @@ EXTRA is the possible non-standard header."
          (let ((ignored (append gnus-ignored-adaptive-words
                                 (if gnus-adaptive-word-no-group-words
                                     (message-tokenize-header
-                                     (gnus-group-real-name 
+                                     (gnus-group-real-name
                                       gnus-newsgroup-name)
                                      "."))
                                 gnus-default-ignored-adaptive-words)))
@@ -2553,6 +2553,7 @@ GROUP using BNews sys file syntax."
         (klen (length kill-dir))
         (score-regexp (gnus-score-file-regexp))
         (trans (cdr (assq ?: nnheader-file-name-translation-alist)))
+        (group-trans (nnheader-translate-file-chars group t))
         ofiles not-match regexp)
     (save-excursion
       (set-buffer (gnus-get-buffer-create "*gnus score files*"))
@@ -2599,16 +2600,18 @@ GROUP using BNews sys file syntax."
          (if (looking-at "not.")
              (progn
                (setq not-match t)
-               (setq regexp (concat "^" (buffer-substring 5 (point-max)) "$")))
+               (setq regexp
+                     (concat "^" (buffer-substring 5 (point-max)) "$")))
            (setq regexp (concat "^" (buffer-substring 1 (point-max)) "$"))
            (setq not-match nil))
          ;; Finally - if this resulting regexp matches the group name,
          ;; we add this score file to the list of score files
          ;; applicable to this group.
          (when (or (and not-match
-                        (not (string-match regexp group)))
-                   (and (not not-match)
-                        (string-match regexp group)))
+                        (ignore-errors
+                          (not (string-match regexp group-trans))))
+                   (and (not not-match)
+                        (ignore-errors (string-match regexp group-trans))))
            (push (car sfiles) ofiles)))
        (setq sfiles (cdr sfiles)))
       (kill-buffer (current-buffer))
@@ -2902,7 +2905,7 @@ If ADAPT, return the home adaptive file instead."
                    n times)
              (while (natnump (decf n))
                (setq score (funcall gnus-decay-score-function score)))
-             (setcdr kill (cons score 
+             (setcdr kill (cons score
                                 (cdr (cdr kill)))))))))
     ;; Return whether this score file needs to be saved.  By Je-haysuss!
     updated))
index 554b468..443f6cd 100644 (file)
     '(gnus-face t face ,(symbol-value (intern (format "gnus-face-%d" type))))))
 
 (defun gnus-balloon-face-function (form type)
-  `(gnus-put-text-property 
+  `(gnus-put-text-property
     (point) (progn ,@form (point))
     'balloon-help
     ,(intern (format "gnus-balloon-face-%d" type))))
        (if (or (= delim ?\()
                (= delim ?\{)
                (= delim ?\<))
-           (replace-match (concat "\"(" 
+           (replace-match (concat "\"("
                                   (cond ((= delim ?\() "mouse")
                                         ((= delim ?\{) "face")
                                         (t "balloon"))
@@ -545,7 +545,7 @@ If PROPS, insert the result."
        (symbol-value (intern (format "gnus-%s-line-format" type)))
        (symbol-value (intern (format "gnus-%s-line-format-alist" type)))
        insertable)))
-       
+
 
 (provide 'gnus-spec)
 
index 7eb4982..34c8e98 100644 (file)
@@ -654,7 +654,7 @@ buffer.
          (error "Couldn't enter %s" group))
       (unless (gnus-group-read-group nil no-article group)
        (error "Couldn't enter %s" group)))))
-      
+
 (defun gnus-browse-select-group ()
   "Select the current group."
   (interactive)
index c24f762..d049d02 100644 (file)
@@ -1251,7 +1251,7 @@ for new groups, and subscribe the new groups as zombies."
                  (if active (- (1+ (cdr active)) (car active)) t))
            ;; Shorten the select method if possible, if we need to
            ;; store it at all (native groups).
-           (let ((method (gnus-method-simplify 
+           (let ((method (gnus-method-simplify
                           (or gnus-override-subscribe-method
                               (gnus-group-method group)))))
              (if method
@@ -1810,7 +1810,7 @@ newsgroup."
     ;; Let the Gnus agent save the active file.
     (when (and gnus-agent real-active)
       (gnus-agent-save-groups method))
-    
+
     (goto-char (point-min))
     ;; We split this into to separate loops, one with the prefix
     ;; and one without to speed the reading up somewhat.
index 1e959d5..73fe5f2 100644 (file)
@@ -256,8 +256,8 @@ If this variable is `best', select the highest-scored unread article
 in the group.  If t, select the first unread article.
 
 This variable can also be a function to place point on a likely
-subject line.  Useful values include `gnus-summary-first-unread-subject', 
-`gnus-summary-first-unread-article' and 
+subject line.  Useful values include `gnus-summary-first-unread-subject',
+`gnus-summary-first-unread-article' and
 `gnus-summary-best-unread-article'.
 
 If you want to prevent automatic selection of the first unread article
@@ -345,7 +345,7 @@ It uses the same syntax as the `gnus-split-methods' variable."
                         (cons :value ("" "") regexp (repeat string))
                         (sexp :value nil))))
 
-(defcustom gnus-unread-mark ? 
+(defcustom gnus-unread-mark ? ;Whitespace
   "*Mark used for unread articles."
   :group 'gnus-summary-marks
   :type 'character)
@@ -460,7 +460,7 @@ It uses the same syntax as the `gnus-split-methods' variable."
   :group 'gnus-summary-marks
   :type 'character)
 
-(defcustom gnus-empty-thread-mark ? 
+(defcustom gnus-empty-thread-mark ? ;Whitespace
   "*There is no thread under the article."
   :group 'gnus-summary-marks
   :type 'character)
@@ -797,7 +797,7 @@ which it may alter in any way.")
   :group 'gnus-summary
   :type 'regexp)
 
-(defcustom gnus-group-charset-alist 
+(defcustom gnus-group-charset-alist
   '(("^hk\\>\\|^tw\\>\\|\\<big5\\>" cn-big5)
     ("^cn\\>\\|\\<chinese\\>" cn-gb-2312)
     ("^fj\\>\\|^japan\\>" iso-2022-jp-2)
@@ -1046,9 +1046,9 @@ FUNCTION, FUNCTION will be apply to all newsgroups. If item is a
 (REGEXP . FUNCTION), FUNCTION will be only apply to thes newsgroups
 whose names match REGEXP.
 
-For example: 
+For example:
 ((\"chinese\" . gnus-decode-encoded-word-string-by-guess)
- mail-decode-encoded-word-string 
+ mail-decode-encoded-word-string
  (\"chinese\" . rfc1843-decode-string))
 ")
 
@@ -1057,15 +1057,15 @@ For example:
 (defun gnus-multi-decode-encoded-word-string (string)
   "Apply the functions from `gnus-encoded-word-methods' that match."
   (unless (and gnus-decode-encoded-word-methods-cache
-              (eq gnus-newsgroup-name 
+              (eq gnus-newsgroup-name
                   (car gnus-decode-encoded-word-methods-cache)))
     (setq gnus-decode-encoded-word-methods-cache (list gnus-newsgroup-name))
-    (mapc '(lambda (x) 
+    (mapc '(lambda (x)
             (if (symbolp x)
                 (nconc gnus-decode-encoded-word-methods-cache (list x))
-              (if (and gnus-newsgroup-name 
+              (if (and gnus-newsgroup-name
                        (string-match (car x) gnus-newsgroup-name))
-                  (nconc gnus-decode-encoded-word-methods-cache 
+                  (nconc gnus-decode-encoded-word-methods-cache
                          (list (cdr x))))))
          gnus-decode-encoded-word-methods))
   (let ((xlist gnus-decode-encoded-word-methods-cache))
@@ -1314,7 +1314,7 @@ increase the score of each group you read."
 
     "b" gnus-article-view-part
     "\M-t" gnus-summary-toggle-display-buttonized
-    
+
     "V" gnus-summary-score-map
     "X" gnus-uu-extract-map
     "S" gnus-summary-send-map)
@@ -2527,7 +2527,7 @@ marks of articles."
          (if (or (null gnus-summary-default-score)
                  (<= (abs (- gnus-tmp-score gnus-summary-default-score))
                      gnus-summary-zcore-fuzz))
-             ? 
+             ? ;Whitespace
            (if (< gnus-tmp-score gnus-summary-default-score)
                gnus-score-below-mark gnus-score-over-mark)))
         (gnus-tmp-replied
@@ -2592,7 +2592,7 @@ marks of articles."
         (if (or (null gnus-summary-default-score)
                 (<= (abs (- score gnus-summary-default-score))
                     gnus-summary-zcore-fuzz))
-            ? 
+            ? ;Whitespace
           (if (< score gnus-summary-default-score)
               gnus-score-below-mark gnus-score-over-mark))
         'score))
@@ -3893,7 +3893,7 @@ or a straight list of headers."
             (if (or (null gnus-summary-default-score)
                     (<= (abs (- gnus-tmp-score gnus-summary-default-score))
                         gnus-summary-zcore-fuzz))
-                ? 
+                ? ;Whitespace
               (if (< gnus-tmp-score gnus-summary-default-score)
                   gnus-score-below-mark gnus-score-over-mark))
             gnus-tmp-replied
@@ -4283,7 +4283,7 @@ If SELECT-ARTICLES, only select those articles from GROUP."
                (setq arts (cdr arts)))
              (setq list (cdr all))))
 
-         (when (gnus-check-backend-function 'request-set-mark 
+         (when (gnus-check-backend-function 'request-set-mark
                                             gnus-newsgroup-name)
            ;; score & bookmark are not proper flags (they are cons cells)
            ;; cache is a internal gnus flag
@@ -4295,7 +4295,7 @@ If SELECT-ARTICLES, only select those articles from GROUP."
                    (push (list add 'add (list (cdr type))) delta-marks))
                (if del
                    (push (list del 'del (list (cdr type))) delta-marks)))))
-         
+
          (push (cons (cdr type)
                      (if (memq (cdr type) uncompressed) list
                        (gnus-compress-sequence
@@ -5325,7 +5325,7 @@ gnus-exit-group-hook is called with no arguments if that value is non-nil."
              (gnus-y-or-n-p "Discard changes to this group and exit? "))
       (gnus-async-halt-prefetch)
       (mapcar 'funcall
-             (delq 'gnus-summary-expire-articles 
+             (delq 'gnus-summary-expire-articles
                    (copy-list gnus-summary-prepare-exit-hook)))
       (when (gnus-buffer-live-p gnus-article-buffer)
        (save-excursion
@@ -7529,7 +7529,7 @@ groups."
   ;; Replace the article.
   (let ((buf (current-buffer)))
     (with-temp-buffer
-      (insert-buffer buf)
+      (insert-buffer-substring buf)
       (if (and (not read-only)
               (not (gnus-request-replace-article
                     (cdr gnus-article-current) (car gnus-article-current)
@@ -9172,7 +9172,7 @@ save those articles instead."
     (setq gnus-newsgroup-charset
          (or (and gnus-newsgroup-name
                   (or (gnus-group-find-parameter gnus-newsgroup-name 'charset)
-                      (let ((alist gnus-group-charset-alist) 
+                      (let ((alist gnus-group-charset-alist)
                             elem (charset nil))
                         (while (setq elem (pop alist))
                           (when (and name
@@ -9181,13 +9181,13 @@ save those articles instead."
                                   charset (cadr elem))))
                         charset)))
              gnus-default-charset))))
-  
+
 ;;;
 ;;; Mime Commands
 ;;;
 
 (defun gnus-summary-display-buttonized (&optional show-all-parts)
-  "Display the current article buffer fully MIME-buttonized.  
+  "Display the current article buffer fully MIME-buttonized.
 If SHOW-ALL-PARTS (the prefix) is non-nil, all multipart/* parts are
 treated as multipart/mixed."
   (interactive "P")
@@ -9225,7 +9225,7 @@ treated as multipart/mixed."
       (let ((gnus-unbuttonized-mime-types nil))
        (gnus-summary-show-article))
     (gnus-summary-show-article)))
-    
+
 (gnus-ems-redefine)
 
 (provide 'gnus-sum)
index be296df..692b896 100644 (file)
@@ -416,7 +416,7 @@ articles in the topic and its subtopics."
         (entries (gnus-topic-find-groups
                   (car type) list-level
                   (or all
-                      (cdr (assq 'visible 
+                      (cdr (assq 'visible
                                  (gnus-topic-hierarchical-parameters
                                   (car type)))))
                   lowest))
index 42f9cee..056c11a 100644 (file)
@@ -580,7 +580,7 @@ Bind `print-quoted' and `print-readably' to t while printing."
        (gnus-put-text-property
         b (setq b (next-single-property-change b 'gnus-face nil end))
         prop val)))))
-  
+
 ;;; Protected and atomic operations.  dmoore@ucsd.edu 21.11.1996
 ;;; The primary idea here is to try to protect internal datastructures
 ;;; from becoming corrupted when the user hits C-g, or if a hook or
@@ -792,7 +792,7 @@ ARG is passed to the first function."
     (unwind-protect
        (apply 'run-hooks funcs)
       (set-buffer buf))))
-  
+
 ;;;
 ;;; .netrc and .authinforc parsing
 ;;;
@@ -936,7 +936,7 @@ ARG is passed to the first function."
 
 (defun gnus-annotation-in-region-p (b e)
   (if (= b e)
-      (eq (cadr (memq 'gnus-undeletable (text-properties-at b))) t) 
+      (eq (cadr (memq 'gnus-undeletable (text-properties-at b))) t)
     (text-property-any b e 'gnus-undeletable t)))
 
 (provide 'gnus-util)
index df78e61..195ad8a 100644 (file)
@@ -468,7 +468,7 @@ call it with the value of the `gnus-data' text property."
   (fset 'gnus-region-active-p 'region-active-p)
   (fset 'gnus-annotation-in-region-p 'gnus-xmas-annotation-in-region-p)
   (fset 'gnus-mime-button-menu 'gnus-xmas-mime-button-menu)
-  
+
   (add-hook 'gnus-group-mode-hook 'gnus-xmas-group-menu-add)
   (add-hook 'gnus-summary-mode-hook 'gnus-xmas-summary-menu-add)
   (add-hook 'gnus-article-mode-hook 'gnus-xmas-article-menu-add)
@@ -702,24 +702,25 @@ XEmacs compatibility workaround."
   "Display any XFace headers in the current article."
   (save-excursion
     (let ((xface-glyph
-          (cond ((featurep 'xface)
-                 (make-glyph (vector 'xface :data
-                                     (concat "X-Face: "
-                                             (buffer-substring beg end)))))
-                ((featurep 'xpm)
-                 (let ((cur (current-buffer)))
-                   (save-excursion
-                     (gnus-set-work-buffer)
-                     (insert (format "%s" (buffer-substring beg end cur)))
-                     (gnus-xmas-call-region "uncompface")
-                     (goto-char (point-min))
-                     (insert "/* Width=48, Height=48 */\n")
-                     (gnus-xmas-call-region "icontopbm")
-                     (gnus-xmas-call-region "ppmtoxpm")
-                     (make-glyph
-                      (vector 'xpm :data (buffer-string))))))
-                (t
-                 (make-glyph [nothing]))))
+          (cond
+           ((featurep 'xface)
+            (make-glyph (vector 'xface :data
+                                (concat "X-Face: "
+                                        (buffer-substring beg end)))))
+           ((featurep 'xpm)
+            (let ((cur (current-buffer)))
+              (save-excursion
+                (gnus-set-work-buffer)
+                (insert (format "%s" (buffer-substring beg end cur)))
+                (gnus-xmas-call-region "uncompface")
+                (goto-char (point-min))
+                (insert "/* Width=48, Height=48 */\n")
+                (gnus-xmas-call-region "icontopbm")
+                (gnus-xmas-call-region "ppmtoxpm")
+                (make-glyph
+                 (vector 'xpm :data (buffer-string))))))
+           (t
+            (make-glyph [nothing]))))
          (ext (make-extent (progn
                              (goto-char (point-min))
                              (re-search-forward "^From:" nil t)
@@ -729,26 +730,12 @@ XEmacs compatibility workaround."
       (set-extent-begin-glyph ext xface-glyph)
       (set-extent-property ext 'duplicable t))))
 
-;;(defvar gnus-xmas-pointer-glyph
-;;  (progn
-;;    (setq gnus-xmas-glyph-directory (message-xmas-find-glyph-directory
-;;                                     "gnus"))
-;;    (let ((file-xpm (expand-file-name "gnus-pointer.xpm"
-;;                                   gnus-xmas-glyph-directory))
-;;       (file-xbm (expand-file-name "gnus-pointer.xbm"
-;;                                   gnus-xmas-glyph-directory)))
-;;      (make-pointer-glyph
-;;       (list (vector 'xpm ':file file-xpm)
-;;          (vector 'xbm ':file file-xbm))))))
-
 (defvar gnus-xmas-modeline-left-extent
   (let ((ext (copy-extent modeline-buffer-id-left-extent)))
-;    (set-extent-property ext 'pointer gnus-xmas-pointer-glyph)
     ext))
 
 (defvar gnus-xmas-modeline-right-extent
   (let ((ext (copy-extent modeline-buffer-id-right-extent)))
-;    (set-extent-property ext 'pointer gnus-xmas-pointer-glyph)
     ext))
 
 (defvar gnus-xmas-modeline-glyph
@@ -765,7 +752,7 @@ XEmacs compatibility workaround."
                          `[xpm :file ,file-xpm])
                         ((featurep 'xbm)
                          ;; Then a not-so-nifty XBM
-                         [xbm :file ,file-xbm])
+                         `[xbm :file ,file-xbm])
                         ;; Then the simple string
                         (t [string :data "Gnus:"])))))
       (set-glyph-face glyph 'modeline-buffer-id)
@@ -797,7 +784,7 @@ XEmacs compatibility workaround."
 (defun gnus-xmas-annotation-in-region-p (b e)
   (or (map-extents (lambda (e u) t) nil b e nil nil 'mm t)
       (if (= b e)
-         (eq (cadr (memq 'gnus-undeletable (text-properties-at b))) t) 
+         (eq (cadr (memq 'gnus-undeletable (text-properties-at b))) t)
        (text-property-any b e 'gnus-undeletable t))))
 
 (defun gnus-xmas-mime-button-menu (event)
index 2ec4515..afc72a4 100644 (file)
@@ -259,7 +259,7 @@ is restarted, and sometimes reloaded."
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "0.71"
+(defconst gnus-version-number "0.72"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Pterodactyl Gnus v%s" gnus-version-number)
@@ -1700,6 +1700,7 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.")
      ("gnus-picon" :interactive t gnus-article-display-picons
       gnus-group-display-picons gnus-picons-article-display-x-face
       gnus-picons-display-x-face)
+     ("gnus-picon" gnus-picons-buffer-name)
      ("gnus-gl" bbb-login bbb-logout bbb-grouplens-group-p
       gnus-grouplens-mode)
      ("smiley" :interactive t gnus-smiley-display)
@@ -2439,7 +2440,7 @@ You should probably use `gnus-find-method-for-group' instead."
   (let ((methods gnus-secondary-select-methods)
        (gmethod (gnus-server-get-method nil method)))
     (while (and methods
-               (not (gnus-method-equal 
+               (not (gnus-method-equal
                      (gnus-server-get-method nil (car methods))
                      gmethod)))
       (setq methods (cdr methods)))
index 864149a..dab58b5 100644 (file)
@@ -25,7 +25,7 @@
                     run-with-idle-timer mouse-minibuffer-check window-edges
                     event-click-count track-mouse read-event mouse-movement-p
                     event-end mouse-scroll-subr overlay-lists delete-overlay
-                    set-face-stipple mail-abbrevs-setup 
+                    set-face-stipple mail-abbrevs-setup
                     make-char-table set-char-table-range font-create-object
                     x-color-values widget-make-intangible error-message-string
                     w3-form-encode-xwfu gnus-mule-get-coding-system
                     set-buffer-multibyte
                     find-non-ascii-charset-region char-charset
                     mule-write-region-no-coding-system
-                    find-charset-region 
+                    find-charset-region
                     find-coding-systems-region get-charset-property
                     coding-system-get w3-region
                     rmail-summary-exists rmail-select-summary
                     rmail-update-summary url-retrieve
+                    temp-directory
                     ))
       (maybe-bind '(global-face-data
                    mark-active transient-mark-mode mouse-selection-click-count
                 widget-make-intangible glyphp make-glyph set-glyph-image
                 set-glyph-property event-glyph glyph-property event-point
                 device-on-window-system-p make-gui-button Info-goto-node
-                pp-to-string color-name 
+                pp-to-string color-name
                 gnus-mule-get-coding-system decode-coding-string
                 mail-aliases-setup
                 mm-copy-tree url-view-url w3-prepare-buffer
                 mule-write-region-no-coding-system char-int
                 annotationp delete-annotation make-image-specifier
-                make-annotation 
+                make-annotation
                 w3-do-setup w3-region
                 rmail-summary-exists rmail-select-summary rmail-update-summary
                 url-generic-parse-url
index d37f393..9a4df73 100644 (file)
@@ -598,6 +598,19 @@ If FORCE, re-parse even if already parsed."
         (t
          (setcdr old-major (cons (cons minor info) (cdr old-major)))))))))
 
+(defun mailcap-add (type viewer &optional test)
+  "Add VIEWER as a handler for TYPE.
+If TEST is not given, it defaults to t."
+  (let ((tl (split-string type "/")))
+    (when (or (not (car tl))
+             (not (cadr tl)))
+      (error "%s is not a valid MIME type" type))
+    (mailcap-add-mailcap-entry
+     (car tl) (cadr tl)
+     `((viewer . ,viewer)
+       (test . ,(if test test t))
+       (type . ,type)))))
+
 ;;;
 ;;; The main whabbo
 ;;;
index 3fabf29..91a3041 100644 (file)
@@ -11,7 +11,7 @@
 ;; This is a direct translation into Emacs LISP of the reference C
 ;; implementation of the MD5 Message-Digest Algorithm written by RSA
 ;; Data Security, Inc.
-;; 
+;;
 ;; The algorithm takes a message (that is, a string of bytes) and
 ;; computes a 16-byte checksum or "digest" for the message.  This digest
 ;; is supposed to be cryptographically strong in the sense that if you
@@ -20,7 +20,7 @@
 ;; space of messages.  However, the robustness of the algorithm has not
 ;; been proven, and a similar algorithm (MD4) was shown to be unsound,
 ;; so treat with caution!
-;; 
+;;
 ;; The C algorithm uses 32-bit integers; because GNU Emacs
 ;; implementations provide 28-bit integers (with 24-bit integers on
 ;; versions prior to 19.29), the code represents a 32-bit integer as the
 
 ;; To compute the MD5 Message Digest for a message M (represented as a
 ;; string or as a vector of bytes), call
-;; 
+;;
 ;;   (md5-encode M)
-;; 
+;;
 ;; which returns the message digest as a vector of 16 bytes.  If you
 ;; need to supply the message in pieces M1, M2, ... Mn, then call
-;; 
+;;
 ;;   (md5-init)
 ;;   (md5-update M1)
 ;;   (md5-update M2)
 
 ;; Copyright (C) 1995 by Gareth Rees
 ;; Derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm
-;; 
+;;
 ;; md5.el is free software; you can redistribute it and/or modify it
 ;; under the terms of the GNU General Public License as published by the
 ;; Free Software Foundation; either version 2, or (at your option) any
 ;; later version.
-;; 
+;;
 ;; md5.el is distributed in the hope that it will be useful, but WITHOUT
 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 ;; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 ;; for more details.
-;; 
+;;
 ;; The original copyright notice is given below, as required by the
 ;; licence for the original code.  This code is distributed under *both*
 ;; RSA's original licence and the GNU General Public Licence.  (There
@@ -155,9 +155,9 @@ Returns a vector of 16 bytes containing the message digest."
 ;; for rounds 1, 2, 3 and 4 respectively.  Each function follows this
 ;; pattern of computation (where ROTATE(x,y) means rotate 32-bit value x
 ;; by y bits to the left):
-;; 
+;;
 ;;   FF(a,b,c,d,x,s,ac) = ROTATE(a + F(b,c,d) + x + ac,s) + b
-;; 
+;;
 ;; so we use the macro `md5-make-step' to construct each one.  The
 ;; helper functions F, G, H and I operate on 16-bit numbers; the full
 ;; operation splits its inputs, operates on the halves separately and
index 6a03d9e..e704d5a 100644 (file)
@@ -301,7 +301,7 @@ If t, use `message-user-organization-file'."
   :group 'message-forwarding
   :type 'regexp)
 
-(defcustom message-make-forward-subject-function 
+(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
@@ -666,6 +666,9 @@ Valid valued are `unique' and `unsent'."
   :type '(choice (const :tag "unique" unique)
                 (const :tag "unsent" unsent)))
 
+(defcustom message-default-charset nil
+  "Default charset used in non-MULE XEmacsen.")
+
 ;;; Internal variables.
 ;;; Well, not really internal.
 
@@ -877,8 +880,8 @@ The cdr of ech entry is a function for applying the face to a region.")
 (defvar message-send-coding-system 'binary
   "Coding system to encode outgoing mail.")
 
-(defvar message-draft-coding-system 
-  (cond 
+(defvar message-draft-coding-system
+  (cond
    ((not (fboundp 'coding-system-p)) nil)
    ((coding-system-p 'emacs-mule) 'emacs-mule)
    ((coding-system-p 'escape-quoted) 'escape-quoted)
@@ -1322,7 +1325,7 @@ Point is left at the beginning of the narrowed-to region."
   (define-key message-mode-map "\C-c\C-m\C-a" 'message-mime-attach-file)
   (define-key message-mode-map "\C-c\C-m\C-e" 'message-mime-attach-external)
   (define-key message-mode-map "\C-c\C-m\C-q" 'mml-quote-region)
-  
+
   (define-key message-mode-map "\t" 'message-tab))
 
 (easy-menu-define
@@ -1392,8 +1395,8 @@ C-c C-r  message-caesar-buffer-body (rot13 the message body)."
   (interactive)
   (kill-all-local-variables)
   (set (make-local-variable 'message-reply-buffer) nil)
-  (make-local-variable 'message-send-actions) 
-  (make-local-variable 'message-exit-actions) 
+  (make-local-variable 'message-send-actions)
+  (make-local-variable 'message-exit-actions)
   (make-local-variable 'message-kill-actions)
   (make-local-variable 'message-postpone-actions)
   (make-local-variable 'message-draft-article)
@@ -3749,7 +3752,7 @@ header line with the old Message-ID."
       (replace-match ""))
 
     (buffer-string)))
-    
+
 ;;; Forwarding messages.
 
 (defun message-forward-subject-author-subject (subject)
@@ -4212,7 +4215,9 @@ TYPE is the MIME type to use."
           type (prin1-to-string file))))
 
 (defun message-encode-message-body ()
-  (let (lines multipart-p content-type-p)
+  (let ((mail-parse-charset message-default-charset)
+       (case-fold-search t)
+       lines multipart-p content-type-p)
     (message-goto-body)
     (save-restriction
       (narrow-to-region (point) (point-max))
@@ -4233,7 +4238,7 @@ TYPE is the MIME type to use."
       (insert "MIME-Version: 1.0\n")
       (when lines
        (insert lines))
-      (setq multipart-p 
+      (setq multipart-p
            (re-search-backward "^Content-Type: multipart/" nil t))
       (goto-char (point-max))
       (setq content-type-p
index a67b60b..0403bb6 100644 (file)
@@ -69,7 +69,7 @@ If no encoding was done, nil is returned."
          charsets)
         ;; We encode.
         (t
-         (let ((mime-charset 
+         (let ((mime-charset
                 (mm-mime-charset (car charsets) (point-min) (point-max)))
                start)
            (when (or t
@@ -160,7 +160,7 @@ The characters in CHARSET should then be decoded."
       (let (mule-charset)
        (when (and charset
                   (setq mule-charset (mm-charset-to-coding-system charset))
-                  ;; buffer-file-coding-system 
+                  ;; buffer-file-coding-system
                                        ;Article buffer is nil coding system
                                        ;in XEmacs
                   enable-multibyte-characters
index c6e2129..2f4433d 100644 (file)
     ("message/delivery-status" . inline)))
 
 (defvar mm-user-automatic-display
-  '("text/plain" "text/enriched" "text/richtext" "text/html" 
+  '("text/plain" "text/enriched" "text/richtext" "text/html"
     "image/.*" "message/delivery-status" "multipart/.*"))
 
 (defvar mm-user-automatic-external-display nil
   (goto-char (point-min))
   (let* ((boundary (concat "\n--" (mail-content-type-get ctl 'boundary)))
        (close-delimiter (concat (regexp-quote boundary) "--[ \t]*$"))
-       start parts 
-       (end (save-excursion    
+       start parts
+       (end (save-excursion
               (goto-char (point-max))
               (if (re-search-backward close-delimiter nil t)
                   (match-beginning 0)
@@ -290,7 +290,8 @@ external if displayed external."
                (if method
                    (funcall method)
                  (mm-save-part handle))
-             (unless non-viewer
+             (when (and (not non-viewer)
+                        method)
                (mm-handle-set-undisplayer handle mm)))))
       ;; The function is a string to be executed.
       (mm-insert-part handle)
@@ -454,7 +455,7 @@ This overrides entries in the mailcap file."
 (defun mm-handle-displayed-p (handle)
   "Say whether HANDLE is displayed or not."
   (mm-handle-undisplayer handle))
-  
+
 (defun mm-quote-arg (arg)
   "Return a version of ARG that is safe to evaluate in a shell."
   (let ((pos 0) new-pos accum)
@@ -489,7 +490,7 @@ This overrides entries in the mailcap file."
         (car (mm-handle-type handle)))
        (let ((temp (current-buffer)))
          (set-buffer cur)
-         (insert-buffer temp))))))
+         (insert-buffer-substring temp))))))
 
 (defvar mm-default-directory nil)
 
index aa22040..7f99bd2 100644 (file)
 
 (defvar mm-running-xemacs (string-match "XEmacs" emacs-version))
 
-(defvar mm-running-ntemacs 
-  (and (not mm-running-xemacs) 
+(defvar mm-running-ntemacs
+  (and (not mm-running-xemacs)
        (string-match "nt" system-configuration)))
 
-(defvar mm-binary-coding-system 
+(defvar mm-binary-coding-system
   (if mm-running-xemacs
       'binary 'no-conversion)
-  "100% binary coding system.")   
+  "100% binary coding system.")
 
-(defvar mm-text-coding-system 
-  (cond 
+(defvar mm-text-coding-system
+  (cond
    ((not (fboundp 'coding-system-p)) nil)
    (mm-running-xemacs  ;; XEmacs
     (and (coding-system-p 'no-conversion) 'no-conversion))
   (or mm-coding-system-list
       (setq mm-coding-system-list (mm-coding-system-list))))
 
-(defvar mm-charset-coding-system-alist
-  (let ((rest
-        '((gb2312 . cn-gb-2312)
-          (iso-2022-jp-2 . iso-2022-7bit-ss2)
-          (x-ctext . ctext)))
-       (systems (mm-get-coding-system-list))
-       dest)
-    (while rest
-      (let ((pair (car rest)))
-       (unless (memq (car pair) systems)
-         (setq dest (cons pair dest))))
-      (setq rest (cdr rest)))
-    dest)
-  "Charset/coding system alist.")
+(defvar mm-charset-synonym-alist
+  '((big5 . cn-big5)
+    (gb2312 . cn-gb-2312)
+    (iso-2022-jp-2 . iso-2022-7bit-ss2)
+    (x-ctext . ctext))
+  "A mapping from invalid charset names to the real charset names.")
 
 ;;; Internal variables:
 
@@ -156,7 +148,7 @@ used as the line break code type of the coding system."
   (when (stringp charset)
     (setq charset (intern (downcase charset))))
   (setq charset
-       (or (cdr (assq charset mm-charset-coding-system-alist))
+       (or (cdr (assq charset mm-charset-synonym-alist))
            charset))
   (when lbt
     (setq charset (intern (format "%s-%s" charset lbt))))
@@ -253,8 +245,7 @@ See also `with-temp-file' and `with-output-to-string'."
        (skip-chars-forward "\0-\177")
        (if (eobp)
            '(ascii)
-         ;;;!!!bogus
-         (list 'ascii 'latin-iso8859-1)))))
+         (delq nil (list 'ascii mail-parse-charset))))))
    (t
     ;; We are in a unibyte buffer, so we futz around a bit.
     (save-excursion
@@ -270,7 +261,11 @@ See also `with-temp-file' and `with-output-to-string'."
 
 (defun mm-read-charset (prompt)
   "Return a charset."
-  (completing-read prompt mm-mime-mule-charset-alist nil t))
+  (completing-read
+   prompt
+   (mapcar (lambda (e) (list (symbol-name (car e))))
+          mm-mime-mule-charset-alist)
+   nil t))
 
 (provide 'mm-util)
 
index f10fb69..2e2e1f0 100644 (file)
@@ -2,9 +2,9 @@
 ;; Copyright (c) 1998 by Shenghuo Zhu <zsh@cs.rochester.edu>
 
 ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
-;; $Revision: 1.1.1.9 $
+;; $Revision: 1.1.1.10 $
 ;; Keywords: news postscript uudecode binhex shar
-  
+
 ;; This file is not part of GNU Emacs, but the same permissions
 ;; apply.
 ;;
@@ -59,7 +59,7 @@
 (defconst mm-uu-shar-begin-line "^#! */bin/sh")
 (defconst mm-uu-shar-end-line "^exit 0")
 
-(defvar mm-uu-begin-line 
+(defvar mm-uu-begin-line
   (concat mm-uu-postscript-begin-line "\\|"
          mm-uu-uu-begin-line "\\|"
          mm-uu-binhex-begin-line "\\|"
@@ -76,7 +76,7 @@ This can be either \"inline\" or \"attachment\".")
 
 (defun mm-uu-dissect ()
   "Dissect the current buffer and return a list of uu handles."
-  (let (ct ctl cte charset text-start start-char end-char 
+  (let (ct ctl cte charset text-start start-char end-char
           type file-name end-line result text-plain-type)
     (save-excursion
       (save-restriction
@@ -87,79 +87,79 @@ This can be either \"inline\" or \"attachment\".")
                ctl (condition-case () (mail-header-parse-content-type ct)
                      (error nil))
                charset (and ctl (mail-content-type-get ctl 'charset)))
-         (if (stringp cte) 
+         (if (stringp cte)
              (setq cte (intern (downcase (mail-header-remove-whitespace
                                           (mail-header-remove-comments
                                            cte)))))))
        (goto-char (point-max)))
       (forward-line)
       (setq text-start (point)
-           text-plain-type (cons "text/plain" 
-                                 (if charset 
+           text-plain-type (cons "text/plain"
+                                 (if charset
                                      (list (cons 'charset charset)))))
       (while (re-search-forward mm-uu-begin-line nil t)
        (beginning-of-line)
        (setq start-char (point))
        (forward-line) ;; in case of failure
-       (setq type (cdr (assq (aref (match-string 0) 0) 
+       (setq type (cdr (assq (aref (match-string 0) 0)
                              mm-uu-identifier-alist)))
-       (setq file-name 
+       (setq file-name
              (if (eq type 'uu)
                  (and (match-string 1)
                       (let ((nnheader-file-name-translation-alist
                              '((?/ . ?,) (? . ?_) (?* . ?_) (?$ . ?_))))
                         (nnheader-translate-file-chars (match-string 1))))))
-       (setq end-line (symbol-value 
-                       (intern (concat "mm-uu-" (symbol-name type) 
+       (setq end-line (symbol-value
+                       (intern (concat "mm-uu-" (symbol-name type)
                                        "-end-line"))))
        (when (re-search-forward end-line nil t)
          (forward-line)
          (setq end-char (point))
          (when (or (not (eq type 'binhex))
-                   (setq file-name 
+                   (setq file-name
                          (condition-case nil
                              (binhex-decode-region start-char end-char t)
                            (error nil))))
            (if (> start-char text-start)
                (push
-                (mm-make-handle (mm-uu-copy-to-buffer text-start start-char) 
-                      text-plain-type cte) 
+                (mm-make-handle (mm-uu-copy-to-buffer text-start start-char)
+                      text-plain-type cte)
                 result))
-           (push 
+           (push
             (cond
              ((eq type 'postscript)
-              (mm-make-handle (mm-uu-copy-to-buffer start-char end-char) 
+              (mm-make-handle (mm-uu-copy-to-buffer start-char end-char)
                     '("application/postscript")))
              ((eq type 'uu)
-              (mm-make-handle (mm-uu-copy-to-buffer start-char end-char) 
+              (mm-make-handle (mm-uu-copy-to-buffer start-char end-char)
                     (list (or (and file-name
-                                   (string-match "\\.[^\\.]+$" file-name) 
-                                   (mailcap-extension-to-mime 
+                                   (string-match "\\.[^\\.]+$" file-name)
+                                   (mailcap-extension-to-mime
                                     (match-string 0 file-name)))
                               "application/octet-stream"))
-                    'x-uuencode nil 
+                    'x-uuencode nil
                     (if (and file-name (not (equal file-name "")))
                         (list mm-dissect-disposition (cons 'filename file-name)))))
              ((eq type 'binhex)
-              (mm-make-handle (mm-uu-copy-to-buffer start-char end-char) 
+              (mm-make-handle (mm-uu-copy-to-buffer start-char end-char)
                     (list (or (and file-name
-                                   (string-match "\\.[^\\.]+$" file-name) 
-                                   (mailcap-extension-to-mime 
+                                   (string-match "\\.[^\\.]+$" file-name)
+                                   (mailcap-extension-to-mime
                                     (match-string 0 file-name)))
                               "application/octet-stream"))
-                    'x-binhex nil 
+                    'x-binhex nil
                     (if (and file-name (not (equal file-name "")))
                         (list mm-dissect-disposition (cons 'filename file-name)))))
              ((eq type 'shar)
-              (mm-make-handle (mm-uu-copy-to-buffer start-char end-char) 
-                    '("application/x-shar")))) 
+              (mm-make-handle (mm-uu-copy-to-buffer start-char end-char)
+                    '("application/x-shar"))))
             result)
            (setq text-start end-char))))
       (when result
        (if (> (point-max) (1+ text-start))
            (push
-            (mm-make-handle (mm-uu-copy-to-buffer text-start (point-max)) 
-                  text-plain-type cte) 
+            (mm-make-handle (mm-uu-copy-to-buffer text-start (point-max))
+                  text-plain-type cte)
             result))
        (setq result (cons "multipart/mixed" (nreverse result))))
       result)))
@@ -174,11 +174,11 @@ This can be either \"inline\" or \"attachment\".")
     (forward-line)
     (let (type end-line result)
       (while (and (not result) (re-search-forward mm-uu-begin-line nil t))
-       (forward-line) 
-       (setq type (cdr (assq (aref (match-string 0) 0) 
+       (forward-line)
+       (setq type (cdr (assq (aref (match-string 0) 0)
                              mm-uu-identifier-alist)))
-       (setq end-line (symbol-value 
-                       (intern (concat "mm-uu-" (symbol-name type) 
+       (setq end-line (symbol-value
+                       (intern (concat "mm-uu-" (symbol-name type)
                                        "-end-line"))))
        (if (re-search-forward end-line nil t)
            (setq result t)))
index cde7ba6..c7cc4dc 100644 (file)
        (let (buffer-read-only)
          (delete-region ,(set-marker (make-marker) b)
                         ,(set-marker (make-marker) (point))))))))
-  
+
 (defun mm-inline-audio (handle)
   (message "Not implemented"))
 
index 100a40d..8bb6a85 100644 (file)
@@ -52,7 +52,7 @@
          (set-syntax-table mml-syntax-table)
          (mml-parse-1))
       (set-syntax-table table))))
-  
+
 (defun mml-parse-1 ()
   "Parse the current buffer as an MML document."
   (let (struct tag point contents charsets warn)
        value type)
     (while (setq type (pop types))
       (when (setq value (cdr (assq type cont)))
-       ;; Strip directory component from the filename parameter. 
+       ;; Strip directory component from the filename parameter.
        (when (eq type 'filename)
          (setq value (file-name-nondirectory value)))
        (setq string (concat string ";\n "
index 5244cb5..b6601db 100644 (file)
@@ -89,7 +89,7 @@
   "If t, the expiry date for a given article will be set to the time
 it was marked as expireable; otherwise the date will be the time the
 article was posted to nndb")
-  
+
 ;; Variables copied from nntp
 
 (defvoo nndb-server-opened-hook '(nntp-send-authinfo-from-file)
@@ -139,7 +139,7 @@ article was posted to nndb")
        (push art rest)))
     rest))
 
-      
+
 ;;
 (deffoo nndb-request-type (group &optional article)
   nndb-article-type)
@@ -187,12 +187,12 @@ article was posted to nndb")
              (setq num-delete  (1+ num-delete)))
          (push art rest))))
     (if (> (length delete-list) 0)
-       (progn 
+       (progn
          (nnheader-message 5 "Deleting %s article(s) from %s"
                            (int-to-string num-delete) group)
          (nntp-send-command "^[23].*\n" "X-DELETE" delete-list))
       )
-       
+
     (nnheader-message 5 "")
     (nconc rest articles)))
 
@@ -214,7 +214,7 @@ article was posted to nndb")
   "Let the nndb backend expire articles"
   (let (days art-string delete-list (num-delete 0))
     (nntp-possibly-change-group group server)
-    
+
     ;; first calculate the wait period in days
     (setq days (or (and nnmail-expiry-wait-function
                        (funcall nnmail-expiry-wait-function group))
@@ -227,12 +227,12 @@ article was posted to nndb")
           (setq days -1))
          ((eq days 'immediate)
           (setq days 0)))
-    
+
 
     ;; build article string
     (setq art-string (concat days " " (nndb-build-article-string articles)))
     (nntp-send-command "^\.\r?\n\\|^[345].*\n" "X-EXPIRE" art-string)
-    
+
     (setq delete-list (nndb-get-remote-expire-response))
     (setq num-delete (length delete-list))
     (if (> num-delete 0)
@@ -259,7 +259,7 @@ Optional LAST is ignored."
   ;; which it will be for nndb, which is all that matters anyway
   (let ((new-group (nth 1 accept-form)) result)
     (nntp-possibly-change-group group server)
-    
+
     ;; use the move command for nndb-to-nndb moves
     (if (string-match "^nndb" new-group)
        (let ((new-group-name (gnus-group-real-name new-group)))
@@ -281,7 +281,7 @@ Optional LAST is ignored."
                                       t))
        result)
       )))
-  
+
 (deffoo nndb-request-accept-article (group server &optional last)
   "The article in the current buffer is put into GROUP."
   (nntp-possibly-change-group group server)
@@ -289,7 +289,7 @@ Optional LAST is ignored."
     (when (nntp-send-command "^[23].*\r?\n" "ACCEPT" group)
       (nnheader-insert "")
       (nntp-send-buffer "^[23].*\n"))
-    
+
     (set-buffer nntp-server-buffer)
     (setq msg (buffer-substring (point-min) (point-max)))
     (or (string-match "^\\([0-9]+\\)" msg)
@@ -299,7 +299,7 @@ Optional LAST is ignored."
     (list art)))
 
 (deffoo nndb-request-replace-article (article group buffer)
-  "ARTICLE is the number of the article in GROUP to be replaced 
+  "ARTICLE is the number of the article in GROUP to be replaced
 with the contents of the BUFFER."
   (set-buffer buffer)
   (when (nntp-send-command "^[23].*\r?\n" "X-REPLACE" (int-to-string article))
@@ -326,6 +326,3 @@ with the contents of the BUFFER."
   (nntp))
 
 (provide 'nndb)
-
-
-
index 05669f6..466ee46 100644 (file)
@@ -47,7 +47,7 @@ One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward',
 (defvoo nndoc-open-document-hook 'nnheader-ms-strip-cr
   "Hook run after opening a document.
 The default function removes all trailing carriage returns
-from the document.")  
+from the document.")
 
 (defvar nndoc-type-alist
   `((mmdf
index 095cfe6..662fb09 100644 (file)
           (newest (if (file-newer-than-file-p file auto) file auto))
           (nntp-server-buffer (or buffer nntp-server-buffer)))
       (when (and (file-exists-p newest)
-                (let ((nnmail-file-coding-system 
+                (let ((nnmail-file-coding-system
                        message-draft-coding-system))
                   (nnmail-find-file newest)))
        (save-excursion
        (buf (current-buffer))
         article file)
     (with-temp-buffer
-      (insert-buffer buf)
+      (insert-buffer-substring buf)
       (setq article (nndraft-request-accept-article
                     group (nnoo-current-server 'nndraft) t 'noinsert)
            file (nndraft-article-filename article)))
    nnmh-retrieve-headers
    nnmh-request-group
    nnmh-close-group
-   nnmh-request-list 
+   nnmh-request-list
    nnmh-request-newsgroups
    nnmh-request-move-article
    nnmh-request-replace-article))
index 1818506..794d5c6 100644 (file)
@@ -686,8 +686,8 @@ deleted.  Point is left where the deleted region was."
 
 (defun nnfolder-read-folder (group)
   (let* ((file (nnfolder-group-pathname group))
-        (buffer (set-buffer 
-                 (let ((nnmail-file-coding-system 
+        (buffer (set-buffer
+                 (let ((nnmail-file-coding-system
                         nnfolder-file-coding-system))
                    (nnheader-find-file-noselect file)))))
     (if (equal (cadr (assoc group nnfolder-scantime-alist))
index ac44b44..7c7bda2 100644 (file)
@@ -267,7 +267,7 @@ on your system, you could say something like:
             (goto-char p)
             (and (search-forward "\nxref: " nil t)
                  (nnheader-header-value)))
-          
+
           ;; Extra.
           (when nnmail-extra-headers
             (let ((extra nnmail-extra-headers)
index e84b6f2..3211d69 100644 (file)
@@ -209,7 +209,7 @@ Finds out what articles are to be part of the nnkiboze groups."
 
 (defun nnkiboze-generate-group (group)
   (let* ((info (nth 2 (gnus-gethash group gnus-newsrc-hashtb)))
-        (newsrc-file (concat nnkiboze-directory 
+        (newsrc-file (concat nnkiboze-directory
                               (nnheader-translate-file-chars
                                (concat group ".newsrc"))))
         (nov-file (concat nnkiboze-directory
@@ -287,7 +287,7 @@ Finds out what articles are to be part of the nnkiboze groups."
                                           (car ginfo)))
                                  0))
                           (progn
-                            (ignore-errors 
+                            (ignore-errors
                               (gnus-group-select-group nil))
                             (eq major-mode 'gnus-summary-mode)))
                  ;; We are now in the group where we want to be.
index 8fa8c75..e450dec 100644 (file)
 
 (defun nnlistserv-kk-search (search)
   (url-insert-file-contents
-   (concat (format (nnweb-definition 'address) search) 
+   (concat (format (nnweb-definition 'address) search)
           (nnweb-definition 'index)))
   t)
 
index 72250a2..319112d 100644 (file)
@@ -501,7 +501,7 @@ parameter.  It should return nil, `warn' or `delete'."
 (defvar nnmail-file-coding-system 'binary
   "Coding system used in nnmail.")
 
-(defvar nnmail-file-coding-system-1 
+(defvar nnmail-file-coding-system-1
   (if (string-match "nt" system-configuration)
       'raw-text-dos 'binary)
   "Another coding system used in nnmail.")
index 1867b96..5304865 100644 (file)
@@ -185,8 +185,8 @@ all.  This may very well take some time.")
       (nnheader-report 'nnml "No such file: %s" path))
      ((file-directory-p path)
       (nnheader-report 'nnml "File is a directory: %s" path))
-     ((not (save-excursion (let ((nnmail-file-coding-system 
-                                 nnml-file-coding-system)) 
+     ((not (save-excursion (let ((nnmail-file-coding-system
+                                 nnml-file-coding-system))
                             (nnmail-find-file path))))
       (nnheader-report 'nnml "Couldn't read file: %s" path))
      (t
@@ -254,7 +254,7 @@ all.  This may very well take some time.")
 (deffoo nnml-request-list (&optional server)
   (save-excursion
     (let ((nnmail-file-coding-system nnmail-active-file-coding-system)
-         (pathname-coding-system 'binary)) 
+         (pathname-coding-system 'binary))
       (nnmail-find-file nnml-active-file))
     (setq nnml-group-alist (nnmail-get-active))
     t))
index 875134f..031c0ac 100644 (file)
@@ -73,8 +73,8 @@ The SOUP packet file name will be inserted at the %s.")
   "*Regular expression matching SOUP packets in `nnsoup-packet-directory'.")
 
 (defvoo nnsoup-always-save t
-  "If non nil commit the reply buffer on each message send. 
-This is necessary if using message mode outside Gnus with nnsoup as a 
+  "If non nil commit the reply buffer on each message send.
+This is necessary if using message mode outside Gnus with nnsoup as a
 backend for the messages.")
 
 \f
index a82bb0e..3ff0317 100644 (file)
@@ -583,7 +583,7 @@ noticing asynchronous data.")
       (and (numberp nntp-large-newsgroup)
           (> number nntp-large-newsgroup)
           (nnheader-message 6 "NNTP: Receiving articles...done"))
-      
+
       ;; Now we have all the responses.  We go through the results,
       ;; wash it and copy it over to the server buffer.
       (set-buffer nntp-server-buffer)
@@ -692,7 +692,7 @@ noticing asynchronous data.")
            ;; Ok, this is evil, but when using telnet and stuff
            ;; as the connection method, it's important that the
            ;; QUIT command actually is sent out before we kill
-           ;; the process.  
+           ;; the process.
            (sleep-for 1))))
       (when (buffer-name (process-buffer process))
        (kill-buffer (process-buffer process)))
@@ -709,7 +709,7 @@ noticing asynchronous data.")
            ;; Ok, this is evil, but when using telnet and stuff
            ;; as the connection method, it's important that the
            ;; QUIT command actually is sent out before we kill
-           ;; the process.  
+           ;; the process.
            (sleep-for 1))))
       (when (buffer-name (process-buffer process))
        (kill-buffer (process-buffer process))))))
@@ -839,8 +839,8 @@ password contained in '~/.nntp-authinfo'."
   "Open a connection to PORT on ADDRESS delivering output to BUFFER."
   (run-hooks 'nntp-prepare-server-hook)
   (let* ((pbuffer (nntp-make-process-buffer buffer))
-        (timer 
-         (and nntp-connection-timeout 
+        (timer
+         (and nntp-connection-timeout
               (nnheader-run-at-time
                nntp-connection-timeout nil
                `(lambda ()
@@ -853,7 +853,7 @@ password contained in '~/.nntp-authinfo'."
                (funcall nntp-open-connection-function pbuffer))
            (error nil)
            (quit nil))))
-    (when timer 
+    (when timer
       (nnheader-cancel-timer timer))
     (when (and (buffer-name pbuffer)
               process)
index 8a47fb3..3200fd4 100644 (file)
@@ -113,7 +113,7 @@ Returns the process associated with the connection."
         (get-buffer-create (format "trace of POP session to %s" mailhost)))
        (process)
        (coding-system-for-read 'binary)   ;; because FSF Emacs 20 and
-       (coding-system-for-write 'binary)  ;; XEmacs 20/1 are st00pid 
+       (coding-system-for-write 'binary)  ;; XEmacs 20/1 are st00pid
     )
     (save-excursion
       (set-buffer process-buffer)
index b9a3015..70f258c 100644 (file)
@@ -2,10 +2,10 @@
 ;; Copyright (c) 1998 by Shenghuo Zhu <zsh@cs.rochester.edu>
 
 ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
-;; $Revision: 1.1.1.1 $
-;; Keywords: news HZ 
+;; $Revision: 1.1.1.2 $
+;; Keywords: news HZ
 ;; Time-stamp: <Tue Oct  6 23:48:49 EDT 1998 zsh>
-  
+
 ;; This file is not part of GNU Emacs, but the same permissions
 ;; apply.
 
 
 (require 'mm-util)
 
-(defvar rfc1843-word-regexp 
+(defvar rfc1843-word-regexp
   "~\\({\\([\041-\167][\041-\176]\\| \\)+\\(~}\\|$\\)")
 
 (defvar rfc1843-word-regexp-strictly
       "~\\({\\([\041-\167][\041-\176]\\)+\\(~}\\|$\\)")
 
-(defvar rfc1843-hzp-word-regexp 
+(defvar rfc1843-hzp-word-regexp
   "~\\({\\([\041-\167][\041-\176]\\| \\)+\\|\
 [<>]\\([\041-\175][\041-\176]\\| \\)+\\)\\(~}\\|$\\)")
 
@@ -53,7 +53,7 @@
 
 (defcustom rfc1843-decode-loosely nil
   "Loosely check HZ encoding if non-nil.
-When it is set non-nil, only buffers or strings with strictly 
+When it is set non-nil, only buffers or strings with strictly
 HZ-encoded are decoded."
   :type 'boolean
   :group 'gnus)
@@ -62,7 +62,7 @@ HZ-encoded are decoded."
   "HZ+ decoding support if non-nil.
 HZ+ specification (also known as HZP) is to provide a standardized
 7-bit representation of mixed Big5, GB, and ASCII text for convenient
-e-mail transmission, news posting, etc. 
+e-mail transmission, news posting, etc.
 The document of HZ+ 0.78 specification can be found at
 ftp://ftp.math.psu.edu/pub/simpson/chinese/hzp/hzp.doc"
   :type 'boolean
@@ -79,27 +79,27 @@ ftp://ftp.math.psu.edu/pub/simpson/chinese/hzp/hzp.doc"
   (let (str firstc)
     (save-excursion
       (goto-char from)
-      (if (or rfc1843-decode-loosely 
-             (re-search-forward (if rfc1843-decode-hzp 
-                                    rfc1843-hzp-word-regexp-strictly 
+      (if (or rfc1843-decode-loosely
+             (re-search-forward (if rfc1843-decode-hzp
+                                    rfc1843-hzp-word-regexp-strictly
                                   rfc1843-word-regexp-strictly) to t))
-         (save-restriction 
+         (save-restriction
            (narrow-to-region from to)
            (goto-char (point-min))
            (while (re-search-forward (if rfc1843-decode-hzp
                                          rfc1843-hzp-word-regexp
-                                       rfc1843-word-regexp) (point-max) t)  
+                                       rfc1843-word-regexp) (point-max) t)
              (setq str (match-string 1))
-             (setq firstc (aref str 0)) 
-             (insert (mm-decode-coding-string 
+             (setq firstc (aref str 0))
+             (insert (mm-decode-coding-string
                       (rfc1843-decode
-                       (prog1 
+                       (prog1
                            (substring str 1)
                          (delete-region (match-beginning 0) (match-end 0)))
                        firstc)
                       (if (eq firstc ?{) 'cn-gb-2312 'cn-big5))))
            (goto-char (point-min))
-           (while (search-forward "~" (point-max) t)  
+           (while (search-forward "~" (point-max) t)
              (cond ((eq (char-after) ?\n)
                     (delete-char -1)
                     (delete-char 1))
@@ -138,7 +138,7 @@ ftp://ftp.math.psu.edu/pub/simpson/chinese/hzp/hzp.doc"
                     gnus-newsgroup-name)
        (save-excursion
         (save-restriction
-          (message-narrow-to-head)     
+          (message-narrow-to-head)
           (goto-char (point-max))
           (widen)
           (rfc1843-decode-region (point) (point-max))))))
@@ -152,19 +152,19 @@ ftp://ftp.math.psu.edu/pub/simpson/chinese/hzp/hzp.doc"
   (require 'gnus-art)
   (require 'gnus-sum)
   (add-hook 'gnus-article-decode-hook 'rfc1843-decode-article-body t)
-  (setq gnus-decode-encoded-word-function 
+  (setq gnus-decode-encoded-word-function
        'gnus-multi-decode-encoded-word-string
-       gnus-decode-header-function 
+       gnus-decode-header-function
        'gnus-multi-decode-header
-       gnus-decode-encoded-word-methods 
-       (nconc gnus-decode-encoded-word-methods 
-              (list 
-               (cons (concat "\\<\\(" rfc1843-newsgroups-regexp "\\)\\>") 
+       gnus-decode-encoded-word-methods
+       (nconc gnus-decode-encoded-word-methods
+              (list
+               (cons (concat "\\<\\(" rfc1843-newsgroups-regexp "\\)\\>")
                      'rfc1843-decode-string)))
-       gnus-decode-header-methods 
-       (nconc gnus-decode-header-methods 
-              (list 
-               (cons (concat "\\<\\(" rfc1843-newsgroups-regexp "\\)\\>") 
+       gnus-decode-header-methods
+       (nconc gnus-decode-header-methods
+              (list
+               (cons (concat "\\<\\(" rfc1843-newsgroups-regexp "\\)\\>")
                      'rfc1843-decode-region)))))
 
 (provide 'rfc1843)
index ceb45c4..b68146a 100644 (file)
@@ -284,7 +284,7 @@ Should be called narrowed to the head of the message."
       (inline
        (rfc2047-decode-region (point-min) (point-max)))
       (buffer-string))))
+
 (defun rfc2047-parse-and-decode (word)
   "Decode WORD and return it if it is an encoded word.
 Return WORD if not."
index 6212cc0..bbe19a5 100644 (file)
@@ -197,7 +197,7 @@ These look like \"us-ascii'en-us'This%20is%20%2A%2A%2Afun%2A%2A%2A\"."
        (t
        (goto-char (point-min))
        (insert param "=")))
-      (buffer-string))))       
+      (buffer-string))))
 
 (provide 'rfc2231)
 
index cb02147..61ee50c 100644 (file)
@@ -162,7 +162,7 @@ above them."
 (defun smiley-popup-menu (e)
   (interactive "e")
   (popup-menu
-   `("Smilies" 
+   `("Smilies"
      ["Toggle This Smiley" (smiley-toggle-extent ,e) t]
      ["Toggle All Smilies" (smiley-toggle-extents ,e) t])))
 
index 0a55481..c40ddbe 100644 (file)
@@ -79,7 +79,7 @@
 (defun date-to-day (date)
   "Return the number of days between year 1 and DATE."
   (time-to-days (date-to-time date)))
-  
+
 (defun days-between (date1 date2)
   "Return the number of days between DATE1 and DATE2."
   (- (date-to-day date1) (date-to-day date2)))
index b661ae4..06252d0 100644 (file)
@@ -63,7 +63,7 @@ input and write the converted data to its standard output.")
 
 If FILE-NAME is non-nil, save the result to FILE-NAME."
   (interactive "r\nP")
-  (let ((cbuf (current-buffer)) tempfile firstline work-buffer status) 
+  (let ((cbuf (current-buffer)) tempfile firstline work-buffer status)
     (save-excursion
       (goto-char start)
       (when (re-search-forward uudecode-begin-line nil t)
@@ -71,9 +71,9 @@ If FILE-NAME is non-nil, save the result to FILE-NAME."
        (setq firstline (point))
        (cond ((null file-name))
              ((stringp file-name))
-             (t 
-              (setq file-name (read-file-name "File to Name:" 
-                                              nil nil nil 
+             (t
+              (setq file-name (read-file-name "File to Name:"
+                                              nil nil nil
                                               (match-string 1)))))
        (setq tempfile (expand-file-name
                        (or file-name (concat uudecode-temporary-file-directory
@@ -81,7 +81,7 @@ If FILE-NAME is non-nil, save the result to FILE-NAME."
        (let ((cdir default-directory) default-process-coding-system)
          (unwind-protect
              (progn
-               (set-buffer (setq work-buffer 
+               (set-buffer (setq work-buffer
                                  (generate-new-buffer " *uudecode-work*")))
                (buffer-disable-undo work-buffer)
                (insert "begin 600 " (file-name-nondirectory tempfile) "\n")
@@ -90,7 +90,7 @@ If FILE-NAME is non-nil, save the result to FILE-NAME."
                (apply 'call-process-region
                       (point-min)
                       (point-max)
-                      uudecode-decoder-program 
+                      uudecode-decoder-program
                       nil
                       nil
                       nil
@@ -136,10 +136,10 @@ If FILE-NAME is non-nil, save the result to FILE-NAME."
          (when (re-search-forward uudecode-begin-line nil t)
            (cond ((null file-name))
                  ((stringp file-name))
-                 (t 
-                  (setq file-name (expand-file-name 
-                                   (read-file-name "File to Name:" 
-                                                   nil nil nil 
+                 (t
+                  (setq file-name (expand-file-name
+                                   (read-file-name "File to Name:"
+                                                   nil nil nil
                                                    (match-string 1))))))
            (setq work-buffer (generate-new-buffer " *uudecode-work*"))
            (buffer-disable-undo work-buffer)
@@ -151,22 +151,22 @@ If FILE-NAME is non-nil, save the result to FILE-NAME."
              (cond
               ((> (skip-chars-forward uudecode-alphabet end) 0)
                (setq lim (point))
-               (setq remain 
+               (setq remain
                      (logand (- (char-int (char-after inputpos)) 32) 63))
                (setq inputpos (1+ inputpos))
                (if (= remain 0) (setq done t))
                (while (and (< inputpos lim) (> remain 0))
-                 (setq bits (+ bits 
-                               (logand 
-                                (- 
+                 (setq bits (+ bits
+                               (logand
+                                (-
                                  (char-int (char-after inputpos)) 32) 63)))
                  (if (/= counter 0) (setq remain (1- remain)))
                  (setq counter (1+ counter)
                        inputpos (1+ inputpos))
                  (cond ((= counter 4)
-                        (uudecode-insert-char 
+                        (uudecode-insert-char
                          (lsh bits -16) 1 nil work-buffer)
-                        (uudecode-insert-char 
+                        (uudecode-insert-char
                          (logand (lsh bits -8) 255) 1 nil work-buffer)
                         (uudecode-insert-char (logand bits 255) 1 nil
                                         work-buffer)
@@ -181,12 +181,12 @@ If FILE-NAME is non-nil, save the result to FILE-NAME."
                  ;(error "uucode ends unexpectly")
                  (setq done t))
                 ((= counter 3)
-                 (uudecode-insert-char (logand (lsh bits -16) 255) 1 nil 
+                 (uudecode-insert-char (logand (lsh bits -16) 255) 1 nil
                                  work-buffer)
                  (uudecode-insert-char (logand (lsh bits -8) 255) 1 nil
                                  work-buffer))
                 ((= counter 2)
-                 (uudecode-insert-char (logand (lsh bits -10) 255) 1 nil 
+                 (uudecode-insert-char (logand (lsh bits -10) 255) 1 nil
                                  work-buffer)))
              (skip-chars-forward non-data-chars end))
            (if file-name
index 4c0adf9..4c43219 100644 (file)
@@ -1,3 +1,8 @@
+1999-01-16 20:36:48  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.texi (Customizing Articles): Rewrite.
+       Remove mention of gnus-article-display-hook.
+
 1999-01-12 07:14:12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus.texi (To From Newsgroups): Addition.
index c7c41a8..10e9635 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Pterodactyl Gnus 0.71 Manual
+@settitle Pterodactyl Gnus 0.72 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -318,7 +318,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Pterodactyl Gnus 0.71 Manual
+@title Pterodactyl Gnus 0.72 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -354,7 +354,7 @@ can be gotten by any nefarious means you can think of---@sc{nntp}, local
 spool or your mbox file.  All at the same time, if you want to push your
 luck.
 
-This manual corresponds to Pterodactyl Gnus 0.71.
+This manual corresponds to Pterodactyl Gnus 0.72.
 
 @end ifinfo
 
@@ -6256,11 +6256,6 @@ 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)
 @findex gnus-article-highlight-headers
@@ -6447,7 +6442,7 @@ articles that have signatures in them do:
 @lisp
 ;;; Hide pgp cruft if any.
 
-(add-hook 'gnus-article-display-hook 'gnus-article-hide-pgp)
+(setq gnus-treat-strip-pgp t)
 
 ;;; After hiding pgp, verify the message;
 ;;; only happens if pgp signature is found.
@@ -6524,7 +6519,7 @@ is hidden.
 Hide cited text in articles that aren't roots
 (@code{gnus-article-hide-citation-in-followups}).  This isn't very
 useful as an interactive command, but might be a handy function to stick
-in @code{gnus-article-display-hook} (@pxref{Customizing Articles}).
+have happen automatically (@pxref{Customizing Articles}).
 
 @end table
 
@@ -6613,9 +6608,7 @@ interactively.
 @item W w
 @kindex W w (Summary)
 @findex gnus-article-fill-cited-article
-Do word wrap (@code{gnus-article-fill-cited-article}).  If you use this
-function in @code{gnus-article-display-hook}, it should be run fairly
-late and certainly after any highlighting.
+Do word wrap (@code{gnus-article-fill-cited-article}).  
 
 You can give the command a numerical prefix to specify the width to use
 when filling.
@@ -8098,14 +8091,13 @@ Any headers that are to remain visible, but are not listed in this
 variable, will be displayed in random order after all the headers listed in this variable.
 
 @findex gnus-article-hide-boring-headers
-@vindex gnus-article-display-hook
 @vindex gnus-boring-article-headers
-You can hide further boring headers by entering
-@code{gnus-article-hide-boring-headers} into
-@code{gnus-article-display-hook}.  What this function does depends on
-the @code{gnus-boring-article-headers} variable.  It's a list, but this
-list doesn't actually contain header names.  Instead is lists various
-@dfn{boring conditions} that Gnus can check and remove from sight.
+You can hide further boring headers by setting
+@code{gnus-treat-hide-boring-header} to @code{head}.  What this function
+does depends on the @code{gnus-boring-article-headers} variable.  It's a
+list, but this list doesn't actually contain header names.  Instead is
+lists various @dfn{boring conditions} that Gnus can check and remove
+from sight.
 
 These conditions are:
 @table @code
@@ -8212,29 +8204,91 @@ Any similarity to real events and people is purely coincidental.  Ahem.
 @section Customizing Articles
 @cindex article customization
 
-@vindex gnus-article-display-hook
-The @code{gnus-article-display-hook} is called after the article has
-been inserted into the article buffer.  It is meant to handle all
-treatment of the article before it is displayed.
+A slew of functions for customizing how the articles are to look like
+exist.  You can call these functions interactively, or you can have them 
+called automatically when you select the articles.
 
-@findex gnus-article-maybe-highlight
-@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
-Date}.  Note that the order of functions in this hook might affect
-things, so you may have to fiddle a bit to get the desired results.
-
-You can, of course, write your own functions.  The functions are called
-from the article buffer, and you can do anything you like, pretty much.
-There is no information that you have to keep in the buffer---you can
-change everything.  However, you shouldn't delete any headers.  Instead
-make them invisible if you want to make them go away.
+To have them called automatically, you should set the corresponding
+``treatment'' variable.  For instance, to have headers hidden, you'd set 
+@code{gnus-treat-hide-headers}.  Below is a list of variables that can
+be set, but first we discuss the values these variables can have.
+
+@enumerate
+@item
+@code{nil}: Don't do this treatment.
+
+@item
+@code{t}: Do this treatment on all body parts.
+
+@item
+@code{head}: Do the treatment on the headers.
+
+@item
+@code{last}: Do this treatment on the last part.
+
+@item
+An integer: Do this treatment on all body parts that have a length less
+than this number.
+
+@item
+A sexp: Do this treatment on all body parts where the sexp evals to a
+non-@code{nil} value.
+
+@end enumerate
+
+You may have noticed that the word @dfn{part} is used here.  This refers
+to the fact that some messages are @sc{mime} multipart articles that may
+be divided into several parts.  Articles that are not multiparts are
+considered to contain just a single part.
+
+@vindex gnus-article-treat-types
+Are the treatments applied to all sorts of multipart parts?  Yes, if you 
+want to, but by default, only @samp{text/plain} parts are given the
+treatment.  This is controlled by the @code{gnus-article-treat-types}
+variable, which is a list of regular expressions that are matched to the 
+type of the part.
+
+The following treatment options are available.  The easiest way to
+customize this is to examine the @code{gnus-article-treat} customization 
+group.
+
+@table @code
+@item gnus-treat-highlight-signature
+@item gnus-treat-buttonize
+@item gnus-treat-buttonize-head
+@item gnus-treat-emphasize
+@item gnus-treat-fill-article
+@item gnus-treat-strip-cr
+@item gnus-treat-hide-headers
+@item gnus-treat-hide-boring-headers
+@item gnus-treat-hide-signature
+@item gnus-treat-hide-citation
+@item gnus-treat-strip-pgp
+@item gnus-treat-strip-pem
+@item gnus-treat-highlight-headers
+@item gnus-treat-highlight-citation
+@item gnus-treat-highlight-signature 
+@item gnus-treat-date-ut 
+@item gnus-treat-date-local 
+@item gnus-treat-date-lapsed 
+@item gnus-treat-date-original 
+@item gnus-treat-strip-trailing-blank-lines
+@item gnus-treat-strip-leading-blank-lines
+@item gnus-treat-strip-multiple-blank-lines
+@item gnus-treat-strip-blank-lines 
+@item gnus-treat-overstrike 
+@item gnus-treat-display-xface 
+@item gnus-treat-display-smileys 
+@item gnus-treat-display-picons
+@end table
+
+@vindex gnus-part-display-hook
+You can, of course, write your own functions to be called from
+@code{gnus-part-display-hook}.  The functions are called narrowed to the
+part, and you can do anything you like, pretty much.  There is no
+information that you have to keep in the buffer---you can change
+everything.  However, you shouldn't delete any headers.  Instead make
+them invisible if you want to make them go away.
 
 
 @node Article Keymap
@@ -8323,12 +8377,6 @@ article buffer.  It is mainly intended for functions that do something
 depending on the contents; it should probably not be used for changing
 the contents of the article buffer.
 
-@vindex gnus-article-display-hook
-@item gnus-article-display-hook
-This hook is called as the last thing when displaying an article, and is
-intended for modifying the contents of the buffer, doing highlights,
-hiding headers, and the like.
-
 @item gnus-article-mode-hook
 @vindex gnus-article-mode-hook
 Hook called in article mode buffers.
@@ -14914,8 +14962,7 @@ Do highlights in the group buffer.
 @item summary-highlight
 Do highlights in the summary buffer.
 @item article-highlight
-Do highlights according to @code{gnus-article-display-hook} in the
-article buffer.
+Do highlights in the article buffer.
 @item highlight
 Turn on highlighting in all buffers.
 @item group-menu
@@ -15453,10 +15500,7 @@ 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)
+(setq gnus-treat-display-picons t)
 @end lisp
 
 and make sure @code{gnus-picons-database} points to the directory
@@ -15527,28 +15571,19 @@ Now that you've made those decision, you need to add the following
 functions to the appropriate hooks so these pictures will get displayed
 at the right time.
 
-@vindex gnus-article-display-hook
 @vindex gnus-picons-display-where
 @table @code
 @item gnus-article-display-picons
 @findex gnus-article-display-picons
 Looks up and displays the picons for the author and the author's domain
-in the @code{gnus-picons-display-where} buffer.  Should be added to the
-@code{gnus-article-display-hook}.
+in the @code{gnus-picons-display-where} buffer.  
 
 @item gnus-picons-article-display-x-face
 @findex gnus-article-display-picons
-Decodes and displays the X-Face header if present.  This function
-should be added to @code{gnus-article-display-hook}.
+Decodes and displays the X-Face header if present.  
 
 @end table
 
-Note:  You must append them to the hook, so make sure to specify 't'
-for the append flag of @code{add-hook}:
-
-@lisp
-(add-hook 'gnus-article-display-hook 'gnus-article-display-picons t)
-@end lisp
 
 
 @node Picon Useless Configuration
@@ -15665,7 +15700,7 @@ In short---to use Smiley in Gnus, put the following in your
 @file{.gnus.el} file:
 
 @lisp
-(add-hook 'gnus-article-display-hook 'gnus-smiley-display t)
+(setq gnus-treat-display-smiley t)
 @end lisp
 
 Smiley maps text smiley faces---@samp{:-)}, @samp{:-=}, @samp{:-(} and
@@ -16833,11 +16868,6 @@ All functions for hiding article elements are now toggles.
 @item
 Article headers can be buttonized (@pxref{Article Washing}).
 
-@lisp
-(add-hook 'gnus-article-display-hook
-          'gnus-article-add-buttons-to-head)
-@end lisp
-
 @item
 All mail backends support fetching articles by @code{Message-ID}.
 
@@ -16935,11 +16965,6 @@ cited text to hide is now customizable (@pxref{Article Hiding}).
 @item
 Boring headers can be hidden (@pxref{Article Hiding}).
 
-@lisp
-(add-hook 'gnus-article-display-hook
-          'gnus-article-hide-boring-headers t)
-@end lisp
-
 @item
 Default scoring values can now be set from the menu bar.
 
@@ -17104,11 +17129,6 @@ mail before saving the mail (@pxref{Washing Mail}).
 @item
 Emphasized text can be properly fontisized:
 
-@lisp
-(add-hook 'gnus-article-display-hook
-          'gnus-article-emphasize)
-@end lisp
-
 @end itemize
 
 
@@ -18800,13 +18820,11 @@ minimum.  You can, in fact, make do without them altogether---most of the
 useful data is in the summary buffer, anyway.  Set this variable to
 @samp{^NEVVVVER} or @samp{From:}, or whatever you feel you need.
 
-@item gnus-article-display-hook
 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-citation))
+(setq gnus-treat-hide-headers 'head
+      gnus-treat-hide-signature t
+      gnus-treat-hide-citation t)
 @end lisp
 
 @item gnus-use-full-window
@@ -18863,9 +18881,6 @@ Set @code{gnus-show-threads}, @code{gnus-use-cross-reference} and
 @code{gnus-nov-is-evil} to @code{nil} to make entering and exiting the
 summary buffer faster.
 
-Set @code{gnus-article-display-hook} to @code{nil} to make article
-processing a bit faster.
-
 
 @page
 @node Troubleshooting
index 7e831f0..78e7074 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message
-@settitle Pterodactyl Message 0.71 Manual
+@settitle Pterodactyl Message 0.72 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 Pterodactyl Message 0.71 Manual
+@title Pterodactyl Message 0.72 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 Pterodactyl Message 0.71.  Message is
+This manual corresponds to Pterodactyl Message 0.72.  Message is
 distributed with the Gnus distribution bearing the same version number
 as this manual.