* elmo-access.el: New file.
[elisp/wanderlust.git] / doc / wl.texi
index bfc41fd..e29f214 100644 (file)
@@ -118,11 +118,9 @@ This manual is for Wanderlust @value{VERSION}.
 * Disconnected Operations::  Off-Line management
 * Expire and Archive::       Automatic expiration and archiving of messages
 * Scoring::                  Score of the messages
 * Disconnected Operations::  Off-Line management
 * Expire and Archive::       Automatic expiration and archiving of messages
 * Scoring::                  Score of the messages
-* Split messages::           Splitting messages
 * Address Book::             Management of Address Book
 * Spam Filter::              Spam filtering
 * Address Book::             Management of Address Book
 * Spam Filter::              Spam filtering
-* Batch Processing::         Invoke commands in batch mode
-* Customization::            Customizing Wanderlust
+* Advanced Issues::          Advanced Issues
 * Migration::                Switch from older version of Wanderlust
 * Terminology::              Terminologies
 * Mailing List::             Wanderlust mailing list
 * Migration::                Switch from older version of Wanderlust
 * Terminology::              Terminologies
 * Mailing List::             Wanderlust mailing list
@@ -673,9 +671,10 @@ This chapter describes the folder types which Wanderlust is able to handle.
 Wanderlust uses ELMO as it's interface, so you can use every folder types
 supported by ELMO.
 
 Wanderlust uses ELMO as it's interface, so you can use every folder types
 supported by ELMO.
 
-As of version @value{VERSION}, 14 types of folders are predefined. These
+As of version @value{VERSION}, 15 types of folders are predefined. These
 are IMAP, NNTP, LocalDir(MH), Maildir, News Spool, Archive, POP,
 are IMAP, NNTP, LocalDir(MH), Maildir, News Spool, Archive, POP,
-Shimbun, Namazu, Multi, Filter, Pipe, Internal and File folder types.
+Shimbun, Namazu, Multi, Filter, Pipe, File, Access and Internal folder
+types.
 
 @menu
 * IMAP Folder::                 @samp{%} -- IMAP folder
 
 @menu
 * IMAP Folder::                 @samp{%} -- IMAP folder
