wl-summary-resend-bounced-mail is M-E (Summary).
[elisp/wanderlust.git] / doc / wl.texi
index 6292bb4..7ecc95b 100644 (file)
@@ -119,6 +119,7 @@ This manual is for Wanderlust @value{VERSION}.
 * Disconnected Operations::  Off-Line management
 * Expire and Archive::       Automatic expiration and archiving of messages
 * Scoring::                  Score of the messages
+* Split messages::           Splitting messages
 * Address Book::             Management of Address Book
 * Customization::            Customizing Wanderlust
 * Terminology::              Terminologies
@@ -146,7 +147,7 @@ The main features of Wanderlust:
 @item Interactive thread display.
 @item Folder Mode shows the list of subscribed folders.
 @item Message Cache, Disconnected Operation (Read Only).
-@item MH-like FCC. (FCC: %Backup and FCC: $Backup is allowed).
+@item MH-like FCC. (Fcc: %Backup and Fcc: $Backup is allowed).
 @item MIME compliant (by SEMI).
 @item Transmission of news and mail are unified by Message transmitting draft.
 @item Graphical list of folders (XEmacs and Emacs 21).
@@ -162,7 +163,7 @@ The main features of Wanderlust:
 
 @section Environment
 
-Wanderlust is supposed to run on following Emacsen:
+We confirm Wanderlust works on following Emacsen:
 
 @itemize @bullet
 @item Mule 2.3 based on Emacs 19.34
@@ -210,6 +211,7 @@ here.
 * Minimal Settings::  @file{.emacs} setup
 * Folder Definition:: Folder definition
 * Start Wanderlust::  Starting Wanderlust
+* Overview::          Basic components of Wanderlust
 @end menu
 
 
@@ -220,9 +222,9 @@ here.
 @pindex FLIM
 @pindex SEMI
 
-SEMI must be installed to make Wanderlust work correctly.
+You must install SEMI beforehand to use Wanderlust.
 
-SEMI can be downloaded from these sites:
+SEMI can be downloaded from following site:
 
 @example
 @group
@@ -253,7 +255,7 @@ may help you.}.
 Recommended combination of APEL, FLIM and SEMI are following:
 
 @itemize @minus
-@item APEL 10.3, FLIM 1.14.3 and SEMI 1.14.3
+@item APEL 10.4, FLIM 1.14.4 and SEMI 1.14.5
 @end itemize
 
 You can also use many other FLIM/SEMI variants. Combination of the
@@ -261,8 +263,8 @@ latest versions should work.  For example, the following combination are
 confirmed to work.
 
 @itemize @minus
-@item APEL 10.2, Chao 1.14.1, REMI 1.14.2
-@item APEL 10.2, SLIM 1.14.3, EMY 1.13.9
+@item APEL 10.4, SLIM 1.14.9, SEMI 1.14.5
+@item APEL 10.4, CLIME 1.14.5, EMIKO 1.14.1
 @end itemize
 
 You have to re-install Wanderlust if you upgraded APEL, FLIM or SEMI.
@@ -363,9 +365,10 @@ In this case, either add destination directories of custom, APEL, FLIM
 and SEMI to environmental variable @env{EMACSLOADPATH}, or define
 @code{load-path} in @file{WL-CFG} in extracted directory.
 
-If you want to use BBDB, then the necessary modules are byte-compiled
-and installed when BBDB directory is added to @code{load-path}.
-@xref{BBDB}.
+If you want to handle shimbun folders or to use BBDB, add directory
+where emacs-w3m or BBDB is installed to @code{load-path}. Then necessary
+modules will be byte-compiled and installed.
+@xref{Shimbun Folder}, @xref{BBDB}.
 
 @subsection @file{WL-CFG}
 
@@ -488,18 +491,15 @@ The minimal requirement for settings is as the following.
 
 @lisp
 @group
