Importing pgnus-0.69
authorichikawa <ichikawa>
Mon, 4 Jan 1999 06:49:14 +0000 (06:49 +0000)
committerichikawa <ichikawa>
Mon, 4 Jan 1999 06:49:14 +0000 (06:49 +0000)
25 files changed:
lisp/ChangeLog
lisp/binhex.el
lisp/gnus-agent.el
lisp/gnus-art.el
lisp/gnus-msg.el
lisp/gnus-picon.el
lisp/gnus-range.el
lisp/gnus-uu.el
lisp/gnus.el
lisp/lpath.el
lisp/mailcap.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/nnmail.el
lisp/nnsoup.el
lisp/rfc2047.el
lisp/rfc2231.el
lisp/uudecode.el
texi/ChangeLog
texi/gnus.texi
texi/message.texi

index 1b2cead..2f08e83 100644 (file)
@@ -1,3 +1,139 @@
+Sun Jan  3 13:32:02 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Pterodactyl Gnus v0.69 is released.
+
+1999-01-03 06:45:10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-picon.el (gnus-picons-setup-buffer): Run the hook.
+
+       * gnus-agent.el (gnus-agent-remove-group): New command and
+       keystroke. 
+
+       * rfc2047.el (rfc2047-decode-region): Check for us-ascii.
+
+1999-01-02 14:12:41  Simon Josefsson  <jas@pdc.kth.se>
+
+       * gnus-agent.el (gnus-agent-write-servers): Make directory.
+
+1998-12-26 02:38:01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * mm-view.el (mm-inline-text): Bind current id.
+
+       * mm-decode.el (mm-handle-id): New macro.
+       (mm-make-handle): Accept id.
+       (mm-dissect-singlepart): Use it.
+
+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-cite-original-without-signature.
+
+1998-12-24 16:25:38  Simon Josefsson  <jas@pdc.kth.se>
+
+       * gnus.el (gnus-server-to-method): Check named methods.
+
+1998-12-24 03:27:02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * mm-view.el (mm-view-message): Goto point-min.
+
+       * nnmail.el (nnmail-article-group): Don't delete lines, only
+       shorten them.
+
+       * gnus-msg.el (gnus-configure-posting-styles): Also do nil
+       values.
+       
+       * nnheader.el (nnheader-temp-directory): New variable.
+       (nnheader-temp-directory): Removed.
+
+1998-12-22  Jack Vinson  <jvinson@chevax.ecs.umass.edu>
+
+       * mailcap.el (mailcap-parse-mailcaps): Add "~/.mailcaps" to the
+       list of files to check for mailcap entries under windows-nt.
+
+1998-12-24 03:02:15  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-art.el (gnus-article-maybe-hide-headers): Check whether the 
+       summary buffer exists.
+
+1998-12-22  Aaron M. Ucko  <amu@mit.edu>
+
+       * nnsoup.el (nnsoup-store-reply): Remove code to deal with
+       irrelevant Sun sendmail bug.
+       (nnsoup-store-reply): Stop mucking with mail-header-separator.
+
+       * message.el (message-send-news): Bind mail-header-separator to
+       "" when asking backend to post.
+
+1998-12-22  Karl Kleinpaste  <karl@justresearch.com>
+
+       * mm-uu.el (mm-dissect-disposition): New variable.
+       (mm-uu-dissect): Use it.
+
+1998-12-21 21:34:22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * mm-view.el (mm-inline-text): Bind url-current-object. 
+
+1998-12-06 03:05:41  Simon Josefsson  <jas@pdc.kth.se>
+
+       * gnus-range.el (gnus-remove-from-range): Rewrite.
+
+1998-12-09  SL Baur  <steve@altair.xemacs.org>
+
+       * gnus-picon.el (annotations): Remove bogus require 'xpm.
+
+1998-12-18  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * message.el (message-encode-message-body): Insert `MIME-Version'
+       instead of `Mime-Version'.
+
+1998-12-04  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * message.el (message-insert-mime-part): Add the attachment
+       disposition.
+       (message-insert-mime-part): Make TYPE and DESCRIPTION optional.
+       (message-mime-query-type): New function.
+       (message-mime-query-description): Ditto.
+       (message-mime-query-file): Ditto.
+       (message-insert-mime-part): Use them.
+       (message-mime-insert-external): Use the new stuff.
+
+1998-12-19 23:02:26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * 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-dissect-region): Ditto.
+
+1998-12-17 18:36:43  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * mm-view.el (mm-view-message): Decode charset.
+
+1998-12-16 16:01:22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * rfc2231.el (rfc2231-parse-string): Ignore syntactically invalid
+       CT headers. 
+
+Wed Dec 16 01:44:40 1998  Shenghuo ZHU  <zsh@cs.rochester.edu>
+
+       * mm-bodies.el (mm-decode-content-transfer-encoding): Use
+       mm-uu-*-function.
+       * mm-uu.el (mm-uu-dissect): Use x-uuencode.
+
+1998-12-16 10:20:52  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * message.el (message-send-mail): Do MML first.
+       (message-send-news): Ditto.
+
+1998-12-15 20:57:18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-picon.el (gnus-picons-face): New face.
+       (gnus-picons-try-face): Use it.
+
 Tue Dec 15 19:17:43 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Pterodactyl Gnus v0.68 is released.
 Tue Dec 15 19:17:43 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Pterodactyl Gnus v0.68 is released.
index 6d5a659..d2482aa 100644 (file)
@@ -3,7 +3,7 @@
 
 ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
 ;; Create Date: Oct 1, 1998
 
 ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
 ;; Create Date: Oct 1, 1998
-;; $Revision: 1.1.1.4 $
+;; $Revision: 1.1.1.5 $
 ;; Time-stamp: <Tue Oct  6 23:48:38 EDT 1998 zsh>
 ;; Keywords: binhex
   
 ;; Time-stamp: <Tue Oct  6 23:48:38 EDT 1998 zsh>
 ;; Keywords: binhex
   
@@ -63,7 +63,10 @@ input and write the converted data to its standard output.")
   "^[^:]...............................................................$")
 (defconst binhex-end-line ":$")
 
   "^[^:]...............................................................$")
 (defconst binhex-end-line ":$")
 
