* elmo-access.el: New file.
[elisp/wanderlust.git] / doc / wl.texi
index 7696a64..e29f214 100644 (file)
@@ -118,9 +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
 * 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
 * Address Book::             Management of Address Book
-* Customization::            Customizing Wanderlust
+* Spam Filter::              Spam filtering
+* Advanced Issues::          Advanced Issues
+* Migration::                Switch from older version of Wanderlust
 * Terminology::              Terminologies
 * Mailing List::             Wanderlust mailing list
 * Addition::                 Additional Information
 * Terminology::              Terminologies
 * Mailing List::             Wanderlust mailing list
 * Addition::                 Additional Information
@@ -145,7 +146,7 @@ The main features of Wanderlust:
 @item Manages unread messages.
 @item Interactive thread display.
 @item Folder Mode shows the list of subscribed folders.
 @item Manages unread messages.
 @item Interactive thread display.
 @item Folder Mode shows the list of subscribed folders.
-@item Message Cache, Disconnected Operation (Read Only).
+@item Message Cache, Disconnected Operation.
 @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 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.
@@ -254,7 +255,7 @@ may help you.}.
 Recommended combination of APEL, FLIM and SEMI are following:
 
 @itemize @minus
 Recommended combination of APEL, FLIM and SEMI are following:
 
 @itemize @minus
-@item APEL 10.5, FLIM 1.14.5 and SEMI 1.14.5
+@item APEL 10.6, FLIM 1.14.6 and SEMI 1.14.6
 @end itemize
 
 You can also use many other FLIM/SEMI variants. Combination of the
 @end itemize
 
 You can also use many other FLIM/SEMI variants. Combination of the
@@ -262,8 +263,8 @@ latest versions should work.  For example, the following combination are
 confirmed to work.
 
 @itemize @minus
 confirmed to work.
 
 @itemize @minus
-@item APEL 10.5, SLIM 1.14.9, SEMI 1.14.5
-@item APEL 10.5, CLIME 1.14.5, EMIKO 1.14.1
+@item APEL 10.6, SLIM 1.14.9, SEMI 1.14.5
+@item APEL 10.6, CLIME 1.14.5, EMIKO 1.14.1
 @end itemize
 
 You have to re-install Wanderlust if you upgraded APEL, FLIM or SEMI.
 @end itemize
 
 You have to re-install Wanderlust if you upgraded APEL, FLIM or SEMI.
@@ -284,12 +285,10 @@ Mirrored ftp/http sites:
 
 @example
 @group
 
 @example
 @group
-ftp://ftp.jaist.ac.jp/pub/GNU/elisp/ftp.gohome.org/wl/
+@c ftp://ftp.jaist.ac.jp/pub/GNU/elisp/ftp.gohome.org/wl/
 http://www.jpl.org/elips/wl/
 http://www.ring.gr.jp/archives/text/elisp/wl/
 ftp://ftp.ring.gr.jp/pub/text/elisp/wl/
 http://www.jpl.org/elips/wl/
 http://www.ring.gr.jp/archives/text/elisp/wl/
 ftp://ftp.ring.gr.jp/pub/text/elisp/wl/
-ftp://opaopa.org/pub/mirror/elisp/wl/
-@c ftp://roguelife.org/pub/tsumura/wl/
 @end group
 @end example
 
 @end group
 @end example
 
@@ -672,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.
 
 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,
-Pipe and Internal folder types.
+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, File, Access and Internal folder
+types.
 
 @menu
 * IMAP Folder::                 @samp{%} -- IMAP folder
 
 @menu
 * IMAP Folder::                 @samp{%} -- IMAP folder
@@ -690,6 +690,8 @@ Pipe and Internal folder types.
 * Filter Folder::               @samp{/} -- Filter folder
 * Pipe Folder::                 @samp{|} -- Pipe folder
 * Internal Folder::             @samp{'} -- Internal folder
 * 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
 
 
 @end menu
 
 
@@ -744,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
 @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
 
 @lisp
 @group
@@ -847,12 +852,15 @@ default:
 @end example
 
 AUTHINFO is used as authentication method if the @var{username} is
 @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:
 
 
 Example:
 
@@ -1262,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
 (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
 
 
 @node Shimbun Folder, Namazu Folder, POP Folder, Folders
@@ -1310,10 +1320,19 @@ Example:
 @table @code
 @item elmo-shimbun-update-overview-folder-list
 @vindex elmo-shimbun-update-overview-folder-list
 @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
 
 
 @end table
 
 
@@ -1444,6 +1463,7 @@ Example:
 @cindex Folder, Filtering
 @cindex Folder, Virtual
 @cindex Folder, Conditional
 @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.
 
 A folder to access virtual folder which collects all messages that
 satisfy a condition.
@@ -1475,8 +1495,8 @@ Example:
 @item
 Date filter: @samp{since:@var{date}}, @samp{before:@var{date}}
 
 @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}.
 
 
 You can specify following as @var{date}.
 
@@ -1520,9 +1540,48 @@ Example:
 @end example
 
 @item
 @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
 
 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/}.
 Condition can be grouped by parentheses (@samp{(}, and @samp{)}).
 
 @samp{/tocc:xxxx/} is an abbreviation of @samp{/to:xxxx|cc:xxxx/}.
