* lisp/gnus-offline.el: Rewrite to work with pGnus v0.74 based T-gnus.
authoryamaoka <yamaoka>
Sun, 31 Jan 1999 23:18:18 +0000 (23:18 +0000)
committeryamaoka <yamaoka>
Sun, 31 Jan 1999 23:18:18 +0000 (23:18 +0000)
* lisp/gnus-ofsetup.el: Ditto.
* lisp/pop3-fma.el: Removed because after pGnus0.73 , pGnus can treat multiple
pop3 account.
* lisp/read-password.el: New file.
* lisp/gnus.el (running-pterodactyl-gnus-0_73-or-later): Provide as a new
feature.
* lisp/mail-source.el (mail-source-read-passwd): Don't load "passwd" if the
function `read-passwd' already exists.
* lisp/gnus-start.el (gnus-read-active-file): Eliminate duplicated select
methods.
* lisp/gnus-group.el (gnus-group-catchup-current): Fix typo.
* lisp/gnus.el (gnus-version-number): Update to 6.10.056.
* Sync up with Pterodactyl Gnus v0.74.

ChangeLog
GNUS-NEWS
README.ichikawa
lisp/read-passwd.el [new file with mode: 0644]
texi/ChangeLog
texi/emacs-mime.texi
texi/gnus-ja.texi
texi/gnus.texi
texi/message-ja.texi
texi/message.texi

index 619b59b..1198a97 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,34 @@
+1999-01-30  Tatsuya Ichikawa  <t-ichi@po.shiojiri.ne.jp>
+
+       * lisp/gnus-offline.el: Rewrite to work with pGnus v0.74 based T-gnus.
+       * lisp/gnus-ofsetup.el: Ditto.
+
+       * lisp/pop3-fma.el: Removed because after pGnus0.73 , pGnus can treat
+       multiple pop3 account.
+
+1999-01-29  Tatsuya Ichikawa  <t-ichi@po.shiojiri.ne.jp>
+
+       * lisp/read-password.el: New file.
+
+1999-01-28  Katsumi Yamaoka   <yamaoka@jpl.org>
+
+       * lisp/gnus.el (running-pterodactyl-gnus-0_73-or-later): Provide as
+       a new feature.
+
+       * lisp/mail-source.el (mail-source-read-passwd): Don't load
+       "passwd" if the function `read-passwd' already exists.
+
+       * lisp/gnus-start.el (gnus-read-active-file): Eliminate duplicated
+       select methods.
+
+       * lisp/gnus-group.el (gnus-group-catchup-current): Fix typo.
+
+1999-01-27  Tatsuya Ichikawa  <t-ichi@po.shiojiri.ne.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.10.056.
+
+       * Sync up with Pterodactyl Gnus v0.74.
+
 1999-01-28  Katsumi Yamaoka   <yamaoka@jpl.org>
 
        * lisp/gnus-msg.el (gnus-summary-mail-digest): Reselect the message
index 72fac76..ee7fbc6 100644 (file)
--- a/GNUS-NEWS
+++ b/GNUS-NEWS
@@ -1,5 +1,8 @@
 ** Gnus changes.
 
+*** The mail-fetching functions have changed.  See the manual for the
+many details.  In particular, all procmail fetching variables are gone.
+
 *** Gnus is now a MIME-capable reader.  See the manual for details. 
 
 *** gnus-auto-select-first can now be a function to be
@@ -11,4 +14,3 @@ summary buffers and NOV files.
 *** `gnus-article-display-hook' has been removed.  Instead, a number
 of variables starting with `gnus-treat-'.
 
-
index 42890e0..0898ad9 100644 (file)
@@ -28,9 +28,9 @@ NEWS:
 
   See TODO.ja
 
-* T-gnus 6.10.1 is the last version based on Gnus v5.6.
+* T-gnus 6.10.2 is the last version based on Gnus v5.6.
   After this , T-gnus 6.10 - this is based on Pterodactyl Gnus.
 
-  The latest T-gnus is T-gnus 6.10.055 (Based on pgnus-0.72).
+  The latest T-gnus is T-gnus 6.10.056 (Based on pgnus-0.74).
   It requires SEMI/WEMI-1.12, the latest FLIM-1.12 at the CVS repository,
   and the latest APEL (9.12 or later) at the CVS repository.
