This commit was manufactured by cvs2svn to create branch 'elmo-imap4-new-
[elisp/wanderlust.git] / doc / wl.texi
index 6946062..52b5baf 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
-* Split messages::           Splitting messages
 * 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
@@ -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 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.
@@ -254,7 +255,7 @@ may help you.}.
 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
@@ -262,8 +263,8 @@ latest versions should work.  For example, the following combination are
 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.
@@ -284,12 +285,10 @@ Mirrored ftp/http sites:
 
 @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/
-ftp://opaopa.org/pub/mirror/elisp/wl/
-@c ftp://roguelife.org/pub/tsumura/wl/
 @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.
 
-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, Search, Multi, Filter, Pipe, File, Access and Internal folder
+types.
 
 @menu
 * IMAP Folder::                 @samp{%} -- IMAP folder
@@ -685,11 +685,13 @@ Pipe and Internal folder types.
 * Archive Folder::              @samp{$} -- Archive folder
 * POP Folder::                  @samp{&} -- POP folder
 * Shimbun Folder::              @samp{@@} -- Shimbun Folder
-* Namazu Folder::               @samp{[} -- Namazu Folder
+* Search Folder::               @samp{[} -- Search Folder
 * Multi Folder::                @samp{*} -- Multi 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
 
 
@@ -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
-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
@@ -832,7 +837,7 @@ Format:
 
 @example
 @group
-@samp{-} @var{newsgroup} [[@samp{:} @var{username}][@samp{@@} @var{hostname}][@samp{:} @var{port}]][@samp{!}]
+@samp{-} @var{newsgroup} [@samp{:} @var{username}][@samp{@@} @var{hostname}][@samp{:} @var{port}][@samp{!}]
 @end group
 @end example
 
@@ -847,12 +852,15 @@ default:
 @end example
 
 AUTHINFO is used as authentication method if the @var{username} is
-non-nil.  SSL will be default method if
-@code{elmo-nntp-default-stream-type} is non-nil even if the folder name
-doesn't end with @samp{!}.  If a folder name ends with @samp{!!},
-STARTTLS connection will be established.  if the value of
-@code{elmo-nntp-default-stream-type} is @code{starttls}, STARTTLS will
-be the default connection.
+non-nil.  SSL connection will be used if a folder name ends with @samp{!}.
+If a folder name ends with @samp{!!}, STARTTLS connection will be
+established.
+
+If the value of @code{elmo-nntp-default-stream-type} is @code{ssl},
+SSL will be the default connection, i.e. you can omit @samp{!}.  If it
+is is @code{starttls}, STARTTLS will be the default connection.  To use
+normal connection in these cases, add @samp{!direct} at the end of
+folder name.
 
 Example:
 
@@ -1218,7 +1226,7 @@ Format:
 
 @example
 @group
-@samp{&} [@var{username}][[@samp{/} @var{authenticate-type}][@samp{:} @var{numbering-method}][@samp{@@} @var{hostname}][@samp{:} @var{port}]][@samp{!}]
+@samp{&} [@var{username}][@samp{/} @var{authenticate-type}][@samp{:} @var{numbering-method}][@samp{@@} @var{hostname}][@samp{:} @var{port}][@samp{!}]
 @end group
 @end example
 
@@ -1262,15 +1270,17 @@ To use apop as an @var{authenticate-type}, @file{md5.el} is needed
 (GPL2).
 
 If the last character of the folder name is @samp{!}, Wanderlust
-connects to the POP server via SSL (Secure Socket Layer).  If you set
-non-nil value to @code{elmo-pop3-default-stream-type}, you don't have to put
-@samp{!} in the end of the folder name to use SSL. If a folder name ends
-with @samp{!!}, STARTTLS connection will be established.  if the value
-of @code{elmo-pop3-default-stream-type} is @code{starttls}, STARTTLS will be the
-default connection.
+connects to the POP server via SSL (Secure Socket Layer).  If a folder
+name ends with @samp{!!}, STARTTLS connection will be established.
+
+If the value of @code{elmo-pop3-default-stream-type} is @code{ssl},
+SSL will be the default connection, i.e. you can omit @samp{!}.  If it
+is is @code{starttls}, STARTTLS will be the default connection.  To use
+normal connection in these cases, add @samp{!direct} at the end of
+folder name.
 
 
-@node Shimbun Folder, Namazu Folder, POP Folder, Folders
+@node Shimbun Folder, Search Folder, POP Folder, Folders
 @section Shimbun Folder
 @cindex @samp{@@}
 @cindex Shimbun Folder
@@ -1310,33 +1320,68 @@ Example:
 @table @code
 @item elmo-shimbun-update-overview-folder-list
 @vindex elmo-shimbun-update-overview-folder-list
-The initial setting is @code{nil}. You can specify a list of regular
-expressions of shimbun folder names. The overview of matched shimbun
-folder is updated when messages are fetched.
-You should @kbd{s rescan} after fetching to update summary.
+The initial setting is @code{all}. Specify a set of folders to update
+overview when messages are fetched. Specify @code{all} to update
+overview in all shimbun folders. You can specify a list of regular
+expressions of shimbun folder names to restrict affected folders.
+
+Example:
+
+@example
+(setq elmo-shimbun-update-overview-folder-list
+      '("^@@airs\\." "^@@namazu\\."))
+@end example
+
+Update summary view automatically after fetching.
 @end table
 
 
-@node Namazu Folder, Multi Folder, Shimbun Folder, Folders
-@section Namazu Folder
+@node Search Folder, Multi Folder, Shimbun Folder, Folders
+@section Search Folder
 @cindex @samp{[}
-@cindex Namazu Folder
-@cindex Folder, Namazu
+@cindex Search Folder
+@cindex Folder, Search
 @cindex Folder, Text Search
-@pindex Namazu
-@pindex nmz
-A folder to access messages found in namazu-index with some condition.
-It uses namazu (@uref{http://www.namazu.org/}) for search.
+
+A folder to access messages found by an external program with some
+condition.
 
 Format:
 
 @example
 @group
-@samp{[} @var{search condition} @samp{]} [ @var{absolute path of namazu index} ]
+@samp{[} @var{search condition} @samp{]} [ @var{search target} [ @samp{!} @var{search engine} ] ]
 @end group
 @end example
 
-Default value of the path of namazu index can be assigned by @code{elmo-nmz-default-index-path}.
+The format of the @var{search condition} and @var{search target} depend
+on the @var{search engine}.
+
+@subsection Supported search engines
+
+Supported search engines are following ones.  Default search engine can
+be assigned by @code{elmo-search-default-engine}.
+
+@menu
+* namazu::      namazu
+* grep::        grep
+@end menu
+
+
+@node namazu, grep, Search Folder, Search Folder
+@subsection namazu
+@pindex namazu
+
+The messages registered in the namazu-index is found by using namazu
+(@uref{http://www.namazu.org/}).
+
+@var{search condition} is a query of namazu.  Please refer to the
+document of the attached to namazu for details.
+
+@var{search target} is a namazu-index used for search.  The directory
+with the index or the alias that explain in the following can be
+specified.  Default value of the path of namazu index can be assigned by
+@code{elmo-search-namazu-default-index-path}.
 
 Example:
 
@@ -1349,7 +1394,7 @@ Example:
 @end group
 @end example
 
-@subsection TIPS
+@c @subsection TIPS
 
 @subsubsection Enter space to separate keywords
 
@@ -1362,7 +1407,7 @@ You can define an alias name for index.
 Example:
 
 @example
-(setq elmo-nmz-index-alias-alist
+(setq elmo-search-namazu-index-alias-alist
       '(("cache" . "~/.elmo/cache")
         ("docs" . "~/documents")))
 @end example
@@ -1379,15 +1424,15 @@ directory @file{~/.elmo/cache}.
 
 @subsubsection Multiple indices
 
-You can specify a list for @code{elmo-nmz-default-index-path} and
-@code{elmo-nmz-index-alias-alist}.
+You can specify a list for @code{elmo-search-namazu-default-index-path} and
+@code{elmo-search-namazu-index-alias-alist}.
 When list is specified, all index contained in the list is used as the 
 namazu indices.
 
 Example:
 
 @example
-(setq elmo-nmz-index-alias-alist
+(setq elmo-search-namazu-index-alias-alist
       '(("all" . ("~/.elmo/cache" "~/documents"))
         ("cache" . "~/.elmo/cache")))
 @end example
@@ -1401,7 +1446,32 @@ Using above alias setting, you can specify
 to execute a namazu search with keyword @samp{wanderlust} using indices in the 
 directory @file{~/.elmo/cache} and @file{~/documents}.
 
-@node Multi Folder, Filter Folder, Namazu Folder, Folders
+@node grep,  , namazu, Search Folder
+@subsection grep
+@pindex grep
+
+The files that exists in the directory specified with the @var{search
+target} are found by using grep.
+
+@var{search condition} is a regular expression of grep.  The directory
+as @var{search target} cannot be omitted.
+
+Example:
+
+@example
+@group
+[wanderlust]~/Mail/inbox!grep
+    -> search messages matched with "wanderlust"
+       from the directory "~/Mail/inbox"
+
+["[sr]emi"]~/Mail/semi!grep
+    -> If @samp{]} is included in regular expression,
+       @var{search condition} should be enclosed with @samp{"}.
+@end group
+@end example
+
+
+@node Multi Folder, Filter Folder, Search Folder, Folders
 @section Multi Folder
 @cindex @samp{*}
 @cindex Multi Folder
@@ -1444,6 +1514,7 @@ Example:
 @cindex Folder, Filtering
 @cindex Folder, Virtual
 @cindex Folder, Conditional
+@cindex Flag
 
 A folder to access virtual folder which collects all messages that
 satisfy a condition.
@@ -1475,8 +1546,8 @@ Example:
 @item
 Date filter: @samp{since:@var{date}}, @samp{before:@var{date}}
 
-since: only messages arrived since @var{date} are picked.
-before: only messages arrived before @var{date} are picked.
+since: only messages arrived since @var{date} are picked (@var{date} is included).
+before: only messages arrived before @var{date} are picked (@var{date} is not included).
 
 You can specify following as @var{date}.
 
@@ -1520,9 +1591,48 @@ Example:
 @end example
 
 @item
+Flag filter: @samp{flag:@var{flag-name}}
+
+Pick up messages with flag specified by @var{flag-name}.
+
+You can specify following flag names:
+
+@example
+@group
+unread    -> unread
+important -> important
+answered  -> replied
+forwarded -> forwarded
+digest    -> unread or important
+any       -> unread or replied or forwarded or global-flag.
+@end group
+@end example
+
+You can also use flags which you have set as `global-flag'.  global-flag
+is a flag which has arbitrary name. You can put global-flag on messages
+by invoking @code{wl-summary-set-flags} (Key @key{F}). By default,
+@samp{important} flag is prepared.  You can view messages with
+global-flag by visiting the subfolder of @samp{'flag} folder.
+
+@xref{Internal Folder}.
+
+Example:
+
+@example
+@group
+/flag:digest/%inbox     -> a folder consist of unread or important
+                           message in %inbox.
+/flag:wl/+ML/Wanderlust -> a folder consist of messages with global flag
+                           wl in +ML/Wanderlust.
+@end group
+@end example
+
+@item
 Compound condition
 
-If you combine conditions by character @samp{|}, it is considered as OR condition. @samp{&} is considered as AND condition, likewise.
+A condition starting with @samp{!} indicates a negation.
+If you combine conditions by character @samp{|}, it is considered as OR condition.
+@samp{&} is considered as AND condition, likewise.
 Condition can be grouped by parentheses (@samp{(}, and @samp{)}).
 
 @samp{/tocc:xxxx/} is an abbreviation of @samp{/to:xxxx|cc:xxxx/}.
@@ -1639,11 +1749,12 @@ Example:
 
 After messages are moved, a hook @code{elmo-pipe-drained-hook} is called.
 
-@node Internal Folder,  , Pipe Folder, Folders
+@node Internal Folder, File Folder, Pipe Folder, Folders
 @section Internal folder
 @cindex @samp{'}
 @cindex Internal Folder
 @cindex Folder, @samp{$} mark
+@cindex Flag
 @cindex Cache
 @c @cindex Folder, Null
 
@@ -1653,25 +1764,27 @@ Format:
 
 @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
 
-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
-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
@@ -1687,6 +1800,54 @@ the name of the subdirectories of the cache directory
 (@file{~/.elmo/cache}).
 
 
+@node File Folder, Access Folder, Internal Folder, Folders
+@section File folder
+@cindex File Folder
+
+File Folder gives the view for local file system. 
+The one File Folder corresponds to the one directory.
+
+Format:
+
+@example
+@samp{file:} @var{Path-of-the-directory}
+@end example
+
+Example:
+
+@example
+@group
+file:~/work     -> @file{~/work}
+file:/etc       -> @file{/etc}
+@end group
+@end example
+
+
+@node Access Folder,  , File Folder, Folders
+@section Access folder
+@cindex Access Folder
+
+A folder to access virtual folder which collects messages from a root
+folder and subfolders of one.  The add and remove of the subfolder is
+automatically reflected.
+
+
+Format:
+
+@example
+@samp{access:} @var{root-folder}
+@end example
+
+Example:
+
+@example
+@group
+access:%INBOX -> All subfolders of IMAP mailbox "inbox".
+access:'cache -> All of 'cache folder
+@end group
+@end example
+
+
 @node Folder, Summary, Folders, Top
 @chapter Folder mode
 @cindex Folder
@@ -1850,22 +2011,26 @@ current cursor point.
 
 @item N
 @kindex N (Folder)
+@findex wl-folder-next-unread
 Jump cursor to the folder which have unread messages on the downward
 from current cursor point.
 (@code{wl-folder-next-unread})
 
 @item p
 @kindex p (Folder)
+@findex wl-folder-prev-entity
 Move cursor to the folder on the previous line.
 (@code{wl-folder-prev-entity})
 
 @item n
 @kindex n (Folder)
+@findex wl-folder-next-entity
 Move cursor to the folder on the next line.
 (@code{wl-folder-next-entity})
 
 @item J
 @kindex J (Folder)
+@findex wl-folder-jump-folder
 Jump to the folder specified by the user input.
 (@code{wl-folder-jump-folder})
 
@@ -1905,7 +2070,7 @@ Flush queue.
 @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 ?
@@ -1920,44 +2085,57 @@ Search the folders with the condition specified.
 All unread folder is opened.
 (@code{wl-folder-open-all-unread-folder})
 
+@item x
+@kindex x (Folder)
+@findex wl-execute-temp-marks
+Execute marks in summary buffers. @xref{Sticky Summary}.
+(@code{wl-execute-temp-marks})
+
 @item /
 @kindex / (Folder)
 @findex wl-folder-open-close
 Folder group is opened/closed.
-(@code{wl-thread-open-close})
+(@code{wl-folder-open-close})
 
 @item [
 @kindex [ (Folder)
+@findex wl-folder-open-all
 All folder group is opened.
 (@code{wl-folder-open-all})
 
 @item ]
 @kindex ] (Folder)
+@findex wl-folder-close-all
 All folder group is closed.
 (@code{wl-folder-close-all})
 
 @item q
 @kindex q (Folder)
+@findex wl-exit
 Quit Wanderlust.
 (@code{wl-exit})
 
 @item z
 @kindex z (Folder)
+@findex wl-folder-suspend
 Suspend Wanderlust.
 (@code{wl-folder-suspend})
 
 @item M-s
 @kindex M-s (Folder)
+@findex wl-save
 Save current folder status.
 (@code{wl-save})
 
 @item M-t
 @kindex M-t (Folder)
+@findex wl-toggle-plugged
 Toggle Wanderlust's offline/online status.
 (@code{wl-toggle-plugged})
 
 @item C-t
 @kindex C-t (Folder)
+@findex wl-plugged-change
 Start Wanderlust's plug-status manager.
 (@code{wl-plugged-change})
 @end table
@@ -2048,15 +2226,6 @@ Example:
 
 @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.
 
@@ -2066,7 +2235,7 @@ For example, if you specify
 @lisp
 @group
 (setq wl-folder-hierarchy-access-folders
-     '("^-$" "^-alt$" "^-japan$" "^-comp$" "^-comp.unix$"))
+     '("^-[^\\.]*$" "^-comp.unix$" "^-comp.unix.bsd$"))
 @end group
 @end lisp
 
@@ -2114,7 +2283,8 @@ You can append, delete, edit folders from folder mode.
 
 @subsubsection Append Folder
 
-@kbd{m a} appends new folder to the folder mode.
+@kbd{m a} appends new folder to your folder list. If you enter non-existent
+folder, it will ask you to create a new one.
 @kbd{m g} appends new folder group.
 To append new folder to this group, firstly open it,
 then execute append command in the next line.
@@ -2231,7 +2401,8 @@ one stroke key binding.
 @item m a
 @kindex m a (Folder)
 @findex wl-fldmgr-add
-Insert a folder.
+Add specified folder to your folder list . If you enter non-existent
+folder, create it after confirmation.
 (@code{wl-fldmgr-add})
 
 @item +
@@ -2482,6 +2653,7 @@ mode.
 * Auto Refile::                 Auto refile settings
 * Sticky Summary::              Summary make sticky
 * Summary View::                Format of summary lines
+* Mark and Action::             Temporary marks and their effect
 * Key Bindings of Summary::     Key bindings
 * Variables of Summary::        Customize Summary Mode
 @end menu
@@ -2543,8 +2715,8 @@ message has empty subject field.
 @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
@@ -2553,8 +2725,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}.
 
+@item d
+The mark to dispose. You can put @samp{d} by typing @kbd{d} key.
+
 @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.
@@ -2566,14 +2741,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.
+
+@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
 
-@kbd{x} key executes @samp{D}, @samp{o} and @samp{O} marks.
+@kbd{x} key executes action for temporary marks, respectively.
 
 @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:
@@ -2581,28 +2765,44 @@ Each persistent mark indicates:
 @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 !
-It is unread but cached message.
 @item u
-It is read but it is not cached.
+It is unread message. It differs from @samp{U} that message with @samp{u}
+is already cached.
+@item !
+It is message already read. It differs from message without mark that
+message with @samp{!} is not cached yet.
+@item A
+It is already replied message.
+@item a
+It is already replied message. It differs from @samp{A} that message
+with @samp{a} is already cached.
+@item F
+It is already forwarded message.
+@item f
+It is already forwarded message. It differs from @samp{F} that message
+with @samp{f} is already cached.
 @item $
-It is important message.  You can put @samp{$} mark by typing @kbd{$}
-key (if already exists, the mark is deleted).  It is convenient to put
-this mark on the messages to remember (If you want to remember to write
-a reply for the message, for example) because this mark remains after
-you exited Emacs.  Messages with the @samp{$} mark can be reviewed in the
-@samp{'mark} folder even the message itself is deleted in the actual folder.
+It is a message with some global flag.  It is convenient to put this
+mark on the messages to remember (If you want to remember to write a
+reply for the message, for example) because this mark remains after
+you exited Emacs.  Messages with the @samp{$} mark can be reviewed in
+the @samp{'flag} folder even the message itself is deleted in the actual
+folder. You can put global flag by typing @kbd{$} or @kbd{F} key.
 
 @item None
 If the message is read and cached (or local message),there are no
 persistent mark.
 @end table
 
-@samp{N}, @samp{U} 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
@@ -2694,22 +2894,13 @@ variables.
 @table @code
 @item wl-message-buffer-prefetch-folder-type-list
 @vindex wl-message-buffer-prefetch-folder-type-list
-The initial setting is @code{t}. In this case, prefetch messages in all
-folders.
-If it is a list of folder types, it specifies the folder types in which
-message prefetching is enabled.
-Following is an example (prefetch messages in nntp and imap4 folders)
-
-@lisp
-@group
-(setq wl-message-buffer-prefetch-folder-type-list
-      '(nntp imap4))
-@end group
-@end lisp
-
-In this case, multi folder that contains localdir and imap4 prefetches
-only imap4 messages.  This variable precedes the value of
+The initial setting is @code{'(imap4 nntp)}.  If it is a list of folder
+types, it specifies the folder types in which message prefetching is
+enabled. In initial setting, messages are prefetch only in the nntp and
+imap4 folders. In this case, multi folder that contains localdir and 
+imap4 prefetches only imap4 messages. This variable precedes the value of
 @code{wl-message-buffer-prefetch-folder-list}.
+To prefetch messages in all folder types, specify @code{t}.
 
 @item wl-message-buffer-prefetch-folder-list
 @vindex wl-message-buffer-prefetch-folder-list
@@ -2718,11 +2909,11 @@ A list of regexp of folders to enable message prefetching.
 
 @item wl-message-buffer-prefetch-depth
 @vindex wl-message-buffer-prefetch-depth
-The initial setting is 3. The number of messages for automatical prefetch.
+The initial setting is 1. The number of messages for automatical prefetch.
 
 @item wl-message-buffer-prefetch-idle-time
 @vindex wl-message-buffer-prefetch-idle-time
-The initial setting is 0.2 (in seconds). The period of automatical prefetch.
+The initial setting is 1 (in seconds). The period of automatical prefetch.
 
 @item wl-message-buffer-prefetch-threshold
 @vindex wl-message-buffer-prefetch-threshold
@@ -2866,7 +3057,7 @@ are same as normal summary.
 are automatically stuck.
 
 
-@node Summary View, Key Bindings of Summary, Sticky Summary, Summary
+@node Summary View, Mark and Action, Sticky Summary, Summary
 @section Format of summary lines
 @cindex Format of summary lines
 You can alter the format of lines in Summary mode.
@@ -2885,8 +3076,19 @@ An example follows.
 @end group
 @end lisp
 
-Where the number set the column number of the field (for negative value,
-filled from right)
+Where the number set the column number of the field. If negative value,
+the column is filled from right. If the number begins with @samp{0},
+@samp{0} is used for filling columns instead of @samp{ }.
+
+Example:
+
+@example
+@group
+%5n   -> `1    '
+%-05n -> `00001'
+@end group
+@end example
+
 
 Major control strings defined by @code{wl-summary-line-format-spec-alist}
 are displayed in the following list.
@@ -2894,6 +3096,8 @@ are displayed in the following list.
 @example
 @group
 %n  message number
+%T  temporary mark
+%P  persistent mark
 %Y  year
 %M  month
 %D  day
@@ -2908,14 +3112,15 @@ are displayed in the following list.
 %S  size
 %c  +number-of-children: (display only for opened thread)
 %C  [+number-of-children] (display only for opened thread)
-%T  temporary mark (mandatory)
-%P  persistent mark (mandatory)
+%#  mailing list information (`(' ML-name [ ` ' ML-number ] `)')
+%l  number in the mailing list
+%@@ `@@' only if the first MIME part is multipart/mixed
+%~  ` ' only if previous column is not empty
 @end group
 @end example
 
-@code{wl-summary-line-format} must contain temporary mark (@samp{%T})
-and persistent mark (@samp{%P}). Furthermore, these marks must appear at
-the constant column. For example, if you specify @samp{%T} or
+The temporary mark (@samp{%T}) and persistent mark (@samp{%P}) must
+appear at the constant column. For example, if you specify @samp{%T} or
 @samp{%P} after the @samp{%t}, which changes its length by thread
 position, marks are not treated correctly.
 
@@ -2961,7 +3166,55 @@ its sender is yourself, set up as follows.
 @end lisp
 
 
-@node Key Bindings of Summary, Variables of Summary, Summary View, Summary
+@node Mark and Action, Key Bindings of Summary, Summary View, Summary
+@section Temporary marks and their effect
+@cindex Mark and Action
+
+You can define temporary marks and corresponding procedure by
+@code{wl-summary-mark-action-list}.  Initially, refile (@samp{o}), copy
+(@samp{O}), dispose (@samp{d}), delete (@samp{D}), prefetch (@samp{i})
+and resend (@samp{~}) are defined.
+
+Each element of @code{wl-summary-mark-action-list} consists of
+
+@example
+(@samp{MARK} @samp{SYMBOL}
+ @samp{ARGUMENT-FUNCTION} @samp{SET-MARK-FUNCTION} @samp{EXEC-FUNCTION}
+ @samp{FACE} @samp{DOC-STRING})
+@end example
+
+@samp{MARK} is a temporary mark string, and @samp{SYMBOL} is the name of
+the action to be defined.  @samp{ARGUMENT-FUNCTION} is a function to
+generate argument to be given to @samp{SET-MARK-FUNCTION}, which will be
+described next, and it takes arguments:
+
+@example
+(@samp{ACTION} @samp{NUMBER})
+@end example
+
+Where @samp{ACTION} equals to @samp{SYMBOL}, and @samp{NUMBER} is message
+number.  @samp{SET-MARK-FUNCTION} is a function to be called when the mark
+is put. It takes arguments:
+
+@example
+(@samp{NUMBER} @samp{MARK} @samp{DATA})
+@end example
+
+Where @samp{NUMBER} is target message number, @samp{MARK} is a temporary
+mark string, and @samp{DATA} is given by @samp{ARGUMENT-FUNCTION}.
+
+@samp{EXEC-FUNCTION} is a function to be called when the action is
+executed. Its argument is a list of @samp{MARK-INFO}.  Here @samp{MARK-INFO}
+means a list consists of
+
+@example
+(@samp{NUMBER} @samp{MARK} @samp{DATA})
+@end example
+
+@samp{FACE} is a face to be used for highlighting.
+
+
+@node Key Bindings of Summary, Variables of Summary, Mark and Action, Summary
 @section Key bindings
 @cindex Keybind, Summary Mode
 @cindex Keybind, Summary Buffer
@@ -2978,11 +3231,12 @@ Proceed reading a message at the current cursor point.
 @item .
 @kindex . (Summary)
 @findex wl-summary-redisplay
-Redisplay a message at the current cursor point.
-If this command is called with prefix argument,
-Redisplay message regardless of the message cache (message is re-loaded
-from source).
-(@code{wl-summary-redisplay})
+Redisplay a message at the current cursor point with default display
+type.  If this command is called with prefix argument, reload and redisplay
+message regardless of the message cache.
+If this command is called with twice multiples @kbd{C-u} as @kbd{C-u C-u .},
+reload and redisplay message with current display type regardless of the
+message cache.  (@code{wl-summary-redisplay})
 
 @item <
 @kindex < (Summary)
@@ -3006,10 +3260,13 @@ Display the previous page of the message at the current cursor point.
 
 @item @key{RET}
 @kindex @key{RET} (Summary)
-@findex wl-summary-next-line-content
+@findex wl-summary-enter-handler
 Display the next line of the message at the current cursor point.
-Display the message at the current cursor point if it is not displayed yet.
-(@code{wl-summary-next-line-content})
+Display the message at the current cursor point if it is not displayed
+yet.  (@code{wl-summary-next-line-content}) If prefix argument is
+specified, message is scrolled up by one line.
+(@code{wl-summary-prev-line-content}) If prefix argument is numeric,
+cursor is jumped to the message with specified number.
 
 @item -
 @itemx M-@key{RET}
@@ -3024,6 +3281,7 @@ Display the message at the current cursor point if it is not displayed yet.
 @kindex / (Summary)
 @findex wl-thread-open-close
 Toggle open or close the thread at the current cursor point.
+With prefix argument, open all children threads.
 (@code{wl-thread-open-close})
 
 @item [
@@ -3093,10 +3351,20 @@ A draft for forwarding the message at current cursor point is prepared.
 @item $
 @kindex $ (Summary)
 @findex wl-summary-mark-as-important
-Put @samp{$} mark on the message at current cursor point.
-If already marked as @samp{$}, delete it.
+Put @samp{important} flag on the message at current cursor point.
+If already flagged as @samp{important}, remove the flag.  If it is
+called with prefix argument, ask global flag to put similarly to @kbd{F}.
 (@code{wl-summary-mark-as-important})
 
+@item F
+@kindex F (Summary)
+@findex wl-summary-set-flags
+Put arbitrary global flag entered in the minibuffer.  If you use Emacs
+21 or later, you can specify multiple flags separated by @samp{,}
+simultaneously.  If it is called with prefix argument, remove existent
+global flags.
+(@code{wl-summary-set-flags})
+
 @item y
 @itemx e
 @kindex y (Summary)
@@ -3166,15 +3434,39 @@ list folder (refile destination), guess @samp{To:} field and completed
 
 @item H
 @kindex H (Summary)
-@findex wl-summary-redisplay-all-header
-Redisplay the message at current cursor point with all header fields.
-(@code{wl-summary-redisplay-all-header})
+@findex wl-summary-toggle-all-header
+Toggle display type between all and partial header fields and redisplay
+the message at current cursor point.  If this command is called with
+prefix argument, reload and redisplay message regardless of the message cache.
+If this command is called with twice multiples @kbd{C-u} as @kbd{C-u C-u H},
+set default display type of summary by current display type of header fields.
+(@code{wl-summary-toggle-all-header})
 
 @item M
 @kindex M (Summary)
-@findex wl-summary-redisplay-no-mime
-Redisplay the message at current cursor point without MIME analysis.
-(@code{wl-summary-redisplay-no-mime})
+@findex wl-summary-toggle-mime
+Toggle display type for MIME analysis and redisplay the message at
+current cursor point.  A change is performed in the order set as
+@code{wl-summary-display-mime-mode-list}.  If this command is called
+with numeric prefix argument, it switch directly as follows.
+
+@example
+@group
+1: Enable MIME analysis.
+2: Enable MIME analysis only for header fields.
+3: Disable MIME analysis.
+@end group
+@end example
+
+If this command is called with twice multiples @kbd{C-u} as @kbd{C-u C-u
+M}, set default display type of summary by current display type of MIME
+analysis.  (@code{wl-summary-toggle-mime})
+
+@item C-c C-f
+@kindex C-c C-f (Summary)
+@findex wl-summary-toggle-header-narrowing
+Toggle header body narrowing of the message at current cursor point.
+(@code{wl-summary-toggle-header-narrowing})
 
 @item B
 @kindex B (Summary)
@@ -3268,18 +3560,31 @@ Mark as unread the message at current cursor point.
 @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
-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
 
@@ -3290,7 +3595,9 @@ first, last    ...Move to the filter folder(partial filter).
 @kindex S (Summary)
 @findex wl-summary-sort
 Sort summary order.
-You can sort by @samp{date}, @samp{from}, @samp{number} and @samp{subject}.
+You can sort by @samp{date}, @samp{from}, @samp{number}, @samp{subject},
+@samp{size} and @samp{list-info}.
+With prefix argument, sort summary lines into descending order.
 (@code{wl-summary-sort})
 
 @item T
@@ -3318,7 +3625,7 @@ Toggle displaying of message window.
 
 @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})
@@ -3332,6 +3639,10 @@ Jump to the message which is displayed last.
 @item ?
 @kindex ? (Summary)
 Put @samp{*} mark on the messages that satisfies the specified condition.
+If messages already have @samp{*} mark, new @samp{*} marks are overridden.
+If prefix argument is specified, current @samp{*} marks are removed and
+new @samp{*} marks are appended.
+
 @findex wl-summary-pick
 (@code{wl-summary-pick})
 
@@ -3341,16 +3652,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})
 
-@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)
-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})
 
@@ -3358,13 +3662,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.
-(@code{wl-summary-target-mark-line})
+(@code{wl-summary-target-mark-line}) @xref{Mark and Action}.
 
 @item o
 @kindex o (Summary)
 Put refile mark on the message at the current cursor point.
 @findex wl-summary-refile
-(@code{wl-summary-refile})
+(@code{wl-summary-refile}) @xref{Mark and Action}.
 
 @item C-o
 @kindex C-o (Summary)
@@ -3376,7 +3680,7 @@ Execute auto refile.
 @kindex O (Summary)
 Put copy mark on the message at the current cursor point.
 @findex wl-summary-copy
-(@code{wl-summary-copy})
+(@code{wl-summary-copy}) @xref{Mark and Action}.
 
 @item M-o
 @kindex M-o (Summary)
@@ -3388,8 +3692,28 @@ previously specified.
 @item d
 @kindex d (Summary)
 @findex wl-summary-dispose
-Put delete mark on the message at the current cursor point.
-(@code{wl-summary-dispose})
+Put disposal mark on the message at the current cursor point.
+The result of disposal is controlled by @code{wl-dispose-folder-alist},
+refiled to @code{wl-trash-folder} by default.
+(@code{wl-summary-dispose}) @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)
@@ -3412,26 +3736,27 @@ Mark as read messages in the specified region.
 @item r $
 @kindex r $ (Summary)
 @findex wl-summary-mark-as-important-region
-Mark as important @samp{$} messages in the specified region.
-If @samp{$} already exists, it is deleted.
+Put @samp{important} flag on messages in the specified region.
+If already flagged as @samp{important}, remove the flag.
 (@code{wl-summary-mark-as-important-region})
 
+@item r F
+@kindex r F (Summary)
+@findex wl-summary-set-flags-region
+Put arbitrary global flag entered in the minibuffer on messages in
+specified region.
+(@code{wl-summary-set-flags-region})
+
 @item r !
 @kindex r ! (Summary)
 @findex wl-summary-mark-as-unread-region
 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
-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})
 
@@ -3439,25 +3764,37 @@ specified region.
 @kindex r * (Summary)
 @findex wl-summary-target-mark-region
 Put target mark on the messages in the specified region.
-(@code{wl-summary-target-mark-region})
+(@code{wl-summary-target-mark-region}) @xref{Mark and Action}.
 
 @item r o
 @kindex r o (Summary)
 @findex wl-summary-refile-region
 Put refile mark on the messages in the specified region.
-(@code{wl-summary-refile-region})
+(@code{wl-summary-refile-region}) @xref{Mark and Action}.
 
 @item r O
 @kindex r O (Summary)
 @findex wl-summary-copy-region
 Put copy mark on the messages in the specified region.
-(@code{wl-summary-copy-region})
+(@code{wl-summary-copy-region}) @xref{Mark and Action}.
 
 @item r d
 @kindex r d (Summary)
 @findex wl-summary-dispose-region
-Put delete mark on the messages in the specified region.
-(@code{wl-summary-dispose-region})
+Put disposal mark on the messages in the specified 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)
@@ -3481,12 +3818,20 @@ With prefix argument, it affects on the all messages in the thread tree.
 @item t $
 @kindex t $ (Summary)
 @findex wl-thread-mark-as-important
-Put important mark @samp{$} on the messages which are the
-descendant of the current thread.
-If @samp{$} mark exists, it is deleted.
-With prefix argument, it affects on the all messages in the thread tree.
+Put @samp{important} flag on the messages which are the descendant of
+the current thread.  If already flagged as @samp{important}, remove the
+flag.  With prefix argument, it affects on the all messages in the
+thread tree.
 (@code{wl-thread-mark-as-important})
 
+@item t F
+@kindex t F (Summary)
+@findex wl-thread-set-flags
+Put arbitrary global flag entered in the minibuffer on the messages
+which are the descendant of the current thread.  With prefix argument,
+it affects on the all messages in the thread tree.
+(@code{wl-thread-set-flags})
+
 @item t !
 @kindex t ! (Summary)
 @findex wl-thread-mark-as-unread
@@ -3494,17 +3839,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})
 
-@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
-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})
@@ -3515,28 +3853,42 @@ on the all messages in the thread tree.
 Put target mark @samp{*} on the messages which are the descendant of the
 current thread.  With prefix argument, it affects on the all messages in
 the thread tree.
-(@code{wl-thread-target-mark})
+(@code{wl-thread-target-mark}) @xref{Mark and Action}.
 
 @item t o
 @kindex t o (Summary)
 @findex wl-thread-refile
 Put refile mark on the messages which are the descendant of the current thread.
 With prefix argument, it affects on the all messages in the thread tree.
-(@code{wl-thread-refile})
+(@code{wl-thread-refile}) @xref{Mark and Action}.
 
 @item t O
 @kindex t O (Summary)
 @findex wl-thread-copy
 Put copy mark on the messages which are the descendant of the current thread.
 With prefix argument, it affects on the all messages in the thread tree.
-(@code{wl-thread-copy})
+(@code{wl-thread-copy}) @xref{Mark and Action}.
 
 @item t d
 @kindex t d (Summary)
 @findex wl-thread-dispose
-Put delete mark on the messages which are the descendant of the current thread.
+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)
@@ -3553,13 +3905,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})
 
-@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
@@ -3569,10 +3914,17 @@ Mark as read all messages which have target mark @samp{*}.
 @item m $
 @kindex m $ (Summary)
 @findex wl-summary-target-mark-mark-as-important
-Mark as important all messages which have target mark @samp{*}.
-If already marked as @samp{$}, it is deleted.
+Put @samp{important} flag on all messages which have target mark @samp{*}.
+If already flagged as @samp{important}, remove the flag.
 (@code{wl-summary-target-mark-mark-as-important})
 
+@item m F
+@kindex m F (Summary)
+@findex wl-summary-target-mark-set-flags
+Put arbitrary global flag entered in the minibuffer on all messages
+which have target mark @samp{*}.
+(@code{wl-summary-target-mark-set-flags})
+
 @item m !
 @kindex m ! (Summary)
 @findex wl-summary-target-mark-mark-as-unread
@@ -3583,19 +3935,31 @@ Mark as unread all messages which have target mark @samp{*}.
 @kindex m o (Summary)
 @findex wl-summary-target-mark-refile
 Put refile mark on the messages which have target mark @samp{*}.
-(@code{wl-summary-target-mark-refile})
+(@code{wl-summary-target-mark-refile}) @xref{Mark and Action}.
 
 @item m O
 @kindex m O (Summary)
 @findex wl-summary-target-mark-copy
 Put copy mark on the messages which have target mark @samp{*}.
-(@code{wl-summary-target-mark-copy})
+(@code{wl-summary-target-mark-copy}) @xref{Mark and Action}.
 
 @item m d
 @kindex m d (Summary)
 @findex wl-summary-target-mark-dispose
-Put delete mark on the messages which have target mark @samp{*}.
-(@code{wl-summary-target-mark-dispose})
+Put disposal mark on the messages which have target mark @samp{*}.
+(@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)
@@ -3787,12 +4151,6 @@ If non-nil, sender part displays nickname.
 The initial setting is @code{t}.
 If non-nil, message is split as pages by @samp{^L}.
 
-@item wl-message-window-size
-@vindex  wl-message-window-size
-The initial setting is '(1 . 4).
-A cons cell to specify the rate of summary and message window.
-car:cdr corresponds summary:message.
-
 @item wl-summary-from-function
 @vindex wl-summary-from-function
 Format function to display sender in summary.
@@ -3866,10 +4224,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.
 
-@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
@@ -3890,6 +4249,11 @@ the thread is divided.
 The initial setting is t.
 If non-nil, cursor point is moved to the center of the summary window.
 
+@item wl-summary-max-thread-depth
+@vindex wl-summary-max-thread-depth
+The initial setting is 30.
+If thread depth is larger than this value, divide it.
+
 @item wl-summary-divide-thread-when-subject-changed
 @vindex wl-summary-divide-thread-when-subject-changed
 The initial setting is @code{nil}.  If non-nil, thread is split if
@@ -3946,7 +4310,7 @@ The initial setting is the list shown below:
 
 @lisp
 @group
-("o" "O" "D")
+("o" "O" "D" "d" "i")
 @end group
 @end lisp
 
@@ -3960,7 +4324,7 @@ The initial setting is the list shown below:
 
 @lisp
 @group
-("D")
+("D" "d")
 @end group
 @end lisp
 
@@ -4014,6 +4378,12 @@ cached.
 The initial setting is @code{t}.  If non-nil, messages read in Shimbun
 folders are cached.
 
+@item wl-summary-resend-use-cache
+@vindex wl-summary-resend-use-cache
+The initial setting is @code{nil}.  If non-nil, messages are resend
+using cache even in the offline status. Note that if you use cache,
+the message identity is not guaranteed.
+
 @item wl-folder-process-duplicates-alist
 @vindex wl-folder-process-duplicates-alist
 The initial setting is @code{nil}.
@@ -4037,6 +4407,53 @@ Following is an example (hide duplicated messages in multi folders)
                    ("^\\*.*" . hide) (".*" . read)))
 @end group
 @end lisp
+
+@item wl-summary-flag-alist
+@vindex wl-summary-flag-alist
+The initial setting is as follows:
+
+@lisp
+@group
+((important "orange"))
+@end group
+@end lisp
+
+Specify the color and the mark of message in summary buffer with flag.
+If the mark are omitted, the mark specified in the variable
+@code{wl-summary-flag-mark} is assumed.  If multiple global flags are on
+one message, the former flag in this list is preferred.
+
+Example:
+
+@lisp
+@group
+(setq wl-summary-flag-alist
+      '((important "purple")
+        (todo "red")
+        (business "green" "B")
+        (private "blue" "X")))
+@end group
+@end lisp
+
+@item wl-summary-display-mime-mode-list
+@vindex wl-summary-display-mime-mode-list
+The initial setting is the list shown below:
+
+@lisp
+@group
+(mime as-is)
+@end group
+@end lisp
+
+@noindent
+The function @code{wl-summary-toggle-mime} switch specification of MIME
+analysis in the order of this list. You can specify one of the follows.
+
+@example
+@code{mime}        : Header and body are decoded.
+@code{header-only} : Only header is decoded.
+@code{as-is}       : Header and body are not decoded.
+@end example
 @end table
 
 
@@ -4097,20 +4514,20 @@ message number will be changed.
 @table @code
 @item wl-message-window-size
 @vindex wl-message-window-size
-Initial setting is @code{'(1 . 4)}.  It is a cons cell and the ratio of
+Initial setting is @code{(1 . 4)}.  It is a cons cell and the ratio of
 its car and cdr value corresponds to the ratio of Summary and Message
 windows.
 
 @item wl-message-ignored-field-list
 @vindex wl-message-ignored-field-list
-(SEMI only) Initial setting is @code{nil}.
+Initial setting is @code{nil}.
 All fields that match this list will be hidden in message buffer.
 Each elements are regexp of field-name.
 If @code{nil}, the value of @code{mime-view-ignored-field-list} is used.
 
 @item wl-message-visible-field-list
 @vindex wl-message-visible-field-list
-(SEMI only) Initial setting is @code{nil}.
+Initial setting is @code{nil}.
 All fields that match this list will be display in message buffer.
 Each elements are regexp of field-name. This value precedes
 @code{wl-message-ignored-field-list}.
@@ -4118,7 +4535,7 @@ If @code{nil}, the value of @code{mime-view-visible-field-list} is used.
 
 @item wl-message-sort-field-list
 @vindex wl-message-sort-field-list
-(SEMI only) Initial setting is
+Initial setting is
 '("Return-Path" "Received" "^To" "^Cc" "Newsgroups" "Subject" "^From").
 Header fields in message buffer are ordered by this value.
 Each elements are regexp of field-name.
@@ -4127,6 +4544,12 @@ Each elements are regexp of field-name.
 @vindex wl-message-truncate-lines
 The initial value is the value of @code{default-truncate-lines}.
 If it is non-nil, truncate long lines in message buffer.
+
+@item wl-message-auto-reassemble-message/partial
+@vindex wl-message-auto-reassemble-message/partial
+The initial setting is @code{nil}.
+If non-nil, automatically reassemble fragments of the message on
+displaying when its MIME media type is message/partial.
 @end table
 
 @node Draft, Disconnected Operations, Message, Top
@@ -4150,38 +4573,87 @@ with those if possible.
 Basically it is Emacs-standard mail mode.
 
 @menu
+* Parameters for Sending::
 * Editing Header::
-* Editing Message Body::
+* Editing Message Body and Sending::
 * Dynamical Message Re-arrangement::
 * Template::
 * POP-before-SMTP::
 @end menu
 
-@node Editing Header, Editing Message Body, Usage of Draft Mode, Usage of Draft Mode
-@subsection Editing Message Header
+@node Parameters for Sending, Editing Header, Usage of Draft Mode, Usage of Draft Mode
+@subsection Parameters for Sending
 
-You can freely edit header region above @samp{--text follows this line--},
-until you invoke the sending operation.
+According to the information of servers to send messages, configure
+following variables.
 
-Initially, the cursor is at the @samp{To:} field.  Fill in recipients
-addresses.  @kbd{@key{TAB}} completes them.
+@table @code
+@item wl-smtp-posting-server
+The name of the SMTP server used for mail transmission.
 
-You can use following headers to specify recipients. Add some of them
-by yourself. Field names can be completed by @kbd{@key{TAB}}.
+@item wl-smtp-posting-port
+The SMTP port number for mail transmission.
+Without configuration, use default SMTP port number (25).
 
-@table @asis
-@item @samp{Newsgroups:}
-Specify newsgroups to which you post the news article.
+@item wl-nntp-posting-server
+The name of NNTP server used for news submission.
+Without configuration, use @code{elmo-nntp-default-server}.
 
-@item @samp{Cc:}
-Specify addresses to send a copy (Carbon Copy) of the message.
+@item wl-nntp-posting-port
+The NNTP port number for news submission.
+Without configuration, use @code{elmo-nntp-default-port}.
 @end table
 
-Following ones are removed from the header contents before sending.
+You may configure following variables on demand. See section
+Variables of Draft Mode for detail @xref{Variables of Draft Mode}.
 
-@table @asis
-@item @samp{Bcc:}
-Specify addresses to send a copy (Blind Carbon Copy) of the message.
+@table @code
+@item wl-smtp-posting-user
+User name for authentication by SMTP AUTH.
+
+@item wl-smtp-authenticate-type
+The authentication method for SMTP AUTH.
+Without configuration, authentication will not be carried out.
+
+@item wl-smtp-authenticate-realm
+The authentication realm for SMTP AUTH.
+Without configuration, authentication realm will not be specified.
+
+@item wl-smtp-connection-type
+Specify how to establish SMTP connections.
+
+@item wl-nntp-posting-user
+User name for AUTHINFO authentication on news submission.
+
+@item wl-nntp-posting-stream-type
+Specify how to establish NNTP connections.
+@end table
+
+@node Editing Header, Editing Message Body and Sending, Parameters for Sending, Usage of Draft Mode
+@subsection Editing Message Header
+
+You can freely edit header region above @samp{--text follows this line--},
+until you invoke the sending operation.
+
+Initially, the cursor is at the @samp{To:} field.  Fill in recipients
+addresses.  @kbd{@key{TAB}} completes them.
+
+You can use following headers to specify recipients. Add some of them
+by yourself. Field names can be completed by @kbd{@key{TAB}}.
+
+@table @asis
+@item @samp{Newsgroups:}
+Specify newsgroups to which you post the news article.
+
+@item @samp{Cc:}
+Specify addresses to send a copy (Carbon Copy) of the message.
+@end table
+
+Following ones are removed from the header contents before sending.
+
+@table @asis
+@item @samp{Bcc:}
+Specify addresses to send a copy (Blind Carbon Copy) of the message.
 
 @item @samp{Fcc:}
 Specify folders in which a copy of the message is saved.
@@ -4208,8 +4680,8 @@ If non-nil, the value of this variable is inserted as a @samp{Bcc:} of
 the draft when it is prepared.
 @end table
 
-@node Editing Message Body, Dynamical Message Re-arrangement, Editing Header, Usage of Draft Mode
-@subsection Editing Messages
+@node Editing Message Body and Sending, Dynamical Message Re-arrangement, Editing Header, Usage of Draft Mode
+@subsection Editing Messages and Sending
 
 As a matter of course, editing message body can be performed in the same
 way as usual writing. You may write message body under
@@ -4222,9 +4694,13 @@ a MIME user interface for GNU Emacs}.
 You can also see help by @kbd{C-c C-x ?} in draft buffer.
 
 If you save the draft buffer you are editing, it is appended to the
-folder specified by @code{wl-draft-folder}.
+folder specified by @code{wl-draft-folder}.  You can leave draft buffer
+after storing it for future editing by @kbd{C-c C-z} (@code{wl-draft-save-and-exit}).
+
+If you have finished editing, you can send message by @kbd{C-c C-c}.
 
-@node Dynamical Message Re-arrangement, Template, Editing Message Body, Usage of Draft Mode
+
+@node Dynamical Message Re-arrangement, Template, Editing Message Body and Sending, Usage of Draft Mode
 @subsection Dynamic Modification of Messages
 @vindex wl-draft-config-alist
 @c @cindex Change Message
@@ -4276,7 +4752,7 @@ The format of @code{wl-draft-config-alist} is:
 @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.
@@ -4395,6 +4871,7 @@ Set a variable @code{wl-template-alist}, and type @kbd{C-c C-j} or
 
 The format of @code{wl-template-alist} is almost the same as
 @code{wl-draft-config-alist}.
+@xref{Dynamical Message Re-arrangement}.
 
 @lisp
 @group
@@ -4433,6 +4910,9 @@ adjust the window size by @code{wl-template-buffer-lines}.
 If @code{wl-template-visible-select} is @code{nil}, you should type the
 name of the template in the mini buffer.
 
+If @code{wl-template-select} is executed with prefix argument,
+inversed value of @code{wl-template-visible-select} is used.
+
 As shown in the example in @code{wl-draft-config-alist}, you can select
 @samp{default} template by writing:
 
@@ -4444,14 +4924,15 @@ As shown in the example in @code{wl-draft-config-alist}, you can select
 @subsection Sending mail by POP-before-SMTP
 @cindex POP-before-SMTP
 
-You can send mail by POP-before-SMTP with this single line:
+You can send mail by POP-before-SMTP. Necessary setting is
 
 @lisp
 (setq wl-draft-send-mail-function 'wl-draft-send-mail-with-pop-before-smtp)
 @end lisp
 
 @noindent
-Configure the following variables if you need.
+to change mail posting function from its default value @code{wl-draft-send-mail-with-smtp}.
+Also you would configure following variables on demand.
 
 @table @code
 @item wl-pop-before-smtp-user
@@ -4471,7 +4952,7 @@ The POP port number for POP-before-SMTP authentication.
 If unset, @code{elmo-pop3-default-port} is used.
 
 @item wl-pop-before-smtp-stream-type
-If non-nil, POP connection is established using SSL.  If
+If @code{ssl}, POP connection is established using SSL.  If
 @code{starttls}, STARTTLS (RFC2595) connection will be established.  If
 unset, @code{elmo-pop3-default-stream-type} is used.
 @end table
@@ -4487,7 +4968,6 @@ Refer to the following URL about POP-before-SMTP.
 
 @example
 @group
-http://spam.ayamura.org/tools/smPbS.html
 http://www.iecc.com/pop-before-smtp.html
 @end group
 @end example
@@ -4506,7 +4986,8 @@ http://www.iecc.com/pop-before-smtp.html
 Cites the content of the current message buffer (the part under cursor).
 If the region is active, cites the region (it affects only if
 @code{transient-mark-mode} (on GNU Emacs) or @code{zmacs-regions}
-(on XEmacs) is Non-nil).
+(on XEmacs) is Non-nil). If the command is called with prefix argument,
+the text inserted by yank command (the text content of clipboard) is cited.
 (@code{wl-draft-yank-original})
 
 @item C-c C-p
@@ -4613,6 +5094,7 @@ The text is killed and replaced with the contents of the variable
 
 @node Variables of Draft Mode,  , Key Bindings of Draft, Draft
 @section Customizable Variables
+@cindex SMTP AUTH
 
 @table @code
 @item wl-subscribed-mailing-list
@@ -4758,6 +5240,14 @@ as an argument.
 The initial setting is @code{nil}.
 If non-nil, use new frame for the draft.
 
+@item wl-draft-reply-default-position
+@vindex wl-draft-reply-default-position
+The initial setting is @code{body}.
+Specify initial cursor position on draft buffer for reply.
+@code{body} is to move cursor to the top of the message body,
+@code{bottom} to the bottom of the message body, and @code{top} to the
+top of the header.
+
 @item wl-draft-truncate-lines
 @vindex wl-draft-truncate-lines
 The initial value is the value of @code{default-truncate-lines}.
@@ -4785,13 +5275,15 @@ set this variable.
 @vindex wl-reply-subject-prefix
 The initial setting is @samp{Re: }.
 In the @samp{Subject:} of the reply draft, this string is prepended to
-the @samp{Subject:} of being replied.
+the @samp{Subject:} of being replied.  You can specify a function to be
+message buffer of the reply target.
 
 @item wl-forward-subject-prefix
 @vindex wl-forward-subject-prefix
 The initial setting is @samp{Forward: }.
 In the @samp{Subject:} of the forwarding draft, this string is prepended
-to the @samp{Subject:} of being forwarded.
+to the @samp{Subject:} of being forwarded.  You can specify a function
+to be message buffer of the forward target.
 
 @item wl-draft-reply-use-address-with-full-name
 @vindex wl-draft-reply-use-address-with-full-name
@@ -4813,7 +5305,7 @@ The initial setting is @code{nil}. If the value is non-nil and
 @item wl-fcc-force-as-read
 @vindex wl-fcc-force-as-read
 The initial setting is @code{nil}. If the value is non-nil,
-Mark as read the message saved by @samp{Fcc:} (only for IMAP folders).
+Mark as read the message saved by @samp{Fcc:}.
 
 @item wl-auto-flush-queue
 @vindex wl-auto-flush-queue
@@ -4842,6 +5334,12 @@ If non-nil, always removes your own address from @samp{To:} and
 If any of @code{wl-subscribed-mailing-list} are contained in @samp{To:}
 or @samp{Cc:} field, do not insert @samp{Bcc:} or @samp{Fcc:} field.
 
+@item wl-draft-send-mail-function
+@vindex wl-draft-send-mail-function
+The initial setting is @code{wl-draft-send-mail-with-smtp}.
+This is the function to post mails. To use POP-before-SMTP, set this to
+@code{wl-draft-send-mail-with-pop-before-smtp}.
+
 @item wl-smtp-posting-server
 @vindex wl-smtp-posting-server
 The initial setting is @code{nil}.
@@ -4856,23 +5354,31 @@ If @code{nil}, default SMTP port number (25) is used.
 @item wl-smtp-posting-user
 @vindex wl-smtp-posting-user
 The initial setting is @code{nil}.
-This is the user name for SMTP AUTH authentication.  If @code{nil},
-@code{smtp-authenticate-user} is used.
+This is the user name for SMTP AUTH authentication.
 
 @item wl-smtp-authenticate-type
 @vindex wl-smtp-authenticate-type
 The initial setting is @code{nil}.
-This is the authentication method for SMTP AUTH authentication.  If
-@code{nil}, @code{smtp-authenticate-type} is used.  If
-@code{smtp-authenticate-type} is still @code{nil}, authentication will
-not be carried out.
+This string-valued variable specifies the authentication method for SMTP
+AUTH authentication.  You may specify @code{plain}, @code{cram-md5},
+@code{digest-md5}, @code{login}, etc.  If @code{nil}, authentication
+will not be carried out.
+
+@item wl-smtp-authenticate-realm
+@vindex wl-smtp-authenticate-realm
+The initial setting is @code{nil}.
+This string-valued variable specifies the authentication realm for SMTP
+AUTH authentication. You have to set this variable for DIGEST-MD5
+authentication and so on.
+If @code{nil}, authentication realm is not specified in the authentication.
 
 @item wl-smtp-connection-type
 @vindex wl-smtp-connection-type
 The initial setting is @code{nil}.
-This variable specifies how to establish SMTP connections.
-If @code{nil}, @code{smtp-connection-type} is used.
-If it is @code{starttls}, STARTTLS (RFC2595) is used.
+This symbol-valued variable specifies how to establish SMTP connections.
+If @code{nil}, use default connection type.
+If it is @code{starttls}, use STARTTLS (RFC3207).
+If it is @code{ssl}, use SSL.
 
 @item wl-nntp-posting-server
 @vindex wl-nntp-posting-server
@@ -4891,12 +5397,12 @@ If it is still @code{nil}, AUTHINFO authentication will not be carried out.
 @vindex wl-nntp-posting-port
 The initial setting is @code{nil}.
 This is the port number of the NNTP server used for news submission.
-If @code{nil}, @code{elmo-nntp-default-server} is used.
+If @code{nil}, @code{elmo-nntp-default-port} is used.
 
 @item wl-nntp-posting-stream-type
 @vindex wl-nntp-posting-stream-type
 The initial setting is @code{nil}.
-If @code{nil}, @code{elmo-nntp-default-stream-type} is evaluated.  If non-nil,
+If @code{nil}, @code{elmo-nntp-default-stream-type} is evaluated.  If @code{ssl},
 SSL is used for news submission.  If @code{starttls}, STARTTLS (RFC2595)
 connection will be established.
 
@@ -4940,7 +5446,7 @@ If it is @code{nil}, @code{elmo-pop3-default-server} is used.
 @vindex wl-pop-before-smtp-authenticate-type
 The initial setting is @code{nil}.
 This is the authentication method for POP-before-SMTP authentication.
-If it is @code{nil}, @code{elmo-pop3-default-authenticate} is used.
+If it is @code{nil}, @code{elmo-pop3-default-authenticate-type} is used.
 
 @item wl-pop-before-smtp-port
 @vindex wl-pop-before-smtp-port
@@ -4952,8 +5458,9 @@ This is the POP port number for POP-before-SMTP.  If it is @code{nil},
 @vindex wl-pop-before-smtp-stream-type
 The initial setting is @code{nil}.
 This flag controls the use of SSL for POP-before-SMTP.  If it is
-@code{nil}, @code{elmo-pop3-default-stream-type} is used.  If @code{starttls},
-STARTTLS (RFC2595) connection will be established.
+@code{nil}, @code{elmo-pop3-default-stream-type} is used.  If @code{ssl},
+SSL is used.  If @code{starttls}, STARTTLS (RFC2595) connection will be
+established.
 
 @item wl-draft-queue-save-variables
 @vindex wl-draft-queue-save-variables
@@ -5056,12 +5563,15 @@ later) is non-nil, you can following operations:
 * Re-file and Copy queue::      Re-file and Copy (IMAP4)
 * Creation of Folders::         Create Folders off-line (IMAP4)
 * Marking::                     Mark (IMAP4)
-* Pre-fetching Reservations::   Pre-fetch (IMAP4, NNTP)
+* Pre-fetching Reservations::   Pre-fetch
 @end menu
 
 As soon as Wanderlust becomes on-line, such operations invoked off-line
 are reflected in the servers via network.
 
+If the variable @code{elmo-enable-disconnected-operation} is @code{nil},
+these off-line operations are not executed and causes an error on
+re-file or copy operations.
 
 @node Send Messages off-line, Re-file and Copy queue, Enable Operations, Enable Operations
 @subsection Transmission of Messages
@@ -5112,23 +5622,12 @@ are also reflected in the servers when Wanderlust becomes on-line.
 
 
 @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
@@ -5250,8 +5749,8 @@ manually, press @kbd{F} in the folder mode.
 
 @item elmo-enable-disconnected-operation
 @vindex elmo-enable-disconnected-operation
-The initial setting is @code{t}.  Controls off-line operations
-regarding IMAP4.  If non-nil, off-line operations are carried out.
+The initial setting is @code{t}.  Controls off-line operations regarding
+networking folders.  If non-nil, off-line operations are carried out.
 
 @item elmo-lost+found-folder
 @vindex elmo-lost+found-folder
@@ -5616,9 +6115,9 @@ The initial setting is the list below.
 
 @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
@@ -5874,7 +6373,7 @@ Needless to say, you can use your own function.
 @end table
 
 
-@node Scoring, Split messages, Expire and Archive, Top
+@node Scoring, Address Book, Expire and Archive, Top
 @chapter Score of the Messages
 @cindex Scoring
 @c @cindex Kill File
@@ -6139,7 +6638,8 @@ The initial setting is the list shown below:
 
 @lisp
 @group
-(list wl-summary-new-mark)
+(list wl-summary-new-uncached-mark
+      wl-summary-new-cached-mark)
 @end group
 @end lisp
 
@@ -6200,7 +6700,7 @@ If non-nil, unread/important marks are synchronized when the summary
 does.
 Unread marks reflect information on the IMAP4 server.
 Important marks reflect information on the IMAP4 server (flagged or
-not), and contents of @samp{'mark} folder.
+not), and contents of @samp{'flag} folder.
 The initial setting is @code{t}.
 @end table
 
@@ -6372,156 +6872,7 @@ pop3                      N     E     E     E
 @end example
 
 
-@node Split messages, Address Book, Scoring, Top
-@chapter 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 Address Book, Customization, Split messages, Top
+@node Address Book, Spam Filter, Scoring, Top
 @chapter Address Book
 @cindex Address Book
 
@@ -6652,75 +7003,691 @@ Edit entry.
 @end table
 
 
-@node Customization, Terminology, Address Book, Top
-@chapter Customizing Wanderlust
-@cindex Customization
+@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
-* Living with other packages:: Cooperating with other packages
-* Highlights::                 Highlights
-* Biff::                       Notify Mail arrival
-* Advanced Settings::          Advanced Settings
-* Customizable Variables::     Customizable Variables
-* Hooks::                      Hooks
+* 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
 
-@node Living with other packages, Highlights, Customization, Customization
-@section Living with other packages
+@subsection Initial Setting
 
-Examples with other packages.
+To use @code{wl-spam}, write in @file{~/.wl} as follows:
 
-@menu
-* imput::                       imput (im-wl.el)
-* BBDB::                        The Insidious Big Brother Database
-* LSDB::                        The Lovely Sister Database
-* supercite::                   supercite.el
-* mu-cite::                     mu-cite.el
-* X-Face::                      x-face,bitmap-mule
-* dired-dd::                    dired-dd.el
-* MHC::                         MHC
-* Addrbook::                    Addrbook
-* mime-w3m::                    mime-w3m.el
-@end menu
+@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
 
-@node imput, BBDB, Living with other packages, Living with other packages
-@subsection imput
-@pindex imput
-@cindex im-wl
+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.
 
-Place @file{util/im-wl.el} on the @code{load-path} and do the following
-settings.
+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.
 
-If @command{imput} is on the @code{exec-path} at the installation,
-@file{im-wl.el} is byte-compiled and installed.  @xref{Install}.
+Insert @code{wl-refile-guess-by-spam} to arbitrary position in
+@code{wl-auto-refile-guess-functions} as follows.
 
 @lisp
 @group
-(autoload 'wl-draft-send-with-imput-async "im-wl")
-(setq wl-draft-send-function 'wl-draft-send-with-imput-async)
+(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}.
 
-@node BBDB, LSDB, imput, Living with other packages
-@subsection bbdb.el
-@pindex BBDB
+@item
+Make judgement on entering the summary of specified folder.
 
-To use The Insidious Big Brother Database (@uref{http://bbdb.sourceforge.net/})
-with Wanderlust, place @file{util/bbdb-wl.el} on the @code{load-path}
-and do the following settings.
+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.
 
-If BBDB is on the @code{load-path} at the installation, @file{bbdb-wl.el} is
-byte-compiled and installed.
-@xref{Install}.
+@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
-(require 'bbdb-wl)
-
-(bbdb-wl-setup)
+(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.
+Remove spam mark if judged as non-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 and put spam mark.
+
+@item k S
+@kindex k S (Summary)
+@findex wl-summary-register-as-spam-all
+Register all messages in the folder as spam and put spam mark.
+
+@item k n
+@kindex k n (Summary)
+@findex wl-summary-register-as-good
+Register current message as non-spam and remove spam mark.
+
+@item k N
+@kindex k N (Summary)
+@findex wl-summary-register-as-good-all
+Register all messages in the folder as non-spam and remove spam mark.
+
+@item r k m
+@kindex r k m (Summary)
+@findex wl-summary-spam-region
+Put spam mark on messages in the specified region.
+
+@item r k c
+@kindex r k c (Summary)
+@findex wl-summary-test-spam-region
+Test messages in the specified region and put spam mark if judged as spam.
+Remove spam mark if judged as non-spam.
+
+@item r k s
+@kindex r k s (Summary)
+@findex wl-summary-register-as-spam-region
+Register messages in the specified region as spam and put spam mark.
+
+@item r k n
+@kindex r k n (Summary)
+@findex wl-summary-register-as-good-region
+Register messages in the specified region as non-spam and remove spam mark.
+
+@item t k m
+@kindex t k m (Summary)
+@findex wl-thread-spam
+Put spam mark on messages which are the descendant of the current thread.
+With prefix argument, it affects on the all messages in the thread tree.
+
+@item t k c
+@kindex t k c (Summary)
+@findex wl-thread-test-spam
+Test messages which are the descendant of the current thread and put spam mark
+if judged as spam.  Remove spam mark if judged as non-spam.
+With prefix argument, it affects on the all messages in the thread tree.
+
+@item t k s
+@kindex t k s (Summary)
+@findex wl-thread-register-as-spam
+Register messages which are the descendant of the current thread as spam
+and put spam mark.
+With prefix argument, it affects on the all messages in the thread tree.
+
+@item t k n
+@kindex t k n (Summary)
+@findex wl-thread-register-as-good
+Register messages which are the descendant of the current thread as non-spam
+and remove spam mark.
+With prefix argument, it affects on the all messages in the thread tree.
+
+@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 and put spam mark.
+
+@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 and remove spam mark.
+@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{"--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
+
+
+@node Advanced Issues, Migration, Spam Filter, Top
+@chapter Advanced Issues
+@cindex Advanced Issues
+
+@menu
+* Living with other packages:: Cooperating with other packages
+* Highlights::                 Highlights
+* Biff::                       Notify Mail arrival
+* Password Management::        Manage Passwords
+* Split messages::             Splitting messages
+* Batch Processing::           Invoke commands in batch mode
+* Advanced Settings::          Advanced Settings
+* Customizable Variables::     Customizable Variables
+* Hooks::                      Hooks
+@end menu
+
+
+@node Living with other packages, Highlights, Advanced Issues, Advanced Issues
+@section Living with other packages
+
+Examples with other packages.
+
+@menu
+* imput::                       imput (im-wl.el)
+* BBDB::                        The Insidious Big Brother Database
+* LSDB::                        The Lovely Sister Database
+* supercite::                   supercite.el
+* mu-cite::                     mu-cite.el
+* X-Face::                      x-face,bitmap-mule
+* dired-dd::                    dired-dd.el
+* MHC::                         MHC
+* Addrbook::                    Addrbook
+* mime-w3m::                    mime-w3m.el
+@end menu
+
+
+@node imput, BBDB, Living with other packages, Living with other packages
+@subsection imput
+@pindex imput
+@cindex im-wl
+
+Place @file{util/im-wl.el} on the @code{load-path} and do the following
+settings.
+
+@lisp
+@group
+(autoload 'wl-draft-send-with-imput-async "im-wl")
+(setq wl-draft-send-function 'wl-draft-send-with-imput-async)
+@end group
+@end lisp
+
+
+@node BBDB, LSDB, imput, Living with other packages
+@subsection bbdb.el
+@pindex BBDB
+
+To use The Insidious Big Brother Database (@uref{http://bbdb.sourceforge.net/})
+with Wanderlust, place @file{util/bbdb-wl.el} on the @code{load-path}
+and do the following settings.
+
+If BBDB is on the @code{load-path} at the installation, @file{bbdb-wl.el} is
+byte-compiled and installed.
+@xref{Install}.
+
+@lisp
+@group
+(require 'bbdb-wl)
+
+(bbdb-wl-setup)
 ;; @r{enable pop-ups}
 (setq bbdb-use-pop-up t)
 ;; @r{auto collection}
@@ -6948,7 +7915,7 @@ distributed with emacs-w3m (@uref{http://emacs-w3m.namazu.org/}).
 You can find the usage in comment region at the head of @file{mime-w3m.el}.
 
 
-@node Highlights, Biff, Living with other packages, Customization
+@node Highlights, Biff, Living with other packages, Advanced Issues
 @section Highlights
 
 @subsection Customizable Variables
@@ -7194,7 +8161,7 @@ The face for strings (for example, a version number) in the demo.
 @end table
 
 
-@node Biff, Advanced Settings, Highlights, Customization
+@node Biff, Password Management, Highlights, Advanced Issues
 @section Notify Mail arrival
 @cindex Biff
 
@@ -7218,6 +8185,13 @@ If @code{nil}, wl doesn't check mail arrival.
 The initial setting is 40 (in seconds).
 Check mail arrival in this period.
 
+@item wl-biff-use-idle-timer
+@vindex wl-biff-use-idle-timer
+The initial setting is @code{nil}.
+If it is @code{nil}, check mail arrival when the time specified by
+@code{wl-biff-check-interval} has passed.  If it is non-nil, check
+mail arrival when idling time exceeds @code{wl-biff-check-interval}.
+
 @item wl-biff-notify-hook
 @vindex wl-biff-notify-hook
 This hook is run at the arrival of new mail.
@@ -7229,7 +8203,214 @@ For silence, set to @code{nil}.
 @end table
 
 
-@node Advanced Settings, Customizable Variables, Biff, Customization
+@node Password Management, Split messages, Biff, Advanced Issues
+@section Manage Passwords
+
+If you input passwords to connect servers, they are stored in the
+variable @code{elmo-passwd-alist} per connection. You should be careful
+that others might read your passwords if they can touch your Emacs,
+since encoded plain passwords are there.
+
+If you invoke @kbd{M-x elmo-passwd-alist-save} while you have stored
+passwords, then they are saved on the file, and it will save you to
+input passwords. In this case, the risk that someone reads your
+keystroke might decrease, but please not that plain passwords are
+stored on a file. You should treat them very carefully.
+To remove saved passwords on file, invoke @kbd{M-x elmo-passwd-alist-clear}
+and then @kbd{M-x elmo-passwd-alist-save}.
+
+@table @code
+@item elmo-passwd-alist-file-name
+@vindex elmo-passwd-alist-file-name
+The initial setting is @file{passwd}.
+This is the name of the file in which passwords are saved.
+@code{elmo-passwd-alist-save} saves current passwords to the file.
+
+@item elmo-passwd-life-time
+@vindex  elmo-passwd-life-time
+The initial setting is @code{nil}.
+If the value is some number, timer is set to remove password entry after
+@code{elmo-passwd-life-time} seconds since you input the password.
+@code{nil} means never to remove passwords.
+@end table
+
+
+@node Split messages, Batch Processing, Password Management, Advanced Issues
+@section Message splitting
+@cindex Split messages
+
+You can use @code{elmo-split} to split message in folder specified by
+the variable @code{elmo-split-folder} a la @command{procmail} according
+to some specified rules. To use this feature, set as follows in your
+@file{~/.emacs} at first.
+
+@lisp
+(autoload 'elmo-split "elmo-split" "Split messages on the folder." t)
+@end lisp
+
+Set source folder like following.
+
+@lisp
+(setq elmo-split-folder "%inbox")
+@end lisp
+
+And specify the rule in the variable @code{elmo-split-rule} (its format
+will be is described below).
+Then you can invoke @kbd{M-x elmo-split} to split messages according to
+@code{elmo-split-rule}. On the other hand, invoke @kbd{C-u M-x elmo-split}
+to do a rehearsal and show result (do not split actually).
+
+
+We will describe how to specify the rule. First of all, see following
+example, please.
+
+@lisp
+@group
+(setq elmo-split-rule
+      ;; @r{Store messages from spammers into @samp{+junk}}
+      '(((or (address-equal from "i.am@@spammer")
+            (address-equal from "dull-work@@dull-boy")
+            (address-equal from "death-march@@software")
+            (address-equal from "ares@@aon.at")
+            (address-equal from "get-money@@richman"))
+        "+junk")
+       ;; @r{Store messages from mule mailing list into @samp{%mule}}
+       ((equal x-ml-name "mule") "%mule")
+       ;; @r{Store messages from wanderlust mailing list into @samp{%wanderlust}}
+       ;; @r{and continue evaluating following rules}
+       ((equal x-ml-name "wanderlust") "%wanderlust" continue)
+       ;; @r{Store messages from Yahoo user into @samp{+yahoo-@{username@}}}
+       ((match from "\\(.*\\)@@yahoo\\.com")
+        "+yahoo-\\1")
+       ;; @r{Store unmatched mails into @samp{+inbox}}
+       (t "+inbox")))
+@end group
+@end lisp
+
+The basic unit of the rule is a combination like
+
+@lisp
+(@samp{CONDITION} @samp{ACTION} [@code{continue}])
+@end lisp
+
+If @samp{CONDITION} is true, @samp{ACTION} is performed.
+The 1st element @samp{CONDITION} is a condition represented by a
+balanced expression (sexp). Its grammar will be explained below.
+The 2nd element @samp{ACTION} is the name of the folder to split
+messages into, or a symbol. When the 3rd element @code{continue} is
+specified as symbol, evaluating rules is not stopped even when the
+condition is satisfied.
+
+The grammar for @samp{CONDITION} is as follows. See example above to
+learn how to write the condition practically.
+
+@enumerate
+@item
+Functions which accept arguments @samp{FIELD-NAME} and @samp{VALUE}.
+(@samp{FIELD-NAME} is a symbol that describes the field name)
+
+@table @code
+@item @code{equal}
+True if the field value equals to @samp{VALUE}.
+Case of the letters are ignored.
+@item @code{match}
+True if the field value matches to VALUE.
+@samp{VALUE} can contain @code{\&} and @code{\N} which will substitute
+from matching @code{\(\)} patterns in the previous @samp{VALUE}.
+@item @code{address-equal}
+True if one of the addresses in the field equals to
+@samp{VALUE}. Case of the letters are ignored.
+@item @code{address-match}
+True if one of the addresses in the field matches to
+@samp{VALUE}.
+@samp{VALUE} can contain @code{\&} and @code{\N} which will substitute
+from matching @code{\(\)} patterns in the previous @samp{VALUE}.
+@end table
+
+@item
+Functions which accept an integer argument (@samp{SIZE}).
+
+@table @code
+@item @code{<}
+True if the size of the message is less than @samp{SIZE}.
+@item @code{>}
+True if the size of the message is greater than @samp{SIZE}.
+@end table
+
+@item
+Functions which accept any number of arguments.
+
+@table @code
+@item @code{or}
+True if one of the argument returns true.
+@item @code{and}
+True if all of the arguments return true.
+@end table
+
+@item
+A symbol.
+
+When a symbol is specified, it is evaluated.
+@end enumerate
+
+You can specify followings as 2nd @samp{ACTION}.
+
+@enumerate
+@item
+folder name
+
+If some string is specified, it will be regarded as the destination
+folder, and the message will be appended to it.
+
+@item
+@samp{delete}
+
+If the symbol  @samp{delete} is specified, delete the substance of the
+message in @code{elmo-split-folder}
+
+@item
+@samp{noop}
+
+If the symbol @samp{noop} is specified, do nothing on the message and
+keep it as it is.
+
+@item
+function
+
+If some function is specified, execute it.
+@end enumerate
+
+If the message passes all rules, it will be dealed along @samp{ACTION}
+specified by @code{elmo-split-default-action}.
+
+
+@node Batch Processing, Advanced Settings, Split messages, Advanced Issues
+@section Batch Processing
+@cindex Batch Processing
+
+You can request wanderlust to do some job on the command line.
+For now, you can invoke prefetching new messages in specified folders.
+
+Specify target folders in @code{wl-batch-prefetch-folder-list} then
+invoke as follows to execute prefetching:
+
+@example
+@group
+% emacs -batch -l wl-batch -f wl-batch-prefetch
+@end group
+@end example
+
+@subsection Customize Variables
+
+@table @code
+@item wl-batch-prefetch-folder-list
+@vindex wl-batch-prefetch-folder-list
+Target folders of prefetching by @code{wl-batch-prefetch}, specified as
+a list of folder names.
+@end table
+
+
+@node Advanced Settings, Customizable Variables, Batch Processing, Advanced Issues
 @section Advanced Settings
 
 @menu
@@ -7243,8 +8424,6 @@ For silence, set to @code{nil}.
 @subsection Draft for Replay
 @vindex wl-draft-reply-with-argument-list
 @vindex wl-draft-reply-without-argument-list
-@vindex wl-draft-reply-myself-with-argument-list
-@vindex wl-draft-reply-myself-without-argument-list
 
 If you type @kbd{a} in the Summary Buffer, a draft for reply is prepared.
 The addressee for the draft is decided by following rules.
@@ -7305,9 +8484,14 @@ These are evaluated in order and first matched one is used.
 Moreover, the behavior of @kbd{a} with prefix argument can
 be directed by @code{wl-draft-reply-with-argument-list} as well.
 
+
 By the way, you can use some function (will be evaluated in the parent
 message buffer) in the place of @samp{key} or @samp{to-list} etc.
-For example, if you only want to reply to mailing lists in
+
+If you want to write a rule for replying to message written by yourself,
+specify function @code{wl-draft-self-reply-p} as @samp{key}.
+
+If you only want to reply to mailing lists in
 @code{wl-subscribed-mailing-list} if the parent has some of them,
 set as follows:
 
@@ -7335,10 +8519,6 @@ set as follows:
 @end lisp
 
 
-Note: To set the behavior when you reply to the message written by yourself,
-use @code{wl-draft-reply-myself-without-argument-list} and
-@code{wl-draft-reply-myself-with-argument-list} instead of them.
-
 @node Thread Format, User-Agent Field, Draft for Reply, Advanced Settings
 @subsection Appearance of Threads
 
@@ -7418,7 +8598,7 @@ The following is a example:
 @end lisp
 
 
-@node Customizable Variables, Hooks, Advanced Settings, Customization
+@node Customizable Variables, Hooks, Advanced Settings, Advanced Issues
 @section Customizable Variables
 
 Customizable variables that have not been described yet:
@@ -7432,7 +8612,13 @@ a folder and the like.
 @item wl-draft-folder
 @vindex wl-draft-folder
 The initial setting is @samp{+draft}.  It is the folder to which drafts are
-saved.  It must be a localdir folder.
+saved.  It must be a writable folder.
+You can set IMAP remote folder, Maildir and so on.
+Note that variable settings applied by @code{wl-draft-config-exec} is saved
+under @code{elmo-msgdb-directory}.  That is to say, if you specified remote
+folder as @code{wl-draft-folder}, variable settings which are applied by
+@code{wl-draft-config-exec} before saving the draft will not affect on the
+draft buffer on another host by invoking @code{wl-summary-reedit}.
 
 @item wl-trash-folder
 @vindex wl-trash-folder
@@ -7449,6 +8635,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.
 
+@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:
@@ -7463,9 +8656,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},
-@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
@@ -7588,18 +8782,19 @@ This is a list of access groups not to be loaded specifically at the
 start.
 It is ignored if @code{wl-folder-init-load-access-folders} is non-nil.
 
-@item wl-delete-folder-alist
-@vindex wl-delete-folder-alist
+@item wl-dispose-folder-alist
+@vindex wl-dispose-folder-alist
 The initial setting is the alist shown below:
 
 @lisp
 @group
-(("^-" . remove))
+(("^-" . remove)
+ ("^@@" . remove))
 @end group
 @end lisp
 
 @noindent
-This list determines disposition of messages with delete marks.
+This list determines disposition of messages with disposal marks.
 Each item in the list is a folder and destination; you can specify any
 one of the following in the place of destination:
 
@@ -7609,22 +8804,6 @@ string             : moves the messages to the specific folder.
 @code{trash} or others  : moves the messages to @code{wl-trash-folder}.
 @end example
 
-@item wl-refile-policy-alist
-@vindex wl-refile-policy-alist
-The initial setting is the list shown below:
-
-@lisp
-@group
-(("^[-=]" . copy)
- (".*" . move))
-@end group
-@end lisp
-
-@noindent
-This list determines whether messages with re-file marks are moved or
-copied.  Each item in the list is a cons cell of a folder and
-@code{copy} or @code{move}.
-
 @item wl-x-face-file
 @vindex wl-x-face-file
 The initial setting is @file{~/.xface}.
@@ -7643,12 +8822,6 @@ This is meaningful for XEmacs only.  The initial setting depends on
 XEmacs (@code{t} for XEmacs with dbm).
 If non-nil, Message-ID is controlled by dbm.
 
-@item elmo-passwd-alist-file-name
-@vindex elmo-passwd-alist-file-name
-The initial setting is @file{passwd}.
-This is the name of the file in which passwords are saved.
-@code{elmo-passwd-alist-save} saves current passwords to the file.
-
 @item elmo-nntp-list-folders-use-cache
 @vindex elmo-nntp-list-folders-use-cache
 The initial setting is 600 (in seconds).
@@ -7686,20 +8859,109 @@ The initial setting is @code{t}.
 If non-nil, you are asked for confirmation if accumulated off-line
 operations are executed.
 
-@item elmo-display-progress-threshold
-@vindex elmo-display-progress-threshold
-The initial setting is 20.
-Threshold for display of progress gauge.  If number of renewal is more than
-this value, display progress gauge.
+@item elmo-network-session-idle-timeout
+@vindex elmo-network-session-idle-timeout
+The initial setting is @code{nil}.
+Idle timeout of the network cache. Specified in seconds.
+If elapsed time since last access is larger than this value,
+cached session is not reused. If nil, network cache is reused.
+
 @end table
 
 
-@node Hooks,  , Customizable Variables, Customization
+@node Hooks,  , Customizable Variables, Advanced Issues
 @section Hooks
 
 (Not yet written)
 
-@node Terminology, Mailing List, Customization, Top
+
+@node Migration, Terminology, Advanced Issues, Top
+@chapter Switch from older version of Wanderlust
+@cindex Migration
+
+This chapter explains the important thing for the upgrade,
+or migration from the previous version.
+It includes the changes of the setup, limitations etc.
+
+@menu
+* Before 2.12.0::       From prior to the version 2.12.0 
+@end menu
+
+@node Before 2.12.0,  , Migration, Migration
+@section Migration from prior to the version 2.12.0 
+
+@subsection The conversion of msgdb 
+
+From version 2.12.0 on, the structure of msgdb is changed.
+The msgdb for newly created folder will use this new format when created and saved.
+But by writing following line, you may use the old format of the msgdb as it was.
+
+@lisp
+@group
+(setq elmo-msgdb-default-type 'legacy)
+@end group
+@end lisp
+
+With the default setup, the old msgdb format is converted to the new
+format automatically.  You may change this behavior by writing following
+lines in @file{~/.wl}.
+
+@lisp
+@group
+;; @r{If the format of msgdb is different from} @code{elmo-msgdb-default-type},
+;; @r{the format will be converted automatically when}
+;; @r{the msgdb is being loaded (default).}
+(setq elmo-msgdb-convert-type 'auto)
+
+;; @r{Convert msgdb when hitting @kbd{s all} in Summary mode}
+(setq elmo-msgdb-convert-type 'sync)
+
+;; @r{Inhibit conversion}
+(setq elmo-msgdb-convert-type nil)
+@end group
+@end lisp
+
+As is explained in above section, you may continue to use the old format.
+But you will have following limitations.
+
+@enumerate
+@item
+You cannot use forwarded mark (@samp{F}, @samp{f}).
+@item
+You may only use @samp{important} flag. The other global flags may not
+be available.
+@end enumerate
+
+@subsection Changes from @samp{'mark} folder to  @samp{'flag}.
+
+The folder @samp{'mark} will be automatically converted to @samp{'flag}
+folder when you first start the new version of Wanderlust.
+But there are some restrictions on this type of migrated folder.
+
+@enumerate
+@item
+@samp{important} flag attached will not be
+removed by deleting the associated message in @samp{'flag} folder.
+
+@item
+The message won't be deleted by removing
+@samp{important} flag in @samp{'flag} folder.
+
+@item
+help-echo will not show you the old message.
+
+@end enumerate
+
+If you have problem with migrating 
+from @samp{'mark} folder to the @samp{'flag} folder,
+invoking
+@kbd{M-x elmo-global-mark-upgrade} will transfer the message
+from @samp{'mark} folder to the @samp{'flag} folder.
+The duplicated message will not be processed, 
+you may issue that command repeatedly.
+
+
+@node Terminology, Mailing List, Migration, Top
 @chapter Terminology around Wanderlust
 @cindex Terminology
 
@@ -7777,6 +9039,25 @@ in Japanese.}
 I would like to express my thanks to the members of the mailing list for
 valuable advice and many pieces of code they contributed.
 
+@subsection Archive
+
+You can read messages posted to the mailing list on the web or in
+NetNews.
+
+Read messages posted to @t{<wl@@lists.airs.net>}
+
+@example
+@uref{http://lists.airs.net/wl/archive/}
+@uref{news://gmane.mail.wanderlust.general.japanese@@news.gmane.org}
+@end example
+
+Read messages posted to @t{<wl-en@@lists.airs.net>}
+
+@example
+@uref{http://lists.airs.net/wl-en/archive/}
+@uref{news://gmane.mail.wanderlust.general@@news.gmane.org}
+@end example
+
 
 @node Addition, Index, Mailing List, Top
 @chapter Additional Information
@@ -7823,6 +9104,15 @@ valuable advice and many pieces of code they contributed.
       8/21    wl-addrmgr by Kitamoto-san.
      12/27    Released 2.8.1 stable.
 2002 12/11    Released 2.10.0 stable.
+2003  7/05    Released 2.10.1 stable.
+      9/18    flag folder is added.
+      9/20    New msgdb format (modb-standard) by H.Murata-san.
+     10/20    Spam filter by H.Murata-san.
+2004  1/06    Background color of the demo become configurable.
+      2/09    'file' folder is added.
+      9/12    forwarded mark.
+              Default value of the mark strings are changed.
+     12/24    Released 2.12.0 stable.
 @end example
 
 See @file{ChangeLog} for details.
@@ -7852,8 +9142,7 @@ Each versions has code names (they are almost jokes).
 Currently they are picked up alphabetically from the top 40 hits of
 U.S. Billboard magazines in 1980s.
 
-(@uref{http://lyrics.natalnet.com.br/html/top40/index.html})
-
+(@uref{http://ntl.matrix.com.br/pfilho/html/top40/})
 
 @node Index,  , Addition, Top
 @unnumbered Index