@@ -1639,11 +1698,12 @@ Example:
 
 After messages are moved, a hook @code{elmo-pipe-drained-hook} is called.
 
 
 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
 @section Internal folder
 @cindex @samp{'}
 @cindex Internal Folder
 @cindex Folder, @samp{$} mark
+@cindex Flag
 @cindex Cache
 @c @cindex Folder, Null
 
 @cindex Cache
 @c @cindex Folder, Null
 
@@ -1653,25 +1713,27 @@ Format:
 
 @example
 @group
 
 @example
 @group
-'mark
-'sendlog
-'cache/00 - 1F
+@samp{'flag} [@samp{/} @var{global-flag}]
+@samp{'sendlog}
+@samp{'cache/00} - @samp{'cache/1F}
 @end group
 @end example
 
 @end group
 @end example
 
-A folder named @samp{'mark} is a special virtual folder which collects
-messages which have important mark @samp{$}.
+A folder named @samp{'flag} is a special virtual folder which collects
+messages which have @var{global-flag}.
 
 
+There is @samp{important} flag defined as @var{global-flag} by default.
 You can review important messages at once after you put important marks
 You can review important messages at once after you put important marks
-on the messages in the different folders.
+on the messages in the different folders.  If @var{global-flag} is omitted,
+it is treated as @samp{important} flag is specified.
 
 
-In this folder, if you delete message, important mark @samp{$} put on
-the message is removed.  If you append messages to this folder, the
-message will have @samp{$} mark.
+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}.
 
 
-(Can't remove important mark @samp{$} on IMAP server from @samp{'mark}
-folder.  If you want IMAP folder's message remove from @samp{'mark}
-folder, remove important mark at IMAP Folder.)
+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
+will have @var{global-flag}.
 
 
 A folder named @samp{'sendlog} is a virtual folder which collects
 
 
 A folder named @samp{'sendlog} is a virtual folder which collects
@@ -1687,6 +1749,54 @@ the name of the subdirectories of the cache directory
 (@file{~/.elmo/cache}).
 
 
 (@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
 @node Folder, Summary, Folders, Top
 @chapter Folder mode
 @cindex Folder
@@ -1850,22 +1960,26 @@ current cursor point.
 
 @item N
 @kindex N (Folder)
 
 @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)
 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)
 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)
 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})
 
 Jump to the folder specified by the user input.
 (@code{wl-folder-jump-folder})
 
@@ -1905,7 +2019,7 @@ Flush queue.
 @item V
 @kindex V (Folder)
 @findex wl-folder-virtual
 @item V
 @kindex V (Folder)
 @findex wl-folder-virtual
-Move to the virtual folder with the condition specified.
+Move to the virtual folder (filter folder) with the condition specified.
 (@code{wl-folder-virtual})
 
 @item ?
 (@code{wl-folder-virtual})
 
 @item ?
@@ -1920,44 +2034,57 @@ Search the folders with the condition specified.
 All unread folder is opened.
 (@code{wl-folder-open-all-unread-folder})
 
 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.
 @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)
 
 @item [
 @kindex [ (Folder)
+@findex wl-folder-open-all
 All folder group is opened.
 (@code{wl-folder-open-all})
 
 @item ]
 @kindex ] (Folder)
 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)
 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)
 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)
 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)
 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)
 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
 Start Wanderlust's plug-status manager.
 (@code{wl-plugged-change})
 @end table
@@ -2048,15 +2175,6 @@ Example:
 
 @item wl-folder-hierarchy-access-folders
 @vindex wl-folder-hierarchy-access-folders
 
 @item wl-folder-hierarchy-access-folders
 @vindex wl-folder-hierarchy-access-folders
-The initial setting is the list shown below:
-
-@lisp
-@group
-("^-$" "^-alt$")
-@end group
-@end lisp
-
-@noindent
 A list of regular expressions for access groups which creates children
 folder list hierarchically.
 
 A list of regular expressions for access groups which creates children
 folder list hierarchically.
 
@@ -2066,7 +2184,7 @@ For example, if you specify
 @lisp
 @group
 (setq wl-folder-hierarchy-access-folders
 @lisp
 @group
 (setq wl-folder-hierarchy-access-folders
-     '("^-$" "^-alt$" "^-japan$" "^-comp$" "^-comp.unix$"))
+     '("^-[^\\.]*$" "^-comp.unix$" "^-comp.unix.bsd$"))
 @end group
 @end lisp
 
 @end group
 @end lisp
 
@@ -2114,7 +2232,8 @@ You can append, delete, edit folders from folder mode.
 
 @subsubsection Append Folder
 
 
 @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.
 @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.
@@ -2231,7 +2350,8 @@ one stroke key binding.
 @item m a
 @kindex m a (Folder)
 @findex wl-fldmgr-add
 @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 +
 (@code{wl-fldmgr-add})
 
 @item +
@@ -2482,6 +2602,7 @@ mode.
 * Auto Refile::                 Auto refile settings
 * Sticky Summary::              Summary make sticky
 * Summary View::                Format of summary lines
 * 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
 * Key Bindings of Summary::     Key bindings
 * Variables of Summary::        Customize Summary Mode
 @end menu
@@ -2543,8 +2664,8 @@ message has empty subject field.
 @subsection Temporary Marks
 @cindex Mark, Temporary
 
 @subsection Temporary Marks
 @cindex Mark, Temporary
 
-There are four temporary marks,
-@samp{*}, @samp{d}, @samp{o} and @samp{O}.
+There are seven temporary marks,
+@samp{*}, @samp{d}, @samp{D}, @samp{o}, @samp{O}, @samp{i} and @samp{~}.
 Temporary marks indicates message operations.
 
 @table @samp
 Temporary marks indicates message operations.
 
 @table @samp
@@ -2553,8 +2674,11 @@ Target mark.
 You can execute a command on the all messages that have @samp{*} mark,
 with the key bindings which begins with @kbd{m}.
 
 You can execute a command on the all messages that have @samp{*} mark,
 with the key bindings which begins with @kbd{m}.
 
+@item d
+The mark to dispose. You can put @samp{d} by typing @kbd{d} key.
+
 @item D
 @item D
-The mark to delete. You can put @samp{D} by typing @kbd{d} key.
+The mark to force delete. You can put @samp{D} by typing @kbd{D} key.
 
 @item o
 The mark to refile.
 
 @item o
 The mark to refile.
@@ -2566,14 +2690,23 @@ The mark to refile.
 You can put this mark by typing @kbd{O} key.
 The difference between this mark and refile mark is,
 this mark does not delete the message while latter does.
 You can put this mark by typing @kbd{O} key.
 The difference between this mark and refile mark is,
 this mark does not delete the message while latter does.
+
+@item i
+The mark to prefetch reserved.
+You can put this mark by typing @kbd{i} key.
+
+@item ~
+The mark to resend reserved.
+After you type @kbd{~} key, prompt appears to input address to resend.
+Your answer is printed in the summary line.
 @end table
 
 @end table
 
-@kbd{x} key executes @samp{D}, @samp{o} and @samp{O} marks.
+@kbd{x} key executes action for temporary marks, respectively.
 
 @subsection Persistent Marks
 
 
 @subsection Persistent Marks
 
-There are five persistent marks,
-@samp{N}, @samp{U}, @samp{!}, @samp{u} 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:
 
 The persistent mark indicates the message's status and it is saved.
 Each persistent mark indicates:
@@ -2581,28 +2714,44 @@ Each persistent mark indicates:
 @table @samp
 @item N
 It is new message.
 @table @samp
 @item N
 It is new 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 U
 It is unread message.
-@item !
-It is unread but cached message.
 @item u
 @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 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 $
 @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
 
 
 @item None
 If the message is read and cached (or local message),there are no
 persistent mark.
 @end table
 
-@samp{N}, @samp{U} and @samp{u} 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
 
 Among messages with persistent marks, ones with marks specified by 
 @code{wl-summary-expire-reserve-marks} are excluded from the expiration
@@ -2866,7 +3015,7 @@ are same as normal summary.
 are automatically stuck.
 
 
 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.
 @section Format of summary lines
 @cindex Format of summary lines
 You can alter the format of lines in Summary mode.
@@ -2885,8 +3034,19 @@ An example follows.
 @end group
 @end lisp
 
 @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.
 
 Major control strings defined by @code{wl-summary-line-format-spec-alist}
 are displayed in the following list.
@@ -2894,6 +3054,8 @@ are displayed in the following list.
 @example
 @group
 %n  message number
 @example
 @group
 %n  message number
+%T  temporary mark
+%P  persistent mark
 %Y  year
 %M  month
 %D  day
 %Y  year
 %M  month
 %D  day
@@ -2908,14 +3070,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)
 %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
 
 @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.
 
 @samp{%P} after the @samp{%t}, which changes its length by thread
 position, marks are not treated correctly.
 
@@ -2961,7 +3124,55 @@ its sender is yourself, set up as follows.
 @end lisp
 
 
 @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
 @section Key bindings
 @cindex Keybind, Summary Mode
 @cindex Keybind, Summary Buffer
@@ -2978,11 +3189,12 @@ Proceed reading a message at the current cursor point.
 @item .
 @kindex . (Summary)
 @findex wl-summary-redisplay
 @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)
 
 @item <
 @kindex < (Summary)
