Synch up with main trunk.
[elisp/wanderlust.git] / doc / wl.texi
index 8f7e82b..55ae6d2 100644 (file)
@@ -119,6 +119,7 @@ This manual is for Wanderlust @value{VERSION}.
 * Disconnected Operations::  Off-Line management
 * Expire and Archive::       Automatic expiration and archiving of messages
 * Scoring::                  Score of the messages
+* Split messages::           Splitting messages
 * Address Book::             Management of Address Book
 * Customization::            Customizing Wanderlust
 * Terminology::              Terminologies
@@ -254,7 +255,7 @@ may help you.}.
 Recommended combination of APEL, FLIM and SEMI are following:
 
 @itemize @minus
-@item APEL 10.3, FLIM 1.14.3 and SEMI 1.14.3
+@item APEL 10.4, FLIM 1.14.4 and SEMI 1.14.4
 @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.2, Chao 1.14.1, REMI 1.14.2
-@item APEL 10.2, SLIM 1.14.3, EMY 1.13.9
+@item APEL 10.4, SLIM 1.14.9, SEMI 1.14.4
+@item APEL 10.4, CLIME 1.14.5, EMIKO 1.14.1
 @end itemize
 
 You have to re-install Wanderlust if you upgraded APEL, FLIM or SEMI.
@@ -530,7 +531,7 @@ This means it enables you to run Wanderlust as a default mail composer
  of Emacsen.
 
 It is effective only when your Emacs can define @code{mail-user-agent}.
-@xref{Mail Methods, , ,emacs-ja, The Emacs Editor}.
+@xref{Mail Methods, , ,emacs, The Emacs Editor}.
 
 @lisp
 @group
@@ -4052,6 +4053,14 @@ moves to the previous message.
 Scrolls the message forward.  When the bottom of the message is hit,
 moves to the next message.
 (@code{wl-message-wheel-up})
+
+@item D
+@kindex D (Message)
+@findex wl-message-delete-current-part
+Delete the part under cursor. In fact it appends modified message to
+the current folder then moves old one to trash folder. Therefore the
+message number will be changed.
+(@code{wl-message-delete-current-part})
 @end table
 
 @section Customizable Variables
@@ -4122,6 +4131,9 @@ Basically it is Emacs-standard mail mode.
 @node Editing Header, Editing Message Body, Usage of Draft Mode, Usage of Draft Mode
 @subsection Editing Message Header
 
+You can freely edit header region above @samp{--text follows this line--},
+until you invoke the sending operation.
+
 Initially, the cursor is at the @samp{To:} field.  Fill in recipients
 addresses.  @kbd{@key{TAB}} completes them.
 
@@ -4170,6 +4182,11 @@ the draft when it is prepared.
 @node Editing Message Body, Dynamical Message Re-arrangement, Editing Header, Usage of Draft Mode
 @subsection Editing Messages
 
+As a matter of course, editing message body can be performed in the same
+way as usual writing. You may write message body under
+@samp{--text follows this line--} line. (NOTE: Be sure to leave the line
+@samp{--text follows this line--} intact.)
+
 Multi-part editing utilize MIME edit mode of SEMI.  For procedures of
 editing, refer to respective documents.  @xref{MIME-Edit, , ,mime-ui-en,
 a MIME user interface for GNU Emacs}.
@@ -4457,7 +4474,10 @@ http://www.iecc.com/pop-before-smtp.html
 @item C-c C-y
 @kindex C-c C-y (Draft)
 @findex wl-draft-yank-original
-Cites the content of the current message buffer.
+Cites the content of the current message buffer (the part under cursor).
+If the region is active, cites the region (it affects only if
+@code{transient-mark-mode} (on GNU Emacs) or @code{zmacs-regions}
+(on XEmacs) is Non-nil).
 (@code{wl-draft-yank-original})
 
 @item C-c C-p
@@ -4784,6 +4804,12 @@ or @samp{Cc:} field, do not insert @samp{Bcc:} or @samp{Fcc:} field.
 The initial setting is @code{nil}.
 This is the SMTP server name for mail transmission.
 
+@item wl-smtp-posting-port
+@vindex wl-smtp-posting-port
+The initial setting is @code{nil}.
+This is the SMTP port number for mail transmission.
+If @code{nil}, default SMTP port number (25) is used.
+
 @item wl-smtp-posting-user
 @vindex wl-smtp-posting-user
 The initial setting is @code{nil}.