diff --git a/lisp/read-passwd.el b/lisp/read-passwd.el
new file mode 100644 (file)
index 0000000..d9e289c
--- /dev/null
@@ -0,0 +1,110 @@
+;; read-passwd.el.el --- Read password function for Pterodactyl Gnus.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. , Tatsuya Ichikawa
+;; Author: Tatsuya Ichikawa <t-ichi@po.shiojiri.ne.jp>
+;; Version: 0.01
+;; Keywords: mail , gnus , pop3 , password
+;;
+;; SPECIAL THANKS
+;;    Katsumi Yamaoka <yamaoka@jpl.org>
+;;
+;; This file is part of Semi-gnus.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+;;
+;;
+(require 'mail-source)
+
+(defun read-pw-read-passwd (prompt)
+  (read-pw-read-noecho prompt t))
+;;
+(defmacro read-pw-read-char-exclusive ()
+  (cond ((featurep 'xemacs)
+        '(let ((table (quote ((backspace . ?\C-h) (delete . ?\C-?)
+                              (left . ?\C-h))))
+               event key)
+           (while (not
+                   (and
+                    (key-press-event-p (setq event (next-command-event)))
+                    (setq key (or (event-to-character event)
+                                  (cdr (assq (event-key event) table)))))))
+           key))
+       ((fboundp 'read-char-exclusive)
+        '(read-char-exclusive))
+       (t
+        '(read-char))))
+;;
+(defun read-pw-read-noecho (prompt &optional stars)
+  "Read a single line of text from user without echoing, and return it.
+Argument PROMPT ."
+  (let ((ans "")
+       (c 0)
+       (echo-keystrokes 0)
+       (cursor-in-echo-area t)
+       (log-message-max-size 0)
+       message-log-max done msg truncate)
+    (while (not done)
+      (if (or (not stars) (string-equal "" ans))
+         (setq msg prompt)
+       (setq msg (concat prompt (make-string (length ans) ?*)))
+       (setq truncate
+             (1+ (- (length msg) (window-width (minibuffer-window)))))
+       (and (> truncate 0)
+            (setq msg (concat "$" (substring msg (1+ truncate))))))
+      (message msg)
+      (setq c (read-pw-read-char-exclusive))
+      (cond ((eq ?\C-g c)
+            (setq quit-flag t
+                  done t))
+           ((memq c '(?\r ?\n ?\e))
+            (setq done t))
+           ((eq ?\C-u c)
+            (setq ans ""))
+           ((and (/= ?\b c) (/= ?\177 c))
+            (setq ans (concat ans (char-to-string c))))
+           ((> (length ans) 0)
+            (setq ans (substring ans 0 -1)))))
+    (if quit-flag
+       (prog1
+           (setq quit-flag nil)
+         (message "Quit")
+         (beep t))
+      (message "")
+      ans)))
+;;
+(defvar pw nil)
+(defun read-pw-set-mail-source-passwd-cache ()
+  (car (mapcar
+       (lambda (x)
+         (mail-source-bind (pop x)
+           (let ((from (format "%s:%s:%s" server user port))
+                 (mail-source-string (format "pop:%s@%s" user server)))
+             (setq pw (read-pw-return-passwd-string user server))
+             (unless (assoc user mail-source-password-cache)
+               (set-alist 'mail-source-password-cache
+                          (format "%s:%s:%s" server user port)
+                          pw))
+             (cdr (assoc from mail-source-password-cache)))))
+;;     gnus-offline-mail-source)))
+       nnmail-spool-file)))
+;;
+;;
+(defvar passwd nil)
+(defun read-pw-return-passwd-string (user server)
+  (setq passwd (read-pw-read-passwd
+               (message "POP Password for %s at %s : " user server)))
+  passwd)
+;;
+(provide 'read-passwd)
index 4c43219..9b5937d 100644 (file)
@@ -1,3 +1,17 @@
+1999-01-25 04:24:01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * message.texi (MIME): New.
+
+       * gnus.texi (Mail Sources): New.
+       (Mail Source Specifiers): New.
+       (Mail Source Customization): New.
+       (Fetching Mail): New.
+
+1999-01-23 09:47:16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.texi (Article Washing): Removed.
+       (Customizing Articles): Addition.
+
 1999-01-16 20:36:48  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus.texi (Customizing Articles): Rewrite.
@@ -25,7 +39,7 @@
 
 1998-12-03  Didier Verna  <verna@inf.enst.fr>
 
-       * gnus.texi (Group Parameters): update for the posting-style group 
+       * gnus.texi (Group Parameters): update for the posting-style group
        parameter.
 
 1998-12-02 01:04:22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 1998-08-27 07:29:17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus.texi (Mail Folders): Addition.
-
index d45602a..0150301 100644 (file)
@@ -17,7 +17,7 @@
 
 This file documents the Emacs MIME interface functionality.
 
-Copyright (C) 1996 Free Software Foundation, Inc.
+Copyright (C) 1998,99 Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -48,7 +48,7 @@ into another language, under the above conditions for modified versions.
 @page
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1998 Free Software Foundation, Inc. 
+Copyright @copyright{} 1998,99 Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -198,9 +198,9 @@ and comments is preserved.
 Return the last comment in a header.
 
 @example
-(mail-header-get-comment 
+(mail-header-get-comment
  "Gnus/5.070027 (Pterodactyl Gnus v0.27) (Finnish Landrace)")
-@result{} "Finnish Landrace" 
+@result{} "Finnish Landrace"
 @end example
 
 @item mail-header-parse-address
@@ -352,7 +352,7 @@ elements.
 
 @example
 (rfc2231-parse-string
- "application/x-stuff; 
+ "application/x-stuff;
  title*0*=us-ascii'en'This%20is%20even%20more%20;
  title*1*=%2A%2A%2Afun%2A%2A%2A%20;
  title*2=\"isn't it!\"")
@@ -368,7 +368,7 @@ the value of the specified attribute.
 @item rfc2231-encode-string
 @findex rfc2231-encode-string
 Encode a parameter in headers likes @code{Content-Type} and
-@code{Content-Disposition}. 
+@code{Content-Disposition}.
 
 @end table
 
@@ -459,11 +459,11 @@ This is an alist of encoding / function pairs.  The encodings are
 The @code{Q} encoding isn't quite the same for all headers.  Some
 headers allow a narrower range of characters, and that is what this
 variable is for.  It's an alist of header regexps / allowable character
-ranges. 
+ranges.
 
 @item rfc2047-encoded-word-regexp
 @vindex rfc2047-encoded-word-regexp
-When decoding words, this library looks for matches to this regexp. 
+When decoding words, this library looks for matches to this regexp.
 
 @end table
 
@@ -851,7 +851,7 @@ Prompt for a mailcap method to use to view the part.
 @cindex MIME Meta Language
 
 Creating a @sc{mime} message is boring and non-trivial.  Therefore, a
-library called @code{mml} has been defined that parses a language called 
+library called @code{mml} has been defined that parses a language called
 MML (@sc{mime} Meta Language) and generates @sc{mime} messages.
 
 @findex mml-generate-mime
@@ -939,7 +939,7 @@ The contents of the body of the part are to be encoded in the character
 set speficied (@code{Content-Type}).
 
 @item name
-Might be used to suggest a file name if the part is to be saved 
+Might be used to suggest a file name if the part is to be saved
 to a file (@code{Content-Type}).
 
 @item disposition
@@ -1001,7 +1001,7 @@ Valid values are @samp{read} and @samp{read-write}
 @section Advanced MML Example
 
 Here's a complex multipart message.  It's a @samp{multipart/mixed} that
-contains many parts, one of which is a @samp{multipart/alternative}. 
+contains many parts, one of which is a @samp{multipart/alternative}.
 
 @example
 <#multipart type=mixed>
@@ -1139,8 +1139,8 @@ Communicating Presentation Information in Internet Messages: The
 Content-Disposition Header Field
 
 @end table
+
+
 @node Index
 @chapter Index
 @printindex cp
index 6c223b2..054c4bd 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus-ja
-@settitle Semi-gnus 6.10.055 Manual
+@settitle Semi-gnus 6.10.056 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -345,7 +345,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Semi-gnus 6.10.055 Manual
+@title Semi-gnus 6.10.056 Manual
 
 @author by Lars Magne Ingebrigtsen
 @author by members of Semi-gnus mailing-list
@@ -399,7 +399,7 @@ Semi-gnus \e$B$O!"Bg$-$J3($,F~$C$F$$$?$j$5$^$6$^$J7A<0$rMQ$$$?$j$7$F$$$k$A$g$C\e(B
 \e$B$J8@8l7w$r:9JL$7$^$;$s!#$"$"!"%/%j%s%4%s$NJ}$O\e(B Unicode Next Generation\e$B$r\e(B
 \e$B$*BT$A$/$@$5$$!#\e(B
 
-\e$B$3$N@bL@=q$O\e(B Semi-gnus 6.10.055 \e$B$KBP1~$7$^$9!#\e(B
+\e$B$3$N@bL@=q$O\e(B Semi-gnus 6.10.056 \e$B$KBP1~$7$^$9!#\e(B
 
 @end ifinfo
 
index 3b14079..f6407a0 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Semi-gnus 6.10.055 Manual
+@settitle Semi-gnus 6.10.056 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
 
 \thispagestyle{empty}
 
-Copyright \copyright{} 1995,96,97,98 Free Software Foundation, Inc.
+Copyright \copyright{} 1995,96,97,98,99 Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -293,7 +293,7 @@ into another language, under the above conditions for modified versions.
 
 This file documents gnus, the GNU Emacs newsreader.
 
-Copyright (C) 1995,96 Free Software Foundation, Inc.
+Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -318,7 +318,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Semi-gnus 6.10.055 Manual
+@title Semi-gnus 6.10.056 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -361,7 +361,7 @@ internationalization/localization and multiscript features based on MULE
 API.  So Semi-gnus does not discriminate various language communities.
 Oh, if you are a Klingon, please wait Unicode Next Generation.
 
-This manual corresponds to Semi-gnus 6.10.055.
+This manual corresponds to Semi-gnus 6.10.056.
 
 @end ifinfo
 
@@ -1991,7 +1991,7 @@ gnus will check all foreign groups with this level or lower at startup.
 This might take quite a while, especially if you subscribe to lots of
 groups from different @sc{nntp} servers.  Also @pxref{Group Levels};
 @code{gnus-activate-level} also affects activation of foreign
-newsgroups. 
+newsgroups.
 
 
 @node Group Parameters
@@ -2155,7 +2155,7 @@ groups.
 
 @item charset
 Elements that look like @code{(charset . iso-8859-1)} will make
-@code{iso-8859-1} the default charset; that is, the charset that will be 
+@code{iso-8859-1} the default charset; that is, the charset that will be
 used for all articles that do not specify a charset.
 
 @item @var{(variable form)}
@@ -2184,8 +2184,8 @@ instead of hacking @code{gnus-posting-styles}, you could put something
 like this in the group parameters:
 
 @example
-(posting-style 
-  (name "Funky Name") 
+(posting-style
+  (name "Funky Name")
   (signature "Funky Signature"))
 @end example
 
@@ -2394,7 +2394,7 @@ All the commands below obeys the process/prefix convention
 (@pxref{Process/Prefix}).
 
 When given a symbolic prefix (@pxref{Symbolic Prefixes}), all these
-commands will sort in reverse order.  
+commands will sort in reverse order.
 
 You can also sort a subset of the groups:
 
@@ -2731,7 +2731,7 @@ topics and wish to remove it from one of the topics.  You may also
 remove a group from all topics, but in that case, Gnus will add it to
 the root topic the next time you start Gnus.  In fact, all new groups
 (which, naturally, don't belong to any topic) will show up in the root
-topic. 
+topic.
 
 This command uses the process/prefix convention
 (@pxref{Process/Prefix}).
@@ -2779,7 +2779,7 @@ previous topic (@code{gnus-topic-indent}).  If given a prefix,
 @kindex M-TAB (Topic)
 @findex gnus-topic-unindent
 ``Un-indent'' the current topic so that it becomes a sub-topic of the
-parent of its current parent (@code{gnus-topic-unindent}).  
+parent of its current parent (@code{gnus-topic-unindent}).
 
 @item RET
 @kindex RET (Topic)
@@ -3379,7 +3379,7 @@ Unread.
 @item R
 This misleadingly named specifier is the @dfn{secondary mark}.  This
 mark will say whether the article has been replied to, has been cached,
-or has been saved.  
+or has been saved.
 
 @item i
 Score as a number (@pxref{Scoring}).
@@ -5472,7 +5472,7 @@ not then be downloaded by this command.
 It is likely that you do not want caching on all groups.  For instance,
 if your @code{nnml} mail is located under your home directory, it makes no
 sense to cache it somewhere else under your home directory.  Unless you
-feel that it's neat to use twice as much space.  
+feel that it's neat to use twice as much space.
 
 To limit the caching, you could set @code{gnus-cacheable-groups} to a
 regexp of groups to cache, @samp{^nntp} for instance, or set the
@@ -6256,7 +6256,7 @@ these articles easier.
 @cindex highlighting
 
 Not only do you want your article buffer to look like fruit salad, but
-you want it to look like technicolor fruit salad.  
+you want it to look like technicolor fruit salad.
 
 @table @kbd
 
@@ -6423,7 +6423,7 @@ too much cruft in most articles.
 @findex gnus-article-hide
 Do quite a lot of hiding on the article buffer
 (@kbd{gnus-article-hide}).  In particular, this function will hide
-headers, PGP, cited text and the signature.  
+headers, PGP, cited text and the signature.
 
 @item W W h
 @kindex W W h (Summary)
@@ -6565,7 +6565,7 @@ Cleaner, perhaps.
 @findex gnus-summary-stop-page-breaking
 Remove page breaks from the current article
 (@code{gnus-summary-stop-page-breaking}).  @xref{Misc Article} for page
-delimiters. 
+delimiters.
 
 @item W r
 @kindex W r (Summary)
@@ -6596,7 +6596,7 @@ Toggle whether to display all headers in the article buffer permanently
 @item W m
 @kindex W m (Summary)
 @findex gnus-summary-toggle-mime
-Toggle whether to display the article as @sc{mime} message
+Toggle whether to run the article through @sc{mime} before displaying
 (@code{gnus-summary-toggle-mime}).
 
 @item W o
@@ -6620,11 +6620,16 @@ interactively.
 @item W w
 @kindex W w (Summary)
 @findex gnus-article-fill-cited-article
-Do word wrap (@code{gnus-article-fill-cited-article}).  
+Do word wrap (@code{gnus-article-fill-cited-article}).
 
 You can give the command a numerical prefix to specify the width to use
 when filling.
 
+@item W q
+@kindex W q (Summary)
+@findex gnus-article-fill-long-lines
+Fill long lines (@code{gnus-article-fill-long-lines}).
+
 @item W c
 @kindex W c (Summary)
 @findex gnus-article-remove-cr
@@ -6970,7 +6975,7 @@ the required charset (@pxref{Group Parameters}).
 @item W M v
 @kindex W M v (Summary)
 View all the @sc{mime} parts in the current article
-(@code{gnus-mime-view-all-parts}). 
+(@code{gnus-mime-view-all-parts}).
 
 @end table
 
@@ -6998,10 +7003,10 @@ displayed.  The default value is @code{(".*/.*")}.
 
 @item gnus-article-mime-part-function
 @vindex gnus-article-mime-part-function
-For each @sc{mime} part, this function will be called with the @sc{mime} 
+For each @sc{mime} part, this function will be called with the @sc{mime}
 handle as the parameter.  The function is meant to be used to allow
 users to gather information from the article (e. g., add Vcard info to
-the bbdb database) or to do actions based on parts (e. g., automatically 
+the bbdb database) or to do actions based on parts (e. g., automatically
 save all jpegs into some directory).
 
 Here's an example function the does the latter:
@@ -7222,7 +7227,7 @@ at the end of the buffer, start reading the picked articles.
 Unpick the thread or article
 (@code{gnus-pick-unmark-article-or-thread}).  If the variable
 @code{gnus-thread-hide-subtree} is true, then this key unpicks the
-thread if used at the first article of the thread.  Otherwise it unpicks 
+thread if used at the first article of the thread.  Otherwise it unpicks
 just the article.  You can give this key a numerical prefix to unpick
 the thread or article at that line.
 
@@ -8190,11 +8195,11 @@ buffer when there are nobody else.
 @cindex article customization
 
 A slew of functions for customizing how the articles are to look like
-exist.  You can call these functions interactively, or you can have them 
+exist.  You can call these functions interactively, or you can have them
 called automatically when you select the articles.
 
 To have them called automatically, you should set the corresponding
-``treatment'' variable.  For instance, to have headers hidden, you'd set 
+``treatment'' variable.  For instance, to have headers hidden, you'd set
 @code{gnus-treat-hide-headers}.  Below is a list of variables that can
 be set, but first we discuss the values these variables can have.
 
@@ -8216,8 +8221,16 @@ An integer: Do this treatment on all body parts that have a length less
 than this number.
 
 @item
-A sexp: Do this treatment on all body parts where the sexp evals to a
-non-@code{nil} value.
+A list:
+
+The list is evaluated recursively.  The first element of the list is a
+predicate.  The following predicates are recognized: @code{or},
+@code{and}, @code{not} and @code{typep}.  Here's an example:
+
+@lisp
+(or last
+    (typep "text/x-vcard"))
+@end lisp
 
 @end enumerate
 
@@ -8227,14 +8240,15 @@ be divided into several parts.  Articles that are not multiparts are
 considered to contain just a single part.
 
 @vindex gnus-article-treat-types
-Are the treatments applied to all sorts of multipart parts?  Yes, if you 
+Are the treatments applied to all sorts of multipart parts?  Yes, if you
 want to, but by default, only @samp{text/plain} parts are given the
 treatment.  This is controlled by the @code{gnus-article-treat-types}
-variable, which is a list of regular expressions that are matched to the 
-type of the part.
+variable, which is a list of regular expressions that are matched to the
+type of the part.  This variable is ignored if the value of the
+controlling variable is a predicate list, as described above.
 
 The following treatment options are available.  The easiest way to
-customize this is to examine the @code{gnus-article-treat} customization 
+customize this is to examine the @code{gnus-article-treat} customization
 group.
 
 @table @code
@@ -8252,18 +8266,18 @@ group.
 @item gnus-treat-strip-pem
 @item gnus-treat-highlight-headers
 @item gnus-treat-highlight-citation
-@item gnus-treat-highlight-signature 
-@item gnus-treat-date-ut 
-@item gnus-treat-date-local 
-@item gnus-treat-date-lapsed 
-@item gnus-treat-date-original 
+@item gnus-treat-highlight-signature
+@item gnus-treat-date-ut
+@item gnus-treat-date-local
+@item gnus-treat-date-lapsed
+@item gnus-treat-date-original
 @item gnus-treat-strip-trailing-blank-lines
 @item gnus-treat-strip-leading-blank-lines
 @item gnus-treat-strip-multiple-blank-lines
-@item gnus-treat-strip-blank-lines 
-@item gnus-treat-overstrike 
-@item gnus-treat-display-xface 
-@item gnus-treat-display-smileys 
+@item gnus-treat-strip-blank-lines
+@item gnus-treat-overstrike
+@item gnus-treat-display-xface
+@item gnus-treat-display-smileys
 @item gnus-treat-display-picons
 @end table
 
@@ -8514,7 +8528,7 @@ for posting.
 Finally, if you want to always post using the same select method as
 you're reading from (which might be convenient if you're reading lots of
 groups from different private servers), you can set this variable to
-@code{current}. 
+@code{current}.
 
 
 @node Mail and Post
@@ -9703,9 +9717,9 @@ course.
 @menu
 * Getting Started Reading Mail:: A simple cookbook example.
 * Splitting Mail::               How to create mail groups.
+* Mail Sources::                 How to tell Gnus where to get mail from.
 * Mail Backend Variables::       Variables for customizing mail handling.
 * Fancy Mail Splitting::         Gnus can do hairy splitting of incoming mail.
-* Mail and Procmail::            Reading mail groups that procmail create.
 * Incorporating Old Mail::       What about the old mail you have?
 * Expiring Mail::                Getting rid of unwanted mail.
 * Washing Mail::                 Removing gruft from the mail you get.
@@ -9824,7 +9838,7 @@ 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 
+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
@@ -9843,44 +9857,190 @@ you really should be out collecting empty bottles to save up for next
 month's rent money.
 
 
-@node Mail Backend Variables
-@subsection Mail Backend Variables
+@node Mail Sources
+@subsection Mail Sources
 
-These variables are (for the most part) pertinent to all the various
-mail backends.
+Mail can be gotten from many different sources---the mail spool, from a
+POP mail server, or from a procmail directory, for instance.
+
+@menu
+* Mail Source Specifiers::       How to specify what a mail source is.
+* Mail Source Customization::    Some variables that influence things.
+* Fetching Mail::                Using the mail source specifiers.
+@end menu
+
+
+@node Mail Source Specifiers
+@subsubsection Mail Source Specifiers
+@cindex POP
+@cindex mail server
+@cindex procmail
+@cindex mail spool
+@cindex mail source
+
+You tell Gnus how to fetch mail by creating a @dfn{mail source
+specifier}.
+
+Here's an example:
+
+@lisp
+(pop :server "pop3.mailserver.com" :user "myname")
+@end lisp
+
+As can be observed, a mail source specifier is a list where the first
+element is a @dfn{mail source type}, followed by an arbitrary number of
+@dfn{keywords}.  Keywords that are not explicitly specified are given
+default values.
+
+The following mail source types are available:
 
 @table @code
-@vindex nnmail-read-incoming-hook
-@item nnmail-read-incoming-hook
-The mail backends all call this hook after reading new mail.  You can
-use this hook to notify any mail watch programs, if you want to.
+@item file
+Get mail from a single file; typically from the mail spool.
+
+Keywords:
+
+@table @code
+@item :path
+The path of the file.  Defaults to the value of the @code{MAIL}
+environment variable or @file{/usr/mail/spool/user-name}.
+@end table
+
+An example file mail source:
+
+@lisp
+(file :path "/usr/spool/mail/user-name")
+@end lisp
+
+Or using the default path:
+
+@lisp
+(file)
+@end lisp
+
+@item directory
+Get mail from several files in a directory.  This is typically used when
+you have procmail split the incoming mail into several files.
+
+Keywords:
+
+@table @code
+@item :path
+The path of the directory where the files are.  There is no default
+value.
+
+@item :suffix
+Only files ending with this suffix are used.  The default is
+@samp{.spool}.
+@end table
+
+An example directory mail source:
+
+@lisp
+(directory :path "/home/user-name/procmail-dir/"
+           :suffix ".prcml")
+@end lisp
+
+@item pop
+Get mail from a POP server.
+
+Keywords:
+
+@table @code
+@item :server
+The name of the POP server.  The default is taken from the
+@code{MAILHOST} environment variable.
+
+@item :port
+The port number of the POP server.  The default is @samp{pop3}.
+
+@item :user
+The user name to give to the POP server.  The default is the login
+name.
+
+@item :password
+The password to give to the POP server.  If not specified, the user is
+prompted.
+@end table
+
+@end table
+
+
+@node Mail Source Customization
+@subsubsection Mail Source Customization
+
+The following is a list of variables that influence how the mail is
+fetched.  You would normally not need to set or change any of these
+variables.
+
+@table @code
+@item mail-source-movemail-program
+@vindex mail-source-movemail-program
+A command to be executed to move mail from the inbox.  The default is
+@samp{movemail}.
+
+This can also be a function.  In that case, the function will be
+called with two parameters -- the name of the INBOX file, and the file
+to be moved to.
+
+@item mail-source-movemail-args
+@vindex mail-source-movemail-args
+Extra arguments to give to the command described above.
+
+@item mail-source-crash-box
+@vindex mail-source-crash-box
+File where mail will be stored while processing it.  The default is
+@file{~/.emacs-mail-crash-box}.
+
+@item mail-source-delete-incoming
+@vindex mail-source-delete-incoming
+If non-@code{nil}, delete incoming files after handling them.
+
+@item mail-source-directory
+@vindex mail-source-directory
+Directory where files (if any) will be stored.  The default is
+@file{~/Mail/}.  At present, the only thing this is used for is to say
+where the incoming files will be stored if the previous variable is
+@code{nil}.
+
+@item mail-source-default-file-modes
+@vindex mail-source-default-file-modes
+All new mail files will get this file mode.  The default is 384.
+
+@end table
+
+
+@node Fetching Mail
+@subsubsection Fetching Mail
+
+The way to actually tell Gnus where to get new mail from is to set
+@code{nnmail-spool-file} to a list of mail source specifiers
+(@pxref{Mail Source Specifiers}).
+
+If this variable is @code{nil}, the mail backends will never attempt to
+fetch mail by themselves.
+
+If you want to fetch mail both from your local spool as well as a POP
+mail server, you'd say something like:
+
+@lisp
+(setq mail-spool-file
+      '((file)
+        (pop :server "pop3.mail.server"
+             :password "secret")))
+@end lisp
+
+Or, if you don't want to use any of the keyword defaults:
+
+@lisp
+(setq mail-spool-file
+      '((file :path "/var/spool/mail/user-name")
+        (pop :server "pop3.mail.server"
+             :user "user-name"
+             :port "pop3"
+             :password "secret")))
+@end lisp
 
-@vindex nnmail-spool-file
-@item nnmail-spool-file
-@cindex POP mail
-@cindex MAILHOST
-@cindex movemail
-@vindex nnmail-pop-password
-@vindex nnmail-pop-password-required
-The backends will look for new mail in this file.  If this variable is
-@code{nil}, the mail backends will never attempt to fetch mail by
-themselves.  If you are using a POP mail server and your name is
-@samp{larsi}, you should set this variable to @samp{po:larsi}.  If
-your name is not @samp{larsi}, you should probably modify that
-slightly, but you may have guessed that already, you smart & handsome
-devil!  You can also set this variable to @code{pop}, and Gnus will try
-to figure out the POP mail string by itself.  In any case, Gnus will
-call @code{movemail} which will contact the POP server named in the
-@code{MAILHOST} environment variable.  If the POP server needs a
-password, you can either set @code{nnmail-pop-password-required} to
-@code{t} and be prompted for the password, or set
-@code{nnmail-pop-password} to the password itself.
-
-@code{nnmail-spool-file} can also be a list of mailboxes.
-
-Your Emacs has to have been configured with @samp{--with-pop} before
-compilation.  This is the default, but some installations have it
-switched off.
 
 When you use a mail backend, Gnus will slurp all your mail from your
 inbox and plonk it down in your home directory.  Gnus doesn't move any
@@ -9889,21 +10049,19 @@ invocations first.  At the time when you have finished drawing the
 pentagram, lightened the candles, and sacrificed the goat, you really
 shouldn't be too surprised when Gnus moves your mail.
 
-@vindex nnmail-use-procmail
-@vindex nnmail-procmail-suffix
-@item nnmail-use-procmail
-If non-@code{nil}, the mail backends will look in
-@code{nnmail-procmail-directory} for incoming mail.  All the files in
-that directory that have names ending in @code{nnmail-procmail-suffix}
-will be considered incoming mailboxes, and will be searched for new
-mail.
 
-@vindex nnmail-crash-box
-@item nnmail-crash-box
-When a mail backend reads a spool file, mail is first moved to this
-file, which is @file{~/.gnus-crash-box} by default.  If this file
-already exists, it will always be read (and incorporated) before any
-other spool files.
+
+@node Mail Backend Variables
+@subsection Mail Backend Variables
+
+These variables are (for the most part) pertinent to all the various
+mail backends.
+
+@table @code
+@vindex nnmail-read-incoming-hook
+@item nnmail-read-incoming-hook
+The mail backends all call this hook after reading new mail.  You can
+use this hook to notify any mail watch programs, if you want to.
 
 @vindex nnmail-split-hook
 @item nnmail-split-hook
@@ -9937,42 +10095,6 @@ default file modes the new mail files get:
           (lambda () (set-default-file-modes 551)))
 @end lisp
 
-@item nnmail-tmp-directory
-@vindex nnmail-tmp-directory
-This variable says where to move incoming mail to -- while processing
-it.  This is usually done in the same directory that the mail backend
-inhabits (e.g., @file{~/Mail/}), but if this variable is non-@code{nil},
-it will be used instead.
-
-@item nnmail-movemail-program
-@vindex nnmail-movemail-program
-This program is executed to move mail from the user's inbox to her home
-directory.  The default is @samp{movemail}.
-
-This can also be a function.  In that case, the function will be called
-with two parameters -- the name of the inbox, and the file to be moved
-to.
-
-@item nnmail-delete-incoming
-@vindex nnmail-delete-incoming
-@cindex incoming mail files
-@cindex deleting incoming files
-If non-@code{nil}, the mail backends will delete the temporary incoming
-file after splitting mail into the proper groups.  This is @code{t} by
-default.
-
-@c This is @code{nil} by
-@c default for reasons of security.
-
-@c Since Red Gnus is an alpha release, it is to be expected to lose mail.
-(No Gnus release since (ding) Gnus 0.10 (or something like that) have
-lost mail, I think, but that's not the point.  (Except certain versions
-of Red Gnus.))  By not deleting the Incoming* files, one can be sure not
-to lose mail -- if Gnus totally whacks out, one can always recover what
-was lost.
-
-You may delete the @file{Incoming*} files at will.
-
 @item nnmail-use-long-file-names
 @vindex nnmail-use-long-file-names
 If non-@code{nil}, the mail backends will use long file and directory
@@ -10038,7 +10160,7 @@ the five possible split syntaxes:
 @item
 @samp{group}: If the split is a string, that will be taken as a group
 name.  Normal regexp match expansion will be done.  See below for
-examples. 
+examples.
 
 @item
 @var{(FIELD VALUE SPLIT)}: If the split is a list, the first element of
@@ -10101,92 +10223,6 @@ up to @samp{\\9} will be substituted with the text matched by the
 groupings 1 through 9.
 
 
-@node Mail and Procmail
-@subsection Mail and Procmail
-@cindex procmail
-
-@cindex slocal
-@cindex elm
-Many people use @code{procmail} (or some other mail filter program or
-external delivery agent---@code{slocal}, @code{elm}, etc) to split
-incoming mail into groups.  If you do that, you should set
-@code{nnmail-spool-file} to @code{procmail} to ensure that the mail
-backends never ever try to fetch mail by themselves.
-
-If you have a combined @code{procmail}/POP/mailbox setup, you can do
-something like the following:
-
-@vindex nnmail-use-procmail
-@lisp
-(setq nnmail-use-procmail t)
-(setq nnmail-spool-file
-      '("/usr/spool/mail/my-name" "po:my-name"))
-@end lisp
-
-This also means that you probably don't want to set
-@code{nnmail-split-methods} either, which has some, perhaps, unexpected
-side effects.
-
-When a mail backend is queried for what groups it carries, it replies
-with the contents of that variable, along with any groups it has figured
-out that it carries by other means.  None of the backends, except
-@code{nnmh}, actually go out to the disk and check what groups actually
-exist.  (It's not trivial to distinguish between what the user thinks is
-a basis for a newsgroup and what is just a plain old file or directory.)
-
-This means that you have to tell Gnus (and the backends) by hand what
-groups exist.
-
-Let's take the @code{nnmh} backend as an example:
-
-The folders are located in @code{nnmh-directory}, say, @file{~/Mail/}.
-There are three folders, @file{foo}, @file{bar} and @file{mail.baz}.
-
-Go to the group buffer and type @kbd{G m}.  When prompted, answer
-@samp{foo} for the name and @samp{nnmh} for the method.  Repeat
-twice for the two other groups, @samp{bar} and @samp{mail.baz}.  Be sure
-to include all your mail groups.
-
-That's it.  You are now set to read your mail.  An active file for this
-method will be created automatically.
-
-@vindex nnmail-procmail-suffix
-@vindex nnmail-procmail-directory
-If you use @code{nnfolder} or any other backend that store more than a
-single article in each file, you should never have procmail add mails to
-the file that Gnus sees.  Instead, procmail should put all incoming mail
-in @code{nnmail-procmail-directory}.  To arrive at the file name to put
-the incoming mail in, append @code{nnmail-procmail-suffix} to the group
-name.  The mail backends will read the mail from these files.
-
-@vindex nnmail-resplit-incoming
-When Gnus reads a file called @file{mail.misc.spool}, this mail will be
-put in the @code{mail.misc}, as one would expect.  However, if you want
-Gnus to split the mail the normal way, you could set
-@code{nnmail-resplit-incoming} to @code{t}.
-
-@vindex nnmail-keep-last-article
-If you use @code{procmail} to split things directly into an @code{nnmh}
-directory (which you shouldn't do), you should set
-@code{nnmail-keep-last-article} to non-@code{nil} to prevent Gnus from
-ever expiring the final article (i.e., the article with the highest
-article number) in a mail newsgroup.  This is quite, quite important.
-
-Here's an example setup:  The incoming spools are located in
-@file{~/incoming/} and have @samp{""} as suffixes (i.e., the incoming
-spool files have the same names as the equivalent groups).  The
-@code{nnfolder} backend is to be used as the mail interface, and the
-@code{nnfolder} directory is @file{~/fMail/}.
-
-@lisp
-(setq nnfolder-directory "~/fMail/")
-(setq nnmail-spool-file 'procmail)
-(setq nnmail-procmail-directory "~/incoming/")
-(setq gnus-secondary-select-methods '((nnfolder "")))
-(setq nnmail-procmail-suffix "")
-@end lisp
-
-
 @node Incorporating Old Mail
 @subsection Incorporating Old Mail
 
@@ -10766,7 +10802,7 @@ your @file{.emacs} file:
 @vindex nnfolder-delete-mail-hook
 Hook run in a buffer narrowed to the message that is to be deleted.
 This function can be used to copy the message to somewhere else, or to
-extract some information from it before removing it.  
+extract some information from it before removing it.
 
 @end table
 
@@ -11964,7 +12000,7 @@ with the predicate then defined as:
 or you could append your predicate to the predefined
 @code{gnus-category-predicate-alist} in your @file{~/.gnus.el} or
 wherever.  (Note: this would have to be at a point *after*
-@code{gnus-agent} has been loaded via @code{(gnus-agentize)})   
+@code{gnus-agent} has been loaded via @code{(gnus-agentize)})
 
 @lisp
 (defvar  gnus-category-predicate-alist
@@ -11987,7 +12023,7 @@ just don't give a damm.
 The above predicates apply to *all* the groups which belong to the
 category. However, if you wish to have a specific predicate for an
 individual group within a category, or you're just too lazy to set up a
-new category, you can enter a group's individual predicate in it's group 
+new category, you can enter a group's individual predicate in it's group
 parameters like so:
 
 @lisp
@@ -12007,8 +12043,8 @@ The equivalent of the longer example from above would be:
 
 The outer parenthesis required in the category specification are not
 entered here as, not being in dotted pair notation, the value of the
-predicate is assumed to be a list. 
+predicate is assumed to be a list.
+
 
 Now, the syntax of the download score is the same as the syntax of
 normal score files, except that all elements that require actually
@@ -12026,7 +12062,7 @@ In both of these places the @code{download score rule} can take one of
 three forms:
 
 @enumerate
-@item 
+@item
 Score rule
 
 This has the same syntax as a normal gnus score file except only a
@@ -12035,21 +12071,21 @@ subset of scoring keywords are available as mentioned above.
 example:
 
 @itemize @bullet
-@item 
+@item
 Category specification
 
 @lisp
-(("from"        
+(("from"
        ("Lars Ingebrigtsen" 1000000 nil s))
 ("lines"
        (500 -100 nil <)))
 @end lisp
 
-@item 
+@item
 Group Parameter specification
 
 @lisp
-(agent-score ("from"        
+(agent-score ("from"
                    ("Lars Ingebrigtsen" 1000000 nil s))
              ("lines"
                    (500 -100 nil <)))
@@ -12058,7 +12094,7 @@ Group Parameter specification
 Again, note the omission of the outermost parenthesis here.
 @end itemize
 
-@item 
+@item
 Agent score file
 
 These score files must *only* contain the permitted scoring keywords
@@ -12067,7 +12103,7 @@ stated above.
 example:
 
 @itemize @bullet
-@item 
+@item
 Category specification
 
 @lisp
@@ -12080,7 +12116,7 @@ or perhaps
 ("~/News/agent.SCORE" "~/News/agent.group.SCORE")
 @end lisp
 
-@item 
+@item
 Group Parameter specification
 
 @lisp
@@ -12091,7 +12127,7 @@ Additional score files can be specified as above. Need I say anything
 about parenthesis.
 @end itemize
 
-@item 
+@item
 Use @code{normal} score files
 
 If you dont want to maintain two sets of scoring rules for a group, and
@@ -12105,14 +12141,14 @@ files for a group, *filtering out* those those sections that do not
 relate to one of the permitted subset of scoring keywords.
 
 @itemize @bullet
-@item 
+@item
 Category Specification
 
 @lisp
 file
 @end lisp
 
-@item 
+@item
 Group Parameter specification
 
 @lisp
@@ -12120,7 +12156,7 @@ Group Parameter specification
 @end lisp
 @end itemize
 @end enumerate
+
 @node The Category Buffer
 @subsubsection The Category Buffer
 
@@ -12265,7 +12301,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
-(@code{gnus-agent-fetch-session}).  
+(@code{gnus-agent-fetch-session}).
 
 @item J S
 @kindex J S (Agent Group)
@@ -12305,7 +12341,7 @@ Mark the article for downloading (@code{gnus-agent-mark-article}).
 Remove the downloading mark from the article
 (@code{gnus-agent-unmark-article}).
 
-@item @@ 
+@item @@
 @kindex @@ (Agent Summary)
 @findex gnus-agent-toggle-mark
 Toggle whether to download the article (@code{gnus-agent-toggle-mark}).
@@ -14573,7 +14609,7 @@ Text inside the @samp{%<} and @samp{%>} specifiers will get the special
 @samp{%1<}, you'll get @code{gnus-balloon-face-1} and so on. The
 @code{gnus-balloon-face-*} variables should be either strings or
 symbols naming functions that return a string. Under @code{balloon-help-mode},
-when the mouse passes over text with this property set, a balloon window 
+when the mouse passes over text with this property set, a balloon window
 will appear and display the string. Please refer to the doc string of
 @code{balloon-help-mode} for more information on this.
 
@@ -14804,8 +14840,8 @@ 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 
+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
@@ -15561,11 +15597,11 @@ at the right time.
 @item gnus-article-display-picons
 @findex gnus-article-display-picons
 Looks up and displays the picons for the author and the author's domain
-in the @code{gnus-picons-display-where} buffer.  
+in the @code{gnus-picons-display-where} buffer.
 
 @item gnus-picons-article-display-x-face
 @findex gnus-article-display-picons
-Decodes and displays the X-Face header if present.  
+Decodes and displays the X-Face header if present.
 
 @end table
 
@@ -16239,10 +16275,6 @@ We do have some breaches to this one.
 
 @table @emph
 
-@item MIME
-Gnus does not yet fully handle MIME, and this standard-to-be seems to
-think that MIME is the bees' knees, so we have major breakage here.
-
 @item X-Newsreader
 This is considered to be a ``vanity header'', while I consider it to be
 consumer information.  After seeing so many badly formatted articles
@@ -16285,7 +16317,7 @@ XEmacs 20.4 and up.
 @end itemize
 
 This Gnus version will absolutely not work on any Emacsen older than
-that.  Not reliably, at least.  Older versions of Gnus may work on older 
+that.  Not reliably, at least.  Older versions of Gnus may work on older
 Emacs versions.
 
 There are some vague differences between Gnus on the various
@@ -17265,12 +17297,6 @@ interesting.)
 @itemize @bullet
 
 @item
-Native @sc{mime} support is something that should be done.
-
-@item
-Really do unbinhexing.
-
-@item
  I would like the zombie-page to contain an URL to the source of the
 latest version of gnus or some explanation on where to find it.
 
@@ -17380,8 +17406,6 @@ Perhaps.
 @item
  warn user about `=' redirection of a group in the active file?
 @item
- really unbinhex binhex files.
-@item
  take over the XEmacs menubar and offer a toggle between the XEmacs
 bar and the Gnus bar.
 @item
@@ -18440,7 +18464,7 @@ Implement gnus-batch-brew-soup.
 
 @item
 Group parameters and summary commands for un/subscribing to mailing
-lists. 
+lists.
 
 @item
 Introduce nnmail-home-directory.
@@ -20502,4 +20526,3 @@ former).  The manual is unambiguous, but it can be confusing.
 @end iftex
 
 @c End:
-
index 1e88a54..627b61e 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message-ja
-@settitle Message 6.10.055 Manual
+@settitle Message 6.10.056 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -60,7 +60,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Message 6.10.055 Manual
+@title Message 6.10.056 Manual
 
 @author by Lars Magne Ingebrigtsen
 @translated by members of Semi-gnus mailing-list
@@ -112,7 +112,7 @@ Gnus \e$B$NA4$F$N%a%C%;!<%8$N:n@.\e(B (\e$B%a!<%k$H%K%e!<%9$NN>J}\e(B) \e$B$O%a%C%;!<
 * Key Index::         \e$B%a%C%;!<%8%b!<%I%-!<$N0lMw!#\e(B
 @end menu
 
-\e$B$3$N%^%K%e%"%k$O\e(B Message 6.10.055 \e$B$KBP1~$7$^$9!#\e(BMessage \e$B$O$3$N%^%K%e%"%k$H\e(B
+\e$B$3$N%^%K%e%"%k$O\e(B Message 6.10.056 \e$B$KBP1~$7$^$9!#\e(BMessage \e$B$O$3$N%^%K%e%"%k$H\e(B
 \e$BF1$8HGHV9f$N\e(B Gnus \e$B$NG[I[$H6&$KG[I[$5$l$^$9!#\e(B
 
 
index 91384b3..6a26058 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message
-@settitle Message 6.10.055 Manual
+@settitle Message 6.10.056 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -17,7 +17,7 @@
 
 This file documents Message, the Emacs message composition mode.
 
-Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -42,13 +42,13 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Message 6.10.055 Manual
+@title Message 6.10.056 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1996 Free Software Foundation, Inc. 
+Copyright @copyright{} 1996,97,98,99 Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -83,7 +83,7 @@ Message mode buffers.
 * Key Index::         List of Message mode keys.
 @end menu
 
-This manual corresponds to Message 6.10.055.  Message is
+This manual corresponds to Message 6.10.056.  Message is
 distributed with the Gnus distribution bearing the same version number
 as this manual.
 
@@ -116,7 +116,7 @@ sending it.
 @section New Mail Message
 
 @findex message-mail
-The @code{message-mail} command pops up a new message buffer.  
+The @code{message-mail} command pops up a new message buffer.
 
 Two optional parameters are accepted: The first will be used as the
 @code{To} header and the second as the @code{Subject} header.  If these
@@ -127,7 +127,7 @@ are @code{nil}, those two headers will be empty.
 @section New News Message
 
 @findex message-news
-The @code{message-news} command pops up a new message buffer.  
+The @code{message-news} command pops up a new message buffer.
 
 This function accepts two optional parameters.  The first will be used
 as the @code{Newsgroups} header and the second as the @code{Subject}
@@ -153,8 +153,8 @@ If you want the replies to go to the @code{Sender} instead of the
 (setq message-reply-to-function
       (lambda ()
        (cond ((equal (mail-fetch-field "from") "somebody")
-               (mail-fetch-field "sender"))     
-             (t 
+               (mail-fetch-field "sender"))
+             (t
               nil))))
 @end lisp
 
@@ -170,7 +170,7 @@ This function can also return a list.  In that case, each list element
 should be a cons, where the car should be the name of an header
 (eg. @code{Cc}) and the cdr should be the header value
 (eg. @samp{larsi@@ifi.uio.no}).  All these headers will be inserted into
-the head of the outgoing mail. 
+the head of the outgoing mail.
 
 
 @node Wide Reply
@@ -186,7 +186,7 @@ reply that goes out to all people listed in the @code{To}, @code{From}
 Message uses the normal methods to determine where wide replies are to go,
 but you can change the behavior to suit your needs by fiddling with the
 @code{message-wide-reply-to-function}.  It is used in the same way as
-@code{message-reply-to-function} (@pxref{Reply}). 
+@code{message-reply-to-function} (@pxref{Reply}).
 
 @findex rmail-dont-reply-to-names
 Addresses that match the @code{rmail-dont-reply-to-names} regular
@@ -249,13 +249,13 @@ news.
 @item message-forward-start-separator
 @vindex message-forward-start-separator
 Delimiter inserted before forwarded messages.  The default is@*
-@samp{------- Start of forwarded message -------\n}. 
+@samp{------- Start of forwarded message -------\n}.
 
 @vindex message-forward-end-separator
 @item message-forward-end-separator
 @vindex message-forward-end-separator
 Delimiter inserted after forwarded messages.  The default is@*
-@samp{------- End of forwarded message -------\n}. 
+@samp{------- End of forwarded message -------\n}.
 
 @item message-signature-before-forwarded-message
 @vindex message-signature-before-forwarded-message
@@ -265,7 +265,7 @@ forwarded message will be inserted first in the new mail.
 
 @item message-included-forward-headers
 @vindex message-included-forward-headers
-Regexp matching header lines to be included in forwarded messages.  
+Regexp matching header lines to be included in forwarded messages.
 
 @item message-make-forward-subject-function
 @vindex message-make-forward-subject-function
@@ -288,7 +288,7 @@ Subject of article with @samp{Fwd:} prepended to it.
 @item message-wash-forwarded-subjects
 @vindex message-wash-forwarded-subjects
 If this variable is @code{t}, the subjects of forwarded messages have
-the evidence of previous forwards (such as @samp{Fwd:}, @samp{Re:}, 
+the evidence of previous forwards (such as @samp{Fwd:}, @samp{Re:},
 @samp{(fwd)}) removed before the new subject is
 constructed.  The default value is @code{nil}.
 
@@ -305,7 +305,7 @@ and resend the message in the current buffer to that address.
 @vindex message-ignored-resent-headers
 Headers that match the @code{message-ignored-resent-headers} regexp will
 be removed before sending the message.  The default is
-@samp{^Return-receipt}. 
+@samp{^Return-receipt}.
 
 
 @node Bouncing
@@ -316,7 +316,7 @@ The @code{message-bounce} command will, if the current buffer contains a
 bounced mail message, pop up a message buffer stripped of the bounce
 information.  A @dfn{bounced message} is typically a mail you've sent
 out that has been returned by some @code{mailer-daemon} as
-undeliverable. 
+undeliverable.
 
 @vindex message-ignored-bounced-headers
 Headers that match the @code{message-ignored-bounced-headers} regexp
@@ -331,6 +331,7 @@ will be removed before popping up the buffer.  The default is
 * Header Commands::     Commands for moving to headers.
 * Movement::            Moving around in message buffers.
 * Insertion::           Inserting things into message buffers.
+* MIME::                @sc{mime} considerations.
 * Various Commands::    Various things.
 * Sending::             Actually sending the message.
 * Mail Aliases::        How to use mail aliases.
@@ -351,57 +352,57 @@ it will be inserted.
 Describe the message mode.
 
 @item C-c C-f C-t
-@kindex C-c C-f C-t 
+@kindex C-c C-f C-t
 @findex message-goto-to
 Go to the @code{To} header (@code{message-goto-to}).
 
 @item C-c C-f C-b
-@kindex C-c C-f C-b 
+@kindex C-c C-f C-b
 @findex message-goto-bcc
 Go to the @code{Bcc} header (@code{message-goto-bcc}).
 
 @item C-c C-f C-f
-@kindex C-c C-f C-f 
+@kindex C-c C-f C-f
 @findex message-goto-fcc
 Go to the @code{Fcc} header (@code{message-goto-fcc}).
 
 @item C-c C-f C-c
-@kindex C-c C-f C-c 
+@kindex C-c C-f C-c
 @findex message-goto-cc
 Go to the @code{Cc} header (@code{message-goto-cc}).
 
 @item C-c C-f C-s
-@kindex C-c C-f C-s 
+@kindex C-c C-f C-s
 @findex message-goto-subject
 Go to the @code{Subject} header (@code{message-goto-subject}).
 
 @item C-c C-f C-r
-@kindex C-c C-f C-r 
+@kindex C-c C-f C-r
 @findex message-goto-reply-to
 Go to the @code{Reply-To} header (@code{message-goto-reply-to}).
 
 @item C-c C-f C-n
-@kindex C-c C-f C-n 
+@kindex C-c C-f C-n
 @findex message-goto-newsgroups
 Go to the @code{Newsgroups} header (@code{message-goto-newsgroups}).
 
 @item C-c C-f C-d
-@kindex C-c C-f C-d 
+@kindex C-c C-f C-d
 @findex message-goto-distribution
 Go to the @code{Distribution} header (@code{message-goto-distribution}).
 
 @item C-c C-f C-o
-@kindex C-c C-f C-o 
+@kindex C-c C-f C-o
 @findex message-goto-followup-to
 Go to the @code{Followup-To} header (@code{message-goto-followup-to}).
 
 @item C-c C-f C-k
-@kindex C-c C-f C-k 
+@kindex C-c C-f C-k
 @findex message-goto-keywords
 Go to the @code{Keywords} header (@code{message-goto-keywords}).
 
 @item C-c C-f C-u
-@kindex C-c C-f C-u 
+@kindex C-c C-f C-u
 @findex message-goto-summary
 Go to the @code{Summary} header (@code{message-goto-summary}).
 
@@ -413,13 +414,13 @@ Go to the @code{Summary} header (@code{message-goto-summary}).
 
 @table @kbd
 @item C-c C-b
-@kindex C-c C-b 
+@kindex C-c C-b
 @findex message-goto-body
 Move to the beginning of the body of the message
-(@code{message-goto-body}). 
+(@code{message-goto-body}).
 
 @item C-c C-i
-@kindex C-c C-i 
+@kindex C-c C-i
 @findex message-goto-signature
 Move to the signature of the message (@code{message-goto-signature}).
 
@@ -432,14 +433,14 @@ Move to the signature of the message (@code{message-goto-signature}).
 @table @kbd
 
 @item C-c C-y
-@kindex C-c C-y 
+@kindex C-c C-y
 @findex message-yank-original
 Yank the message in the buffer @code{gnus-article-copy} into the message
 buffer. Normally @code{gnus-article-copy} is what you are replying to
 (@code{message-yank-original}).
 
 @item C-c C-q
-@kindex C-c C-q 
+@kindex C-c C-q
 @findex message-fill-yanked-message
 Fill the yanked message (@code{message-fill-yanked-message}).  Warning:
 Can severely mess up the yanked text if its quoting conventions are
@@ -448,10 +449,10 @@ just remember that @kbd{C-x u} (@code{undo}) is available and you'll be
 all right.
 
 @item C-c C-w
-@kindex C-c C-w 
+@kindex C-c C-w
 @findex message-insert-signature
 Insert a signature at the end of the buffer
-(@code{message-insert-signature}).  
+(@code{message-insert-signature}).
 
 @item C-c M-h
 @kindex C-c M-h
@@ -539,6 +540,27 @@ Including ASCII graphics is an efficient way to get everybody to believe
 that you are silly and have nothing important to say.
 
 
+@node MIME
+@section MIME
+@cindex MML
+@cindex MIME
+@cindex multipart
+@cindex attachment
+
+Message is a @sc{mime}-compliant posting agent.  The user generally
+doesn't have to do anything to make the @sc{mime} happen---Message will
+automatically add the @code{Content-Type} and
+@code{Content-Transfer-Encoding} headers.
+
+The most typical thing users want to use the multipart things in
+@sc{mime} for is to add ``attachments'' to mail they send out.  This can
+be done with the @code{C-c C-a} command, which will prompt for a file
+name and a @sc{mime} type.
+
+You can also create arbitrarily complex multiparts using the MML
+language (@pxref{Composing, , Composing, emacs-mime, The Emacs MIME
+Manual}).
+
 
 @node Various Commands
 @section Various Commands
@@ -546,7 +568,7 @@ that you are silly and have nothing important to say.
 @table @kbd
 
 @item C-c C-r
-@kindex C-c C-r 
+@kindex C-c C-r
 @findex message-caesar-buffer-body
 Caesar rotate (aka. rot13) the current message
 (@code{message-caesar-buffer-body}).  If narrowing is in effect, just
@@ -593,17 +615,17 @@ If point is before @samp{And} and you press @kbd{M-RET}, you'll get:
 > And here's more quoted text.
 @end example
 
-@samp{*} says where point will be placed.  
+@samp{*} says where point will be placed.
 
 @item C-c C-t
-@kindex C-c C-t 
+@kindex C-c C-t
 @findex message-insert-to
 Insert a @code{To} header that contains the @code{Reply-To} or
 @code{From} header of the message you're following up
-(@code{message-insert-to}). 
+(@code{message-insert-to}).
 
 @item C-c C-n
-@kindex C-c C-n 
+@kindex C-c C-n
 @findex message-insert-newsgroups
 Insert a @code{Newsgroups} header that reflects the @code{Followup-To}
 or @code{Newsgroups} header of the article you're replying to
@@ -623,15 +645,15 @@ prompt for a new buffer name.
 
 @table @kbd
 @item C-c C-c
-@kindex C-c C-c 
+@kindex C-c C-c
 @findex message-send-and-exit
 Send the message and bury the current buffer
-(@code{message-send-and-exit}). 
+(@code{message-send-and-exit}).
 
 @item C-c C-s
-@kindex C-c C-s 
+@kindex C-c C-s
 @findex message-send
-Send the message (@code{message-send}). 
+Send the message (@code{message-send}).
 
 @item C-c C-d
 @kindex C-c C-d
@@ -705,7 +727,7 @@ look sufficiently similar.
 @item message-generate-headers-first
 @vindex message-generate-headers-first
 If non-@code{nil}, generate all headers before starting to compose the
-message.  
+message.
 
 @item message-from-style
 @vindex message-from-style
@@ -739,7 +761,7 @@ ship it off again.  By default, this variable makes sure that the old
 generated @code{Message-ID} is deleted, and a new one generated.  If
 this isn't done, the entire empire would probably crumble, anarchy would
 prevail, and cats would start walking on two legs and rule the world.
-Allegedly.  
+Allegedly.
 
 @item message-default-headers
 @vindex message-default-headers
@@ -785,7 +807,7 @@ buffers that are initialized as mail.
 
 
 @node Mail Variables
-@section Mail Variables 
+@section Mail Variables
 
 @table @code
 @item message-send-mail-function
@@ -826,7 +848,7 @@ This required header will be filled out with the result of the
 
 @item Subject
 @cindex Subject
-This required header will be prompted for if not present already. 
+This required header will be prompted for if not present already.
 
 @item Newsgroups
 @cindex Newsgroups
@@ -929,21 +951,21 @@ to this list.
 Valid checks are:
 
 @table @code
-@item subject-cmsg 
+@item subject-cmsg
 Check the subject for commands.
 @item sender
 @cindex Sender
-Insert a new @code{Sender} header if the @code{From} header looks odd. 
-@item multiple-headers 
+Insert a new @code{Sender} header if the @code{From} header looks odd.
+@item multiple-headers
 Check for the existence of multiple equal headers.
-@item sendsys 
+@item sendsys
 @cindex sendsys
 Check for the existence of version and sendsys commands.
 @item message-id
 Check whether the @code{Message-ID} looks ok.
 @item from
 Check whether the @code{From} header seems nice.
-@item long-lines 
+@item long-lines
 @cindex long lines
 Check for too long lines.
 @item control-chars
@@ -965,7 +987,7 @@ Check whether there is any invisible text in the buffer.
 @item empty-headers
 Check whether any of the headers are empty.
 @item existing-newsgroups
-Check whether the newsgroups mentioned in the @code{Newsgroups} and 
+Check whether the newsgroups mentioned in the @code{Newsgroups} and
 @code{Followup-To} headers exist.
 @item valid-newsgroups
 Check whether the @code{Newsgroups} and @code{Followup-to} headers
@@ -1000,7 +1022,7 @@ buffers that are initialized as news.
 @item message-send-news-function
 @vindex message-send-news-function
 Function used to send the current buffer as news.  The default is
-@code{message-send-news}. 
+@code{message-send-news}.
 
 @item message-post-method
 @vindex message-post-method
@@ -1017,7 +1039,7 @@ posting a prepared news message.
 @item message-signature-separator
 @vindex message-signature-separator
 Regexp matching the signature separator.  It is @samp{^-- *$} by
-default. 
+default.
 
 @item mail-header-separator
 @vindex mail-header-separator
@@ -1026,12 +1048,12 @@ follows this line--} by default.
 
 @item message-directory
 @vindex message-directory
-Directory used by many mailey things.  The default is @file{~/Mail/}. 
+Directory used by many mailey things.  The default is @file{~/Mail/}.
 
 @item message-signature-setup-hook
 @vindex message-signature-setup-hook
 Hook run when initializing the message buffer.  It is run after the
-headers have been inserted but before the signature has been inserted. 
+headers have been inserted but before the signature has been inserted.
 
 @item message-setup-hook
 @vindex message-setup-hook
@@ -1040,7 +1062,7 @@ but before yanked text is inserted.
 
 @item message-header-setup-hook
 @vindex message-header-setup-hook
-Hook called narrowed to the headers after initializing the headers. 
+Hook called narrowed to the headers after initializing the headers.
 
 For instance, if you're running Gnus and wish to insert a
 @samp{Mail-Copies-To} header in all your news articles and all messages
@@ -1070,9 +1092,8 @@ If you want to add certain headers before sending, you can use the
 (add-hook 'message-send-hook 'my-message-add-content)
 (defun my-message-add-content ()
   (message-add-header
-   "Mime-Version: 1.0"
-   "Content-Type: text/plain"
-   "Content-Transfer-Encoding: 7bit"))
+   "X-In-No-Sense: Nonsense"
+   "X-Whatever: no"))
 @end lisp
 
 This function won't add the header if the header is already present.
@@ -1131,8 +1152,8 @@ A function to be called if @var{predicate} returns non-@code{nil}.
 
 @table @code
 
-@item message-fcc-handler-function 
-@vindex message-fcc-handler-function 
+@item message-fcc-handler-function
+@vindex message-fcc-handler-function
 A function called to save outgoing articles.  This function will be
 called with the name of the file to store the article in. The default
 function is @code{message-output} which saves in Unix mailbox format.
@@ -1144,7 +1165,7 @@ the mailed copy.  If the string contains the format spec @samp{%s}, the
 newsgroups the article has been posted to will be inserted there.  If
 this variable is @code{nil}, no such courtesy message will be added.
 The default value is @samp{"The following message is a courtesy copy of
-an article\nthat has been posted to %s as well.\n\n"}. 
+an article\nthat has been posted to %s as well.\n\n"}.
 
 @end table
 
@@ -1209,7 +1230,7 @@ If non-@code{nil}, kill the buffer immediately on exit.
 When Message is being used from a news/mail reader, the reader is likely
 to want to perform some task after the message has been sent.  Perhaps
 return to the previous window configuration or mark an article as
-replied.  
+replied.
 
 @vindex message-kill-actions
 @vindex message-postpone-actions
@@ -1222,7 +1243,7 @@ C-d} which postpones the message editing and buries the message buffer,
 and @kbd{C-c C-k} which kills the message buffer.  Each of these actions
 have lists associated with them that contains actions to be executed:
 @code{message-send-actions}, @code{message-exit-actions},
-@code{message-postpone-actions}, and @code{message-kill-actions}.  
+@code{message-postpone-actions}, and @code{message-kill-actions}.
 
 Message provides a function to interface with these lists:
 @code{message-add-action}.  The first parameter is the action to be