* wl-vars.el (wl-message-use-header-narrowing): New user option.
[elisp/wanderlust.git] / doc / wl.texi
index fca17f7..4356d33 100644 (file)
@@ -118,10 +118,10 @@ 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
 * Spam Filter::              Spam filtering
-* Customization::            Customizing Wanderlust
+* Advanced Issues::          Advanced Issues
+* Migration::                Switch from older version of Wanderlust
 * Terminology::              Terminologies
 * Mailing List::             Wanderlust mailing list
 * Addition::                 Additional Information
@@ -671,9 +671,10 @@ This chapter describes the folder types which Wanderlust is able to handle.
 Wanderlust uses ELMO as it's interface, so you can use every folder types
 supported by ELMO.
 
-As of version @value{VERSION}, 13 types of folders are predefined. These
+As of version @value{VERSION}, 15 types of folders are predefined. These
 are IMAP, NNTP, LocalDir(MH), Maildir, News Spool, Archive, POP,
-Shimbun, Namazu, Multi, Filter, Pipe and Internal folder types.
+Shimbun, Namazu, Multi, Filter, Pipe, File, Access and Internal folder
+types.
 
 @menu
 * IMAP Folder::                 @samp{%} -- IMAP folder
@@ -689,6 +690,8 @@ Shimbun, Namazu, Multi, Filter, Pipe and Internal folder types.
 * Filter Folder::               @samp{/} -- Filter folder
 * Pipe Folder::                 @samp{|} -- Pipe folder
 * Internal Folder::             @samp{'} -- Internal folder
+* File Folder::                          -- File folder
+* Access Folder::                        -- Access folder
 @end menu
 
 
@@ -743,11 +746,14 @@ if you have to go through a firewall.
 @end lisp
 
 SSL (Secure Socket Layer) connection will be used if a folder name ends
-with @samp{!}. Or, if the value of @code{elmo-imap4-default-stream-type}
-is @code{ssl}, SSL will be the default connection.  If a folder name
-ends with @samp{!!}, STARTTLS connection will be established.  If the
-value of @code{elmo-imap4-default-stream-type} is @code{starttls},
-STARTTLS will be the default connection.
+with @samp{!}.  If a folder name ends with @samp{!!}, STARTTLS
+connection will be established.
+
+If the value of @code{elmo-imap4-default-stream-type} is @code{ssl},
+SSL will be the default connection, i.e. you can omit @samp{!}.  If it
+is is @code{starttls}, STARTTLS will be the default connection.  To use
+normal connection in these cases, add @samp{!direct} at the end of
+folder name.
 
 @lisp
 @group
@@ -846,12 +852,15 @@ default:
 @end example
 
 AUTHINFO is used as authentication method if the @var{username} is
-non-nil.  SSL will be default method if
-@code{elmo-nntp-default-stream-type} is non-nil even if the folder name
-doesn't end with @samp{!}.  If a folder name ends with @samp{!!},
-STARTTLS connection will be established.  if the value of
-@code{elmo-nntp-default-stream-type} is @code{starttls}, STARTTLS will
-be the default connection.
+non-nil.  SSL connection will be used if a folder name ends with @samp{!}.
+If a folder name ends with @samp{!!}, STARTTLS connection will be
+established.
+
+If the value of @code{elmo-nntp-default-stream-type} is @code{ssl},
+SSL will be the default connection, i.e. you can omit @samp{!}.  If it
+is is @code{starttls}, STARTTLS will be the default connection.  To use
+normal connection in these cases, add @samp{!direct} at the end of
+folder name.
 
 Example:
 
@@ -1261,12 +1270,14 @@ To use apop as an @var{authenticate-type}, @file{md5.el} is needed
 (GPL2).
 
 If the last character of the folder name is @samp{!}, Wanderlust
-connects to the POP server via SSL (Secure Socket Layer).  If you set
-non-nil value to @code{elmo-pop3-default-stream-type}, you don't have to put
-@samp{!} in the end of the folder name to use SSL. If a folder name ends
-with @samp{!!}, STARTTLS connection will be established.  if the value
-of @code{elmo-pop3-default-stream-type} is @code{starttls}, STARTTLS will be the
-default connection.
+connects to the POP server via SSL (Secure Socket Layer).  If a folder
+name ends with @samp{!!}, STARTTLS connection will be established.
+
+If the value of @code{elmo-pop3-default-stream-type} is @code{ssl},
+SSL will be the default connection, i.e. you can omit @samp{!}.  If it
+is is @code{starttls}, STARTTLS will be the default connection.  To use
+normal connection in these cases, add @samp{!direct} at the end of
+folder name.
 
 
 @node Shimbun Folder, Namazu Folder, POP Folder, Folders
@@ -1309,10 +1320,19 @@ Example:
 @table @code
 @item elmo-shimbun-update-overview-folder-list
 @vindex elmo-shimbun-update-overview-folder-list
-The initial setting is @code{nil}. You can specify a list of regular
-expressions of shimbun folder names. The overview of matched shimbun
-folder is updated when messages are fetched.
-You should @kbd{s rescan} after fetching to update summary.
+The initial setting is @code{all}. Specify a set of folders to update
+overview when messages are fetched. Specify @code{all} to update
+overview in all shimbun folders. You can specify a list of regular
+expressions of shimbun folder names to restrict affected folders.
+
+Example:
+
+@example
+(setq elmo-shimbun-update-overview-folder-list
+      '("^@@airs\\." "^@@namazu\\."))
+@end example
+
+@kbd{s rescan} is needed after fetching to update summary view.
 @end table
 
 
@@ -1443,6 +1463,7 @@ Example:
 @cindex Folder, Filtering
 @cindex Folder, Virtual
 @cindex Folder, Conditional
+@cindex Flag
 
 A folder to access virtual folder which collects all messages that
 satisfy a condition.
@@ -1474,8 +1495,8 @@ Example:
 @item
 Date filter: @samp{since:@var{date}}, @samp{before:@var{date}}
 
-since: only messages arrived since @var{date} are picked.
-before: only messages arrived before @var{date} are picked.
+since: only messages arrived since @var{date} are picked (@var{date} is included).
+before: only messages arrived before @var{date} are picked (@var{date} is not included).
 
 You can specify following as @var{date}.
 
@@ -1519,9 +1540,48 @@ Example:
 @end example
 
 @item
+Flag filter: @samp{flag:@var{flag-name}}
+
+Pick up messages with flag specified by @var{flag-name}.
+
+You can specify following flag names:
+
+@example
+@group
+unread    -> unread
+important -> important
+answered  -> replied
+forwarded -> forwarded
+digest    -> unread or important
+any       -> unread or replied or forwarded or global-flag.
+@end group
+@end example
+
+You can also use flags which you have set as `global-flag'.  global-flag
+is a flag which has arbitrary name. You can put global-flag on messages
+by invoking @code{wl-summary-set-flags} (Key @key{F}). By default,
+@samp{important} flag is prepared.  You can view messages with
+global-flag by visiting the subfolder of @samp{'flag} folder.
+
+@xref{Internal Folder}.
+
+Example:
+
+@example
+@group
+/flag:digest/%inbox     -> a folder consist of unread or important
+                           message in %inbox.
+/flag:wl/+ML/Wanderlust -> a folder consist of messages with global flag
+                           wl in +ML/Wanderlust.
+@end group
+@end example
+
+@item
 Compound condition
 
-If you combine conditions by character @samp{|}, it is considered as OR condition. @samp{&} is considered as AND condition, likewise.
+A condition starting with @samp{!} indicates a negation.
+If you combine conditions by character @samp{|}, it is considered as OR condition.
+@samp{&} is considered as AND condition, likewise.
 Condition can be grouped by parentheses (@samp{(}, and @samp{)}).
 
 @samp{/tocc:xxxx/} is an abbreviation of @samp{/to:xxxx|cc:xxxx/}.
@@ -1638,11 +1698,12 @@ Example:
 
 After messages are moved, a hook @code{elmo-pipe-drained-hook} is called.
 
-@node Internal Folder,  , Pipe Folder, Folders
+@node Internal Folder, File Folder, Pipe Folder, Folders
 @section Internal folder
 @cindex @samp{'}
 @cindex Internal Folder
 @cindex Folder, @samp{$} mark
+@cindex Flag
 @cindex Cache
 @c @cindex Folder, Null
 
@@ -1661,9 +1722,14 @@ Format:
 A folder named @samp{'flag} is a special virtual folder which collects
 messages which have @var{global-flag}.
 
-Now, @samp{important} flag is supported as @var{global-flag}.  You can
-review important messages at once after you put important marks on the
-messages in the different folders.
+There is @samp{important} flag defined as @var{global-flag} by default.
+You can review important messages at once after you put important marks
+on the messages in the different folders.  If @var{global-flag} is omitted,
+it is treated as @samp{important} flag is specified.
+
+In addition, in summary mode, to be described later, you can freely
+define global flags and put them on messages.
+@xref{Usage of Summary Mode}.
 
 In this folder, if you delete message, @var{global-flag} put on the
 message is removed.  If you append messages to this folder, the message
@@ -1683,6 +1749,54 @@ the name of the subdirectories of the cache directory
 (@file{~/.elmo/cache}).
 
 
+@node File Folder, Access Folder, Internal Folder, Folders
+@section File folder
+@cindex File Folder
+
+File Folder gives the view for local file system. 
+The one File Folder corresponds to the one directory.
+
+Format:
+
+@example
+@samp{file:} @var{Path-of-the-directory}
+@end example
+
+Example:
+
+@example
+@group
+file:~/work     -> @file{~/work}
+file:/etc       -> @file{/etc}
+@end group
+@end example
+
+
+@node Access Folder,  , File Folder, Folders
+@section Access folder
+@cindex Access Folder
+
+A folder to access virtual folder which collects messages from a root
+folder and subfolders of one.  The add and remove of the subfolder is
+automatically reflected.
+
+
+Format:
+
+@example
+@samp{access:} @var{root-folder}
+@end example
+
+Example:
+
+@example
+@group
+access:%INBOX -> All subfolders of IMAP mailbox "inbox".
+access:'cache -> All of 'cache folder
+@end group
+@end example
+
+
 @node Folder, Summary, Folders, Top
 @chapter Folder mode
 @cindex Folder
@@ -1846,22 +1960,26 @@ current cursor point.
 
 @item N
 @kindex N (Folder)
+@findex wl-folder-next-unread
 Jump cursor to the folder which have unread messages on the downward
 from current cursor point.
 (@code{wl-folder-next-unread})
 
 @item p
 @kindex p (Folder)
+@findex wl-folder-prev-entity
 Move cursor to the folder on the previous line.
 (@code{wl-folder-prev-entity})
 
 @item n
 @kindex n (Folder)
+@findex wl-folder-next-entity
 Move cursor to the folder on the next line.
 (@code{wl-folder-next-entity})
 
 @item J
 @kindex J (Folder)
+@findex wl-folder-jump-folder
 Jump to the folder specified by the user input.
 (@code{wl-folder-jump-folder})
 
@@ -1916,44 +2034,57 @@ Search the folders with the condition specified.
 All unread folder is opened.
 (@code{wl-folder-open-all-unread-folder})
 
+@item x
+@kindex x (Folder)
+@findex wl-execute-temp-marks
+Execute marks in summary buffers. @xref{Sticky Summary}.
+(@code{wl-execute-temp-marks})
+
 @item /
 @kindex / (Folder)
 @findex wl-folder-open-close
 Folder group is opened/closed.
-(@code{wl-thread-open-close})
+(@code{wl-folder-open-close})
 
 @item [
 @kindex [ (Folder)
+@findex wl-folder-open-all
 All folder group is opened.
 (@code{wl-folder-open-all})
 
 @item ]
 @kindex ] (Folder)
+@findex wl-folder-close-all
 All folder group is closed.
 (@code{wl-folder-close-all})
 
 @item q
 @kindex q (Folder)
+@findex wl-exit
 Quit Wanderlust.
 (@code{wl-exit})
 
 @item z
 @kindex z (Folder)
+@findex wl-folder-suspend
 Suspend Wanderlust.
 (@code{wl-folder-suspend})
 
 @item M-s
 @kindex M-s (Folder)
+@findex wl-save
 Save current folder status.
 (@code{wl-save})
 
 @item M-t
 @kindex M-t (Folder)
+@findex wl-toggle-plugged
 Toggle Wanderlust's offline/online status.
 (@code{wl-toggle-plugged})
 
 @item C-t
 @kindex C-t (Folder)
+@findex wl-plugged-change
 Start Wanderlust's plug-status manager.
 (@code{wl-plugged-change})
 @end table
@@ -2101,7 +2232,8 @@ You can append, delete, edit folders from folder mode.
 
 @subsubsection Append Folder
 
-@kbd{m a} appends new folder to the folder mode.
+@kbd{m a} appends new folder to your folder list. If you enter non-existent
+folder, it will ask you to create a new one.
 @kbd{m g} appends new folder group.
 To append new folder to this group, firstly open it,
 then execute append command in the next line.
@@ -2218,7 +2350,8 @@ one stroke key binding.
 @item m a
 @kindex m a (Folder)
 @findex wl-fldmgr-add
-Insert a folder.
+Add specified folder to your folder list . If you enter non-existent
+folder, create it after confirmation.
 (@code{wl-fldmgr-add})
 
 @item +
@@ -2469,6 +2602,7 @@ mode.
 * Auto Refile::                 Auto refile settings
 * Sticky Summary::              Summary make sticky
 * Summary View::                Format of summary lines
+* Mark and Action::             Temporary marks and their effect
 * Key Bindings of Summary::     Key bindings
 * Variables of Summary::        Customize Summary Mode
 @end menu
@@ -2530,7 +2664,7 @@ message has empty subject field.
 @subsection Temporary Marks
 @cindex Mark, Temporary
 
-There are four temporary marks,
+There are seven temporary marks,
 @samp{*}, @samp{d}, @samp{D}, @samp{o}, @samp{O}, @samp{i} and @samp{~}.
 Temporary marks indicates message operations.
 
@@ -2571,8 +2705,8 @@ Your answer is printed in the summary line.
 
 @subsection Persistent Marks
 
-There are five persistent marks, @samp{N}, @samp{?}, @samp{U}, @samp{!},
-@samp{u}, @samp{A}, @samp{&} and @samp{$}.
+There are ten persistent marks, @samp{!}, @samp{N}, @samp{n}, @samp{U},
+@samp{u}, @samp{A}, @samp{a}, @samp{F}, @samp{f} and @samp{$}.
 
 The persistent mark indicates the message's status and it is saved.
 Each persistent mark indicates:
@@ -2580,35 +2714,44 @@ Each persistent mark indicates:
 @table @samp
 @item N
 It is new message.
-@item ?
-It is new but cached message.
+@item n
+It is new message. It differs from @samp{N} that message with @samp{n}
+is already cached.
 @item U
 It is unread message.
-@item !
-It is unread but cached message.
 @item u
-It is read but it is not cached.
+It is unread message. It differs from @samp{U} that message with @samp{u}
+is already cached.
+@item !
+It is message already read. It differs from message without mark that
+message with @samp{!} is not cached yet.
 @item A
 It is already replied message.
-@item &
-It is already replied but cached message.
+@item a
+It is already replied message. It differs from @samp{A} that message
+with @samp{a} is already cached.
+@item F
+It is already forwarded message.
+@item f
+It is already forwarded message. It differs from @samp{F} that message
+with @samp{f} is already cached.
 @item $
-It is important message.  You can put @samp{$} mark by typing @kbd{$}
-key (if already exists, the mark is deleted).  It is convenient to put
-this mark on the messages to remember (If you want to remember to write
-a reply for the message, for example) because this mark remains after
-you exited Emacs.  Messages with the @samp{$} mark can be reviewed in the
-@samp{'mark} folder even the message itself is deleted in the actual folder.
+It is a message with some global flag.  It is convenient to put this
+mark on the messages to remember (If you want to remember to write a
+reply for the message, for example) because this mark remains after
+you exited Emacs.  Messages with the @samp{$} mark can be reviewed in
+the @samp{'flag} folder even the message itself is deleted in the actual
+folder. You can put global flag by typing @kbd{$} or @kbd{F} key.
 
 @item None
 If the message is read and cached (or local message),there are no
 persistent mark.
 @end table
 
-@samp{N}, @samp{U}, @samp{u}, @samp{A} indicates that the message have
-no cache.  Messages with the marks other than these, you can read them
-in the offline status even they are in the IMAP folder or netnews
-folder.
+@samp{N}, @samp{U}, @samp{!}, @samp{A}, @samp{F} indicates that the
+message have no cache.  Messages with the marks other than these, you
+can read them in the offline status even they are in the IMAP folder or
+netnews folder.
 
 Among messages with persistent marks, ones with marks specified by 
 @code{wl-summary-expire-reserve-marks} are excluded from the expiration
@@ -2700,22 +2843,13 @@ variables.
 @table @code
 @item wl-message-buffer-prefetch-folder-type-list
 @vindex wl-message-buffer-prefetch-folder-type-list
-The initial setting is @code{t}. In this case, prefetch messages in all
-folders.
-If it is a list of folder types, it specifies the folder types in which
-message prefetching is enabled.
-Following is an example (prefetch messages in nntp and imap4 folders)
-
-@lisp
-@group
-(setq wl-message-buffer-prefetch-folder-type-list
-      '(nntp imap4))
-@end group
-@end lisp
-
-In this case, multi folder that contains localdir and imap4 prefetches
-only imap4 messages.  This variable precedes the value of
+The initial setting is @code{'(imap4 nntp)}.  If it is a list of folder
+types, it specifies the folder types in which message prefetching is
+enabled. In initial setting, messages are prefetch only in the nntp and
+imap4 folders. In this case, multi folder that contains localdir and 
+imap4 prefetches only imap4 messages. This variable precedes the value of
 @code{wl-message-buffer-prefetch-folder-list}.
+To prefetch messages in all folder types, specify @code{t}.
 
 @item wl-message-buffer-prefetch-folder-list
 @vindex wl-message-buffer-prefetch-folder-list
@@ -2724,11 +2858,11 @@ A list of regexp of folders to enable message prefetching.
 
 @item wl-message-buffer-prefetch-depth
 @vindex wl-message-buffer-prefetch-depth
-The initial setting is 3. The number of messages for automatical prefetch.
+The initial setting is 1. The number of messages for automatical prefetch.
 
 @item wl-message-buffer-prefetch-idle-time
 @vindex wl-message-buffer-prefetch-idle-time
-The initial setting is 0.2 (in seconds). The period of automatical prefetch.
+The initial setting is 1 (in seconds). The period of automatical prefetch.
 
 @item wl-message-buffer-prefetch-threshold
 @vindex wl-message-buffer-prefetch-threshold
@@ -2872,7 +3006,7 @@ are same as normal summary.
 are automatically stuck.
 
 
-@node Summary View, Key Bindings of Summary, Sticky Summary, Summary
+@node Summary View, Mark and Action, Sticky Summary, Summary
 @section Format of summary lines
 @cindex Format of summary lines
 You can alter the format of lines in Summary mode.
@@ -2891,8 +3025,19 @@ An example follows.
 @end group
 @end lisp
 
-Where the number set the column number of the field (for negative value,
-filled from right)
+Where the number set the column number of the field. If negative value,
+the column is filled from right. If the number begins with @samp{0},
+@samp{0} is used for filling columns instead of @samp{ }.
+
+Example:
+
+@example
+@group
+%5n   -> `1    '
+%-05n -> `00001'
+@end group
+@end example
+
 
 Major control strings defined by @code{wl-summary-line-format-spec-alist}
 are displayed in the following list.
@@ -2900,6 +3045,8 @@ are displayed in the following list.
 @example
 @group
 %n  message number
+%T  temporary mark
+%P  persistent mark
 %Y  year
 %M  month
 %D  day
@@ -2914,14 +3061,15 @@ are displayed in the following list.
 %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)
+%#  mailing list information (`(' ML-name [ ` ' ML-number ] `)')
+%l  number in the mailing list
+%@@ `@@' only if the first MIME part is multipart/mixed
+%~  ` ' only if previous column is empty
 @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
+The temporary mark (@samp{%T}) and persistent mark (@samp{%P}) 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.
 
@@ -2967,7 +3115,55 @@ its sender is yourself, set up as follows.
 @end lisp
 
 
-@node Key Bindings of Summary, Variables of Summary, Summary View, Summary
+@node Mark and Action, Key Bindings of Summary, Summary View, Summary
+@section Temporary marks and their effect
+@cindex Mark and Action
+
+You can define temporary marks and corresponding procedure by
+@code{wl-summary-mark-action-list}.  Initially, refile (@samp{o}), copy
+(@samp{O}), dispose (@samp{d}), delete (@samp{D}), prefetch (@samp{i})
+and resend (@samp{~}) are defined.
+
+Each element of @code{wl-summary-mark-action-list} consists of
+
+@example
+(@samp{MARK} @samp{SYMBOL}
+ @samp{ARGUMENT-FUNCTION} @samp{SET-MARK-FUNCTION} @samp{EXEC-FUNCTION}
+ @samp{FACE} @samp{DOC-STRING})
+@end example
+
+@samp{MARK} is a temporary mark string, and @samp{SYMBOL} is the name of
+the action to be defined.  @samp{ARGUMENT-FUNCTION} is a function to
+generate argument to be given to @samp{SET-MARK-FUNCTION}, which will be
+described next, and it takes arguments:
+
+@example
+(@samp{ACTION} @samp{NUMBER})
+@end example
+
+Where @samp{ACTION} equals to @samp{SYMBOL}, and @samp{NUMBER} is message
+number.  @samp{SET-MARK-FUNCTION} is a function to be called when the mark
+is put. It takes arguments:
+
+@example
+(@samp{NUMBER} @samp{MARK} @samp{DATA})
+@end example
+
+Where @samp{NUMBER} is target message number, @samp{MARK} is a temporary
+mark string, and @samp{DATA} is given by @samp{ARGUMENT-FUNCTION}.
+
+@samp{EXEC-FUNCTION} is a function to be called when the action is
+executed. Its argument is a list of @samp{MARK-INFO}.  Here @samp{MARK-INFO}
+means a list consists of
+
+@example
+(@samp{NUMBER} @samp{MARK} @samp{DATA})
+@end example
+
+@samp{FACE} is a face to be used for highlighting.
+
+
+@node Key Bindings of Summary, Variables of Summary, Mark and Action, Summary
 @section Key bindings
 @cindex Keybind, Summary Mode
 @cindex Keybind, Summary Buffer
@@ -2984,11 +3180,12 @@ Proceed reading a message at the current cursor point.
 @item .
 @kindex . (Summary)
 @findex wl-summary-redisplay
-Redisplay a message at the current cursor point.
-If this command is called with prefix argument,
-Redisplay message regardless of the message cache (message is re-loaded
-from source).
-(@code{wl-summary-redisplay})
+Redisplay a message at the current cursor point with default display
+type.  If this command is called with prefix argument, reload and redisplay
+message regardless of the message cache.
+If this command is called with twice multiples @kbd{C-u} as @kbd{C-u C-u .},
+reload and redisplay message with current display type regardless of the
+message cache.  (@code{wl-summary-redisplay})
 
 @item <
 @kindex < (Summary)
@@ -3012,10 +3209,13 @@ Display the previous page of the message at the current cursor point.
 
 @item @key{RET}
 @kindex @key{RET} (Summary)
-@findex wl-summary-next-line-content
+@findex wl-summary-enter-handler
 Display the next line of the message at the current cursor point.
-Display the message at the current cursor point if it is not displayed yet.
-(@code{wl-summary-next-line-content})
+Display the message at the current cursor point if it is not displayed
+yet.  (@code{wl-summary-next-line-content}) If prefix argument is
+specified, message is scrolled up by one line.
+(@code{wl-summary-prev-line-content}) If prefix argument is numeric,
+cursor is jumped to the message with specified number.
 
 @item -
 @itemx M-@key{RET}
@@ -3030,6 +3230,7 @@ Display the message at the current cursor point if it is not displayed yet.
 @kindex / (Summary)
 @findex wl-thread-open-close
 Toggle open or close the thread at the current cursor point.
+With prefix argument, open all children threads.
 (@code{wl-thread-open-close})
 
 @item [
@@ -3099,10 +3300,20 @@ A draft for forwarding the message at current cursor point is prepared.
 @item $
 @kindex $ (Summary)
 @findex wl-summary-mark-as-important
-Put @samp{$} mark on the message at current cursor point.
-If already marked as @samp{$}, remove the mark.
+Put @samp{important} flag on the message at current cursor point.
+If already flagged as @samp{important}, remove the flag.  If it is
+called with prefix argument, ask global flag to put similarly to @kbd{F}.
 (@code{wl-summary-mark-as-important})
 
+@item F
+@kindex F (Summary)
+@findex wl-summary-set-flags
+Put arbitrary global flag entered in the minibuffer.  If you use Emacs
+21 or later, you can specify multiple flags separated by @samp{,}
+simultaneously.  If it is called with prefix argument, remove existent
+global flags.
+(@code{wl-summary-set-flags})
+
 @item y
 @itemx e
 @kindex y (Summary)
@@ -3172,15 +3383,39 @@ list folder (refile destination), guess @samp{To:} field and completed
 
 @item H
 @kindex H (Summary)
-@findex wl-summary-redisplay-all-header
-Redisplay the message at current cursor point with all header fields.
-(@code{wl-summary-redisplay-all-header})
+@findex wl-summary-toggle-all-header
+Toggle display type between all and partial header fields and redisplay
+the message at current cursor point.  If this command is called with
+prefix argument, reload and redisplay message regardless of the message cache.
+If this command is called with twice multiples @kbd{C-u} as @kbd{C-u C-u H},
+set default display type of summary by current display type of header fields.
+(@code{wl-summary-toggle-all-header})
 
 @item M
 @kindex M (Summary)
-@findex wl-summary-redisplay-no-mime
-Redisplay the message at current cursor point without MIME analysis.
-(@code{wl-summary-redisplay-no-mime})
+@findex wl-summary-toggle-mime
+Toggle display type for MIME analysis and redisplay the message at
+current cursor point.  A change is performed in the order set as
+@code{wl-summary-display-mime-mode-list}.  If this command is called
+with numeric prefix argument, it switch directly as follows.
+
+@example
+@group
+1: Enable MIME analysis.
+2: Enable MIME analysis only for header fields.
+3: Disable MIME analysis.
+@end group
+@end example
+
+If this command is called with twice multiples @kbd{C-u} as @kbd{C-u C-u
+M}, set default display type of summary by current display type of MIME
+analysis.  (@code{wl-summary-toggle-mime})
+
+@item C-c C-f
+@kindex C-c C-f (Summary)
+@findex wl-summary-toggle-header-narrowing
+Toggle header body narrowing of the message at current cursor point.
+(@code{wl-summary-toggle-header-narrowing})
 
 @item B
 @kindex B (Summary)
@@ -3292,6 +3527,8 @@ update-entirely  Update the difference between informations in present
 rescan           Redisplay summary by rescanning present msgdb.
 rescan-noscore   Redisplay summary by rescanning present msgdb.
                  Display messages killed by score, too.
+rescan-thread    Redisplay summary by rescanning present msgdb.
+                 Reconstruct thread, too.
 cache-status     Sync the all marks with the real status of cache.
 mark             Update marks.
 no-sync          Do nothing.
@@ -3307,7 +3544,9 @@ last:NUM         Move to the filter folder(partial filter).
 @kindex S (Summary)
 @findex wl-summary-sort
 Sort summary order.
-You can sort by @samp{date}, @samp{from}, @samp{number} and @samp{subject}.
+You can sort by @samp{date}, @samp{from}, @samp{number}, @samp{subject},
+@samp{size} and @samp{list-info}.
+With prefix argument, sort summary lines into descending order.
 (@code{wl-summary-sort})
 
 @item T
@@ -3349,6 +3588,10 @@ Jump to the message which is displayed last.
 @item ?
 @kindex ? (Summary)
 Put @samp{*} mark on the messages that satisfies the specified condition.
+If messages already have @samp{*} mark, new @samp{*} marks are overridden.
+If prefix argument is specified, current @samp{*} marks are removed and
+new @samp{*} marks are appended.
+
 @findex wl-summary-pick
 (@code{wl-summary-pick})
 
@@ -3368,13 +3611,13 @@ Execute action for all temporary marks in the summary buffer.
 @kindex * (Summary)
 @findex wl-summary-target-mark-line
 Put target mark on the message at the current cursor point.
-(@code{wl-summary-target-mark-line})
+(@code{wl-summary-target-mark-line}) @xref{Mark and Action}.
 
 @item o
 @kindex o (Summary)
 Put refile mark on the message at the current cursor point.
 @findex wl-summary-refile
-(@code{wl-summary-refile})
+(@code{wl-summary-refile}) @xref{Mark and Action}.
 
 @item C-o
 @kindex C-o (Summary)
@@ -3386,7 +3629,7 @@ Execute auto refile.
 @kindex O (Summary)
 Put copy mark on the message at the current cursor point.
 @findex wl-summary-copy
-(@code{wl-summary-copy})
+(@code{wl-summary-copy}) @xref{Mark and Action}.
 
 @item M-o
 @kindex M-o (Summary)
@@ -3401,25 +3644,25 @@ previously specified.
 Put disposal mark on the message at the current cursor point.
 The result of disposal is controlled by @code{wl-dispose-folder-alist},
 refiled to @code{wl-trash-folder} by default.
-(@code{wl-summary-dispose})
+(@code{wl-summary-dispose}) @xref{Mark and Action}.
 
 @item D
 @kindex D (Summary)
 @findex wl-summary-delete
 Put force deletion mark on the message at the current cursor point.
-(@code{wl-summary-delete})
+(@code{wl-summary-delete}) @xref{Mark and Action}.
 
 @item i
 @kindex i (Summary)
 Put prefetch reservation mark on the message at the current cursor point.
 @findex wl-summary-prefetch
-(@code{wl-summary-prefetch})
+(@code{wl-summary-prefetch}) @xref{Mark and Action}.
 
 @item ~
 @kindex ~ (Summary)
 @findex wl-summary-resend
 Put resend reservation mark on the message at the current cursor point.
-(@code{wl-summary-resend})
+(@code{wl-summary-resend}) @xref{Mark and Action}.
 
 @item u
 @kindex u (Summary)
@@ -3442,10 +3685,17 @@ Mark as read messages in the specified region.
 @item r $
 @kindex r $ (Summary)
 @findex wl-summary-mark-as-important-region
-Mark as important @samp{$} messages in the specified region.
-If @samp{$} mark already exists, remove the mark.
+Put @samp{important} flag on messages in the specified region.
+If already flagged as @samp{important}, remove the flag.
 (@code{wl-summary-mark-as-important-region})
 
+@item r F
+@kindex r F (Summary)
+@findex wl-summary-set-flags-region
+Put arbitrary global flag entered in the minibuffer on messages in
+specified region.
+(@code{wl-summary-set-flags-region})
+
 @item r !
 @kindex r ! (Summary)
 @findex wl-summary-mark-as-unread-region
@@ -3463,31 +3713,37 @@ specified region.
 @kindex r * (Summary)
 @findex wl-summary-target-mark-region
 Put target mark on the messages in the specified region.
-(@code{wl-summary-target-mark-region})
+(@code{wl-summary-target-mark-region}) @xref{Mark and Action}.
 
 @item r o
 @kindex r o (Summary)
 @findex wl-summary-refile-region
 Put refile mark on the messages in the specified region.
-(@code{wl-summary-refile-region})
+(@code{wl-summary-refile-region}) @xref{Mark and Action}.
 
 @item r O
 @kindex r O (Summary)
 @findex wl-summary-copy-region
 Put copy mark on the messages in the specified region.
-(@code{wl-summary-copy-region})
+(@code{wl-summary-copy-region}) @xref{Mark and Action}.
 
 @item r d
 @kindex r d (Summary)
 @findex wl-summary-dispose-region
 Put disposal mark on the messages in the specified region.
-(@code{wl-summary-dispose-region})
+(@code{wl-summary-dispose-region}) @xref{Mark and Action}.
+
+@item r D
+@kindex r D (Summary)
+@findex wl-summary-delete-region
+Put force deletion mark on the messages in the specified region.
+(@code{wl-summary-delete-region}) @xref{Mark and Action}.
 
 @item r i
 @kindex r i (Summary)
 @findex wl-summary-prefetch-region
 Put prefetch reservation mark on messages in the specified region.
-(@code{wl-summary-prefetch-region})
+(@code{wl-summary-prefetch-region}) @xref{Mark and Action}.
 
 @item r u
 @kindex r u (Summary)
@@ -3511,12 +3767,20 @@ With prefix argument, it affects on the all messages in the thread tree.
 @item t $
 @kindex t $ (Summary)
 @findex wl-thread-mark-as-important
-Put important mark @samp{$} on the messages which are the
-descendant of the current thread.
-If @samp{$} mark exists, remove the mark.
-With prefix argument, it affects on the all messages in the thread tree.
+Put @samp{important} flag on the messages which are the descendant of
+the current thread.  If already flagged as @samp{important}, remove the
+flag.  With prefix argument, it affects on the all messages in the
+thread tree.
 (@code{wl-thread-mark-as-important})
 
+@item t F
+@kindex t F (Summary)
+@findex wl-thread-set-flags
+Put arbitrary global flag entered in the minibuffer on the messages
+which are the descendant of the current thread.  With prefix argument,
+it affects on the all messages in the thread tree.
+(@code{wl-thread-set-flags})
+
 @item t !
 @kindex t ! (Summary)
 @findex wl-thread-mark-as-unread
@@ -3538,35 +3802,42 @@ on the all messages in the thread tree.
 Put target mark @samp{*} on the messages which are the descendant of the
 current thread.  With prefix argument, it affects on the all messages in
 the thread tree.
-(@code{wl-thread-target-mark})
+(@code{wl-thread-target-mark}) @xref{Mark and Action}.
 
 @item t o
 @kindex t o (Summary)
 @findex wl-thread-refile
 Put refile mark on the messages which are the descendant of the current thread.
 With prefix argument, it affects on the all messages in the thread tree.
-(@code{wl-thread-refile})
+(@code{wl-thread-refile}) @xref{Mark and Action}.
 
 @item t O
 @kindex t O (Summary)
 @findex wl-thread-copy
 Put copy mark on the messages which are the descendant of the current thread.
 With prefix argument, it affects on the all messages in the thread tree.
-(@code{wl-thread-copy})
+(@code{wl-thread-copy}) @xref{Mark and Action}.
 
 @item t d
 @kindex t d (Summary)
 @findex wl-thread-dispose
 Put disposal mark on the messages which are the descendant of the current thread.
 With prefix argument, it affects on the all messages in the thread tree.
-(@code{wl-thread-dispose})
+(@code{wl-thread-dispose}) @xref{Mark and Action}.
+
+@item t D
+@kindex t D (Summary)
+@findex wl-thread-delete
+Put force deletion mark on the messages which are the descendant of the
+current thread.
+(@code{wl-thread-delete}) @xref{Mark and Action}.
 
 @item t i
 @kindex t i (Summary)
 @findex wl-thread-prefetch
 Put prefetch reservation mark on messages which are the descendant of
 the current thread.
-(@code{wl-thread-prefetch})
+(@code{wl-thread-prefetch}) @xref{Mark and Action}.
 
 @item t u
 @kindex t u (Summary)
@@ -3592,10 +3863,17 @@ Mark as read all messages which have target mark @samp{*}.
 @item m $
 @kindex m $ (Summary)
 @findex wl-summary-target-mark-mark-as-important
-Mark as important all messages which have target mark @samp{*}.
-If already marked as @samp{$}, remove the mark.
+Put @samp{important} flag on all messages which have target mark @samp{*}.
+If already flagged as @samp{important}, remove the flag.
 (@code{wl-summary-target-mark-mark-as-important})
 
+@item m F
+@kindex m F (Summary)
+@findex wl-summary-target-mark-set-flags
+Put arbitrary global flag entered in the minibuffer on all messages
+which have target mark @samp{*}.
+(@code{wl-summary-target-mark-set-flags})
+
 @item m !
 @kindex m ! (Summary)
 @findex wl-summary-target-mark-mark-as-unread
@@ -3606,25 +3884,31 @@ Mark as unread all messages which have target mark @samp{*}.
 @kindex m o (Summary)
 @findex wl-summary-target-mark-refile
 Put refile mark on the messages which have target mark @samp{*}.
-(@code{wl-summary-target-mark-refile})
+(@code{wl-summary-target-mark-refile}) @xref{Mark and Action}.
 
 @item m O
 @kindex m O (Summary)
 @findex wl-summary-target-mark-copy
 Put copy mark on the messages which have target mark @samp{*}.
-(@code{wl-summary-target-mark-copy})
+(@code{wl-summary-target-mark-copy}) @xref{Mark and Action}.
 
 @item m d
 @kindex m d (Summary)
 @findex wl-summary-target-mark-dispose
 Put disposal mark on the messages which have target mark @samp{*}.
-(@code{wl-summary-target-mark-dispose})
+(@code{wl-summary-target-mark-dispose}) @xref{Mark and Action}.
+
+@item m D
+@kindex m D (Summary)
+@findex wl-summary-target-mark-delete
+Put force deletion mark on the messages which have target mark @samp{*}.
+(@code{wl-summary-target-mark-delete}) @xref{Mark and Action}.
 
 @item m i
 @kindex m i (Summary)
 @findex wl-summary-target-mark-prefetch
 Put prefetch reservation mark on messages which have target mark @samp{*}.
-(@code{wl-summary-target-mark-prefetch})
+(@code{wl-summary-target-mark-prefetch}) @xref{Mark and Action}.
 
 @item m y
 @kindex m y (Summary)
@@ -3816,12 +4100,6 @@ If non-nil, sender part displays nickname.
 The initial setting is @code{t}.
 If non-nil, message is split as pages by @samp{^L}.
 
-@item wl-message-window-size
-@vindex  wl-message-window-size
-The initial setting is '(1 . 4).
-A cons cell to specify the rate of summary and message window.
-car:cdr corresponds summary:message.
-
 @item wl-summary-from-function
 @vindex wl-summary-from-function
 Format function to display sender in summary.
@@ -3920,6 +4198,11 @@ the thread is divided.
 The initial setting is t.
 If non-nil, cursor point is moved to the center of the summary window.
 
+@item wl-summary-max-thread-depth
+@vindex wl-summary-max-thread-depth
+The initial setting is 30.
+If thread depth is larger than this value, divide it.
+
 @item wl-summary-divide-thread-when-subject-changed
 @vindex wl-summary-divide-thread-when-subject-changed
 The initial setting is @code{nil}.  If non-nil, thread is split if
@@ -4044,6 +4327,12 @@ cached.
 The initial setting is @code{t}.  If non-nil, messages read in Shimbun
 folders are cached.
 
+@item wl-summary-resend-use-cache
+@vindex wl-summary-resend-use-cache
+The initial setting is @code{nil}¡£If non-nil, messages are resend
+using cache even in the offline status. Note that if you use cache,
+the message identity is not guaranteed.
+
 @item wl-folder-process-duplicates-alist
 @vindex wl-folder-process-duplicates-alist
 The initial setting is @code{nil}.
@@ -4067,6 +4356,53 @@ Following is an example (hide duplicated messages in multi folders)
                    ("^\\*.*" . hide) (".*" . read)))
 @end group
 @end lisp
+
+@item wl-summary-flag-alist
+@vindex wl-summary-flag-alist
+The initial setting is as follows:
+
+@lisp
+@group
+((important "orange"))
+@end group
+@end lisp
+
+Specify the color and the mark of message in summary buffer with flag.
+If the mark are omitted, the mark specified in the variable
+@code{wl-summary-flag-mark} is assumed.  If multiple global flags are on
+one message, the former flag in this list is preferred.
+
+Example:
+
+@lisp
+@group
+(setq wl-summary-flag-alist
+      '((important "purple")
+        (todo "red")
+        (business "green" "B")
+        (private "blue" "X")))
+@end group
+@end lisp
+
+@item wl-summary-display-mime-mode-list
+@vindex wl-summary-display-mime-mode-list
+The initial setting is the list shown below:
+
+@lisp
+@group
+(mime as-is)
+@end group
+@end lisp
+
+@noindent
+The function @code{wl-summary-toggle-mime} switch specification of MIME
+analysis in the order of this list. You can specify one of the follows.
+
+@example
+@code{mime}        : Header and body are decoded.
+@code{header-only} : Only header is decoded.
+@code{as-is}       : Header and body are not decoded.
+@end example
 @end table
 
 
@@ -4127,20 +4463,20 @@ message number will be changed.
 @table @code
 @item wl-message-window-size
 @vindex wl-message-window-size
-Initial setting is @code{'(1 . 4)}.  It is a cons cell and the ratio of
+Initial setting is @code{(1 . 4)}.  It is a cons cell and the ratio of
 its car and cdr value corresponds to the ratio of Summary and Message
 windows.
 
 @item wl-message-ignored-field-list
 @vindex wl-message-ignored-field-list
-(SEMI only) Initial setting is @code{nil}.
+Initial setting is @code{nil}.
 All fields that match this list will be hidden in message buffer.
 Each elements are regexp of field-name.
 If @code{nil}, the value of @code{mime-view-ignored-field-list} is used.
 
 @item wl-message-visible-field-list
 @vindex wl-message-visible-field-list
-(SEMI only) Initial setting is @code{nil}.
+Initial setting is @code{nil}.
 All fields that match this list will be display in message buffer.
 Each elements are regexp of field-name. This value precedes
 @code{wl-message-ignored-field-list}.
@@ -4148,7 +4484,7 @@ If @code{nil}, the value of @code{mime-view-visible-field-list} is used.
 
 @item wl-message-sort-field-list
 @vindex wl-message-sort-field-list
-(SEMI only) Initial setting is
+Initial setting is
 '("Return-Path" "Received" "^To" "^Cc" "Newsgroups" "Subject" "^From").
 Header fields in message buffer are ordered by this value.
 Each elements are regexp of field-name.
@@ -4157,6 +4493,12 @@ Each elements are regexp of field-name.
 @vindex wl-message-truncate-lines
 The initial value is the value of @code{default-truncate-lines}.
 If it is non-nil, truncate long lines in message buffer.
+
+@item wl-message-auto-reassemble-message/partial
+@vindex wl-message-auto-reassemble-message/partial
+The initial setting is @code{nil}.
+If non-nil, automatically reassemble fragments of the message on
+displaying when its MIME media type is message/partial.
 @end table
 
 @node Draft, Disconnected Operations, Message, Top
@@ -4181,13 +4523,13 @@ Basically it is Emacs-standard mail mode.
 
 @menu
 * Editing Header::
-* Editing Message Body::
+* Editing Message Body and Sending::
 * Dynamical Message Re-arrangement::
 * Template::
 * POP-before-SMTP::
 @end menu
 
-@node Editing Header, Editing Message Body, Usage of Draft Mode, Usage of Draft Mode
+@node Editing Header, Editing Message Body and Sending, Usage of Draft Mode, Usage of Draft Mode
 @subsection Editing Message Header
 
 You can freely edit header region above @samp{--text follows this line--},
@@ -4238,8 +4580,8 @@ 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
+@node Editing Message Body and Sending, Dynamical Message Re-arrangement, Editing Header, Usage of Draft Mode
+@subsection Editing Messages and Sending
 
 As a matter of course, editing message body can be performed in the same
 way as usual writing. You may write message body under
@@ -4252,9 +4594,13 @@ 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}.
+folder specified by @code{wl-draft-folder}.  You can leave draft buffer
+after storing it for future editing by @kbd{C-c C-z} (@code{wl-draft-save-and-exit}).
+
+If you have finished editing, you can send message by @kbd{C-c C-c}.
 
-@node Dynamical Message Re-arrangement, Template, Editing Message Body, Usage of Draft Mode
+
+@node Dynamical Message Re-arrangement, Template, Editing Message Body and Sending, Usage of Draft Mode
 @subsection Dynamic Modification of Messages
 @vindex wl-draft-config-alist
 @c @cindex Change Message
@@ -4425,6 +4771,7 @@ Set a variable @code{wl-template-alist}, and type @kbd{C-c C-j} or
 
 The format of @code{wl-template-alist} is almost the same as
 @code{wl-draft-config-alist}.
+@xref{Dynamical Message Re-arrangement}.
 
 @lisp
 @group
@@ -4463,6 +4810,9 @@ adjust the window size by @code{wl-template-buffer-lines}.
 If @code{wl-template-visible-select} is @code{nil}, you should type the
 name of the template in the mini buffer.
 
+If @code{wl-template-select} is executed with prefix argument,
+inversed value of @code{wl-template-visible-select} is used.
+
 As shown in the example in @code{wl-draft-config-alist}, you can select
 @samp{default} template by writing:
 
@@ -4501,7 +4851,7 @@ The POP port number for POP-before-SMTP authentication.
 If unset, @code{elmo-pop3-default-port} is used.
 
 @item wl-pop-before-smtp-stream-type
-If non-nil, POP connection is established using SSL.  If
+If @code{ssl}, POP connection is established using SSL.  If
 @code{starttls}, STARTTLS (RFC2595) connection will be established.  If
 unset, @code{elmo-pop3-default-stream-type} is used.
 @end table
@@ -4536,7 +4886,8 @@ http://www.iecc.com/pop-before-smtp.html
 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).
+(on XEmacs) is Non-nil). If the command is called with prefix argument,
+the text inserted by yank command (the text content of clipboard) is cited.
 (@code{wl-draft-yank-original})
 
 @item C-c C-p
@@ -4643,6 +4994,7 @@ The text is killed and replaced with the contents of the variable
 
 @node Variables of Draft Mode,  , Key Bindings of Draft, Draft
 @section Customizable Variables
+@cindex SMTP AUTH
 
 @table @code
 @item wl-subscribed-mailing-list
@@ -4788,6 +5140,14 @@ as an argument.
 The initial setting is @code{nil}.
 If non-nil, use new frame for the draft.
 
+@item wl-draft-reply-default-position
+@vindex wl-draft-reply-default-position
+The initial setting is @code{body}.
+Specify initial cursor position on draft buffer for reply.
+@code{body} is to move cursor to the top of the message body,
+@code{bottom} to the bottom of the message body, and @code{top} to the
+top of the header.
+
 @item wl-draft-truncate-lines
 @vindex wl-draft-truncate-lines
 The initial value is the value of @code{default-truncate-lines}.
@@ -4815,13 +5175,15 @@ set this variable.
 @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.
+the @samp{Subject:} of being replied.  You can specify a function to be
+message buffer of the reply target.
 
 @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.
+to the @samp{Subject:} of being forwarded.  You can specify a function
+to be message buffer of the forward target.
 
 @item wl-draft-reply-use-address-with-full-name
 @vindex wl-draft-reply-use-address-with-full-name
@@ -4843,7 +5205,7 @@ The initial setting is @code{nil}. If the value is non-nil and
 @item wl-fcc-force-as-read
 @vindex wl-fcc-force-as-read
 The initial setting is @code{nil}. If the value is non-nil,
-Mark as read the message saved by @samp{Fcc:} (only for IMAP folders).
+Mark as read the message saved by @samp{Fcc:}.
 
 @item wl-auto-flush-queue
 @vindex wl-auto-flush-queue
@@ -4886,23 +5248,31 @@ 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}.
-This is the user name for SMTP AUTH authentication.  If @code{nil},
-@code{smtp-authenticate-user} is used.
+This is the user name for SMTP AUTH authentication.
 
 @item wl-smtp-authenticate-type
 @vindex wl-smtp-authenticate-type
 The initial setting is @code{nil}.
-This is the authentication method for SMTP AUTH authentication.  If
-@code{nil}, @code{smtp-authenticate-type} is used.  If
-@code{smtp-authenticate-type} is still @code{nil}, authentication will
-not be carried out.
+This string-valued variable specifies the authentication method for SMTP
+AUTH authentication.  You may specify @code{plain}, @code{cram-md5},
+@code{digest-md5}, @code{login}, etc.  If @code{nil}, authentication
+will not be carried out.
+
+@item wl-smtp-authenticate-realm
+@vindex wl-smtp-authenticate-realm
+The initial setting is @code{nil}.
+This string-valued variable specifies the authentication realm for SMTP
+AUTH authentication. You have to set this variable for DIGEST-MD5
+authentication and so on.
+If @code{nil}, authentication realm is not specified in the authentication.
 
 @item wl-smtp-connection-type
 @vindex wl-smtp-connection-type
 The initial setting is @code{nil}.
-This variable specifies how to establish SMTP connections.
-If @code{nil}, @code{smtp-connection-type} is used.
-If it is @code{starttls}, STARTTLS (RFC2595) is used.
+This symbol-valued variable specifies how to establish SMTP connections.
+If @code{nil}, use default connection type.
+If it is @code{starttls}, use STARTTLS (RFC2595).
+If it is @code{ssl}, use SSL.
 
 @item wl-nntp-posting-server
 @vindex wl-nntp-posting-server
@@ -4926,7 +5296,7 @@ If @code{nil}, @code{elmo-nntp-default-server} is used.
 @item wl-nntp-posting-stream-type
 @vindex wl-nntp-posting-stream-type
 The initial setting is @code{nil}.
-If @code{nil}, @code{elmo-nntp-default-stream-type} is evaluated.  If non-nil,
+If @code{nil}, @code{elmo-nntp-default-stream-type} is evaluated.  If @code{ssl},
 SSL is used for news submission.  If @code{starttls}, STARTTLS (RFC2595)
 connection will be established.
 
@@ -4970,7 +5340,7 @@ If it is @code{nil}, @code{elmo-pop3-default-server} is used.
 @vindex wl-pop-before-smtp-authenticate-type
 The initial setting is @code{nil}.
 This is the authentication method for POP-before-SMTP authentication.
-If it is @code{nil}, @code{elmo-pop3-default-authenticate} is used.
+If it is @code{nil}, @code{elmo-pop3-default-authenticate-type} is used.
 
 @item wl-pop-before-smtp-port
 @vindex wl-pop-before-smtp-port
@@ -4982,8 +5352,9 @@ This is the POP port number for POP-before-SMTP.  If it is @code{nil},
 @vindex wl-pop-before-smtp-stream-type
 The initial setting is @code{nil}.
 This flag controls the use of SSL for POP-before-SMTP.  If it is
-@code{nil}, @code{elmo-pop3-default-stream-type} is used.  If @code{starttls},
-STARTTLS (RFC2595) connection will be established.
+@code{nil}, @code{elmo-pop3-default-stream-type} is used.  If @code{ssl},
+SSL is used.  If @code{starttls}, STARTTLS (RFC2595) connection will be
+established.
 
 @item wl-draft-queue-save-variables
 @vindex wl-draft-queue-save-variables
@@ -5086,12 +5457,15 @@ later) is non-nil, you can following operations:
 * Re-file and Copy queue::      Re-file and Copy (IMAP4)
 * Creation of Folders::         Create Folders off-line (IMAP4)
 * Marking::                     Mark (IMAP4)
-* Pre-fetching Reservations::   Pre-fetch (IMAP4, NNTP)
+* Pre-fetching Reservations::   Pre-fetch
 @end menu
 
 As soon as Wanderlust becomes on-line, such operations invoked off-line
 are reflected in the servers via network.
 
+If the variable @code{elmo-enable-disconnected-operation} is @code{nil},
+these off-line operations are not executed and causes an error on
+re-file or copy operations.
 
 @node Send Messages off-line, Re-file and Copy queue, Enable Operations, Enable Operations
 @subsection Transmission of Messages
@@ -5142,23 +5516,12 @@ are also reflected in the servers when Wanderlust becomes on-line.
 
 
 @node Pre-fetching Reservations,  , Marking, Enable Operations
-@subsection Pre-fetching (IMAP4, NNTP)
+@subsection Pre-fetching
 
-You can make reservations for pre-fetching messages in IMAP or NNTP
-folders.  Reserved messages are marked with @samp{!} but not cached
-yet.  When Wanderlust becomes on-line, they are pre-fetched from
-servers.
-
-If the variable @code{elmo-enable-disconnected-operation} is @code{nil},
-these off-line operations for IMAP4 and NNTP do not take place, and
-off-line re-file, copy or suchlike simply results in error.
-
-Because off-line operations use cache files, it is a bad idea to erase
-them by hand; it may cause Wanderlust to malfunction.
-
-If you want to remove caches, be sure to execute @kbd{M-x
-elmo-cache-expire-by-size}.  @code{elmo-cache-expire-by-size} does not
-remove caches for messages relevant to off-line operations.
+You can make reservations for pre-fetching messages in networking
+folders (IMAP, NNTP, POP3, shimbun).  Reserved messages are marked with
+@samp{u} but not cached yet.  When Wanderlust becomes on-line, they are
+pre-fetched from servers.
 
 
 @node Plugged Mode, Off-line State settings, Enable Operations, Disconnected Operations
@@ -5280,8 +5643,8 @@ manually, press @kbd{F} in the folder mode.
 
 @item elmo-enable-disconnected-operation
 @vindex elmo-enable-disconnected-operation
-The initial setting is @code{t}.  Controls off-line operations
-regarding IMAP4.  If non-nil, off-line operations are carried out.
+The initial setting is @code{t}.  Controls off-line operations regarding
+networking folders.  If non-nil, off-line operations are carried out.
 
 @item elmo-lost+found-folder
 @vindex elmo-lost+found-folder
@@ -5646,10 +6009,9 @@ The initial setting is the list below.
 
 @lisp
 @group
-(list wl-summary-important-mark
+(list wl-summary-flag-mark
       wl-summary-new-uncached-mark
       wl-summary-new-cached-mark
-      wl-summary-unread-mark
       wl-summary-unread-uncached-mark
       wl-summary-unread-cached-mark)
 @end group
@@ -5905,7 +6267,7 @@ Needless to say, you can use your own function.
 @end table
 
 
-@node Scoring, Split messages, Expire and Archive, Top
+@node Scoring, Address Book, Expire and Archive, Top
 @chapter Score of the Messages
 @cindex Scoring
 @c @cindex Kill File
@@ -6232,7 +6594,7 @@ If non-nil, unread/important marks are synchronized when the summary
 does.
 Unread marks reflect information on the IMAP4 server.
 Important marks reflect information on the IMAP4 server (flagged or
-not), and contents of @samp{'mark} folder.
+not), and contents of @samp{'flag} folder.
 The initial setting is @code{t}.
 @end table
 
@@ -6404,209 +6766,60 @@ pop3                      N     E     E     E
 @end example
 
 
-@node Split messages, Address Book, Scoring, Top
-@chapter Message splitting
-@cindex Split messages
+@node Address Book, Spam Filter, Scoring, Top
+@chapter Address Book
+@cindex Address Book
 
-You can use @code{elmo-split} to split message in folder specified by
-the variable @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.
+With address book, you can utilize address completion, and you have
+summary displayed with nicknames.
 
-@lisp
-(autoload 'elmo-split "elmo-split" "Split messages on the folder." t)
-@end lisp
+@menu
+* Mail Addresses::   Definition of Address Book
+* Address Manager::  Address Manager
+@end menu
 
-Set source folder like following.
 
-@lisp
-(setq elmo-split-folder "%inbox")
-@end lisp
+@node Mail Addresses, Address Manager, Address Book, Address Book
+@section Address book
+@cindex Address book Definition
+@cindex .addresses
+@cindex Alias, Address
 
-And specify the rule in the variable @code{elmo-split-rule} (its format
-will be is described below).
-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 and show result (do not split actually).
+The file @file{~/.addresses} is a simple address book for Wanderlust.
+Make address file @file{~/.addresses}, and edit to suit your requirement.
 
+The data written in @file{~/.addresses} are used for address completion
+under draft editing mode. Furthermore, they are used when showing names
+in summary display mode. You can safely skip this section, if you don't
+want to customize address completion and summary display.
+It is possible to add/change/remove addresses from @file{~/.addresses} in
+summary buffer after Wanderlust is invoked. @refill
 
-We will describe how to specify the rule. First of all, see following
-example, please.
+The format is very simple. Like this. @refill
 
-@lisp
+@example
 @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")))
+#
+# @r{Lines begin with @samp{#} are comment.}
+# @r{Empty lines are ignored}
+#
+# @r{Format of each line:}
+# @var{email-address}  "@var{nickname} "@var{realname}"
+#
+teranisi@@gohome.org            "Yuuichi"      "Yuuichi Teranishi"
+foo@@bar.gohome.org             "Mr. Foo"    "John Foo"
+bar@@foo.gohome.org             "Mr. Bar"    "Michael Bar"
 @end group
-@end lisp
+@end example
 
-The basic unit of the rule is a combination like
+@noindent
+One line defines one persons description.
 
-@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 arguments @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 an integer argument (@samp{SIZE}).
-
-@table @code
-@item @code{<}
-True if the size of the message is less than @samp{SIZE}.
-@item @code{>}
-True if the size of the message is greater than @samp{SIZE}.
-@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, Spam Filter, Split messages, Top
-@chapter Address Book
-@cindex Address Book
-
-With address book, you can utilize address completion, and you have
-summary displayed with nicknames.
-
-@menu
-* Mail Addresses::   Definition of Address Book
-* Address Manager::  Address Manager
-@end menu
-
-
-@node Mail Addresses, Address Manager, Address Book, Address Book
-@section Address book
-@cindex Address book Definition
-@cindex .addresses
-@cindex Alias, Address
-
-The file @file{~/.addresses} is a simple address book for Wanderlust.
-Make address file @file{~/.addresses}, and edit to suit your requirement.
-
-The data written in @file{~/.addresses} are used for address completion
-under draft editing mode. Furthermore, they are used when showing names
-in summary display mode. You can safely skip this section, if you don't
-want to customize address completion and summary display.
-It is possible to add/change/remove addresses from @file{~/.addresses} in
-summary buffer after Wanderlust is invoked. @refill
-
-The format is very simple. Like this. @refill
-
-@example
-@group
-#
-# @r{Lines begin with @samp{#} are comment.}
-# @r{Empty lines are ignored}
-#
-# @r{Format of each line:}
-# @var{email-address}  "@var{nickname} "@var{realname}"
-#
-teranisi@@gohome.org            "Yuuichi"      "Yuuichi Teranishi"
-foo@@bar.gohome.org             "Mr. Foo"    "John Foo"
-bar@@foo.gohome.org             "Mr. Bar"    "Michael Bar"
-@end group
-@end example
-
-@noindent
-One line defines one persons description.
-
-Actually, in default setup, @var{nickname} is used in summary-mode and
-@var{realname} is used in draft preparation mode. This behavior is
-better understood if you try it and confirmed the function first. You
-can write and try a small definition, so you will know the idea of the
-address book before writing a big one.
+Actually, in default setup, @var{nickname} is used in summary-mode and
+@var{realname} is used in draft preparation mode. This behavior is
+better understood if you try it and confirmed the function first. You
+can write and try a small definition, so you will know the idea of the
+address book before writing a big one.
 
 And, if MH alias file is specified in variable @code{wl-alias-file},
 it is used as an address information in the draft preparation mode.
@@ -6684,7 +6897,7 @@ Edit entry.
 @end table
 
 
-@node Spam Filter, Customization, Address Book, Top
+@node Spam Filter, Advanced Issues, Address Book, Top
 @chapter Spam Filter
 @cindex Spam Filter
 
@@ -6694,10 +6907,10 @@ with messages operations on Wanderlust.
 
 @menu
 * Usage of Spam Filter::        Usage of Spam Filter
-* Spam Filter Processor::       Supported spam filters
+* Spam Filter Processors::      Supported spam filters
 @end menu
 
-@node Usage of Spam Filter, Spam Filter Processor, Spam Filter, Spam Filter
+@node Usage of Spam Filter, Spam Filter Processors, Spam Filter, Spam Filter
 @section Usage of Spam Filter
 
 @subsection Initial Setting
@@ -6708,7 +6921,7 @@ To use @code{wl-spam}, write in @file{~/.wl} as follows:
 @group
 ;; @r{Use @samp{bogofilter} as spam back end}
 ;; @r{Set @samp{scheme} here as the spam filter you will use.}
-;; @r{@xref{Spam Filter Processor}}
+;; @r{@xref{Spam Filter Processors}.}
 (setq elmo-spam-scheme 'bogofilter)
 (require 'wl-spam)
 @end group
@@ -6722,7 +6935,7 @@ the action is called for execution. Marked messages will be skipped by
 summary walking in ordinary way.
 
 The spam mark is be put on by spam judgement described later, or by
-invoking @samp{k m} at any time.
+invoking @kbd{k m} at any time.
 
 @subsection spam judgment
 
@@ -6766,7 +6979,7 @@ Make judgement on splitting messages with @code{elmo-split}.
 It provides new function @code{spam-p} to be specified as @samp{CONDITION}
 in @code{elmo-split-rule}. This function returns true when the message
 is judged as spam.
-@xref{Split messages}
+@xref{Split messages}.
 
 You can also process learning by the result of judgement. (You would
 better turn on this feature after learning to some extent)
@@ -6944,7 +7157,7 @@ Process all messages regardless of persistent marks.
 @end table
 
 
-@node Spam Filter Processor,  , Usage of Spam Filter, Spam Filter
+@node Spam Filter Processors,  , Usage of Spam Filter, Spam Filter
 @section Supported Spam Filters
 @cindex Spam Filter, Bogofilter
 @cindex Spam Filter, Spamfilter
@@ -6952,14 +7165,16 @@ Process all messages regardless of persistent marks.
 Supported spam filtering libraries are following ones.
 
 @menu
-* bogofilter::                  bogofilter
-* spamfilter::                  spamfilter.el
-* Bsfileter::                   bsfilter
-* SpamAssassin::                SpamAssassin
+* bogofilter::                          bogofilter
+* spamfilter::                          spamfilter.el
+* bsfilter::                            bsfilter
+* SpamAssassin::                        SpamAssassin
+* SpamOracle::                          SpamOracle
+* Regular Expressions Header Matching:: Header regexp
 @end menu
 
 
-@node bogofilter, spamfilter, Spam Filter Processor, Spam Filter Processor
+@node bogofilter, spamfilter, Spam Filter Processors, Spam Filter Processors
 @subsection bogofilter
 @cindex bogofilter
 
@@ -6981,7 +7196,7 @@ To use spam filter with bogofilter, write following setting in
 @item elmo-spam-bogofilter-program
 @vindex elmo-spam-bogofilter-program
 The initial setting is @file{bogofilter}.
-Specify the name of executable of bogofiler. If the executable
+Specify the name of executable of bogofilter. If the executable
 is not in your environmental variable @env{PATH}, you should
 set this by full path.
 
@@ -6995,10 +7210,21 @@ Specify arguments to be supplied for bogofilter executable.
 Specify the directory for statistical database to be used.
 @code{nil} to use default directory (@file{~/.bogofilter}).
 The initial setting is @code{nil}.
+
+@item elmo-spam-bogofilter-max-messages-per-process
+@vindex elmo-spam-bogofilter-max-messages-per-process
+The initial setting is 30.  This variable specifies the number of
+messages to be learned by one process.
+
+@item elmo-spam-bogofilter-debug
+@vindex elmo-spam-bogofilter-debug
+The initial setting is @code{nil}.
+If you specify non-nil, the output from @command{bogofilter} is
+stored in the buffer named @code{"*Debug ELMO SPAM Bogofilter*"}.
 @end table
 
 
-@node spamfilter, Bsfilter, bogofilter, Spam Filter Processor
+@node spamfilter, bsfilter, bogofilter, Spam Filter Processors
 @subsection spamfilter.el
 @cindex spamfilter
 
@@ -7029,13 +7255,68 @@ The initial setting is @file{~/.elmo/.spamfilter}.
 It specifies the name of corpus file.
 @end table
 
-@node Bsfilter, SpamAssassin, spamfilter, Spam Filter Processor
+@node bsfilter, SpamAssassin, spamfilter, Spam Filter Processors
 @subsection bsfilter
 @cindex bsfilter
 
-not yet documented...
+bsfilter (@uref{http://bsfilter.org/index-e.html}) is a spam filter
+implemented by Ruby language.
+
+To use spam filter with bsfilter, write following setting in
+@file{~/.wl} or somewhere else.
+
+@lisp
+@group
+(setq elmo-spam-scheme 'bsfilter)
+@end group
+@end lisp
 
-@node SpamAssassin,  , Bsfilter, Spam Filter Processor
+@subsubsection Customizable Variables
+
+@table @code
+@item elmo-spam-bsfilter-program
+@vindex elmo-spam-bsfilter-program
+The initial setting is @file{bsfilter}.
+Specify the name of executable of @command{bsfilter}.  If the executable
+is not in your environmental variable @env{PATH}, you should
+set this by full path.
+
+@item elmo-spam-bsfilter-args
+@vindex elmo-spam-bsfilter-args
+The initial setting is @code{nil}.
+Specify arguments to be supplied for bsfilter executable.
+
+@item elmo-spam-bsfilter-database-directory
+@vindex elmo-spam-bsfilter-database-directory
+Specify the directory for statistical database to be used.
+@code{nil} to use default directory (@file{~/.bsfilter}).
+The initial setting is @code{nil}.
+
+@item elmo-spam-bsfilter-debug
+@vindex elmo-spam-bsfilter-debug
+The initial setting is @code{nil}.
+If you specify non-nil, the output from @command{bsfilter} is
+stored in the buffer named @code{"*Debug ELMO Bsfilter*"}.
+
+@item elmo-spam-bsfilter-shell-program
+@vindex elmo-spam-bsfilter-shell-program
+The initial setting is @file{ruby}.
+Specify the shell to execute @command{bsfilter}.  If the shell is not
+in your environmental variable @env{PATH}, you should set this by full path.
+
+@item elmo-spam-bsfilter-shell-switch
+@vindex elmo-spam-bsfilter-shell-switch
+The initial setting is @code{nil}.
+Specify options to give to the shell executing @command{bsfilter}.
+
+@item elmo-spam-bsfilter-update-switch
+@vindex elmo-spam-bsfilter-update-switch
+The initial setting is @code{"--synchronous-auto-update"}.
+Specify options to give to @command{bsfilter} for learning messages.
+
+@end table
+
+@node SpamAssassin, SpamOracle, bsfilter, Spam Filter Processors
 @subsection SpamAssassin
 @cindex SpamAssassin
 
@@ -7093,21 +7374,114 @@ stored in the buffer named @code{"*Debug ELMO SpamAssassin*"}.
 
 @end table
 
-@node Customization, Terminology, Spam Filter, Top
-@chapter Customizing Wanderlust
-@cindex Customization
+@node SpamOracle, Regular Expressions Header Matching, SpamAssassin, Spam Filter Processors
+@subsection SpamOracle
+@cindex SpamOracle
+
+SpamOracle (`http://pauillac.inria.fr/~xleroy/software.html#spamoracle')
+is a spam filter implemented by Objective Caml language.
+
+To use spam filter with @file{spamoracle}, write following setting in
+@file{~/.wl} or somewhere else.
+(Of course, you have to install SpamOracle beforehand.)
+
+@lisp
+@group
+(setq elmo-spam-scheme 'spamoracle)
+@end group
+@end lisp
+
+@subsubsection Customizable Variables
+
+@table @code
+@item elmo-spam-spamoracle-program
+@vindex elmo-spam-spamoracle-program
+The initial setting is @file{spamoracle}.  Specify the name of
+executable of spamoracle. If the executable is not in your
+environmental variable @env{PATH}, you should set this by full path.
+
+@item elmo-spam-spamoracle-config-filename
+@vindex elmo-spam-spamoracle-config-filename
+Specify the name of config file.  @code{nil} to use default file
+(@file{~/.spamoracle.conf}).  The initial setting is @code{nil}.
+
+@item elmo-spam-spamoracle-database-filename
+@vindex elmo-spam-spamoracle-database-filename
+The initial setting is @file{~/.elmo/.spamoracle.db}.
+It specifies the name of database file.
+
+@item elmo-spam-spamoracle-spam-header-regexp
+@vindex elmo-spam-spamoracle-spam-header-regexp
+The initial setting is @code{"^X-Spam: yes;"}.  It specifies the regular
+expression of the header that indicates spam mail.  Use this setting
+when you change the @code{spam_header} parameter in the config file.
+
+@end table
+
+@node Regular Expressions Header Matching,  , SpamOracle, Spam Filter Processors
+@subsection Regular Expressions Header Matching
+@cindex Regular Expressions Header Matching
+
+Examine if regular expression matches corresponding field in message heaeder,
+and decide spam or not. To use this backend, add following setting to @file{~/.wl}.
+
+@lisp
+@group
+(setq elmo-spam-scheme 'header)
+@end group
+@end lisp
+
+If you want to check fields not included in the default overview
+information, add one into @code{elmo-msgdb-extra-fields}. Then it will
+do examination by the overview information and avoid loading whole
+message body as far as possible.
+
+@subsubsection Customize Variables
+
+@table @code
+@item elmo-spam-header-good-alist
+@vindex elmo-spam-header-good-alist
+The initial setting is the following list:
+
+@lisp
+'(("X-Spam-Flag" . "No"))
+@end lisp
+
+Specify a list of regular expressions to match with header field name
+for making non-spam decision. It takes precedence over
+@code{elmo-spam-header-spam-alist}.
+
+@item elmo-spam-header-spam-alist
+@vindex elmo-spam-header-spam-alist
+The initial setting is the following list:
+
+@lisp
+'(("X-Spam-Flag" . "Yes"))
+@end lisp
+
+Specify a list of regular expressions to match with header field name
+for making spam decision.
+@end table
+
+
+@node Advanced Issues, Migration, Spam Filter, Top
+@chapter Advanced Issues
+@cindex Advanced Issues
 
 @menu
 * Living with other packages:: Cooperating with other packages
 * Highlights::                 Highlights
 * Biff::                       Notify Mail arrival
+* Password Management::        Manage Passwords
+* Split messages::             Splitting messages
+* Batch Processing::           Invoke commands in batch mode
 * Advanced Settings::          Advanced Settings
 * Customizable Variables::     Customizable Variables
 * Hooks::                      Hooks
 @end menu
 
 
-@node Living with other packages, Highlights, Customization, Customization
+@node Living with other packages, Highlights, Advanced Issues, Advanced Issues
 @section Living with other packages
 
 Examples with other packages.
@@ -7386,7 +7760,7 @@ distributed with emacs-w3m (@uref{http://emacs-w3m.namazu.org/}).
 You can find the usage in comment region at the head of @file{mime-w3m.el}.
 
 
-@node Highlights, Biff, Living with other packages, Customization
+@node Highlights, Biff, Living with other packages, Advanced Issues
 @section Highlights
 
 @subsection Customizable Variables
@@ -7632,7 +8006,7 @@ The face for strings (for example, a version number) in the demo.
 @end table
 
 
-@node Biff, Advanced Settings, Highlights, Customization
+@node Biff, Password Management, Highlights, Advanced Issues
 @section Notify Mail arrival
 @cindex Biff
 
@@ -7656,6 +8030,13 @@ If @code{nil}, wl doesn't check mail arrival.
 The initial setting is 40 (in seconds).
 Check mail arrival in this period.
 
+@item wl-biff-use-idle-timer
+@vindex wl-biff-use-idle-timer
+The initial setting is @code{nil}.
+If it is @code{nil}, check mail arrival when the time specified by
+@code{wl-biff-check-interval} has passed.  If it is non-nil, check
+mail arrival when idling time exceeds @code{wl-biff-check-interval}.
+
 @item wl-biff-notify-hook
 @vindex wl-biff-notify-hook
 This hook is run at the arrival of new mail.
@@ -7667,7 +8048,214 @@ For silence, set to @code{nil}.
 @end table
 
 
-@node Advanced Settings, Customizable Variables, Biff, Customization
+@node Password Management, Split messages, Biff, Advanced Issues
+@section Manage Passwords
+
+If you input passwords to connect servers, they are stored in the
+variable @code{elmo-passwd-alist} per connection. You should be careful
+that others might read your passwords if they can touch your Emacs,
+since encoded plain passwords are there.
+
+If you invoke @kbd{M-x elmo-passwd-alist-save} while you have stored
+passwords, then they are saved on the file, and it will save you to
+input passwords. In this case, the risk that someone reads your
+keystroke might decrease, but please not that plain passwords are
+stored on a file. You should treat them very carefully.
+To remove saved passwords on file, invoke @kbd{M-x elmo-passwd-alist-clear}
+and then @kbd{M-x elmo-passwd-alist-save}.
+
+@table @code
+@item elmo-passwd-alist-file-name
+@vindex elmo-passwd-alist-file-name
+The initial setting is @file{passwd}.
+This is the name of the file in which passwords are saved.
+@code{elmo-passwd-alist-save} saves current passwords to the file.
+
+@item elmo-passwd-life-time
+@vindex  elmo-passwd-life-time
+The initial setting is @code{nil}.
+If the value is some number, timer is set to remove password entry after
+@code{elmo-passwd-life-time} seconds since you input the password.
+@code{nil} means never to remove passwords.
+@end table
+
+
+@node Split messages, Batch Processing, Password Management, Advanced Issues
+@section Message splitting
+@cindex Split messages
+
+You can use @code{elmo-split} to split message in folder specified by
+the variable @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
+
+Set source folder like following.
+
+@lisp
+(setq elmo-split-folder "%inbox")
+@end lisp
+
+And specify the rule in the variable @code{elmo-split-rule} (its format
+will be is described below).
+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 and show result (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 arguments @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 an integer argument (@samp{SIZE}).
+
+@table @code
+@item @code{<}
+True if the size of the message is less than @samp{SIZE}.
+@item @code{>}
+True if the size of the message is greater than @samp{SIZE}.
+@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 Batch Processing, Advanced Settings, Split messages, Advanced Issues
+@section Batch Processing
+@cindex Batch Processing
+
+You can request wanderlust to do some job on the command line.
+For now, you can invoke prefetching new messages in specified folders.
+
+Specify target folders in @code{wl-batch-prefetch-folder-list} then
+invoke as follows to execute prefetching:
+
+@example
+@group
+% emacs -batch -l wl-batch -f wl-batch-prefetch
+@end group
+@end example
+
+@subsection Customize Variables
+
+@table @code
+@item wl-batch-prefetch-folder-list
+@vindex wl-batch-prefetch-folder-list
+Target folders of prefetching by @code{wl-batch-prefetch}, specified as
+a list of folder names.
+@end table
+
+
+@node Advanced Settings, Customizable Variables, Batch Processing, Advanced Issues
 @section Advanced Settings
 
 @menu
@@ -7681,8 +8269,6 @@ For silence, set to @code{nil}.
 @subsection Draft for Replay
 @vindex wl-draft-reply-with-argument-list
 @vindex wl-draft-reply-without-argument-list
-@vindex wl-draft-reply-myself-with-argument-list
-@vindex wl-draft-reply-myself-without-argument-list
 
 If you type @kbd{a} in the Summary Buffer, a draft for reply is prepared.
 The addressee for the draft is decided by following rules.
@@ -7743,9 +8329,14 @@ These are evaluated in order and first matched one is used.
 Moreover, the behavior of @kbd{a} with prefix argument can
 be directed by @code{wl-draft-reply-with-argument-list} as well.
 
+
 By the way, you can use some function (will be evaluated in the parent
 message buffer) in the place of @samp{key} or @samp{to-list} etc.
-For example, if you only want to reply to mailing lists in
+
+If you want to write a rule for replying to message written by yourself,
+specify function @code{wl-draft-self-reply-p} as @samp{key}.
+
+If you only want to reply to mailing lists in
 @code{wl-subscribed-mailing-list} if the parent has some of them,
 set as follows:
 
@@ -7773,10 +8364,6 @@ set as follows:
 @end lisp
 
 
-Note: To set the behavior when you reply to the message written by yourself,
-use @code{wl-draft-reply-myself-without-argument-list} and
-@code{wl-draft-reply-myself-with-argument-list} instead of them.
-
 @node Thread Format, User-Agent Field, Draft for Reply, Advanced Settings
 @subsection Appearance of Threads
 
@@ -7856,7 +8443,7 @@ The following is a example:
 @end lisp
 
 
-@node Customizable Variables, Hooks, Advanced Settings, Customization
+@node Customizable Variables, Hooks, Advanced Settings, Advanced Issues
 @section Customizable Variables
 
 Customizable variables that have not been described yet:
@@ -7870,7 +8457,13 @@ a folder and the like.
 @item wl-draft-folder
 @vindex wl-draft-folder
 The initial setting is @samp{+draft}.  It is the folder to which drafts are
-saved.  It must be a localdir folder.
+saved.  It must be a writable folder.
+You can set IMAP remote folder, Maildir and so on.
+Note that variable settings applied by @code{wl-draft-config-exec} is saved
+under @code{elmo-msgdb-directory}.  That is to say, if you specified remote
+folder as @code{wl-draft-folder}, variable settings which are applied by
+@code{wl-draft-config-exec} before saving the draft will not affect on the
+draft buffer on another host by invoking @code{wl-summary-reedit}.
 
 @item wl-trash-folder
 @vindex wl-trash-folder
@@ -8034,18 +8627,19 @@ This is a list of access groups not to be loaded specifically at the
 start.
 It is ignored if @code{wl-folder-init-load-access-folders} is non-nil.
 
-@item wl-delete-folder-alist
-@vindex wl-delete-folder-alist
+@item wl-dispose-folder-alist
+@vindex wl-dispose-folder-alist
 The initial setting is the alist shown below:
 
 @lisp
 @group
-(("^-" . remove))
+(("^-" . remove)
+ ("^@@" . remove))
 @end group
 @end lisp
 
 @noindent
-This list determines disposition of messages with delete marks.
+This list determines disposition of messages with disposal marks.
 Each item in the list is a folder and destination; you can specify any
 one of the following in the place of destination:
 
@@ -8055,22 +8649,6 @@ string             : moves the messages to the specific folder.
 @code{trash} or others  : moves the messages to @code{wl-trash-folder}.
 @end example
 
-@item wl-refile-policy-alist
-@vindex wl-refile-policy-alist
-The initial setting is the list shown below:
-
-@lisp
-@group
-(("^[-=]" . copy)
- (".*" . move))
-@end group
-@end lisp
-
-@noindent
-This list determines whether messages with re-file marks are moved or
-copied.  Each item in the list is a cons cell of a folder and
-@code{copy} or @code{move}.
-
 @item wl-x-face-file
 @vindex wl-x-face-file
 The initial setting is @file{~/.xface}.
@@ -8089,12 +8667,6 @@ This is meaningful for XEmacs only.  The initial setting depends on
 XEmacs (@code{t} for XEmacs with dbm).
 If non-nil, Message-ID is controlled by dbm.
 
-@item elmo-passwd-alist-file-name
-@vindex elmo-passwd-alist-file-name
-The initial setting is @file{passwd}.
-This is the name of the file in which passwords are saved.
-@code{elmo-passwd-alist-save} saves current passwords to the file.
-
 @item elmo-nntp-list-folders-use-cache
 @vindex elmo-nntp-list-folders-use-cache
 The initial setting is 600 (in seconds).
@@ -8137,15 +8709,110 @@ operations are executed.
 The initial setting is 20.
 Threshold for display of progress gauge.  If number of renewal is more than
 this value, display progress gauge.
+
+@item elmo-network-session-idle-timeout
+@vindex elmo-network-session-idle-timeout
+The initial setting is @code{nil}.
+Idle timeout of the network cache. Specified in seconds.
+If elapsed time since last access is larger than this value,
+cached session is not reused. If nil, network cache is reused.
+
 @end table
 
 
-@node Hooks,  , Customizable Variables, Customization
+@node Hooks,  , Customizable Variables, Advanced Issues
 @section Hooks
 
 (Not yet written)
 
-@node Terminology, Mailing List, Customization, Top
+
+@node Migration, Terminology, Advanced Issues, Top
+@chapter Switch from older version of Wanderlust
+@cindex Migration
+
+This chapter explains the important thing for the upgrade,
+or migration from the previous version.
+It includes the changes of the setup, limitations etc.
+
+@menu
+* Before 2.12.0::       From prior to the version 2.12.0 
+@end menu
+
+@node Before 2.12.0,  , Migration, Migration
+@section Migration from prior to the version 2.12.0 
+
+@subsection The conversion of msgdb 
+
+From version 2.12.0 on, the structure of msgdb is changed.
+The msgdb for newly created folder will use this new format when created and saved.
+But by writing following line, you may use the old format of the msgdb as it was.
+
+@lisp
+@group
+(setq elmo-msgdb-default-type 'legacy)
+@end group
+@end lisp
+
+With the default setup, the old msgdb format is converted to the new
+format automatically.  You may change this behavior by writing following
+lines in @file{~/.wl}.
+
+@lisp
+@group
+;; @r{If the format of msgdb is different from} @code{elmo-msgdb-default-type},
+;; @r{the format will be converted automatically when}
+;; @r{the msgdb is being loaded (default).}
+(setq elmo-msgdb-convert-type 'auto)
+
+;; @r{Convert msgdb when hitting @kbd{s all} in Summary mode}
+(setq elmo-msgdb-convert-type 'sync)
+
+;; @r{Inhibit conversion}
+(setq elmo-msgdb-convert-type nil)
+@end group
+@end lisp
+
+As is explained in above section, you may continue to use the old format.
+But you will have following limitations.
+
+@enumerate
+@item
+You cannot use forwarded mark (@samp{F}, @samp{f}).
+@item
+You may only use @samp{important} flag. The other global flags may not
+be available.
+@end enumerate
+
+@subsection Changes from @samp{'mark} folder to  @samp{'flag}.
+
+The folder @samp{'mark} will be automatically converted to @samp{'flag}
+folder when you first start the new version of Wanderlust.
+But there are some restrictions on this type of migrated folder.
+
+@enumerate
+@item
+@samp{important} flag attached will not be
+removed by deleting the associated message in @samp{'flag} folder.
+
+@item
+The message won't be deleted by removing
+@samp{important} flag in @samp{'flag} folder.
+
+@item
+help-echo will not show you the old message.
+
+@end enumerate
+
+If you have problem with migrating 
+from @samp{'mark} folder to the @samp{'flag} folder,
+invoking
+@kbd{M-x elmo-global-mark-upgrade} will transfer the message
+from @samp{'mark} folder to the @samp{'flag} folder.
+The duplicated message will not be processed, 
+you may issue that command repeatedly.
+
+
+@node Terminology, Mailing List, Migration, Top
 @chapter Terminology around Wanderlust
 @cindex Terminology
 
@@ -8223,6 +8890,25 @@ in Japanese.}
 I would like to express my thanks to the members of the mailing list for
 valuable advice and many pieces of code they contributed.
 
+@subsection Archive
+
+You can read messages posted to the mailing list on the web or in
+NetNews.
+
+Read messages posted to @t{<wl@@lists.airs.net>}
+
+@example
+@uref{http://lists.airs.net/wl/archive/}
+@uref{news://gmane.mail.wanderlust.general.japanese@@news.gmane.org}
+@end example
+
+Read messages posted to @t{<wl-en@@lists.airs.net>}
+
+@example
+@uref{http://lists.airs.net/wl-en/archive/}
+@uref{news://gmane.mail.wanderlust.general@@news.gmane.org}
+@end example
+
 
 @node Addition, Index, Mailing List, Top
 @chapter Additional Information
@@ -8269,6 +8955,15 @@ valuable advice and many pieces of code they contributed.
       8/21    wl-addrmgr by Kitamoto-san.
      12/27    Released 2.8.1 stable.
 2002 12/11    Released 2.10.0 stable.
+2003  7/05    Released 2.10.1 stable.
+      9/18    flag folder is added.
+      9/20    New msgdb format (modb-standard) by H.Murata-san.
+     10/20    Spam filter by H.Murata-san.
+2004  1/06    Background color of the demo become configurable.
+      2/09    'file' folder is added.
+      9/12    forwarded mark.
+              Default value of the mark strings are changed.
+     12/24    Released 2.12.0 stable.
 @end example
 
 See @file{ChangeLog} for details.
@@ -8298,8 +8993,7 @@ Each versions has code names (they are almost jokes).
 Currently they are picked up alphabetically from the top 40 hits of
 U.S. Billboard magazines in 1980s.
 
-(@uref{http://lyrics.natalnet.com.br/html/top40/index.html})
-
+(@uref{http://ntl.matrix.com.br/pfilho/html/top40/})
 
 @node Index,  , Addition, Top
 @unnumbered Index