@@ -5805,7 +5831,7 @@ Needless to say, you can use your own function.
 @end table
 
 
-@node Scoring, Address Book, Expire and Archive, Top
+@node Scoring, Split messages, Expire and Archive, Top
 @chapter Score of the Messages
 @cindex Scoring
 @c @cindex Kill File
@@ -6303,7 +6329,105 @@ pop3                      N     E     E     E
 @end example
 
 
-@node Address Book, Customization, Scoring, Top
+@node Split messages, Address Book, Scoring, Top
+@chapter Message splitting
+@cindex Split messages
+
+You can use @code{elmo-split} to split message in folder
+@code{elmo-split-folder} a la @command{procmail} according to some
+specified rules. To use this feature, set as follows in your
+@file{~/.emacs} at first.
+
+@lisp
+(autoload 'elmo-split "elmo-split" "Split messages on the folder." t)
+@end lisp
+
+Then you can invoke @kbd{M-x elmo-split} to split messages according to
+@code{elmo-split-rule}. On the other hand, invoke @kbd{C-u M-x elmo-split}
+to do a rehearsal (do not split actually).
+
+We will describe how to specify the rule. First of all, see following
+example, please.
+
+@lisp
+@group
+(setq elmo-split-rule
+      ;; @r{Store messages from spammers into @samp{+junk}}
+      '(((or (address-equal from "i.am@@spammer")
+            (address-equal from "dull-work@@dull-boy")
+            (address-equal from "death-march@@software")
+            (address-equal from "ares@@aon.at")
+            (address-equal from "get-money@@richman"))
+        "+junk")
+       ;; @r{Store messages from mule mailing list into @samp{%mule}}
+       ((equal x-ml-name "mule") "%mule")
+       ;; @r{Store messages from wanderlust mailing list into @samp{%wanderlust}}
+       ;; @r{and continue evaluating following rules}
+       ((equal x-ml-name "wanderlust") "%wanderlust" continue)
+       ;; @r{Store messages from Yahoo user into @samp{+yahoo-@{username@}}}
+       ((match from "\\(.*\\)@@yahoo\\.com")
+        "+yahoo-\\1")
+       ;; @r{Store unmatched mails into @samp{+inbox}}
+       (t "+inbox")))
+@end group
+@end lisp
+
+The basic unit of the rule is a combination like
+
+@lisp
+(@samp{CONDITION} @samp{FOLDER} [@code{continue}])
+@end lisp
+
+The 1st element @samp{CONDITION} is a balanced expression (sexp). Its
+grammar will be explained below. The 2nd element @samp{FOLDER} is the
+name of the folder to split messages into. When the 3rd element
+@code{continue} is specified as symbol, evaluating rules is not stopped
+even when the condition is satisfied.
+
+The grammar for @samp{CONDITION} is as follows. See example above to
+learn how to write the condition practically.
+
+@enumerate
+@item
+Functions which accept argument @samp{FIELD-NAME} and @samp{VALUE}.
+(@samp{FIELD-NAME} is a symbol that describes the field name)
+
+@table @code
+@item @code{equal}
+True if the field value equals to @samp{VALUE}.
+Case of the letters are ignored.
+@item @code{match}
+True if the field value matches to VALUE.
+@samp{VALUE} can contain @code{\&} and @code{\N} which will substitute
+from matching @code{\(\)} patterns in the previous @samp{VALUE}.
+@item @code{address-equal}
+True if one of the addresses in the field equals to
+@samp{VALUE}. Case of the letters are ignored.
+@item @code{address-match}
+True if one of the addresses in the field matches to
+@samp{VALUE}.
+@samp{VALUE} can contain @code{\&} and @code{\N} which will substitute
+from matching @code{\(\)} patterns in the previous @samp{VALUE}.
+@end table
+
+@item
+Functions which accept any number of arguments.
+
+@table @code
+@item @code{or}
+True if one of the argument returns true.
+@item @code{and}
+True if all of the arguments return true.
+@end table
+
+@item
+A symbol.
+
+When a symbol is specified, it is evaluated.
+@end enumerate
+
+
+@node Address Book, Customization, Split messages, Top
 @chapter Address Book
 @cindex Address Book