@@ -692,6 +691,7 @@ Shimbun, Namazu, Multi, Filter, Pipe, Internal and File folder types.
 * Pipe Folder::                 @samp{|} -- Pipe folder
 * Internal Folder::             @samp{'} -- Internal folder
 * File Folder::                          -- File folder
 * Pipe Folder::                 @samp{|} -- Pipe folder
 * Internal Folder::             @samp{'} -- Internal folder
 * File Folder::                          -- File folder
+* Access Folder::                        -- Access folder
 @end menu
 
 
 @end menu
 
 
@@ -1495,8 +1495,8 @@ Example:
 @item
 Date filter: @samp{since:@var{date}}, @samp{before:@var{date}}
 
 @item
 Date filter: @samp{since:@var{date}}, @samp{before:@var{date}}
 
-since: only messages arrived since @var{date} are picked.
-before: only messages arrived before @var{date} are picked.
+since: only messages arrived since @var{date} are picked (@var{date} is included).
+before: only messages arrived before @var{date} are picked (@var{date} is not included).
 
 You can specify following as @var{date}.
 
 
 You can specify following as @var{date}.
 
@@ -1551,12 +1551,18 @@ You can specify following flag names:
 unread    -> unread
 important -> important
 answered  -> replied
 unread    -> unread
 important -> important
 answered  -> replied
+forwarded -> forwarded
 digest    -> unread or important
 digest    -> unread or important
-any       -> unread or important or replied
+any       -> unread or replied or forwarded or global-flag.
 @end group
 @end example
 
 @end group
 @end example
 
-You can also use flags which you have set as global flag.
+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:
 @xref{Internal Folder}.
 
 Example:
@@ -1723,7 +1729,7 @@ it is treated as @samp{important} flag is specified.
 
 In addition, in summary mode, to be described later, you can freely
 define global flags and put them on messages.
 
 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}.
+@xref{Usage of Summary Mode}.
 
 In this folder, if you delete message, @var{global-flag} put on the
 message is removed.  If you append messages to this folder, the message
 
 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
@@ -1743,10 +1749,53 @@ the name of the subdirectories of the cache directory
 (@file{~/.elmo/cache}).
 
 
 (@file{~/.elmo/cache}).
 
 
-@node File Folder,  , Internal Folder, Folders
+@node File Folder, Access Folder, Internal Folder, Folders
 @section File folder
 @cindex File Folder
 
 @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
 
 @node Folder, Summary, Folders, Top
 @chapter Folder mode
@@ -1911,22 +1960,26 @@ current cursor point.
 
 @item N
 @kindex N (Folder)
 
 @item N
 @kindex N (Folder)
+@findex wl-folder-next-unread
 Jump cursor to the folder which have unread messages on the downward
 from current cursor point.
 (@code{wl-folder-next-unread})
 
 @item p
 @kindex p (Folder)
 Jump cursor to the folder which have unread messages on the downward
 from current cursor point.
 (@code{wl-folder-next-unread})
 
 @item p
 @kindex p (Folder)
+@findex wl-folder-prev-entity
 Move cursor to the folder on the previous line.
 (@code{wl-folder-prev-entity})
 
 @item n
 @kindex n (Folder)
 Move cursor to the folder on the previous line.
 (@code{wl-folder-prev-entity})
 
 @item n
 @kindex n (Folder)
+@findex wl-folder-next-entity
 Move cursor to the folder on the next line.
 (@code{wl-folder-next-entity})
 
 @item J
 @kindex J (Folder)
 Move cursor to the folder on the next line.
 (@code{wl-folder-next-entity})
 
 @item J
 @kindex J (Folder)
+@findex wl-folder-jump-folder
 Jump to the folder specified by the user input.
 (@code{wl-folder-jump-folder})
 
 Jump to the folder specified by the user input.
 (@code{wl-folder-jump-folder})
 
@@ -1981,44 +2034,57 @@ Search the folders with the condition specified.
 All unread folder is opened.
 (@code{wl-folder-open-all-unread-folder})
 
 All unread folder is opened.
 (@code{wl-folder-open-all-unread-folder})
 
+@item x
+@kindex x (Folder)
+@findex wl-execute-temp-marks
+Execute marks in summary buffers. @xref{Sticky Summary}.
+(@code{wl-execute-temp-marks})
+
 @item /
 @kindex / (Folder)
 @findex wl-folder-open-close
 Folder group is opened/closed.
 @item /
 @kindex / (Folder)
 @findex wl-folder-open-close
 Folder group is opened/closed.
-(@code{wl-thread-open-close})
+(@code{wl-folder-open-close})
 
 @item [
 @kindex [ (Folder)
 
 @item [
 @kindex [ (Folder)
+@findex wl-folder-open-all
 All folder group is opened.
 (@code{wl-folder-open-all})
 
 @item ]
 @kindex ] (Folder)
 All folder group is opened.
 (@code{wl-folder-open-all})
 
 @item ]
 @kindex ] (Folder)
+@findex wl-folder-close-all
 All folder group is closed.
 (@code{wl-folder-close-all})
 
 @item q
 @kindex q (Folder)
 All folder group is closed.
 (@code{wl-folder-close-all})
 
 @item q
 @kindex q (Folder)
+@findex wl-exit
 Quit Wanderlust.
 (@code{wl-exit})
 
 @item z
 @kindex z (Folder)
 Quit Wanderlust.
 (@code{wl-exit})
 
 @item z
 @kindex z (Folder)
+@findex wl-folder-suspend
 Suspend Wanderlust.
 (@code{wl-folder-suspend})
 
 @item M-s
 @kindex M-s (Folder)
 Suspend Wanderlust.
 (@code{wl-folder-suspend})
 
 @item M-s
 @kindex M-s (Folder)
+@findex wl-save
 Save current folder status.
 (@code{wl-save})
 
 @item M-t
 @kindex M-t (Folder)
 Save current folder status.
 (@code{wl-save})
 
 @item M-t
 @kindex M-t (Folder)
+@findex wl-toggle-plugged
 Toggle Wanderlust's offline/online status.
 (@code{wl-toggle-plugged})
 
 @item C-t
 @kindex C-t (Folder)
 Toggle Wanderlust's offline/online status.
 (@code{wl-toggle-plugged})
 
 @item C-t
 @kindex C-t (Folder)
+@findex wl-plugged-change
 Start Wanderlust's plug-status manager.
 (@code{wl-plugged-change})
 @end table
 Start Wanderlust's plug-status manager.
 (@code{wl-plugged-change})
 @end table
@@ -2166,7 +2232,8 @@ You can append, delete, edit folders from folder mode.
 
 @subsubsection Append Folder
 
 
 @subsubsection Append Folder
 
-@kbd{m a} appends new folder to the folder mode.
+@kbd{m a} appends new folder to your folder list. If you enter non-existent
+folder, it will ask you to create a new one.
 @kbd{m g} appends new folder group.
 To append new folder to this group, firstly open it,
 then execute append command in the next line.
 @kbd{m g} appends new folder group.
 To append new folder to this group, firstly open it,
 then execute append command in the next line.
@@ -2283,7 +2350,8 @@ one stroke key binding.
 @item m a
 @kindex m a (Folder)
 @findex wl-fldmgr-add
 @item m a
 @kindex m a (Folder)
 @findex wl-fldmgr-add
-Insert a folder.
+Add specified folder to your folder list . If you enter non-existent
+folder, create it after confirmation.
 (@code{wl-fldmgr-add})
 
 @item +
 (@code{wl-fldmgr-add})
 
 @item +
@@ -2596,7 +2664,7 @@ message has empty subject field.
 @subsection Temporary Marks
 @cindex Mark, Temporary
 
 @subsection Temporary Marks
 @cindex Mark, Temporary
 
-There are four temporary marks,
+There are seven temporary marks,
 @samp{*}, @samp{d}, @samp{D}, @samp{o}, @samp{O}, @samp{i} and @samp{~}.
 Temporary marks indicates message operations.
 
 @samp{*}, @samp{d}, @samp{D}, @samp{o}, @samp{O}, @samp{i} and @samp{~}.
 Temporary marks indicates message operations.
 
@@ -2637,8 +2705,8 @@ Your answer is printed in the summary line.
 
 @subsection Persistent Marks
 
 
 @subsection Persistent Marks
 
-There are five persistent marks, @samp{N}, @samp{?}, @samp{U}, @samp{!},
-@samp{u}, @samp{A}, @samp{&} and @samp{$}.
+There are ten persistent marks, @samp{!}, @samp{N}, @samp{n}, @samp{U},
+@samp{u}, @samp{A}, @samp{a}, @samp{F}, @samp{f} and @samp{$}.
 
 The persistent mark indicates the message's status and it is saved.
 Each persistent mark indicates:
 
 The persistent mark indicates the message's status and it is saved.
 Each persistent mark indicates:
@@ -2646,18 +2714,27 @@ Each persistent mark indicates:
 @table @samp
 @item N
 It is new message.
 @table @samp
 @item N
 It is new message.
-@item ?
-It is new but cached message.
+@item n
+It is new message. It differs from @samp{N} that message with @samp{n}
+is already cached.
 @item U
 It is unread message.
 @item U
 It is unread message.
-@item !
-It is unread but cached message.
 @item u
 @item u
-It is read but it is not cached.
+It is unread message. It differs from @samp{U} that message with @samp{u}
+is already cached.
+@item !
+It is message already read. It differs from message without mark that
+message with @samp{!} is not cached yet.
 @item A
 It is already replied message.
 @item A
 It is already replied message.
-@item &
-It is already replied but cached message.
+@item a
+It is already replied message. It differs from @samp{A} that message
+with @samp{a} is already cached.
+@item F
+It is already forwarded message.
+@item f
+It is already forwarded message. It differs from @samp{F} that message
+with @samp{f} is already cached.
 @item $
 It is 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
 @item $
 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
@@ -2671,10 +2748,10 @@ If the message is read and cached (or local message),there are no
 persistent mark.
 @end table
 
 persistent mark.
 @end table
 
-@samp{N}, @samp{U}, @samp{u}, @samp{A} indicates that the message have
-no cache.  Messages with the marks other than these, you can read them
-in the offline status even they are in the IMAP folder or netnews
-folder.
+@samp{N}, @samp{U}, @samp{!}, @samp{A}, @samp{F} indicates that the
+message have no cache.  Messages with the marks other than these, you
+can read them in the offline status even they are in the IMAP folder or
+netnews folder.
 
 Among messages with persistent marks, ones with marks specified by 
 @code{wl-summary-expire-reserve-marks} are excluded from the expiration
 
 Among messages with persistent marks, ones with marks specified by 
 @code{wl-summary-expire-reserve-marks} are excluded from the expiration
@@ -2957,8 +3034,19 @@ An example follows.
 @end group
 @end lisp
 
 @end group
 @end lisp
 
-Where the number set the column number of the field (for negative value,
-filled from right)
+Where the number set the column number of the field. If negative value,
+the column is filled from right. If the number begins with @samp{0},
+@samp{0} is used for filling columns instead of @samp{ }.
+
+Example:
+
+@example
+@group
+%5n   -> `1    '
+%-05n -> `00001'
+@end group
+@end example
+
 
 Major control strings defined by @code{wl-summary-line-format-spec-alist}
 are displayed in the following list.
 
 Major control strings defined by @code{wl-summary-line-format-spec-alist}
 are displayed in the following list.
@@ -2966,6 +3054,8 @@ are displayed in the following list.
 @example
 @group
 %n  message number
 @example
 @group
 %n  message number
+%T  temporary mark
+%P  persistent mark
 %Y  year
 %M  month
 %D  day
 %Y  year
 %M  month
 %D  day
@@ -2980,14 +3070,15 @@ are displayed in the following list.
 %S  size
 %c  +number-of-children: (display only for opened thread)
 %C  [+number-of-children] (display only for opened thread)
 %S  size
 %c  +number-of-children: (display only for opened thread)
 %C  [+number-of-children] (display only for opened thread)
-%T  temporary mark (mandatory)
-%P  persistent mark (mandatory)
+%#  mailing list information (`(' ML-name [ ` ' ML-number ] `)')
+%l  number in the mailing list
+%@@ `@@' only if the first MIME part is multipart/mixed
+%~  ` ' only if previous column is empty
 @end group
 @end example
 
 @end group
 @end example
 
-@code{wl-summary-line-format} must contain temporary mark (@samp{%T})
-and persistent mark (@samp{%P}). Furthermore, these marks must appear at
-the constant column. For example, if you specify @samp{%T} or
+The temporary mark (@samp{%T}) and persistent mark (@samp{%P}) must
+appear at the constant column. For example, if you specify @samp{%T} or
 @samp{%P} after the @samp{%t}, which changes its length by thread
 position, marks are not treated correctly.
 
 @samp{%P} after the @samp{%t}, which changes its length by thread
 position, marks are not treated correctly.
 
@@ -3098,11 +3189,12 @@ Proceed reading a message at the current cursor point.
 @item .
 @kindex . (Summary)
 @findex wl-summary-redisplay
 @item .
 @kindex . (Summary)
 @findex wl-summary-redisplay
-Redisplay a message at the current cursor point.
-If this command is called with prefix argument,
-Redisplay message regardless of the message cache (message is re-loaded
-from source).
-(@code{wl-summary-redisplay})
+Redisplay a message at the current cursor point with default display
+type.  If this command is called with prefix argument, reload and redisplay
+message regardless of the message cache.
+If this command is called with twice multiples @kbd{C-u} as @kbd{C-u C-u .},
+reload and redisplay message with current display type regardless of the
+message cache.  (@code{wl-summary-redisplay})
 
 @item <
 @kindex < (Summary)
 
 @item <
 @kindex < (Summary)
@@ -3126,10 +3218,13 @@ Display the previous page of the message at the current cursor point.
 
 @item @key{RET}
 @kindex @key{RET} (Summary)
 
 @item @key{RET}
 @kindex @key{RET} (Summary)
-@findex wl-summary-next-line-content
+@findex wl-summary-enter-handler
 Display the next line of the message at the current cursor point.
 Display the next line of the message at the current cursor point.
-Display the message at the current cursor point if it is not displayed yet.
-(@code{wl-summary-next-line-content})
+Display the message at the current cursor point if it is not displayed
+yet.  (@code{wl-summary-next-line-content}) If prefix argument is
+specified, message is scrolled up by one line.
+(@code{wl-summary-prev-line-content}) If prefix argument is numeric,
+cursor is jumped to the message with specified number.
 
 @item -
 @itemx M-@key{RET}
 
 @item -
 @itemx M-@key{RET}
@@ -3144,6 +3239,7 @@ Display the message at the current cursor point if it is not displayed yet.
 @kindex / (Summary)
 @findex wl-thread-open-close
 Toggle open or close the thread at the current cursor point.
 @kindex / (Summary)
 @findex wl-thread-open-close
 Toggle open or close the thread at the current cursor point.
+With prefix argument, open all children threads.
 (@code{wl-thread-open-close})
 
 @item [
 (@code{wl-thread-open-close})
 
 @item [
@@ -3296,15 +3392,39 @@ list folder (refile destination), guess @samp{To:} field and completed
 
 @item H
 @kindex H (Summary)
 
 @item H
 @kindex H (Summary)
-@findex wl-summary-redisplay-all-header
-Redisplay the message at current cursor point with all header fields.
-(@code{wl-summary-redisplay-all-header})
+@findex wl-summary-toggle-all-header
+Toggle display type between all and partial header fields and redisplay
+the message at current cursor point.  If this command is called with
+prefix argument, reload and redisplay message regardless of the message cache.
+If this command is called with twice multiples @kbd{C-u} as @kbd{C-u C-u H},
+set default display type of summary by current display type of header fields.
+(@code{wl-summary-toggle-all-header})
 
 @item M
 @kindex M (Summary)
 
 @item M
 @kindex M (Summary)
-@findex wl-summary-redisplay-no-mime
-Redisplay the message at current cursor point without MIME analysis.
-(@code{wl-summary-redisplay-no-mime})
+@findex wl-summary-toggle-mime
+Toggle display type for MIME analysis and redisplay the message at
+current cursor point.  A change is performed in the order set as
+@code{wl-summary-display-mime-mode-list}.  If this command is called
+with numeric prefix argument, it switch directly as follows.
+
+@example
+@group
+1: Enable MIME analysis.
+2: Enable MIME analysis only for header fields.
+3: Disable MIME analysis.
+@end group
+@end example
+
+If this command is called with twice multiples @kbd{C-u} as @kbd{C-u C-u
+M}, set default display type of summary by current display type of MIME
+analysis.  (@code{wl-summary-toggle-mime})
+
+@item C-c C-f
+@kindex C-c C-f (Summary)
+@findex wl-summary-toggle-header-narrowing
+Toggle header body narrowing of the message at current cursor point.
+(@code{wl-summary-toggle-header-narrowing})
 
 @item B
 @kindex B (Summary)
 
 @item B
 @kindex B (Summary)
@@ -3416,6 +3536,8 @@ update-entirely  Update the difference between informations in present
 rescan           Redisplay summary by rescanning present msgdb.
 rescan-noscore   Redisplay summary by rescanning present msgdb.
                  Display messages killed by score, too.
 rescan           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.
 cache-status     Sync the all marks with the real status of cache.
 mark             Update marks.
 no-sync          Do nothing.
@@ -3431,7 +3553,9 @@ last:NUM         Move to the filter folder(partial filter).
 @kindex S (Summary)
 @findex wl-summary-sort
 Sort summary order.
 @kindex S (Summary)
 @findex wl-summary-sort
 Sort summary order.
-You can sort by @samp{date}, @samp{from}, @samp{number} and @samp{subject}.
+You can sort by @samp{date}, @samp{from}, @samp{number}, @samp{subject},
+@samp{size} and @samp{list-info}.
+With prefix argument, sort summary lines into descending order.
 (@code{wl-summary-sort})
 
 @item T
 (@code{wl-summary-sort})
 
 @item T
@@ -3473,6 +3597,10 @@ Jump to the message which is displayed last.
 @item ?
 @kindex ? (Summary)
 Put @samp{*} mark on the messages that satisfies the specified condition.
 @item ?
 @kindex ? (Summary)
 Put @samp{*} mark on the messages that satisfies the specified condition.
+If messages already have @samp{*} mark, new @samp{*} marks are overridden.
+If prefix argument is specified, current @samp{*} marks are removed and
+new @samp{*} marks are appended.
+
 @findex wl-summary-pick
 (@code{wl-summary-pick})
 
 @findex wl-summary-pick
 (@code{wl-summary-pick})
 
@@ -4085,6 +4213,11 @@ the thread is divided.
 The initial setting is t.
 If non-nil, cursor point is moved to the center of the summary window.
 
 The initial setting is t.
 If non-nil, cursor point is moved to the center of the summary window.
 
+@item wl-summary-max-thread-depth
+@vindex wl-summary-max-thread-depth
+The initial setting is 30.
+If thread depth is larger than this value, divide it.
+
 @item wl-summary-divide-thread-when-subject-changed
 @vindex wl-summary-divide-thread-when-subject-changed
 The initial setting is @code{nil}.  If non-nil, thread is split if
 @item wl-summary-divide-thread-when-subject-changed
 @vindex wl-summary-divide-thread-when-subject-changed
 The initial setting is @code{nil}.  If non-nil, thread is split if
@@ -4243,9 +4376,42 @@ The initial setting is as follows:
 @end group
 @end lisp
 
 @end group
 @end lisp
 
-Specify the color of message in summary buffer with flag.  If multiple
-global flags are on one message, the former flag in this list is
-preferred.
+Specify the color and the mark of message in summary buffer with flag.
+If the mark are omitted, the mark specified in the variable
+@code{wl-summary-flag-mark} is assumed.  If multiple global flags are on
+one message, the former flag in this list is preferred.
+
+Example:
+
+@lisp
+@group
+(setq wl-summary-flag-alist
+      '((important "purple")
+        (todo "red")
+        (business "green" "B")
+        (private "blue" "X")))
+@end group
+@end lisp
+
+@item wl-summary-display-mime-mode-list
+@vindex wl-summary-display-mime-mode-list
+The initial setting is the list shown below:
+
+@lisp
+@group
+(mime as-is)
+@end group
+@end lisp
+
+@noindent
+The function @code{wl-summary-toggle-mime} switch specification of MIME
+analysis in the order of this list. You can specify one of the follows.
+
+@example
+@code{mime}        : Header and body are decoded.
+@code{header-only} : Only header is decoded.
+@code{as-is}       : Header and body are not decoded.
+@end example
 @end table
 
 
 @end table
 
 
@@ -4360,13 +4526,13 @@ Basically it is Emacs-standard mail mode.
 
 @menu
 * Editing Header::
 
 @menu
 * Editing Header::
-* Editing Message Body::
+* Editing Message Body and Sending::
 * Dynamical Message Re-arrangement::
 * Template::
 * POP-before-SMTP::
 @end menu
 
 * Dynamical Message Re-arrangement::
 * Template::
 * POP-before-SMTP::
 @end menu
 
-@node Editing Header, Editing Message Body, Usage of Draft Mode, Usage of Draft Mode
+@node Editing Header, Editing Message Body and Sending, Usage of Draft Mode, Usage of Draft Mode
 @subsection Editing Message Header
 
 You can freely edit header region above @samp{--text follows this line--},
 @subsection Editing Message Header
 
 You can freely edit header region above @samp{--text follows this line--},
@@ -4417,8 +4583,8 @@ If non-nil, the value of this variable is inserted as a @samp{Bcc:} of
 the draft when it is prepared.
 @end table
 
 the draft when it is prepared.
 @end table
 
-@node Editing Message Body, Dynamical Message Re-arrangement, Editing Header, Usage of Draft Mode
-@subsection Editing Messages
+@node Editing Message Body and Sending, Dynamical Message Re-arrangement, Editing Header, Usage of Draft Mode
+@subsection Editing Messages and Sending
 
 As a matter of course, editing message body can be performed in the same
 way as usual writing. You may write message body under
 
 As a matter of course, editing message body can be performed in the same
 way as usual writing. You may write message body under
@@ -4431,9 +4597,13 @@ a MIME user interface for GNU Emacs}.
 You can also see help by @kbd{C-c C-x ?} in draft buffer.
 
 If you save the draft buffer you are editing, it is appended to the
 You can also see help by @kbd{C-c C-x ?} in draft buffer.
 
 If you save the draft buffer you are editing, it is appended to the
-folder specified by @code{wl-draft-folder}.
+folder specified by @code{wl-draft-folder}.  You can leave draft buffer
+after storing it for future editing by @kbd{C-c C-z} (@code{wl-draft-save-and-exit}).
 
 
-@node Dynamical Message Re-arrangement, Template, Editing Message Body, Usage of Draft Mode
+If you have finished editing, you can send message by @kbd{C-c C-c}.
+
+
+@node Dynamical Message Re-arrangement, Template, Editing Message Body and Sending, Usage of Draft Mode
 @subsection Dynamic Modification of Messages
 @vindex wl-draft-config-alist
 @c @cindex Change Message
 @subsection Dynamic Modification of Messages
 @vindex wl-draft-config-alist
 @c @cindex Change Message
@@ -4643,6 +4813,9 @@ adjust the window size by @code{wl-template-buffer-lines}.
 If @code{wl-template-visible-select} is @code{nil}, you should type the
 name of the template in the mini buffer.
 
 If @code{wl-template-visible-select} is @code{nil}, you should type the
 name of the template in the mini buffer.
 
+If @code{wl-template-select} is executed with prefix argument,
+inversed value of @code{wl-template-visible-select} is used.
+
 As shown in the example in @code{wl-draft-config-alist}, you can select
 @samp{default} template by writing:
 
 As shown in the example in @code{wl-draft-config-alist}, you can select
 @samp{default} template by writing:
 
@@ -4969,6 +5142,14 @@ as an argument.
 The initial setting is @code{nil}.
 If non-nil, use new frame for the draft.
 
 The initial setting is @code{nil}.
 If non-nil, use new frame for the draft.
 
+@item wl-draft-reply-default-position
+@vindex wl-draft-reply-default-position
+The initial setting is @code{body}.
+Specify initial cursor position on draft buffer for reply.
+@code{body} is to move cursor to the top of the message body,
+@code{bottom} to the bottom of the message body, and @code{top} to the
+top of the header.
+
 @item wl-draft-truncate-lines
 @vindex wl-draft-truncate-lines
 The initial value is the value of @code{default-truncate-lines}.
 @item wl-draft-truncate-lines
 @vindex wl-draft-truncate-lines
 The initial value is the value of @code{default-truncate-lines}.
@@ -5069,21 +5250,28 @@ If @code{nil}, default SMTP port number (25) is used.
 @item wl-smtp-posting-user
 @vindex wl-smtp-posting-user
 The initial setting is @code{nil}.
 @item wl-smtp-posting-user
 @vindex wl-smtp-posting-user
 The initial setting is @code{nil}.
-This is the user name for SMTP AUTH authentication.  If @code{nil},
-@code{smtp-authenticate-user} is used.
+This is the user name for SMTP AUTH authentication.
 
 @item wl-smtp-authenticate-type
 @vindex wl-smtp-authenticate-type
 The initial setting is @code{nil}.
 
 @item wl-smtp-authenticate-type
 @vindex wl-smtp-authenticate-type
 The initial setting is @code{nil}.
-This is the authentication method for SMTP AUTH authentication.  If
-@code{nil}, @code{smtp-authenticate-type} is used.  If
-@code{smtp-authenticate-type} is still @code{nil}, authentication will
-not be carried out.
+This string-valued variable specifies the authentication method for SMTP
+AUTH authentication.  You may specify @code{plain}, @code{cram-md5},
+@code{digest-md5}, @code{login}, etc.  If @code{nil}, authentication
+will not be carried out.
+
+@item wl-smtp-authenticate-realm
+@vindex wl-smtp-authenticate-realm
+The initial setting is @code{nil}.
+This string-valued variable specifies the authentication realm for SMTP
+AUTH authentication. You have to set this variable for DIGEST-MD5
+authentication and so on.
+If @code{nil}, authentication realm is not specified in the authentication.
 
 @item wl-smtp-connection-type
 @vindex wl-smtp-connection-type
 The initial setting is @code{nil}.
 
 @item wl-smtp-connection-type
 @vindex wl-smtp-connection-type
 The initial setting is @code{nil}.
-This variable specifies how to establish SMTP connections.
+This symbol-valued variable specifies how to establish SMTP connections.
 If @code{nil}, use default connection type.
 If it is @code{starttls}, use STARTTLS (RFC2595).
 If it is @code{ssl}, use SSL.
 If @code{nil}, use default connection type.
 If it is @code{starttls}, use STARTTLS (RFC2595).
 If it is @code{ssl}, use SSL.
@@ -5154,7 +5342,7 @@ If it is @code{nil}, @code{elmo-pop3-default-server} is used.
 @vindex wl-pop-before-smtp-authenticate-type
 The initial setting is @code{nil}.
 This is the authentication method for POP-before-SMTP authentication.
 @vindex wl-pop-before-smtp-authenticate-type
 The initial setting is @code{nil}.
 This is the authentication method for POP-before-SMTP authentication.
-If it is @code{nil}, @code{elmo-pop3-default-authenticate} is used.
+If it is @code{nil}, @code{elmo-pop3-default-authenticate-type} is used.
 
 @item wl-pop-before-smtp-port
 @vindex wl-pop-before-smtp-port
 
 @item wl-pop-before-smtp-port
 @vindex wl-pop-before-smtp-port
@@ -5271,12 +5459,15 @@ later) is non-nil, you can following operations:
 * Re-file and Copy queue::      Re-file and Copy (IMAP4)
 * Creation of Folders::         Create Folders off-line (IMAP4)
 * Marking::                     Mark (IMAP4)
 * Re-file and Copy queue::      Re-file and Copy (IMAP4)
 * Creation of Folders::         Create Folders off-line (IMAP4)
 * Marking::                     Mark (IMAP4)