-(defvar binhex-temporary-file-directory "/tmp/")
+(defvar binhex-temporary-file-directory
+  (cond ((fboundp 'temp-directory) (temp-directory))
+       ((boundp 'temporary-file-directory) temporary-file-directory)
+       ("/tmp/")))
 
 (if (string-match "XEmacs" emacs-version)
     (defalias 'binhex-insert-char 'insert-char)
 
 (if (string-match "XEmacs" emacs-version)
     (defalias 'binhex-insert-char 'insert-char)
index d0d73b5..25675f4 100644 (file)
@@ -224,7 +224,8 @@ for download via the Agent.")
   "Jj" gnus-agent-toggle-plugged
   "Js" gnus-agent-fetch-session
   "JS" gnus-group-send-drafts
   "Jj" gnus-agent-toggle-plugged
   "Js" gnus-agent-fetch-session
   "JS" gnus-group-send-drafts
-  "Ja" gnus-agent-add-group)
+  "Ja" gnus-agent-add-group
+  "Jr" gnus-agent-remove-group)
 
 (defun gnus-agent-group-make-menu-bar ()
   (unless (boundp 'gnus-agent-group-menu)
 
 (defun gnus-agent-group-make-menu-bar ()
   (unless (boundp 'gnus-agent-group-menu)
@@ -400,6 +401,16 @@ be a select method."
     (setf (cadddr cat) (nconc (cadddr cat) groups))
     (gnus-category-write)))
 
     (setf (cadddr cat) (nconc (cadddr cat) groups))
     (gnus-category-write)))
 
+(defun gnus-agent-remove-group (arg)
+  "Remove the current group from its agent category, if any."
+  (interactive "P")
+  (let (c)
+    (gnus-group-iterate arg
+      (lambda (group)
+       (when (cadddr (setq c (gnus-group-category group)))
+         (setf (cadddr c) (delete group (cadddr c))))))
+    (gnus-category-write)))
+
 ;;;
 ;;; Server mode commands
 ;;;
 ;;;
 ;;; Server mode commands
 ;;;
@@ -437,6 +448,7 @@ be a select method."
 
 (defun gnus-agent-write-servers ()
   "Write the alist of covered servers."
 
 (defun gnus-agent-write-servers ()
   "Write the alist of covered servers."
+  (gnus-make-directory (nnheader-concat gnus-agent-directory "lib"))
   (with-temp-file (nnheader-concat gnus-agent-directory "lib/servers")
     (prin1 gnus-agent-covered-methods (current-buffer))))
 
   (with-temp-file (nnheader-concat gnus-agent-directory "lib/servers")
     (prin1 gnus-agent-covered-methods (current-buffer))))
 
index 9a90823..db8a2ff 100644 (file)
@@ -559,14 +559,13 @@ displayed by the first non-nil matching CONTENT face."
     ("\205" "...")
     ("\213" "<")
     ("\214" "OE")
     ("\205" "...")
     ("\213" "<")
     ("\214" "OE")
-    ("\205" "...")
     ("\221" "`")
     ("\222" "'")
     ("\223" "``")
     ("\224" "''")
     ("\225" "*")
     ("\226" "-")
     ("\221" "`")
     ("\222" "'")
     ("\223" "``")
     ("\224" "''")
     ("\225" "*")
     ("\226" "-")
-    ("\227" "-")
+    ("\227" "-") 
     ("\231" "(TM)")
     ("\233" ">")
     ("\234" "oe")
     ("\231" "(TM)")
     ("\233" ">")
     ("\234" "oe")
@@ -2824,9 +2823,11 @@ If ALL-HEADERS is non-nil, no headers are hidden."
 (defun gnus-article-maybe-hide-headers ()
   "Hide unwanted headers if `gnus-have-all-headers' is nil.
 Provided for backwards compatibility."
 (defun gnus-article-maybe-hide-headers ()
   "Hide unwanted headers if `gnus-have-all-headers' is nil.
 Provided for backwards compatibility."
-  (or (save-excursion (set-buffer gnus-summary-buffer) gnus-have-all-headers)
-      gnus-inhibit-hiding
-      (gnus-article-hide-headers)))
+  (when (and (or (not (gnus-buffer-live-p gnus-summary-buffer))
+                (not (save-excursion (set-buffer gnus-summary-buffer)
+                                     gnus-have-all-headers)))
+            (not gnus-inhibit-hiding))
+    (gnus-article-hide-headers)))
 
 ;;; Article savers.
 
 
 ;;; Article savers.
 
index ebfa105..6cacd68 100644 (file)
@@ -1125,21 +1125,20 @@ this is a reply."
                  (set (make-local-variable variable) value-value)
                ;; This is either a body or a header to be inserted in the
                ;; message.
                  (set (make-local-variable variable) value-value)
                ;; This is either a body or a header to be inserted in the
                ;; message.
-               (when value-value
-                 (let ((attr (car attribute)))
-                   (make-local-variable 'message-setup-hook)
-                   (if (eq 'body attr)
-                       (add-hook 'message-setup-hook
-                                 `(lambda ()
-                                    (save-excursion
-                                      (message-goto-body)
-                                      (insert ,value-value))))
+               (let ((attr (car attribute)))
+                 (make-local-variable 'message-setup-hook)
+                 (if (eq 'body attr)
                      (add-hook 'message-setup-hook
                      (add-hook 'message-setup-hook
-                               'gnus-message-insert-stylings)
-                     (push (cons (if (stringp attr) attr
-                                   (symbol-name attr))
-                                 value-value)
-                           gnus-message-style-insertions))))))))))))
+                               `(lambda ()
+                                  (save-excursion
+                                    (message-goto-body)
+                                    (insert ,value-value))))
+                   (add-hook 'message-setup-hook
+                             'gnus-message-insert-stylings)
+                   (push (cons (if (stringp attr) attr
+                                 (symbol-name attr))
+                               value-value)
+                         gnus-message-style-insertions)))))))))))
 
 (defun gnus-message-insert-stylings ()
   (let (val)
 
 (defun gnus-message-insert-stylings ()
   (let (val)
index 1fd1f06..78f4e3d 100644 (file)
@@ -26,7 +26,7 @@
 ;;; Code:
 
 (require 'gnus)
 ;;; Code:
 
 (require 'gnus)
-(require 'xpm)
+;; (require 'xpm)
 (require 'annotations)
 (require 'custom)
 (require 'gnus-art)
 (require 'annotations)
 (require 'custom)
 (require 'gnus-art)
@@ -148,6 +148,10 @@ please tell me so that we can list it."
   "Face to show xbm picons in."
   :group 'picons)
 
   "Face to show xbm picons in."
   :group 'picons)
 
+(defface gnus-picons-face '((t (:foreground "black" :background "white")))
+  "Face to show picons in."
+  :group 'picons)
+
 (defcustom gnus-picons-setup-hook nil
   "Hook run in Picons buffers."
   :group 'picons
 (defcustom gnus-picons-setup-hook nil
   "Hook run in Picons buffers."
   :group 'picons
@@ -214,12 +218,15 @@ arguments necessary for the job.")
 (defun gnus-picons-setup-buffer ()
   (let ((name (gnus-picons-buffer-name)))
     (save-excursion
 (defun gnus-picons-setup-buffer ()
   (let ((name (gnus-picons-buffer-name)))
     (save-excursion
-      (if (get-buffer name)
+      (if (and (get-buffer name)
+              (with-current-buffer name
+                (eq major-mode 'gnus-picons-mode)))
          (set-buffer name)
        (set-buffer (gnus-get-buffer-create name))
        (buffer-disable-undo)
        (setq buffer-read-only t)
        (run-hooks 'gnus-picons-setup-hook)
          (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)
        (add-hook 'gnus-summary-prepare-exit-hook 'gnus-picons-kill-buffer))
       (current-buffer))))
 
        (add-hook 'gnus-summary-prepare-exit-hook 'gnus-picons-kill-buffer))
       (current-buffer))))
 
@@ -476,8 +483,9 @@ none, and whose CDR is the corresponding element of DOMAINS."
                                    dir)))
        (setq suffixes nil
              glyph (make-glyph f))
                                    dir)))
        (setq suffixes nil
              glyph (make-glyph f))
-       (when (equal suf "xbm")
-         (set-glyph-face glyph 'gnus-picons-xbm-face))
+       (if (equal suf "xbm")
+           (set-glyph-face glyph 'gnus-picons-xbm-face)
+         (set-glyph-face glyph 'gnus-picons-face))
        (push (cons key glyph) gnus-picons-glyph-alist)))
     glyph))
 
        (push (cons key glyph) gnus-picons-glyph-alist)))
     glyph))
 
index 895505e..f05a83b 100644 (file)
@@ -224,13 +224,75 @@ Note: LIST has to be sorted over `<'."
        (setq ranges (cdr ranges)))
       out)))
 
        (setq ranges (cdr ranges)))
       out)))
 
-(defun gnus-remove-from-range (ranges list)
-  "Return a list of ranges that has all articles from LIST removed from RANGES.
-Note: LIST has to be sorted over `<'."
-  ;; !!! This function shouldn't look like this, but I've got a headache.
-  (gnus-compress-sequence
-   (gnus-set-difference
-    (gnus-uncompress-range ranges) list)))
+(defun gnus-remove-from-range (range1 range2)
+  "Return a range that has all articles from RANGE2 removed from
+RANGE1. The returned range is always a list."
+  (if (or (null range1) (null range2))
+      range1
+    (let (out r1 r2 r1_min r1_max r2_min r2_max)
+      (setq range1 (if (listp (cdr range1)) range1 (list range1))
+           range2 (if (listp (cdr range2)) range2 (list range2))
+           r1 (car range1)
+           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)
+           r2_max (if (consp r2) (cdr r2) r2))
+      (while (and range1 range2)
+       (cond ((< r2_max r1_min)                           ; r2 < r1
+              (pop range2)
+              (setq r2 (car range2)
+                    r2_min (if (consp r2) (car r2) r2)
+                    r2_max (if (consp r2) (cdr r2) r2)))
+             ((and (<= r2_min r1_min) (<= r1_max r2_max)) ; r2 overlap r1
+              (pop range1)
+              (setq r1 (car range1)
+                    r1_min (if (consp r1) (car r1) r1)
+                    r1_max (if (consp r1) (cdr r1) r1)))
+             ((and (<= r2_min r1_min) (<= r2_max r1_max)) ; r2 overlap min r1
+              (pop range2)
+              (setq r1_min (1+ r2_max)
+                    r2 (car range2)
+                    r2_min (if (consp r2) (car r2) r2)
+                    r2_max (if (consp r2) (cdr r2) r2)))
+             ((and (<= r1_min r2_min) (<= r2_max r1_max)) ; r2 contained in r1
+              (if (eq r1_min (1- r2_min))
+                  (push r1_min out)
+                (push (cons r1_min (1- r2_min)) out))
+              (pop range2)
+              (if (< r2_max r1_max) ; finished with r1?
+                  (setq r1_min (1+ r2_max))
+                (pop range1)
+                (setq r1 (car range1)
+                      r1_min (if (consp r1) (car r1) r1)
+                      r1_max (if (consp r1) (cdr r1) r1)))
+              (setq r2 (car range2)
+                    r2_min (if (consp r2) (car r2) r2)
+                    r2_max (if (consp r2) (cdr r2) r2)))
+             ((and (<= r2_min r1_max) (<= r1_max r2_max)) ; r2 overlap max r1
+              (if (eq r1_min (1- r2_min))
+                  (push r1_min out)
+                (push (cons r1_min (1- r2_min)) out))
+              (pop range1)
+              (setq r1 (car range1)
+                    r1_min (if (consp r1) (car r1) r1)
+                    r1_max (if (consp r1) (cdr r1) r1)))
+             ((< r1_max r2_min)                           ; r2 > r1
+              (pop range1)
+              (if (eq r1_min r1_max)
+                  (push r1_min out)
+                (push (cons r1_min r1_max) out))
+              (setq r1 (car range1)
+                    r1_min (if (consp r1) (car r1) r1)
+                    r1_max (if (consp r1) (cdr r1) r1)))))
+      (when r1
+       (if (eq r1_min r1_max)
+           (push r1_min out)
+         (push (cons r1_min r1_max) out))
+       (pop range1))
+      (while range1
+        (push (pop range1) out))
+      (nreverse out))))
 
 (defun gnus-member-of-range (number ranges)
   (if (not (listp (cdr ranges)))
 
 (defun gnus-member-of-range (number ranges)
   (if (not (listp (cdr ranges)))
index 19f07a2..8744e86 100644 (file)
@@ -216,7 +216,10 @@ Note that this variable can be used in conjunction with the
 
 ;; Various variables users may set
 
 
 ;; Various variables users may set
 
-(defcustom gnus-uu-tmp-dir "/tmp/"
+(defcustom gnus-uu-tmp-dir
+  (cond ((fboundp 'temp-directory) (temp-directory))
+       ((boundp 'temporary-file-directory) temporary-file-directory)
+       ("/tmp/"))
   "*Variable saying where gnus-uu is to do its work.
 Default is \"/tmp/\"."
   :group 'gnus-extract
   "*Variable saying where gnus-uu is to do its work.
 Default is \"/tmp/\"."
   :group 'gnus-extract
index c7f303c..1332834 100644 (file)
@@ -254,7 +254,7 @@ is restarted, and sometimes reloaded."
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "0.68"
+(defconst gnus-version-number "0.69"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Pterodactyl Gnus v%s" gnus-version-number)
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Pterodactyl Gnus v%s" gnus-version-number)
@@ -2365,7 +2365,14 @@ that that variable is buffer-local to the summary buffers."
                 (not (equal server (format "%s:%s" (caaar opened)
                                            (cadaar opened)))))
        (pop opened))
                 (not (equal server (format "%s:%s" (caaar opened)
                                            (cadaar opened)))))
        (pop opened))
-     (caar opened))))
+     (caar opened))
+   ;; It could be a named method, search all servers
+   (let ((servers gnus-secondary-select-methods))
+     (while (and servers
+                (not (equal server (format "%s:%s" (caar servers)
+                                           (cadar servers)))))
+       (pop servers))
+     (car servers))))
 
 (defmacro gnus-method-equal (ss1 ss2)
   "Say whether two servers are equal."
 
 (defmacro gnus-method-equal (ss1 ss2)
   "Say whether two servers are equal."
index 11a6030..01e2d2b 100644 (file)
@@ -38,7 +38,7 @@
                     find-coding-systems-region get-charset-property
                     coding-system-get w3-region
                     rmail-summary-exists rmail-select-summary
                     find-coding-systems-region get-charset-property
                     coding-system-get w3-region
                     rmail-summary-exists rmail-select-summary
-                    rmail-update-summary
+                    rmail-update-summary url-retrieve
                     ))
       (maybe-bind '(global-face-data
                    mark-active transient-mark-mode mouse-selection-click-count
                     ))
       (maybe-bind '(global-face-data
                    mark-active transient-mark-mode mouse-selection-click-count
                    gnus-newsgroup-iso-8859-1-forced
                    mail-mode-hook enable-multibyte-characters
                    adaptive-fill-first-line-regexp adaptive-fill-regexp
                    gnus-newsgroup-iso-8859-1-forced
                    mail-mode-hook enable-multibyte-characters
                    adaptive-fill-first-line-regexp adaptive-fill-regexp
-                   url-current-mime-headers buffer-file-coding-system)))
+                   url-current-mime-headers buffer-file-coding-system
+                   w3-image-mappings url-current-mime-type
+                   url-current-callback-func url-current-callback-data
+                   url-be-asynchronous temporary-file-directory)))
   (maybe-bind '(mail-mode-hook
                enable-multibyte-characters browse-url-browser-function
                adaptive-fill-first-line-regexp adaptive-fill-regexp
   (maybe-bind '(mail-mode-hook
                enable-multibyte-characters browse-url-browser-function
                adaptive-fill-first-line-regexp adaptive-fill-regexp
-               url-current-mime-headers))
-  (maybe-fbind '(color-instance-rgb-components
+               url-current-mime-headers help-echo-owns-message))
+  (maybe-fbind '(color-instance-rgb-components temp-directory
                 glyph-width annotation-glyph window-pixel-width glyph-height
                 window-pixel-height
                 make-color-instance color-instance-name specifier-instance
                 glyph-width annotation-glyph window-pixel-width glyph-height
                 window-pixel-height
                 make-color-instance color-instance-name specifier-instance
@@ -76,6 +79,7 @@
                 make-annotation 
                 w3-do-setup w3-region
                 rmail-summary-exists rmail-select-summary rmail-update-summary
                 make-annotation 
                 w3-do-setup w3-region
                 rmail-summary-exists rmail-select-summary rmail-update-summary
+                url-generic-parse-url
                 )))
 
 (setq load-path (cons "." load-path))
                 )))
 
 (setq load-path (cons "." load-path))
index 2b9dc33..eccaf77 100644 (file)
@@ -241,7 +241,10 @@ not.")
 (defvar mailcap-download-directory nil
   "*Where downloaded files should go by default.")
 
 (defvar mailcap-download-directory nil
   "*Where downloaded files should go by default.")
 
-(defvar mailcap-temporary-directory (or (getenv "TMPDIR") "/tmp")
+(defvar mailcap-temporary-directory
+  (cond ((fboundp 'temp-directory) (temp-directory))
+       ((boundp 'temporary-file-directory) temporary-file-directory)
+       ("/tmp/"))
   "*Where temporary files go.")
 
 ;;;
   "*Where temporary files go.")
 
 ;;;
@@ -308,7 +311,8 @@ If FORCE, re-parse even if already parsed."
      (path nil)
      ((getenv "MAILCAPS") (setq path (getenv "MAILCAPS")))
      ((memq system-type '(ms-dos ms-windows windows-nt))
      (path nil)
      ((getenv "MAILCAPS") (setq path (getenv "MAILCAPS")))
      ((memq system-type '(ms-dos ms-windows windows-nt))
-      (setq path (mapconcat 'expand-file-name '("~/mail.cap" "~/etc/mail.cap")
+      (setq path (mapconcat 'expand-file-name
+                           '("~/mail.cap" "~/etc/mail.cap" "~/.mailcap")
                            ";")))
      (t (setq path (mapconcat 'expand-file-name
                              '("~/.mailcap"
                            ";")))
      (t (setq path (mapconcat 'expand-file-name
                              '("~/.mailcap"
index fb5e183..a14960d 100644 (file)
@@ -1324,7 +1324,7 @@ Point is left at the beginning of the narrowed-to region."
 
   (define-key message-mode-map "\C-c\C-a" 'message-mime-attach-file)
   (define-key message-mode-map "\C-c\C-m\C-a" 'message-mime-attach-file)
 
   (define-key message-mode-map "\C-c\C-a" 'message-mime-attach-file)
   (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-insert-external)
+  (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))
   (define-key message-mode-map "\C-c\C-m\C-q" 'mml-quote-region)
   
   (define-key message-mode-map "\t" 'message-tab))
@@ -1640,8 +1640,7 @@ With the prefix argument FORCE, insert the header anyway."
                 (eq force 0))
            (save-excursion
              (goto-char (point-max))
                 (eq force 0))
            (save-excursion
              (goto-char (point-max))
-             (not (re-search-backward
-                   message-signature-separator nil t))))
+             (not (re-search-backward message-signature-separator nil t))))
           ((and (null message-signature)
                 force)
            t)
           ((and (null message-signature)
                 force)
            t)
@@ -1862,7 +1861,7 @@ prefix, and don't delete any headers."
             (list message-indent-citation-function)))))
     (mml-quote-region start end)
     (goto-char end)
             (list message-indent-citation-function)))))
     (mml-quote-region start end)
     (goto-char end)
-    (when (re-search-backward "^-- $" start t)
+    (when (re-search-backward message-signature-separator start t)
       ;; Also peel off any blank lines before the signature.
       (forward-line -1)
       (while (looking-at "^[ \t]*$")
       ;; Also peel off any blank lines before the signature.
       (forward-line -1)
       (while (looking-at "^[ \t]*$")
@@ -2106,6 +2105,7 @@ the user from the mailer."
        (case-fold-search nil)
        (news (message-news-p))
        (mailbuf (current-buffer)))
        (case-fold-search nil)
        (news (message-news-p))
        (mailbuf (current-buffer)))
+    (message-encode-message-body)
     (save-restriction
       (message-narrow-to-headers)
       ;; Insert some headers.
     (save-restriction
       (message-narrow-to-headers)
       ;; Insert some headers.
@@ -2115,7 +2115,6 @@ the user from the mailer."
       (mail-encode-encoded-word-buffer)
       ;; Let the user do all of the above.
       (run-hooks 'message-header-hook))
       (mail-encode-encoded-word-buffer)
       ;; Let the user do all of the above.
       (run-hooks 'message-header-hook))
-    (message-encode-message-body)
     (unwind-protect
        (save-excursion
          (set-buffer tembuf)
     (unwind-protect
        (save-excursion
          (set-buffer tembuf)
@@ -2282,6 +2281,7 @@ to find out how to use this."
        result)
     (if (not (message-check-news-body-syntax))
        nil
        result)
     (if (not (message-check-news-body-syntax))
        nil
+      (message-encode-message-body)
       (save-restriction
        (message-narrow-to-headers)
        ;; Insert some headers.
       (save-restriction
        (message-narrow-to-headers)
        ;; Insert some headers.
@@ -2289,7 +2289,6 @@ to find out how to use this."
        (mail-encode-encoded-word-buffer)
        ;; Let the user do all of the above.
        (run-hooks 'message-header-hook))
        (mail-encode-encoded-word-buffer)
        ;; Let the user do all of the above.
        (run-hooks 'message-header-hook))
-      (message-encode-message-body)
       (message-cleanup-headers)
       (if (not (message-check-news-syntax))
          nil
       (message-cleanup-headers)
       (if (not (message-check-news-syntax))
          nil
@@ -2327,7 +2326,8 @@ to find out how to use this."
              ;;          (funcall (intern (format "%s-request-post" (car method)))
              ;;                   (cadr method)))
              (gnus-open-server method)
              ;;          (funcall (intern (format "%s-request-post" (car method)))
              ;;                   (cadr method)))
              (gnus-open-server method)
-             (setq result (gnus-request-post method)))
+           (setq result (let ((mail-header-separator ""))
+                          (gnus-request-post method))))
          (kill-buffer tembuf))
        (set-buffer messbuf)
        (if result
          (kill-buffer tembuf))
        (set-buffer messbuf)
        (if result
@@ -4147,11 +4147,40 @@ regexp varstr."
 ;;; MIME functions
 ;;;
 
 ;;; MIME functions
 ;;;
 
-
-;; I really think this function should be renamed.  It is only useful
-;; for inserting file attachments.
-
-(defun message-mime-attach-file (file type description)
+(defun message-mime-query-file (prompt)
+  (let ((file (read-file-name prompt nil nil t)))
+    ;; Prevent some common errors.  This is inspired by similar code in
+    ;; VM.
+    (when (file-directory-p file)
+      (error "%s is a directory, cannot attach" file))
+    (unless (file-exists-p file)
+      (error "No such file: %s" file))
+    (unless (file-readable-p file)
+      (error "Permission denied: %s" file))
+    file))
+
+(defun message-mime-query-type (file)
+  (let* ((default (or (mm-default-file-encoding file)
+                     ;; Perhaps here we should check what the file
+                     ;; looks like, and offer text/plain if it looks
+                     ;; like text/plain.
+                     "application/octet-stream"))
+        (string (completing-read
+                 (format "Content type (default %s): " default)
+                 (delete-duplicates
+                  (mapcar (lambda (m) (list (cdr m))) mailcap-mime-extensions)
+                  :test 'equal))))
+    (if (not (equal string ""))
+       string
+      default)))
+
+(defun message-mime-query-description ()
+  (let ((description (read-string "One line description: ")))
+    (when (string-match "\\`[ \t]*\\'" description)
+      (setq description nil))
+    description))
+
+(defun message-mime-attach-file (file &optional type description)
   "Attach a file to the outgoing MIME message.
 The file is not inserted or encoded until you send the message with
 `\\[message-send-and-exit]' or `\\[message-send]'.
   "Attach a file to the outgoing MIME message.
 The file is not inserted or encoded until you send the message with
 `\\[message-send-and-exit]' or `\\[message-send]'.
@@ -4160,51 +4189,29 @@ FILE is the name of the file to attach.  TYPE is its content-type, a
 string of the form \"type/subtype\".  DESCRIPTION is a one-line
 description of the attachment."
   (interactive
 string of the form \"type/subtype\".  DESCRIPTION is a one-line
 description of the attachment."
   (interactive
-   (let* ((file (read-file-name "Attach file: " nil nil t))
-         (type (completing-read
-                (format "Content type (default %s): "
-                        (or (mm-default-file-encoding file)
-                            ;; Perhaps here we should check
-                            ;; what the file looks like, and
-                            ;; offer text/plain if it looks
-                            ;; like text/plain.
-                            "application/octet-stream"))
-                (delete-duplicates
-                 (mapcar (lambda (m) (list (cdr m))) mailcap-mime-extensions)
-                 :test 'equal)))
-         (description (read-string "One line description: ")))
+   (let* ((file (message-mime-query-file "Attach file: "))
+         (type (message-mime-query-type file))
+         (description (message-mime-query-description)))
      (list file type description)))
      (list file type description)))
-  (when (string-match "\\`[ \t]*\\'" description)
-    (setq description nil))
-  (when (string-match "\\`[ \t]*\\'" type)
-    (setq type (mm-default-file-encoding file))) nil
-  ;; Prevent some common errors.  This is inspired by similar code in
-  ;; VM.
-  (when (file-directory-p file)
-    (error "%s is a directory, cannot attach" file))
-  (unless (file-exists-p file)
-    (error "No such file: %s" file))
-  (unless (file-readable-p file)
-    (error "Permission denied: %s" file))
-  (insert (format "<#part type=%s filename=%s%s><#/part>\n"
-                 type (prin1-to-string file)
-                 (if description
-                     (format " description=%s" (prin1-to-string description))
-                   ""))))
-
-(defun message-mime-insert-external (file type)
-  "Insert a message/external-body part into the buffer."
+  (insert (format
+          "<#part type=%s filename=%s%s disposition=attachment><#/part>\n"
+          type (prin1-to-string file)
+          (if description
+              (format " description=%s" (prin1-to-string description))
+            ""))))
+
+(defun message-mime-attach-external (file &optional type description)
+  "Attach an external file into the buffer.
+FILE is an ange-ftp/efs specification of the part location.
+TYPE is the MIME type to use."
   (interactive
   (interactive
-   (let* ((file (read-file-name "Insert file: "))
-         (type (mm-default-file-encoding file)))
-     (list file
-          (completing-read
-           (format "MIME type for %s: " file)
-           (delete-duplicates
-            (mapcar (lambda (m) (list (cdr m))) mailcap-mime-extensions))
-           nil nil type))))
-  (insert (format "<#external type=%s name=\"%s\"><#/external>\n"
-                 type file)))
+   (let* ((file (message-mime-query-file "Attach external file: "))
+         (type (message-mime-query-type file))
+         (description (message-mime-query-description)))
+     (list file type description)))
+  (insert (format
+          "<#external type=%s name=%s disposition=attachment><#/external>\n"
+          type (prin1-to-string file))))
 
 (defun message-encode-message-body ()
   (let ((mm-default-charset message-default-charset)
 
 (defun message-encode-message-body ()
   (let ((mm-default-charset message-default-charset)
@@ -4226,16 +4233,16 @@ description of the attachment."
       (message-narrow-to-headers-or-head)
       (message-remove-header "Mime-Version")
       (goto-char (point-max))
       (message-narrow-to-headers-or-head)
       (message-remove-header "Mime-Version")
       (goto-char (point-max))
-      (insert "Mime-Version: 1.0\n")
+      (insert "MIME-Version: 1.0\n")
       (when lines
        (insert lines))
       (setq multipart-p 
            (re-search-backward "^Content-Type: multipart/" nil t)))
       (when lines
        (insert lines))
       (setq multipart-p 
            (re-search-backward "^Content-Type: multipart/" nil t)))
+    (save-restriction
+      (message-narrow-to-headers-or-head)
+      (message-remove-first-header "Content-Type")
+      (message-remove-first-header "Content-Transfer-Encoding"))
     (when multipart-p
     (when multipart-p
-      (save-restriction
-       (message-narrow-to-headers-or-head)
-       (message-remove-first-header "Content-Type")
-       (message-remove-first-header "Content-Transfer-Encoding"))
       (message-goto-body)
       (insert "This is a MIME multipart message.  If you are reading\n")
       (insert "this, you shouldn't.\n"))))
       (message-goto-body)
       (insert "This is a MIME multipart message.  If you are reading\n")
       (insert "this, you shouldn't.\n"))))
index 6f46b92..09c406d 100644 (file)
@@ -131,9 +131,9 @@ If no encoding was done, nil is returned."
           ((null encoding)
            )
           ((eq encoding 'x-uuencode)
           ((null encoding)
            )
           ((eq encoding 'x-uuencode)
-           (uudecode-decode-region (point-min) (point-max)))
+           (funcall mm-uu-decode-function (point-min) (point-max)))
           ((eq encoding 'x-binhex)
           ((eq encoding 'x-binhex)
-           (binhex-decode-region (point-min) (point-max)))
+           (funcall mm-uu-binhex-decode-function (point-min) (point-max)))
           ((functionp encoding)
            (funcall encoding (point-min) (point-max)))
           (t
           ((functionp encoding)
            (funcall encoding (point-min) (point-max)))
           (t
index c99c912..8889bcb 100644 (file)
   `(nth 6 ,handle))
 (defmacro mm-handle-set-cache (handle contents)
   `(setcar (nthcdr 6 ,handle) ,contents))
   `(nth 6 ,handle))
 (defmacro mm-handle-set-cache (handle contents)
   `(setcar (nthcdr 6 ,handle) ,contents))
+(defmacro mm-handle-id (handle)
+  `(nth 7 ,handle))
 (defmacro mm-make-handle (&optional buffer type encoding undisplayer
 (defmacro mm-make-handle (&optional buffer type encoding undisplayer
-                                   disposition description cache)
+                                   disposition description cache
+                                   id)
   `(list ,buffer ,type ,encoding ,undisplayer
   `(list ,buffer ,type ,encoding ,undisplayer
-        ,disposition ,description ,cache))
+        ,disposition ,description ,cache ,id))
 
 (defvar mm-inline-media-tests
   '(("image/jpeg" mm-inline-image
 
 (defvar mm-inline-media-tests
   '(("image/jpeg" mm-inline-image
     "text/richtext" "text/plain")
   "List that describes the precedence of alternative parts.")
 
     "text/richtext" "text/plain")
   "List that describes the precedence of alternative parts.")
 
-(defvar mm-tmp-directory "/tmp/"
+(defvar mm-tmp-directory
+  (cond ((fboundp 'temp-directory) (temp-directory))
+       ((boundp 'temporary-file-directory) temporary-file-directory)
+       ("/tmp/"))
   "Where mm will store its temporary files.")
 
 (defvar mm-all-images-fit nil
   "Where mm will store its temporary files.")
 
 (defvar mm-all-images-fit nil
                cd (mail-fetch-field "content-disposition")
                description (mail-fetch-field "content-description")
                id (mail-fetch-field "content-id"))))
                cd (mail-fetch-field "content-disposition")
                description (mail-fetch-field "content-description")
                id (mail-fetch-field "content-id"))))
-      (if (not ctl)
+      (if (or (not ctl)
+             (not (string-match "/" (car ctl))))
          (mm-dissect-singlepart
           '("text/plain") nil no-strict-mime
           (and cd (condition-case ()
          (mm-dissect-singlepart
           '("text/plain") nil no-strict-mime
           (and cd (condition-case ()
            (and cd (condition-case ()
                        (mail-header-parse-content-disposition cd)
                      (error nil)))
            (and cd (condition-case ()
                        (mail-header-parse-content-disposition cd)
                      (error nil)))
-           description))))
+           description id))))
        (when id
          (when (string-match " *<\\(.*\\)> *" id)
            (setq id (match-string 1 id)))
          (push (cons id result) mm-content-id-alist))
        result))))
 
        (when id
          (when (string-match " *<\\(.*\\)> *" id)
            (setq id (match-string 1 id)))
          (push (cons id result) mm-content-id-alist))
        result))))
 
-(defun mm-dissect-singlepart (ctl cte &optional force cdl description)
+(defun mm-dissect-singlepart (ctl cte &optional force cdl description id)
   (when (or force
            (not (equal "text/plain" (car ctl))))
     (let ((res (mm-make-handle
   (when (or force
            (not (equal "text/plain" (car ctl))))
     (let ((res (mm-make-handle
-               (mm-copy-to-buffer) ctl cte nil cdl description)))
+               (mm-copy-to-buffer) ctl cte nil cdl description nil id)))
       (push (car res) mm-dissection-list)
       res)))
 
       (push (car res) mm-dissection-list)
       res)))
 
index 6da9c66..6e54b00 100644 (file)
@@ -31,9 +31,9 @@
        (string-match "nt" system-configuration)))
 
 (defvar mm-binary-coding-system 
        (string-match "nt" system-configuration)))
 
 (defvar mm-binary-coding-system 
-    (if mm-running-xemacs
-       'binary 'no-conversion)
-    "100% binary coding system.")   
+  (if mm-running-xemacs
+      'binary 'no-conversion)
+  "100% binary coding system.")   
 
 (defvar mm-text-coding-system 
   (cond 
 
 (defvar mm-text-coding-system 
   (cond 
index 874dd9b..c0aa07d 100644 (file)
@@ -2,7 +2,7 @@
 ;; Copyright (c) 1998 by Shenghuo Zhu <zsh@cs.rochester.edu>
 
 ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
 ;; Copyright (c) 1998 by Shenghuo Zhu <zsh@cs.rochester.edu>
 
 ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
-;; $Revision: 1.1.1.7 $
+;; $Revision: 1.1.1.8 $
 ;; Keywords: news postscript uudecode binhex shar
   
 ;; This file is not part of GNU Emacs, but the same permissions
 ;; Keywords: news postscript uudecode binhex shar
   
 ;; This file is not part of GNU Emacs, but the same permissions
 (defvar mm-uu-identifier-alist
   '((?% . postscript) (?b . uu) (?: . binhex) (?# . shar)))
 
 (defvar mm-uu-identifier-alist
   '((?% . postscript) (?b . uu) (?: . binhex) (?# . shar)))
 
+(defvar mm-dissect-disposition "inline"
+  "The default disposition of uu parts.
+This can be either \"inline\" or \"attachment\".")
+
 ;;;### autoload
 
 (defun mm-uu-dissect ()
 ;;;### autoload
 
 (defun mm-uu-dissect ()
                                    (mailcap-extension-to-mime 
                                     (match-string 0 file-name)))
                               "application/octet-stream"))
                                    (mailcap-extension-to-mime 
                                     (match-string 0 file-name)))
                               "application/octet-stream"))
-                    mm-uu-decode-function nil 
+                    'x-uuencode nil 
                     (if (and file-name (not (equal file-name "")))
                     (if (and file-name (not (equal file-name "")))
-                        (list "inline" (cons 'filename 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) 
                     (list (or (and file-name
              ((eq type 'binhex)
               (mm-make-handle (mm-uu-copy-to-buffer start-char end-char) 
                     (list (or (and file-name
                                    (mailcap-extension-to-mime 
                                     (match-string 0 file-name)))
                               "application/octet-stream"))
                                    (mailcap-extension-to-mime 
                                     (match-string 0 file-name)))
                               "application/octet-stream"))
-                    mm-uu-binhex-decode-function nil 
+                    'x-binhex nil 
                     (if (and file-name (not (equal file-name "")))
                     (if (and file-name (not (equal file-name "")))
-                        (list "inline" (cons 'filename 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")))) 
              ((eq type 'shar)
               (mm-make-handle (mm-uu-copy-to-buffer start-char end-char) 
                     '("application/x-shar")))) 
index a4780bc..2c06d0e 100644 (file)
@@ -70,6 +70,8 @@
       (setq text (mm-get-part handle))
       (let ((b (point))
            (url-standalone-mode t)
       (setq text (mm-get-part handle))
       (let ((b (point))
            (url-standalone-mode t)
+           (url-current-object
+            (url-generic-parse-url (format "cid:%s" (mm-handle-id handle))))
            (width (window-width)))
        (save-excursion
          (insert text)
            (width (window-width)))
        (save-excursion
          (insert text)
 
 (defun mm-view-message ()
   (gnus-article-prepare-display)
 
 (defun mm-view-message ()
   (gnus-article-prepare-display)
-  (fundamental-mode))
+  (run-hooks 'gnus-article-decode-hook)
+  (fundamental-mode)
+  (goto-char (point-min)))
 
 (provide 'mm-view)
 
 
 (provide 'mm-view)
 
index 2cb945e..7151f6f 100644 (file)
@@ -454,6 +454,11 @@ parameter.  It should return nil, `warn' or `delete'."
   :group 'nnmail
   :type '(repeat symbol))
 
   :group 'nnmail
   :type '(repeat symbol))
 
+(defcustom nnmail-split-header-length-limit 1024
+  "Header lines longer than this limit are excluded from the split function."
+  :group 'nnmail
+  :type 'integer)
+
 ;;; Internal variables.
 
 (defvar nnmail-split-history nil
 ;;; Internal variables.
 
 (defvar nnmail-split-history nil
@@ -1063,8 +1068,8 @@ FUNC will be called with the group name to determine the article number."
        (goto-char (point-min))
        (while (not (eobp))
          (end-of-line)
        (goto-char (point-min))
        (while (not (eobp))
          (end-of-line)
-         (if (> (current-column) 1024)
-             (gnus-delete-line)
+         (if (> (current-column) nnmail-split-header-length-limit)
+             (delete-region (point) (progn (end-of-line) (point)))
            (forward-line 1)))
        ;; Allow washing.
        (goto-char (point-min))
            (forward-line 1)))
        ;; Allow washing.
        (goto-char (point-min))
index 4931808..f0f4d7c 100644 (file)
 (defvoo nnsoup-directory "~/SOUP/"
   "*SOUP packet directory.")
 
 (defvoo nnsoup-directory "~/SOUP/"
   "*SOUP packet directory.")
 
-(defvoo nnsoup-tmp-directory "/tmp/"
+(defvoo nnsoup-tmp-directory
+    (cond ((fboundp 'temp-directory) (temp-directory))
+         ((boundp 'temporary-file-directory) temporary-file-directory)
+         ("/tmp/"))
   "*Where nnsoup will store temporary files.")
 
 (defvoo nnsoup-replies-directory (concat nnsoup-directory "replies/")
   "*Where nnsoup will store temporary files.")
 
 (defvoo nnsoup-replies-directory (concat nnsoup-directory "replies/")
@@ -666,8 +669,6 @@ backend for the messages.")
   (require 'mail-utils)
   (let ((tembuf (generate-new-buffer " message temp"))
        (case-fold-search nil)
   (require 'mail-utils)
   (let ((tembuf (generate-new-buffer " message temp"))
        (case-fold-search nil)
-       (real-header-separator mail-header-separator)
-       (mail-header-separator "")
        delimline
        (mailbuf (current-buffer)))
     (unwind-protect
        delimline
        (mailbuf (current-buffer)))
     (unwind-protect
@@ -693,15 +694,11 @@ backend for the messages.")
            ;; Change header-delimiter to be what sendmail expects.
            (goto-char (point-min))
            (re-search-forward
            ;; Change header-delimiter to be what sendmail expects.
            (goto-char (point-min))
            (re-search-forward
-            (concat "^" (regexp-quote real-header-separator) "\n"))
+            (concat "^" (regexp-quote mail-header-separator) "\n"))
            (replace-match "\n")
            (backward-char 1)
            (setq delimline (point-marker))
            (replace-match "\n")
            (backward-char 1)
            (setq delimline (point-marker))
-           ;; Insert an extra newline if we need it to work around
-           ;; Sun's bug that swallows newlines.
            (goto-char (1+ delimline))
            (goto-char (1+ delimline))
-           (when (eval message-mailer-swallows-blank-line)
-             (newline))
            (let ((msg-buf
                   (gnus-soup-store
                    nnsoup-replies-directory
            (let ((msg-buf
                   (gnus-soup-store
                    nnsoup-replies-directory
index 47d1161..84204e5 100644 (file)
@@ -138,7 +138,7 @@ Should be called narrowed to the head of the message."
   "Say whether the current (narrowed) buffer contains characters that need encoding."
   (let ((charsets (mapcar
                   'mm-mule-charset-to-mime-charset
   "Say whether the current (narrowed) buffer contains characters that need encoding."
   (let ((charsets (mapcar
                   'mm-mule-charset-to-mime-charset
-                  (find-charset-region (point-min) (point-max))))
+                  (mm-find-charset-region (point-min) (point-max))))
        (cs (list 'us-ascii rfc2047-default-charset))
        found)
     (while charsets
        (cs (list 'us-ascii rfc2047-default-charset))
        found)
     (while charsets
@@ -156,7 +156,7 @@ Should be called narrowed to the head of the message."
              (concat "[^" ietf-drums-tspecials " \t\n]+") nil t)
        (push
         (list (match-beginning 0) (match-end 0)
              (concat "[^" ietf-drums-tspecials " \t\n]+") nil t)
        (push
         (list (match-beginning 0) (match-end 0)
-              (car (delq 'ascii (find-charset-region
+              (car (delq 'ascii (mm-find-charset-region
                                  (match-beginning 0) (match-end 0)))))
         words))
       words)))
                                  (match-beginning 0) (match-end 0)))))
         words))
       words)))
@@ -271,7 +271,9 @@ Should be called narrowed to the head of the message."
          (when (and (mm-multibyte-p) rfc2047-default-charset)
            (mm-decode-coding-region b e rfc2047-default-charset))
          (setq b (point)))
          (when (and (mm-multibyte-p) rfc2047-default-charset)
            (mm-decode-coding-region b e rfc2047-default-charset))
          (setq b (point)))
-       (when (and (mm-multibyte-p) rfc2047-default-charset)
+       (when (and (mm-multibyte-p)
+                  rfc2047-default-charset
+                  (not (eq rfc2047-default-charset 'us-ascii)))
          (mm-decode-coding-region b (point-max) rfc2047-default-charset))))))
 
 (defun rfc2047-decode-string (string)
          (mm-decode-coding-region b (point-max) rfc2047-default-charset))))))
 
 (defun rfc2047-decode-string (string)
index 9e33529..2caec5e 100644 (file)
@@ -113,7 +113,8 @@ The list will be on the form
        (when prev-attribute
          (push (cons prev-attribute prev-value) parameters))
 
        (when prev-attribute
          (push (cons prev-attribute prev-value) parameters))
 
-       `(,type ,@(nreverse parameters))))))
+       (when type
+         `(,type ,@(nreverse parameters)))))))
 
 (defun rfc2231-decode-encoded-string (string)
   "Decode an RFC2231-encoded string.
 
 (defun rfc2231-decode-encoded-string (string)
   "Decode an RFC2231-encoded string.
index 3b548a3..b44e3c9 100644 (file)
@@ -52,7 +52,10 @@ input and write the converted data to its standard output.")
       (setq str (concat str "[^a-z]")))
     (concat str ".?$")))
 
       (setq str (concat str "[^a-z]")))
     (concat str ".?$")))
 
-(defvar uudecode-temporary-file-directory "/tmp/")
+(defvar uudecode-temporary-file-directory
+  (cond ((fboundp 'temp-directory) (temp-directory))
+       ((boundp 'temporary-file-directory) temporary-file-directory)
+       ("/tmp/")))
 
 ;;;###autoload
 (defun uudecode-decode-region-external (start end &optional file-name)
 
 ;;;###autoload
 (defun uudecode-decode-region-external (start end &optional file-name)
index 6fa5d94..228deae 100644 (file)
@@ -1,3 +1,11 @@
+1999-01-03 13:54:51  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.texi (Group Agent Commands): Addition.
+
+1998-12-19 23:29:50  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.texi (Splitting Mail): Addition.
+
 1998-12-13 08:54:07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * message.texi (Insertion): Add.
 1998-12-13 08:54:07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * message.texi (Insertion): Add.
index 50cd93f..a5121d9 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Pterodactyl Gnus 0.68 Manual
+@settitle Pterodactyl Gnus 0.69 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
 @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
 @tex
 
 @titlepage
-@title Pterodactyl Gnus 0.68 Manual
+@title Pterodactyl Gnus 0.69 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
 
 @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.
 
 spool or your mbox file.  All at the same time, if you want to push your
 luck.
 
-This manual corresponds to Pterodactyl Gnus 0.68.
+This manual corresponds to Pterodactyl Gnus 0.69.
 
 @end ifinfo
 
 
 @end ifinfo
 
@@ -9781,6 +9781,12 @@ links.  If that's the case for you, set
 @code{nnmail-crosspost-link-function} to @code{copy-file}.  (This
 variable is @code{add-name-to-file} by default.)
 
 @code{nnmail-crosspost-link-function} to @code{copy-file}.  (This
 variable is @code{add-name-to-file} by default.)
 
+@findex nnmail-split-header-length-limit
+Header lines may be arbitrarily long.  However, the longer a line is,
+the longer it takes to match them.  Very long lines may lead to Gnus
+taking forever to split the mail, so Gnus excludes lines that are longer 
+than @code{nnmail-split-header-length-limit} (which defaults to 1024).
+
 @kindex M-x nnmail-split-history
 @kindex nnmail-split-history
 If you wish to see where the previous mail split put the messages, you
 @kindex M-x nnmail-split-history
 @kindex nnmail-split-history
 If you wish to see where the previous mail split put the messages, you
@@ -12219,7 +12225,7 @@ Enter the Agent category buffer (@code{gnus-enter-category-buffer}).
 @kindex J s (Agent Group)
 @findex gnus-agent-fetch-session
 Fetch all eligible articles in all groups
 @kindex J s (Agent Group)
 @findex gnus-agent-fetch-session
 Fetch all eligible articles in all groups
-(@code{gnus-agent-fetch-session}).
+(@code{gnus-agent-fetch-session}).  
 
 @item J S
 @kindex J S (Agent Group)
 
 @item J S
 @kindex J S (Agent Group)
@@ -12231,7 +12237,15 @@ Send all sendable messages in the draft group
 @kindex J a (Agent Group)
 @findex gnus-agent-add-group
 Add the current group to an Agent category
 @kindex J a (Agent Group)
 @findex gnus-agent-add-group
 Add the current group to an Agent category
-(@code{gnus-agent-add-group}).
+(@code{gnus-agent-add-group}).  This command understands the
+process/prefix convention (@pxref{Process/Prefix}).
+
+@item J r
+@kindex J r (Agent Group)
+@findex gnus-agent-remove-group
+Remove the current group from its category, if any
+(@code{gnus-agent-remove-group}).  This command understands the
+process/prefix convention (@pxref{Process/Prefix}).
 
 @end table
 
 
 @end table
 
index 1b600bb..2db59ba 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message
-@settitle Pterodactyl Message 0.68 Manual
+@settitle Pterodactyl Message 0.69 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
 @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
 @tex
 
 @titlepage
-@title Pterodactyl Message 0.68 Manual
+@title Pterodactyl Message 0.69 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -83,7 +83,7 @@ Message mode buffers.
 * Key Index::         List of Message mode keys.
 @end menu
 
 * Key Index::         List of Message mode keys.
 @end menu
 
-This manual corresponds to Pterodactyl Message 0.68.  Message is
+This manual corresponds to Pterodactyl Message 0.69.  Message is
 distributed with the Gnus distribution bearing the same version number
 as this manual.
 
 distributed with the Gnus distribution bearing the same version number
 as this manual.