@@ -3006,10 +3218,13 @@ Display the previous page of the message at the current cursor point.
 
 @item @key{RET}
 @kindex @key{RET} (Summary)
 
 @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 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}
 
 @item -
 @itemx M-@key{RET}
@@ -3024,6 +3239,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.
 @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 [
 (@code{wl-thread-open-close})
 
 @item [
@@ -3093,10 +3309,20 @@ A draft for forwarding the message at current cursor point is prepared.
 @item $
 @kindex $ (Summary)
 @findex wl-summary-mark-as-important
 @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})
 
 (@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)
 @item y
 @itemx e
 @kindex y (Summary)
@@ -3166,15 +3392,39 @@ list folder (refile destination), guess @samp{To:} field and completed
 
 @item H
 @kindex H (Summary)
 
 @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)
 
 @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)
 
 @item B
 @kindex B (Summary)
@@ -3268,18 +3518,31 @@ Mark as unread the message at current cursor point.
 @item s
 @kindex s (Summary)
 @findex wl-summary-sync
 @item s
 @kindex s (Summary)
 @findex wl-summary-sync
-Synchronize summary view after prompting the update range
-(@samp{all}, @samp{update}, @samp{rescan}, @samp{first}, @samp{last}).
+Synchronize summary view after prompting the update range.
+You can specify one of the follows.
 
 @example
 @group
 
 @example
 @group
-all            ...Discard current summary and update all message.
-all-visible    ...Discard current summary and update all visible message.
-update         ...Update the difference between summary and the folder itself.
-rescan         ...Rescan the msgdb and display again.
-rescan-noscore ...Rescan the msgdb and display again (without scoring).
-cache-status   ...Sync the all marks with the real status of cache.
-first, last    ...Move to the filter folder(partial filter).
+all              Discard present msgdb and retrieve all informations.
+                 Do not retrieve killed messages.
+all-entirely     Discard present msgdb and retrieve all informations.
+                 Retrieve killed messages, too.
+update           Update the difference between informations in present
+                 msgdb and in current folder instance.
+                 Do not retrieve killed messages.
+update-entirely  Update the difference between informations in present
+                 msgdb and in current folder instance.
+                 Retrieve killed messages, too.
+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.
+first:NUM        Move to the filter folder(partial filter).
+last:NUM         Move to the filter folder(partial filter).
 @end group
 @end example
 
 @end group
 @end example
 
@@ -3290,7 +3553,9 @@ first, last    ...Move to the filter folder(partial filter).
 @kindex S (Summary)
 @findex wl-summary-sort
 Sort summary order.
 @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
 (@code{wl-summary-sort})
 
 @item T
@@ -3318,7 +3583,7 @@ Toggle displaying of message window.
 
 @item V
 @kindex V (Summary)
 
 @item V
 @kindex V (Summary)
-Move to the virtual folder with the condition specified.
+Move to the virtual folder (filter folder) with the condition specified.
 If called with prefix argument and current folder is virtual, exit it.
 @findex wl-summary-virtual
 (@code{wl-summary-virtual})
 If called with prefix argument and current folder is virtual, exit it.
 @findex wl-summary-virtual
 (@code{wl-summary-virtual})
@@ -3332,6 +3597,10 @@ Jump to the message which is displayed last.
 @item ?
 @kindex ? (Summary)
 Put @samp{*} mark on the messages that satisfies the specified condition.
 @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})
 
 @findex wl-summary-pick
 (@code{wl-summary-pick})
 
@@ -3341,16 +3610,9 @@ Put @samp{*} mark on the messages that satisfies the specified condition.
 Mark as read the message at the current cursor point.
 (@code{wl-summary-mark-as-read})
 
 Mark as read the message at the current cursor point.
 (@code{wl-summary-mark-as-read})
 
-@item i
-@kindex i (Summary)
-Prefetch the message at the current cursor point.
-With prefix argument, prefetch the message even if it is cached.
-@findex wl-summary-prefetch
-(@code{wl-summary-prefetch})
-
 @item x
 @kindex x (Summary)
 @item x
 @kindex x (Summary)
-Execute @samp{D}, @samp{o} and @samp{O} marks.
+Execute action for all temporary marks in the summary buffer.
 @findex wl-summary-exec
 (@code{wl-summary-exec})
 
 @findex wl-summary-exec
 (@code{wl-summary-exec})
 