-* Pre-fetching Reservations::   Pre-fetch (IMAP4, NNTP)
+* Pre-fetching Reservations::   Pre-fetch
 @end menu
 
 As soon as Wanderlust becomes on-line, such operations invoked off-line
 are reflected in the servers via network.
 
 @end menu
 
 As soon as Wanderlust becomes on-line, such operations invoked off-line
 are reflected in the servers via network.
 
+If the variable @code{elmo-enable-disconnected-operation} is @code{nil},
+these off-line operations are not executed and causes an error on
+re-file or copy operations.
 
 @node Send Messages off-line, Re-file and Copy queue, Enable Operations, Enable Operations
 @subsection Transmission of Messages
 
 @node Send Messages off-line, Re-file and Copy queue, Enable Operations, Enable Operations
 @subsection Transmission of Messages
@@ -5327,23 +5518,12 @@ are also reflected in the servers when Wanderlust becomes on-line.
 
 
 @node Pre-fetching Reservations,  , Marking, Enable Operations
 
 
 @node Pre-fetching Reservations,  , Marking, Enable Operations
-@subsection Pre-fetching (IMAP4, NNTP)
-
-You can make reservations for pre-fetching messages in IMAP or NNTP
-folders.  Reserved messages are marked with @samp{!} but not cached
-yet.  When Wanderlust becomes on-line, they are pre-fetched from
-servers.
+@subsection Pre-fetching
 
 
-If the variable @code{elmo-enable-disconnected-operation} is @code{nil},
-these off-line operations for IMAP4 and NNTP do not take place, and
-off-line re-file, copy or suchlike simply results in error.
-
-Because off-line operations use cache files, it is a bad idea to erase
-them by hand; it may cause Wanderlust to malfunction.
-
-If you want to remove caches, be sure to execute @kbd{M-x
-elmo-cache-expire-by-size}.  @code{elmo-cache-expire-by-size} does not
-remove caches for messages relevant to off-line operations.
+You can make reservations for pre-fetching messages in networking
+folders (IMAP, NNTP, POP3, shimbun).  Reserved messages are marked with
+@samp{u} but not cached yet.  When Wanderlust becomes on-line, they are
+pre-fetched from servers.
 
 
 @node Plugged Mode, Off-line State settings, Enable Operations, Disconnected Operations
 
 
 @node Plugged Mode, Off-line State settings, Enable Operations, Disconnected Operations
