*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Fri, 15 Jan 1999 20:51:21 +0000 (20:51 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Fri, 15 Jan 1999 20:51:21 +0000 (20:51 +0000)
82 files changed:
lisp/ChangeLog
lisp/dgnushack.el
lisp/gnus-agent.el
lisp/gnus-art.el
lisp/gnus-async.el
lisp/gnus-bcklg.el
lisp/gnus-cache.el
lisp/gnus-cite.el
lisp/gnus-demon.el
lisp/gnus-draft.el
lisp/gnus-dup.el
lisp/gnus-eform.el
lisp/gnus-ems.el
lisp/gnus-gl.el
lisp/gnus-group.el
lisp/gnus-int.el
lisp/gnus-kill.el
lisp/gnus-logic.el
lisp/gnus-mh.el
lisp/gnus-move.el
lisp/gnus-msg.el
lisp/gnus-nocem.el
lisp/gnus-picon.el
lisp/gnus-range.el
lisp/gnus-salt.el
lisp/gnus-score.el
lisp/gnus-soup.el
lisp/gnus-spec.el
lisp/gnus-srvr.el
lisp/gnus-start.el
lisp/gnus-sum.el
lisp/gnus-topic.el
lisp/gnus-undo.el
lisp/gnus-util.el
lisp/gnus-uu.el
lisp/gnus-vm.el
lisp/gnus-win.el
lisp/gnus-xmas.el
lisp/gnus.el
lisp/ietf-drums.el
lisp/mail-parse.el
lisp/mailcap.el
lisp/message.el
lisp/messagexmas.el
lisp/messcompat.el
lisp/mm-bodies.el
lisp/mm-decode.el
lisp/mm-encode.el
lisp/mm-util.el
lisp/mm-view.el
lisp/mml.el
lisp/nnagent.el
lisp/nnbabyl.el
lisp/nndir.el
lisp/nndoc.el
lisp/nndraft.el
lisp/nneething.el
lisp/nnfolder.el
lisp/nngateway.el
lisp/nnheader.el
lisp/nnheaderxm.el
lisp/nnkiboze.el
lisp/nnlistserv.el
lisp/nnmail.el
lisp/nnmbox.el
lisp/nnmh.el
lisp/nnml.el
lisp/nnoo.el
lisp/nnsoup.el
lisp/nnspool.el
lisp/nntp.el
lisp/nnvirtual.el
lisp/nnweb.el
lisp/qp.el
lisp/rfc2045.el
lisp/rfc2047.el
lisp/rfc2231.el
lisp/smiley.el
lisp/time-date.el
texi/ChangeLog
texi/gnus.texi
texi/message.texi

index 2f08e83..8b98090 100644 (file)
@@ -1,3 +1,141 @@
+Fri Jan 15 20:50:38 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Pterodactyl Gnus v0.70 is released.
+
+1999-01-15 00:06:04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * mm-decode.el (mm-save-part): Use mm-get-part.
+       (mm-insert-part): New function.
+       (mm-get-part): Use it.
+       (mm-get-image): Ditto.
+       (mm-display-external): Ditto.
+
+       * mm-view.el (mm-inline-text): Ditto.
+
+       * gnus-move.el (gnus-move-group-to-server): Protect against nil
+       ranges. 
+
+       * mm-decode.el (mm-display-external): Save the buffer.
+       (mm-remove-part): Kill it.
+
+       * qp.el (quoted-printable-decode-region): Do the right thing at eobp.
+
+       * nnagent.el (nnagent-request-set-mark): Defined stub.
+
+1999-01-14 23:05:31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-score.el (gnus-score-load-score-alist): Bind
+       coding-system-for-read.
+
+       * gnus-sum.el (gnus-summary-exit): Do adaptive scoring before
+       prepare-exit-hook. 
+
+       * mm-view.el (mm-setup-w3): Require w3.
+
+1999-01-13  Kiyokazu SUTO  <suto@merry.xmath.ous.ac.jp>
+
+       * lisp/nnspool.el (nnspool-retrieve-headers): Protect against empty
+       body.
+
+1999-01-14 21:17:35  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * mm-encode.el: Ditto.
+
+       * mm-bodies.el (mm-decode-content-transfer-encoding): Message the
+       error. 
+
+       * mailcap.el (mailcap-mime-data): SAFER ps.
+
+       * message.el (message-encode-message-body): Always insert a
+       Content-Type header.
+
+       * mm-decode.el (mm-inline-media-tests): Default all text/* to be
+       shown inline.
+
+       * mm-view.el (mm-inline-text): Handle all sorts of text.
+
+       * mailcap.el (mailcap-mime-data): non-viewer for viewers that
+       don't view.
+
+       * mm-decode.el (mm-display-external): Use it.
+
+       * gnus-art.el (gnus-visible-headers): Added bcc, gcc, fcc.
+
+       * mm-decode.el (mm-save-part): Removed double code.
+
+1999-01-12  Dave Love  <fx@gnu.org>
+
+       * mm-decode.el (mm-save-part): Avoid doubly-compressed
+       application/octet-stream .gz & al files with jka-compr.
+
+1999-01-12  Dave Love  <fx@gnu.org>
+
+       * gnus-ems.el (gnus-down-mouse-3): New variable.
+       * gnus-art.el (gnus-mime-button-map): Use it.
+       (gnus-mime-button-menu): Set the clicked-on buffer initially.
+
+1999-01-13 19:41:57  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * mailcap.el (mailcap-mime-data): Added ImageMagic and ee.
+
+1999-01-12 17:34:43  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-picon.el (gnus-picons-kill-buffer): Don't kill article
+       buffers.
+
+       * gnus-sum.el (gnus-summary-exit): Destroy all MIME.
+
+       * gnus-cache.el (gnus-cache-read-active): Reversed check.
+
+1999-01-12 17:18:25  Matt Armstrong  <matta@geoworks.com>
+
+       * mml.el (mml-parameter-string): Strip directory component.
+
+1999-01-12 17:02:58  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.el (gnus-use-demon): Removed.
+
+1999-01-12 05:53:23  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * nnmail.el (nnmail-article-group): Don't infloop.
+
+1999-01-11  Colin Rafferty  <colin@xemacs.org>
+
+       * gnus-art.el (article-update-date-lapsed): Made it work with
+       picons, and make it update on all visible frames.
+       (article-date-ut): Get summary-buffer's current-headers.
+
+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-picons-setup-p): New variable.
+
+1999-01-11 02:13:12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * nnmail.el (nnmail-split-header-length-limit): Lowered to 512.
+
+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-summary-exit-no-update): Use mapcar.
+
+1999-01-02 14:36:32  Simon Josefsson  <jas@pdc.kth.se>
+
+       * gnus-agent.el (gnus-category-write): Make directory.
+
+1998-09-26 19:39:31 Simon Josefsson <jas@pdc.kth.se>
+
+       * 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>
+
+       * mm-bodies.el (mm-body-encoding): Use mm-find.
+
+1999-01-03 15:28:27  Kim-Minh Kaplan  <kmkaplan@western.fr>
+
+       * gnus-picon.el (gnus-article-display-picons): Fix.
+
 Sun Jan  3 13:32:02 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Pterodactyl Gnus v0.69 is released.
index c2b4f82..a75ab30 100644 (file)
@@ -1,5 +1,5 @@
 ;;; dgnushack.el --- a hack to set the load path for byte-compiling
-;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1994,95,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Version: 4.19
index 25675f4..b27acb4 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-agent.el --- unplugged support for Gnus
-;; Copyright (C) 1997,98 Free Software Foundation, Inc.
+;; Copyright (C) 1997,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; This file is part of GNU Emacs.
@@ -1158,6 +1158,7 @@ The following commands are available:
   "Write the category alist."
   (setq gnus-category-predicate-cache nil
        gnus-category-group-cache nil)
+  (gnus-make-directory (nnheader-concat gnus-agent-directory "lib"))
   (with-temp-file (nnheader-concat gnus-agent-directory "lib/categories")
     (prin1 gnus-category-alist (current-buffer))))
 
index db8a2ff..993230e 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-art.el --- article mode commands for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
@@ -125,7 +125,7 @@ If `gnus-visible-headers' is non-nil, this variable will be ignored."
   :group 'gnus-article-hiding)
 
 (defcustom gnus-visible-headers
-  "From:\\|^Newsgroups:\\|^Subject:\\|^Date:\\|^Followup-To:\\|^Reply-To:\\|^Organization:\\|^Summary:\\|^Keywords:\\|^To:\\|^Cc:\\|^Posted-To:\\|^Mail-Copies-To:\\|^Apparently-To:\\|^Gnus-Warning:\\|^Resent-From:\\|X-Sent:"
+  "^From:\\|^Newsgroups:\\|^Subject:\\|^Date:\\|^Followup-To:\\|^Reply-To:\\|^Organization:\\|^Summary:\\|^Keywords:\\|^To:\\|^[BGF]?Cc:\\|^Posted-To:\\|^Mail-Copies-To:\\|^Apparently-To:\\|^Gnus-Warning:\\|^Resent-From:\\|^X-Sent:"
   "*All headers that do not match this regexp will be hidden.
 This variable can also be a list of regexp of headers to remain visible.
 If this variable is non-nil, `gnus-ignored-headers' will be ignored."
@@ -1451,7 +1451,9 @@ If TYPE is `local', convert to local time; if it is `lapsed', output
 how much time has lapsed since DATE."
   (interactive (list 'ut t))
   (let* ((header (or header
-                    (mail-header-date gnus-current-headers)
+                    (mail-header-date (save-excursion
+                                        (set-buffer gnus-summary-buffer)
+                                        gnus-current-headers))
                     (message-fetch-field "date")
                     ""))
         (date (if (vectorp header) (mail-header-date header)
@@ -1604,7 +1606,8 @@ function and want to see what the date was before converting."
           (when (eq major-mode 'gnus-article-mode)
             (goto-char (point-min))
             (when (re-search-forward "^X-Sent:" nil t)
-              (article-date-lapsed t)))))))))
+              (article-date-lapsed t))))
+        nil 'visible)))))
 
 (defun gnus-start-date-timer (&optional n)
   "Start a timer to update the X-Sent header in the article buffers.
@@ -2335,7 +2338,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
   (setq gnus-mime-button-map (make-sparse-keymap))
   (set-keymap-parent gnus-mime-button-map gnus-article-mode-map)
   (define-key gnus-mime-button-map gnus-mouse-2 'gnus-article-push-button)
-  (define-key gnus-mime-button-map gnus-mouse-3 'gnus-mime-button-menu)
+  (define-key gnus-mime-button-map gnus-down-mouse-3 'gnus-mime-button-menu)
   (mapcar (lambda (c)
            (define-key gnus-mime-button-map (cadr c) (car c)))
          gnus-mime-button-commands))
@@ -2343,17 +2346,18 @@ If ALL-HEADERS is non-nil, no headers are hidden."
 (defun gnus-mime-button-menu (event)
   "Construct a context-sensitive menu of MIME commands."
   (interactive "e")
-  (gnus-article-check-buffer)
-  (let ((response (x-popup-menu 
-                  t `("MIME Part" 
-                      ("" ,@(mapcar (lambda (c)
-                                      (cons (caddr c) (car c)))
-                                    gnus-mime-button-commands)))))
-        (pos (event-start event)))
-    (when response
+  (save-excursion
+    (let ((pos (event-start event)))
       (set-buffer (window-buffer (posn-window pos)))
       (goto-char (posn-point pos))
-      (funcall response))))
+      (gnus-article-check-buffer)
+      (let ((response (x-popup-menu 
+                      t `("MIME Part" 
+                          ("" ,@(mapcar (lambda (c)
+                                          (cons (caddr c) (car c)))
+                                        gnus-mime-button-commands))))))
+       (if response
+           (funcall response))))))
 
 (defun gnus-mime-view-all-parts (&optional handles)
   "View all the MIME parts."
@@ -2678,8 +2682,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
                    (not (gnus-unbuttonized-mime-type-p type)))
            (gnus-article-insert-newline)
            (gnus-insert-mime-button
-            handle id (list (or display
-                                (and not-attachment text))))
+            handle id (list (or display (and not-attachment text))))
            (gnus-article-insert-newline)
            (gnus-article-insert-newline)
            (setq move t)))
index 64ad755..6cfc152 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-async.el --- asynchronous support for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index 51c6e7f..9badf94 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-bcklg.el --- backlog functions for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index d7034ca..d677a48 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-cache.el --- cache interface for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
@@ -568,7 +568,7 @@ $ emacs -batch -l ~/.emacs -l gnus -f gnus-jog-cache"
   "Read the cache active file."
   (gnus-make-directory gnus-cache-directory)
   (if (or (not (file-exists-p gnus-cache-active-file))
-         (not (zerop (nth 7 (file-attributes gnus-cache-active-file))))
+         (zerop (nth 7 (file-attributes gnus-cache-active-file)))
          force)
       ;; There is no active file, so we generate one.
       (gnus-cache-generate-active)
index 8866867..db4b9dd 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-cite.el --- parse citations in articles for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Per Abhiddenware; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
index d239dda..178cb66 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-demon.el --- daemonic Gnus behaviour
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
@@ -115,8 +115,7 @@ time Emacs has been idle for IDLE `gnus-demon-timestep's."
                   (nth 2 handler)))
           gnus-demon-handlers))
     (setq gnus-demon-idle-time 0)
-    (setq gnus-demon-idle-has-been-called nil)
-    (setq gnus-use-demon t)))
+    (setq gnus-demon-idle-has-been-called nil)))
 
 (gnus-add-shutdown 'gnus-demon-cancel 'gnus)
 
@@ -126,7 +125,6 @@ time Emacs has been idle for IDLE `gnus-demon-timestep's."
   (when gnus-demon-timer
     (nnheader-cancel-timer gnus-demon-timer))
   (setq gnus-demon-timer nil
-       gnus-use-demon nil
        gnus-demon-idle-has-been-called nil)
   (condition-case ()
       (nnheader-cancel-function-timers 'gnus-demon)
index ab74806..4edb37d 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-draft.el --- draft message support for Gnus
-;; Copyright (C) 1997,98 Free Software Foundation, Inc.
+;; Copyright (C) 1997,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index b289639..691381f 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-dup.el --- suppression of duplicate articles in Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index dff64d7..09f2bb5 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-eform.el --- a mode for editing forms for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index 2438b31..55e5efc 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-ems.el --- functions for making Gnus work under different Emacsen
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
@@ -33,7 +33,7 @@
   "Non-nil if running under XEmacs.")
 
 (defvar gnus-mouse-2 [mouse-2])
-(defvar gnus-mouse-3 [mouse-3])
+(defvar gnus-down-mouse-3 [down-mouse-3])
 (defvar gnus-down-mouse-2 [down-mouse-2])
 (defvar gnus-widget-button-keymap nil)
 (defvar gnus-mode-line-modified
index 93ef915..d4d716e 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-gl.el --- an interface to GroupLens for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Brad Miller <bmiller@cs.umn.edu>
 ;; Keywords: news, score
index be3a549..bef88e8 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-group.el --- group mode commands for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index 4ba7f40..a382bb0 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-int.el --- backend interface functions for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
@@ -320,11 +320,11 @@ If FETCH-OLD, retrieve all headers (or some subset thereof) in the group."
   "Set marks on articles in the backend."
   (let ((gnus-command-method (gnus-find-method-for-group group)))
     (if (not (gnus-check-backend-function
-             'request-set-mark (car gnus-command-method)))
-       action
+             'request-set-mark (car gnus-command-method)))
+       action
       (funcall (gnus-get-function gnus-command-method 'request-set-mark)
-              (gnus-group-real-name group) action
-              (nth 1 gnus-command-method)))))
+              (gnus-group-real-name group) action
+              (nth 1 gnus-command-method)))))
 
 (defun gnus-request-update-mark (group article mark)
   "Allow the backend to change the mark the user tries to put on an article."
index 2e3b064..8c3ff51 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-kill.el --- kill commands for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
index 2c5517a..f345524 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-logic.el --- advanced scoring code for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index fa01f5a..6fabb5c 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-mh.el --- mh-e interface for Gnus
-;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1994,95,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
index f676783..38de4d5 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-move.el --- commands for moving Gnus from one server to another
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
@@ -90,6 +90,8 @@ Update the .newsrc.eld file to reflect the change of nntp server."
        ;; Then we read the headers from the `from-server'.
        (when (and (gnus-request-group group nil from-server)
                   (gnus-active group)
+                  (gnus-uncompress-range
+                   (gnus-active group))
                   (setq type (gnus-retrieve-headers
                               (gnus-uncompress-range
                                (gnus-active group))
index 6cacd68..5022055 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-msg.el --- mail and post interface for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
index 8659779..391b8e0 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-nocem.el --- NoCeM pseudo-cancellation treatment
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index 78f4e3d..5117140 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-picon.el --- displaying pretty icons in Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Wes Hardaker <hardaker@ece.ucdavis.edu>
 ;; Keywords: news xpm annotation glyph faces
@@ -159,6 +159,7 @@ please tell me so that we can list it."
 
 ;;; Internal variables:
 
+(defvar gnus-picons-setup-p nil)
 (defvar gnus-picons-processes-alist nil
   "Picons processes currently running and their environment.")
 (defvar gnus-picons-glyph-alist nil
@@ -212,7 +213,8 @@ arguments necessary for the job.")
 
 (defun gnus-picons-kill-buffer ()
   (let ((buf (get-buffer (gnus-picons-buffer-name))))
-    (when (buffer-live-p buf)
+    (when (and (buffer-live-p buf)
+              (string-match "Picons" (buffer-name buf)))
       (kill-buffer buf))))
 
 (defun gnus-picons-setup-buffer ()
@@ -220,13 +222,13 @@ arguments necessary for the job.")
     (save-excursion
       (if (and (get-buffer name)
               (with-current-buffer name
-                (eq major-mode 'gnus-picons-mode)))
+                gnus-picons-setup-p))
          (set-buffer name)
        (set-buffer (gnus-get-buffer-create name))
        (buffer-disable-undo)
        (setq buffer-read-only t)
        (run-hooks 'gnus-picons-setup-hook)
-       (setq major-mode 'gnus-picons-mode)
+       (set (make-local-variable 'gnus-picons-setup-p) t)
        (add-hook 'gnus-summary-prepare-exit-hook 'gnus-picons-kill-buffer))
       (current-buffer))))
 
@@ -322,14 +324,13 @@ To use:  (setq gnus-article-x-face-command 'gnus-picons-display-x-face)"
          (gnus-picons-prepare-for-annotations)
          (gnus-group-display-picons)
          (unless gnus-picons-display-article-move-p
-           (save-restriction
-             (let ((buffer-read-only nil))
-               (when (re-search-forward "^From: " nil t)
-                 (narrow-to-region (point) (gnus-point-at-eol))
-                 (when (search-forward from nil t)
-                   (gnus-put-text-property
-                    (match-beginning 0) (match-end 0)
-                    'invisible t))))))
+           (let ((buffer-read-only nil)
+                 (case-fold-search t))
+             (when (re-search-forward "^From *: *" nil t)
+               (when (search-forward from (gnus-point-at-eol) t)
+                 (gnus-put-text-property
+                  (match-beginning 0) (match-end 0)
+                  'invisible t)))))
          (if (null gnus-picons-piconsearch-url)
              (progn
                (gnus-picons-display-pairs (gnus-picons-lookup-pairs
@@ -344,7 +345,7 @@ To use:  (setq gnus-article-x-face-command 'gnus-picons-display-x-face)"
                 (gnus-picons-lookup-user username addrs)
                 username t))
            (push (list 'gnus-article-annotations 'search username addrs
-                       gnus-picons-domain-directories t)
+                       gnus-picons-domain-directories t (point-marker))
                  gnus-picons-jobs-alist)
            (gnus-picons-next-job)))))))
 
@@ -359,7 +360,7 @@ To use:  (setq gnus-article-x-face-command 'gnus-picons-display-x-face)"
     (let* ((newsgroups (mail-fetch-field "newsgroups"))
           (groups
            (if (or gnus-picons-display-article-move-p
-                   (not newsgroups))(mail-fetch-field "newsgroups")
+                   (not newsgroups))
                (list (gnus-group-real-name gnus-newsgroup-name))
              (split-string newsgroups ",")))
           group)
@@ -367,15 +368,17 @@ To use:  (setq gnus-article-x-face-command 'gnus-picons-display-x-face)"
        (gnus-picons-prepare-for-annotations)
        (while (setq group (pop groups))
          (unless gnus-picons-display-article-move-p
-           (save-restriction
-             (let ((buffer-read-only nil))
+           (let ((buffer-read-only nil)
+                 (case-fold-search t))
+             (goto-char (point-min))
+             (if (and (re-search-forward "^Newsgroups *: *" nil t)
+                      (search-forward group (gnus-point-at-eol) t))
+                 (gnus-put-text-property
+                  (match-beginning 0) (match-end 0)
+                  'invisible t)
                (goto-char (point-min))
-               (when (re-search-forward "^Newsgroups:" nil t)
-                 (narrow-to-region (point) (gnus-point-at-eol))
-                 (when (search-forward group nil t)
-                   (gnus-put-text-property
-                    (match-beginning 0) (match-end 0)
-                    'invisible t))))))
+               (search-forward "\n\n")
+               (backward-char 1))))
          (if (null gnus-picons-piconsearch-url)
              (gnus-picons-display-pairs
               (gnus-picons-lookup-pairs
@@ -387,7 +390,7 @@ To use:  (setq gnus-article-x-face-command 'gnus-picons-display-x-face)"
                        (if (listp gnus-picons-news-directories)
                            gnus-picons-news-directories
                          (list gnus-picons-news-directories))
-                       nil)
+                       nil (point-marker))
                  gnus-picons-jobs-alist)
            (gnus-picons-next-job))
 
@@ -572,85 +575,98 @@ none, and whose CDR is the corresponding element of DOMAINS."
 
 (defun gnus-picons-parse-value (name)
   (goto-char (point-min))
-  (re-search-forward (concat "<strong>"
+  (if (re-search-forward (concat "<strong>"
                             (regexp-quote name)
-                            "</strong> *= *<kbd> *\\([^ <][^<]*\\) *</kbd>"))
-  (buffer-substring (match-beginning 1) (match-end 1)))
+                            "</strong> *= *<kbd> *\\([^ <][^<]*\\) *</kbd>")
+                        nil t)
+      (buffer-substring (match-beginning 1) (match-end 1))))
 
 (defun gnus-picons-parse-filenames ()
   ;; returns an alist of ((USER ADDRS DB) . URL)
-  (let* ((case-fold-search t)
-        (user (gnus-picons-parse-value "user"))
-        (host (gnus-picons-parse-value "host"))
-        (dbs (message-tokenize-header (gnus-picons-parse-value "db") " "))
-        (start-re
-         (concat
-          ;; dbs
-          "^\\(" (mapconcat 'identity dbs "\\|") "\\)/"
-          ;; host
-          "\\(\\(" (replace-in-string host "\\." "/\\|" t) "/\\|MISC/\\)*\\)"
-          ;; user
-          "\\(" (regexp-quote user) "\\|unknown\\)/"
-          "face\\."))
-        cur-db cur-host cur-user types res)
+  (let ((case-fold-search t)
+       (user (gnus-picons-parse-value "user"))
+       (host (gnus-picons-parse-value "host"))
+       (dbs (message-tokenize-header (gnus-picons-parse-value "db") " "))
+       start-re cur-db cur-host cur-user types res)
     ;; now point will be somewhere in the header.  Find beginning of
     ;; entries
-    (re-search-forward "<p>[ \t\n]*")
-    (while (re-search-forward start-re nil t)
-      (setq cur-db (buffer-substring (match-beginning 1) (match-end 1))
-           cur-host (buffer-substring (match-beginning 2) (match-end 2))
-           cur-user (buffer-substring (match-beginning 4) (match-end 4))
-           cur-host (nreverse (message-tokenize-header cur-host "/")))
-      ;; XXX - KLUDGE: there is a blank picon in news/MISC/unknown
-      (unless (and (string-equal cur-db "news")
-                  (string-equal cur-user "unknown")
-                  (equal cur-host '("MISC")))
-       ;; ok now we have found an entry (USER HOST DB), find the
-       ;; corresponding picon URL
-       (save-restriction
-         ;; restrict region to this entry
-         (narrow-to-region (point) (search-forward "<br>"))
-         (goto-char (point-min))
-         (setq types gnus-picons-file-suffixes)
-         (while (and types
-                     (not (re-search-forward
-                           (concat "<a[ \t\n]+href=\"\\([^\"]*\\."
-                                   (regexp-quote (car types)) "\\)\"")
-                           nil t)))
-           (pop types))
-         (push (cons (list cur-user cur-host cur-db)
-                     (buffer-substring (match-beginning 1) (match-end 1)))
-               res))))
-    (nreverse res)))
+    (when (and user host dbs)
+      (setq start-re
+           (concat
+            ;; dbs
+            "^\\(" (mapconcat 'identity dbs "\\|") "\\)/"
+            ;; host
+            "\\(\\(" (replace-in-string host "\\." "/\\|" t) "/\\|MISC/\\)*\\)"
+            ;; user
+            "\\(" (regexp-quote user) "\\|unknown\\)/"
+            "face\\."))
+      (re-search-forward "<p>[ \t\n]*")
+      (while (re-search-forward start-re nil t)
+       (setq cur-db (buffer-substring (match-beginning 1) (match-end 1))
+             cur-host (buffer-substring (match-beginning 2) (match-end 2))
+             cur-user (buffer-substring (match-beginning 4) (match-end 4))
+             cur-host (nreverse (message-tokenize-header cur-host "/")))
+       ;; XXX - KLUDGE: there is a blank picon in news/MISC/unknown
+       (unless (and (string-equal cur-db "news")
+                    (string-equal cur-user "unknown")
+                    (equal cur-host '("MISC")))
+         ;; ok now we have found an entry (USER HOST DB), find the
+         ;; corresponding picon URL
+         (save-restriction
+           ;; restrict region to this entry
+           (narrow-to-region (point) (search-forward "<br>"))
+           (goto-char (point-min))
+           (setq types gnus-picons-file-suffixes)
+           (while (and types
+                       (not (re-search-forward
+                             (concat "<a[ \t\n]+href=\"\\([^\"]*\\."
+                                     (regexp-quote (car types)) "\\)\"")
+                             nil t)))
+             (pop types))
+           (push (cons (list cur-user cur-host cur-db)
+                       (buffer-substring (match-beginning 1) (match-end 1)))
+                 res))))
+      (nreverse res))))
 
 ;;; picon network display functions :
 
-(defun gnus-picons-network-display-internal (sym-ann glyph part right-p)
-  (gnus-picons-display-picon-or-name glyph part right-p)
+(defun gnus-picons-network-display-internal (sym-ann glyph part right-p marker)
+  (let ((buf (marker-buffer marker))
+       (pos (marker-position marker)))
+    (if (and buf pos)
+       (save-excursion
+         (set-buffer buf)
+         (goto-char pos)
+         (gnus-picons-display-picon-or-name glyph part right-p))))
   (gnus-picons-next-job-internal))
 
-(defun gnus-picons-network-display-callback (url part sym-ann right-p)
+(defun gnus-picons-network-display-callback (url part sym-ann right-p marker)
   (let ((glyph (gnus-picons-make-glyph (cdr (assoc url-current-mime-type
                                                   w3-image-mappings)))))
     (kill-buffer (current-buffer))
     (push (cons url glyph) gnus-picons-glyph-alist)
     ;; only do the job if it has not been preempted.
     (if (equal gnus-picons-job-already-running
-              (list sym-ann 'picon url part right-p))
-       (gnus-picons-network-display-internal sym-ann glyph part right-p)
+              (list sym-ann 'picon url part right-p marker))
+       (gnus-picons-network-display-internal sym-ann glyph part right-p marker)
       (gnus-picons-next-job-internal))))
 
-(defun gnus-picons-network-display (url part sym-ann right-p)
+(defun gnus-picons-network-display (url part sym-ann right-p marker)
   (let ((cache (assoc url gnus-picons-glyph-alist)))
     (if (or cache (null url))
-       (gnus-picons-network-display-internal sym-ann (cdr cache) part right-p)
+       (gnus-picons-network-display-internal
+        sym-ann (cdr cache) part right-p marker)
       (gnus-picons-url-retrieve url 'gnus-picons-network-display-callback
-                               (list url part sym-ann right-p)))))
+                               (list url part sym-ann right-p marker)))))
 
 ;;; search job functions
 
+(defun gnus-picons-display-bar-p ()
+  (and (not (eq gnus-picons-display-where 'article))
+       gnus-picons-display-as-address))
+
 (defun gnus-picons-network-search-internal (user addrs dbs sym-ann right-p
-                                                &optional fnames)
+                                                marker &optional fnames)
   (let (curkey dom pfx url dbs-tmp cache new-jobs)
     ;; First do the domain search
     (dolist (part (if right-p
@@ -679,8 +695,8 @@ none, and whose CDR is the corresponding element of DOMAINS."
        (push (setq cache (cons curkey url)) gnus-picons-url-alist))
       ;; Put this glyph in the job list
       (if (and (not (eq dom part)) gnus-picons-display-as-address)
-         (push (list sym-ann "." right-p) new-jobs))
-      (push (list sym-ann 'picon (cdr cache) part right-p) new-jobs))
+         (push (list sym-ann "." right-p marker) new-jobs))
+      (push (list sym-ann 'picon (cdr cache) part right-p marker) new-jobs))
     ;; next, the user search
     (when user
       (setq curkey (list user dom gnus-picons-user-directories))
@@ -702,27 +718,30 @@ none, and whose CDR is the corresponding element of DOMAINS."
            (push (setq cache (cons curkey (cdr picon)))
                  gnus-picons-url-alist)))
       (if (and gnus-picons-display-as-address new-jobs)
-         (push (list sym-ann "@" right-p) new-jobs))
-      (push (list sym-ann 'picon (cdr cache) user right-p) new-jobs))
-    (if (and gnus-picons-display-as-address (not right-p))
-       (push (list sym-ann 'bar right-p) new-jobs))
+         (push (list sym-ann "@" right-p marker) new-jobs))
+      (push (list sym-ann 'picon (cdr cache) user right-p marker) new-jobs))
+    (if (and (gnus-picons-display-bar-p) (not right-p))
+       (push (list sym-ann 'bar right-p marker) new-jobs))
     ;; only put the jobs in the queue if this job has not been preempted.
     (if (equal gnus-picons-job-already-running
-              (list sym-ann 'search user addrs dbs right-p))
+              (list sym-ann 'search user addrs dbs right-p marker))
        (setq gnus-picons-jobs-alist
-             (nconc (if (and gnus-picons-display-as-address right-p)
-                        (list (list sym-ann 'bar right-p)))
+             (nconc (if (and (gnus-picons-display-bar-p) right-p)
+                        (list (list sym-ann 'bar right-p marker)))
                     (nreverse new-jobs)
                     gnus-picons-jobs-alist)))
     (gnus-picons-next-job-internal)))
 
-(defun gnus-picons-network-search-callback (user addrs dbs sym-ann right-p)
-  (gnus-picons-network-search-internal user addrs dbs sym-ann right-p
-                                      (prog1 (gnus-picons-parse-filenames)
-                                        (kill-buffer (current-buffer)))))
+(defun gnus-picons-network-search-callback (user addrs dbs sym-ann right-p
+                                                marker)
+  (gnus-picons-network-search-internal
+   user addrs dbs sym-ann right-p marker
+   (prog1
+       (gnus-picons-parse-filenames)
+     (kill-buffer (current-buffer)))))
 
 ;; Initiate a query on the picon database
-(defun gnus-picons-network-search (user addrs dbs sym-ann right-p)
+(defun gnus-picons-network-search (user addrs dbs sym-ann right-p marker)
   (let* ((host (mapconcat 'identity addrs "."))
         (key (list (or user "unknown") host (if user
                                                  gnus-picons-user-directories
@@ -740,8 +759,9 @@ none, and whose CDR is the corresponding element of DOMAINS."
                                     dbs)
                                   "+"))
         'gnus-picons-network-search-callback
-        (list user addrs dbs sym-ann right-p))
-      (gnus-picons-network-search-internal user addrs dbs sym-ann right-p))))
+        (list user addrs dbs sym-ann right-p marker))
+      (gnus-picons-network-search-internal
+       user addrs dbs sym-ann right-p marker))))
 
 ;;; Main jobs dispatcher function
 
@@ -752,22 +772,22 @@ none, and whose CDR is the corresponding element of DOMAINS."
           (tag (pop job)))
       (when tag
        (cond
-        ((stringp tag);; (SYM-ANN "..." RIGHT-P)
+        ((stringp tag);; (SYM-ANN "..." RIGHT-P MARKER)
          (gnus-picons-network-display-internal
-          sym-ann nil tag (pop job)))
-        ((eq 'bar tag)
+          sym-ann nil tag (pop job) (pop job)))
+        ((eq 'bar tag);; (SYM-ANN 'bar RIGHT-P MARKER)
          (gnus-picons-network-display-internal
           sym-ann
           (let ((gnus-picons-file-suffixes '("xbm")))
             (gnus-picons-try-face
              gnus-xmas-glyph-directory "bar."))
-          nil (pop job)))
-        ((eq 'search tag);; (SYM-ANN 'search USER ADDRS DBS RIGHT-P)
+          nil (pop job) (pop job)))
+        ((eq 'search tag);; (SYM-ANN 'search USER ADDRS DBS RIGHT-P MARKER)
          (gnus-picons-network-search
-          (pop job) (pop job) (pop job) sym-ann (pop job)))
-        ((eq 'picon tag);; (SYM-ANN 'picon URL PART RIGHT-P)
+          (pop job) (pop job) (pop job) sym-ann (pop job) (pop job)))
+        ((eq 'picon tag);; (SYM-ANN 'picon URL PART RIGHT-P MARKER)
          (gnus-picons-network-display
-          (pop job) (pop job) sym-ann (pop job)))
+          (pop job) (pop job) sym-ann (pop job) (pop job)))
         (t
          (setq gnus-picons-job-already-running nil)
          (error "Unknown picon job tag %s" tag)))))))
index f05a83b..89780a6 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-range.el --- range and sequence functions for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index b50341d..a091834 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-salt.el --- alternate summary mode interfaces for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index ff791fa..f8b1a41 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-score.el --- scoring code for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Per Abrahamsen <amanda@iesd.auc.dk>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -1236,7 +1236,7 @@ EXTRA is the possible non-standard header."
        (setq gnus-score-alist nil)
       ;; Read file.
       (with-temp-buffer
-       (let ((coding-system-for-write score-mode-coding-system))
+       (let ((coding-system-for-read score-mode-coding-system))
          (insert-file-contents file))
        (goto-char (point-min))
        ;; Only do the loading if the score file isn't empty.
index 4e32484..4a49c88 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-soup.el --- SOUP packet writing support for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Per Abrahamsen <abraham@iesd.auc.dk>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
index 0cd6ed1..554b468 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-spec.el --- format spec functions for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index 0f492e8..7eb4982 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-srvr.el --- virtual server support for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index c82d6c5..1ace315 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-start.el --- startup functions for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index 9227b6d..c754177 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-sum.el --- summary mode commands for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
@@ -4296,12 +4296,28 @@ 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 
+                                            gnus-newsgroup-name)
+           ;; score & bookmark are not proper flags (they are cons cells)
+           ;; cache is a internal gnus flag
+           (unless (memq (cdr type) '(cache score bookmark))
+             (let* ((old (cdr (assq (cdr type) (gnus-info-marks info))))
+                    (del (gnus-remove-from-range old list))
+                    (add (gnus-remove-from-range list old)))
+               (if add
+                   (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
                         (set symbol (sort list '<)) t)))
                newmarked)))
 
+      (if delta-marks
+         (gnus-request-set-mark gnus-newsgroup-name delta-marks))
+
       ;; Enter these new marks into the info of the group.
       (if (nthcdr 3 info)
          (setcar (nthcdr 3 info) newmarked)
@@ -5230,6 +5246,10 @@ If FORCE (the prefix), also save the .newsrc file(s)."
 gnus-exit-group-hook is called with no arguments if that value is non-nil."
   (interactive)
   (gnus-set-global-variables)
+  (when (gnus-buffer-live-p gnus-article-buffer)
+    (save-excursion
+      (set-buffer gnus-article-buffer)
+      (mm-destroy-parts gnus-article-mime-handles)))
   (gnus-kill-save-kill-buffer)
   (gnus-async-halt-prefetch)
   (let* ((group gnus-newsgroup-name)
@@ -5237,6 +5257,12 @@ gnus-exit-group-hook is called with no arguments if that value is non-nil."
         (mode major-mode)
          (group-point nil)
         (buf (current-buffer)))
+    (unless quit-config
+      ;; Do adaptive scoring, and possibly save score files.
+      (when gnus-newsgroup-adaptive
+       (gnus-score-adaptive))
+      (when gnus-use-scoring
+       (gnus-score-save)))
     (gnus-run-hooks 'gnus-summary-prepare-exit-hook)
     ;; If we have several article buffers, we kill them at exit.
     (unless gnus-single-article-buffer
@@ -5255,12 +5281,7 @@ gnus-exit-group-hook is called with no arguments if that value is non-nil."
     ;; Make all changes in this group permanent.
     (unless quit-config
       (gnus-run-hooks 'gnus-exit-group-hook)
-      (gnus-summary-update-info)
-      ;; Do adaptive scoring, and possibly save score files.
-      (when gnus-newsgroup-adaptive
-       (gnus-score-adaptive))
-      (when gnus-use-scoring
-       (gnus-score-save)))
+      (gnus-summary-update-info))
     (gnus-close-group group)
     ;; Make sure where we were, and go to next newsgroup.
     (set-buffer gnus-group-buffer)
@@ -5275,10 +5296,6 @@ gnus-exit-group-hook is called with no arguments if that value is non-nil."
     (setq group-point (point))
     (if temporary
        nil                             ;Nothing to do.
-      (when (gnus-buffer-live-p gnus-article-buffer)
-       (save-excursion
-         (set-buffer gnus-article-buffer)
-         (mm-destroy-parts gnus-article-mime-handles)))
       ;; If we have several article buffers, we kill them at exit.
       (unless gnus-single-article-buffer
        (gnus-kill-buffer gnus-article-buffer)
@@ -5322,8 +5339,9 @@ gnus-exit-group-hook is called with no arguments if that value is non-nil."
              gnus-expert-user
              (gnus-y-or-n-p "Discard changes to this group and exit? "))
       (gnus-async-halt-prefetch)
-      (gnus-run-hooks (delq 'gnus-summary-expire-articles 
-                           (copy-list gnus-summary-prepare-exit-hook)))
+      (mapcar 'funcall
+             (delq 'gnus-summary-expire-articles 
+                   (copy-list gnus-summary-prepare-exit-hook)))
       (when (gnus-buffer-live-p gnus-article-buffer)
        (save-excursion
          (set-buffer gnus-article-buffer)
@@ -9120,6 +9138,14 @@ save those articles instead."
               (gnus-info-set-read ',info ',(gnus-info-read info))
               (gnus-get-unread-articles-in-group ',info (gnus-active ,group))
               (gnus-group-update-group ,group t))))
+       ;; Propagate the read marks to the backend.
+       (if (gnus-check-backend-function 'request-set-mark group)
+           (let ((del (gnus-remove-from-range (gnus-info-read info) read))
+                 (add (gnus-remove-from-range read (gnus-info-read info))))
+             (when (or add del)
+               (gnus-request-set-mark
+                group (delq nil (list (if add (list add 'add '(read)))
+                                      (if del (list del 'del '(read)))))))))
        ;; Enter this list into the group info.
        (gnus-info-set-read info read)
        ;; Set the number of unread articles in gnus-newsrc-hashtb.
index 03bb313..be296df 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-topic.el --- a folding minor mode for Gnus group buffers
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Ilja Weis <kult@uni-paderborn.de>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
index 90cf174..6d7e4ab 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-undo.el --- minor mode for undoing in Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index 510f0db..42f9cee 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-util.el --- utility functions for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index 8744e86..d01d3a9 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-uu.el --- extract (uu)encoded files in Gnus
-;; Copyright (C) 1985,86,87,93,94,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 198,995,86,87,93,94,95,96,97,98 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Created: 2 Oct 1993
index bbefaac..6fe4b26 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-vm.el --- vm interface for Gnus
-;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1994,95,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Per Persson <pp@gnu.ai.mit.edu>
 ;; Keywords: news, mail
index c41fbae..2860e1a 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-win.el --- window configuration functions for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index ea31969..df78e61 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-xmas.el --- Gnus functions for XEmacs
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index 1332834..bb9b31e 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus.el --- a newsreader for GNU Emacs
-;; Copyright (C) 1987,88,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1987,88,89,90,93,94,95,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -254,7 +254,7 @@ is restarted, and sometimes reloaded."
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "0.69"
+(defconst gnus-version-number "0.70"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Pterodactyl Gnus v%s" gnus-version-number)
@@ -1150,11 +1150,6 @@ articles.  This is not a good idea."
   :group 'gnus-meta
   :type 'boolean)
 
-(defcustom gnus-use-demon nil
-  "If non-nil, Gnus might use some demons."
-  :group 'gnus-meta
-  :type 'boolean)
-
 (defcustom gnus-use-scoring t
   "*If non-nil, enable scoring."
   :group 'gnus-meta
index dd7f7f0..c28c942 100644 (file)
@@ -1,5 +1,5 @@
 ;;; ietf-drums.el --- Functions for parsing RFC822bis headers
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; This file is part of GNU Emacs.
index 0f7dbcd..6b5d412 100644 (file)
@@ -1,5 +1,5 @@
 ;;; mail-parse.el --- Interface functions for parsing mail
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; This file is part of GNU Emacs.
index eccaf77..d37f393 100644 (file)
@@ -1,5 +1,5 @@
 ;;; mailcap.el --- Functions for displaying MIME parts
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
 
 ;; Author: William M. Perry <wmperry@aventail.com>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -51,6 +51,7 @@
       (type . "application/x-x509-user-cert"))
      ("octet-stream"
       (viewer . mailcap-save-binary-file)
+      (non-viewer . t)
       (type ."application/octet-stream"))
      ("dvi"
       (viewer . "open %s")
@@ -70,6 +71,7 @@
       (type   . "application/emacs-lisp"))
      ("x-tar"
       (viewer . mailcap-save-binary-file)
+      (non-viewer . t)
       (type   . "application/x-tar"))
      ("x-latex"
       (viewer . tex-mode)
@@ -93,6 +95,7 @@
       (type   . "application/tex"))
      ("zip"
       (viewer . mailcap-save-binary-file)
+      (non-viewer . t)
       (type   . "application/zip")
       ("copiousoutput"))
      ("pdf"
       (type   . "application/postscript")
       (test   . (eq (mm-device-type) 'ns)))
      ("postscript"
-      (viewer . "ghostview %s")
+      (viewer . "ghostview -dSAFER %s")
       (type . "application/postscript")
       (test   . (eq (mm-device-type) 'x))
       ("needsx11"))
       (type   . "audio/x-mpeg"))
      (".*"
       (viewer . mailcap-save-binary-file)
+      (non-viewer . t)
       (test   . (or (featurep 'nas-sound)
                      (featurep 'native-sound)))
       (type   . "audio/*"))
       (viewer . "aopen %s")
       (type   . "image/*")
       (test   . (eq (mm-device-type) 'ns)))
+     (".*"
+      (viewer . "display %s")
+      (type . "image/*")
+      (test   . (eq (mm-device-type) 'x))
+      ("needsx11"))
+     (".*"
+      (viewer . "ee %s")
+      (type . "image/*")
+      (test   . (eq (mm-device-type) 'x))
+      ("needsx11"))
      (".*"
       (viewer . "xv -perfect %s")
       (type . "image/*")
index a14960d..c6d5c31 100644 (file)
@@ -1,5 +1,5 @@
 ;;; message.el --- composing mail and news messages
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: mail, news
@@ -483,8 +483,7 @@ the signature is inserted."
 
 ;;;###autoload
 (defcustom message-yank-prefix "> "
-  "*Prefix inserted on the lines of yanked messages.
-nil means use indentation."
+  "*Prefix inserted on the lines of yanked messages."
   :type 'string
   :group 'message-insertion)
 
@@ -4215,7 +4214,7 @@ TYPE is the MIME type to use."
 
 (defun message-encode-message-body ()
   (let ((mm-default-charset message-default-charset)
-       lines multipart-p)
+       lines multipart-p content-type-p)
     (message-goto-body)
     (save-restriction
       (narrow-to-region (point) (point-max))
@@ -4237,6 +4236,9 @@ TYPE is the MIME type to use."
       (when lines
        (insert lines))
       (setq multipart-p 
+           (re-search-backward "^Content-Type: multipart/" nil t))
+      (goto-char (point-max))
+      (setq content-type-p
            (re-search-backward "^Content-Type: multipart/" nil t)))
     (save-restriction
       (message-narrow-to-headers-or-head)
@@ -4245,7 +4247,17 @@ TYPE is the MIME type to use."
     (when multipart-p
       (message-goto-body)
       (insert "This is a MIME multipart message.  If you are reading\n")
-      (insert "this, you shouldn't.\n"))))
+      (insert "this, you shouldn't.\n"))
+    ;; We always make sure that the message has a Content-Type header.
+    ;; This is because some broken MTAs and MUAs get awfully confused
+    ;; when confronted with a message with a MIME-Version header and
+    ;; without a Content-Type header.  For instance, Solaris'
+    ;; /usr/bin/mail.
+    (unless content-type-p
+      (goto-char (point-min))
+      (re-search-forward "^MIME-Version:")
+      (forward-line 1)
+      (insert "Content-Type: text/plain; charset=us-ascii\n"))))
 
 (provide 'message)
 
index 52619dd..5b4cebf 100644 (file)
@@ -1,5 +1,5 @@
 ;;; messagexmas.el --- XEmacs extensions to message
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: mail, news
index 153f76d..c9f0f7d 100644 (file)
@@ -1,5 +1,5 @@
 ;;; messcompat.el --- making message mode compatible with mail mode
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: mail, news
index 09c406d..3ac1aa2 100644 (file)
@@ -1,5 +1,5 @@
 ;;; mm-bodies.el --- Functions for decoding MIME things
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     MORIOKA Tomohiko <morioka@jaist.ac.jp>
@@ -103,7 +103,8 @@ If no encoding was done, nil is returned."
       '7bit))
    (t
     ;; Mule version
-    (if (and (null (delq 'ascii (find-charset-region (point-min) (point-max))))
+    (if (and (null (delq 'ascii
+                        (mm-find-charset-region (point-min) (point-max))))
             ;;!!!The following is necessary because the function
             ;;!!!above seems to return the wrong result under
             ;;!!!Emacs 20.3.  Sometimes.
@@ -120,7 +121,7 @@ If no encoding was done, nil is returned."
 
 (defun mm-decode-content-transfer-encoding (encoding &optional type)
   (prog1
-      (condition-case ()
+      (condition-case error
          (cond
           ((eq encoding 'quoted-printable)
            (quoted-printable-decode-region (point-min) (point-max)))
@@ -138,7 +139,9 @@ If no encoding was done, nil is returned."
            (funcall encoding (point-min) (point-max)))
           (t
            (message "Unknown encoding %s; defaulting to 8bit" encoding)))
-       (error nil))
+       (error
+        (message "Error while decoding: %s" error)
+        nil))
     (when (and
           (memq encoding '(base64 x-uuencode x-binhex))
           (equal type "text/plain"))
index 8889bcb..c6e2129 100644 (file)
@@ -1,5 +1,5 @@
 ;;; mm-decode.el --- Functions for decoding MIME things
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     MORIOKA Tomohiko <morioka@jaist.ac.jp>
@@ -82,6 +82,7 @@
     ("text/richtext" mm-inline-text t)
     ("text/html" mm-inline-text (locate-library "w3"))
     ("message/delivery-status" mm-inline-text t)
+    ("text/.*" mm-inline-text t)
     ("audio/wav" mm-inline-audio
      (and (or (featurep 'nas-sound) (featurep 'native-sound))
          (device-sound-enabled-p)))
@@ -272,9 +273,7 @@ external if displayed external."
              (progn
                (set-buffer (generate-new-buffer "*mm*"))
                (setq method nil))
-           (insert-buffer-substring (mm-handle-buffer handle))
-           (mm-decode-content-transfer-encoding
-            (mm-handle-encoding handle) (car (mm-handle-type handle)))
+           (mm-insert-part handle)
            (let ((win (get-buffer-window cur t)))
              (when win
                (select-window win)))
@@ -283,23 +282,25 @@ external if displayed external."
          (mm-set-buffer-file-coding-system mm-binary-coding-system)
          (insert-buffer-substring cur)
          (message "Viewing with %s" method)
-         (let ((mm (current-buffer)))
+         (let ((mm (current-buffer))
+               (non-viewer (assoc "non-viewer"
+                                  (mailcap-mime-info
+                                   (car (mm-handle-type handle)) t))))
            (unwind-protect
                (if method
                    (funcall method)
                  (mm-save-part handle))
-             (mm-handle-set-undisplayer handle mm))))
+             (unless non-viewer
+               (mm-handle-set-undisplayer handle mm)))))
       ;; The function is a string to be executed.
-      (insert-buffer-substring (mm-handle-buffer handle))
-      (mm-decode-content-transfer-encoding
-       (mm-handle-encoding handle) (car (mm-handle-type handle)))
+      (mm-insert-part handle)
       (let* ((dir (make-temp-name (expand-file-name "emm." mm-tmp-directory)))
             (filename (mail-content-type-get
                        (mm-handle-disposition handle) 'filename))
             (needsterm (assoc "needsterm"
                               (mailcap-mime-info
                                (car (mm-handle-type handle)) t)))
-            process file)
+            process file buffer)
        ;; We create a private sub-directory where we store our files.
        (make-directory dir)
        (set-file-modes dir 448)
@@ -317,11 +318,12 @@ external if displayed external."
                                     "-e" shell-file-name "-c"
                                     (format method
                                             (mm-quote-arg file)))
-                   (start-process "*display*" (generate-new-buffer "*mm*")
+                   (start-process "*display*"
+                                  (setq buffer (generate-new-buffer "*mm*"))
                                   shell-file-name
                                   "-c" (format method
                                                (mm-quote-arg file)))))
-         (mm-handle-set-undisplayer handle (cons file process)))
+         (mm-handle-set-undisplayer handle (cons file buffer)))
        (message "Displaying %s..." (format method file))))))
 
 (defun mm-remove-parts (handles)
@@ -378,7 +380,7 @@ external if displayed external."
                (delete-directory (file-name-directory (car object)))
              (error nil))
            (condition-case ()
-               (kill-process (cdr object))
+               (kill-buffer (cdr object))
              (error nil)))
           ((bufferp object)
            (when (buffer-live-p object)
@@ -473,12 +475,22 @@ This overrides entries in the mailcap file."
 (defun mm-get-part (handle)
   "Return the contents of HANDLE as a string."
   (mm-with-unibyte-buffer
-    (insert-buffer-substring (mm-handle-buffer handle))
-    (mm-decode-content-transfer-encoding
-     (mm-handle-encoding handle)
-     (car (mm-handle-type handle)))
+    (mm-insert-part handle)
     (buffer-string)))
 
+(defun mm-insert-part (handle)
+  "Insert the contents of HANDLE in the current buffer."
+  (let ((cur (current-buffer)))
+    (save-excursion
+      (mm-with-unibyte-buffer
+       (insert-buffer-substring (mm-handle-buffer handle))
+       (mm-decode-content-transfer-encoding
+        (mm-handle-encoding handle)
+        (car (mm-handle-type handle)))
+       (let ((temp (current-buffer)))
+         (set-buffer cur)
+         (insert-buffer temp))))))
+
 (defvar mm-default-directory nil)
 
 (defun mm-save-part (handle)
@@ -496,10 +508,7 @@ This overrides entries in the mailcap file."
                           (or mm-default-directory default-directory))))
     (setq mm-default-directory (file-name-directory file))
     (mm-with-unibyte-buffer
-      (insert-buffer-substring (mm-handle-buffer handle))
-      (mm-decode-content-transfer-encoding
-       (mm-handle-encoding handle)
-       (car (mm-handle-type handle)))
+      (mm-insert-part handle)
       (when (or (not (file-exists-p file))
                (yes-or-no-p (format "File %s already exists; overwrite? "
                                     file)))
@@ -509,7 +518,16 @@ This overrides entries in the mailcap file."
              (if (equal "text" (car (split-string
                                      (car (mm-handle-type handle)) "/")))
                  buffer-file-coding-system
-               'binary)))
+               'binary))
+           ;; Don't re-compress .gz & al.  Arguably we should make
+           ;; `file-name-handler-alist' nil, but that would chop
+           ;; ange-ftp which it's reasonable to use here.
+           (inhibit-file-name-operation 'write-region)
+           (inhibit-file-name-handlers
+            (if (equal (car (mm-handle-type handle))
+                       "application/octet-stream")
+                (cons 'jka-compr-handler inhibit-file-name-handlers)
+              inhibit-file-name-handlers)))
         (write-region (point-min) (point-max) file))))))
 
 (defun mm-pipe-part (handle)
@@ -518,10 +536,7 @@ This overrides entries in the mailcap file."
         (command
          (read-string "Shell command on MIME part: " mm-last-shell-command)))
     (mm-with-unibyte-buffer
-      (insert-buffer-substring (mm-handle-buffer handle))
-      (mm-decode-content-transfer-encoding
-       (mm-handle-encoding handle)
-       (car (mm-handle-type handle)))
+      (mm-insert-part handle)
       (shell-command-on-region (point-min) (point-max) command nil))))
 
 (defun mm-interactively-view-part (handle)
@@ -575,10 +590,7 @@ This overrides entries in the mailcap file."
           (t type)))
     (or (mm-handle-cache handle)
        (mm-with-unibyte-buffer
-         (insert-buffer-substring (mm-handle-buffer handle))
-         (mm-decode-content-transfer-encoding
-          (mm-handle-encoding handle)
-          (car (mm-handle-type handle)))
+         (mm-insert-part handle)
          (prog1
              (setq spec
                    (make-glyph `[,(intern type) :data ,(buffer-string)]))
index 272dc82..b5a4b3b 100644 (file)
@@ -1,5 +1,5 @@
 ;;; mm-encode.el --- Functions for encoding MIME things
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     MORIOKA Tomohiko <morioka@jaist.ac.jp>
       (goto-char (point-min))
       (while (search-forward "\n" nil t)
        (replace-match "\r\n" t t)))
-    (condition-case ()
+    (condition-case error
        (base64-encode-region (point-min) (point-max))
-      (error nil)))
+      (error
+       (message "Error while decoding: %s" error)
+       nil)))
    ((memq encoding '(7bit 8bit binary))
     )
    ((null encoding)
index 6e54b00..aaae62d 100644 (file)
@@ -1,5 +1,5 @@
 ;;; mm-util.el --- Utility functions for MIME things
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     MORIOKA Tomohiko <morioka@jaist.ac.jp>
index 2c06d0e..e7db1ca 100644 (file)
@@ -1,5 +1,5 @@
 ;;; mm-view.el --- Functions for viewing MIME objects
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; This file is part of GNU Emacs.
@@ -42,6 +42,7 @@
 (defvar mm-w3-setup nil)
 (defun mm-setup-w3 ()
   (unless mm-w3-setup
+    (require 'w3)
     (w3-do-setup)
     (require 'url)
     (require 'w3-vars)
   (let ((type (cadr (split-string (car (mm-handle-type handle)) "/")))
        text buffer-read-only)
     (cond
-     ((equal type "plain")
-      (setq text (mm-get-part handle))
-      (let ((b (point))
-           (charset (mail-content-type-get
-                     (mm-handle-type handle) 'charset)))
-       (insert (mm-decode-string text charset))
-       (save-restriction
-         (narrow-to-region b (point))
-         (mm-handle-set-undisplayer
-          handle
-          `(lambda ()
-             (let (buffer-read-only)
-               (delete-region ,(point-min-marker) ,(point-max-marker))))))))
      ((equal type "html")
       (mm-setup-w3)
       (setq text (mm-get-part handle))
          (equal type "richtext"))
       (save-excursion
        (mm-with-unibyte-buffer
-         (insert-buffer-substring (mm-handle-buffer handle))
-         (mm-decode-content-transfer-encoding
-          (mm-handle-encoding handle)
-          (car (mm-handle-type handle)))
+         (mm-insert-part handle)
          (save-window-excursion
            (enriched-decode (point-min) (point-max))
            (setq text (buffer-string)))))
       (mm-insert-inline handle text))
      (t
-      (save-excursion
-       (mm-with-unibyte-buffer
-         (insert-buffer-substring (mm-handle-buffer handle))
-         (mm-decode-content-transfer-encoding
-          (mm-handle-encoding handle)
-          (car (mm-handle-type handle)))
-         (setq text (buffer-string))))
-      (mm-insert-inline handle text)))))
+      (setq text (mm-get-part handle))
+      (let ((b (point))
+           (charset (mail-content-type-get
+                     (mm-handle-type handle) 'charset)))
+       (insert (mm-decode-string text charset))
+       (save-restriction
+         (narrow-to-region b (point))
+         (mm-handle-set-undisplayer
+          handle
+          `(lambda ()
+             (let (buffer-read-only)
+               (delete-region ,(point-min-marker)
+                              ,(point-max-marker)))))))))))
 
 (defun mm-insert-inline (handle text)
   "Insert TEXT inline from HANDLE."
index 6a52d78..100a40d 100644 (file)
@@ -1,5 +1,5 @@
 ;;; mml.el --- A package for parsing and validating MML documents
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; This file is part of GNU Emacs.
 
 (defun mml-insert-mime-headers (cont type charset encoding)
   (let (parameters disposition description)
+    (setq parameters
+         (mml-parameter-string
+          cont '(name access-type expiration size permission)))
     (when (or charset
-             (setq parameters
-                   (mml-parameter-string
-                    cont '(name access-type expiration size permission)))
+             parameters
              (not (equal type "text/plain")))
       (when (consp charset)
        (error
       (when parameters
        (insert parameters))
       (insert "\n"))
+    (setq parameters
+         (mml-parameter-string
+          cont '(filename creation-date modification-date read-date)))
     (when (or (setq disposition (cdr (assq 'disposition cont)))
-             (setq parameters
-                   (mml-parameter-string
-                    cont '(filename creation-date modification-date
-                                    read-date))))
+             parameters)
       (insert "Content-Disposition: " (or disposition "inline"))
       (when parameters
        (insert parameters))
        value type)
     (while (setq type (pop types))
       (when (setq value (cdr (assq type cont)))
+       ;; Strip directory component from the filename parameter. 
+       (when (eq type 'filename)
+         (setq value (file-name-nondirectory value)))
        (setq string (concat string ";\n "
                             (mail-header-encode-parameter
                              (symbol-name type) value)))))
index 15fa72c..9d94eb8 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnagent.el --- offline backend for Gnus
-;; Copyright (C) 1997,98 Free Software Foundation, Inc.
+;; Copyright (C) 1997,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news, mail
   (gnus-agent-insert-meta-information 'news gnus-command-method)
   (gnus-request-accept-article "nndraft:queue" nil t t))
 
+(deffoo nnagent-request-set-mark (group action server)
+  action)
+
 ;; Use nnml functions for just about everything.
 (nnoo-import nnagent
   (nnml))
index 8bdae37..0d71532 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnbabyl.el --- rmail mbox access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
index a3b5eae..a46ad74 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nndir.el --- single directory newsgroup access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index 363a3cc..f6fb02e 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nndoc.el --- single file access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
index e99b8be..095cfe6 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nndraft.el --- draft article access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index 61e8276..e885df6 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nneething.el --- arbitrary file access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
index b6f607b..1818506 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnfolder.el --- mail folder access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Scott Byer <byer@mv.us.adobe.com>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
index 51e20ad..74c556c 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nngateway.el --- posting news via mail gateways
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news, mail
index 5acdc84..ac44b44 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnheader.el --- header access macros for Gnus and its backends
-;; Copyright (C) 1987,88,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 198,997,88,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
index f788042..ecd256b 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnheaderxm.el --- making Gnus backends work under XEmacs
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index b3e8f7d..e84b6f2 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnkiboze.el --- select virtual news access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index bb2b4a9..8fa8c75 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnlistserv.el --- retrieving articles via web mailing list archives
-;; Copyright (C) 1997,98 Free Software Foundation, Inc.
+;; Copyright (C) 1997,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news, mail
index 7151f6f..83fd3e8 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnmail.el --- mail support functions for the Gnus mail backends
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news, mail
@@ -454,7 +454,7 @@ parameter.  It should return nil, `warn' or `delete'."
   :group 'nnmail
   :type '(repeat symbol))
 
-(defcustom nnmail-split-header-length-limit 1024
+(defcustom nnmail-split-header-length-limit 512
   "Header lines longer than this limit are excluded from the split function."
   :group 'nnmail
   :type 'integer)
@@ -1067,10 +1067,10 @@ FUNC will be called with the group name to determine the article number."
        ;; existence to process.
        (goto-char (point-min))
        (while (not (eobp))
-         (end-of-line)
-         (if (> (current-column) nnmail-split-header-length-limit)
-             (delete-region (point) (progn (end-of-line) (point)))
-           (forward-line 1)))
+         (unless (< (move-to-column nnmail-split-header-length-limit)
+                    nnmail-split-header-length-limit)
+           (delete-region (point) (progn (end-of-line) (point))))
+         (forward-line 1))
        ;; Allow washing.
        (goto-char (point-min))
        (run-hooks 'nnmail-split-hook)
index 13fc297..914adfd 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnmbox.el --- mail mbox access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
index 769d865..c41ea70 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnmh.el --- mhspool access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
index 0ed3c34..1867b96 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnml.el --- mail spool access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
index d676f0c..21b17c3 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnoo.el --- OO Gnus Backends
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index f0f4d7c..875134f 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnsoup.el --- SOUP access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
index dd3d89c..9ad2b4f 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnspool.el --- spool access for GNU Emacs
-;; Copyright (C) 1988,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 198,998,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -136,9 +136,14 @@ there.")
              (setq beg (point))
              (inline (nnheader-insert-head file))
              (goto-char beg)
-             (search-forward "\n\n" nil t)
-             (forward-char -1)
-             (insert ".\n")
+             (if (search-forward "\n\n" nil t)
+                 (progn
+                   (forward-char -1)
+                   (insert ".\n"))
+               (goto-char (point-max))
+               (if (bolp)
+                   (insert ".\n")
+                 (insert "\n.\n")))
              (delete-region (point) (point-max)))
 
            (and do-message
index 9539b46..a82bb0e 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nntp.el --- nntp access for Gnus
-;;; Copyright (C) 1987-90,92-98 Free Software Foundation, Inc.
+;;; Copyright (C) 1987-90,92-99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index 1a676ea..ca92c68 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnvirtual.el --- virtual newsgroups access for Gnus
-;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1994,95,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: David Moore <dmoore@ucsd.edu>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
index 42dc338..d46aefd 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnweb.el --- retrieving articles via web search engines
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
index 4671451..a529868 100644 (file)
@@ -1,5 +1,5 @@
 ;;; qp.el --- Quoted-Printable functions
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; This file is part of GNU Emacs.
   (save-excursion
     (goto-char from)
     (while (search-forward "=" to t)
-      (cond ((eq (char-after) ?\n)
-            (delete-char -1)
-            (delete-char 1))
-           ((and
-             (memq (char-after) quoted-printable-encoding-characters)
-             (memq (char-after (1+ (point)))
-                   quoted-printable-encoding-characters))
-            (subst-char-in-region
-             (1- (point)) (point) ?=
-             (string-to-number
-              (buffer-substring (point) (+ 2 (point)))
-              16))
-            (delete-char 2))
-           ((looking-at "=")
-            (delete-char 1))
-           ((message "Malformed MIME quoted-printable message"))))))
+      (cond
+       ;; End of the line.
+       ((eq (char-after) ?\n)
+       (delete-char -1)
+       (delete-char 1))
+       ;; Encoded character.
+       ((and
+        (memq (char-after) quoted-printable-encoding-characters)
+        (memq (char-after (1+ (point)))
+              quoted-printable-encoding-characters))
+       (subst-char-in-region
+        (1- (point)) (point) ?=
+        (string-to-number
+         (buffer-substring (point) (+ 2 (point)))
+         16))
+       (delete-char 2))
+       ;; Quoted equal sign.
+       ((eq (char-after) ?=)
+       (delete-char 1))
+       ;; End of buffer.
+       ((eobp)
+       (delete-char -1))
+       ;; Invalid.
+       (t
+       (message "Malformed MIME quoted-printable message"))))))
 
 (defun quoted-printable-decode-string (string)
  "Decode the quoted-printable-encoded STRING and return the results."
index c8028db..1a5950d 100644 (file)
@@ -1,5 +1,5 @@
 ;;; rfc2045.el --- Functions for decoding rfc2045 headers
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; This file is part of GNU Emacs.
index 84204e5..5d44dc3 100644 (file)
@@ -1,5 +1,5 @@
 ;;; rfc2047.el --- Functions for encoding and decoding rfc2047 messages
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     MORIOKA Tomohiko <morioka@jaist.ac.jp>
index 2caec5e..6212cc0 100644 (file)
@@ -1,5 +1,5 @@
 ;;; rfc2231.el --- Functions for decoding rfc2231 headers
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; This file is part of GNU Emacs.
@@ -45,6 +45,9 @@ The list will be on the form
                        (mail-header-remove-comments string)))
       (let ((table (copy-syntax-table ietf-drums-syntax-table)))
        (modify-syntax-entry ?\' "w" table)
+       ;; The following isn't valid, but one should be liberal
+       ;; in what one receives.
+       (modify-syntax-entry ?\: "w" table)
        (set-syntax-table table))
       (setq c (char-after))
       (when (and (memq c ttoken)
index ac1a65f..fd42472 100644 (file)
@@ -1,5 +1,5 @@
 ;;; smiley.el --- displaying smiley faces
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: Wes Hardaker <hardaker@ece.ucdavis.edu>
 ;; Keywords: fun
index db7a35e..0a55481 100644 (file)
@@ -1,5 +1,5 @@
 ;;; time-date.el --- Date and time handling functions
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     Masanobu Umeda <umerin@mse.kyutech.ac.jp>
index 228deae..4c0adf9 100644 (file)
@@ -1,3 +1,7 @@
+1999-01-12 07:14:12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.texi (To From Newsgroups): Addition.
+
 1999-01-03 13:54:51  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus.texi (Group Agent Commands): Addition.
index a5121d9..6e785aa 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Pterodactyl Gnus 0.69 Manual
+@settitle Pterodactyl Gnus 0.70 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.69 Manual
+@title Pterodactyl Gnus 0.70 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.69.
+This manual corresponds to Pterodactyl Gnus 0.70.
 
 @end ifinfo
 
@@ -3474,7 +3474,14 @@ headers are used instead.
 
 @vindex nnmail-extra-headers
 A related variable is @code{nnmail-extra-headers}, which controls when
-to include extra headers when generating overview (@sc{nov}) files.
+to include extra headers when generating overview (@sc{nov}) files.  If
+you have old overview files, you should regenerate them after changing
+this variable.
+
+@vindex gnus-summary-line-format
+You also have to instruct Gnus to display the data by changing the
+@code{%n} spec to the @code{%f} spec in the
+@code{gnus-summary-line-format} variable.
 
 In summary, you'd typically do something like the following:
 
@@ -14747,16 +14754,8 @@ should have a frame parameter alist as the size spec.
 Reference Manual}.  Under XEmacs, a frame property list will be
 accepted, too---for instance, @code{(height 5 width 15 left -1 top 1)}
 is such a plist.
-
-Here's a list of all possible keys for
-@code{gnus-buffer-configuration}:
-
-@code{group}, @code{summary}, @code{article}, @code{server},
-@code{browse}, @code{message}, @code{pick}, @code{info},
-@code{summary-faq}, @code{edit-group}, @code{edit-server},
-@code{edit-score}, @code{post}, @code{reply}, @code{forward},
-@code{reply-yank}, @code{mail-bounce}, @code{draft}, @code{pipe},
-@code{bug}, @code{compose-bounce}, and @code{score-trace}.
+The list of all possible keys for @code{gnus-buffer-configuration} can
+be found in its default value.
 
 Note that the @code{message} key is used for both
 @code{gnus-group-mail} and @code{gnus-summary-mail-other-window}.  If
@@ -14772,6 +14771,20 @@ might be used:
                                (group 1.0)))))
 @end lisp
 
+One common desire for a multiple frame split is to have a separate frame 
+for composing mail and news while leaving the original frame intact.  To 
+accomplish that, something like the following can be done:
+
+@lisp
+(message (frame 1.0
+                (if (not (buffer-live-p gnus-summary-buffer))
+                    (car (cdr (assoc 'group gnus-buffer-configuration)))
+                  (car (cdr (assoc 'summary gnus-buffer-configuration))))
+                (vertical ((user-position . t) (top . 1) (left . 1)
+                           (name . "Message"))
+                          (message 1.0 point))))
+@end lisp
+
 @findex gnus-add-configuration
 Since the @code{gnus-buffer-configuration} variable is so long and
 complicated, there's a function you can use to ease changing the config
@@ -15089,10 +15102,6 @@ time.  Modified by the @var{idle} parameter, of course.
 seconds.  This is 60 by default.  If you change that variable,
 all the timings in the handlers will be affected.)
 
-@vindex gnus-use-demon
-To set the whole thing in motion, though, you have to set
-@code{gnus-use-demon} to @code{t}.
-
 So, if you want to add a handler, you could put something like this in
 your @file{.gnus} file:
 
@@ -16382,6 +16391,7 @@ Russ Allbery,
 Peter Arius,
 Matt Armstrong,
 Marc Auslander,
+Miles Bader,
 Frank Bennett,
 Robert Bihlmeyer,
 Chris Bone,
@@ -16412,6 +16422,7 @@ Joev Dubach,
 Michael Welsh Duggan,
 Dave Edmondson,
 Paul Eggert,
+Karl Eichwalder,
 Enami Tsugutomo, @c Enami
 Michael Ernst,
 Luc Van Eycken,
@@ -16426,6 +16437,7 @@ Guy Geens,
 Arne Georg Gleditsch,
 David S. Goldberg,
 Michelangelo Grigni,
+Dale Hagglund,
 D. Hall,
 Magnus Hammerin,
 Kenichi Handa, @c Handa
@@ -16456,6 +16468,7 @@ Thor Kristoffersen,
 Jens Lautenbacher,
 Martin Larose,
 Seokchan Lee, @c Lee
+Joerg Lenneis,
 Carsten Leonhardt,
 James LewisMoss,
 Christian Limpach,
@@ -16487,6 +16500,7 @@ Stephen Peters,
 Jens-Ulrik Holger Petersen,
 Ulrich Pfeifer,
 Matt Pharr,
+Andy Piper,
 John McClary Prevost,
 Bill Pringlemeir,
 Mike Pullen,
@@ -16499,6 +16513,7 @@ Renaud Rioboo,
 Roland B. Roberts,
 Bart Robinson,
 Christian von Roques,
+Markus Rost,
 Jason Rumney,
 Wolfgang Rupprecht,
 Jay Sachs,
@@ -16521,6 +16536,7 @@ Darren Stalder,
 Richard Stallman,
 Greg Stark,
 Sam Steingold,
+Jonas Steverud,
 Paul Stodghill,
 Kurt Swanson,
 Samuel Tardieu,
@@ -16537,9 +16553,12 @@ Stefan Waldherr,
 Pete Ware,
 Barry A. Warsaw,
 Christoph Wedler,
-Joe Wells
+Joe Wells,
+Lee Willis,
+Katsumi Yamaoka @c Yamaoka
 and
-Katsumi Yamaoka, @c Yamaoka.
+Lloyd Zusman.
+
 
 For a full overview of what each person has done, the ChangeLogs
 included in the Gnus alpha distributions should give ample reading
@@ -18451,6 +18470,10 @@ Fetch by Message-ID from dejanews.
 
 <URL:http://search.dejanews.com/msgid.xp?MID=%3C62h9l9$hm4@@basement.replay.com%3E&fmt=raw>
 
+@item
+A spec for the group line format to display the number of
+agent-downloaded articles in the group.
+
 @item
 Solve the halting problem.
 
index 2db59ba..ad86c62 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message
-@settitle Pterodactyl Message 0.69 Manual
+@settitle Pterodactyl Message 0.70 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.69 Manual
+@title Pterodactyl Message 0.70 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.69.  Message is
+This manual corresponds to Pterodactyl Message 0.70.  Message is
 distributed with the Gnus distribution bearing the same version number
 as this manual.
 
@@ -487,7 +487,6 @@ When you are replying to or following up an article, you normally want
 to quote the person you are answering.  Inserting quoted text is done by
 @dfn{yanking}, and each quoted line you yank will have
 @code{message-yank-prefix} prepended to it.  The default is @samp{> }.
-If it is @code{nil}, just indent the message.
 
 @item message-indentation-spaces
 @vindex message-indentation-spaces