@@ -3358,13 +3620,13 @@ Execute @samp{D}, @samp{o} and @samp{O} marks.
 @kindex * (Summary)
 @findex wl-summary-target-mark-line
 Put target mark on the message at the current cursor point.
 @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
 
 @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)
 
 @item C-o
 @kindex C-o (Summary)
@@ -3376,7 +3638,7 @@ Execute auto refile.
 @kindex O (Summary)
 Put copy mark on the message at the current cursor point.
 @findex wl-summary-copy
 @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)
 
 @item M-o
 @kindex M-o (Summary)
@@ -3389,7 +3651,27 @@ previously specified.
 @kindex d (Summary)
 @findex wl-summary-dispose
 Put disposal mark on the message at the current cursor point.
 @kindex d (Summary)
 @findex wl-summary-dispose
 Put disposal mark on the message at the current cursor point.
-(@code{wl-summary-dispose})
+The result of disposal is controlled by @code{wl-dispose-folder-alist},
+refiled to @code{wl-trash-folder} by default.
+(@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}) @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}) @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}) @xref{Mark and Action}.
 
 @item u
 @kindex u (Summary)
 
 @item u
 @kindex u (Summary)
@@ -3412,26 +3694,27 @@ Mark as read messages in the specified region.
 @item r $
 @kindex r $ (Summary)
 @findex wl-summary-mark-as-important-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})
 
 (@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
 Mark as unread messages in the specified region.
 (@code{wl-summary-mark-as-unread-region})
 
 @item r !
 @kindex r ! (Summary)
 @findex wl-summary-mark-as-unread-region
 Mark as unread messages in the specified region.
 (@code{wl-summary-mark-as-unread-region})
 
-@item r i
-@kindex r i (Summary)
-@findex wl-summary-prefetch-region
-Prefetch messages in the specified region.
-(@code{wl-summary-prefetch-region})
-
 @item r x
 @kindex r x (Summary)
 @findex wl-summary-exec-region
 @item r x
 @kindex r x (Summary)
 @findex wl-summary-exec-region
-Execute @samp{D}, @samp{o} and @samp{O} marks on the messages in the
+Execute action for each temporary marks on the messages in the
 specified region.
 (@code{wl-summary-exec-region})
 
 specified region.
 (@code{wl-summary-exec-region})
 
@@ -3439,25 +3722,37 @@ specified region.
 @kindex r * (Summary)
 @findex wl-summary-target-mark-region
 Put target mark on the messages in the 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.
 
 @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.
 
 @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.
 
 @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}) @xref{Mark and Action}.
 
 @item r u
 @kindex r u (Summary)
 
 @item r u
 @kindex r u (Summary)
@@ -3481,12 +3776,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
 @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})
 
 (@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
 @item t !
 @kindex t ! (Summary)
 @findex wl-thread-mark-as-unread
@@ -3494,17 +3797,10 @@ Mark as unread 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-mark-as-unread})
 
 With prefix argument, it affects on the all messages in the thread tree.
 (@code{wl-thread-mark-as-unread})
 
-@item t i
-@kindex t i (Summary)
-@findex wl-thread-prefetch
-Prefetch 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-prefetch})
-
 @item t x
 @kindex t x (Summary)
 @findex wl-thread-exec
 @item t x
 @kindex t x (Summary)
 @findex wl-thread-exec
-Execute @samp{D}, @samp{o} and @samp{O} marks on the messages which are
+Execute action for temporary marks 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-exec})
 the descendant of the current thread.  With prefix argument, it affects
 on the all messages in the thread tree.
 (@code{wl-thread-exec})
@@ -3515,28 +3811,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.
 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.
 
 @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.
 
 @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.
 
 @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}) @xref{Mark and Action}.
 
 @item t u
 @kindex t u (Summary)
 
 @item t u
 @kindex t u (Summary)
@@ -3553,13 +3863,6 @@ Save 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-save})
 
 With prefix argument, it affects on the all messages in the thread tree.
 (@code{wl-thread-save})
 
-@item m i
-@kindex m i (Summary)
-@findex wl-summary-target-mark-prefetch
-Prefetch all messages which have target mark @samp{*}.
-With prefix argument, prefetch all targets even if some of them are cached.
-(@code{wl-summary-target-mark-prefetch})
-
 @item m R
 @kindex m R (Summary)
 @findex wl-summary-target-mark-mark-as-read
 @item m R
 @kindex m R (Summary)
 @findex wl-summary-target-mark-mark-as-read
@@ -3569,10 +3872,17 @@ Mark as read all messages which have target mark @samp{*}.
 @item m $
 @kindex m $ (Summary)
 @findex wl-summary-target-mark-mark-as-important
 @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})
 
 (@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
 @item m !
 @kindex m ! (Summary)
 @findex wl-summary-target-mark-mark-as-unread
@@ -3583,19 +3893,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{*}.
 @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{*}.
 
 @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{*}.
 
 @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}) @xref{Mark and Action}.
 
 @item m y
 @kindex m y (Summary)
 
 @item m y
 @kindex m y (Summary)
@@ -3866,10 +4188,11 @@ want to aware of reading direction, set this to @code{t}.
 The initial setting is 80.
 Width of summary line. If @code{nil}, summary line's width is as is.
 
 The initial setting is 80.
 Width of summary line. If @code{nil}, summary line's width is as is.
 
-@item wl-summary-from-width
-@vindex wl-summary-from-width
-The initial setting is 17.
-Width of sender part of summary line.
+@item wl-summary-print-argument-within-window
+@vindex wl-summary-print-argument-within-window
+The initial setting is @code{nil}.
+If non-nil, the action argument is always printed on right side of
+window.
 
 @item wl-summary-indent-length-limit
 @vindex  wl-summary-indent-length-limit
 
 @item wl-summary-indent-length-limit
 @vindex  wl-summary-indent-length-limit
@@ -3890,6 +4213,11 @@ the thread is divided.
 The initial setting is t.
 If non-nil, cursor point is moved to the center of the summary window.
 
 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
 @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
@@ -3946,7 +4274,7 @@ The initial setting is the list shown below:
 
 @lisp
 @group
 
 @lisp
 @group
-("o" "O" "D")
+("o" "O" "D" "d" "i")
 @end group
 @end lisp
 
 @end group
 @end lisp
 