@@ -5465,8 +5645,8 @@ manually, press @kbd{F} in the folder mode.
 
 @item elmo-enable-disconnected-operation
 @vindex elmo-enable-disconnected-operation
 
 @item elmo-enable-disconnected-operation
 @vindex elmo-enable-disconnected-operation
-The initial setting is @code{t}.  Controls off-line operations
-regarding IMAP4.  If non-nil, off-line operations are carried out.
+The initial setting is @code{t}.  Controls off-line operations regarding
+networking folders.  If non-nil, off-line operations are carried out.
 
 @item elmo-lost+found-folder
 @vindex elmo-lost+found-folder
 
 @item elmo-lost+found-folder
 @vindex elmo-lost+found-folder
@@ -5831,10 +6011,9 @@ The initial setting is the list below.
 
 @lisp
 @group
 
 @lisp
 @group
-(list wl-summary-important-mark
+(list wl-summary-flag-mark
       wl-summary-new-uncached-mark
       wl-summary-new-cached-mark
       wl-summary-new-uncached-mark
       wl-summary-new-cached-mark
-      wl-summary-unread-mark
       wl-summary-unread-uncached-mark
       wl-summary-unread-cached-mark)
 @end group
       wl-summary-unread-uncached-mark
       wl-summary-unread-cached-mark)
 @end group