-;; @r{The setting to use SEMI}
-(require 'mime-setup)
-
 ;; @r{autoload configuration}
-;; @r{(These are not required if Wanderlust is installed as XEmacs package)}
+;; @r{(Not required if you have installed Wanderlust as XEmacs package)}
 (autoload 'wl "wl" "Wanderlust" t)
 (autoload 'wl-other-frame "wl" "Wanderlust on new frame." t)
 (autoload 'wl-draft "wl-draft" "Write draft with Wanderlust." t)
 
 ;; @r{Directory where icons are placed.}
 ;; @r{Default: the peculiar value to the running version of Emacs.}
-;; @r{(This is not required if the default value has been set properly)}
+;; @r{(Not required if the default value points properly)}
 (setq wl-icon-directory "~/work/wl/etc")
 
 ;; @r{SMTP server for mail posting. Default: @code{nil}}
@@ -516,9 +516,8 @@ because you can't write them in @file{.emacs}
 (if you write it to @file{.emacs}, you'll get an error).
 @xref{Highlights}.
 
-All above described settings except @samp{(require 'mime-setup)} and autoload
-configuration can be written in
-@file{~/.wl}).
+All above described settings except autoload configuration can be written
+in @file{~/.wl}).
 
 @subsection @code{mail-user-agent}
 @cindex Default Mailer
@@ -526,13 +525,13 @@ configuration can be written in
 @vindex mail-user-agent
 @findex compose-mail
 
-If you write following setting in you @file{.emacs}, you can
+If you write following setting in your @file{~/.emacs}, you can
 start Wanderlust draft mode by typing @kbd{C-x m} (@code{compose-mail}).
 This means it enables you to run Wanderlust as a default mail composer
  of Emacsen.
 
 It is effective only when your Emacs can define @code{mail-user-agent}.
-@xref{Mail Methods, , ,emacs-ja, The Emacs Editor}.
+@xref{Mail Methods, , ,emacs, The Emacs Editor}.
 
 @lisp
 @group
@@ -613,15 +612,15 @@ There are two types of groups. One is like @samp{Emacsen} from above
 example which the user chooses his favorite folders as a group.
 
 The other one is @dfn{access group} like @samp{+ /} from above example.
-It makes all the sub-folders in a folder to a group.  (It differs from
-the type of the folder. For example, @samp{+} followed by @samp{/}
-makes entire MH sub-directories to one group)
+It collects all sub-folders in the folder to make a group.  (Its
+behavior differs by the type of the folder. For example, @samp{+}
+followed by @samp{/} makes entire MH sub-directories to one group)
 
 This behavior is better understood if you try it and confirmed the
 function first. You can write and try a small folder definition, so you
 will know the idea of the folder function before writing the real one.
 
-@node Start Wanderlust,  , Folder Definition, Start Me Up
+@node Start Wanderlust, Overview, Folder Definition, Start Me Up
 @section Start Wanderlust
 @cindex Start Wanderlust
 
@@ -633,31 +632,37 @@ M-x wl
 @end example
 
 @noindent
-After initialization, Folder Mode which shows the list of folders will appear.
-That means the folders you defined in the @file{~/.folders} are listed
+After initialization, Folder Mode which shows the list of folders will
+appear. That means the folders you defined in the @file{~/.folders} are
+listed.
+
 If you start Wanderlust with prefix argument like @kbd{C-u M-x wl}, you
 can skip folder checking.
 
+
+@node Overview,  , Start Wanderlust, Start Me Up
+@section Overview
+@cindex Overview
+
 Basically, you will handle messages in wanderlust while you come and go
-from/to each of the following buffers.
+from/to each of the following buffers.  Details of each ones are
+explained in following chapters.
 
 @table @samp
 @item Folder Buffer
 You can see the list of folders. You can select some folder and go into the summary
 of it. You can subscribe new folder or edit subscription list.
 @item Summary Buffer
-You can see the list of messages in the folder. You can select message and view its
-contents, and reply to some message. You can delete ones or move ones to another
-folder.
+You can see the list of messages in the folder. You can select message
+and view its contents, and reply to some message. You can delete ones or
+move ones to another folder.
 @item Message Buffer
-You can see the contents of the message. You can save part to disk or open in external
-programs.
+You can see the contents of the message. You can save part to disk or
+open in external programs.
 @item Draft Buffer
 You can edit message.
 @end table
 
-Details of each ones are explained later.
-
 
 @node Folders, Folder, Start Me Up, Top
 @chapter Wanderlust's folders
@@ -665,8 +670,8 @@ Details of each ones are explained later.
 
 This chapter describes the folder types which Wanderlust is able to handle.
 
-Wanderlust uses ELMO as it's interface, so every folder types supported
-by ELMO is usable in Wanderlust.
+Wanderlust uses ELMO as it's interface, so you can use every folder types
+supported by ELMO.
 
 As of version @value{VERSION}, 11 types of folders are predefined. These are
 IMAP, NNTP, LocalDir(MH), Maildir, News Spool, Archive, POP, Multi, Filter,
@@ -792,47 +797,24 @@ Example:
 @pindex ucs-conv
 
 You can use international mailbox names in @var{mailbox} part, if you
-are using Emacs which can treat unicode and
+are using Emacs with UTF-7 support and
 @code{elmo-imap4-use-modified-utf7} is set to non-nil value (default
 value is @code{nil}).
 
-Currently, following Emacsen can treat unicode.
+Currently, Mule-UCS package is required to use UTF-7.
+Mule-UCS works on following Emacsen.
 
 @itemize @bullet
-@item Emacs 20.3 or later + Mule-UCS
+@item Emacs 20.3 or later
+@item XEmacs 21.2.37 or later
+@end itemize
 
-If you installed Mule-UCS package, Emacs can treat unicode.
 You can obtain Mule-UCS package from following URL.
 
 @example
 ftp://ftp.m17n.org/pub/mule/Mule-UCS/
 @end example
 
-@item XEmacs 21.2.13 or later + ucs-conv package
-
-By default, XEmacs 21 cannot treat unicodes, but if you installed
-ucs-conv package, it can.
-You can obtain ucs-conv package from following anonymous CVS.
-
-@example
-@group
-cvs -d :pserver:anonymous@@cvs.m17n.org:/cvs/root login
-Password: @var{NULL} (Just enter return key)
-cvs -d :pserver:anonymous@@cvs.m17n.org:/cvs/root checkout ucs-conv
-@end group
-@end example
-
-You also need utf7 conversion programs, @command{u7tou8} and
-@command{u8tou7} to use international mailbox name in the current
-XEmacs.  These programs are included in the UTF7 package which can be
-obtained from following URL.
-
-@example
-ftp://ftp.ifcss.org/pub/software/unix/convert/utf7.tar.gz
-@end example
-@end itemize
-
-
 @node NNTP Folder, MH Folder, IMAP Folder, Folders
 @section NNTP Folder
 @cindex @samp{-}
@@ -1623,13 +1605,13 @@ For example, if you specify following
 @end example
 
 @noindent
-and access it, messages are downloaded automatically from
-@samp{&username@@popserver} to @samp{+inbox}.
+and access it, Wanderlust downloads messages from
+@samp{&username@@popserver} to @samp{+inbox} automatically.
 
 On the other hand, if you put @samp{|:} instead of second @samp{|},
 then messages are copied to the destination folder (not deleted from
-source-folder). At the next time you access that folder, only new
-messages will be copied.
+source-folder). At the next time you access that folder, copies new
+messages only.
 
 @example
 @samp{|} @var{source-folder} @samp{|:} @var{destination-folder}
@@ -2090,7 +2072,7 @@ For example, if you specify
 @end lisp
 
 @noindent
-such access group hierarchy is obtained.
+you obtain the access group hierarchy as follows.
 
 @example
 @group
@@ -2165,9 +2147,9 @@ To append new folder to the empty folder group
 (after you create folder group by typing @kbd{m g}),
 firstly open it, then execute append command in the next line.
 If it is closed, folder is appended on the same level with
-the above folder group. It is difficult to explain by words so try it.
+the folder group above. It is difficult to explain by words so try it.
 In other words, appended position depends on the
-above folder group's open/close status.
+open/close status of the upper one.
 
 @subsubsection Charset of the Folders File.
 
@@ -2500,6 +2482,7 @@ mode.
 * Cache::                       File cache, Buffer cache, and Prefetch
 * Auto Refile::                 Auto refile settings
 * Sticky Summary::              Summary make sticky
+* Summary View::                Format of summary lines
 * Key Bindings of Summary::     Key bindings
 * Variables of Summary::        Customize Summary Mode
 @end menu
@@ -2528,7 +2511,9 @@ Each line displays:
 @end example
 
 @noindent
-You cannot change this in the current version.
+If you want to know how to change the format for this, please refer
+the section format of Summary lines.
+@xref{Summary View}.
 
 @var{Message number} is the message's unique number in the folder. In
 the NNTP folder, it is article number, in the IMAP folder, it is UID and
@@ -2688,14 +2673,16 @@ message then you have the reconstructed thread.
 @subsection Cache File
 
 The messages which have to access via network (e.x. IMAP, NNTP folder)
-are cached as a local file.  The cache file is saved under the directory
+are cached as a local file so as to save network traffic or to enable
+off-line operation.  The cache file is saved under the directory
 @file{~/.elmo/cache}.  To expire cache, type @kbd{M-x
 elmo-cache-expire-by-size}.  The command deletes cache files to the
 specified size by the order of last accessed time.
 
 @subsection Buffer Cache and Prefetching
 
-The messages that are read are kept in the cache buffer.  It is called
+The messages that are read are kept in the cache buffer so as to make
+the behavior fast when you are to read the message again.  It is called
 `buffer cache'. The number of cache buffer is specified by
 @code{wl-message-buffer-cache-size}.
 
@@ -2808,8 +2795,8 @@ folder string. You can specify a rule at @var{target} part, too.  In this
 case, If the field value of the rule and the current rule is matched,
 then the current rule is fired (i.e. AND condition).
 
-In @var{target} part, you can refer matched substring of @var{regexp}.
-To refer substring, specify following in @var{target}:
+You can refer matched substring of @var{regexp} to specify @var{target} part.
+To refer substring, use following keys:
 
 @table @samp
 @item \&
@@ -2852,7 +2839,7 @@ To execute auto refile on all messages, set following.
 @end lisp
 
 
-@node Sticky Summary, Key Bindings of Summary, Auto Refile, Summary
+@node Sticky Summary, Summary View, Auto Refile, Summary
 @section Sticky Summary
 @cindex Summary, Sticky
 @cindex Sticky Summary
@@ -2880,7 +2867,102 @@ are same as normal summary.
 are automatically stuck.
 
 
-@node Key Bindings of Summary, Variables of Summary, Sticky Summary, Summary
+@node Summary View, Key Bindings of Summary, Sticky Summary, Summary
+@section Format of summary lines
+@cindex Format of summary lines
+You can alter the format of lines in Summary mode.
+
+Summary line format is specified by @code{wl-summary-line-format}.
+You can use control strings defined by
+@code{wl-summary-line-format-spec-alist}.
+
+An example follows.
+
+@lisp
+@group
+;; @r{number temporary-mark persistent-mark date branch}
+;; @r{[ (number-of-children) sender ] subject}
+(setq wl-summary-line-format "%n%T%P%M/%D(%W) %t%[%17(%c %f%) %] %s")
+@end group
+@end lisp
+
+Where the number set the column number of the field (for negative value,
+filled from right)
+
+Major control strings defined by @code{wl-summary-line-format-spec-alist}
+are displayed in the following list.
+
+@example
+@group
+%n  message number
+%Y  year
+%M  month
+%D  day
+%W  day of week
+%h  hour
+%m  minute
+%t  branch of the thread
+%[  [ (< for re-connected child)
+%]  ] (> for re-connected child)
+%f  sender
+%s  subject
+%S  size
+%c  +number-of-children: (display only for opened thread)
+%C  [+number-of-children] (display only for opened thread)
+%T  temporary mark (mandatory)
+%P  persistent mark (mandatory)
+@end group
+@end example
+
+@code{wl-summary-line-format} must contain temporary mark (@samp{%T})
+and persistent mark (@samp{%P}). Furthermore, these marks must appear at
+the constant column. For example, if you specify @samp{%T} or
+@samp{%P} after the @samp{%t}, which changes its length by thread
+position, marks are not treated correctly.
+
+If the format string is enclosed by @samp{%number(} and @samp{%)}, the
+column of the enclosed region is justified to the `number'. Multiple
+level @samp{%number(} parenthesis can be defined.  It is useful to
+justify the column of the multiple control strings.  For example, in the
+above @code{wl-summary-line-format},
+
+@example
+%17(%c %f%)
+@end example
+
+means ``Adjust number-of-children and sender string to the 17 column''.
+
+You can specify the format by each folders with
+@code{wl-folder-summary-line-format-alist}.  Please set regular
+expression for folder names and summary line format as the following
+example.
+
+@lisp
+@group
+(setq wl-folder-summary-line-format-alist
+      '(("^%" . "%T%P%M/%D(%W)%h:%m %t%[%17(%c %f%) %] %s")
+        ("^+" . "%n%T%P%M/%D %[ %17f %] %t%C%s")))
+@end group
+@end lisp
+
+@subsection on the format for sender name
+
+The format string @samp{%f} displays the return value of the function specified
+by @code{wl-summary-from-function}. If you use the function
+@code{wl-summary-default-from} (default), it displays sender name ordinarily,
+while displays the recipient names if the folder name matches with
+@code{wl-summary-showto-folder-regexp} and the sender is yourself.
+If the value of @code{wl-use-petname} is Non-nil, it uses petname to display.
+
+For example, to display recipient names for the message in @samp{+backup} if
+its sender is yourself, set up as follows.
+
+@lisp
+(setq wl-summary-showto-folder-regexp "^\\+backup$")
+@end lisp
+
+
+@node Key Bindings of Summary, Variables of Summary, Summary View, Summary
 @section Key bindings
 @cindex Keybind, Summary Mode
 @cindex Keybind, Summary Buffer
@@ -2996,8 +3078,8 @@ If the message at current cursor point is your own netnews article,
 a draft for `supersedes message' for the message is prepared.
 (@code{wl-summary-reedit})
 
-@item M-e
-@kindex M-e (Summary)
+@item M-E
+@kindex M-E (Summary)
 @findex wl-summary-resend-bounced-mail
 If the message at current cursor point is a bounced message,
 a draft for re-sending original message is prepared.
@@ -3101,6 +3183,8 @@ Redisplay the message at current cursor point without MIME analysis.
 If the message at current cursor point has
 encapsulates multiple messages using MIME,
 de-capsulate and extract them on the current folder.
+If it is invoked in non-writable folder or it is called with prefix
+argument, it asks the destination folder.
 (@code{wl-summary-burst})
 
 @item @@
@@ -3568,6 +3652,25 @@ That is, @samp{*} marks on the messages are remained
 if the specified condition is satisfied.
 (@code{wl-summary-target-mark-pick})
 
+@item m #
+@kindex m # (Summary)
+@findex wl-summary-target-mark-print
+Print out all messages which have target mark @samp{*}.
+(@code{wl-summary-target-mark-print})
+
+@item m |
+@kindex m | (Summary)
+@findex wl-summary-target-mark-pipe
+Pipe content of each message with target mark @samp{*} to some specified
+external process.
+(@code{wl-summary-target-mark-pipe})
+
+@item D
+@kindex D (Summary)
+@findex wl-summary-erase
+Actually erase the message at once, without moving it to trash.
+(@code{wl-summary-erase})
+
 @item M-t
 @kindex M-t (Summary)
 @findex wl-toggle-plugged
@@ -3751,11 +3854,6 @@ Width of summary line. If @code{nil}, summary line's width is as is.
 The initial setting is 17.
 Width of sender part of summary line.
 
-@item wl-summary-subject-length-limit
-@vindex wl-summary-subject-length-limit
-The initial setting is @code{nil}. Specify the limit for the length of
-subject parts in summary. @code{nil} means unlimited.
-
 @item wl-summary-indent-length-limit
 @vindex  wl-summary-indent-length-limit
 The initial setting is 46.
@@ -3938,7 +4036,7 @@ mode buffer.
 @item l
 @kindex l (Message)
 @findex wl-message-toggle-disp-summary
-Toggles display of Summary mode buffer.
+Toggles display of Summary buffer.
 (@code{wl-message-toggle-disp-summary})
 
 @item Button-2
@@ -3961,6 +4059,14 @@ moves to the previous message.
 Scrolls the message forward.  When the bottom of the message is hit,
 moves to the next message.
 (@code{wl-message-wheel-up})
+
+@item D
+@kindex D (Message)
+@findex wl-message-delete-current-part
+Delete the part under cursor. In fact it appends modified message to
+the current folder then moves old one to trash folder. Therefore the
+message number will be changed.
+(@code{wl-message-delete-current-part})
 @end table
 
 @section Customizable Variables
@@ -4009,31 +4115,93 @@ buffer.  You can edit and send mail and news articles in this buffer.
 By pressing @kbd{W}, Wanderlust guess addressees and prepare draft buffer
 with those if possible.
 
+@menu
+* Usage of Draft Mode::         TIPS
+* Key Bindings of Draft::       Key bindings
+* Variables of Draft Mode::     Customize Draft Mode
+@end menu
+
+@node Usage of Draft Mode, Key Bindings of Draft, Draft, Draft
 @section Tips
 
 Basically it is Emacs-standard mail mode.
 
-@subsection Address Completion
+@menu
+* Editing Header::
+* Editing Message Body::
+* Dynamical Message Re-arrangement::
+* Template::
+* POP-before-SMTP::
+@end menu
+
+@node Editing Header, Editing Message Body, Usage of Draft Mode, Usage of Draft Mode
+@subsection Editing Message Header
+
+You can freely edit header region above @samp{--text follows this line--},
+until you invoke the sending operation.
 
 Initially, the cursor is at the @samp{To:} field.  Fill in recipients
 addresses.  @kbd{@key{TAB}} completes them.
 
-If you want to submit a news article, add @samp{Newsgroups:} field by
-yourself.  Field names can be completed by @kbd{@key{TAB}}.
+You can use following headers to specify recipients. Add some of them
+by yourself. Field names can be completed by @kbd{@key{TAB}}.
 
-If you save the draft buffer you are editing, it is appended to the
-folder specified by @code{wl-draft-folder}.
+@table @asis
+@item @samp{Newsgroups:}
+Specify newsgroups to which you post the news article.
+
+@item @samp{Cc:}
+Specify addresses to send a copy (Carbon Copy) of the message.
+@end table
+
+Following ones are removed from the header contents before sending.
 
-Using @samp{FCC:} field, you can specify the folder to which a copy of
-the message is saved when it is sent.
+@table @asis
+@item @samp{Bcc:}
+Specify addresses to send a copy (Blind Carbon Copy) of the message.
 
+@item @samp{Fcc:}
+Specify folders in which a copy of the message is saved.
+
+@item @samp{Ecc:}
+Specify recipients to send encapsulated copy of the message.
+@end table
+
+You can add initial headers by following variables.
+
+@table @code
+
+@item wl-fcc
+@vindex wl-fcc
+The initial setting is @code{nil}.
+If non-nil, the value of this variable is inserted as a @samp{Fcc:} of
+the draft when it is prepared.  If function is specified, its return
+value is used.
+
+@item wl-bcc
+@vindex wl-bcc
+The initial setting is @code{nil}.
+If non-nil, the value of this variable is inserted as a @samp{Bcc:} of
+the draft when it is prepared.
+@end table
+
+@node Editing Message Body, Dynamical Message Re-arrangement, Editing Header, Usage of Draft Mode
 @subsection Editing Messages
 
+As a matter of course, editing message body can be performed in the same
+way as usual writing. You may write message body under
+@samp{--text follows this line--} line. (NOTE: Be sure to leave the line
+@samp{--text follows this line--} intact.)
+
 Multi-part editing utilize MIME edit mode of SEMI.  For procedures of
 editing, refer to respective documents.  @xref{MIME-Edit, , ,mime-ui-en,
 a MIME user interface for GNU Emacs}.
 You can also see help by @kbd{C-c C-x ?} in draft buffer.
 
+If you save the draft buffer you are editing, it is appended to the
+folder specified by @code{wl-draft-folder}.
+
+@node Dynamical Message Re-arrangement, Template, Editing Message Body, Usage of Draft Mode
 @subsection Dynamic Modification of Messages
 @vindex wl-draft-config-alist
 @c @cindex Change Message
@@ -4129,9 +4297,6 @@ In the cdr part of a cons, not only a variable but also an elisp
 expression can be specified as is.  If the car part is a header field
 and the cdr part is @code{nil}, the field will be deleted.
 
-If you want to use name of parent folder, you can refer the buffer local
-variable @code{wl-draft-parent-folder}.
-
 See the next example as well:
 
 @lisp
@@ -4152,6 +4317,22 @@ example, and when it matches the header being replied.  It is ignored
 when there is no buffer being replied, like after @code{wl-draft} was
 invoked.
 
+If you want to use name of parent folder, you can refer the buffer local
+variable @code{wl-draft-parent-folder}. In the following example, Wanderlust
+changes From according to the folder name of the summary in which the draft
+was invoked.
+
+@lisp
+@group
+(setq wl-draft-config-alist
+      '(((string-match \".*@@domain1$\" wl-draft-parent-folder)
+         (\"From\" . \"user@@domain1\"))
+        ((string-match \".*@@domain2$\" wl-draft-parent-folder)
+         (\"From\" . \"user@@domain2\"))))
+@end group
+@end lisp
+
+
 Note that @code{wl-draft-config-alist} is applied only once when
 @code{wl-draft-send-and-exit} or @code{wl-draft-send} is invoked.
 Therefore, if you want to apply @code{wl-draft-config-alist} again after
@@ -4181,6 +4362,7 @@ following:
 (add-hook 'wl-draft-reedit-hook 'wl-draft-config-exec)
 @end lisp
 
+@node Template, POP-before-SMTP, Dynamical Message Re-arrangement, Usage of Draft Mode
 @subsection Inserting Templates
 @cindex Template
 @cindex Apply Template
@@ -4235,6 +4417,7 @@ As shown in the example in @code{wl-draft-config-alist}, you can select
 (template . "default")
 @end lisp
 
+@node POP-before-SMTP,  , Template, Usage of Draft Mode
 @subsection Sending mail by POP-before-SMTP
 @cindex POP-before-SMTP
 
@@ -4286,6 +4469,8 @@ http://www.iecc.com/pop-before-smtp.html
 @end group
 @end example
 
+
+@node Key Bindings of Draft, Variables of Draft Mode, Usage of Draft Mode, Draft
 @section Key Bindings
 @cindex Keybind, Draft Mode
 @cindex Keybind, Draft Buffer
@@ -4295,7 +4480,10 @@ http://www.iecc.com/pop-before-smtp.html
 @item C-c C-y
 @kindex C-c C-y (Draft)
 @findex wl-draft-yank-original
-Cites the content of the current message buffer.
+Cites the content of the current message buffer (the part under cursor).
+If the region is active, cites the region (it affects only if
+@code{transient-mark-mode} (on GNU Emacs) or @code{zmacs-regions}
+(on XEmacs) is Non-nil).
 (@code{wl-draft-yank-original})
 
 @item C-c C-p
@@ -4400,6 +4588,7 @@ The text is killed and replaced with the contents of the variable
 (@samp{[...]}).
 @end table
 
+@node Variables of Draft Mode,  , Key Bindings of Draft, Draft
 @section Customizable Variables
 
 @table @code
@@ -4521,11 +4710,25 @@ The initial setting is 7.
 If @code{wl-template-visible-select} is non-nil, this variable specifies
 the size of the preview window.
 
+@item wl-draft-buffer-style
+@vindex wl-draft-buffer-style
+The initial setting is @code{full}.
+Style of draft buffer window (except for replying and forwarding).
+@code{keep} is to use current window,
+@code{full} is to use full frame window,
+@code{split} is to split current window and use it.
+If some function is specified, it is called with the draft buffer
+as an argument.
+
 @item wl-draft-reply-buffer-style
 @vindex wl-draft-reply-buffer-style
-The initial setting is @code{split}.  @code{split} or @code{full} can be
-specified.  In the case of @code{full}, the whole frame will be used for
-a reply draft buffer when it is prepared.
+The initial setting is @code{split}.
+Style of draft buffer for replying and forwarding.
+@code{keep} is to use message buffer window,
+@code{full} is to use full frame window,
+@code{split} is to split message buffer window and use it.
+If some function is specified, it is called with the draft buffer
+as an argument.
 
 @item wl-draft-use-frame
 @vindex wl-draft-use-frame
@@ -4555,25 +4758,18 @@ The initial setting is @code{nil}.
 This is the User's address list.  If you have multiple addresses,
 set this variable.
 
-@item wl-fcc
-@vindex wl-fcc
-The initial setting is @code{nil}.
-If non-nil, the value of this variable is inserted as a @samp{Fcc:} of
-the draft when it is prepared.  If function is specified, its return
-value is used.
-
-@item wl-bcc
-@vindex wl-bcc
-The initial setting is @code{nil}.
-If non-nil, the value of this variable is inserted as a @samp{Bcc:} of
-the draft when it is prepared.
-
 @item wl-reply-subject-prefix
 @vindex wl-reply-subject-prefix
 The initial setting is @samp{Re: }.
 In the @samp{Subject:} of the reply draft, this string is prepended to
 the @samp{Subject:} of being replied.
 
+@item wl-forward-subject-prefix
+@vindex wl-forward-subject-prefix
+The initial setting is @samp{Forward: }.
+In the @samp{Subject:} of the forwarding draft, this string is prepended
+to the @samp{Subject:} of being forwarded.
+
 @item wl-draft-reply-use-address-with-full-name
 @vindex wl-draft-reply-use-address-with-full-name
 The initial setting is @code{t}.
@@ -4621,13 +4817,19 @@ If non-nil, always removes your own address from @samp{To:} and
 @item wl-draft-delete-myself-from-bcc-fcc
 @vindex wl-draft-delete-myself-from-bcc-fcc
 If any of @code{wl-subscribed-mailing-list} are contained in @samp{To:}
-or @samp{Cc:} field, do not insert @samp{Bcc:} or @samp{FCC:} field.
+or @samp{Cc:} field, do not insert @samp{Bcc:} or @samp{Fcc:} field.
 
 @item wl-smtp-posting-server
 @vindex wl-smtp-posting-server
 The initial setting is @code{nil}.
 This is the SMTP server name for mail transmission.
 
+@item wl-smtp-posting-port
+@vindex wl-smtp-posting-port
+The initial setting is @code{nil}.
+This is the SMTP port number for mail transmission.
+If @code{nil}, default SMTP port number (25) is used.
+
 @item wl-smtp-posting-user
 @vindex wl-smtp-posting-user
 The initial setting is @code{nil}.
@@ -4675,6 +4877,30 @@ If @code{nil}, @code{elmo-nntp-default-stream-type} is evaluated.  If non-nil,
 SSL is used for news submission.  If @code{starttls}, STARTTLS (RFC2595)
 connection will be established.
 
+@item wl-nntp-posting-function
+@vindex wl-nntp-posting-function
+The initial setting is @code{elmo-nntp-post}.
+This is the function to post NNTP message.
+
+@item wl-nntp-posting-config-alist
+@vindex wl-nntp-posting-config-alist
+The initial setting is @code{nil}.
+The value takes an alist to define NNTP server like following example.
+It takes precedence over @code{wl-nntp-posting-@{server|user|port|function@}}.
+
+@lisp
+@group
+(setq wl-nntp-posting-config-alist
+      '((",?gmane\\." . "news.gmane.org")
+        (",?comp\\." .
+         ((server . "news-server")
+          (user . "newsmaster")
+          (port . 119)
+          (function . elmo-nntp-post)))
+        (".*" . "default-news-server")))
+@end group
+@end lisp
+
 @item wl-pop-before-smtp-user
 @vindex wl-pop-before-smtp-user
 The initial setting is @code{nil}.
@@ -4817,10 +5043,12 @@ are reflected in the servers via network.
 @node Send Messages off-line, Re-file and Copy queue, Enable Operations, Enable Operations
 @subsection Transmission of Messages
 
-You can send mail/news messages off-line (if you are using
-@file{im-wl.el}, it is irrelevant).  Messages sent off-line are
-accumulated in the queue folder, @samp{+queue}.  These messages are
-transmitted at once when Wanderlust becomes on-line.
+You can proceed sending operation for  mail/news messages while you are
+off-line, then it will be reserved for sending (if you are using
+@file{im-wl.el}, it is irrelevant).
+Messages reserved for sending while off-line are accumulated in the
+queue folder, @samp{+queue}. These messages are transmitted at once when
+Wanderlust becomes on-line.
 
 You can visit @samp{+queue} in the off-line state and confirm content of
 messages in the queue.  You can also remove messages.  Removed messages
@@ -4847,9 +5075,10 @@ re-filed or copied to the specified folders are appended to the folder
 @subsection Creation of Folders (IMAP4)
 
 You can create IMAP folders off-line.  The creation of folders are
-reflected in the servers when Wanderlust becomes on-line.  At that time,
-if folders failed to be created on the servers for any reasons, messages
-re-filed to such folders are appended to the folder @samp{+lost+found}.
+reflected in the servers when Wanderlust becomes on-line.  If the creation
+of those folders fails at that time for some reasons, messages
+to be re-filed into those are appended to the folder @samp{+lost+found}
+instead.
 
 
 @node Marking, Pre-fetching Reservations, Creation of Folders, Enable Operations
@@ -4998,7 +5227,7 @@ manually, press @kbd{F} in the folder mode.
 
 @item elmo-enable-disconnected-operation
 @vindex elmo-enable-disconnected-operation
-The initial setting is @code{nil}.  Controls off-line operations
+The initial setting is @code{t}.  Controls off-line operations
 regarding IMAP4.  If non-nil, off-line operations are carried out.
 
 @item elmo-lost+found-folder
@@ -5622,7 +5851,7 @@ Needless to say, you can use your own function.
 @end table
 
 
-@node Scoring, Address Book, Expire and Archive, Top
+@node Scoring, Split messages, Expire and Archive, Top
 @chapter Score of the Messages
 @cindex Scoring
 @c @cindex Kill File
@@ -6120,7 +6349,137 @@ pop3                      N     E     E     E
 @end example
 
 
-@node Address Book, Customization, Scoring, Top
+@node Split messages, Address Book, Scoring, Top
+@chapter Message splitting
+@cindex Split messages
+
+You can use @code{elmo-split} to split message in folder
+@code{elmo-split-folder} a la @command{procmail} according to some
+specified rules. To use this feature, set as follows in your
+@file{~/.emacs} at first.
+
+@lisp
+(autoload 'elmo-split "elmo-split" "Split messages on the folder." t)
+@end lisp
+
+Then you can invoke @kbd{M-x elmo-split} to split messages according to
+@code{elmo-split-rule}. On the other hand, invoke @kbd{C-u M-x elmo-split}
+to do a rehearsal (do not split actually).
+
+We will describe how to specify the rule. First of all, see following
+example, please.
+
+@lisp
+@group
+(setq elmo-split-rule
+      ;; @r{Store messages from spammers into @samp{+junk}}
+      '(((or (address-equal from "i.am@@spammer")
+            (address-equal from "dull-work@@dull-boy")
+            (address-equal from "death-march@@software")
+            (address-equal from "ares@@aon.at")
+            (address-equal from "get-money@@richman"))
+        "+junk")
+       ;; @r{Store messages from mule mailing list into @samp{%mule}}
+       ((equal x-ml-name "mule") "%mule")
+       ;; @r{Store messages from wanderlust mailing list into @samp{%wanderlust}}
+       ;; @r{and continue evaluating following rules}
+       ((equal x-ml-name "wanderlust") "%wanderlust" continue)
+       ;; @r{Store messages from Yahoo user into @samp{+yahoo-@{username@}}}
+       ((match from "\\(.*\\)@@yahoo\\.com")
+        "+yahoo-\\1")
+       ;; @r{Store unmatched mails into @samp{+inbox}}
+       (t "+inbox")))
+@end group
+@end lisp
+
+The basic unit of the rule is a combination like
+
+@lisp
+(@samp{CONDITION} @samp{ACTION} [@code{continue}])
+@end lisp
+
+If @samp{CONDITION} is true, @samp{ACTION} is performed.
+The 1st element @samp{CONDITION} is a condition represented by a
+balanced expression (sexp). Its grammar will be explained below.
+The 2nd element @samp{ACTION} is the name of the folder to split
+messages into, or a symbol. When the 3rd element @code{continue} is
+specified as symbol, evaluating rules is not stopped even when the
+condition is satisfied.
+
+The grammar for @samp{CONDITION} is as follows. See example above to
+learn how to write the condition practically.
+
+@enumerate
+@item
+Functions which accept argument @samp{FIELD-NAME} and @samp{VALUE}.
+(@samp{FIELD-NAME} is a symbol that describes the field name)
+
+@table @code
+@item @code{equal}
+True if the field value equals to @samp{VALUE}.
+Case of the letters are ignored.
+@item @code{match}
+True if the field value matches to VALUE.
+@samp{VALUE} can contain @code{\&} and @code{\N} which will substitute
+from matching @code{\(\)} patterns in the previous @samp{VALUE}.
+@item @code{address-equal}
+True if one of the addresses in the field equals to
+@samp{VALUE}. Case of the letters are ignored.
+@item @code{address-match}
+True if one of the addresses in the field matches to
+@samp{VALUE}.
+@samp{VALUE} can contain @code{\&} and @code{\N} which will substitute
+from matching @code{\(\)} patterns in the previous @samp{VALUE}.
+@end table
+
+@item
+Functions which accept any number of arguments.
+
+@table @code
+@item @code{or}
+True if one of the argument returns true.
+@item @code{and}
+True if all of the arguments return true.
+@end table
+
+@item
+A symbol.
+
+When a symbol is specified, it is evaluated.
+@end enumerate
+
+You can specify followings as 2nd @samp{ACTION}.
+
+@enumerate
+@item
+folder name
+
+If some string is specified, it will be regarded as the destination
+folder, and the message will be appended to it.
+
+@item
+@samp{delete}
+
+If the symbol  @samp{delete} is specified, delete the substance of the
+message in @code{elmo-split-folder}
+
+@item
+@samp{noop}
+
+If the symbol @samp{noop} is specified, do nothing on the message and
+keep it as it is.
+
+@item
+function
+
+If some function is specified, execute it.
+@end enumerate
+
+If the message passes all rules, it will be dealed along @samp{ACTION}
+specified by @code{elmo-split-default-action}.
+
+
+@node Address Book, Customization, Split messages, Top
 @chapter Address Book
 @cindex Address Book
 
@@ -6271,7 +6630,8 @@ Examples with other packages.
 
 @menu
 * imput::                       imput (im-wl.el)
-* BBDB::                        BBDB
+* BBDB::                        The Insidious Big Brother Database
+* LSDB::                        The Lovely Sister Database
 * supercite::                   supercite.el
 * mu-cite::                     mu-cite.el
 * X-Face::                      x-face,bitmap-mule
@@ -6301,12 +6661,13 @@ If @command{imput} is on the @code{exec-path} at the installation,
 @end lisp
 
 
-@node BBDB, supercite, imput, Living with other packages
+@node BBDB, LSDB, imput, Living with other packages
 @subsection bbdb.el
 @pindex BBDB
 
-Place @file{util/bbdb-wl.el} on the @code{load-path} and do the following
-settings.
+To use The Insidious Big Brother Database (@uref{http://bbdb.sourceforge.net/})
+with Wanderlust, place @file{util/bbdb-wl.el} on the @code{load-path}
+and do the following settings.
 
 If BBDB is on the @code{load-path} at the installation, @file{bbdb-wl.el} is
 byte-compiled and installed.
@@ -6337,7 +6698,29 @@ You can complete address with BBDB by @kbd{M-@key{TAB}}
 in draft buffer.
 
 
-@node supercite, mu-cite, BBDB, Living with other packages
+@node LSDB, supercite, BBDB, Living with other packages
+@subsection lsdb.el
+@pindex LSDB
+
+The following is an example setting to use
+The Lovely Sister Database (@uref{http://sourceforge.jp/projects/lsdb/})
+with Wanderlust.
+
+@lisp
+@group
+(require 'lsdb)
+(lsdb-wl-insinuate)
+(add-hook 'wl-draft-mode-hook
+          (lambda ()
+             (define-key wl-draft-mode-map "\M-\t" 'lsdb-complete-name)))
+@end group
+@end lisp
+
+In this example, bind @kbd{M-@key{TAB}} to @code{lsdb-complete-name}
+(complete address with LSDB).
+
+
+@node supercite, mu-cite, LSDB, Living with other packages
 @subsection sc.el(supercite), sc-register.el
 @pindex sc
 @pindex supercite
@@ -6976,10 +7359,7 @@ If you do not want verbose @samp{User-Agent:} field, do the following:
 @lisp
 @group
 (setq wl-generate-mailer-string-function
-      (function
-       (lambda ()
-         (concat "User-Agent: "
-                 (wl-generate-user-agent-string-1 nil)))))
+      'wl-generate-user-agent-string-1)
 @end group
 @end lisp
 
@@ -6987,11 +7367,10 @@ The following is a example:
 
 @lisp
 @group
-(setq mime-edit-insert-user-agent-field nil)
-(setq wl-generate-mailer-string-function
-      (function
-       (lambda ()
-         (format "X-Mailer: %s" (product-string-1 'wl-version)))))
+(setq wl-generate-mailer-string-function nil)
+(setq wl-draft-additional-header-alist
+      (list
+       (cons 'X-Mailer (lambda () (product-string-1 'wl-version)))))
 @end group
 @end lisp