@@ -3960,7 +4288,7 @@ The initial setting is the list shown below:
 
 @lisp
 @group
 
 @lisp
 @group
-("D")
+("D" "d")
 @end group
 @end lisp
 
 @end group
 @end lisp
 
@@ -4037,6 +4365,53 @@ Following is an example (hide duplicated messages in multi folders)
                    ("^\\*.*" . hide) (".*" . read)))
 @end group
 @end lisp
                    ("^\\*.*" . 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
 
 
 @end table
 
 
@@ -4103,14 +4478,14 @@ windows.
 
 @item wl-message-ignored-field-list
 @vindex wl-message-ignored-field-list
 
 @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
 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}.
 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}.
@@ -4118,7 +4493,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
 
 @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.
 '("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.
@@ -4151,13 +4526,13 @@ Basically it is Emacs-standard mail mode.
 
 @menu
 * Editing Header::
 
 @menu
 * Editing Header::
-* Editing Message Body::
+* Editing Message Body and Sending::
 * Dynamical Message Re-arrangement::
 * Template::
 * POP-before-SMTP::
 @end menu
 
 * 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--},
 @subsection Editing Message Header
 
 You can freely edit header region above @samp{--text follows this line--},
@@ -4208,8 +4583,8 @@ If non-nil, the value of this variable is inserted as a @samp{Bcc:} of
 the draft when it is prepared.
 @end table
 
 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
 
 As a matter of course, editing message body can be performed in the same
 way as usual writing. You may write message body under
@@ -4222,9 +4597,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
 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
 @subsection Dynamic Modification of Messages
 @vindex wl-draft-config-alist
 @c @cindex Change Message
@@ -4276,7 +4655,7 @@ The format of @code{wl-draft-config-alist} is:
 @end group
 @end example
 
 @end group
 @end example
 
-Per default, there are 10 following sub-functions.
+Per default, there are 13 following sub-functions.
 
 @example
 'header:      Inserts the specified string at the bottom of the header.
 
 @example
 'header:      Inserts the specified string at the bottom of the header.
@@ -4395,6 +4774,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}.
 
 The format of @code{wl-template-alist} is almost the same as
 @code{wl-draft-config-alist}.
+@xref{Dynamical Message Re-arrangement}.
 
 @lisp
 @group
 
 @lisp
 @group
@@ -4433,6 +4813,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-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:
 
 As shown in the example in @code{wl-draft-config-alist}, you can select
 @samp{default} template by writing:
 
@@ -4471,7 +4854,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 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
 @code{starttls}, STARTTLS (RFC2595) connection will be established.  If
 unset, @code{elmo-pop3-default-stream-type} is used.
 @end table
@@ -4613,6 +4996,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
 
 @node Variables of Draft Mode,  , Key Bindings of Draft, Draft
 @section Customizable Variables
+@cindex SMTP AUTH
 
 @table @code
 @item wl-subscribed-mailing-list
 
 @table @code
 @item wl-subscribed-mailing-list
@@ -4758,6 +5142,14 @@ as an argument.
 The initial setting is @code{nil}.
 If non-nil, use new frame for the draft.
 
 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}.
 @item wl-draft-truncate-lines
 @vindex wl-draft-truncate-lines
 The initial value is the value of @code{default-truncate-lines}.
@@ -4785,13 +5177,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
 @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
 
 @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
 
 @item wl-draft-reply-use-address-with-full-name
 @vindex wl-draft-reply-use-address-with-full-name
@@ -4813,7 +5207,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,
 @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
 
 @item wl-auto-flush-queue
 @vindex wl-auto-flush-queue
@@ -4856,23 +5250,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}.
 @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}.
 
 @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}.
 
 @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
 
 @item wl-nntp-posting-server
 @vindex wl-nntp-posting-server
@@ -4896,7 +5298,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}.
 @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.
 
 SSL is used for news submission.  If @code{starttls}, STARTTLS (RFC2595)
 connection will be established.
 
@@ -4940,7 +5342,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.
 @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
 
 @item wl-pop-before-smtp-port
 @vindex wl-pop-before-smtp-port
@@ -4952,8 +5354,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
 @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
 
 @item wl-draft-queue-save-variables
 @vindex wl-draft-queue-save-variables
@@ -5056,12 +5459,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)
 * 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.
 
 @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
 
 @node Send Messages off-line, Re-file and Copy queue, Enable Operations, Enable Operations
 @subsection Transmission of Messages
@@ -5112,23 +5518,12 @@ are also reflected in the servers when Wanderlust becomes on-line.
 
 
 @node Pre-fetching Reservations,  , Marking, Enable Operations
 
 
 @node Pre-fetching Reservations,  , Marking, Enable Operations
-@subsection Pre-fetching (IMAP4, NNTP)
-
-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.
+@subsection Pre-fetching
 
 
-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
 
 
 @node Plugged Mode, Off-line State settings, Enable Operations, Disconnected Operations
@@ -5250,8 +5645,8 @@ manually, press @kbd{F} in the folder mode.
 
 @item elmo-enable-disconnected-operation
 @vindex elmo-enable-disconnected-operation
 
 @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
 
 @item elmo-lost+found-folder
 @vindex elmo-lost+found-folder
@@ -5616,9 +6011,9 @@ The initial setting is the list below.
 
 @lisp
 @group
 
 @lisp
 @group
-(list wl-summary-important-mark
-      wl-summary-new-mark
-      wl-summary-unread-mark
+(list wl-summary-flag-mark
+      wl-summary-new-uncached-mark
+      wl-summary-new-cached-mark
       wl-summary-unread-uncached-mark
       wl-summary-unread-cached-mark)
 @end group
       wl-summary-unread-uncached-mark
       wl-summary-unread-cached-mark)
 @end group
@@ -5874,7 +6269,7 @@ Needless to say, you can use your own function.
 @end table
 
 
 @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
 @chapter Score of the Messages
 @cindex Scoring
 @c @cindex Kill File
@@ -6139,7 +6534,8 @@ The initial setting is the list shown below:
 
 @lisp
 @group
 
 @lisp
 @group
-(list wl-summary-new-mark)
+(list wl-summary-new-uncached-mark
+      wl-summary-new-cached-mark)
 @end group
 @end lisp
 
 @end group
 @end lisp
 
@@ -6200,7 +6596,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
 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
 
 The initial setting is @code{t}.
 @end table
 