@@ -6090,7 +6269,7 @@ Needless to say, you can use your own function.
 @end table
 
 
 @end table
 
 
-@node Scoring, Split messages, Expire and Archive, Top
+@node Scoring, Address Book, Expire and Archive, Top
 @chapter Score of the Messages
 @cindex Scoring
 @c @cindex Kill File
 @chapter Score of the Messages
 @cindex Scoring
 @c @cindex Kill File
@@ -6417,7 +6596,7 @@ If non-nil, unread/important marks are synchronized when the summary
 does.
 Unread marks reflect information on the IMAP4 server.
 Important marks reflect information on the IMAP4 server (flagged or
 does.
 Unread marks reflect information on the IMAP4 server.
 Important marks reflect information on the IMAP4 server (flagged or
-not), and contents of @samp{'mark} folder.
+not), and contents of @samp{'flag} folder.
 The initial setting is @code{t}.
 @end table
 
 The initial setting is @code{t}.
 @end table
 
@@ -6589,156 +6768,7 @@ pop3                      N     E     E     E
 @end example
 
 
 @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, Spam Filter, Split messages, Top
+@node Address Book, Spam Filter, Scoring, Top
 @chapter Address Book
 @cindex Address Book
 
 @chapter Address Book
 @cindex Address Book
 
@@ -6869,7 +6899,7 @@ Edit entry.
 @end table
 
 
 @end table
 
 
-@node Spam Filter, Batch Processing, Address Book, Top
+@node Spam Filter, Advanced Issues, Address Book, Top
 @chapter Spam Filter
 @cindex Spam Filter
 
 @chapter Spam Filter
 @cindex Spam Filter
 
@@ -6893,7 +6923,7 @@ To use @code{wl-spam}, write in @file{~/.wl} as follows:
 @group
 ;; @r{Use @samp{bogofilter} as spam back end}
 ;; @r{Set @samp{scheme} here as the spam filter you will use.}
 @group
 ;; @r{Use @samp{bogofilter} as spam back end}
 ;; @r{Set @samp{scheme} here as the spam filter you will use.}
-;; @r{@xref{Spam Filter Processor}}
+;; @r{@xref{Spam Filter Processors}.}
 (setq elmo-spam-scheme 'bogofilter)
 (require 'wl-spam)
 @end group
 (setq elmo-spam-scheme 'bogofilter)
 (require 'wl-spam)
 @end group
@@ -6951,7 +6981,7 @@ Make judgement on splitting messages with @code{elmo-split}.
 It provides new function @code{spam-p} to be specified as @samp{CONDITION}
 in @code{elmo-split-rule}. This function returns true when the message
 is judged as spam.
 It provides new function @code{spam-p} to be specified as @samp{CONDITION}
 in @code{elmo-split-rule}. This function returns true when the message
 is judged as spam.
-@xref{Split messages}
+@xref{Split messages}.
 
 You can also process learning by the result of judgement. (You would
 better turn on this feature after learning to some extent)
 
 You can also process learning by the result of judgement. (You would
 better turn on this feature after learning to some extent)
@@ -7141,6 +7171,7 @@ Supported spam filtering libraries are following ones.
 * spamfilter::                          spamfilter.el
 * bsfilter::                            bsfilter
 * SpamAssassin::                        SpamAssassin
 * spamfilter::                          spamfilter.el
 * bsfilter::                            bsfilter
 * SpamAssassin::                        SpamAssassin
+* SpamOracle::                          SpamOracle
 * Regular Expressions Header Matching:: Header regexp
 @end menu
 
 * Regular Expressions Header Matching:: Header regexp
 @end menu
 
@@ -7287,7 +7318,7 @@ Specify options to give to @command{bsfilter} for learning messages.
 
 @end table
 
 
 @end table
 
-@node SpamAssassin, Regular Expressions Header Matching, bsfilter, Spam Filter Processors
+@node SpamAssassin, SpamOracle, bsfilter, Spam Filter Processors
 @subsection SpamAssassin
 @cindex SpamAssassin
 
 @subsection SpamAssassin
 @cindex SpamAssassin
 
@@ -7345,30 +7376,74 @@ stored in the buffer named @code{"*Debug ELMO SpamAssassin*"}.
 
 @end table
 
 
 @end table
 
-@node Regular Expressions Header Matching,  , SpamAssassin, Spam Filter Processors
-@subsection Regular Expressions Header Matching
-@cindex Regular Expressions Header Matching
+@node SpamOracle, Regular Expressions Header Matching, SpamAssassin, Spam Filter Processors
+@subsection SpamOracle
+@cindex SpamOracle
 
 
-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}.
+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
 
 @lisp
 @group
-(setq elmo-spam-scheme 'header)
+(setq elmo-spam-scheme 'spamoracle)
 @end group
 @end lisp
 
 @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
+@subsubsection Customizable Variables
 
 @table @code
 
 @table @code
-@item elmo-spam-header-good-alist
-@vindex elmo-spam-header-good-alist
-The initial setting is the following list:
+@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"))
 
 @lisp
 '(("X-Spam-Flag" . "No"))
@@ -7391,45 +7466,24 @@ for making spam decision.
 @end table
 
 
 @end table
 
 
-@node Batch Processing, Customization, Spam Filter, Top
-@chapter 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:
-
-@group
-emacs -batch -l wl-batch -f wl-batch-prefetch
-@end group
-
-@section 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 Customization, Migration, Batch Processing, Top
-@chapter Customizing Wanderlust
-@cindex Customization
+@node Advanced Issues, Migration, Spam Filter, Top
+@chapter Advanced Issues
+@cindex Advanced Issues
 
 @menu
 * Living with other packages:: Cooperating with other packages
 * Highlights::                 Highlights
 * Biff::                       Notify Mail arrival
 
 @menu
 * Living with other packages:: Cooperating with other packages
 * Highlights::                 Highlights
 * Biff::                       Notify Mail arrival
+* Password Management::        Manage Passwords
+* Split messages::             Splitting messages
+* Batch Processing::           Invoke commands in batch mode
 * Advanced Settings::          Advanced Settings
 * Customizable Variables::     Customizable Variables
 * Hooks::                      Hooks
 @end menu
 
 
 * Advanced Settings::          Advanced Settings
 * Customizable Variables::     Customizable Variables
 * Hooks::                      Hooks
 @end menu
 
 
-@node Living with other packages, Highlights, Customization, Customization
+@node Living with other packages, Highlights, Advanced Issues, Advanced Issues
 @section Living with other packages
 
 Examples with other packages.
 @section Living with other packages
 
 Examples with other packages.
@@ -7708,7 +7762,7 @@ distributed with emacs-w3m (@uref{http://emacs-w3m.namazu.org/}).
 You can find the usage in comment region at the head of @file{mime-w3m.el}.
 
 
 You can find the usage in comment region at the head of @file{mime-w3m.el}.
 
 
-@node Highlights, Biff, Living with other packages, Customization
+@node Highlights, Biff, Living with other packages, Advanced Issues
 @section Highlights
 
 @subsection Customizable Variables
 @section Highlights
 
 @subsection Customizable Variables
@@ -7954,7 +8008,7 @@ The face for strings (for example, a version number) in the demo.
 @end table
 
 
 @end table
 
 
-@node Biff, Advanced Settings, Highlights, Customization
+@node Biff, Password Management, Highlights, Advanced Issues
 @section Notify Mail arrival
 @cindex Biff
 
 @section Notify Mail arrival
 @cindex Biff
 
@@ -7978,6 +8032,13 @@ If @code{nil}, wl doesn't check mail arrival.
 The initial setting is 40 (in seconds).
 Check mail arrival in this period.
 
 The initial setting is 40 (in seconds).
 Check mail arrival in this period.
 
+@item wl-biff-use-idle-timer
+@vindex wl-biff-use-idle-timer
+The initial setting is @code{nil}.
+If it is @code{nil}, check mail arrival when the time specified by
+@code{wl-biff-check-interval} has passed.  If it is non-nil, check
+mail arrival when idling time exceeds @code{wl-biff-check-interval}.
+
 @item wl-biff-notify-hook
 @vindex wl-biff-notify-hook
 This hook is run at the arrival of new mail.
 @item wl-biff-notify-hook
 @vindex wl-biff-notify-hook
 This hook is run at the arrival of new mail.
@@ -7989,7 +8050,214 @@ For silence, set to @code{nil}.
 @end table
 
 
 @end table
 
 
-@node Advanced Settings, Customizable Variables, Biff, Customization
+@node Password Management, Split messages, Biff, Advanced Issues
+@section Manage Passwords
+
+If you input passwords to connect servers, they are stored in the
+variable @code{elmo-passwd-alist} per connection. You should be careful
+that others might read your passwords if they can touch your Emacs,
+since encoded plain passwords are there.
+
+If you invoke @kbd{M-x elmo-passwd-alist-save} while you have stored
+passwords, then they are saved on the file, and it will save you to
+input passwords. In this case, the risk that someone reads your
+keystroke might decrease, but please not that plain passwords are
+stored on a file. You should treat them very carefully.
+To remove saved passwords on file, invoke @kbd{M-x elmo-passwd-alist-clear}
+and then @kbd{M-x elmo-passwd-alist-save}.
+
+@table @code
+@item elmo-passwd-alist-file-name
+@vindex elmo-passwd-alist-file-name
+The initial setting is @file{passwd}.
+This is the name of the file in which passwords are saved.
+@code{elmo-passwd-alist-save} saves current passwords to the file.
+
+@item elmo-passwd-life-time
+@vindex  elmo-passwd-life-time
+The initial setting is @code{nil}.
+If the value is some number, timer is set to remove password entry after
+@code{elmo-passwd-life-time} seconds since you input the password.
+@code{nil} means never to remove passwords.
+@end table
+
+
+@node Split messages, Batch Processing, Password Management, Advanced Issues
+@section Message splitting
+@cindex Split messages
+
+You can use @code{elmo-split} to split message in folder specified by
+the variable @code{elmo-split-folder} a la @command{procmail} according
+to some specified rules. To use this feature, set as follows in your
+@file{~/.emacs} at first.
+
+@lisp
+(autoload 'elmo-split "elmo-split" "Split messages on the folder." t)
+@end lisp
+
+Set source folder like following.
+
+@lisp
+(setq elmo-split-folder "%inbox")
+@end lisp
+
+And specify the rule in the variable @code{elmo-split-rule} (its format
+will be is described below).
+Then you can invoke @kbd{M-x elmo-split} to split messages according to
+@code{elmo-split-rule}. On the other hand, invoke @kbd{C-u M-x elmo-split}
+to do a rehearsal and show result (do not split actually).
+
+
+We will describe how to specify the rule. First of all, see following
+example, please.
+
+@lisp
+@group
+(setq elmo-split-rule
+      ;; @r{Store messages from spammers into @samp{+junk}}
+      '(((or (address-equal from "i.am@@spammer")
+            (address-equal from "dull-work@@dull-boy")
+            (address-equal from "death-march@@software")
+            (address-equal from "ares@@aon.at")
+            (address-equal from "get-money@@richman"))
+        "+junk")
+       ;; @r{Store messages from mule mailing list into @samp{%mule}}
+       ((equal x-ml-name "mule") "%mule")
+       ;; @r{Store messages from wanderlust mailing list into @samp{%wanderlust}}
+       ;; @r{and continue evaluating following rules}
+       ((equal x-ml-name "wanderlust") "%wanderlust" continue)
+       ;; @r{Store messages from Yahoo user into @samp{+yahoo-@{username@}}}
+       ((match from "\\(.*\\)@@yahoo\\.com")
+        "+yahoo-\\1")
+       ;; @r{Store unmatched mails into @samp{+inbox}}
+       (t "+inbox")))
+@end group
+@end lisp
+
+The basic unit of the rule is a combination like
+
+@lisp
+(@samp{CONDITION} @samp{ACTION} [@code{continue}])
+@end lisp
+
+If @samp{CONDITION} is true, @samp{ACTION} is performed.
+The 1st element @samp{CONDITION} is a condition represented by a
+balanced expression (sexp). Its grammar will be explained below.
+The 2nd element @samp{ACTION} is the name of the folder to split
+messages into, or a symbol. When the 3rd element @code{continue} is
+specified as symbol, evaluating rules is not stopped even when the
+condition is satisfied.
+
+The grammar for @samp{CONDITION} is as follows. See example above to
+learn how to write the condition practically.
+
+@enumerate
+@item
+Functions which accept arguments @samp{FIELD-NAME} and @samp{VALUE}.
+(@samp{FIELD-NAME} is a symbol that describes the field name)
+
+@table @code
+@item @code{equal}
+True if the field value equals to @samp{VALUE}.
+Case of the letters are ignored.
+@item @code{match}
+True if the field value matches to VALUE.
+@samp{VALUE} can contain @code{\&} and @code{\N} which will substitute
+from matching @code{\(\)} patterns in the previous @samp{VALUE}.
+@item @code{address-equal}
+True if one of the addresses in the field equals to
+@samp{VALUE}. Case of the letters are ignored.
+@item @code{address-match}
+True if one of the addresses in the field matches to
+@samp{VALUE}.
+@samp{VALUE} can contain @code{\&} and @code{\N} which will substitute
+from matching @code{\(\)} patterns in the previous @samp{VALUE}.
+@end table
+
+@item
+Functions which accept an integer argument (@samp{SIZE}).
+
+@table @code
+@item @code{<}
+True if the size of the message is less than @samp{SIZE}.
+@item @code{>}
+True if the size of the message is greater than @samp{SIZE}.
+@end table
+
+@item
+Functions which accept any number of arguments.
+
+@table @code
+@item @code{or}
+True if one of the argument returns true.
+@item @code{and}
+True if all of the arguments return true.
+@end table
+
+@item
+A symbol.
+
+When a symbol is specified, it is evaluated.
+@end enumerate
+
+You can specify followings as 2nd @samp{ACTION}.
+
+@enumerate
+@item
+folder name
+
+If some string is specified, it will be regarded as the destination
+folder, and the message will be appended to it.
+
+@item
+@samp{delete}
+
+If the symbol  @samp{delete} is specified, delete the substance of the
+message in @code{elmo-split-folder}
+
+@item
+@samp{noop}
+
+If the symbol @samp{noop} is specified, do nothing on the message and
+keep it as it is.
+
+@item
+function
+
+If some function is specified, execute it.
+@end enumerate
+
+If the message passes all rules, it will be dealed along @samp{ACTION}
+specified by @code{elmo-split-default-action}.
+
+
+@node Batch Processing, Advanced Settings, Split messages, Advanced Issues
+@section Batch Processing
+@cindex Batch Processing
+
+You can request wanderlust to do some job on the command line.
+For now, you can invoke prefetching new messages in specified folders.
+
+Specify target folders in @code{wl-batch-prefetch-folder-list} then
+invoke as follows to execute prefetching:
+
+@example
+@group
+% emacs -batch -l wl-batch -f wl-batch-prefetch
+@end group
+@end example
+
+@subsection Customize Variables
+
+@table @code
+@item wl-batch-prefetch-folder-list
+@vindex wl-batch-prefetch-folder-list
+Target folders of prefetching by @code{wl-batch-prefetch}, specified as
+a list of folder names.
+@end table
+
+
+@node Advanced Settings, Customizable Variables, Batch Processing, Advanced Issues
 @section Advanced Settings
 
 @menu
 @section Advanced Settings
 
 @menu
@@ -8063,9 +8331,14 @@ These are evaluated in order and first matched one is used.
 Moreover, the behavior of @kbd{a} with prefix argument can
 be directed by @code{wl-draft-reply-with-argument-list} as well.
 
 Moreover, the behavior of @kbd{a} with prefix argument can
 be directed by @code{wl-draft-reply-with-argument-list} as well.
 
+
 By the way, you can use some function (will be evaluated in the parent
 message buffer) in the place of @samp{key} or @samp{to-list} etc.
 By the way, you can use some function (will be evaluated in the parent
 message buffer) in the place of @samp{key} or @samp{to-list} etc.
-For example, if you only want to reply to mailing lists in
+
+If you want to write a rule for replying to message written by yourself,
+specify function @code{wl-draft-self-reply-p} as @samp{key}.
+
+If you only want to reply to mailing lists in
 @code{wl-subscribed-mailing-list} if the parent has some of them,
 set as follows:
 
 @code{wl-subscribed-mailing-list} if the parent has some of them,
 set as follows:
 
@@ -8172,7 +8445,7 @@ The following is a example:
 @end lisp
 
 
 @end lisp
 
 
-@node Customizable Variables, Hooks, Advanced Settings, Customization
+@node Customizable Variables, Hooks, Advanced Settings, Advanced Issues
 @section Customizable Variables
 
 Customizable variables that have not been described yet:
 @section Customizable Variables
 
 Customizable variables that have not been described yet:
@@ -8187,6 +8460,7 @@ a folder and the like.
 @vindex wl-draft-folder
 The initial setting is @samp{+draft}.  It is the folder to which drafts are
 saved.  It must be a writable folder.
 @vindex wl-draft-folder
 The initial setting is @samp{+draft}.  It is the folder to which drafts are
 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
 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
@@ -8362,7 +8636,7 @@ The initial setting is the alist shown below:
 @lisp
 @group
 (("^-" . remove)
 @lisp
 @group
 (("^-" . remove)
- ("^@" . remove))
+ ("^@@" . remove))
 @end group
 @end lisp
 
 @end group
 @end lisp
 
@@ -8395,12 +8669,6 @@ This is meaningful for XEmacs only.  The initial setting depends on
 XEmacs (@code{t} for XEmacs with dbm).
 If non-nil, Message-ID is controlled by dbm.
 
 XEmacs (@code{t} for XEmacs with dbm).
 If non-nil, Message-ID is controlled by dbm.
 
-@item elmo-passwd-alist-file-name
-@vindex elmo-passwd-alist-file-name
-The initial setting is @file{passwd}.
-This is the name of the file in which passwords are saved.
-@code{elmo-passwd-alist-save} saves current passwords to the file.
-
 @item elmo-nntp-list-folders-use-cache
 @vindex elmo-nntp-list-folders-use-cache
 The initial setting is 600 (in seconds).
 @item elmo-nntp-list-folders-use-cache
 @vindex elmo-nntp-list-folders-use-cache
 The initial setting is 600 (in seconds).
@@ -8446,14 +8714,96 @@ this value, display progress gauge.
 @end table
 
 
 @end table
 
 
-@node Hooks,  , Customizable Variables, Customization
+@node Hooks,  , Customizable Variables, Advanced Issues
 @section Hooks
 
 (Not yet written)
 
 
 @section Hooks
 
 (Not yet written)
 
 
-@node Migration, Terminology, Customization, Top
+@node Migration, Terminology, Advanced Issues, Top
 @chapter Switch from older version of Wanderlust
 @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
 
 
 @node Terminology, Mailing List, Migration, Top
@@ -8534,6 +8884,25 @@ in Japanese.}
 I would like to express my thanks to the members of the mailing list for
 valuable advice and many pieces of code they contributed.
 
 I would like to express my thanks to the members of the mailing list for
 valuable advice and many pieces of code they contributed.
 
+@subsection Archive
+
+You can read messages posted to the mailing list on the web or in
+NetNews.
+
+Read messages posted to @t{<wl@@lists.airs.net>}
+
+@example
+@uref{http://lists.airs.net/wl/archive/}
+@uref{news://gmane.mail.wanderlust.general.japanese@@news.gmane.org}
+@end example
+
+Read messages posted to @t{<wl-en@@lists.airs.net>}
+
+@example
+@uref{http://lists.airs.net/wl-en/archive/}
+@uref{news://gmane.mail.wanderlust.general@@news.gmane.org}
+@end example
+
 
 @node Addition, Index, Mailing List, Top
 @chapter Additional Information
 
 @node Addition, Index, Mailing List, Top
 @chapter Additional Information
@@ -8580,6 +8949,14 @@ valuable advice and many pieces of code they contributed.
       8/21    wl-addrmgr by Kitamoto-san.
      12/27    Released 2.8.1 stable.
 2002 12/11    Released 2.10.0 stable.
       8/21    wl-addrmgr by Kitamoto-san.
      12/27    Released 2.8.1 stable.
 2002 12/11    Released 2.10.0 stable.
+2003  7/05    Released 2.10.1 stable.
+      9/18    flag folder is added.
+      9/20    New msgdb format (modb-standard) by H.Murata-san.
+     10/20    Spam filter by H.Murata-san.
+2004  1/06    Background color of the demo become configurable.
+      2/09    'file' folder is added.
+      9/12    forwarded mark.
+              Default value of the mark strings are changed.
 @end example
 
 See @file{ChangeLog} for details.
 @end example
 
 See @file{ChangeLog} for details.