@@ -6372,187 +6768,38 @@ pop3                      N     E     E     E
 @end example
 
 
 @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
-@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 Address Book, Customization, 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
+@example
 @group
 #
 # @r{Lines begin with @samp{#} are comment.}
 @group
 #
 # @r{Lines begin with @samp{#} are comment.}
@@ -6645,28 +6892,598 @@ Add new entry.
 @findex wl-addrmgr-delete
 Delete entry.
 
 @findex wl-addrmgr-delete
 Delete entry.
 
-@item e
-@kindex e (Address Manager)
-@findex wl-addrmgr-edit
-Edit entry.
+@item e
+@kindex e (Address Manager)
+@findex wl-addrmgr-edit
+Edit entry.
+@end table
+
+
+@node Spam Filter, Advanced Issues, Address Book, Top
+@chapter Spam Filter
+@cindex Spam Filter
+
+@code{wl-spam} provides an frontend to external spam filtering programs.
+You can register to or judge spam by the filtering program cooperateing
+with messages operations on Wanderlust.
+
+@menu
+* Usage of Spam Filter::        Usage of Spam Filter
+* Spam Filter Processors::      Supported spam filters
+@end menu
+
+@node Usage of Spam Filter, Spam Filter Processors, Spam Filter, Spam Filter
+@section Usage of Spam Filter
+
+@subsection Initial Setting
+
+To use @code{wl-spam}, write in @file{~/.wl} as follows:
+
+@lisp
+@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 Processors}.}
+(setq elmo-spam-scheme 'bogofilter)
+(require 'wl-spam)
+@end group
+@end lisp
+
+@subsection spam mark
+
+The spam mark (@samp{s}) will be provided as new temporary mark.
+Messages marked by this will be refiled into @code{wl-spam-folder} when
+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 @kbd{k m} at any time.
+
+@subsection spam judgment
+
+You can judge spam messages by following ways:
+
+@enumerate
+@item
+Make judgement on execution of auto-refile.
+
+Insert @code{wl-refile-guess-by-spam} to arbitrary position in
+@code{wl-auto-refile-guess-functions} as follows.
+
+@lisp
+@group
+(setq wl-auto-refile-guess-functions
+      '(wl-refile-guess-by-rule
+        wl-refile-guess-by-spam))
+@end group
+@end lisp
+
+In this example, judge spam if it could not decide refile destination by
+@code{wl-refile-rule-alist}.
+
+@item
+Make judgement on entering the summary of specified folder.
+
+Specify the value of @code{wl-spam-auto-check-folder-regexp-list}
+as the list of regular expressions for folder names to be
+automatically judged by spam filter.
+
+@lisp
+(setq wl-spam-auto-check-folder-regexp-list '("\\+inbox"))
+@end lisp
+
+In this example, judgement will be processed when you enter summary of
+the folder whose name contains @samp{+inbox}.
+
+@item
+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}.
+
+You can also process learning by the result of judgement. (You would
+better turn on this feature after learning to some extent)
+
+Example follows:
+
+@lisp
+@group
+(setq elmo-split-rule
+      '(((spam-p) "+spam")
+        ;; @r{to learn by the judgement, use following instead}
+        ;((spam-p :register t) "+spam")
+        (t "+inbox"))
+@end group
+@end lisp
+@end enumerate
+
+@subsection spam learning
+
+@code{wl-spam} automatically learn spam with refiling messages.
+
+At first, @code{wl-spam} classifies the folders controlled by Wanderlust
+into following 4 domains by the class of containig messages
+
+@table @samp
+@item spam
+Folders containing messages judged as spam.
+(The folder specified by @code{wl-spam-folder})
+@item good
+Folders containing messages judged as non-spam.
+@item undecide
+Folders containing messages not yet judged. Folders without
+pre-distribution may belong to this domain e.g. @samp{+inbox}.
+(specified by @code{wl-spam-undecided-folder-regexp-list})
+@item ignored
+Foldes have nothing to do with spam processing e.g.
+@code{wl-trash-folder} or @code{wl-draft-folder}. (specified by
+@code{wl-spam-ignored-folder-regexp-list})
+@end table
+
+When you refile messages across different domains, it automatically
+learn messages as @samp{spam} or @samp{non-spam} according to domains
+it belongs before and after.
+
+To put it concretely, it will learn by following rule:
+
+@table @samp
+@item undecide -> spam
+learn as spam.
+@item good -> spam
+learn as spam and cancel previous study as non-spam.
+@item undecide -> good
+learn as non-spam.
+@item spam -> good
+learn as non-spam and cancel previous study as spam.
+@end table
+
+It do not learn anything in other cases.
+
+@subsection Key Bindings
+@cindex Keybind, spam filter
+
+@table @kbd
+@item k m
+@kindex k m (Summary)
+@findex wl-summary-spam
+Put spam mark (@samp{s}) on current message.
+
+@item k c
+@kindex k c (Summary)
+@findex wl-summary-test-spam
+Test current message and put spam mark if judged as spam.
+
+@item k C
+@kindex k C (Summary)
+@findex wl-summary-mark-spam
+Test messages with the mark in @code{wl-spam-auto-check-marks},
+and put spam mark if judged as spam. If it is called with prefix
+argument, test all messages regardless of their marks.
+
+@item k s
+@kindex k s (Summary)
+@findex wl-summary-register-as-spam
+Register current message as spam.
+
+@item k S
+@kindex k S (Summary)
+@findex wl-summary-register-as-spam-all
+Register all messages in the folder as spam.
+
+@item k n
+@kindex k n (Summary)
+@findex wl-summary-register-as-good
+Register current message as non-spam.
+
+@item k N
+@kindex k N (Summary)
+@findex wl-summary-register-as-good-all
+Register all messages in the folder as non-spam.
+
+@item m k
+@kindex m k (Summary)
+@findex wl-summary-target-mark-spam
+Put spam mark (@samp{s}) on messages with the target mark @samp{*}.
+
+@item m s
+@kindex m s (Summary)
+@findex wl-summary-target-mark-register-as-spam
+Register messages with the target mark @samp{*} as spam.
+
+@item m n
+@kindex m n (Summary)
+@findex wl-summary-target-mark-register-as-good
+Register messages with the target mark @samp{*} as non-spam.
+@end table
+
+@subsection Customizable Variables
+
+@table @code
+@item wl-spam-folder
+@vindex wl-spam-folder
+Specify the name of destination folder for the spam messages.
+The initial setting is @samp{+spam}.
+
+@item wl-spam-undecided-folder-regexp-list
+@vindex wl-spam-undecided-folder-regexp-list
+Specify the list of regexp of folder names which contain messages
+not yet decided as spam or non-spam.
+The initial setting is @code{'("inbox")}.
+
+@item wl-spam-ignored-folder-regexp-list
+@vindex wl-spam-ignored-folder-regexp-list
+The initial setting is as follows.
+
+@lisp
+@group
+(list (regexp-opt (list wl-draft-folder
+                        wl-trash-folder
+                        wl-queue-folder)))
+@end group
+@end lisp
+
+Folders of no effect against spam judgement, specified by the list of
+folder name regular expressions.
+
+@item wl-spam-auto-check-folder-regexp-list
+@vindex wl-spam-auto-check-folder-regexp-list
+Folders to make spam judgement on entering the summary of them,
+specified by the list of folder name regular expressions.
+The initial setting is @code{nil}.
+
+@item wl-spam-auto-check-marks
+@vindex wl-spam-auto-check-marks
+The initial setting is the following list:
+
+@lisp
+@group
+(list wl-summary-new-uncached-mark
+      wl-summary-new-cached-mark)
+@end group
+@end lisp
+
+Messages with mark specified by this variable will be processed
+by whole-folder judgement including auto test by
+@code{wl-spam-auto-check-folder-regexp-list}.
+Persistent marks can be used in this method, but temporary marks cannot.
+
+You can specify the list of marks as the initial setting, or you can
+specify follwing symbol:
+
+@table @code
+@item all
+Process all messages regardless of persistent marks.
+@end table
+@end table
+
+
+@node Spam Filter Processors,  , Usage of Spam Filter, Spam Filter
+@section Supported Spam Filters
+@cindex Spam Filter, Bogofilter
+@cindex Spam Filter, Spamfilter
+
+Supported spam filtering libraries are following ones.
+
+@menu
+* bogofilter::                          bogofilter
+* spamfilter::                          spamfilter.el
+* bsfilter::                            bsfilter
+* SpamAssassin::                        SpamAssassin
+* SpamOracle::                          SpamOracle
+* Regular Expressions Header Matching:: Header regexp
+@end menu
+
+
+@node bogofilter, spamfilter, Spam Filter Processors, Spam Filter Processors
+@subsection bogofilter
+@cindex bogofilter
+
+bogofilter (@uref{http://bogofilter.sourceforge.net/}) is a spam filter
+implemented by C language.
+
+To use spam filter with bogofilter, write following setting in
+@file{~/.wl} or somewhere else.
+
+@lisp
+@group
+(setq elmo-spam-scheme 'bogofilter)
+@end group
+@end lisp
+
+@subsubsection Customizable Variables
+
+@table @code
+@item elmo-spam-bogofilter-program
+@vindex elmo-spam-bogofilter-program
+The initial setting is @file{bogofilter}.
+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.
+
+@item elmo-spam-bogofilter-args
+@vindex elmo-spam-bogofilter-args
+The initial setting is @code{nil}.
+Specify arguments to be supplied for bogofilter executable.
+
+@item elmo-spam-bogofilter-database-directory
+@vindex elmo-spam-bogofilter-database-directory
+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 Processors
+@subsection spamfilter.el
+@cindex spamfilter
+
+@file{spamfilter.el}
+(@uref{http://www.geocities.co.jp/SiliconValley-PaloAlto/7043/}) is a
+spam filtering library implemented by Emacs Lisp.
+
+Corresponding modules will be compiled/installed, if you have
+@file{spamfilter.el} within @code{load-path} when you are to install wl.
+@xref{Install}.
+
+To use @file{spamfilter.el}, write following setting in @file{~/.wl} or
+somewhere else.
+(Of cource, you have to have settings for @file{spamfilter.el} itself)
+
+@lisp
+@group
+(setq elmo-spam-scheme 'spamfilter)
+@end group
+@end lisp
+
+@subsubsection Customizable Variables
+
+@table @code
+@item elmo-spam-spamfilter-corpus-filename
+@vindex elmo-spam-spamfilter-corpus-filename
+The initial setting is @file{~/.elmo/.spamfilter}.
+It specifies the name of corpus file.
+@end table
+
+@node bsfilter, SpamAssassin, spamfilter, Spam Filter Processors
+@subsection bsfilter
+@cindex bsfilter
+
+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
+
+@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
+
+SpamAssassin (@uref{http://spamassassin.org/}) is one of the most
+popular spam filtering program implemented on Perl. SpamAssassin
+attempts to identify spam using text analysis and several internet-based
+realtime blacklists.  SpamAssassin also uses a Bayesian learning filter
+which enables more accurate spam filtering.
+
+To use @file{SpamAssassin} on Wanderlust, write following setting
+in @file{~/.wl} or somewhere else.
+(Of course, you have to install SpamAssassin beforehand.)
+
+@lisp
+@group
+(setq elmo-spam-scheme 'sa)
+@end group
+@end lisp
+
+@subsubsection Customize Variables
+
+@table @code
+@item elmo-spam-spamassassin-program
+@vindex elmo-spam-spamassassin-program
+The initial setting is @file{spamassassin}.
+Specify the name of executable @command{spamassassin}. If the executable
+is not in your environmental variable @env{PATH}, you should
+set this by full path.
+
+@item elmo-spam-spamassassin-learn-program
+@vindex elmo-spam-spamassassin-learn-program
+The initial setting is @file{sa-learn}.  
+Specify the name of the SpamAssassin's Bayesian filtering learner
+program, @command{sa-learn}. If the executable is not in your
+environmental variable @env{PATH}, you should set this by full path.
+
+@item elmo-spam-spamassassin-program-arguments
+@vindex elmo-spam-spamassassin-program-arguments
+The initial setting is @code{'("-e")}.
+Specify the arguments to be supplied for @command{spamassassin} executable.
+You have to specify the argument to exit the program with an error exit code
+when the result is spam. For example, if you want to use @command{spamc}
+ instead of @command{spamassassin}, you should specify @code{'("-c")}.
+
+@item elmo-spam-spamassassin-learn-program-arguments
+@vindex elmo-spam-spamassassin-lern-program-arguments
+The initial setting is @code{nil}.
+Specify the arguments to be supplied for @command{sa-learn}.
+
+@item elmo-spamassassin-debug
+@vindex elmo-spamassassin-debug
+The initial setting is @code{nil}.
+If you specify @code{t}, the output from @command{spamassassin} is
+stored in the buffer named @code{"*Debug ELMO SpamAssassin*"}.
+
+@end table
+
+@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
 
 
 @end table
 
 
-@node Customization, Terminology, Address Book, Top
-@chapter Customizing Wanderlust
-@cindex Customization
+@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
 
 @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
 
 
 * 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.
 @section Living with other packages
 
 Examples with other packages.
@@ -6693,9 +7510,6 @@ Examples with other packages.
 Place @file{util/im-wl.el} on the @code{load-path} and do the following
 settings.
 
 Place @file{util/im-wl.el} on the @code{load-path} and do the following
 settings.
 
-If @command{imput} is on the @code{exec-path} at the installation,
-@file{im-wl.el} is byte-compiled and installed.  @xref{Install}.
-
 @lisp
 @group
 (autoload 'wl-draft-send-with-imput-async "im-wl")
 @lisp
 @group
 (autoload 'wl-draft-send-with-imput-async "im-wl")
@@ -6948,7 +7762,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}.
 
 
 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
 @section Highlights
 
 @subsection Customizable Variables
@@ -7194,7 +8008,7 @@ The face for strings (for example, a version number) in the demo.
 @end table
 
 
 @end table
 
 
-@node Biff, Advanced Settings, Highlights, Customization
+@node Biff, Password Management, Highlights, Advanced Issues
 @section Notify Mail arrival
 @cindex Biff
 
 @section Notify Mail arrival
 @cindex Biff
 
@@ -7218,6 +8032,13 @@ If @code{nil}, wl doesn't check mail arrival.
 The initial setting is 40 (in seconds).
 Check mail arrival in this period.
 
 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.
 @item wl-biff-notify-hook
 @vindex wl-biff-notify-hook
 This hook is run at the arrival of new mail.
@@ -7229,7 +8050,214 @@ For silence, set to @code{nil}.
 @end table
 
 
 @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
 @section Advanced Settings
 
 @menu
@@ -7243,8 +8271,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
 @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.
 
 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.
@@ -7305,9 +8331,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.
 
 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.
 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:
 
 @code{wl-subscribed-mailing-list} if the parent has some of them,
 set as follows:
 
@@ -7335,10 +8366,6 @@ set as follows:
 @end lisp
 
 
 @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
 
 @node Thread Format, User-Agent Field, Draft for Reply, Advanced Settings
 @subsection Appearance of Threads
 
@@ -7418,7 +8445,7 @@ The following is a example:
 @end lisp
 
 
 @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:
 @section Customizable Variables
 
 Customizable variables that have not been described yet:
@@ -7432,7 +8459,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
 @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
 
 @item wl-trash-folder
 @vindex wl-trash-folder
@@ -7449,6 +8482,13 @@ If non-nil, you are asked for confirmation when Wanderlust terminates.
 The initial setting is @code{t}.
 If non-nil, you are asked for confirmation when mail is sent.
 
 The initial setting is @code{t}.
 If non-nil, you are asked for confirmation when mail is sent.
 
+@item wl-default-sync-range
+@vindex wl-default-sync-range
+The initial setting is @samp{update}.
+Default update range of the summary. You can specify
+@samp{all}, @samp{update}, @samp{rescan} or @samp{no-sync}.
+See description of @code{wl-summary-sync} for the meaning of ranges.
+
 @item wl-folder-sync-range-alist
 @vindex wl-folder-sync-range-alist
 The initial setting is the alist shown below:
 @item wl-folder-sync-range-alist
 @vindex wl-folder-sync-range-alist
 The initial setting is the alist shown below:
@@ -7463,9 +8503,10 @@ The initial setting is the alist shown below:
 @noindent
 This is an associative list of regular expressions of folder names and
 update range of the summary.  Update range is one of the @samp{all},
 @noindent
 This is an associative list of regular expressions of folder names and
 update range of the summary.  Update range is one of the @samp{all},
-@samp{update}, @samp{rescan}, @samp{rescan-noscore}, @samp{first},
-@samp{last} and @samp{no-sync}. If a folder do not match, @samp{update}
-is used.
+@samp{update}, @samp{rescan} or @samp{no-sync}. If the folder do not
+match any of them, the value of @code{wl-default-sync-range} is used
+(@samp{update} by default).
+See description of @code{wl-summary-sync} for the meaning of ranges.
 
 @item wl-ask-range
 @vindex wl-ask-range
 
 @item wl-ask-range
 @vindex wl-ask-range
@@ -7588,18 +8629,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.
 
 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
 The initial setting is the alist shown below:
 
 @lisp
 @group
-(("^-" . remove))
+(("^-" . remove)
+ ("^@@" . remove))
 @end group
 @end lisp
 
 @noindent
 @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:
 
 Each item in the list is a folder and destination; you can specify any
 one of the following in the place of destination:
 
@@ -7609,22 +8651,6 @@ string             : moves the messages to the specific folder.
 @code{trash} or others  : moves the messages to @code{wl-trash-folder}.
 @end example
 
 @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}.
 @item wl-x-face-file
 @vindex wl-x-face-file
 The initial setting is @file{~/.xface}.
@@ -7643,12 +8669,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.
 
 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).
 @item elmo-nntp-list-folders-use-cache
 @vindex elmo-nntp-list-folders-use-cache
 The initial setting is 600 (in seconds).
@@ -7694,12 +8714,99 @@ this value, display progress gauge.
 @end table
 
 
 @end table
 
 
-@node Hooks,  , Customizable Variables, Customization
+@node Hooks,  , Customizable Variables, Advanced Issues
 @section Hooks
 
 (Not yet written)
 
 @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
 
 @chapter Terminology around Wanderlust
 @cindex Terminology
 
@@ -7777,6 +8884,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.
 
 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
 
 @node Addition, Index, Mailing List, Top
 @chapter Additional Information
@@ -7823,6 +8949,14 @@ 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.
       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.
 @end example
 
 See @file{ChangeLog} for details.
 @end example
 
 See @file{ChangeLog} for details.