Import 1.x.
[elisp/wanderlust.git] / doc / wl.texi
1 \input texinfo @c -*-texinfo -*- coding: iso-2022-jp -*-
2 @c %**start of header
3 @setfilename wl.info
4 @settitle Wanderlust -- Yet Another Message Interface On Emacsen --
5 @c @documentlanguage en
6 @c %**end of header
7 @c texinfo of Wanderlust
8 @set Time-stamp: <2000-04-03 14:30:38 teranisi>
9 @set version 1.1.0
10 @synindex pg cp
11 @finalout
12
13 @direntry
14 * Wanderlust: (wl).         Yet Another Message Interface On Emacsen
15 @end direntry
16
17 @c permissions text appears in an Info file before the first node.
18 @ifinfo
19 This file documents Wanderlust,
20 Yet another message interface on Emacsen.
21
22 Copyright @copyright{} 1998, 1999, 2000 @w{Yuuichi Teranishi}.
23 @c Copyright @copyright{} 1998, 1999, 2000 @w{Yuuichi Teranishi}, @*
24 @c @w{Fujikazu Okunishi}, @w{Masahiro Murata},
25 @c @w{Kenichi Okada}, @w{Kaoru Takahashi}, @w{Bun Mizuhara}
26 and @w{Masayuki Osada}.
27
28 This edition is for Wanderlust version @value{version}.
29
30 Permission is granted to make and distribute verbatim copies of
31 this manual provided the copyright notice and this permission notice
32 are preserved on all copies.
33
34 @ignore
35 Permission is granted to process this file through TeX and print the
36 results, provided the printed document carries copying permission
37 notice identical to this one except for the removal of this paragraph
38 (this paragraph not being relevant to the printed manual).
39
40 @end ignore
41 Permission is granted to copy and distribute modified versions of this
42 manual under the conditions for verbatim copying, provided that the entire
43 resulting derived work is distributed under the terms of a permission
44 notice identical to this one.
45
46 Permission is granted to copy and distribute translations of this manual
47 into another language, under the above conditions for modified versions.
48
49 @end ifinfo
50
51 @titlepage
52 @sp 10
53 @title Wanderlust User's Manual (ver. @value{version})
54 @author Yuuichi Teranishi
55 @author Fujikazu Okunishi
56 @author Masahiro Murata
57 @author Kenichi Okada
58 @author Kaoru Takahashi
59 @author Bun Mizuhara
60 @author Masayuki Osada
61 @page
62
63 @vskip 0pt plus 1filll
64 Copyright @copyright{} 1998, 1999, 2000 @w{Yuuichi Teranishi}.
65 @c Copyright @copyright{} 1998, 1999, 2000 @w{Yuuichi Teranishi}, @*
66 @c @w{Fujikazu Okunishi}, @w{Masahiro Murata},
67 @c @w{Kenichi Okada}, @w{Kaoru Takahashi}, 
68 @c @w{Bun Mizuhara} and @w {Masayuki Osada}
69
70 This manual is for Wanderlust version @value{version}.
71
72 Permission is granted to make and distribute verbatim copies of
73 this manual provided the copyright notice and this permission notice
74 are preserved on all copies.
75
76 Permission is granted to copy and distribute modified versions of this
77 manual under the conditions for verbatim copying, provided that the entire
78 resulting derived work is distributed under the terms of a permission
79 notice identical to this one.
80
81 Permission is granted to copy and distribute translations of this manual
82 into another language, under the above conditions for modified versions.
83
84 @end titlepage
85
86
87 @c
88 @c  Top
89 @c 
90 @ifinfo
91 @node Top, Introduction, (dir), (dir)
92 @top Wanderlust User's Manual
93
94 @flushright
95 Yuuichi Teranishi
96 Fujikazu Okunishi
97 Masahiro Murata
98 Kenichi Okada
99 Kaoru Takahashi
100 Bun Mizuhara
101 Masayuki Osada
102 Last Modified@value{Time-stamp:}
103 @end flushright
104
105 This manual is for Wanderlust@value{version}.
106
107 @end ifinfo
108
109 @menu
110 * Introduction::             Read this first.
111 * Start Me Up::              Invoking Wanderlust.
112 * Folders::                  How to specify folders.
113 * Folder::                   Selecting and editing folders.
114 * Summary::                  Reading and refiling messages.
115 * Message::                  Saving and playing MIME multipart entities.
116 * Draft::                    Draft buffer, sending mail and news.
117 * Disconnected Operations::  Off-Line management
118 * Expire and Archive::       Automatic expiration and archiving of messages.
119 * Scoring::                  Score of the messages.
120 * Customization::            Customizing Wanderlust.
121 * Mailing List::             Wanderlust mailing list
122 * Addition::                 Additional Information
123 * Index::                    Key index.
124 @end menu
125
126
127 @c
128 @c  Introduction
129 @c 
130 @node Introduction, Start Me Up, Top, Top
131 @chapter Introduction of Wanderlust
132 @cindex Introduction
133
134 Wanderlust is an mail/news management system on Emacsen.
135 It supports IMAP4rev1(RFC2060), NNTP, POP and local message files.
136
137 The main features of Wanderlust:
138
139 @itemize @minus
140 @item Pure elisp implementation.
141 @item Supports IMAP4rev1, NNTP, POP(POP3/APOP), MH and Maildir format.
142 @item Unified access method to messages based on Mew-like Folder Specification.
143 @item Mew-like Key-bind and mark handling.
144 @item Manages unread messages.
145 @item Interactive thread display.
146 @item Folder Mode shows the list of subscribed folders.
147 @item Message Cache, Disconnected Operation (Read Only).
148 @item MH-like FCC. (FCC: %Backup and FCC: $Backup is allowed).
149 @item MIME compliant (by SEMI or tm).
150 @item Transmission of news and mail are unified by Message transmitting draft.
151 @item Graphical list of folders (XEmacs).
152 @item View a part of message without retrieving the whole message (IMAP4).
153 @item Server-side message look up (IMAP4). Multi-byte characters are allowed.
154 @item Virtual Folders.
155 @item Supports compressed folder using common archiving utilities.
156 @item Old articles in folders are automatically removed/archived (Expiration).
157 @item Automatic re-file.
158 @item Template function makes it convenient to send fixed form messages.
159 @end itemize
160
161 Wanderlust is supposed to run on Mules based on Emacs 19.28, 19.34, 
162 Emacs 20.2 or later, XEmacs 20.4 or later, Meadow 1.00 or later(on MS Windows),
163 Mule for Windows v1.22 (on MS Windows), NTEmacs(Windows NT).
164 PMMule on OS/2 is also supported. Wanderlust runs even on Nemacs 3.3.2
165 based on Emacs 18.55, 18.59 (with limited functionality).
166
167 IMAP4 connectivity with UW imapd 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.7a,
168 Cyrus imapd 1.4, Cyrus imapd 1.5.19, AIR MAIL(AIRCimapd release 2.00)
169 and ExpressMail are confirmed to work with Wanderlust.
170
171 @c
172 @c  Start Me Up
173 @c 
174 @node Start Me Up, Folders, Introduction, Top
175 @chapter Start up Wanderlust
176 @cindex Start up
177
178
179 The necessary procedure for starting Wanderlust is explained in steps here.
180
181 (Of course, you need a mail/news readable environment in advance)
182
183 @menu
184 * MIME Modules::      Installing the MIME modules.
185 * Download::          Download and extract the packages.
186 * Install::           Byte-compile and install.
187 * Minimal Settings::  @file{.emacs} setup.
188 * Mail Addresses::    Address book definition.
189 * Folder Definition:: Folder definition.
190 * Start Wanderlust::  Starting Wanderlust
191 @end menu
192
193
194 @node MIME Modules, Download, Start Me Up, Start Me Up
195 @section Installing MIME modules
196 @cindex MIME modules
197 @pindex APEL
198 @pindex FLIM
199 @pindex SEMI
200 @pindex tm
201
202 SEMI or tm must be installed to make Wanderlust work correctly.
203
204 SEMI does not run on Emacs19.28 or earlier
205 @footnote{SEMI runs on Emacs 19.34. @*
206 @samp{http://www.jpl.org/elips/INSTALL-SEMI-ja.html} describes how to.},
207 so you must install tm, the predecessor of SEMI. (tm version 8.7 or later
208 is needed.)
209
210 However, SEMI is recommended because of its wider functionality.
211 Partial download function in IMAP4 is enabled only when SEMI is installed.
212
213 Refer to the documents of each package for detailed installation procedure.
214
215 SEMI and tm can be downloaded from these sites:
216
217 @example
218 SEMI: ftp://ftp.m17n.org/mule/semi/
219 tm:   http://cvs.m17n.org/tomo/comp/emacsen/tm/tm-8/
220 @end example
221
222 You need packages named APEL and FLIM to use SEMI.
223 You can download FLIM and APEL from following URLs.
224
225 @example
226 FLIM:     ftp://ftp.m17n.org/mule/flim/
227 APEL:     ftp://ftp.m17n.org/mule/apel/
228 @end example
229
230 You have to install APEL, FLIM and SEMI in this order.
231 Generally @samp{make install} will do the job.
232 (In XEmacs 21, @samp{make install-package}.)
233
234 Recommended combination of APEL, FLIM and SEMI are:
235
236 @itemize @minus
237 @item APEL 10.2, FLIM 1.12.7 and SEMI 1.13.4
238 @item APEL 10.2, FLIM 1.13.2 and SEMI 1.13.7
239 @end itemize
240
241 Combination of APEL 10.2 and FLIM 1.12.7 makes following error
242 while compiling FLIM 1.12.7.
243
244 @example
245 Please install latest APEL 7.3 or later.
246 @end example
247
248 In this case, please comment out following lines in FLIM-CFG.
249
250 @example
251 (or (fboundp 'write-region-as-binary)
252     (error "Please install latest APEL 7.3 or later."))
253 (or (fboundp 'insert-file-contents-as-binary)
254     (error "Please install latest APEL 7.3 or later."))
255 @end example
256
257 You can also use many other FLIM/SEMI variants. Combination of the
258 latest versions should work.  For example, following combination is
259 confirmed to work.
260
261 @itemize @minus
262 @item APEL 10.2, Chao 1.14.1 and REMI 1.14.1
263 @end itemize
264
265 @c You have to re-install Wanderlust
266 @c if you upgraded APEL, FLIM, SEMI or tm.
267
268 @node Download, Install, MIME Modules, Start Me Up
269 @section Download and Extract the Package
270 @cindex Download
271
272 You can download Wanderlust package from following sites:
273
274 Original site:
275 @example
276 ftp://ftp.gohome.org/wl/
277 @end example
278
279 Mirrored ftp/http sites:
280
281 @example
282 ftp://ftp.jaist.ac.jp/pub/GNU/elisp/ftp.gohome.org/wl/
283 ftp://daidai.kuis.kyoto-u.ac.jp/pub/mirror/ftp.gohome.org/pub/elisp/wl/
284 http://www.jpl.org/elips/
285 http://www.ring.gr.jp/archives/text/elisp/wl/
286 ftp://ftp.ring.gr.jp/pub/text/elisp/wl/
287 ftp://opaopa.org/pub/mirror/elisp/wl/
288 @end example
289
290 Extract the obtained package to your working directory:
291
292 @example
293 % cd ~/work
294 % tar zxvf wl-(@var{version}).tar.gz
295 % cd wl-(@var{version})
296 @end example
297
298 @subsection To use SSL (Secure Socket Layer)
299
300 SSL (Secure Socket Layer) can be used for 
301 SMTP, IMAP, NNTP and POP connections in Wanderlust.
302
303 There are two ways to use SSL. One is to start SSL negotiation just after
304 the connection establishment (generic way). 
305 The other one is to start SSL negotiation by invoking STARTTLS command in
306 the each session.
307
308 To use the formar SSL (generic SSL), you must install @file{ssl.el} in the 
309 @file{utils} directory. OpenSSL command @file{openssl} is also required
310 to use @file{ssl.el}. You must set PATH to the directory that OpenSSL
311 commands are installed.
312
313 To use the latter SSL(STARTTLS), you must install starttls package in
314 addition to above. 
315 You can download starttls package from the following site.
316
317 @example
318 ftp://opaopa.org/pub/elisp/
319 @end example
320
321 @node Install, Minimal Settings, Download, Start Me Up
322 @section Byte-compile and install
323 @cindex Byte-compile
324 @cindex Compile
325 @cindex Install
326 @cindex Makefile
327 @cindex Make
328
329 @subsection Installation
330
331 Edit @code{LISPDIR} and @code{EMACS} in @file{Makefile}.
332 Set the Emacs's command name to @code{EMACS}.
333 Set package installation directory to @code{LISPDIR}.
334 Then, please execute following commands.
335
336 @example
337 % make
338 % make install
339 @end example
340
341 Destination directory is auto-probed if you leave @code{LISPDIR}
342 in @file{Makefile} as is. (That is, leave it as NONE)
343
344 If you are using an Emacs variant which does not merge specified directory
345 to load-path (e.g. Mule 2.3 based on Emacs 19.28), 
346 then you will see the error message:
347
348 @example
349 Cannot open load file: mime-setup
350 @end example
351
352 @noindent
353 In this case, either add destination directories of custom, apel, flim and semi
354 to environmental variable EMACSLOADPATH, or define load-path in @file{WL-CFG}
355 in extracted directory.
356
357 If you want to use BBDB, then the necessary modules are byte-compiled and
358 installed when BBDB directory is added to load-path.
359 @xref{BBDB}.
360
361 @subsection WL-CFG
362
363 Contents of the file @file{WL-CFG} is loaded under installation if a file
364 with that name exists in extracted directory. You can use @file{WL-CFG} to
365 configure load-path to extra packages such as SEMI if needed.
366
367 If you want to specify the install directory of Wanderlust related
368 files, then set following variables in @file{WL-CFG}
369
370 @table @code
371 @item WL_PREFIX
372 A directory to install WL modules.
373 This directory is relative directory from @code{LISPDIR}.
374 WL modules include @file{wl*.el}, @file{wl*.elc} files.
375 @c  Modules under the directory @file{util/} are also installed if 
376 @c it detected as necessary.
377
378 @item ELMO_PREFIX
379 A directory to install ELMO modules.
380 This directory is relative directory from @code{LISPDIR}.
381 ELMO modules include @file{elmo*.el}, @file{elmo*.elc} files.
382 @c  @file{utf7.el}, @file{utf7.elc} are also included in the ELMO.
383 @end table
384   
385 @noindent
386 Default value of @code{WL_PREFIX} and @code{ELMO_PREFIX} are @file{wl}.
387
388 If you want to install ELMO related files under a sub-directory
389 such as "elmo" then add following to @file{WL-CFG}:
390
391 @lisp
392 (setq ELMO_PREFIX "elmo")
393 @end lisp
394
395 @noindent
396
397 @subsection Install as a XEmacs package
398 @cindex XEmacs package
399 @cindex XEmacs package install
400 @cindex Package, XEmacs
401 @cindex Package install, XEmacs
402 @c @cindex install-package
403
404 It is possible to install Wanderlust as one of packages of XEmacs (21.0
405 or greater). Configuration for autoload and icon-path in local
406 @file{.emacs} files are no longer necessary, if you install Wanderlust
407 as a package.
408
409 Follow the next example to install Wanderlust as an XEmacs package.
410
411 @example
412 % vi Makefile
413 % make package
414 % make install-package
415 @end example
416
417 package directory is auto-probed, if SEMI is installed.
418 (you can also specify it with @code{PACKAGEDIR} in @file{Makefile})
419
420 @subsection Run in place
421
422 If wl and elmo directories are defined in load-path, then byte-compilation
423 and installation are not necessary to start Wanderlust. For example,
424 if package is extracted in @file{~/work}, Wanderlust can be invoked with
425 following setting in @file{.emacs}.
426
427 @lisp
428 (add-to-list 'load-path "~/work/wl-(@var{version})")
429 (add-to-list 'load-path "~/work/wl-(@var{version})/elmo")
430 @end lisp
431
432 @node Minimal Settings, Mail Addresses, Install, Start Me Up
433 @section Set up .emacs
434 @cindex Minimal Settings
435 @cindex Settings
436 @cindex Configuration
437 @cindex .emacs
438 @cindex .wl
439
440 The Wanderlust package contains two module groups.
441
442 @table @samp
443 @item ELMO (elmo-*.el)
444 These modules show everything as folders. This is the back-end for Wanderlust.
445 @item WL (wl-*.el)
446 These modules controls the behavior of main body of Wanderlust.
447 They are also the front-end for ELMO.
448 @end table
449
450 You can customize the  behavior of Wanderlust by changing the value
451 of environmental variables which begins with @code{elmo-*} and @code{wl-*}.
452
453 The minimal requirement for settings is as the following.
454
455 @lisp
456 ;; The setting to use SEMI/tm
457 (load "mime-setup")
458
459 ;; autoload configuration
460 ;; (These are not required if Wanderlust is installed as XEmacs package)
461 (autoload 'wl "wl" "Wanderlust" t)
462 (autoload 'wl-draft "wl-draft" "Write draft with Wanderlust." t)
463
464 ;; Directory where icons are placed (XEmacs Only). Default value is nil.
465 ;; (This is not required if Wanderlust is installed as XEmacs package)
466 (setq wl-icon-dir "~/work/wl/etc")
467
468 ;; SMTP server for mail posting. Default: "localhost"
469 (setq wl-smtp-posting-server "your.smtp.server.com")
470 ;; NNTP server for news posting. Default: "localhost"
471 (setq wl-nntp-posting-server "your.nntp.server.com")
472 @end lisp
473
474 @file{~/.wl} is automatically loaded when Wanderlust starts up (if such a
475 file exists). So it is convenient to gather Wanderlust specific settings
476 in @file{~/.wl}. Settings for "face" must be written in @file{~/.wl},
477 because you can't write them in @file{.emacs}
478 (if you write it to @file{.emacs}, you'll get an error).
479 @xref{Highlights}.
480
481 All above described settings except (load "mime-setup") can be written in
482 @file{~/.wl}).
483
484 @subsection mail-user-agent
485 @cindex Default Mailer
486 @cindex Mailer, Default
487 @vindex mail-user-agent
488 @findex compose-mail
489
490 If you write following setting in you @file{.emacs}, you can
491 start Wanderlust draft mode by typing @kbd{C-x m} (@code{compose-mail}). 
492 This means it enables you to run Wanderlust as a default mail composer
493  of Emacs.
494
495 It is effective only when your Emacs can define @code{mail-user-agent}.
496 @c @xref{Mail Methods, , ,emacs}.
497
498 @lisp
499 (autoload 'wl-user-agent-compose "wl-draft" nil t)
500 (if (boundp 'mail-user-agent)
501     (setq mail-user-agent 'wl-user-agent))
502 (if (fboundp 'define-mail-user-agent)
503     (define-mail-user-agent
504       'wl-user-agent
505       'wl-user-agent-compose
506       'wl-draft-send
507       'wl-draft-kill
508       'mail-send-hook))
509 @end lisp
510
511
512 @node Mail Addresses, Folder Definition, Minimal Settings, Start Me Up
513 @section Address book
514 @cindex Address book Definition
515 @cindex .addresses
516 @cindex Alias, Address
517
518 The file @file{~/.addresses} is a simple address book for Wanderlust.
519 Make address file @file{~/.addresses}, and edit to suit your requirement.
520
521 The data written in @file{~/.addresses} are used for address completion
522 under draft editing mode. Furthermore, they are used when showing names
523 in summary display mode. You can safely skip this section, if you don't
524 want to customize address completion and summary display.
525 It is possible to add/change/remove addresses from @file{~/.addresses} in
526 summary buffer after Wanderlust is invoked. @refill
527
528 The format is very simple. Like this. @refill
529
530 @example
531 #
532 # @r{Lines begin with @samp{#} are comment.}
533 # @r{Empty lines are ignored}
534 #
535 # @r{Format of each line:}
536 # @r{email-address  ``nickname'' ``realname''}
537 #
538 teranisi@@gohome.org            "Yuuichi"      "Yuuichi Teranishi"
539 foo@@bar.gohome.org             "Mr. Foo"    "John Foo"
540 bar@@foo.gohome.org             "Mr. Bar"    "Michael Bar"
541 @end example
542
543 @noindent
544
545 One line defines one persons description.
546
547 Actually, in default setup, "nickname" is used in summary-mode and "real name"
548 is used in draft preparation mode. This behavior is better understood if you
549 try it and confirmed the function first. You can write and try a small
550 definition, so you will know the idea of the address book before writing a big
551 one.
552
553 And, if MH alias file is specified in variable @code{wl-alias-file},
554 it is used as an address information in the draft preparation mode.
555
556 @node Folder Definition, Start Wanderlust, Mail Addresses, Start Me Up
557 @section Folder Definition
558 @cindex Folder Definition
559 @cindex .folders
560
561 Define the folders you want to subscribe in file @file{~/.folders}.
562 The contents written in @file{~/.folders} become the folders which
563 you subscribe to as it is.
564
565 You can skip this section because it is possible to add/edit the
566 subscribe folders from the buffer for list of folders.
567
568 Format for @file{~/.folders} is very simple. Here is an example:
569
570 @example
571 #
572 # @r{Lines begin with @samp{#} are comment.}
573 # @r{Empty lines are ignored}
574 #
575 # @r{folder name}  "@r{folder nickname}"
576 # @r{(nicknames are not necessary)}
577 #
578 %inbox  "Inbox"
579 +trash  "Trash"
580 +draft  "Drafts"
581 %#mh/Backup@@my.imap.server.com "Sent"
582 # Folder Group
583 Emacsen@{
584     %#mh/spool/wl            "Wanderlust ML"
585     %#mh/spool/elips         "ELIPS ML"
586     %#mh/spool/tm-ja         "tm Japanese ML"
587     %#mh/spool/xemacs-beta   "XEmacs beta"
588     -fj.news.reader.gnus@@other.nntp.server.com "Gnus Net news"
589     *-fj.editor.xemacs,-fj.editor.mule,-fj.editor.emacs "fj's Emacsen"
590 @}
591 #
592 # @r{If folder name ends with @samp{/}, that means an `access group',}
593 # @r{all subfolders automatically included in one folder group.}
594 #
595 %#mh/expire@@localhost /
596 # @r{All MH folders are included in one folder group.}
597 + /
598 @end example
599
600 Each line contains one folder you want to read. The definition of folders
601 will be explained in detail in the next section.
602
603 The part surrounded by @samp{@var{group name}@{} and @samp{@}} will become one folder group.
604 One folder group is treated as a directory which can bed opened and closed in
605 folder mode. It is convenient for collecting some folders and putting them
606 in order.
607
608 Please note that @samp{@var{group name}@{} and @samp{@}} occupies one
609 line and you have to write it that way (It is because the parser sucks).
610
611 There are two types of groups. One is like @samp{Emacsen} from above
612 example which the user chooses his favorite folders as a group.
613
614 The other one is @dfn{access group} like @samp{+} from above example.
615 It makes all the sub-folders in a folder to a group.
616 (It differs from the type of the folder. For example, @samp{+} makes entire
617  MH sub-directories to one group)
618
619 This behavior is better understood if you try it and confirmed the function
620 first. You can write and try a small folder definition, so you will know the
621 idea of the folder function before writing the real one.
622
623 @node Start Wanderlust,  , Folder Definition, Start Me Up
624 @section Start Wanderlust
625 @cindex Start Wanderlust
626
627 If installation and configuration worked well, you can invoke Wanderlust by
628 typing following command in Emacs.
629
630 @example
631 M-x wl
632 @end example
633
634 @noindent
635
636 After initialization, Folder Mode which shows the list of folders will appear.
637 That means the folders you defined in the @file{~/.folders} are listed
638 If you start Wanderlust with prefix argument like @kbd{C-u M-x wl}, you
639 can skip folder checking.
640
641 @c
642 @c  Folders
643 @c
644 @node Folders, Folder, Start Me Up, Top
645 @chapter Wanderlust's folders 
646 @cindex Folder Type
647
648 This chapter describes the folder types which Wanderlust is able to handle.
649
650 Wanderlust uses ELMO as it's interface, so every folder types supported
651 by ELMO is usable in Wanderlust.
652
653 As of version @value{version}, 10 types of folders are predefined. These are
654 IMAP, NNTP, LocalDir(MH), News Spool, POP, Archive, Multi, Filter, Pipe
655 and Internal folder types.
656
657 @menu
658 * IMAP Folder::              @samp{%} -- IMAP folder
659 * NNTP Folder::              @samp{-} -- NNTP folder
660 * MH Folder::                @samp{+} -- MH folder
661 * Maildir Folder::           @samp{.} -- Maildir folder
662 * News Spool Folder::        @samp{=} -- News spool folder
663 * Archive Folder::           @samp{$} -- Archive folder
664 * POP Folder::               @samp{&} -- POP folder
665 * Multi Folder::             @samp{*} -- Multi folder
666 * Filter Folder::            @samp{/} -- Filter folder
667 * Pipe Folder::              @samp{|} -- Pipe folder
668 * Internal Folder::          @samp{'} -- Internal folder
669 @end menu
670
671
672 @node IMAP Folder, NNTP Folder, Folders, Folders
673 @section IMAP Folder
674 @cindex IMAP Folder
675 @cindex @samp{%}
676 @cindex RFC 2060
677 @cindex IMAP4rev1
678
679 A folder to access e-mails via IMAP4rev1 protocol (RFC 2060).
680
681 @example
682 Format: '%' 'IMAP mailbox'[':' 'username' ['/' 'authenticate-type']]['@@' 'hostname'][':' 'port']['!']
683
684 You can specify
685 "auth" (encoded password transmission), "cram-md5" (cram-md5 authentication)
686 and "login" (plain password transmission) as authenticate-type.
687 (To use cram-md5 authentication, you must install utils/sasl package.)
688
689 default:
690
691 username  -> The value of @code{elmo-default-imap4-user}.
692              Initial setting is `USER' environment variable or
693              `LOGNAME' environment variable or return value of
694              (user-login-name).
695 authenticate-type -> The value of @code{elmo-default-imap4-authenticate-type}.
696              Initial setting is "auth".
697 hostname  -> The value of @code{elmo-default-imap4-server}.
698              Initial setting is "localhost".
699 port -> The value of @code{elmo-default-imap4-port}.
700              Initial setting is 143.
701
702 You can omit the hostname from folder names if you set
703 @code{elmo-default-imap4-server} as your main IMAP server.
704 For example, you can specify a folder as @samp{foo%imap@@geteway} even
705 if you have to go through a firewall.
706
707 SSL (Secure Socket Layer) connection will be used if a folder name
708 ends with '!'. Or, if the value of @code{elmo-default-imap4-ssl} is non-nil,
709 SSL will be the default connection.
710 If a folder name ends with '!!', STARTTLS connection will be established.
711 if the value of @code{elmo-default-imap4-ssl} is 'starttls,
712 STARTTLS will be the default connection.
713
714 If you specify "auth" or "cram-md5" as authentication method, the password
715 is sent in encoded form. But, if your server is unable to receive an encoded
716 password, authentication will fall back to "login" (that is, sending password
717 in raw format) after confirmation to user. If @code{elmo-imap4-force-login}
718 is non-nil, authentication will fall back to "login" without confirmation
719 (default value is nil).
720
721 Example: %inbox     -> IMAP mailbox "inbox"
722          %#mh/inbox -> IMAP mailbox "#mh/inbox"
723
724          %inbox:hoge -> IMAP mailbox "inbox" of user "hoge".
725          %inbox:hoge/login@@server1
726                      -> server1's IMAP mailbox "inbox"
727                         of user "hoge", with plain password authentication
728                         ("login").
729 @end example
730
731 @subsection International mailbox names (Modified UTF7)
732
733 You can use international mailbox names in 'IMAP mailbox' part, if you
734 are using Emacs which can treat unicode and
735 @code{elmo-imap4-use-modified-utf7} is set to non-nil value (default
736 value is nil).
737
738 Currently, following Emacsen can treat unicode.
739
740 @itemize @bullet
741 @item Emacs 20.3 or later + Mule-UCS
742
743 If you installed Mule-UCS package, Emacs can treat unicode.
744 You can obtain Mule-UCS package from following URL.
745
746 @example
747 ftp://ftp.m17n.org/pub/mule/Mule-UCS/
748 @end example
749
750 @item XEmacs 21.2.13 or later + ucs-conv package
751
752 By default, XEmacs 21 cannot treat unicodes, but if you installed
753 ucs-conv package, it can.
754 You can obtain ucs-conv package from following anonymous CVS.
755
756 @example
757 :pserver:anonymous@@cvs.m17n.org:/cvs/root
758 Password: NULL (Just enter return key)
759 @end example
760
761 You also need utf7 conversion programs, u7tou8 and u8tou7 to use international
762 mailbox name in the current XEmacs. 
763 These programs are included in the UTF7 package which can be obtained 
764 from following URL.
765
766 @example
767 ftp://ftp.ifcss.org/pub/software/unix/convert/utf7.tar.gz
768 @end example
769 @end itemize
770
771 @node NNTP Folder, MH Folder, IMAP Folder, Folders
772 @section NNTP Folder
773 @cindex NNTP Folder
774 @cindex @samp{-}
775
776 A folder to access USENET news via NNTP protocol (RFC 977).
777 One newsgroup is treated as a folder.
778
779 @example
780 Format: '-' 'newsgroup'[[':' 'username']['@@' 'hostname'][':' 'port']]['!']
781
782 default:
783 hostname  -> The value of @code{elmo-default-nntp-server}.
784              Initial setting is "localhost".
785 username  -> The value of @code{elmo-default-nntp-user}. 
786              Initial setting is nil.
787 port      -> The value of @code{elmo-default-nntp-port}.
788              Initial setting is 119.
789
790 AUTHINFO is used as authentication method if the username is non-nil.
791 SSL will be default method if @code{elmo-default-nntp-ssl} is non-nil even
792 if the folder name doesn't end with '!'
793 If a folder name ends with '!!', STARTTLS connection will be established.
794 if the value of @code{elmo-default-nntp-ssl} is 'starttls,
795 STARTTLS will be the default connection.
796
797 Example: -fj.rec.tv            -> Newsgroup `fj.rec.tv'.
798          -fj.rec.tv@@newsserver -> Newsgroup `fj.rec.tv' on newsserver.
799 @end example
800
801 @node MH Folder, Maildir Folder, NNTP Folder, Folders
802 @section MH Folder
803 @cindex MH Folder
804 @cindex @samp{+}
805 @pindex MH
806
807 A folder to access MH format mail (1 file is 1 mail).
808
809 @example
810 Format: '+' 'directory-name'
811
812 Normally, directory paths are relative to variable
813 @code{elmo-localdir-folder-path} (default is @file{~/Mail}), but if it
814 starts with @samp{/} or @samp{~}, then it is treated as an absolute path
815 (this is also true for drive-letters).
816
817 Message number is used for the name of the message file.
818
819 Example: +inbox         -> "~/Mail/inbox"
820          +from/teranisi -> "~/Mail/from/teranisi"
821          +~/test        -> "~/test"
822 @end example
823
824 @node Maildir Folder, News Spool Folder, MH Folder, Folders
825 @section Maildir Folder
826 @cindex Maildir Folder
827 @cindex @samp{.}
828 @pindex Maildir
829
830 A folder to access to Maildir format (1 file is 1 mail).
831
832 @example
833 Format: '.' 'directory-name'
834
835 Normally, directory paths are relative to variable
836 @code{elmo-maildir-folder-path} (default is @file{~/Maildir}), but if it
837 starts with @samp{/} or @samp{~}, then it is treated as an absolute path
838 (this is also true for drive-letters).
839
840 Maildir contains @file{cur}, @file{new} and @file{tmp} subdirectories.
841 Messages are contained in the @file{cur} directory.  All
842 message files in the @file{new} directory are moved to @file{cur}
843 directory when you access to the folder. All message files contained in
844 the @file{tmp} directory and not accessed for 36 hours are deleted.
845
846 These behaviors are defined the @samp{http://cr.yp.to/proto/maildir.html}.
847
848 Example: .              -> "~/Maildir"
849          .inbox         -> "~/Maildir/inbox"
850          .from/teranisi -> "~/Maildir/from/teranisi"
851          .~/test        -> "~/test"
852 @end example
853
854 @node News Spool Folder, Archive Folder, Maildir Folder, Folders
855 @section News Spool Folder
856 @cindex News spool Folder
857 @cindex @samp{=}
858 @pindex gnspool
859
860 This folder handles locally saved news articles which are proposed by Mew/IM.
861 You can also read articles directly from a spool-file which is retrieved
862 by an utility like gnspool.
863
864 @example
865 Format: '=' 'directory-name'
866
867 directory-name is sub-directory to the directory defined by variable
868 @code{elmo-localnews-folder-path} (default is "~/News")
869 You can use @samp{.} as directory delimiter as well as @samp{/}.
870
871 Example: =fj/os/os2         -> "~/News/fj/os/os2"
872          =fj.os.bsd.freebsd -> "~/News/fj/os/bsd/freebsd"
873 @end example
874
875 @node Archive Folder, POP Folder, News Spool Folder, Folders
876 @section Archive Folder
877 @cindex Archive Folder
878 @cindex @samp{$}
879 @c @pindex ange-ftp
880
881 This method can handle archive files, which are compressed by utilities
882 such as Info-ZIP or LHA, as one folder.
883
884 @example
885 Format: '$' 'path-name' [';' archiver-type ';' prefix]
886
887 `path-name' is the relative path from @code{elmo-archive-folder-path}
888 (initial setting is @file{~/Mail}).
889 If path-name begins with @samp{/} or @samp{~} or `drive-letter of DOS',
890 path-name is treated as absolute path.
891 ange-ftp format is also permitted under the environment of ange-ftp, efs.
892
893 The actual file name of the archive folder is 
894 @code{elmo-archive-basename}(Initial setting is "elmo-archive")
895 under the path-name. If a file named path-name exists, it is treated as
896 folder. The suffix is automatically decided for archiver-type.
897
898 If `archiver-type' is omitted, @code{elmo-archive-default-type}
899 (Initial setting is 'zip) is referred.
900
901 `prefix' specifies the internal directory structure of the archive.
902 For example, if the ML server is fml, @file{msend.tar.gz} has a structure like 
903 @file{spool/1}, so you have to specify "spool" as `prefix'.
904
905 Example: $teranisi         -> "~/Mail/teranisi/elmo-archive.zip"
906          $bsd/freebsd;lha  -> "~/Mail/bsd/freebsd/elmo-archive.lzh"
907          $/foo@@server:~/bar;zoo     -> "~/bar/elmo-archive.zoo" on ftp server
908          $d:/msend.tar.gz;tgz;spool -> "d:/msend.tar.gz"
909 @end example
910
911 @menu
912 * Archiver::     Archivers supported
913 * Archive Tips:: TIPS
914 * Archive Vars:: Customization
915 @end menu
916
917
918 @node Archiver, Archive Tips, Archive Folder, Archive Folder
919 @subsection Supported Archives
920 @cindex Archiver
921 @pindex LHA
922 @pindex Info-ZIP
923 @pindex UNZIP
924 @pindex ZOO
925 @pindex RAR
926 @pindex TAR
927 @pindex GNU TAR
928
929 By default, following archives are supported.
930
931 @example
932         LHA, Info-ZIP/UNZIP, ZOO, RAR  ;; full-access
933         GNU TAR('tgz, 'tar)            ;; read-only
934 @end example
935
936 If your archiver can include multiple files in one archive, you have a
937 possibility use it as an archiver of Wanderlust (ARJ/UNARJ, ARC is one
938 of the candidate. TAR is supported read-only because it cannot delete
939 file in the archive ('mv)).
940
941 gzip, bzip, bzip2 cannot be used as an archiver of Wanderlust because
942 they cannot include multiple files. Archivers that cannot extract files
943 to standard output are also not supported.
944
945 @subsection OS specific information about archiver.
946
947 Behaviors of the following archivers are confirmed by further experiences.
948 (@samp{*} mark means recommended archiver).
949
950 @example
951 [OS/2]  Warp4.0J(w/o VoiceType)+Fx00505/emx0.9c(fix04)/PMMule,EmacsPM
952          LHA  OS/2 version Rel.2.06b    Feb 18, 1998
953         *UnZip 5.32 of 3 November 1997, by Info-ZIP.
954         *Zip 2.2 (November 3rd 1997).
955          Zoo archiver, zoo 2.1 $@asis{}Date: 91/07/09 02:10:34 $
956          GNU tar version 1.10 - AK 2.58 (DBCS/SJIS) 981216(homy) version
957          gzip 1.2.4 (18 Aug 93) + bzip2 patch(by Iida-san)
958
959 [UN|X]  FreeBSD 2.2.7-RELEASE, Linux 2.0.30, Solaris2.6, HP-UX 9.07
960          LHa for UNIX  V 1.14c
961          UnZip 5.32 of 3 November 1997
962          Zip 2.2 (November 3rd 1997)
963          GNU tar 1.12 (1.11.x is no good)
964          gzip 1.2.4 (18 Aug 93)
965
966 [Win32] Win.98/Meadow
967          Lha32 version 1.28
968          Zip 2.2
969          UnZip 5.40
970          GNU tar 1.11.8 + 1.5(WIN32)
971          GZIP 1.2.4
972          RAR 2.06
973
974 * Caution about LHA
975
976 If you are an OS/2 user, Peter Fitzsimmons's LH/2 is not supported.
977 Hiramatsu version of LHA is only supported.
978 In Win32, LHa32 is only supported (DOS version is no good).
979
980 * Caution about GNU tar
981
982 You have to take care about GNU tar's version because
983 many version has problem on deleting file from archive.
984
985 Please test --delete -f options work. Otherwise, your archive will be
986 destroyed. No problem is reported on above versions of GNU tar.
987 @end example
988
989
990 @node Archive Tips, Archive Vars, Archiver, Archive Folder
991 @subsection TIPS
992 @cindex Archive Tips
993
994 For comfortable migration, usage of wl-summary-archive() (@pxref{Archive}) or 
995 Expire (@pxref{Expire}) is recommended.
996 To treat archive folders created by expiration, 
997 you must set non-nil value to @code{elmo-archive-treat-file}.
998
999 On the OS/2, there is a great difference between Mule2.3(19.28) and Emacs20.2
1000 in processing speed. For comfortable use, Emacs20 is recommended.
1001 (If re-search's performance is the problem, 19.3x or later may be okay.)
1002
1003 If many files are included in one archive,
1004 it takes long time to access to the archive folder because 
1005 archiver starting overhead is increased (especially LHA).
1006 150-200 messages in one archive is recommended.
1007
1008 Of course, following is possible @t{:-)} 
1009 (meanings of these variables are described later.)
1010 @lisp
1011 (setq wl-fcc "$backup")
1012 (setq wl-trash-folder "$trash;lha")
1013 @end lisp
1014
1015 @noindent
1016
1017
1018 @node Archive Vars,  , Archive Tips, Archive Folder
1019 @subsection Variables About Archive Folder
1020 @cindex Archive variables
1021
1022 @table @code
1023 @item elmo-archive-default-type
1024 @vindex elmo-archive-default-type
1025 The initial setting is 'zip.
1026 Set archiver type by symbol. 
1027
1028 @item elmo-archive-@var{type}-method-alist
1029 @vindex elmo-archive-TYPE-method-alist
1030 Define archiver @var{type}'s methods.
1031 (@var{type} is @samp{lha}, @samp{zip}, @samp{zoo}, @samp{tgz} etc)
1032 Each element of the alist is following.
1033
1034 @example
1035         (action . (exec-name options))   ;; external program and its option.
1036         (action . function)              ;; function
1037 @end example
1038
1039 Currently available actions are following.
1040
1041 @example
1042         'ls, 'cat ('cat-headers)        ;; Minimal setting(read-only)
1043         'mv ('mv-pipe), 'rm ('rm-pipe)  ;; full-access (with above)
1044         'cp ('cp-pipe)                  ;;
1045 @end example
1046
1047 @noindent
1048 In above actions, 
1049 actions enclosed with braces are optional (They are used for better
1050 performance).
1051
1052 @item elmo-archive-suffix-alist
1053 @vindex elmo-archive-suffix-alist
1054 An alist of archiver-type (symbol) and suffix.
1055
1056 @item elmo-archive-file-regexp-alist
1057 @vindex elmo-archive-file-regexp-alist
1058 An alist of a regexp to get file number from list output of archiver
1059 and archiver-type (symbol).
1060
1061 @item elmo-archive-method-list
1062 @vindex elmo-archive-method-list
1063 A list of elmo-archive-@var{type}-method-alist
1064 (@var{type} is a symbol of archiver-type).
1065
1066 @item elmo-archive-lha-dos-compatible
1067 @vindex elmo-archive-lha-dos-compatible
1068 The initial setting is t on OS/2 and Win32.
1069 If non-nil, LHA is DOS (Mr. Yoshizaki original) compatible.
1070
1071 @item elmo-archive-cmdstr-max-length
1072 @vindex elmo-archive-cmdstr-max-length
1073 The initial setting is 8000.
1074
1075 Max length of command line argument for external archiver program.
1076 Emacs does not have a limit of command line byte length, but some OS
1077 (e.x OS/2) have. It depends on the OS. Archive folder is affected by
1078 this limit because it calls external archiver program directly (not
1079 called via shell).  For example, you cannot delete messages if archiver
1080 program must receive larger bytes of arguments to delete.  OS/2 have a
1081 command line argument limit of 8190 bytes, so we defined default as 8000
1082 with some margin.
1083
1084 However, you don't have an influence of command line argument limit
1085 if the archiver has `actions' to receive target file information from
1086 standard input (rm-pipe, mv-pipe, cat-headers action).
1087 @end table
1088
1089 @node POP Folder, Multi Folder, Archive Folder, Folders
1090 @section POP Folder
1091 @cindex POP Folder
1092 @cindex @samp{&}
1093 @cindex RFC 1939
1094 @cindex POP3
1095 @cindex APOP
1096
1097 A folder to access e-mails via POP3 protocol (RFC 1939).
1098
1099 @example
1100 Format: '&' ['username'][['/' 'authenticate-type']['@@' 'hostname'][':' 'port']]['!']
1101
1102 You can specify
1103 "user"  (plain password transmission) or "apop"  (APOP authentication)
1104 as authenticate-type.
1105
1106 default:
1107 username   -> The value of @code{elmo-default-pop3-user}.
1108               Initial setting is `USER' environment variable or
1109              `LOGNAME' environment variable or return value of
1110              (user-login-name).
1111 authenticate-type -> The value of @code{elmo-default-pop3-authenticate-type}.
1112               Initial setting is "user".
1113 hostname   -> The value of @code{elmo-default-pop3-server}.
1114               Initial setting is "localhost".
1115 port       -> The value of @code{elmo-pop3-default-port}.
1116               Initial setting is 110.
1117
1118 Example: &hoge@@localhost -> access to localhost as user "hoge".
1119          &hoge@@popserver:109 -> access to the server "popserver" on port 109
1120                                  as user "hoge".
1121 @end example
1122
1123 To use apop as an authenticate-type, @file{md5.el} is needed
1124 (XEmacs doesn't need @file{md5.el}).
1125 @file{md5.el} is included in @file{utils/sasl/lisp/} or Emacs/W3 package
1126
1127 @example
1128 http://www.cs.indiana.edu/elisp/w3/docs.html
1129 @end example
1130
1131 or LCD archive (GPL2).
1132
1133 If the last character of the folder name is '!', Wanderlust connects to
1134 the POP server via SSL (Secure Socket Layer).  If you set non-nil
1135 value to @code{elmo-default-pop-ssl}, you don't have to put '!' in the
1136 end of the folder name to use SSL. 
1137 If a folder name ends with '!!', STARTTLS connection will be established.
1138 if the value of @code{elmo-default-pop-ssl} is 'starttls,
1139 STARTTLS will be the default connection.
1140
1141 @node Multi Folder, Filter Folder, POP Folder, Folders
1142 @section Multi Folder
1143 @cindex Multi Folder
1144 @cindex @samp{*}
1145 @cindex Folder, Multiple
1146 @cindex Folder, Marge
1147
1148 A folder to access to a folder which collects messages from
1149 multiple folders virtually.
1150
1151 @example
1152 Format: '*' 'folder' [',' 'folder'] ... [',' 'folder']
1153
1154 After '*' character, specify multiple folders you want to collect 
1155 separated by ',' like folder1,folder2,@dots{},folderN.
1156
1157 Example:
1158   *-fj.editor.xemacs,-fj.editor.mule,-fj.editor.emacs
1159   -> -fj.editor.xemacs, -fj.editor.mule and -fj.editor.emacs are
1160      treated as one folder.
1161
1162   *+inbox,-fj.rec.tv,%inbox
1163   -> +inbox, -fj.rec.tv and %inbox are treated as one folder.
1164
1165 @end example
1166
1167
1168 @node Filter Folder, Pipe Folder, Multi Folder, Folders
1169 @section Filter Folder
1170 @cindex Filter Folder
1171 @cindex @samp{/}
1172 @cindex Folder, Filtering
1173 @cindex Folder, Virtual
1174
1175 A folder to access to a folder which collects all messages that 
1176 satisfy a condition virtually.
1177
1178 @example
1179 Format: '/' 'condition' '/' 'target-folder'
1180
1181 In the 'condition' part, you can specify following.
1182
1183 1. Partial filter: "first:NUMBER", "last:NUMBER"
1184
1185 first: 'NUMBER' messages are picked from top of folder.
1186 last:  'NUMBER' messages are picked from bottom of folder.
1187
1188 Example:
1189   /last:10/-fj.os.linux -> Latest 10 messages from -fj.os.linux are picked.
1190   /first:20/%inbox      -> First 20 messages from %inbox are picked.
1191
1192 2. Date filter: "since:DATE" "before:DATE"
1193
1194 since: only messages arrived since 'DATE' are picked.
1195 before: only messages arrived before 'DATE' are picked.
1196
1197 You can specify following as 'DATE'.
1198
1199 yesterday ->  a day before today.
1200 lastweek  ->  same day of last week.
1201 lastmonth ->  same day of last month.
1202 lastyear  ->  same day of last year.
1203 'NUMBER'daysago -> 'NUMBER' days ago. (e.x. '3daysago')
1204 'DAY'-'MONTH'-'YEAR' -> specify date directly (ex. 1-Nov-1998)
1205
1206 Example:
1207   /since:3daysago/+inbox -> messages arrived since 3 days ago in +inbox
1208                             are picked.
1209   /before:yesterday/+inbox -> messages arrived before yesterday in +inbox
1210                             are picked. 
1211
1212 3. Field filter: "FIELD=VALUE"
1213
1214 All messages that have FIELD and its value is VALUE are picked.
1215 'FIELD' and 'VALUE' are case insensitive.
1216
1217 Example:
1218   /from=teranisi/+inbox -> In +inbox, messages which have From: field
1219                            and its value includes "teranisi" string are picked.
1220   /body=foo/%inbox      -> In %inbox, messages which have "foo" text
1221                            are picked.
1222
1223 If you can split conditions by character "|", it is considered as OR condition.
1224 /tocc=xxxx/ is an abbreviation of /to=xxxx|cc=xxxx/.
1225
1226 Example:
1227
1228   /from=teranisi|to=teranisi/+inbox
1229                         -> In +inbox, messages are picked if
1230                            the message's To: field includes
1231                            "teranisi" or From: field includes "teranisi".
1232   /tocc=teranisi/+inbox -> In +inbox, messages are picked if
1233                            the message's To: field or Cc: field includes
1234                           "teranisi".
1235
1236 Advanced example:
1237
1238   %inbox,/from=teranisi/%inbox@@server
1239          -> Messages in %inbox or
1240             message is in the %inbox@@server folder and it's From field
1241             includes "teranisi" are collected.
1242
1243   /last:100//to=teranisi/*+inbox,%inbox
1244          -> Latest 100 messages which is in the +inbox or %inbox folder
1245             and To: field matches "teranisi".
1246
1247   /from=hogehoge//last:20//tocc=teranisi/%#mh/inbox@@localhost
1248          -> Pick messages which have From: field and it includes "hogehoge"
1249             from latest 20 messages in the %#mh/inbox@@localhost
1250             and To: or Cc: field includes "teranisi".
1251
1252 ;;; --- Limit of implementation ---
1253 ;;; In the current implementation, NNTP folder does not treat date filter and
1254 ;;; field filter.
1255 ;;; In IMAP4 folder, field filter only supports fields which can be 
1256 ;;; passed directly to rfc2060's search command.
1257 ;;; (i.e. to,cc,from,subject and body)
1258 ;;; Localdir folder treats arbitrary field name.
1259 @end example
1260
1261 @node Pipe Folder, Internal Folder, Filter Folder, Folders
1262 @section Pipe Folder
1263 @cindex Pipe Folder
1264 @cindex @samp{|}
1265 @cindex Get Message
1266 @cindex Download Message
1267 @cindex Incorporate Message
1268
1269 In the pipe folder, messages are automatically transferred from the source
1270 folder to destination folder.
1271
1272 @example
1273 Format: '|' source-folder '|' destination-folder
1274
1275 When you access to the pipe folder, messages are automatically transferred
1276 from source-folder to destination-folder.
1277 It is convenient if you want to download messages to local disk via POP.
1278 For example, if you specify following
1279
1280 |&username@@popserver|+inbox
1281
1282 and access to it, messages are downloaded automatically from
1283 &username@@popserver to +inbox.
1284
1285 Example: %inbox|%myinbox   -> Download %inbox to %myinbox.
1286          *&user@@popserver1,&user@@popserver2|+inbox
1287          -> Download from &user@@popserver1 and &user@@popserver2 to +inbox.
1288 @end example
1289
1290 After messages are moved, a hook @code{elmo-pipe-drained-hook} is called.
1291
1292 @node Internal Folder,  , Pipe Folder, Folders
1293 @section Internal folder
1294 @cindex Internal Folder
1295 @cindex @samp{'}
1296 @cindex Folder, @samp{$} mark
1297
1298 A folder to access to internal messages of Wanderlust.
1299
1300 @example
1301 Format: 'mark
1302         or
1303         'cache/00 - 1F
1304
1305 A folder named 'mark is a special virtual folder which collects messages
1306 which have important mark @samp{$}.
1307
1308 You can review important messages at once after you put important marks
1309 on the messages in the different folders.
1310
1311 In this folder, if you delete message, important mark @samp{$} put on
1312 the message is removed.  If you append messages to this folder, the
1313 message will have @samp{$} mark.
1314
1315 You can access to the cached messages fetched via network by accessing
1316 to the folders named 'cache/00 - 1F. 00 - 1F are the name of the
1317 subdirectories of the cache directory (@file{~/.elmo/cache}).
1318 @end example
1319
1320 @c
1321 @c  Folder
1322 @c
1323 @node Folder, Summary, Folders, Top
1324 @chapter Folder mode
1325 @cindex Folder
1326
1327 After you start Wanderlust, folder mode is appeared firstly.
1328 It contains folder list you subscribed.
1329 You can select and edit folders in this mode.
1330
1331 @menu
1332 * Selecting Folder:: Select folder you want to read.
1333 * Folder Manager::   Editing folders.
1334 @end menu
1335
1336
1337 @node Selecting Folder, Folder Manager, Folder, Folder
1338 @section Selecting Folder
1339 @cindex Selecting Folder
1340
1341 @subsection Usage (TIPS)
1342
1343 @subsubsection Check new, unread number
1344
1345 Folder mode looks like this.
1346 (In XEmacs, it looks much nicer @t{;-)})
1347
1348 @example
1349 [-]Desktop:14186/35580/67263
1350    Inbox:3/10/10
1351    Trash:2/7/10
1352    Drafts:0/0/3
1353    Sent:0/9/348
1354    [-]Emacsen:0/34/4837
1355      Wanderlust ML:0/0/558
1356      ELIPS ML:0/0/626
1357      tm:0/0/821
1358      XEmacs Beta:0/29/255
1359      Mew:0/0/998
1360      Mule-Win32:0/0/1491
1361      fj's Emacsen:0/5/88
1362 @end example
1363
1364
1365 Each line means:
1366
1367 @example
1368 FOLDER-NAME:NEW-NUMBER/UNREAD-NUMBER/ALL-NUMBER
1369 @end example
1370
1371 @noindent
1372
1373 @kbd{s} key on the folder line updates these numbers.
1374 It changes its color if it has many new messages.
1375
1376 The whole folder mode is a folder group named @samp{Desktop}.
1377 Folder group open/close by return key.
1378 A operation to a folder group is treated as operations on the
1379 children folders.
1380 For example, when you type @kbd{s} on @samp{[-]Emacsen},
1381 six children folders update its unread number status.
1382
1383 @subsubsection Select Folder
1384
1385 To enter summary mode of the folder, type return (or spece) key on
1386 the folder line.
1387 If the variable @code{wl-stay-folder-window} has non-nil value, 
1388 summary window appears on the right of the folder mode window.
1389
1390 @subsection Key bindings
1391
1392 Folder mode's key binding (related to selecting folders) is following.
1393
1394 @table @kbd
1395 @item @key{SPC}
1396 @itemx @key{RET}
1397 @kindex @key{SPC} (Folder)
1398 @kindex @key{RET} (Folder)
1399 @findex wl-folder-jump-to-current-entity
1400 Enter to the summary mode of the folder at the current cursor point.
1401 If the cursor is on the top of folder group line, 
1402 the folder group is opened or closed.
1403 When the cursor is on the access group and this command is called 
1404 with prefix argument, folder children list is updated to the newest one.
1405 (Children list is updated recursively if the access folder has hierarchical
1406 structure.)
1407 (@code{wl-folder-jump-to-current-entity})
1408
1409 @item M-@key{RET}
1410 @kindex M-@key{RET} (Folder)
1411 @findex wl-folder-update-recursive-current-entity
1412 Folder children list of the access group at the current cursor point
1413 is updated to the newest one.
1414 (Children list is updated recursively if the access folder has hierarchical
1415 structure.)
1416 (@code{wl-folder-update-recursive-current-entity})
1417
1418 @item w
1419 @kindex w (Folder)
1420 @findex wl-summary-write
1421 Create a new draft message.
1422 (@code{wl-summary-write})
1423
1424 @item W
1425 @kindex W (Folder)
1426 @findex wl-summary-write-current-newsgroup
1427 If the current cursor point is on the NNTP folder,
1428 create a new draft message which already has newsgroups field.
1429 (@code{wl-summary-write-current-newsgroup})
1430
1431 @item s
1432 @kindex s (Folder)
1433 @findex wl-folder-check-current-entity
1434 Update new and unread number information of the folder at the current 
1435 cursor point.
1436 (@code{wl-folder-check-current-entity})
1437
1438 @item S
1439 @kindex S (Folder)
1440 @findex wl-folder-sync-current-entity
1441 Update summary information of the folder at the current cursor point.
1442 (@code{wl-folder-sync-current-entity})
1443
1444 @item r s
1445 @kindex r s (Folder)
1446 @findex wl-folder-check-region
1447 Update new and unread number information of the folders in the currently
1448 selected region.
1449 (@code{wl-folder-check-region})
1450
1451 @item r S
1452 @kindex r S (Folder)
1453 @findex wl-folder-sync-region
1454 Update summary information of the folders in the currently selected region.
1455 (@code{wl-folder-sync-region})
1456
1457 @item P
1458 @kindex P (Folder)
1459 @findex wl-folder-prev-unread
1460 Jump cursor to the folder which have unread messages on the upward from
1461 current cursor point.
1462 (@code{wl-folder-prev-unread})
1463
1464 @item N
1465 @kindex N (Folder)
1466 Jump cursor to the folder which have unread messages on the downward
1467 from current cursor point.
1468 (@code{wl-folder-next-unread})
1469
1470 @item p
1471 @kindex p (Folder)
1472 Move cursor to the folder on the previous line.
1473 (@code{wl-folder-prev-entity})
1474
1475 @item n
1476 @kindex n (Folder)
1477 Move cursor to the folder on the next line.
1478 (@code{wl-folder-next-entity})
1479
1480 @item J
1481 @kindex J (Folder)
1482 Jump to the folder specified by the user input.
1483 (@code{wl-folder-jump-folder})
1484
1485 @item I
1486 @kindex I (Folder)
1487 @findex wl-folder-prefetch-current-entity
1488 Prefetch new messages of the folder at the current cursor point by
1489 @code{wl-summary-incorporate}.
1490 If the cursor is on the folder group, it is executed recursively.
1491 (@code{wl-folder-prefetch-current-entity})
1492
1493 @item c
1494 @kindex c (Folder)
1495 @findex wl-folder-mark-as-read-all-current-entity
1496 Mark all unread messages of the folder at the current cursor point as read.
1497 If the cursor is on the folder group, it is executed recursively.
1498 (@code{wl-folder-mark-as-read-all-current-entity})
1499
1500 @item f
1501 @kindex f (Folder)
1502 @findex wl-folder-goto-first-unread-folder
1503 Enter summary mode of the first unread folder.
1504 (@code{wl-folder-goto-first-unread-folder})
1505
1506 @item E
1507 @kindex E (Folder)
1508 @findex wl-folder-empty-trash
1509 Empty trash.
1510 (@code{wl-folder-empty-trash})
1511
1512 @item o
1513 @kindex o (Folder)
1514 @findex wl-folder-open-all-unread-folder
1515 All unread folder is opened.
1516 (@code{wl-folder-open-all-unread-folder})
1517
1518 @item /
1519 @kindex / (Folder)
1520 @findex wl-folder-open-close
1521 Folder group is opened/closed.
1522 (@code{wl-thread-open-close})
1523
1524 @item [
1525 @kindex [ (Folder)
1526 All folder group is opened.
1527 (@code{wl-folder-open-all})
1528
1529 @item ]
1530 @kindex ] (Folder)
1531 All folder group is closed.
1532 (@code{wl-folder-close-all})
1533
1534 @item q
1535 @kindex q (Folder)
1536 Quit Wanderlust.
1537 (@code{wl-exit})
1538
1539 @item z
1540 @kindex z (Folder)
1541 Suspend Wanderlust.
1542 (@code{wl-folder-suspend})
1543
1544 @item M-s
1545 @kindex M-s (Folder)
1546 Save current folder status.
1547 (@code{wl-save})
1548
1549 @item M-t
1550 @kindex M-t (Folder)
1551 Toggle Wanderlust's offline/online status.
1552 (@code{wl-toggle-plugged})
1553
1554 @item C-t
1555 @kindex C-t (Folder)
1556 Start Wanderlust's plug-status manager.
1557 (@code{wl-plugged-change})
1558 @end table
1559
1560 @subsection Customize variables
1561
1562 @table @code
1563 @item wl-folders-file
1564 @vindex wl-folders-file
1565 The initial setting is "~/.folders".
1566 Subscribed folders are described (saved) in this file.
1567
1568 @item wl-folder-info-save
1569 @vindex wl-folder-info-save
1570 The initial setting is t.
1571 If non-nil, unread information is saved and used in the next Wanderlust session.
1572
1573 @item wl-stay-folder-window
1574 @vindex wl-stay-folder-window
1575 The initial setting is nil.
1576 If non-nil, summary window is appeared on the right side of the folder buffer.
1577
1578 @item wl-folder-window-width
1579 @vindex wl-folder-window-width
1580 The initial setting is 20.
1581 Folder mode's window width when @code{wl-stay-folder-window} is non-nil.
1582
1583 @item wl-folder-many-unsync-threshold
1584 @vindex wl-folder-many-unsync-threshold
1585 The initial setting is 70.
1586 If the number of unread messages is more than this value,
1587 folder color is changed.
1588
1589 @item wl-folder-desktop-name
1590 @vindex wl-folder-desktop-name
1591 The initial setting is "Desktop".
1592 The name of top folder group.
1593
1594 @item wl-folder-petname-alist
1595 @vindex wl-folder-petname-alist
1596 The initial setting is nil.
1597 An alist of folder's realname and its nickname.
1598
1599 @item wl-folder-access-subscribe-alist
1600 @vindex wl-folder-access-subscribe-alist
1601 The initial setting is nil.
1602
1603 Control automatic subscribing and unsubscribing of the children list
1604 of access groups.
1605
1606 Each element is:
1607
1608 ('regexp of access-folder' . ('subscribe-flag' 'regexp-of-folders' @dots{}))
1609
1610 If subscribe-flag is non-nil, folders which have name matched to
1611 regexp-of-folders are displayed. Otherwise, hidden.
1612 However, already unsubscribed folder is not displayed even 
1613 when the subscribe-flag is non-nil. Multiple regexp-of-folders can be specified.
1614
1615 Example:
1616
1617 @example
1618 '(("^-fj$" . (t   "^-fj\\.\\(comp\\|editor\\|mail\\)"
1619                   "^-fj\\.\\(net\\|news\\|os\\|rec\\)"))
1620   ("^-$" . (t   "^-\\(fj\\|tnn\\|japan\\|gnu\\|comp\\)"))
1621   ("^\\+ml$" . (nil "^\\+ml$" "^\\+ml/tmp")))
1622 @end example
1623
1624 @item wl-folder-hierarchy-access-folders
1625 @vindex wl-folder-hierarchy-access-folders
1626 The initial setting is '("-" "-alt").
1627 A list of access groups which creates children folder list hierarchically.
1628
1629 For example, if you specify
1630 @code{wl-folder-hierarchy-access-folders} like following,
1631
1632 @lisp
1633 (setq wl-folder-hierarchy-access-folders
1634      '("-" "-alt" "-japan" "-comp" "-comp.unix"))
1635 @end lisp
1636
1637 such access group hierarchy is obtained.
1638
1639 @example
1640    [-]-:912/912/3011
1641      [-]-fj:674/674/1314
1642        -fj.comp.announce:0/0/2
1643        -fj.comp.dev.cdrom:0/0/0
1644        @dots{}
1645      [+]-japan:238/238/1688
1646      [-]-comp:0/0/4
1647        [-]-comp.unix:0/0/0
1648          -comp.unix.admin:0/0/0
1649          -comp.unix.dos-under-unix:0/0/0
1650          -comp.unix.programmer:0/0/0
1651          [-]-comp.unix.bsd:0/0/23
1652            -comp.unix.bsd.freebsd.announce:0/0/0
1653      @dots{}
1654 @end example
1655
1656 If you opened @samp{-} in this example, only the direct children is created
1657 (@samp{-fj}, @samp{-japan}, @samp{-tnn}, @dots{}).
1658 second hierarchy (@samp{-fj.comp.announce}, @dots{}, @samp{-comp.unix}, @dots{})
1659 is not created until the children access group is opened.
1660 @end table
1661
1662
1663 @node Folder Manager,  , Selecting Folder, Folder
1664 @section Editing Folders
1665 @cindex Folder Manager
1666 @cindex Folder, Edit
1667 @cindex Folder, Subscribe
1668 @cindex Folder, Unsubscribe
1669
1670 As described before, subscribed folder list is saved in @file{~/.folders} file.
1671 But you don't have to edit @file{~/.folders} directly.
1672 You can append, delete, edit folders from folder mode.
1673
1674 @subsection Usage (Tips)
1675
1676 @subsubsection Append Folder
1677
1678 @kbd{m a} appends new folder to the folder mode.
1679 @kbd{m g} appends new folder group.
1680 To append new folder to this group, firstly open it,
1681 then execute append command in the next line.
1682
1683 @subsubsection Edit Folder
1684
1685 You can cut folder by @kbd{C-k}, paste by @kbd{C-y}.
1686 Thus, you can change folder position as if you were editing a normal file.
1687
1688 @subsubsection Create Multi Folder.
1689
1690 @enumerate
1691 @item
1692 Type @kbd{m q} to clear @code{wl-fldmgr-cut-entity-list}.
1693 @item
1694 Cut folder by @kbd{C-k} or copy folder by @kbd{M-c}.
1695 @item
1696 Type @kbd{m m}, then you can create multi folder.
1697 @end enumerate
1698
1699 @subsubsection Delete Nickname, Filter
1700
1701 You can delete nickname or filter by putting ""(NULL) from the minibuffer
1702 while appending.
1703
1704 @subsubsection Append Folder to Empty Group
1705
1706 To append new folder to the empty folder group
1707 (after you create folder group by typing @kbd{m g}),
1708 firstly open it, then execute append command in the next line.
1709 If it is closed, folder is appended on the same level with
1710 the above folder group. It is difficult to explain by words so try it.
1711 In other words, appended position depends on the 
1712 above folder group's open/close status.
1713
1714 @subsubsection Charset of the Folders File.
1715
1716 @code{wl-mime-charset} is used for saving @code{wl-folders-file}.
1717
1718 @subsubsection Create Filter
1719
1720 @kbd{m f} adds filter to the folder at the current cursor point.
1721 To create new filter folder and leave the current folder unchanged, 
1722 copy it @kbd{M-c}, make filter @kbd{m f} and paste it @kbd{C-y}.
1723 Multiple filter can be specified while appending filter.
1724 If you put ""(NULL), filter is deleted.
1725
1726 @subsubsection Sort Folders
1727
1728 Sorting of the folders is executed by the function specified by 
1729 @code{wl-fldmgr-sort-func}. 
1730 The initial setting is @code{wl-fldmgr-sort-standard}, 
1731 which sorts alphabetically.
1732 Sorting affects only on the current folder group. It does not 
1733 affect on the child groups.
1734
1735 @subsubsection Hiding Folders in the Access Group
1736
1737 Usually, access group displays all children folders, but you can set
1738 some folders hidden. Following operations are only available on access
1739 group.
1740
1741 Command @code{wl-fldmgr-unsubscribe} (@kbd{u}) toggles
1742 the visibility (subscribe/unsubscribe) of the folder at current cursor point.
1743
1744 Against this, @code{wl-fldmgr-unsubscribe-region} (@kbd{U}) hides folders
1745 in the specified region.  Note that @code{wl-fldmgr-unsubscribe-region}
1746 does not toggle while @code{wl-fldmgr-unsubscribe} toggles.  These two
1747 commands accept prefix argument and if the argument has positive number,
1748 the unsubscribe it.  If the prefix argument has negative value, folder
1749 becomes visible and if zero, folder visibility is toggled.
1750
1751 The other commands, @code{wl-fldmgr-subscribe} and
1752 @code{wl-fldmgr-subscribe-region} are also prepared (not binded to the
1753 key).
1754
1755 Moreover, if @code{wl-fldmgr-cut} or @code{wl-fldmgr-cut-region} is
1756 executed in the access group, they have a same effect with
1757 @code{wl-fldmgr-unsubscribe} and @code{wl-fldmgr-unsubscribe-region}.
1758 The difference is that cut(-region) commands deletes folders from the
1759 current buffer.
1760
1761 @subsubsection Operations in the Access Group
1762
1763 You can insert and delete folders in the access group like usual folder
1764 group.  But insert and delete commands can be only available for the
1765 children folders of the access group and they only sets the subscribe
1766 status.  In other words, insertion of the folder means subscribing,
1767 deletion means unsubscribing.
1768 @footnote{In the current implementation, 
1769 it is faster to delete region than to unsubscribe region.}
1770
1771 To update the access group when children folders are inserted or deleted
1772 by other way (other than Wanderlust), 
1773 open the access group by typing @kbd{C-u @key{RET}}.
1774 @xref{Selecting Folder}.
1775
1776 The order of children folders of access group is saved after
1777 insertion/deletion/sorting.
1778 If you set @code{wl-force-fetch-folders} to non-nil or open access group
1779 by typing @kbd{C-u @key{RET}}, disappeared folders are deleted and
1780 newly created folders are inserted on the top of the access group.
1781
1782 @subsection Key bindings
1783 @cindex Keybind, Folder Mode
1784 @cindex Keybind, Folder Buffer
1785
1786 Key bindings on the folder mode related to folder editing are shown below.
1787 All bindings starts with @kbd{m}, and primary commands are binded to 
1788 one stroke key binding.
1789
1790 @table @kbd
1791 @item m a
1792 @kindex m a (Folder)
1793 @findex wl-fldmgr-add
1794 Insert a folder.
1795 (@code{wl-fldmgr-add})
1796
1797 @item +
1798 @itemx m g
1799 @kindex + (Folder)
1800 @kindex m g (Folder)
1801 @findex wl-fldmgr-make-group
1802 Create a folder group.
1803 (@code{wl-fldmgr-make-group})
1804
1805 @itemx m A
1806 @kindex m A (Folder)
1807 @findex wl-fldmgr-make-access-group
1808 Create an access group. 
1809 (@code{wl-fldmgr-make-access-group})
1810
1811 @item m d
1812 @kindex m d (Folder)
1813 @findex wl-fldmgr-delete
1814 Delete folder itself and msgdb.
1815 If the folder itself cannot be deleted like NNTP folder,
1816 only msgdb is deleted.
1817 (@code{wl-fldmgr-delete})
1818
1819 @item R
1820 @itemx m R
1821 @kindex R (Folder)
1822 @kindex m R (Folder)
1823 @findex wl-fldmgr-rename
1824 Change the name of folder or folder group.
1825 msgdb's path is also changed.
1826 (@code{wl-fldmgr-rename})
1827
1828 @item *
1829 @itemx m m
1830 @kindex * (Folder)
1831 @kindex m m(Folder)
1832 @findex wl-fldmgr-make-multi
1833 Create a multi folders in the cutlist (cut, copied folders).
1834 (@code{wl-fldmgr-make-multi})
1835
1836 @item |
1837 @itemx m f
1838 @kindex | (Folder)
1839 @kindex m f (Folder)
1840 @findex wl-fldmgr-make-filter
1841 Create a filter folder. (Put a filter on the folder).
1842 (@code{wl-fldmgr-make-filter})
1843
1844 @item M-c
1845 @itemx m c
1846 @kindex M-c (Folder)
1847 @kindex m c (Folder)
1848 @findex wl-fldmgr-copy
1849 Copy folder (it is not available on folder group).
1850 (@code{wl-fldmgr-copy})
1851
1852 @item M-w
1853 @itemx m W
1854 @kindex M-w (Folder)
1855 @kindex m W (Folder)
1856 @findex wl-fldmgr-copy-region
1857 Copy folders in the specified region.
1858 (@code{wl-fldmgr-copy-region})
1859
1860 @item C-k
1861 @itemx m k
1862 @kindex C-k (Folder)
1863 @kindex m k (Folder)
1864 @findex wl-fldmgr-cut
1865 Cut folder. Folder itself is not deleted.
1866 (@code{wl-fldmgr-cut})
1867
1868 @item C-w
1869 @itemx m C-w
1870 @kindex C-w (Folder)
1871 @kindex m C-w (Folder)
1872 @findex wl-fldmgr-cut-region
1873 Cut folders in the specified region.
1874 (@code{wl-fldmgr-cut-region})
1875
1876 @item C-y
1877 @itemx m y
1878 @kindex C-y (Folder)
1879 @kindex m y (Folder)
1880 @findex wl-fldmgr-yank
1881 Paste folders that are copied or cut (folders in the cut-list).
1882 (@code{wl-fldmgr-yank})
1883
1884 @item m p
1885 @kindex m p (Folder)
1886 @findex wl-fldmgr-set-petname
1887 Put nickname on the folder.
1888 (@code{wl-fldmgr-set-petname})
1889
1890 @item m q
1891 @kindex m q (Folder)
1892 @findex wl-fldmgr-clear-cut-entity-list
1893 Clear the cut-list. (cut, copied folder information is cleared,
1894 you cannot paste after this)
1895 (@code{wl-fldmgr-clear-cut-entity-list})
1896
1897 @item m s
1898 @kindex m s (Folder)
1899 @findex wl-fldmgr-sort
1900 Sort folders in the current folder group.
1901 (@code{wl-fldmgr-sort})
1902
1903 @item m C-s
1904 @kindex m C-s (Folder)
1905 @findex wl-fldmgr-save
1906 Save current folder view to the @file{wl-folders-file}.
1907 (@code{wl-fldmgr-save})
1908 @end table
1909
1910 [Following commands are only available on the access groups]
1911
1912 @table @kbd
1913 @item u
1914 @itemx m u
1915 @kindex u (Folder)
1916 @kindex m u (Folder)
1917 @findex wl-fldmgr-unsubscribe
1918 Set the visibility of folder (subscribe/unsubscribe).
1919 (@code{wl-fldmgr-unsubscribe})
1920
1921 @item U
1922 @itemx r u
1923 @kindex U (Folder)
1924 @kindex r u (Folder)
1925 @findex wl-fldmgr-unsubscribe-region
1926 Set the visibility of the folders (subscribe/unsubscribe) in the
1927 specified region. 
1928 (@code{wl-fldmgr-unsubscribe-region})
1929
1930 @item l
1931 @itemx m l
1932 @kindex l (Folder)
1933 @kindex m l (Folder)
1934 @findex wl-fldmgr-access-display-normal
1935 List folders that are currently available.
1936 (@code{wl-fldmgr-access-display-normal})
1937
1938 @item L
1939 @itemx m L
1940 @kindex L (Folder)
1941 @kindex m L (Folder)
1942 @findex wl-fldmgr-access-display-all
1943 List all folders regardless of the subscription status.
1944 (@code{wl-fldmgr-access-display-all})
1945
1946 @item C-c C-o
1947 @kindex C-c C-o (Folder)
1948 @findex wl-jump-to-draft-buffer
1949 Move to the draft buffer if available.  If multiple draft buffer exists,
1950 moved to one after another.  If prefix argument is specified, load draft
1951 folder's message to the draft buffer and jump to it.
1952 (@code{wl-jump-to-draft-buffer})
1953 @end table
1954
1955
1956 @subsection Customize variables
1957
1958 @table @code
1959 @item  wl-interactive-save-folders
1960 @vindex wl-interactive-save-folders
1961 The initial setting is t.
1962 If non-nil and folder view is modified, confirm saving it before
1963 Wanderlust or Emacs exits.
1964 If nil, save without confirmation.
1965
1966 @item wl-fldmgr-make-backup
1967 @vindex wl-fldmgr-make-backup
1968 The initial setting is t.
1969 If non-nil, @file{~/.folders.bak} is created before saving the folder status.
1970
1971 @item wl-fldmgr-sort-func
1972 @vindex wl-fldmgr-sort-func
1973 The initial setting is 'wl-fldmgr-sort-standard.
1974 A function to sort folders.
1975 By default function, folders are sorted alphabetically and
1976 folder group is put on top
1977 (when @code{wl-fldmgr-sort-group-first} is non-nil).
1978
1979 @item wl-fldmgr-sort-group-first
1980 @vindex wl-fldmgr-sort-group-first
1981 The initial setting is t.
1982 If non-nil, @code{wl-fldmgr-sort-standard} precedes folder group.
1983 If nil, it does not care whether it is folder group or not.
1984
1985 @item wl-folder-check-async
1986 @vindex wl-folder-check-async
1987 The initial setting is t.
1988 If non-nil, check folder's unread status asynchronously.
1989 It boosts newsgroup checking.
1990
1991 @item wl-folder-check-fast
1992 @vindex wl-folder-check-fast
1993 The initial setting is nil.
1994 If non-nil, it does not update folder status while checking.
1995 @c it is obsolete?
1996 @item wl-folder-notify-deleted
1997 @vindex wl-folder-notify-deleted
1998 The initial setting is nil.
1999 @c  nil means?
2000 If non-nil, negative value is displayed when the message is deleted.
2001 If 'sync, folder is synchronized when the message is deleted.
2002 If nil, message deletion is ignored.
2003 @end table
2004
2005 @subsection Miscellanea
2006
2007 Following is a note for folder editing.
2008
2009 @enumerate
2010 @item
2011 cut or copy stacks the folder in the @code{wl-fldmgr-cut-entity-list}.
2012 paste(yank) command pastes the folders on one cut or copy command
2013 (If copy command is executed by region, folders in the region are pasted
2014 by one paste command)
2015
2016 @item
2017 You cannot cut 'Desktop' group.
2018 Also, you cannot paste folders at the outside of the 'Desktop'.
2019
2020 @item
2021 You cannot copy folder group.
2022
2023 @item
2024 Operations on the access group are only available for the folders
2025 in the same access group.
2026
2027 @item
2028 You cannot create a folder which has same name with the folders already exist.
2029
2030 @item
2031 You cannot insert folders which have same name in one group.
2032 You can insert them in the different groups.
2033 You cannot put same nickname to the different folders.
2034 @end enumerate
2035
2036
2037 @c
2038 @c  Summary
2039 @c
2040 @node Summary, Message, Folder, Top
2041 @chapter Summary Mode
2042
2043 @section Usage (Tips)
2044
2045 @subsection Summary Content
2046
2047 After you select the folder via folder mode, you enter to the summary mode.
2048 In the summary mode, messages are displayed like following.
2049
2050 @example
2051   377  09/16(Wed)11:57 [+1: Takuro Kitame  ] Bug?
2052   381  09/17(Thu)00:16 [+3: Fujikazu Okuni ] elmo-lha.el -- LHA interface
2053   384  09/17(Thu)01:32 [+1: Yuuichi Terani ] wl-0.6.2
2054   389 N09/18(Fri)01:07 [+2: Yuuichi Terani ] wl-0.6.3
2055 @end example
2056
2057 Each line displays:
2058
2059 @example
2060 Message number, Temporal mark, Persistent mark, Date, Sender, Subject
2061 @end example
2062
2063 @noindent
2064 You cannot change this in the current version.
2065
2066 'Message number' is the message's unique number in the folder. In the NNTP
2067 folder, it is article number, in the IMAP folder, it is UID and in the
2068 MH folder, it is the filename of the message.
2069
2070 Temporal and Persistent marks are described later.
2071
2072 'Date' is displayed like 'Month/Day(Week Day)Hour:Minute'.
2073 Default setting displays week day in Japanese, but if you want to 
2074 display it in English, set the value of @code{wl-summary-weekday-name-lang}
2075 as "en".
2076
2077 'Sender's indentation corresponds to the depth of the thread.
2078 Sender name is displayed as nickname if it is defined in the address book.
2079 Set @code{wl-use-petname} as nil, if you want to quit displaying with nickname.
2080
2081 If number is printed at the head of 'sender' part like @samp{+2},
2082 that means the message have 2 follow messages.
2083
2084 'Subject' is the Subject header field of the message.  If the message
2085 have same subject with the parent message, it is not displayed.  Some
2086 mailing list puts its sequence number in the subject field, but it is
2087 ignored. @code{wl-summary-no-subject-message} is displayed when the
2088 message has empty subject field.
2089
2090 @subsection Temporary Marks
2091 @cindex Mark, Temporary
2092
2093 There are four temporary marks, 
2094 @samp{*}, @samp{D}, @samp{o} and @samp{O}.
2095 Temporary marks indicates message operations.
2096
2097 @table @samp
2098 @item *
2099 Target mark.
2100 You can execute a command on the all messages that have @samp{*} mark,
2101 with the key bindings which begins with @kbd{m}.
2102
2103 @item D
2104 The mark to delete. You can put @samp{D} by typing @kbd{d} key.
2105
2106 @item o
2107 The mark to refile.
2108 After you type @kbd{o} key, prompt appears to input refile destination.
2109 Your answer is printed in the summary line.
2110
2111 @item O
2112 The mark to refile.
2113 You can put this mark by typing @kbd{O} key.
2114 The difference between this mark and refile mark is, 
2115 this mark does not delete the message while latter does.
2116 @end table
2117
2118 @kbd{x} key executes @samp{D}, @samp{o} and @samp{O} marks.
2119
2120 @subsection Persistent Marks
2121
2122 There are five persistent marks,
2123 @samp{N}, @samp{U}, @samp{!}, @samp{u} and @samp{$}.
2124
2125 The persistent mark indicates the message's status and it is saved.
2126 Each persistent mark indicates:
2127
2128 @table @samp
2129 @item N
2130 It is new message.
2131 @item U
2132 It is unread message.
2133 @item !
2134 It is unread but cached message.
2135 @item u
2136 It is read but it is not cached.
2137 @item $
2138 It is important message.  You can put @samp{$} mark by typing @kbd{$}
2139 key (if already exists, the mark is deleted).  It is convenient to put
2140 this mark on the messages to remember (If you want to remember to write
2141 a reply for the message, for example) because this mark remains after
2142 you exited Emacs.  Messages with the @samp{$} mark remains in the folder
2143 even the message itself is deleted in the actual folder.
2144
2145 @item None
2146 If the message is read and cached (or local message),there are no
2147 persistent mark.
2148 @end table
2149
2150 @samp{N}, @samp{U} and @samp{u} indicates that the message have no
2151 cache.  Messages with the marks other than these, you can read them in
2152 the offline status even they are in the IMAP folder or netnews folder.
2153
2154 @subsection How To Read
2155
2156 Basically, you can read messages only typing space key again and again.
2157
2158 To update summary status to the newest status (synchronize),
2159 type @kbd{s} key.
2160
2161 You can jump to next unread message by typing @kbd{N} key, and @kbd{n} key
2162 moves cursor to the next message.
2163 Enter message buffer by typing @kbd{j} key.
2164 To operate multipart, you have to enter to the message buffer.
2165
2166 @subsection Thread Operations
2167
2168 For example, the following line indicates one thread (a context of a topic).
2169
2170 @example
2171   384  09/17(Thu)01:32 [+1: Teranishi       ] wl-0.6.2
2172 @end example
2173
2174 @noindent
2175
2176 If you type @kbd{/} on this line, the thread is opened and it changes
2177 the appearance like following.
2178
2179 @example
2180   384  09/17(Thu)01:32 [ Teranishi          ] wl-0.6.2
2181   388  09/17(Thu)22:34 +-[ Murata san         ]
2182 @end example
2183
2184 (Message 388 is the replied message to the message 384.)
2185 If you type @kbd{/} key once again, the thread is closed.
2186 With prefix argument, @kbd{/} opens all children threads.
2187
2188 Commands with the key binding that begins with @kbd{t} executes commands
2189 on the messages in the thread.
2190
2191 @subsection Cache File
2192
2193 The messages which have to access via network (e.x. IMAP, NNTP folder) 
2194 are cached as a local file.
2195 The cache file is saved under the directory @file{~/.elmo/cache}.
2196
2197 To expire cache, type following.
2198
2199 @example
2200 M-x elmo-cache-expire-by-size
2201 @end example
2202
2203 @noindent
2204
2205 The command deletes cache files to the specified size by the order of
2206 last accessed time.
2207
2208 @subsection Buffer Cache and Prefetching
2209
2210 If the value of @code{elmo-use-buffer-cache} is non-nil,
2211 the messages that are read are kept in the cache buffer.
2212 It is called `buffer cache'. 
2213 The number of cache buffer is specified by @code{elmo-buffer-cache-size}.
2214
2215 There are message prefetching mechanism in the Wanderlust that prefetches next
2216 message while you are reading.  This function requires that the value of
2217 @code{elmo-use-buffer-cache} is non-nil.
2218
2219 You can control the message prefetching mechanism by these two variables.
2220
2221 @table @code
2222 @item wl-cache-prefetch-folder-type-list
2223 @vindex wl-cache-prefetch-folder-type-list
2224 The initial setting is '(nntp imap4).
2225 It specifies the folder types in which message prefetching is enabled.
2226 In the initial setting, multi folder that contains localdir and imap4 
2227 prefetches only imap4 messages.
2228 This variable precedes the value of @code{wl-cache-prefetch-folder-list}.
2229
2230 If you want to prefetch localdir and localnews also, following setting is needed.
2231 @lisp
2232 (setq wl-cache-prefetch-folder-type-list
2233       '(nntp imap4 localdir localnews))
2234 @end lisp
2235
2236 @item wl-cache-prefetch-folder-list
2237 @vindex wl-cache-prefetch-folder-list
2238 The initial setting is nil.
2239 A list of regexp of folders to enable message prefetching.
2240 @end table
2241
2242 @subsection Auto Refile
2243
2244 You refile messages automatically, by typing @kbd{C-o}
2245 (@code{wl-summary-auto-refile}). It decides destination of refile by
2246 the content of the message header information (information in the msgdb).
2247
2248 By default, @samp{From}, @samp{Subject}, @samp{To} and @samp{Cc} is available.
2249 If you want to decide destination by other header fields, 
2250 set the variable @code{elmo-msgdb-extra-fields} like following.
2251
2252 @lisp
2253 (setq elmo-msgdb-extra-fields
2254       '("x-ml-name"
2255       "reply-to"
2256       "sender"
2257       "mailing-list"
2258       "newsgroups"))
2259 @end lisp
2260
2261 @noindent
2262
2263 By this setting, Wanderlust saves extra fields in the msgdb.  You have
2264 to type @kbd{s all} to get extra fields for the messages that are
2265 already exists in the summary.
2266
2267 Then, specify the refile rule in the @code{wl-refile-rule-alist} like
2268 following.
2269
2270 @lisp
2271 (setq wl-refile-rule-alist
2272       '(
2273         ("x-ml-name"
2274          ("^Wanderlust" . "+wl")
2275          ("^Elisp" . "+elisp"))
2276         ("From"
2277          ("teranisi@@isl.ntt.co.jp" . "+teranisi"))))
2278 @end lisp
2279
2280 After these setting, refile marks are automatically put on the condition
2281 matched messages by typing @kbd{C-o} (@code{wl-summary-auto-refile}).
2282 The rule matched first is applied.
2283
2284 Messages which have @code{wl-summary-auto-refile-skip-marks} is skipped
2285 auto refiling. 
2286 By default, @samp{N}, @samp{U} and @samp{!} is specified, so the messages
2287 with these persistent marks are not automatically refiled.
2288 It means Wanderlust does not execute auto refile on unread messages by
2289 the default setting.
2290 To execute auto refile on all messages, set following.
2291
2292 @lisp
2293 (setq wl-summary-auto-refile-skip-marks nil)
2294 @end lisp
2295
2296 @subsection Sticky Summary
2297 @cindex Summary, Sticky
2298 @cindex Sticky Summary
2299
2300 The buffer of the `sticky summary' does not killed by typing @kbd{q}. 
2301
2302 Sticky buffer is created by entering the summary by typing @kbd{C-u g} or
2303 type @kbd{M-s} (@code{wl-summary-stick}) on the normal summary.
2304
2305 The buffer name of the sticky summary becomes like 
2306 @samp{Summary:@var{folder-name}}.
2307
2308 You can visit the sticky summary at any time by @kbd{C-x b}
2309 (@code{switch-to-buffer}).  To exit sticky summary, type @kbd{C-u
2310 q}. Other operations in the sticky summary are same as normal summary.
2311
2312 @code{wl-summary-always-sticky-folder-list} specifies the folders that are
2313 automatically sticked.
2314
2315 @section Key bindings
2316 @cindex Keybind, Summary Mode
2317 @cindex Keybind, Summary Buffer
2318
2319 Key bindings of the summary mode are shown below.
2320
2321 @table @kbd
2322 @item @key{SPC}
2323 @kindex @key{SPC} (Summary)
2324 @findex wl-summary-read
2325 Proceed reading a message at the current cursor point.
2326 (@code{wl-summary-read})
2327
2328 @item .
2329 @kindex . (Summary)
2330 @findex wl-summary-redisplay
2331 Redisplay a message at the current cursor point.
2332 If this command is called with prefix argument, 
2333 Redisplay message regardless of the message cache (message is re-loaded
2334 from source). 
2335 (@code{wl-summary-redisplay})
2336
2337 @item <
2338 @kindex < (Summary)
2339 @findex wl-summary-display-top
2340 Display the top message in the folder.
2341 (@code{wl-summary-display-top})
2342
2343 @item >
2344 @kindex > (Summary)
2345 @findex wl-summary-display-bottom
2346 Display the bottom message in the folder.
2347 (@code{wl-summary-display-bottom})
2348
2349 @item @key{BS}
2350 @itemx @key{DEL}
2351 @kindex @key{BS} (Summary)
2352 @kindex @key{DEL} (Summary)
2353 Display the previous page of the message at the current cursor point.
2354 @findex wl-summary-prev-page
2355 (@code{wl-summary-prev-page})
2356
2357 @item @key{RET}
2358 @kindex @key{RET} (Summary)
2359 @findex wl-summary-next-line-content
2360 Display the next line of the message at the current cursor point.
2361 Display the message at the current cursor point if it is not displayed yet.
2362 (@code{wl-summary-next-line-content})
2363
2364 @item /
2365 @kindex / (Summary)
2366 @findex wl-thread-open-close
2367 Toggle open or close the thread at the current cursor point.
2368 (@code{wl-thread-open-close})
2369
2370 @item [
2371 @kindex [ (Summary)
2372 Open all threads.
2373 @findex wl-thread-open-all
2374 (@code{wl-thread-open-all})
2375
2376 @item ]
2377 @kindex ] (Summary)
2378 Close all threads.
2379 @findex wl-thread-close-all
2380 (@code{wl-thread-close-all})
2381
2382 @item -
2383 @itemx M-@key{RET}
2384 @kindex - (Summary)
2385 @kindex M-@key{RET} (Summary)
2386 @findex wl-summary-prev-line-content
2387 Display the previous line of the message at the current cursor point.
2388 Display the message at the current cursor point if it is not displayed yet.
2389 (@code{wl-summary-prev-line-content})
2390
2391 @item g
2392 @kindex g (Summary)
2393 @findex wl-summary-goto-folder
2394 Go to other folder.
2395 (@code{wl-summary-goto-folder})
2396
2397 @item c
2398 @kindex c (Summary)
2399 Mark all messages in the folder as read.
2400 @findex wl-summary-mark-as-read-all
2401 (@code{wl-summary-mark-as-read-all})
2402
2403 @item a
2404 @kindex a (Summary)
2405 @findex wl-summary-reply
2406 Prepare a draft for reply the message at the current cursor point.
2407 (@code{wl-summary-reply})
2408
2409 @item A
2410 @kindex A (Summary)
2411 @findex wl-summary-reply-with-citation
2412 Prepare a draft for reply the message at the current cursor point.
2413 (@code{wl-summary-reply-with-citation})
2414
2415 @item C
2416 @kindex C (Summary)
2417 @findex wl-summary-cancel-message
2418 If the message at current cursor point is your own netnews article,
2419 cancel it.
2420 (@code{wl-summary-cancel-message})
2421
2422 @item E
2423 @kindex E (Summary)
2424 @findex wl-summary-reedit
2425 Prepare a draft for re-editing the message at current cursor point.
2426 If the message at current cursor point is your own netnews article,
2427 a draft for `supersedes message' for the message is prepared.
2428 (@code{wl-summary-reedit})
2429
2430 @item M-e
2431 @kindex M-e (Summary)
2432 @findex wl-summary-resend-bounced-mail
2433 If the message at current cursor point is a bounced message,
2434 a draft for re-sending original message is prepared.
2435 (@code{wl-summary-resend-bounced-mail})
2436
2437 @item f
2438 @kindex f (Summary)
2439 @findex wl-summary-forward
2440 A draft for forwarding the message at current cursor point is prepared.
2441 (@code{wl-summary-forward})
2442
2443 @item $
2444 @kindex $ (Summary)
2445 @findex wl-summary-mark-as-important
2446 Put @samp{$} mark on the message at current cursor point.
2447 If already marked as @samp{$}, delete it.
2448 (@code{wl-summary-mark-as-important})
2449
2450 @item y
2451 @itemx e
2452 @kindex y (Summary)
2453 @kindex e (Summary)
2454 Save the message at current cursor point.
2455 @findex wl-summary-save
2456 (@code{wl-summary-save})
2457
2458 @item n
2459 @kindex n (Summary)
2460 @findex wl-summary-next
2461 Move cursor to the next message.
2462 (@code{wl-summary-next})
2463
2464 @item p
2465 @kindex p (Summary)
2466 @findex wl-summary-prev
2467 Move cursor to the previous message.
2468 (@code{wl-summary-prev})
2469
2470 @item N
2471 @kindex N (Summary)
2472 @findex wl-summary-down
2473 Move cursor to the downward message which is unread or marked
2474 as @samp{$}.
2475 (@code{wl-summary-down})
2476
2477 @item P
2478 @kindex P (Summary)
2479 @findex wl-summary-up
2480 Move cursor to the upward message which is unread or marked
2481 as @samp{$}.
2482 (@code{wl-summary-up})
2483
2484 @item w
2485 @kindex w (Summary)
2486 @findex wl-draft
2487 Prepare a new draft.
2488 (@code{wl-draft})
2489
2490 @item W
2491 @kindex W (Summary)
2492 @findex wl-draft-write-current-newsgroup
2493 Prepare a new draft.
2494 If the current folder is netnews folder, Newsgroups: field is completed.
2495 (@code{wl-draft-write-current-newsgroup})
2496
2497 @item H
2498 @kindex H (Summary)
2499 @findex wl-summary-redisplay-all-header
2500 Redisplay the message at current cursor point with all header fields.
2501 (@code{wl-summary-redisplay-all-header})
2502
2503 @item M
2504 @kindex M (Summary)
2505 @findex wl-summary-redisplay-no-mime
2506 Redisplay the message at current cursor point without MIME analysis.
2507 (@code{wl-summary-redisplay-no-mime})
2508
2509 @item B
2510 @kindex B (Summary)
2511 @findex wl-summary-burst
2512 If the message at current cursor point has 
2513 encapsulates multiple messages using MIME,
2514 de-capsulate and extract them on the current folder.
2515 (@code{wl-summary-burst})
2516
2517 @item @@
2518 @kindex @@ (Summary)
2519 @findex wl-summary-edit-addresses
2520 Append/change/delete the message's sender information to the address book
2521 @file{~/.addresses} interactively.
2522 If this command is called with prefix argument, arbitrary address can be edited.
2523 (@code{wl-summary-edit-petname})
2524
2525 @item Z
2526 @kindex Z (Summary)
2527 @findex wl-status-update
2528 Sync up address book status with @file{~/.addresses}'s content.
2529 (@code{wl-status-update})
2530
2531 @item |
2532 @kindex | (Summary)
2533 @findex wl-summary-pipe-message
2534 Pipe current message's content to the external process.
2535 (@code{wl-summary-pipe-message})
2536
2537 @item #
2538 @kindex # (Summary)
2539 @findex wl-summary-print-message
2540 Print out current message's content.
2541 It uses ps-print module in Emacs 20.x.
2542 If you don't use color printer, you might want to set
2543 @code{wl-ps-print-buffer-func} to 'ps-print-buffer.
2544 (@code{wl-summary-print-message})
2545
2546 @item q
2547 @kindex q (Summary)
2548 @findex wl-summary-exit
2549 Exit current folder.
2550 (@code{wl-summary-exit})
2551
2552 @item j
2553 @kindex j (Summary)
2554 @findex wl-summary-jump-to-current-message
2555 Jump cursor to the currently displayed message's window.
2556 (@code{wl-summary-jump-to-current-message})
2557
2558 @item J
2559 @kindex J (Summary)
2560 Jump cursor to the other message.
2561 @findex wl-summary-jump-to-msg
2562 (@code{wl-summary-jump-to-msg})
2563
2564 @item I
2565 @kindex I (Summary)
2566 Update summary status and
2567 prefetch all messages which have marks included in the 
2568 @code{wl-summary-incorporate-marks}.
2569 @findex wl-summary-incorporate
2570 (@code{wl-summary-incorporate})
2571
2572 @item M-j
2573 @kindex M-j (Summary)
2574 @findex wl-summary-jump-to-msg-by-message-id
2575 Jump cursor to the message which have specified Message-Id.
2576 If @code{elmo-use-database} is non-nil, other folder is also searched.
2577 (@code{wl-summary-jump-to-msg-by-message-id})
2578
2579 @item ^
2580 @kindex ^ (Summary)
2581 Jump to parent message.
2582 @findex wl-summary-jump-to-parent-message
2583 (@code{wl-summary-jump-to-parent-message})
2584
2585 @item !
2586 @kindex ! (Summary)
2587 @findex wl-summary-mark-as-unread
2588 Mark as unread the message at current cursor point.
2589 (@code{wl-summary-mark-as-unread})
2590
2591 @item s
2592 @kindex s (Summary)
2593 @findex wl-summary-sync
2594 Synchronize summary view after prompting the update range
2595 (all, update, rescan, first, last).
2596
2597 @example
2598 all            ...Discard current summary and update all message.
2599 update         ...Update the difference between summary and the folder itself.
2600 rescan         ...Rescan the msgdb and display again.
2601 rescan-noscore ...Rescan the msgdb and display again (without scoring).
2602 first, last    ...Move to the filter folder(partial filter).
2603 @end example
2604
2605 @noindent
2606 (@code{wl-summary-sync})
2607
2608 @item S
2609 @kindex S (Summary)
2610 @findex wl-summary-sort
2611 Sort summary order.
2612 You can sort by date, from, number and subject.
2613 (@code{wl-summary-sort})
2614
2615 @item T
2616 @kindex T (Summary)
2617 @findex wl-summary-toggle-thread
2618 Toggle the threading.
2619 (@code{wl-summary-toggle-thread})
2620
2621 @item l
2622 @kindex l (Summary)
2623 @findex wl-summary-toggle-disp-folder
2624 Toggle displaying of folder window.
2625 (@code{wl-summary-toggle-disp-folder})
2626
2627 @item v
2628 @kindex v (Summary)
2629 Toggle displaying of message window.
2630 @findex wl-summary-toggle-disp-msg
2631 (@code{wl-summary-toggle-disp-msg})
2632
2633 @item V
2634 @kindex V (Summary)
2635 Move to the virtual folder with the condition specified.
2636 If called with prefix argument and current folder is virtual, exit it.
2637 @findex wl-summary-virtual
2638 (@code{wl-summary-virtual})
2639
2640 @item @key{TAB}
2641 @kindex @key{TAB} (Summary)
2642 @findex wl-summary-goto-last-displayed-msg
2643 Jump to the message which is displayed last.
2644 (@code{wl-summary-goto-last-displayed-msg})
2645
2646 @item ?
2647 @kindex ? (Summary)
2648 Put @samp{*} mark on the messages that satisfies the specified condition.
2649 @findex wl-summary-pick
2650 (@code{wl-summary-pick})
2651
2652 @item R
2653 @kindex R (Summary)
2654 @findex wl-summary-mark-as-read
2655 Mark as read the message at the current cursor point.
2656 (@code{wl-summary-mark-as-read})
2657
2658 @item i
2659 @kindex i (Summary)
2660 Prefetch the message at the current cursor point.
2661 @findex wl-summary-prefetch
2662 (@code{wl-summary-prefetch})
2663
2664 @item x
2665 @kindex x (Summary)
2666 Execute @samp{D}, @samp{o} and @samp{O} marks.
2667 @findex wl-summary-exec
2668 (@code{wl-summary-exec})
2669
2670 @item *
2671 @kindex * (Summary)
2672 @findex wl-summary-target-mark-line
2673 Put target mark on the message at the current cursor point.
2674 (@code{wl-summary-target-mark-line})
2675
2676 @item o
2677 @kindex o (Summary)
2678 Put refile mark on the message at the current cursor point.
2679 @findex wl-summary-refile
2680 (@code{wl-summary-refile})
2681
2682 @item C-o
2683 @kindex C-o (Summary)
2684 Execute auto refile.
2685 @findex wl-summary-auto-refile
2686 (@code{wl-summary-auto-refile})
2687
2688 @item O
2689 @kindex O (Summary)
2690 Put copy mark on the message at the current cursor point.
2691 @findex wl-summary-copy
2692 (@code{wl-summary-copy})
2693
2694 @item M-o
2695 @kindex M-o (Summary)
2696 Put refile mark on the message at the current cursor point with the destination
2697 previously specified.
2698 @findex wl-summary-refile-prev-destination
2699 (@code{wl-summary-refile-prev-destination})
2700
2701 @item d
2702 @kindex d (Summary)
2703 @findex wl-summary-delete
2704 Put delete mark on the message at the current cursor point.
2705 (@code{wl-summary-delete})
2706
2707 @item u
2708 @kindex u (Summary)
2709 @findex wl-summary-unmark
2710 Unmark the temporal mark on the message at the current cursor point.
2711 (@code{wl-summary-unmark})
2712
2713 @item U
2714 @kindex U (Summary)
2715 Unmark all the temporal marks.
2716 @findex wl-summary-unmark-all
2717 (@code{wl-summary-unmark-all})
2718
2719 @item r R
2720 @kindex r R (Summary)
2721 @findex wl-summary-mark-as-read-region
2722 Mark as read messages in the specified region.
2723 (@code{wl-summary-mark-as-read-region})
2724
2725 @item r $
2726 @kindex r $ (Summary)
2727 @findex wl-summary-mark-as-important-region
2728 Mark as important @samp{$} messages in the specified region.
2729 If @samp{$} already exists, it is deleted.
2730 (@code{wl-summary-mark-as-important-region})
2731
2732 @item r !
2733 @kindex r ! (Summary)
2734 @findex wl-summary-mark-as-unread-region
2735 Mark as unread messages in the specified region.
2736 (@code{wl-summary-mark-as-unread-region})
2737
2738 @item r i
2739 @kindex r i (Summary)
2740 @findex wl-summary-prefetch-region
2741 Prefetch messages in the specified region.
2742 (@code{wl-summary-prefetch-region})
2743
2744 @item r x
2745 @kindex r x (Summary)
2746 @findex wl-summary-exec-region
2747 Execute @samp{D}, @samp{o} and @samp{O} marks on the messages in the
2748 specified region.
2749 (@code{wl-summary-exec-region})
2750
2751 @item r *
2752 @kindex r * (Summary)
2753 @findex wl-summary-target-mark-region
2754 Put target mark on the messages in the specified region.
2755 (@code{wl-summary-target-mark-region})
2756
2757 @item r o
2758 @kindex r o (Summary)
2759 @findex wl-summary-refile-region
2760 Put refile mark on the messages in the specified region.
2761 (@code{wl-summary-refile-region})
2762
2763 @item r O
2764 @kindex r O (Summary)
2765 @findex wl-summary-copy-region
2766 Put copy mark on the messages in the specified region.
2767 (@code{wl-summary-copy-region})
2768
2769 @item r d
2770 @kindex r d (Summary)
2771 @findex wl-summary-delete-region
2772 Put delete mark on the messages in the specified region.
2773 (@code{wl-summary-delete-region})
2774
2775 @item r u
2776 @kindex r u (Summary)
2777 @findex wl-summary-unmark-region
2778 Delete temporal mark on the messages in the specified region.
2779 (@code{wl-summary-unmark-region})
2780
2781 @item r y
2782 @kindex r y (Summary)
2783 Save messages in the specified region.
2784 @findex wl-summary-save-region
2785 (@code{wl-summary-save-region})
2786
2787 @item t R
2788 @kindex t R (Summary)
2789 @findex wl-thread-mark-as-read
2790 Mark as read messages which are the descendant of the current thread.
2791 With prefix argument, it affects on the all messages in the thread tree.
2792 (@code{wl-thread-mark-as-read})
2793
2794 @item t $
2795 @kindex t $ (Summary)
2796 @findex wl-thread-mark-as-important
2797 Put important mark @samp{$} on the messages which are the 
2798 descendant of the current thread.
2799 If @samp{$} mark exists, it is deleted.
2800 With prefix argument, it affects on the all messages in the thread tree.
2801 (@code{wl-thread-mark-as-important})
2802
2803 @item t !
2804 @kindex t ! (Summary)
2805 @findex wl-thread-mark-as-unread
2806 Mark as unread messages which are the descendant of the current thread.
2807 With prefix argument, it affects on the all messages in the thread tree.
2808 (@code{wl-thread-mark-as-unread})
2809
2810 @item t i
2811 @kindex t i (Summary)
2812 @findex wl-thread-prefetch
2813 Prefetch messages which are the descendant of the current thread.
2814 With prefix argument, it affects on the all messages in the thread tree.
2815 (@code{wl-thread-prefetch})
2816
2817 @item t x
2818 @kindex t x (Summary)
2819 @findex wl-thread-exec
2820 Execute @samp{D}, @samp{o} and @samp{O} marks on the messages which are
2821 the descendant of the current thread.  With prefix argument, it affects
2822 on the all messages in the thread tree.
2823 (@code{wl-thread-exec})
2824
2825 @item t *
2826 @kindex t * (Summary)
2827 @findex wl-thread-target-mark
2828 Put target mark @samp{*} on the messages which are the descendant of the
2829 current thread.  With prefix argument, it affects on the all messages in
2830 the thread tree.
2831 (@code{wl-thread-target-mark})
2832
2833 @item t o
2834 @kindex t o (Summary)
2835 @findex wl-thread-refile
2836 Put refile mark on the messages which are the descendant of the current thread.
2837 With prefix argument, it affects on the all messages in the thread tree.
2838 (@code{wl-thread-refile})
2839
2840 @item t O
2841 @kindex t O (Summary)
2842 @findex wl-thread-copy
2843 Put copy mark on the messages which are the descendant of the current thread.
2844 With prefix argument, it affects on the all messages in the thread tree.
2845 (@code{wl-thread-copy})
2846
2847 @item t d
2848 @kindex t d (Summary)
2849 @findex wl-thread-delete
2850 Put delete mar on the messages which are the descendant of the current thread.
2851 With prefix argument, it affects on the all messages in the thread tree.
2852 (@code{wl-thread-delete})
2853
2854 @item t u
2855 @kindex t u (Summary)
2856 @findex wl-thread-unmark
2857
2858 Unmark temporal mark on the messages which are the descendant of the
2859 current thread. With prefix argument, it affects on the all messages in
2860 the thread tree. 
2861 (@code{wl-thread-unmark})
2862
2863 @item t y
2864 @kindex t y (Summary)
2865 @findex wl-thread-save
2866 Save messages which are the descendant of the current thread.
2867 With prefix argument, it affects on the all messages in the thread tree.
2868 (@code{wl-thread-save})
2869
2870 @item m i
2871 @kindex m i (Summary)
2872 @findex wl-summary-target-mark-prefetch
2873 Prefetch all messages which have target mark @samp{*}.
2874 (@code{wl-summary-target-mark-prefetch})
2875
2876 @item m R
2877 @kindex m R (Summary)
2878 @findex wl-summary-target-mark-mark-as-read
2879 Mark as read all messages which have target mark @samp{*}.
2880 (@code{wl-summary-target-mark-mark-as-read})
2881
2882 @item m $
2883 @kindex m $ (Summary)
2884 @findex wl-summary-target-mark-mark-as-important
2885 Mark as important all messages which have target mark @samp{*}.
2886 If already marked as @samp{$}, it is deleted.
2887 (@code{wl-summary-target-mark-mark-as-important})
2888
2889 @item m !
2890 @kindex m ! (Summary)
2891 @findex wl-summary-target-mark-mark-as-unread
2892 Mark as unread all messages which have target mark @samp{*}.
2893 (@code{wl-summary-target-mark-mark-as-unread})
2894
2895 @item m o
2896 @kindex m o (Summary)
2897 @findex wl-summary-target-mark-refile
2898 Put refile mark on the messages which have target mark @samp{*}.
2899 (@code{wl-summary-target-mark-refile})
2900
2901 @item m O
2902 @kindex m O (Summary)
2903 @findex wl-summary-target-mark-copy
2904 Put copy mark on the messages which have target mark @samp{*}.
2905 (@code{wl-summary-target-mark-copy})
2906
2907 @item m d
2908 @kindex m d (Summary)
2909 @findex wl-summary-target-mark-delete
2910 Put delete mark on the messages which have target mark @samp{*}.
2911 (@code{wl-summary-target-mark-delete})
2912
2913 @item m y
2914 @kindex m y (Summary)
2915 @findex wl-summary-target-mark-save
2916 Save messages which have target mark @samp{*}.
2917 (@code{wl-summary-target-mark-save})
2918
2919 @item m u
2920 @kindex m u (Summary)
2921 Unmark all temporal marks.
2922 (@code{wl-summary-delete-all-temp-marks})
2923 @findex wl-summary-delete-all-temp-marks
2924
2925 @item m a
2926 @kindex m a (Summary)
2927 Put target mark @samp{*} on the all messages.
2928 (@code{wl-summary-target-mark-all})
2929 @findex wl-summary-target-mark-all
2930
2931 @item m t
2932 @kindex m t (Summary)
2933 Put target mark @samp{*} on the messages in the current thread.
2934 @findex wl-summary-target-mark-thread
2935 (@code{wl-summary-target-mark-thread})
2936
2937 @item m r
2938 @kindex m r (Summary)
2939 @findex wl-summary-target-mark-region
2940 Put target mark @samp{*} on the messages in the specified region.
2941 (@code{wl-summary-target-mark-region})
2942
2943 @item m A
2944 @kindex m A (Summary)
2945 @findex wl-summary-target-mark-reply-with-citation
2946 Prepare a draft which cites all messages which have target mark @samp{*}.
2947 (@code{wl-summary-target-mark-reply-with-citation})
2948
2949 @item m f
2950 @kindex m f (Summary)
2951 @findex wl-summary-target-mark-forward
2952 Prepare a draft which forwards all messages which have target mark @samp{*}.
2953 (@code{wl-summary-target-mark-forward})
2954
2955 @item m U
2956 @kindex m U (Summary)
2957 @findex wl-summary-target-mark-uudecode
2958 Uudecode the messages which have target mark @samp{*}.
2959 (@code{wl-summary-target-mark-uudecode})
2960
2961 @item m ?
2962 @kindex m ? (Summary)
2963 @findex wl-summary-target-mark-pick
2964 Pick messages from the @samp{*} marked messages. 
2965 That is, @samp{*} marks on the messages are remained
2966 if the specified condition is satisfied.
2967 (@code{wl-summary-target-mark-pick})
2968
2969 @item M-t
2970 @kindex M-t (Summary)
2971 @findex wl-toggle-plugged
2972 Toggle offline/online status of Wanderlust.
2973 (@code{wl-toggle-plugged})
2974
2975 @item C-t
2976 @kindex C-t (Summary)
2977 Start Wanderlust's plug-status manager.
2978 (@code{wl-plugged-change})
2979
2980 @item C-c C-o
2981 @kindex C-c C-o (Summary)
2982 @findex wl-jump-to-draft-buffer
2983 Move to the draft buffer if available.  If multiple draft buffer exists,
2984 moved to one after another.  If prefix argument is specified, load draft
2985 folder's message to the draft buffer and jump to it.
2986 (@code{wl-jump-to-draft-buffer})
2987 @end table
2988
2989 @section Customize variables
2990
2991 @table @code
2992 @item wl-summary-move-order
2993 @vindex wl-summary-move-order
2994 The initial setting is 'unread.
2995 Specify cursor moving policy.
2996 If you want to precede new messages, set 'new.
2997 If you want to precede unread messages, set 'unread.
2998 If nil, proceed to next message.
2999
3000 @item wl-auto-select-first
3001 @vindex wl-auto-select-first
3002 The initial setting is nil.
3003 If non-nil, first message is automatically displayed.
3004
3005 @item wl-auto-select-next
3006 @vindex wl-auto-select-next
3007 The initial setting is nil.
3008 If non-nil, jump to next summary automatically.
3009 If 'unread, jump to next unread folder's summary after confirmation.
3010 If 'skip-no-unread, unread folders are automatically skipped.
3011
3012 @item wl-thread-insert-opened
3013 @vindex wl-thread-insert-opened
3014 The initial setting is nil.
3015 If non-nil, thread is inserted as opened.
3016
3017 @item wl-thread-open-reading-thread
3018 @vindex wl-thread-open-reading-thread
3019 The initial setting is t.
3020 If non-nil, reading thread is automatically opened though it is closed thread.
3021
3022 @item wl-summary-exit-next-move
3023 @vindex wl-summary-exit-next-move
3024 The initial setting is t.
3025 If non-nil, move to next folder at summary exit.
3026
3027 @item wl-folder-move-cur-folder
3028 @vindex wl-folder-move-cur-folder
3029 The initial setting is nil.
3030 If non-nil, cursor position on the folder is moved.
3031
3032 @item wl-summary-weekday-name-lang
3033 @vindex  wl-summary-weekday-name-lang
3034 The initial setting is "ja".
3035 Specify language of the weekday.
3036 "en" displays English, "fr" displays French, "de" displays Deutsch.
3037
3038 @item wl-summary-fix-timezone
3039 @vindex  wl-summary-fix-timezone
3040 The initial setting is "JST".
3041 Timezone to adjust summary's timezone.
3042 If nil, adjust to UTC.
3043
3044 @item wl-use-petname
3045 @vindex  wl-use-petname
3046 The initial setting is t.
3047 If non-nil, sender part displays nickname.
3048
3049 @item wl-break-pages
3050 @vindex  wl-break-pages
3051 The initial setting is t.
3052 If non-nil, message is splitted as pages by @samp{^L}.
3053
3054 @item wl-message-window-size
3055 @vindex  wl-message-window-size
3056 The initial setting is '(1 . 4).
3057 A cons cell to specify the rate of summary and message window.
3058 car:cdr corresponds summary:message.
3059
3060 @item wl-summary-recenter
3061 @vindex  wl-summary-recenter
3062 The initial setting is t.
3063 If non-nil, cursor point is moved to the center of the summary window.
3064
3065 @item wl-summary-indent-length-limit
3066 @vindex  wl-summary-indent-length-limit
3067 The initial setting is 46.
3068 Specify the limit of thread indent level.
3069 If nil, max indent level is unlimited.
3070
3071 @item wl-summary-no-from-message
3072 @vindex  wl-summary-no-from-message
3073 The initial setting is "nobody@@nowhere?".
3074 A string which is displayed when there's no From: field in the message.
3075
3076 @item wl-summary-no-subject-message
3077 @vindex  wl-summary-no-subject-message
3078 The initial setting is "(WL:No Subject in original.)".
3079 A string which is displayed when there's no Subject: field in the message.
3080
3081 @item wl-summary-width
3082 @vindex  wl-summary-width
3083 The initial setting is 80.
3084 Width of summary line. If nil, summary line's width is as is.
3085
3086 @item wl-use-folder-petname
3087 @vindex  wl-use-folder-petname
3088 The initial setting is '(modeline).
3089 A list of display policy (symbol) of folder nickname.
3090 Available symbols are:
3091
3092 @table @code
3093 @item modeline
3094 Display folder petname on modeline.
3095 @item ask-folder
3096 Destination folder is notified as nickname if
3097 @code{wl-auto-select-next} is non-nil.
3098 @item read-folder
3099 You can input folder name by nickname in the function
3100 @code{wl-summary-read-folder}.
3101 @end table
3102
3103 @item wl-summary-move-direction-toggle
3104 @vindex  wl-summary-move-direction-toggle
3105 The initial setting is t.
3106 If non-nil, last executed @kbd{p}, @kbd{P}, @kbd{n}, @kbd{N} toggles
3107 the direction of cursor move.
3108 If you want to aware of reading direction, set this to t.
3109
3110 @item wl-from-width
3111 @vindex wl-from-width
3112 The initial setting is 17.
3113 Width of sender part of summary line.
3114
3115 @item wl-summary-divide-thread-when-subject-changed
3116 @vindex wl-summary-divide-thread-when-subject-changed
3117 The initial setting is nil.
3118 If non-nil, thread is splitted if the subject is changed.
3119
3120 @item wl-summary-search-via-nntp
3121 @vindex wl-summary-search-via-nntp
3122 The initial setting is 'confirm.
3123 If non-nil and @code{wl-summary-jump-to-msg-by-message-id} failed,
3124 call @code{wl-summary-jump-to-msg-by-message-id-via-nntp} and
3125 search message from the NNTP server @code{elmo-default-nntp-server}.
3126 The value of @code{elmo-default-nntp-user}, @code{elmo-default-nntp-port}, 
3127 @code{elmo-default-nntp-ssl} are used. If 'confirm, server name can
3128 be specified. You can specify NNTP folder format like 
3129 @samp{-:username@@servername:119!}.
3130
3131 @item wl-summary-keep-cursor-command
3132 @vindex wl-summary-keep-cursor-command
3133 The initial setting is 
3134 '(wl-summary-goto-folder wl-summary-goto-last-visited-folder).
3135 When you entered to summary by these commands and the target summary
3136 buffer already exists, summary status is not automatically updated and 
3137 cursor position is saved.
3138
3139 @item wl-summary-update-confirm-threshold
3140 @vindex wl-summary-update-confirm-threshold
3141 The initial setting is 500.
3142 If updated message number is larger than this value, 
3143 confirm whether drop them or not.
3144
3145 @item wl-summary-always-sticky-folder-list
3146 @vindex wl-summary-always-sticky-folder-list
3147 The initial setting is nil.
3148 @code{wl-summary-always-sticky-folder-list} specifies the folders that are
3149 automatically sticked. Each element is regexp of folder name.
3150
3151 @item wl-summary-reserve-mark-list
3152 @vindex wl-summary-reserve-mark-list
3153 The initial setting is '("o" "O" "D").
3154 If a message is already marked as temporal marks in this list, 
3155 the message is not marked by any mark command.
3156
3157 @item wl-summary-skip-mark-list
3158 @vindex wl-summary-skip-mark-list
3159 The initial setting is '("D").
3160 If a message is already marked as temporal marks in this list, 
3161 the message is skipped at cursor move.
3162
3163 @item wl-fetch-confirm-threshold
3164 @vindex wl-fetch-confirm-threshold
3165 The initial setting is 30000 (bytes).
3166 If displaying message has larger size than this value,
3167 Wanderlust confirms whether fetch the message or not.
3168 If nil, the message is fetched without confirmation.
3169
3170 @item wl-prefetch-threshold
3171 @vindex wl-prefetch-threshold
3172 The initial setting is 30000 (bytes). 
3173 If prefetching message has larger size than this value and
3174 @code{wl-prefetch-confirm} is non-nil,
3175 Wanderlust confirms whether prefetch the message or not.
3176 If @code{wl-prefetch-threshold} is nil, the message is prefetched
3177 without confirmation.
3178
3179 @item wl-prefetch-confirm
3180 @vindex wl-prefetch-confirm
3181 The initial setting is t. If non-nil, 
3182 Wanderlust confirms whether prefetch the message or not if the
3183 message has larger size than @code{wl-prefetch-threshold}.
3184
3185 @item wl-cache-fetch-threshold
3186 @vindex wl-cache-fetch-threshold
3187 The initial setting is 30000 (bytes).
3188 The messages which have larger size than @code{wl-fetch-confirm-threshold}
3189 are skipped buffer caching mechanism. If nil, any messages are prefetched by
3190 buffer caching mechanism.
3191
3192 @item elmo-imap4-use-cache
3193 @vindex elmo-imap4-use-cache
3194 The initial setting is t.
3195 If non-nil, messages read via IMAP4 are cached.
3196
3197 @item elmo-nntp-use-cache
3198 @vindex elmo-nntp-use-cache
3199 The initial setting is t.
3200 If non-nil, messages read via NNTP are cached.
3201
3202 @item elmo-pop3-use-cache
3203 @vindex elmo-pop3-use-cache
3204 The initial setting is t.
3205 If non-nil, messages read via POP3 are cached.
3206 @end table
3207
3208 @c
3209 @c  Message
3210 @c
3211 @node Message, Draft, Summary, Top
3212 @chapter Message Buffer
3213
3214 Message Buffers utilize MIME-View mode of SEMI/tm.
3215 For operational procedures and key bindings, refer to respective
3216 documents.
3217 @xref{MIME-View, , ,mime-ui-ja, a MIME user interface for GNU Emacs}.
3218
3219 @kbd{p} at the top of a message or @kbd{n} at the bottom of a message
3220 brings you back to Summary mode.
3221 @kbd{l} toggles display of Summary mode buffer.
3222
3223 @section Key Bindings
3224
3225 @table @kbd
3226
3227 @item l
3228 @kindex l (Message)
3229 @findex wl-message-toggle-disp-summary
3230 Toggles display of Summary mode buffer.
3231 (@code{wl-message-toggle-disp-summary})
3232
3233 @item Button-2
3234 @findex wl-message-refer-article-or-url
3235 @kindex Button-2 (Message)
3236 Assumes Message-ID at the mouse pointer, and shows the corresponding
3237 message if found.
3238 (@code{wl-message-refer-article-or-url})
3239
3240 @item Button-4 (upward movement of a wheel)
3241 @kindex Button-4 (Message)
3242 @findex wl-message-wheel-down
3243 Scrolls the message backwards.  When the top of the message is hit,
3244 moves to the previous message.
3245 (@code{wl-message-wheel-down})
3246
3247 @item Button-5 (downward movement of a wheel)
3248 @kindex Button-5 (Message)
3249 @findex wl-message-wheel-up
3250 Scrolls the message forward.  When the bottom of the message is hit,
3251 moves to the next message.
3252 (@code{wl-message-wheel-up})
3253 @end table
3254
3255 @section Customizable Variables
3256
3257 @table @code
3258 @item wl-message-window-size
3259 @vindex wl-message-window-size
3260 Initial setting is @code{'(1 . 4)}.  It is a cons cell and the ratio of
3261 its car and cdr value corresponds to the ratio of Summary and Message
3262 windows.
3263 @end table
3264
3265 @c
3266 @c  Draft
3267 @c
3268 @node Draft, Disconnected Operations, Message, Top
3269 @chapter Draft Buffer
3270
3271 At Summary mode, pressing @kbd{w} and the like creates a new draft
3272 buffer.  You can edit and send mail and news articles in this buffer.
3273
3274 @section Tips
3275
3276 Basically it is Emacs-standard mail mode.
3277
3278 @subsection Address Completion
3279
3280 Initially, the cursor is at the To: field.  Fill in recipients
3281 addresses.  @kbd{@key{TAB}} completes them.
3282
3283 If you want to submit a news article, add Newsgroups: field by
3284 yourself.  Field names can be completed by @kbd{@key{TAB}}.
3285
3286 If you save the draft buffer you are editing, it is appended to the
3287 folder specified by @code{wl-draft-folder}.
3288
3289 Using FCC: field, you can specify the folder to which a copy of the
3290 message is saved when it is sent.
3291
3292 @subsection Editing Messages
3293
3294 Multi-part editing utilize MIME edit mode of SEMI/tm.  For procedures of
3295 editing, refer to respective documents.
3296 @xref{Mail Methods, , ,mime-ui-ja, a MIME user interface for GNU Emacs}.
3297
3298 @subsection Dynamic Modification of Messages
3299 @vindex wl-draft-config-alist
3300
3301 @c @cindex Change Message
3302 @c @cindex Message, Change Dynamic
3303
3304 You can set @code{wl-draft-config-alist} so that header and body of the
3305 message will automatically modified depending on information of header
3306 and others.
3307
3308 The initial setting of @code{wl-draft-config-alist} is nil.
3309
3310 In the example below, the header is modified when
3311 @code{wl-draft-send-and-exit} or @code{wl-draft-send} is invoked.
3312 You can set @code{wl-interactive-send} to non-nil so as to confirm
3313 changes before sending the message.
3314
3315 @lisp
3316 (setq wl-draft-config-alist
3317       '(((string-match "aaa.ne.jp$" (system-name))
3318          ;; @r{applied if the expression is non-nil}
3319          (wl-smtp-posting-server . "mailserver-B")
3320          (wl-nntp-posting-server . "newsserver-B")
3321          ;; @r{settings of temporary variables}
3322          )
3323         ("^To: .*user@@aaa.bbb.com"
3324          ;; @r{applied if it matches the header of the draft buffer}
3325          ("Organization" . (format "Go %s" my-webpage)))
3326                        ;; @r{you can write elisp expressions here (eval only)}
3327          (top . "Hello.\n")    ;; @r{inserted at the top of the body}
3328          (bottom . "\nBye.\n") ;; @r{inserted at the bottom of the body}
3329         ))
3330 @end lisp
3331
3332 The format of @code{wl-draft-config-alist} is:
3333
3334 @example
3335 '(("regexp of the header" or elisp expression
3336   ("Field" . value(elisp expression))
3337    (variable . value(elisp expression))
3338    (sub-function . value(elisp expression))
3339    function
3340    @dots{})
3341   ("regexp of the header" or elisp expression
3342    ("Field" . value(elisp expression))
3343    @dots{}))
3344 @end example
3345
3346 Per default, there are 10 following sub-functions.
3347
3348 @example
3349 'header:      Inserts the specified string at the bottom of the header.
3350 'header-file: Inserts the specified file at the bottom of the header.
3351 'x-face:      Inserts "X-Face" field with the content of the specified file.
3352 'top:         Inserts the specified string at the top of the body.
3353 'top-file:    Inserts the specified file at the top of the body.
3354 'body:        Replaces the body with the specified string.
3355               Specifying nil deletes the entire body string.
3356 'body-file:   Replaces the body with the content of the specified file.
3357 'bottom:      Inserts the specified string at the bottom of the body.
3358 'bottom-file: Inserts the specified file at the top of the body.
3359 'template:    Applies the specified template.
3360               (refer to the next subsection)
3361 @end example
3362
3363 These are defined in @code{wl-draft-config-sub-func-alist} and you can
3364 change them or add your own functions.  If you read the code, you can
3365 easily find how to write the functions.
3366
3367 At the first of each item, "a regular expression of the header" or an
3368 elisp expression should be specified.  In the case of an elisp
3369 expression, the item is applied when the expression is evaluated
3370 non-nil.
3371
3372 Per default, when multiple items match or are evaluated non-nil, all
3373 such items are applied, but if you set a variable
3374 @code{wl-draft-config-matchone} to t, only the first matching one is
3375 applied.
3376
3377 At the second of the item, a cons or a list of functions should be
3378 specified.  The car part of the cons should be a header field, a
3379 variable, or a sub-function.  When a header field is specified, the field
3380 will be modified.  If a variable is specified, the value of the variable
3381 will be modified temporarily.
3382
3383 In the cdr part of a cons, not only a variable but also an elisp
3384 expression can be specified as is.  If the car part is a header field
3385 and the cdr part is nil, the field will be deleted.
3386
3387 See the next example as well:
3388
3389 @lisp
3390 (setq wl-draft-config-alist
3391       '((reply                         ;; @r{(1)}
3392          "X-ML-Name: \\(Wanderlust\\|emacs-mime-ja\\|apel-ja\\)"
3393          ;; @r{applied if it matches the header of the buffer being replied}
3394          (body . "  Hello.\n")
3395          (template . "default")
3396          )))
3397 @end lisp
3398
3399 As in the (1) above, if a header regexp is prepended with @code{reply},
3400 it is applied when the draft is prepared by @code{wl-summary-reply} for
3401 example, and when it matches the header being replied.  It is ignored
3402 when there is no buffer being replied, like after @code{wl-draft} was
3403 invoked.
3404
3405 Note that @code{wl-draft-config-alist} is applied only once when
3406 @code{wl-draft-send-and-exit} or @code{wl-draft-send} is invoked.
3407 Therefore, if you want to apply @code{wl-draft-config-alist} again after 
3408 aborting transmission, execute @kbd{C-c C-e}
3409 (@code{wl-draft-config-exec}).
3410
3411 If you want to apply @code{wl-draft-config-alist} when a draft buffer is 
3412 prepared, do the following:
3413
3414 @lisp
3415 (add-hook 'wl-mail-setup-hook 'wl-draft-config-exec)
3416 @end lisp
3417
3418 @subsection Inserting Templates
3419 @cindex Template
3420 @cindex Apply Template
3421
3422 Set a variable @code{wl-template-alist}, and type
3423 @kbd{C-c C-j} or @kbd{M-x wl-template-select}
3424 in the draft buffer.
3425
3426 The format of @code{wl-template-alist} is almost the same as
3427 @code{wl-draft-config-alist}.
3428
3429 @lisp
3430 (setq wl-template-alist
3431       '(("default"
3432          ("From" . wl-from)
3433          ("Organization" . "~/.wl sample")
3434          (body . "Hello.\n"))
3435         ("report"
3436          (template . "default")                 ;; @r{(a)}
3437          ("To" . "jousi@@kaisha.jp")
3438          ("Subject" . "Report")
3439          (body-file . "~/work/report.txt")
3440          )
3441         ))
3442 @end lisp
3443
3444 As you can see, the only difference is item (template) names such as
3445 "default" and "report", instead of a regexp of header.
3446 Because definition of each item is the same as
3447 @code{wl-draft-config-alist}, you can call another template, like (a).
3448
3449 Executing the command @code{wl-template-select} results in template
3450 selection, but the result differs depending on variable
3451 @code{wl-template-visible-select}.
3452
3453 If @code{wl-template-visible-select} is t (default), a buffer window is
3454 shown below the draft buffer.  You can select a template by @kbd{n} and
3455 @kbd{p} seeing the buffer window.
3456
3457 Press the RETURN key and the template is actually applied to the draft
3458 buffer.  If you press @kbd{q}, nothing is applied.  In addition, you can 
3459 adjust the window size by @code{wl-template-buffer-lines}.
3460
3461 If @code{wl-template-visible-select} is nil, you should type the name of
3462 the template in the mini buffer.
3463
3464 As shown in the example in @code{wl-draft-config-alist}, you can select
3465 "default" template by writing:
3466
3467 @example
3468 (template . "default")
3469 @end example
3470
3471 @noindent
3472
3473 @subsection Sending mail by POP-before-SMTP
3474 @cindex POP-before-SMTP
3475
3476 You can send mail by POP-before-SMTP with this single line:
3477
3478 @lisp
3479 (setq wl-draft-send-mail-func 'wl-draft-send-mail-with-pop-before-smtp)
3480 @end lisp
3481
3482 @noindent
3483 Configure the following variables if you need.
3484
3485 @table @code
3486 @item wl-pop-before-smtp-user
3487 The POP user name for POP-before-SMTP authentication.
3488 If unset, @code{elmo-default-pop3-user} is used.
3489
3490 @item wl-pop-before-smtp-server
3491 The POP server name for POP-before-SMTP authentication.
3492 If unset, @code{elmo-default-pop3-server} is used.
3493
3494 @item wl-pop-before-smtp-authenticate-type
3495 The POP authentication method for POP-before-SMTP authentication.
3496 If unset, @code{elmo-default-pop3-authenticate-type} is used.
3497
3498 @item wl-pop-before-smtp-port
3499 The POP port number for POP-before-SMTP authentication.
3500 If unset, @code{elmo-default-pop3-port} is used.
3501
3502 @item wl-pop-before-smtp-ssl
3503 If non-nil, POP connection is established using SSL.
3504 If 'starttls, STARTTLS (RFC2595) connection will be established.
3505 If unset, @code{elmo-default-pop3-ssl} is used.
3506 @end table
3507
3508 If variables for POP-before-SMTP (@code{wl-pop-before-smtp-*}) are 
3509 unset, settings for POP folders (@code{elmo-default-pop3-*}) are
3510 used.
3511 Therefore, if SMTP server and POP server are actually the same, and if
3512 POP folder per default (such as @samp{&}) is available, no settings are
3513 required.
3514
3515 Refer to the following URL about POP-before-SMTP.
3516
3517 @example
3518 http://spam.ayamura.org/tools/smPbS.html
3519 http://www.iecc.com/pop-before-smtp.html
3520 @end example
3521
3522 @section Key Bindings
3523 @cindex Keybind, Draft Mode
3524 @cindex Keybind, Draft Buffer
3525
3526 @table @kbd
3527
3528 @item C-c C-y
3529 @kindex C-c C-y (Draft)
3530 @findex wl-draft-yank-original
3531 Cites the content of the current message buffer.
3532 (@code{wl-draft-yank-original})
3533
3534 @item C-c C-p
3535 @kindex C-c C-p (Draft)
3536 @findex wl-draft-preview-message
3537 Previews the content of the current draft.
3538 This is useful for previewing MIME multi-part messages.
3539 (@code{wl-draft-preview-message})
3540
3541 @item C-c C-s
3542 @kindex C-c C-s (Draft)
3543 @findex wl-draft-send
3544 Sends the content of the current draft.  Does not erase the draft buffer.
3545 This is useful for sending multiple messages, which are a little different
3546 from each other.
3547 (@code{wl-draft-send})
3548
3549 @item C-c C-c
3550 @kindex C-c C-c (Draft)
3551 @findex wl-draft-send-and-exit
3552 Sends the content of the current draft and erases the draft buffer.
3553 (@code{wl-draft-send-and-exit})
3554
3555 @item C-x C-s
3556 @kindex C-x C-s (Draft)
3557 @findex wl-draft-save
3558 Save the current draft.
3559 (@code{wl-draft-save})
3560
3561 @item C-c C-k
3562 @kindex C-c C-k (Draft)
3563 @findex wl-draft-kill
3564 Kills the current draft.
3565 (@code{wl-draft-kill})
3566
3567 @c @item C-x k
3568 @c @kindex C-x k (Draft)
3569 @c @findex wl-draft-mimic-kill-buffer
3570 @c Kills the current draft.
3571 @c (@code{wl-draft-mimic-kill-buffer})
3572
3573 @item C-c C-z
3574 @kindex C-c C-z (Draft)
3575 @findex wl-draft-save-and-exit
3576 Saves the current draft, and erases the draft buffer.
3577 This is useful if you want to suspend editing of the draft.
3578 You can resume editing by pressing @kbd{E} (@code{wl-summary-reedit}) in
3579 the @samp{+draft} folder.
3580 (@code{wl-draft-save-and-exit})
3581
3582 @item C-c C-r
3583 @kindex C-c C-r (Draft)
3584 @findex wl-caesar-region
3585 Encodes or decodes the specified region in Caesar cipher.
3586 (@code{wl-caesar-region})
3587
3588 @item M-t
3589 @kindex M-t (Draft)
3590 @findex wl-toggle-plugged
3591 Toggles off-line/on-line states of Wanderlust.
3592 (@code{wl-toggle-plugged})
3593
3594 @item C-c C-o
3595 @kindex C-c C-o (Draft)
3596 @findex wl-jump-to-draft-buffer
3597 Jumps to the other draft buffer, if exists.
3598 With prefix argument, reads a file (if any) from the draft folder when
3599 there is no such buffer.
3600 (@code{wl-jump-to-draft-buffer})
3601
3602 @item C-c C-e
3603 @kindex C-c C-e (Draft)
3604 @findex wl-draft-config-exec
3605 Applies @code{wl-draft-config-alist}.
3606 (@code{wl-draft-config-exec})
3607
3608 @item C-c C-j
3609 @kindex C-c C-j (Draft)
3610 @findex wl-template-select
3611 Selects a template.
3612 (@code{wl-template-select})
3613
3614 @item C-c C-a
3615 @kindex C-c C-a (Draft)
3616 @findex wl-draft-insert-x-face-field
3617 Inserts the content of a file @file{~/.xface} (the value of the variable
3618 @code{wl-x-face-file}) as an X-Face field in the draft buffer.
3619
3620 There should be encoded X-Face strings as a content of a file @file{~/.xface}.
3621 (@code{wl-draft-insert-x-face-field})
3622 @end table
3623
3624 @section Customizable Variables
3625
3626 @table @code
3627 @item wl-subscribed-mailing-list
3628 @vindex wl-subscribed-mailing-list
3629 The initial setting is nil.
3630 Mailing lists to which you subscribe.
3631 If any of these are contained in To or Cc field of a reply draft,
3632 removes your own address from Mail-Followup-To and Cc.
3633 And if any of these are contained in To or Cc field of a message to be
3634 automatically re-filed, the destination folder will be leaned in
3635 connection with the address.
3636 @item wl-insert-mail-followup-to
3637 @vindex wl-insert-mail-followup-to
3638 The initial setting is nil.
3639 If non-nil, Mail-Followup-To field is automatically inserted in the
3640 draft buffer.
3641
3642 @item wl-insert-mail-reply-to
3643 @vindex wl-insert-mail-reply-to
3644 The initial setting is nil.
3645 If non-nil, Mail-Reply-To field is automatically inserted in the
3646 draft buffer.
3647
3648 @item wl-auto-insert-x-face
3649 @vindex wl-auto-insert-x-face
3650 The initial setting is t.
3651 If non-nil and there is an encoded X-Face string in a file
3652 @file{~/.xface} (the value of the variable @code{wl-x-face-file}),
3653 inserts it as an X-Face field in the draft buffer.
3654 If nil, it is not automatically inserted. Press @kbd{C-c C-a} to insert.
3655
3656 @item wl-insert-message-id
3657 @vindex wl-insert-message-id
3658 The initial setting is t.
3659 If non-nil, Message-ID field is automatically inserted on the
3660 transmission.
3661
3662 @item wl-local-domain
3663 @vindex wl-local-domain
3664 The initial setting is nil.
3665 If nil, the return value of the function @code{system-name} will be
3666 used as the domain part of Message-ID.
3667
3668 If @code{system-name} does not return FQDN (i.e. the full name of the
3669 host, like @samp{smtp.gohome.org}), you @strong{must} set this variable to the
3670 string of the local domain name without hostname (like @samp{gohome.org}). 
3671 That is, a concatenation of @code{system-name} "." @code{wl-local-domain} 
3672 is used as domain part of the Message-ID.
3673
3674 If your terminal does not have global IP, set the value of
3675 @code{wl-message-id-domain}.
3676 (You might be beaten up on the Net News if you use invalid Message-ID.)
3677
3678 Moreover, 
3679 concatenation of @code{system-name} "." @code{wl-local-domain} 
3680 will be used as an argument to the HELO command in SMTP.
3681
3682 @item wl-message-id-domain
3683 @vindex wl-message-id-domain
3684 The initial setting is nil.
3685 If non-nil, this value is used as a domain part of the Message-ID.
3686 If your terminal does not have global IP, set unique string to this value
3687 (e.x. your e-mail address).
3688
3689 @item wl-message-id-domain
3690 @vindex wl-message-id-domain
3691 The initial setting is nil.
3692 If nil, the return value of the function @code{system-name} will be
3693 used as the domain part of Message-ID.
3694 If @code{system-name} does not return FQDN (i.e. the full name of the
3695 host, like smtp.gohome.org), you @strong{must} set this variable to the
3696 string of the full name of the host.  Otherwise, you might be beaten up
3697 on the Net News.
3698
3699 @item wl-draft-config-alist
3700 @vindex wl-draft-config-alist
3701 The initial setting is nil.
3702 Modifies the draft message just before the transmission.
3703 The content of @code{wl-draft-config-alist} will be automatically
3704 applied only once on the transmission.  If you want to apply it
3705 manually, use @kbd{C-c C-e}.  This command can be used many times.
3706
3707 @item wl-template-alist
3708 @vindex wl-template-alist
3709 The initial setting is nil.
3710 This variable specifies the template to be applied in the draft buffer.
3711
3712 @item wl-draft-config-matchone
3713 @vindex wl-draft-config-matchone
3714 The initial setting is nil.
3715 If non-nil, only the first matching item is used when
3716 @code{wl-draft-config-alist} is applied.  If nil, all matching items are 
3717 used.
3718
3719 @item wl-template-visible-select
3720 @vindex wl-template-visible-select
3721 The initial setting is t.
3722 If non-nil, you can preview the result of the template selection in
3723 another window.
3724
3725 @item wl-template-confirm
3726 @vindex wl-template-confirm
3727 The initial setting is nil.
3728 If non-nil, asks for confirmation when you press the enter key to select
3729 template while previewing.
3730
3731 @item wl-template-buffer-lines
3732 @vindex wl-template-buffer-lines
3733 The initial setting is 7.
3734 If @code{wl-template-visible-select} is non-nil, this variable specifies 
3735 the size of the preview window.
3736
3737 @item wl-draft-reply-buffer-style
3738 @vindex wl-draft-reply-buffer-style
3739 The initial setting is 'split.
3740 'split or 'full can be specified.
3741 In the case of 'full, the whole frame will be used for a reply draft
3742 buffer when it is prepared.
3743
3744 @item wl-from
3745 @vindex wl-from
3746 The initial setting is the value of the variable @code{user-mail-address}.
3747 The value of this variable is inserted as a From field of the draft when
3748 it is prepared.
3749
3750 @item wl-envelope-from
3751 @vindex wl-envelope-from
3752 The initial setting is nil.
3753 The value of this variable is used for envelope from (MAIL FROM).
3754 If nil, the address part of @code{wl-from} is used.
3755
3756 @item wl-user-mail-address-list
3757 @vindex wl-user-mail-address-list
3758 The initial setting is nil.
3759 This is the User's address list.  If you have multiple addresses,
3760 set this variable.
3761
3762 @item wl-fcc
3763 @vindex wl-fcc
3764 The initial setting is nil.
3765 If non-nil, the value of this variable is inserted as a FCC of the draft
3766 when it is prepared.
3767
3768 @item wl-bcc
3769 @vindex wl-bcc
3770 The initial setting is nil.
3771 If non-nil, the value of this variable is inserted as a Bcc of the draft
3772 when it is prepared.
3773
3774 @item wl-reply-subject-prefix
3775 @vindex wl-reply-subject-prefix
3776 The initial setting is "Re: ".
3777 In the Subject of the reply draft, this string is prepended to the
3778 Subject of being replied.
3779
3780 @item wl-draft-enable-queuing
3781 @vindex wl-draft-enable-queuing
3782 The initial setting is t.
3783 This flag controls off-line transmission.  If non-nil, the draft is
3784 sent off-line.
3785
3786 @item wl-auto-flush-queue
3787 @vindex wl-auto-flush-queue
3788 The initial setting is t.
3789 This flag controls automatic transmission of the queue when Wanderlust
3790 becomes on-line.  If non-nil, the queue is automatically transmitted
3791 (with confirmation by @code{y-or-n-p}).  If you want to transmit it
3792 manually, press @kbd{F} in the folder mode.
3793
3794 @item wl-draft-always-delete-myself
3795 @vindex wl-draft-always-delete-myself
3796 If non-nil, always removes your own address from To and CC when you are
3797 replying to the mail addressed to you.
3798
3799 @item wl-smtp-posting-server
3800 @vindex wl-smtp-posting-server
3801 The initial setting is nil.
3802 This is the SMTP server name for mail transmission.
3803
3804 @item wl-smtp-posting-user
3805 @vindex wl-smtp-posting-user
3806 The initial setting is nil.
3807 This is the user name for SMTP AUTH authentication.
3808 If nil, @code{smtp-authenticate-user} is used.
3809
3810 @item wl-smtp-authenticate-type
3811 @vindex wl-smtp-authenticate-type
3812 The initial setting is nil.
3813 This is the authentication method for SMTP AUTH authentication.
3814 If nil, @code{smtp-authenticate-type} is used.
3815 If it is still nil, authentication will not be carried out.
3816
3817 @item wl-smtp-connection-type
3818 @vindex wl-smtp-connection-type
3819 The initial setting is nil.
3820 This variable specifies how to establish SMTP connections.
3821 If nil, @code{smtp-connection-type} is used.
3822 If it is 'starttls, STARTTLS (RFC2595) is used.
3823
3824 @item wl-nntp-posting-server
3825 @vindex wl-nntp-posting-server
3826 The initial setting is nil.
3827 This is the NNTP server name used for news submission.
3828 If nil, @code{elmo-default-nntp-server} is used.
3829
3830 @item wl-nntp-posting-user
3831 @vindex wl-nntp-posting-user
3832 The initial setting is nil.
3833 This is the user name for AUTHINFO authentication on news submission.
3834 If nil, @code{elmo-default-nntp-user} is used.
3835 If it is still nil, AUTHINFO authentication will not be carried out.
3836
3837 @item wl-nntp-posting-port
3838 @vindex wl-nntp-posting-port
3839 The initial setting is nil.
3840 This is the port number of the NNTP server used for news submission.
3841 If nil, @code{elmo-default-nntp-server} is used.
3842
3843 @item wl-nntp-posting-ssl
3844 @vindex wl-nntp-posting-ssl
3845 The initial setting is nil.
3846 If nil, @code{elmo-default-nntp-ssl} is evaluated.
3847 If non-nil, SSL is used for news submission.
3848 If 'starttls, STARTTLS (RFC2595) connection will be established.
3849
3850 @item wl-pop-before-smtp-user
3851 @vindex wl-pop-before-smtp-user
3852 The initial setting is nil.
3853 This is the POP user name for POP-before-SMTP.
3854 If it is nil, @code{elmo-default-pop3-user} is used.
3855
3856 @item wl-pop-before-smtp-server
3857 @vindex wl-pop-before-smtp-server
3858 The initial setting is nil.
3859 This is the POP server name for POP-before-SMTP.
3860 If it is nil, @code{elmo-default-pop3-server} is used.
3861
3862 @item wl-pop-before-smtp-authenticate-type
3863 @vindex wl-pop-before-smtp-authenticate-type
3864 The initial setting is nil.
3865 This is the authentication method for POP-before-SMTP authentication.
3866 If it is nil, @code{elmo-default-pop3-authenticate} is used.
3867
3868 @item wl-pop-before-smtp-port
3869 @vindex wl-pop-before-smtp-port
3870 The initial setting is nil.
3871 This is the POP port number for POP-before-SMTP.
3872 If it is nil, @code{elmo-default-pop3-port} is used.
3873
3874 @item wl-pop-before-smtp-ssl
3875 @vindex wl-pop-before-smtp-ssl
3876 The initial setting is nil.
3877 This flag controls the use of SSL for POP-before-SMTP.
3878 If it is nil, @code{elmo-default-pop3-ssl} is used.
3879
3880 @item wl-draft-queue-save-variables
3881 @vindex wl-draft-queue-save-variables
3882 Specifies a list of variable to which queued messages are saved on the
3883 off-line transmission.
3884
3885 @item wl-draft-sendlog
3886 @vindex wl-draft-sendlog
3887 The initial setting is t.
3888 If t, transmission log is written in @file{~/.elmo/sendlog}.
3889 It is written when drafts are sent by smtp or qmail, and when they are
3890 saved into folders by fcc or queuing (it is written even if the
3891 transmission fails).
3892 But transmission by im-wl.el is not written in the sendlog and left to
3893 the logging function of imput.
3894
3895 @item wl-draft-sendlog-max-size
3896 @vindex wl-draft-sendlog-max-size
3897 The initial setting is 20000 (in bytes).
3898 If @code{wl-draft-sendlog} is t, the log is rotated when it grows beyond 
3899 the size specified by this variable.
3900 @end table
3901
3902
3903 @c
3904 @c  Disconnected Operations
3905 @c
3906 @node Disconnected Operations, Expire and Archive, Draft, Top
3907 @chapter Off-line Management
3908 @cindex Disconnected Operations
3909
3910 @section Off-line State
3911
3912 Wanderlust has on-line and off-line states.
3913 In the off-line state, you cannot access messages via network, unless
3914 they are cached.
3915
3916 @samp{[ON]} in the mode line indicates the on-line state.
3917 @samp{[--]} in the mode line indicates the off-line state.
3918 In folder or summary modes, press @kbd{M-t} to switch between off-
3919 and on-line.
3920
3921 You can invoke Wanderlust in the off-line state by setting
3922 @code{wl-plugged} to nil in @file{~/.wl} or anything appropriate.
3923
3924 Even in the off-line state, provided that relevant messages are cached,
3925 and the variable @code{elmo-enable-disconnected-operation} (described
3926 later) is non-nil, you can:
3927
3928 @itemize @minus
3929 @item transmit messages
3930 @item re-file and copy (IMAP4)
3931 @item create folders (IMAP4)
3932 @item mark (IMAP4)
3933 @item pre-fetch (IMAP4, NNTP)
3934 @end itemize
3935
3936 As soon as Wanderlust becomes on-line, such operations invoked
3937 off-line are reflected in the servers via network.
3938
3939 @section Transmission of Messages
3940
3941 You can send mail/news messages off-line (if you are using im-wl.el, it
3942 is irrelevant).  Messages sent off-line are accumulated in the queue
3943 folder, @samp{+queue}.  These messages are transmitted at once when
3944 Wanderlust becomes on-line.
3945
3946 You can visit @samp{+queue} in the off-line state and confirm content
3947 of messages in the queue.  You can also remove messages.  Removed messages
3948 are not transmitted even in the on-line state.
3949
3950 @section Re-file and Copy (IMAP4)
3951
3952 Re-file and copy operations to IMAP folders invoked during the off-line
3953 state are accumulated in the queue, and reflected in the server side
3954 when Wanderlust becomes on-line.  If you visit destination folders after
3955 off-line re-file or copy, it looks as if messages were appended even in
3956 off-line state.
3957
3958 For the safety reasons, messages re-filed off-line are removed from
3959 source folders only if their Message-ID match messages on the servers.
3960 While the queue is processed, messages that failed to be re-filed or
3961 copied to the specified folders are appended to the folder
3962 @samp{+lost+found}.
3963
3964 @section Creation of Folders (IMAP4)
3965
3966 You can create IMAP folders off-line.  The creation of folders are
3967 reflected in the servers when Wanderlust becomes on-line.  At that time, 
3968 if folders failed to be created on the servers for any reasons, messages
3969 re-filed to such folders are appended to the folder "+lost+found".
3970
3971 @section Marking (IMAP4)
3972
3973 Off-line changes in unread/read and importance mark @samp{$} information
3974 are also reflected in the servers when Wanderlust becomes on-line.
3975
3976 @section Pre-fetching (IMAP4, NNTP)
3977
3978 You can make reservations for pre-fetching messages in IMAP or NNTP
3979 folders.  Reserved messages are marked with @samp{!} but not cached
3980 yet.  When Wanderlust becomes on-line, they are pre-fetched from
3981 servers.
3982
3983 If the variable @code{elmo-enable-disconnected-operation} is nil, these
3984 off-line operations for IMAP4 and NNTP do not take place, and off-line
3985 re-file, copy or suchlike simply results in error.
3986
3987 Because off-line operations use cache files, it is a bad idea to erase
3988 them by hand; it may cause Wanderlust to malfunction.
3989
3990 If you want to remove caches, be sure to execute
3991 @kbd{M-x elmo-cache-expire-by-size}.
3992 @code{elmo-cache-expire-by-size} does not remove caches for messages
3993 relevant to off-line operations.
3994
3995 @section Switching On-line/Off-line per Server/Port
3996
3997 @kbd{M-t} described above switches networking states as a whole, but you 
3998 can switch on-line/off-line per server/port.
3999
4000 Pressing @kbd{C-t} in the folder or summary modes brings you in
4001 wl-plugged-mode shown below, in which you can change the plugged state
4002 for each port.
4003
4004 @example
4005 Queuing:[ON] AutoFlushQueue:[--] DisconnectedOperation:[ON]
4006 [ON](wl-plugged)
4007   [--]hosta
4008     [--]smtp        +queue: 2 msgs (1,2)        @dots{}@r{sending queue}
4009     [--]nntp(119)   +queue: 1 msg (3)           @dots{}@r{sending queue}
4010   [ON]hostb
4011     [--]imap4/cram-md5(143) %#mh/wl(prefetch-msgs:3,mark-as-important:1)
4012                             %inbox(delete-msgids:1)    @dots{}@r{dop queue}
4013     [ON]nntp(119)
4014     [ON]smtp
4015 @end example
4016
4017 The first line indicates status of the following three variables, and
4018 simply pressing @kbd{@key{SPC}} or @kbd{@key{RET}} in each labelled
4019 column modifies the values of these variables.
4020
4021 @example
4022 "Queuing"               wl-draft-enable-queuing
4023 "AutoFlushQueue"        wl-auto-flush-queue
4024 "DisconnectedOperation" elmo-enable-disconnected-operation
4025 @end example
4026
4027 where @samp{[ON]} means its value is t, and @samp{[--]} means nil.
4028
4029 The second and after lines indicate on-line/off-line states of servers
4030 and ports, where @samp{[ON]} stands for on-line and @samp{[--]} for
4031 off-line (in XEmacs, they are shown with icons).  Pressing
4032 @kbd{@key{SPC}} or @kbd{@key{RET}} in each line switches its state.
4033
4034 "sending queue" means messages accumulated in the folder @samp{+queue}
4035 for off-line transmission, and "dop queue" means off-line operations
4036 when @code{elmo-enable-disconnected-operation} is t.
4037 @c If the variable @code{elmo-enable-disconnected-operation} is non-nil, 
4038 @c off-line operations are enabled.
4039
4040 They are displayed if there are any of them.  In the example above,
4041 in the sending queue there are two messages (the first and the second
4042 in the queue folder) for smtp to hosta and one (the third) for nntp to
4043 hosta, and in the dop queue there are one for @samp{%inbox} and two for
4044 @samp{%#mh/wl}.
4045
4046 If you change (wl-plugged) in the second line, the variable
4047 @code{wl-plugged} is changed, so that the mode line indicator and
4048 plugged states of all ports are affected.
4049 If you change plugged states of any servers or ports, wl-plugged in the
4050 second line is affected depending on @code{elmo-plugged-condition}
4051 settings and the plugged state of each port.
4052
4053 @section Invoking Wanderlust in the Off-line State
4054
4055 As described before, if you set @code{wl-plugged} to nil in @file{~/.wl}
4056 or anything appropriate, you can invoke Wanderlust in the off-line
4057 state.  You can specify off-line state on a per server or port basis.
4058 Refer to @code{wl-reset-plugged-alist} also.
4059
4060 Usually, when Wanderlust starts up, the plugged state of each port is
4061 read from @file{~/.folder} and @code{wl-smtp-posting-server},
4062 @code{wl-nntp-posting-server} and so on.  If you want to change the
4063 plugged state of these ports or to add other ports, configure
4064 @code{wl-make-plugged-hook} with a function.
4065
4066 @lisp
4067 (add-hook 'wl-make-plugged-hook
4068           '(lambda ()
4069              (elmo-set-plugged plugged-value(t/nil) server port)
4070                  ;; @r{add or change plugged states of the port of the server}
4071              (elmo-set-plugged plugged-value(t/nil) server)
4072                  ;; @r{if the port is omitted, all ports are affected}
4073                  ;; @r{(you cannot omit the port if you newly add the server)}
4074              ))
4075 @end lisp
4076
4077 @section Customizable Variables
4078
4079 @table @code
4080 @item wl-plugged
4081 @vindex wl-plugged
4082 If this variable is set to nil, Wanderlust starts up in off-line mode from
4083 the beginning.
4084
4085 @item wl-queue-folder
4086 @vindex wl-queue-folder
4087 The initial setting is "+queue".
4088 This is the folder in which messages in the transmission queue are
4089 accumulated.
4090
4091 @item wl-auto-flush-queue
4092 @vindex wl-auto-flush-queue
4093 The initial setting is t.
4094 This flag controls automatic transmission of the queue when Wanderlust
4095 becomes on-line.  If non-nil, the queue is automatically transmitted
4096 (with confirmation by @code{y-or-n-p}).  If you want to transmit it
4097 manually, press @kbd{F} in the folder mode.
4098
4099 @item elmo-enable-disconnected-operation
4100 @vindex elmo-enable-disconnected-operation
4101 The initial setting is nil.  Controls off-line operations regarding IMAP4.
4102 If non-nil, off-line operations are carried out.
4103
4104 @item elmo-lost+found-folder
4105 @vindex elmo-lost+found-folder
4106 The initial setting is "+lost+found".
4107 This is the folder to which messages are saved when they fails to be
4108 appended while the off-line re-file/copy queue is processed.
4109
4110 @item elmo-plugged-condition
4111 @vindex elmo-plugged-condition
4112 The initial setting is 'one.
4113 The value of @code{wl-plugged} reflects the return value of the function 
4114 @code{elmo-plugged-p} (without arguments).
4115 This variable @code{elmo-plugged-condition} specifies the condition on
4116 which the return value of (elmo-plugged-p) should be t depending on the
4117 plugged state of each port.
4118
4119 @example
4120 'one         : plugged if one or more ports are plugged.
4121 'all         : plugged if all ports are plugged.
4122 'independent : reflects wl-plugged (elmo-plugged) regardless of plugged
4123                states of the ports.
4124 function     : reflects the return value of the function
4125  functions available per default
4126  'elmo-plug-on-by-servers
4127              : reflects the plugged state of the servers specified by the
4128                variable elmo-plug-on-servers.
4129  'elmo-plug-on-by-exclude-servers
4130              : reflects the plugged state of the servers that are not
4131                in elmo-plug-on-exclude-servers.
4132                   elmo-plug-on-exclude-servers defaults to
4133                    '("localhost"
4134                      (system-name)
4135                      (system-name)without the domain part)
4136 @end example
4137
4138 @example
4139 Example 1:
4140  (setq elmo-plugged-condition 'all)
4141 Example 2:
4142  (setq elmo-plug-on-servers '("smtpserver" "newsserver"))
4143  (setq elmo-plugged-condition 'elmo-plug-on-by-servers)
4144 Example 3:
4145  (setq elmo-plug-on-exclude-servers '("localhost" "myname"))
4146  (setq elmo-plugged-condition 'elmo-plug-on-by-exclude-servers)
4147 @end example
4148
4149 @item wl-reset-plugged-alist
4150 @vindex wl-reset-plugged-alist
4151 The initial setting is t.  If non-nil, plugged states are initialized on
4152 a per server or port basis when Wanderlust starts up.
4153
4154 If nil, plugged states are retained while Emacs is running.
4155 In other words, they are initialized when Emacs is restarted even if the
4156 value is nil.
4157 @end table
4158
4159 @c
4160 @c  Expire and Archive
4161 @c
4162 @node Expire and Archive, Scoring, Disconnected Operations, Top
4163 @chapter Automatic Expiration and Archiving of Messages
4164 @cindex Expire and Archive
4165
4166 @menu
4167 * Expire::      Expiration and Archiving
4168 * Archive::     Archiving All Messages
4169 @end menu
4170
4171
4172 @node Expire, Archive, Expire and Archive, Expire and Archive
4173 @section Expiration
4174 @cindex Expire Message
4175
4176 Expiration means deletion of old messages which have outlasted a
4177 certain period of time.
4178
4179 @code{wl-expire} supports not only simple deletion, but also moving to
4180 specified archiving folders.
4181
4182 @section How to Use
4183
4184 Configure @code{wl-expire-alist} and press @kbd{e} in the folder mode,
4185 or @kbd{M-e} in the summary mode.
4186
4187 @subsection Configuring @code{wl-expire-alist}
4188
4189 An example configuration of @code{wl-expire-alist} is shown below.
4190 Everything in this @code{wl-expire-alist} makes a great difference in
4191 expiration, so be careful.
4192 I advise you to set @code{wl-expire-use-log} to t, especially in the
4193 initial stage.
4194
4195 @lisp
4196 (setq wl-expire-alist
4197       '(("^\\+trash$"   (date 14) remove)
4198                                   ;; @r{delete}
4199         ("^\\+tmp$"     (date 7) trash)
4200                                   ;; @r{re-file to @code{wl-trash-folder}}
4201         ("^\\+outbox$"  (number 300) "$outbox;lha")
4202                                   ;; @r{re-file to the specific folder}
4203         ("^\\+ml/tmp$"  nil)
4204                            ;; @r{do not expire}
4205         ("^\\+ml/wl$"   (number 500 510) wl-expire-archive-number1 t)
4206                            ;; @r{archive by message number (retaining numbers)}
4207         ("^\\+ml/.*"    (number 300 310) wl-expire-archive-number2 t)
4208                            ;; @r{archive by a fixed number (retaining numbers)}
4209         ("^\\+nikki$"   (date 30) wl-expire-archive-date)
4210                            ;; @r{archive by year and month (numbers discarded)}
4211         ))
4212 @end lisp
4213
4214 Items in the list has the format of:
4215
4216 @example
4217 ("regexp_for_folders"  (specification_of_messages_to_be_deleted) destination)
4218 @end example
4219
4220 @noindent
4221
4222 The folder is examined if it matches "regexp_for_folders" from the
4223 beginning of the list.  If you invoke expiration on the folder that does
4224 not match any of them, nothing will happen.
4225 And if either the second or the third element of the item is nil,
4226 expiration will not take place.
4227
4228 You can use any one of the following for
4229 specification_of_message_to_be_deleted:
4230
4231 @table @code
4232 @item (number n1 [n2])
4233 deletes messages depending on the number of messages in the folder.
4234
4235 n1 is the number of messages which should survive deletion, for example
4236 if its value is 500, the newest 500 messages survive and the rests are
4237 deleted.
4238
4239 n2 is the number of messages in the folder on which expiration should
4240 take place, which defaults to n1 + 1.  For example if its value is 510,
4241 folders with 510 or more messages are expired.
4242 If you configured automatic expiration, frequently used folders may
4243 expire every time it receive messages, and you may be annoyed with the
4244 long delay in reading mail.
4245 In that case, you can set a wide margin between n2 and n1, so that
4246 expiration would not take place until a certain number of messages
4247 accumulate.
4248
4249 Messages with marks in @code{wl-summary-expire-reserve-marks} (marked
4250 with important/new/unread) are not deleted.
4251 If @code{wl-expire-number-with-reserve-marks} is non-nil, the folder
4252 will expire so as to have 500 messages including such ones.
4253 Otherwise, it will have 500 messages except such ones.
4254
4255 @item (date d1)
4256 deletes messages depending on the dates.
4257
4258 Messages dated d1 or more days ago are deleted, for example if its value
4259 is seven, messages seven days old or more are deleted.
4260 Note that the date is the one in the Date field of the message, not when 
4261 the message entered the folder.
4262
4263 Messages with no or invalid Date field does not expire; you might have
4264 to delete them by hand.
4265 @end table
4266
4267 You can use any one of the following in the place of destination:
4268
4269 @table @code
4270 @item 'remove
4271 deletes the messages instantly.
4272
4273 @item 'trash
4274 moves the messages to @code{wl-trash-folder}.
4275
4276 @item string(folder)
4277 moves the messages to the specified folder.
4278
4279 It would be useful for specifying an archiving folder, but because this
4280 does not move important messages, it might be better to use the
4281 standard functions described below.
4282
4283 @item function
4284 invokes the specified function.
4285
4286 To the function, three arguments are passed: a folder name, a list of
4287 messages to be deleted, and msgdb information of the summary.
4288 You can specify function-specific arguments after the name of the
4289 function.
4290 Note that the list contains messages with marks in
4291 @code{wl-summary-expire-reserve-marks}, be careful in writing your own
4292 function.
4293
4294 These are three standard functions; they moves messages to an archive
4295 folder in the specified way.  This means old messages can be compressed
4296 and saved in a file, being deleted from the original folder.
4297
4298 @table @code
4299 @item wl-expire-archive-number1
4300 re-files to archiving folders corresponding to the message numbers of
4301 the messages being deleted.
4302 For example, a message numbered 102 will be re-filed to
4303 @file{wl-00100.zip}, 390 to @file{wl-00300.zip}, and so on.
4304 If @code{wl-expire-archive-files} is 200, messages will be re-filed to
4305 @file{wl-00000.zip}, @file{wl-00200.zip}, @file{wl-00400.zip}, @dots{}.
4306
4307 The archiving folders to which messages are re-filed are determined by
4308 the name of the folder as follows
4309 (in this case, archiving folders are handled as if
4310 @code{elmo-archive-treat-file} were non-nil).
4311
4312 @table @code
4313 @item If the folder type is localdir:
4314
4315 @code{$ArchiveDir/foldername-xxxxx.zip}
4316 For example, @samp{+ml/wl} corresponds to @samp{$ml/wl;zip}
4317 (@file{~/Mail/ml/wl-00100.zip}).
4318
4319 @item The folder type is other than localdir:
4320 @code{$ArchiveDir/foldertype/foldername-xxxxx.zip}
4321
4322 For example, @samp{%#mh/ml/wl} corresponds to
4323 @samp{$imap4/#mh/ml/wl;zip} (@file{~/Mail/imap4/#mh/ml/wl-00100.zip}).
4324 @end table
4325
4326 As you can see, in the case of localdir, the folder type is not included
4327 in the path name, but otherwise it is included.
4328 And you can control the prefix to the archiving folder name by
4329 @code{wl-expire-archive-folder-prefix}.
4330 Refer to @code{wl-expire-archive-folder-prefix} for details.
4331
4332 @item wl-expire-archive-number2
4333 re-files every certain number of messages to archiving folders.
4334
4335 This differs from @samp{wl-expire-archive-number1} in that this re-files
4336 to the folder up to the specified number regardless of message numbers.
4337 The archiving folders to which messages are re-filed are determined in the 
4338 same way as @code{wl-expire-archive-number1}.
4339
4340 @item wl-expire-archive-date
4341 re-files messages depending on its date (year and month) to archive
4342 folders.
4343
4344 For example, a message dated December 1998 is re-filed to
4345 @code{$folder-199812;zip}.
4346 The name of the archiving folders except the date part are determined in
4347 the same way as @code{wl-expire-archive-number1}.
4348 @end table
4349
4350 You can set the first argument to these three standard functions to non-nil
4351 in @code{wl-expire-alist} so as to retain message numbers in the folder.
4352 For example, it can be specified just after the name of the function:
4353
4354 @example
4355 ("^\\+ml/wl$" (number 300 310) wl-expire-archive-number1 t)
4356 @end example
4357
4358 If you omit the argument, consecutive numbers from 1 are assigned for
4359 each archiving folder.
4360 @end table
4361
4362 @subsection Treatment for Important or Unread Messages
4363
4364 If you specify any of 'remove, 'trash, a folder name, or a standard
4365 function, messages with marks in @code{wl-summary-expire-reserve-marks}
4366 (which are called @dfn{reserved messages} thereafter) are retained.
4367
4368 Per default, this variable include the important, new, and unread marks,
4369 so that messages with these marks are not removed.
4370 Note that you cannot include the temporary mark (i.e. temporary marks
4371 are removed anyway), and be sure to process temporary marks before you
4372 invoke expiration.
4373
4374 @subsection Auto Expiration
4375
4376 The following setup invokes expiration when you move into the summary
4377 mode.  There will be no confirmation, so make sure you made no mistake
4378 in regexp and other settings before you set up this.
4379
4380 @lisp
4381 (add-hook 'wl-summary-prepared-pre-hook
4382           'wl-summary-expire)
4383 @end lisp
4384
4385 In the folder mode, you can invoke expiration per group as well as per
4386 folder.  Therefore, if you specify @samp{Desktop} group, all folders
4387 matching @code{wl-expire-alist} expire.
4388
4389 @section Tips
4390
4391 @subsection Treating archive folders.
4392 To treat archive folders created by @code{wl-expire-archive-number1} and so on,
4393 you must set non-nil value to @code{elmo-archive-treat-file}.
4394
4395 @subsection Confirming
4396
4397 If you are to use 'remove, try 'trash at first and see messages move to
4398 @code{wl-trash-folder} as expected, then replace it with 'remove.
4399 It would be dangerous to use 'remove from the beginning.
4400
4401 If you are to use @code{wl-expire-archive-number1} and the like, try to
4402 make a folder of the archiver type ('zip or 'lha) and see if you can
4403 append messages to it.
4404 Even if settings in @code{wl-expire-alist} and @code{elmo-archive} are
4405 correct, messages would not be saved anywhere and disappeared in case
4406 the archiver program fails.
4407
4408 After you make sure you can archive to the folder correctly, you can
4409 invoke expiration and utilize the log.
4410
4411 If you set @code{wl-expire-use-log} to t, @file{~/.elmo/expired-log}
4412 should contain the log, for example:
4413
4414 @example
4415 delete  +ml/wl  (593 594 595 596 597 598 599)
4416 move    +ml/wl -> $ml/wl-00600;tgz;wl  (600 601 602)
4417 @end example
4418
4419 The first column indicates the operation, i.e. delete, copy, or move.
4420 The next is the name of the folder that expired.  In the case of copy
4421 and move, the destination folder is recorded after @samp{->}.
4422 The last is the list of message numbers that are actually deleted or
4423 moved (in the case of copy and move, the number is the one in the source 
4424 folder, rather than the destination folder).
4425
4426 @subsection Re-filing Reserved Messages
4427
4428 The three standard functions copy reserved messages to the archive
4429 folder, but do not delete them from the source folder.  Because
4430 reserved messages and the like always remain, they are recorded in
4431 @file{~/.elmo/expired-alist} so that they are not copied over and over
4432 again.  They are not recorded if copied by @code{wl-summary-archive}.
4433
4434 If you enabled logging, usually "move" is recorded for re-filing, but
4435 instead "copy" and "delete" are recorded separately if reserved messages
4436 are involved.
4437 This is because it actually copies messages including reserved, then
4438 deletes ones except reserved in that case.
4439
4440 @section Customizable Variables
4441
4442 @table @code
4443 @item wl-expire-alist
4444 @vindex wl-expire-alist
4445 The initial setting is nil.
4446 This variable specifies folders and methods to expire.  For details,
4447 refer to @code{wl-expire-alist} settings above.
4448
4449 @item wl-summary-expire-reserve-marks
4450 @vindex wl-summary-expire-reserve-marks
4451 The initial setting is the list below.
4452
4453 @lisp
4454 (list wl-summary-important-mark
4455       wl-summary-new-mark
4456       wl-summary-unread-mark
4457       wl-summary-unread-uncached-mark
4458       wl-summary-unread-cached-mark)
4459 @end lisp
4460
4461 Messages with these marks are retained in the folder, even after
4462 expiration.
4463 Only permanent marks can be listed, not temporary marks.
4464
4465 You can list marks one by one as in the default; you can use the
4466 following settings as well:
4467
4468 @table @code
4469 @item 'all
4470 All messages with permanent marks are retained,
4471 i.e. @code{wl-summary-read-uncached-mark} is included in addition to the 
4472 defaults.
4473
4474 @item 'none
4475 All messages are handled as usual ones that are already read, no matter
4476 what marks they have; even important messages are deleted.
4477 @end table
4478
4479 @item wl-expire-archive-files
4480 @vindex wl-expire-archive-files
4481 The initial setting is 100.
4482 This variable specifies the number of messages to be retained in one
4483 archiving folder.
4484
4485 @item wl-expire-number-with-reserve-marks
4486 @vindex wl-expire-number-with-reserve-marks
4487 The initial setting is nil.
4488 If non-nil, if expiring messages are specified by "number", messages
4489 with @code{wl-summary-expire-reserve-marks} are also retained.
4490
4491 @item wl-expire-archive-get-folder-func
4492 @vindex wl-expire-archive-get-folder-func
4493 The initial setting is 'wl-expire-archive-get-folder.
4494
4495 This variable specifies a function that returns the name of an archiving 
4496 folder for standard functions in the place of destination.
4497 You can use the following three variables for simple modification of
4498 folder names; if you want more complex settings, define your own
4499 function in this variable.
4500
4501 @code{wl-expire-archive-get-folder} can be customized by these
4502 variables:
4503 @itemize @bullet
4504 @item wl-expire-archive-folder-name-fmt
4505 @item wl-expire-archive-folder-type
4506 @item wl-expire-archive-folder-prefix
4507 @end itemize
4508
4509 @item wl-expire-archive-folder-name-fmt
4510 @vindex wl-expire-archive-folder-name-fmt
4511 The initial setting is "%s-%%05d;%s".
4512 This is a format string for archiving folders used in
4513 @code{wl-expire-archive-number1} and @code{wl-expire-archive-number2}.
4514 Note that you must specify the message number by @samp{%%d}, because it
4515 is parsed twice by @code{format}.
4516
4517 If you modify this, adjust @code{wl-expire-archive-folder-num-regexp} as 
4518 well.
4519
4520 @item wl-expire-archive-date-folder-name-fmt
4521 @vindex wl-expire-archive-date-folder-name-fmt
4522 The initial setting is "%s-%%04d%%02d;%s".
4523 This is a format string for archiving folders used in
4524 @code{wl-expire-archive-date}.
4525 Note that you must specify the message number by @samp{%%d}, because it
4526 is parsed twice by @code{format}.
4527 There should be @code{%%d} twice, one for the year and the other for the
4528 month.
4529
4530 If you modify this, adjust
4531 @code{wl-expire-archive-date-folder-num-regexp} as well.
4532
4533 @item wl-expire-archive-folder-type
4534 @vindex wl-expire-archive-folder-type
4535 The initial setting is 'zip.
4536 This variable specifies an archiver type of the archiving folders.
4537
4538 @item wl-expire-archive-folder-prefix
4539 @vindex wl-expire-archive-folder-prefix
4540 The initial setting is nil.
4541 This variable specifies the prefix (directory structure) to archiving
4542 folders.
4543 Exercise extreme caution in using this feature, as it has not been
4544 seriously tested.
4545 In the worst case, there is a fear of destructing archiving folders.
4546
4547 @table @code
4548 @item nil
4549 There will be no prefix.
4550
4551 @item 'short
4552 For example, @samp{+ml/wl} will be prefixed by @samp{wl}, resulting in
4553 @samp{$ml/wl-00000;zip;wl}.
4554
4555 @item t
4556 For example, @samp{+ml/wl} will be prefixed by prefix @samp{ml/wl},
4557 resulting in
4558
4559 @samp{$ml/wl-00000;zip;ml/wl}.
4560 @end table
4561
4562 @item wl-expire-archive-folder-num-regexp
4563 @vindex wl-expire-archive-folder-num-regexp
4564 The initial setting is "-\\([-0-9]+\\);".
4565 This variable specifies the regular expression to be used for getting
4566 message numbers from multiple archiving folders specified by
4567 @code{elmo-list-folders}.
4568 Set it in accordance with @code{wl-expire-archive-folder-name-fmt}.
4569
4570 @item wl-expire-archive-date-folder-num-regexp
4571 @vindex wl-expire-archive-date-folder-num-regexp
4572 The initial setting is "-\\([-0-9]+\\);".
4573 This is the regular expression to be used for getting message numbers
4574 from multiple archiving folders specified by @code{elmo-list-folders}.
4575 Set it in accordance with @code{wl-expire-archive-date-folder-name-fmt}.
4576
4577 @item wl-expire-delete-oldmsg-confirm
4578 @vindex wl-expire-delete-oldmsg-confirm
4579 The initial setting is t.
4580 If non-nil, messages older than the one with the largest number will be
4581 deleted with confirmation.
4582 If nil, they are deleted without confirmation.
4583
4584 This feature is valid only if non-nil is specified as a argument to the
4585 standard functions so as to retain numbers.
4586
4587 @item wl-expire-use-log
4588 @vindex wl-expire-use-log
4589 The initial setting is nil.
4590 If non-nil, expiration logs are recorded in @file{~/.elmo/expired-log}.
4591 They are appended but not truncated or rotated automatically; you might
4592 need to remove it manually.
4593
4594 @item wl-expire-add-seen-list
4595 @vindex wl-expire-add-seen-list
4596 The initial setting is t.
4597
4598 If non-nil, when messages are re-filed by expiration, read/unread
4599 information is passed to the destination folder.
4600
4601 However if you do not read the destination folder from Wanderlust,
4602 @file{seen} under @file{~/.elmo/} grows larger and larger, so you might
4603 want to set this to nil if you are simply saving to some archiving
4604 folders.  Even if its value is nil, messages in the archiving folders
4605 are simply treated as unread; it does not affect expiration itself.
4606
4607 @item wl-expire-folder-update-msgdb
4608 @vindex wl-expire-folder-update-msgdb
4609 The initial setting is t.
4610 If t, in the folder mode, expiration is carried out after updating
4611 summary information.
4612 If you specified a list of regular expressions of folder names, summary
4613 information is updated for matching folders only.
4614 @end table
4615
4616
4617 @node Archive,  , Expire, Expire and Archive
4618 @section Archiving Messages
4619
4620 @subsection Archiving Messages
4621 @kbd{M-x wl-summary-archive} copies the whole folder to archiving
4622 folders.  If there are the archiving folders already, only new messages
4623 are appended.
4624
4625 You can use @code{wl-archive-alist} in order to specify how messages are 
4626 archived according to their folder names, as in @code{wl-expire-alist}.
4627 For example:
4628
4629 @lisp
4630 (setq wl-archive-alist
4631       '(("^\\+tmp$"     wl-archive-date)
4632         ("^\\+outbox$"  wl-archive-number2)
4633         (".*"           wl-archive-number1)
4634         ))
4635 @end lisp
4636
4637 Each item in the list has the following format:
4638
4639 @example
4640 ("folders_regexp"  deleting_function)
4641 @end example
4642
4643 As you can see, you can only use a function after @samp{folders_regexp}.
4644 Per default, there are three functions:
4645
4646 @itemize @bullet
4647 @item wl-archive-number1
4648 @item wl-archive-number2
4649 @item wl-archive-date
4650 @end itemize
4651
4652 As inferred from their names, they work similarly to "expire" versions,
4653 other than the following points:
4654
4655 @itemize @minus
4656 @item No messages are deleted
4657 @item Message numbers are retained even if invoked without arguments
4658 @end itemize
4659
4660 These functions are good to archive all messages in a folder by their
4661 numbers or by their dates.
4662 These are also useful for backup or confirmation purposes before
4663 expiration.
4664 If you try to re-file them after they are archived, they are deleted but 
4665 not re-filed.
4666
4667 Per default, the archiving folders to which messages are copied are
4668 determined automatically by @code{wl-expire-archive-get-folder-func}.
4669 You can copy to a specific folder by invoking with a prefix argument,
4670 i.e. @kbd{C-u M-x wl-summary-archive}.
4671
4672 Note that this feature has not been seriously tested, because you can
4673 simply copy to an archiving folder, for example by
4674 @code{wl-summary-copy-region}.
4675
4676 The archiving folders are determined by the same logic as in
4677 @code{wl-summary-expire}; the following customizable variables are
4678 relevant:
4679
4680 @itemize @bullet
4681 @item wl-expire-archive-files
4682 @item wl-expire-archive-get-folder-func
4683 @item wl-expire-archive-folder-name-fmt
4684 @item wl-expire-archive-folder-type
4685 @item wl-expire-archive-folder-prefix
4686 @item wl-expire-archive-folder-num-regexp
4687 @end itemize
4688
4689 @subsection Customizable Variables
4690
4691 @table @code
4692 @item wl-archive-alist
4693 @vindex wl-archive-alist
4694 The initial setting is '((".*" wl-archive-number1)).
4695
4696 This variable specifies a function that copies to archiving folders.
4697 To the function, three arguments are passed: a folder name, a list of
4698 messages in the folder, and msgdb information of the summary.
4699 Needless to say, you can use your own function.
4700 @end table
4701
4702
4703 @c
4704 @c  Scoring
4705 @c
4706 @node Scoring, Customization, Expire and Archive, Top
4707 @chapter Score of the Messages
4708 @cindex Scoring
4709 @c @cindex Kill File
4710
4711 Scoring is the function that associates a score (value) with each
4712 message, and marks as read or deletes from the summary according to it.
4713
4714 You can put temp or important marks on essential messages, or read marks
4715 on the ones you do not want to read, for example spam articles.
4716
4717 This scoring function has a capability and a format similar to the one
4718 that Gnus has, although there are some unsupported features and
4719 Wanderlust specifics.
4720
4721 @menu
4722 * Score Commands::             Score Commands
4723 * Score File Format::          Score File Format
4724 @end menu
4725
4726
4727 @node Score Commands, Score File Format, Scoring, Scoring
4728 @section Score Commands
4729 @cindex Score Commands
4730
4731 @subsection Score File Specification
4732
4733 @code{wl-score-folder-alist} specifies score files or variables in which 
4734 scores are defined, corresponding to folder names.
4735
4736 @lisp
4737 (setq wl-score-folder-alist
4738       '(("^-.*"
4739          "news.SCORE"
4740          "my.SCORE")
4741         (".*"
4742          "all.SCORE")))
4743 @end lisp
4744
4745 If paths to the score files are omitted, the directory specified in the
4746 variable @code{wl-score-files-dir} is assumed.
4747
4748 No matter what you write in @code{wl-score-folder-alist}, the default
4749 score file @code{wl-score-default-file} (@file{all.SCORE}) is always
4750 read (it does not have to exist).
4751 Therefore, in the example above, the three score files,
4752 @file{news.SCORE}, @file{my.SCORE}, and @file{all.SCORE} are read for
4753 the folders that matches @samp{^-.*}.
4754
4755 @subsection Scored Messages
4756
4757 Scores are attached to the messages that are specified by
4758 @code{wl-summary-score-marks} temporarily when the summary is updated;
4759 when you exit from the summary, the scores are removed and reverts to
4760 the defaults.
4761
4762 @subsection Creation of Score Files
4763
4764 In the summary buffer, move to an appropriate message and type @kbd{L}.
4765 Then type @kbd{s}, @kbd{s}, and @kbd{p} at a prompt in a mini-buffer.
4766 The string in Subject is presented.  Edit it and press @kbd{@key{RET}}.
4767
4768 This makes -1000 are scored for messages with the same Subject as the
4769 string you entered.  That is, such a score file is created
4770 automatically.
4771
4772 Then, try typing @kbd{h} and @kbd{e} in the same summary buffer.
4773 The score file you just made appears.
4774 This buffer is called "score editing buffer" thereafter.
4775 When you type @kbd{C-c C-e} in it, you are prompted in the mini-buffer
4776 as you are previously; type @kbd{a}.  Then a score entry for "From"
4777 should be inserted.
4778 In this way, you can create a score file easily either in the summary
4779 buffer or in the score editing buffer.
4780
4781 By the way, you might be aware the numbers of key strokes are different
4782 between @kbd{s s p} and @kbd{a}.
4783 This is determined by @code{wl-score-header-default-entry}.
4784 This variable specifies the default score entries corresponding to
4785 header fields.
4786 For example, for "subject" field, a type and a time limit are prompted,
4787 but for "from" field, they are fixed upon automatically as substring and
4788 permanent respectively.
4789 However, score values can be modified by the prefix argument.
4790 Typing @kbd{?} at the mini-buffer shows a help on keys and corresponding 
4791 headers and types.
4792
4793 At last, type @kbd{C-c C-c} in the score editing buffer.  This saves the 
4794 score file and terminates the edit mode.  Typing @kbd{C-c C-c} after
4795 erasing contents of the buffer deletes the score file being edited.
4796
4797 @subsection Tips
4798
4799 @subsubsection Selecting Score Files
4800
4801 You can change score files to which scores are appended by
4802 @code{wl-summary-increase-score} and @code{wl-summary-lower-score} by
4803 @code{wl-score-change-score-file}.
4804
4805 @subsubsection Summing Up the Score
4806
4807 If you add the same entries by @code{wl-summary-increase-score},
4808 @code{wl-summary-lower-score}, and @code{wl-score-edit-insert-entry},
4809 scores for the entry is summed up.
4810
4811 For example, if you create @samp{from} entry with the score of -1000 by
4812 @kbd{L a} and again @samp{from} with -200, one entry with the score of
4813 -1200 will be created as a result.
4814
4815 @subsubsection Creating Thread Key
4816
4817 Creating @samp{Thread} key by @code{wl-summary-increase-score} or
4818 @code{wl-summary-lower-score} appends @samp{Message-ID} of all children.
4819
4820 @subsubsection Creating Followup Key
4821
4822 Creating @samp{Followup} key by @code{wl-summary-increase-score} or
4823 @code{wl-summary-lower-score} appends @samp{Message-ID} of the message
4824 at the cursor to @samp{References} key.
4825 If @code{wl-score-auto-make-followup-entry} is non-nil,
4826 @samp{Message-ID} of all messages to be followed up within dates
4827 specified by @code{wl-score-expiry-days}.
4828
4829 @subsection Key Bindings
4830
4831 @table @kbd
4832 @item K
4833 @kindex K (Summary)
4834 @findex wl-summary-increase-score
4835 Increases the score for the current message.
4836 And the score entry is appended to the score file at the same moment.
4837 You can specify the score value by a prefix argument.
4838
4839 @item L
4840 @kindex L (Summary)
4841 @findex wl-summary-lower-score
4842 Decreases the score for the current message.
4843 And the score entry is appended to the score file at the same moment.
4844 You can specify the score value by a prefix argument.
4845
4846 @item h R
4847 @kindex h R (Summary)
4848 @findex wl-summary-rescore
4849 Re-applies the scoring.
4850 However, already scored messages are not scored anew.
4851
4852 @item h c
4853 @kindex h c (Summary)
4854 @findex wl-score-change-score-file
4855 Changes the score file currently selected.
4856
4857 @item h e
4858 @kindex h e (Summary)
4859 @findex wl-score-edit-current-scores
4860 Edits the score file currently selected.
4861 If there are multiple score files, the previously specified one is
4862 selected.
4863
4864 @item h f
4865 @kindex h f (Summary)
4866 @findex wl-score-edit-file
4867 Edits an arbitrary score file and selects it.
4868
4869 @item h F
4870 @kindex h F (Summary)
4871 @findex wl-score-flush-cache
4872 Erases caches associated to the score files that are read.
4873 If you modified score files directly (from other than Wanderlust), you
4874 need to re-read them after erasing the cache.
4875
4876 @item h m
4877 @kindex h m (Summary)
4878 @findex wl-score-set-mark-below
4879 Specifies the criterion for scores to be marked as read.
4880 Messages with scores less than this value are marked as read.
4881
4882 @item h x
4883 @kindex h x (Summary)
4884 @findex wl-score-set-expunge-below
4885 Specifies the criterion for scores to be deleted from the summary.
4886 Messages with scores less than this value are deleted.
4887 "Deleted" means it is not shown; they are not removed from the summary
4888 information or the folder.
4889 The deleted messages can be shown by rescan-noscore again.
4890 @end table
4891
4892 @subsection Key Bindings in the Score Editing Buffer
4893
4894 @table @kbd
4895 @item C-c C-k
4896 @kindex C-c C-k (Score Mode)
4897 @findex wl-score-edit-kill
4898 Abandons the file being edited.
4899
4900 @item C-c C-c
4901 @kindex C-c C-c (Score Mode)
4902 @findex wl-score-edit-exit
4903 Saves the file being edited, and quits from the edit mode.
4904
4905 @item C-c C-p
4906 @kindex C-c C-p (Score Mode)
4907 @findex wl-score-pretty-print
4908 Re-draws the score.
4909
4910 @item C-c C-d
4911 @kindex C-c C-d (Score Mode)
4912 @findex wl-score-edit-insert-date
4913 Inserts the number of dates from Dec. 31, 1 B.C.
4914 It is used for creating the third factor of time-limited scores.
4915
4916 @item C-c C-s
4917 @kindex C-c C-s (Score Mode)
4918 @findex wl-score-edit-insert-header
4919 Inserts the header of the message selected in the summary buffer.
4920
4921 @item C-c C-e
4922 @kindex C-c C-e (Score Mode)
4923 @findex wl-score-edit-insert-entry
4924 Inserts the score entry of the message selected in the summary buffer.
4925 @end table
4926
4927 @subsection Customizable Variables
4928
4929 @table @code
4930 @item wl-summary-default-score
4931 @vindex wl-summary-default-score
4932 The initial setting is zero.
4933 This variable specifies the default value of the score.
4934 The score is increased or decreased based upon this value.
4935
4936 @item wl-summary-important-above
4937 @vindex wl-summary-important-above
4938 The initial setting is nil.
4939 Messages with scores larger than this value are attached with the
4940 important mark (@samp{$}).
4941 If nil, no important marks are attached.
4942
4943 @item wl-summary-temp-above
4944 @vindex wl-summary-temp-above
4945 The initial setting is nil.
4946 Messages with scores larger than this value are attached with the temp
4947 mark (@samp{*}).
4948 If nil, no temp marks are attached.
4949
4950 @item wl-summary-mark-below
4951 @vindex wl-summary-mark-below
4952 The initial setting is zero.
4953 Messages with scores smaller than this value are marked as read.
4954
4955 @item wl-summary-expunge-below
4956 @vindex wl-summary-expunge-below
4957 The initial setting is nil.
4958 Messages with scores smaller than this value are deleted from the
4959 summary.
4960 If nil, they are not deleted.
4961
4962 @item wl-summary-score-marks
4963 @vindex wl-summary-score-marks
4964 The initial setting is '("N" "!" "U").
4965 Messages with these marks are scored.
4966
4967 @item wl-use-scoring
4968 @vindex wl-use-scoring
4969 The initial setting is t.
4970 If non-nil, scoring is enabled.
4971
4972 @item wl-score-files-dir
4973 @vindex wl-score-files-dir
4974 The initial setting is "~/.elmo/".
4975 The default directory for score files.
4976
4977 @item wl-score-interactive-default-score
4978 @vindex wl-score-interactive-default-score
4979 The initial setting is 1000.
4980 This value is used as a score when a score factor is nil in the score
4981 file.
4982 It is also used in @code{wl-summary-increase-score} and
4983 @code{wl-summary-lower-score}, on condition that the value of
4984 @code{wl-score-header-default-entry} is nil.
4985
4986 @item wl-score-expiry-days
4987 @vindex wl-score-expiry-days
4988 The initial setting is 7.
4989 This is the number of days before time-limited scores are deleted.
4990
4991 @item wl-score-update-entry-dates
4992 @vindex wl-score-update-entry-dates
4993 The initial setting is t.
4994 If non-nil, it enables deletion of time-limited scores.
4995
4996 @item wl-score-header-default-entry
4997 @vindex wl-score-header-default-entry
4998 Specifies the default value for each header field for score entries
4999 created by @code{wl-summary-increase-score},
5000 @code{wl-summary-lower-score}, and @code{wl-score-edit-insert-entry}.
5001
5002 @item wl-score-simplify-fuzzy-regexp
5003 @vindex wl-score-simplify-fuzzy-regexp
5004 In the case of a type of a score entry is "fuzzy", this specifies a
5005 regular expression to be deleted from the string.
5006 Because this is usually used for Subject, the default is prefixes that
5007 are attached by mailing list programs.
5008
5009 @item wl-summary-rescore-partial-threshold
5010 @vindex wl-summary-rescore-partial-threshold
5011 The initial setting is 200.
5012 When sync-all or rescan is executed, if there are messages more than
5013 this value, only the last same number of messages as this value are
5014 scored.
5015
5016 @item wl-summary-auto-sync-marks
5017 @vindex wl-summary-auto-sync-marks
5018 If non-nil, unread/important marks are synchronized when the summary
5019 does.
5020 Unread marks reflect information on the IMAP4 server.
5021 Important marks reflect information on the IMAP4 server (flagged or
5022 not), and contents of 'mark folder.
5023 The initial setting is t.
5024 @end table
5025
5026
5027 @node Score File Format,  , Score Commands, Scoring
5028 @section Score File Format
5029 @cindex Score File Format
5030
5031 The format of score files are the same as Gnus, and basically you can
5032 use Gnus score files as they are.  But they are not fully compatible
5033 because some keys are not supported and there are Wanderlust specifics.
5034
5035 @example
5036 (("subject"
5037   ("for sale" -1000 nil s)
5038   ("profit" -1000 nil s))
5039  ("from"
5040   ("spam@@spamspamspam" -10000 nil s))
5041  ("followup"
5042   ("my@@address" 3001 nil s))
5043  ("chars"
5044   (1000000 -10 nil >))
5045  (important 5000)
5046  (temp 3000)
5047  (mark 0)
5048  (expunge -3000))
5049 @end example
5050
5051 @table @code
5052 @item string
5053 If the key is a string, it is the name of the header to be matched.
5054 The following keys are available:
5055 @code{Subject}, @code{From}, @code{Date}, @code{Message-ID},
5056 @code{References}, @code{To}, @code{Cc}, @code{Chars}, @code{Lines},
5057 @code{Xref}, @code{Extra}, @code{Followup}, @code{Thread}
5058 @code{Chars} and @code{Lines} mean the size and the number of lines of
5059 the message, respectively.  @code{Extra}, @code{Followup}, @code{Thread}
5060 are described later.
5061 The rest corresponds the field of the same name.
5062
5063 Arbitrary numbers of core entries are specified after the key.
5064 Each score entry consists of these five factors:
5065
5066 @enumerate
5067 @item
5068 A factor that matches header.  This should be a number in the cases of
5069 "lines" and "chars", otherwise a string.
5070
5071 @item
5072 A score factor.  When the first item matches, the score of the message
5073 is increased or decreased by this value.
5074
5075 @item
5076 A time limiting factor.  If nil, the score is permanent, and in the case
5077 of a number, the score is deleted if it does not match for days
5078 (@code{wl-score-expiry-days}) from the date specified by this.
5079 The date is since Dec. 31, 1 B.C.
5080
5081 @item
5082 A type factor.  This specifies the way the first factor matches.
5083 Available types depend on keys.
5084
5085 @table @dfn
5086 @item From, Subject, References, Message-ID
5087 For these keys in string, @code{r} and @code{R} (regexp),
5088 @code{s} and @code{S} (substring), @code{e} and @code{E} (exact match),
5089 as well as @code{f} and @code{F} (fuzzy) can be used.
5090 @code{R}, @code{S}, @code{E}, and @code{F} are case sensitive.
5091
5092 @item Lines, Chars
5093 For these keys, the following five numerical relative operators can be
5094 used: @code{<}, @code{>}, @code{=}, @code{>=}, @code{<=}.
5095
5096 @item Followup
5097 This key matches @code{From} header, and scores all follow-ups to the
5098 message.
5099 For example, it would be useful for increasing scores for follow-ups to
5100 you own article.
5101
5102 You can use the same types as @code{From} except for @code{f}.
5103 And a @samp{Followup} entry is automatically appended to the score file.
5104
5105 @item Thread
5106 This key scores (sub-)threads beginning with @code{Message-ID} @var{x}.
5107 A @samp{Thread} entry is automatically appended for each article that
5108 has @var{x} in the @code{References} header.
5109 You can make sure the whole thread including messages that does not have
5110 all ancestors @code{Message-ID} in @code{References} is scored.
5111
5112 You can use the same types as @code{References} except for @code{f}.
5113 And a @samp{Thread} entry is automatically appended to the score file.
5114 @end table
5115
5116 @item
5117 A factor for extension header.  This is meaningful only if the key is
5118 @code{Extra}.
5119 This specifies headers to be matched other than standard headers like
5120 @code{Subject} and @code{From}.
5121 Note that you should specify the header in
5122 @code{elmo-msgdb-extra-fields} also.
5123 Therefore it does not work in folders where extension headers cannot be
5124 retrieved.
5125
5126 @end enumerate
5127
5128 The sum of these scores @emph{after all factors are applied} becomes the 
5129 score of the message.
5130
5131 @cindex Score File Atoms
5132 @item mark
5133 Messages with a score less than this value is marked as read.
5134 The default is @code{wl-summary-mark-below}.
5135
5136 @item expunge
5137 Messages with a score less than this value is deleted from the summary.
5138 The default is @code{wl-summary-expunge-below}.
5139
5140 @item mark-and-expunge
5141 Both @code{mark} and @code{expunge} are applied,
5142 i.e. messages with a score less than this value is marked as read and
5143 deleted from the summary.
5144
5145 @item temp
5146 Messages with a score greater than this value is attached with temp
5147 marks.
5148 The default is @code{wl-summary-temp-above}.
5149
5150 @item important
5151 Messages with a score greater than this value is attached with important
5152 marks.
5153 The default is @code{wl-summary-important-above}.
5154 @end table
5155
5156 @subsection Caveats
5157
5158 Not to mention the @code{extra} key, if @code{lines} or @code{xref} keys 
5159 are used, you need to set @code{elmo-msgdb-extra-fields}.
5160
5161 @lisp
5162 (setq elmo-msgdb-extra-fields '("lines" "xref"))
5163 @end lisp
5164
5165 There are other restrictions as shown below:
5166
5167 @itemize @bullet
5168 @item Because @samp{References} field in the summary information
5169 contains only the last @samp{Message-ID}, @code{references} key matches
5170 the last one only.
5171 @end itemize
5172
5173 Keys that can be seen by folder of types:
5174
5175 @example
5176                         chars lines xref  extra
5177 localdir,localnews        Y     E     E     E
5178 nntp (supporting xover)   Y     E     E     N
5179      (otherwise)          N     E     E     E
5180 imap4                     Y     E     E     E
5181 pop3                      N     E     E     E
5182
5183                 Y: can be seen
5184                 N: cannot be seen (ignored)
5185                 E: can be seen with @code{elmo-msgdb-extra-fields} settings
5186 @end example
5187
5188
5189 @c
5190 @c  Customization
5191 @c
5192 @node Customization, Mailing List, Scoring, Top
5193 @chapter Customizing Wanderlust
5194 @cindex Customization
5195
5196 @menu
5197 * Living with other packages:: Living with other packages
5198 * Highlights::                 Highlights
5199 * Advanced Settings::          Advanced Settings
5200 * Customizable Variables::     Customizable Variables
5201 @end menu
5202
5203
5204 @node Living with other packages, Highlights, Customization, Customization
5205 @section Living with other packages
5206
5207 Examples with other packages.
5208
5209 @menu
5210 * BBDB::                        BBDB
5211 * supercite::                   supercite.el
5212 * mu-cite::                     mu-cite.el
5213 * x-face-mule::                 x-face-mule.el
5214 * dired-dd::                    dired-dd.el
5215 @end menu
5216
5217
5218 @node BBDB, supercite, Living with other packages, Living with other packages
5219 @subsection bbdb.el
5220 @pindex BBDB
5221
5222 Place @file{util/bbdb-wl.el} on the load-path and do the following
5223 settings.
5224
5225 If BBDB is on the load-path at the installation, @file{bbdb-wl.el} is
5226 byte-compiled and installed.
5227 @xref{Install}.
5228
5229 @lisp
5230 (require 'bbdb-wl)
5231
5232 (bbdb-wl-setup)
5233 ;; @r{enable pop-ups}
5234 (setq bbdb-use-pop-up t)
5235 ;; @r{auto collection}
5236 (setq bbdb/mail-auto-create-p t)
5237 (setq signature-use-bbdb t)
5238 (setq bbdb-north-american-phone-numbers-p nil)
5239 ;; @r{shows the name of bbdb in the summary} :-)
5240 (setq wl-summary-from-func 'bbdb-wl-from-func)
5241 ;; @r{automatically add mailing list fields}
5242 (add-hook 'bbdb-notice-hook 'bbdb-auto-notes-hook)
5243 (setq bbdb-auto-notes-alist '(("X-ML-Name" (".*$" ML 0))))
5244 @end lisp
5245
5246 @node supercite, mu-cite, BBDB, Living with other packages
5247 @subsection sc.el(supercite), sc-register.el
5248 @pindex sc
5249 @pindex supercite
5250
5251 The same setting as usual mailers should be OK.  The following is an
5252 example of settings.
5253
5254 @lisp
5255 (autoload 'sc-cite-original "sc" nil t)
5256 (setq mail-yank-hooks 'sc-cite-original)
5257 (setq sc-preferred-header-style 1)
5258 (setq sc-electric-references-p nil)
5259 (setq sc-citation-leader "")
5260 (setq sc-load-hook '(lambda () (require 'sc-register)))
5261 (setq sc-preferred-attribution 'registeredname)
5262 @end lisp
5263
5264
5265 @node mu-cite, x-face-mule, supercite, Living with other packages
5266 @subsection mu-cite.el
5267 @pindex mu-cite
5268
5269 The same setting as usual mailers should be OK.  The following is an
5270 example of settings.
5271
5272 If you use mu-cite version 8.0 or earlier:
5273
5274 @lisp
5275 (autoload 'mu-cite/cite-original "mu-cite" nil t)
5276 (setq mail-citation-hook 'mu-cite/cite-original)
5277 @end lisp
5278
5279 If you use mu-cite version 8.1 or later:
5280
5281 @lisp
5282 (autoload 'mu-cite-original "mu-cite" nil t)
5283 (add-hook 'mail-citation-hook (function mu-cite-original))
5284 @end lisp
5285
5286 @node x-face-mule, dired-dd, mu-cite, Living with other packages
5287 @subsection x-face-mule.el
5288 @pindex x-face-mule
5289 @pindex bitmap-mule
5290
5291 It depends on the version of x-face-mule.
5292 If you use x-face-mule 0.19 or older, do the following:
5293
5294 @lisp
5295 (setq wl-highlight-x-face-func
5296       (function
5297        (lambda (beg end)
5298         (x-face-mule:x-face-decode-message-header))))
5299
5300 If you use x-face-mule 0.20 or later, try the following.
5301
5302 (setq wl-highlight-x-face-func
5303       (function
5304        (lambda (beg end)
5305         (x-face-mule-x-face-decode-message-header))))
5306 (require 'x-face-mule)
5307 @end lisp
5308
5309 Use these settings when you use @file{x-face-mule.el} attached to
5310 bitmap-mule 8.0 or later.
5311
5312 @lisp
5313 (autoload 'x-face-decode-message-header "x-face-mule")
5314 (setq wl-highlight-x-face-func
5315       (function x-face-decode-message-header))
5316 @end lisp
5317
5318 If there is an encoded X-Face string in a file @file{~/.xface} (the value
5319 of the variable @code{wl-x-face-file}), it is inserted as a X-Face field
5320 in the draft buffer (if @code{wl-auto-insert-x-face} is non-nil).
5321
5322
5323 @node dired-dd,  , x-face-mule, Living with other packages
5324 @subsection dired-dd(Dired-DragDrop)
5325 @pindex Dired-DragDrop
5326 @pindex Dired-DD
5327 @cindex Drag and Drop
5328
5329 If you embed @file{dired-dd-mime.el} in the dired-dd package, you can
5330 compose multi-part by simple Drag&Drop from dired to the draft buffer
5331 being edited in GNU Emacs (this feature is not Wanderlust specific, but
5332 general-purpose for tm/SEMI).
5333
5334 @lisp
5335 ;; @r{dired-dd:} http://www.asahi-net.or.jp/~pi9s-nnb/dired-dd-home.html
5336 (add-hook
5337  'dired-load-hook
5338  (function
5339   (lambda ()
5340     (load "dired-x")
5341     ;; @r{Set dired-x variables here.}
5342     ;; @r{To and flo@dots{}}
5343     (if window-system
5344         (progn (require 'dired-dd)
5345                (require 'dired-dd-mime))))))
5346 @end lisp
5347
5348
5349 @node Highlights, Advanced Settings, Living with other packages, Customization
5350 @section Highlights
5351
5352 @subsection Customizable Variables
5353
5354 @table @code
5355 @item  wl-summary-highlight
5356 @vindex wl-summary-highlight
5357 The initial setting is t.
5358 If non-nil, the summary is highlighted.
5359
5360 @item  wl-highlight-max-summary-lines
5361 @vindex wl-highlight-max-summary-lines
5362 The initial setting is 10000.
5363 The summary is not highlighted if it has more lines than this value.
5364
5365 @item  wl-summary-highlight-partial-threshold
5366 @vindex wl-summary-highlight-partial-threshold
5367 The initial setting is 1000.
5368 This is a threshold whether the whole summary is highlighted.
5369 If there are more lines of messages in the summary, it is partially
5370 highlighted.
5371
5372 @item  wl-summary-partial-highlight-above-lines
5373 @vindex wl-summary-partial-highlight-above-lines
5374 The initial setting is 30.
5375 If there are more lines of messages than
5376 @code{wl-summary-highlight-partial-threshold} in the summary, messages
5377 after the point that is the same number of lines as this value above the
5378 cursor line are highlighted partially.
5379 (If this value is nil, the last same number of lines as the value of
5380 @code{wl-summary-highlight-partial-threshold} are highlighted.)
5381
5382 @item wl-highlight-body-too
5383 @vindex  wl-highlight-body-too
5384 The initial setting is t.
5385 If non-nil, bodies of drafts and messages are also highlighted.
5386
5387 @item  wl-highlight-message-header-alist
5388 @vindex wl-highlight-message-header-alist
5389 When highlighting headers of drafts and messages, this variable
5390 specifies which faces are allocated to important
5391 (@code{wl-highlight-message-important-header-contents}), secondly
5392 important (@code{wl-highlight-message-important-header-contents2}), and
5393 unimportant (@code{wl-highlight-message-unimportant-header-contents})
5394 message headers.
5395 Similarly, it can be used for allocating arbitrary faces to arbitrary
5396 regular expressions.
5397
5398 @item wl-highlight-citation-prefix-regexp
5399 @vindex  wl-highlight-citation-prefix-regexp
5400 Specifies a regular expression to which quoted lines in bodies of 
5401 drafts and messages match.
5402 Bodies matching to this regular expression are highlighted by the faces
5403 specified by (@code{wl-highlight-message-cited-text-*}).
5404
5405 @item  wl-highlight-highlight-citation-too
5406 @vindex wl-highlight-highlight-citation-too
5407 The initial setting is nil.
5408 If non-nil, the quoting regular expression itself given by
5409 @code{wl-highlight-citation-prefix-regexp} is also highlighted.
5410
5411 @item  wl-highlight-citation-header-regexp
5412 @vindex wl-highlight-citation-header-regexp
5413 Specifies a regular expression that denotes beginning of quotation.
5414 Bodies matching to this regular expression are highlighted by the face
5415 specified by @code{wl-highlight-message-headers}.
5416
5417 @item  wl-highlight-max-message-size
5418 @vindex wl-highlight-max-message-size
5419 The initial setting is 10000.
5420 If a message is larger than this value, it will not be highlighted.
5421 With this variable, highlight is suppressed for uuencode or huge digest
5422 messages.
5423
5424 @item  wl-highlight-signature-separator
5425 @vindex wl-highlight-signature-separator
5426 Specifies regular expressions that denotes the boundary of a signature.
5427 It can be a regular expression, or a list of ones.
5428 Messages after the place that matches this regular expression are
5429 highlighted by the face specified by
5430 @code{wl-highlight-message-signature}.
5431
5432 @item  wl-max-signature-size
5433 @vindex wl-max-signature-size
5434 The initial setting is 400.
5435 This is the largest size for a signature to be highlighted.
5436
5437 @item wl-use-highlight-mouse-line
5438 @vindex  wl-use-highlight-mouse-line
5439 The initial setting is t.
5440 If non-nil, the line pointed by the mouse is highlighted in the folder
5441 mode, summary mode, and the like.
5442 @end table
5443
5444 @subsection Setting Colors and Fonts of the Characters
5445
5446 If you want to change colors or fonts of the characters, you need to
5447 modify faces defined in Wanderlust.  Use set-face-font if you want to
5448 change fonts, and set-face-foreground for colors, and so on.
5449 You cannot write face settings in @file{.emacs}; write in @file{~/.wl}.
5450
5451 For example, if you want to change the color for signatures to yellow,
5452 write
5453
5454 @lisp
5455 (set-face-foreground 'wl-highlight-message-signature "yellow")
5456 @end lisp
5457
5458 @noindent
5459 in @file{~/.wl}.
5460
5461 Faces defined in Wanderlust:
5462
5463 @table @code
5464 @item wl-highlight-message-headers
5465 The face for field names of message headers.
5466
5467 @item wl-highlight-message-header-contents
5468 The face for field bodies of message headers.
5469
5470 @item wl-highlight-message-important-header-contents
5471 The face for important parts of message headers.
5472 Per default, this face is used for a body of Subject field.
5473 You can change its value by editing
5474 @code{wl-highlight-message-header-alist}.
5475
5476 @item wl-highlight-message-important-header-contents2
5477 The face for secondly important parts of message headers.
5478 Per default, this face is used for bodies of From and To fields.
5479 You can change its value by editing
5480 @code{wl-highlight-message-header-alist}.
5481
5482 @item wl-highlight-message-unimportant-header-contents
5483 The face for unimportant parts of message headers.
5484 Per default, this face is used for bodies of X- fields User-Agent fields.
5485 You can change its value by editing
5486 @code{wl-highlight-message-header-alist}.
5487
5488 @item wl-highlight-message-citation-header
5489 The face for headers of quoted messages.
5490
5491 @item wl-highlight-message-cited-text-*
5492 The face for texts of quoted messages.
5493 The last "*" is a single figure so that 10 different colors can be used
5494 according to citation levels.
5495
5496 @item wl-highlight-message-signature
5497 The face for signatures of messages.
5498 The initial settings are khaki for light background colors, and
5499 DarkSlateBlue for dark background colors.
5500
5501 @item wl-highlight-header-separator-face
5502 The face for header separators of draft messages.
5503
5504 @item wl-highlight-summary-important-face
5505 The face for message lines with important marks in the summary.
5506
5507 @item wl-highlight-summary-new-face
5508 The face for message lines with new marks in the summary.
5509
5510 @item wl-highlight-summary-displaying-face
5511 The face for the message line that is currently displayed.
5512 This face is overlaid.
5513
5514 @item wl-highlight-thread-indent-face
5515 The face for the threads that is currently displayed.
5516
5517 @item wl-highlight-summary-unread-face
5518 The face for message lines with unread marks in the summary.
5519
5520 @item wl-highlight-summary-deleted-face
5521 The face for message lines with delete marks in the summary.
5522
5523 @item wl-highlight-summary-refiled-face
5524 The face for message lines with re-file marks in the summary.
5525
5526 @item wl-highlight-refile-destination-face
5527 The face for re-file information part of message lines with re-file
5528 marks in the summary.
5529
5530 @item wl-highlight-summary-copied-face
5531 The face for message lines with copy marks in the summary.
5532
5533 @item wl-highlight-summary-target-face
5534 The face for message lines with temp marks @samp{*} in the summary.
5535
5536 @item wl-highlight-summary-thread-top-face
5537 The face for message lines that are on the top of the thread in the
5538 summary.
5539
5540 @item wl-highlight-summary-normal-face
5541 The face for message lines that are not on top of the thread in the
5542 summary.
5543
5544 @item wl-highlight-folder-unknown-face
5545 The face for folders that are not known to have how many unsync messages
5546 in the folder mode.
5547
5548 @item wl-highlight-folder-zero-face
5549 The face for folders that have no unsync messages in the folder mode.
5550
5551 @item wl-highlight-folder-few-face
5552 The face for folders that have some unsync messages in the folder mode.
5553
5554 @item wl-highlight-folder-many-face
5555 The face for folders that have many unsync messages in the folder mode.
5556 The boundary between `some' and `many' is specified by the variable
5557 @code{wl-folder-many-unsync-threshold}.
5558
5559 @item wl-highlight-folder-unread-face
5560 The face for folders that have no unsync but unread messages in the
5561 folder mode.
5562
5563 @item wl-highlight-folder-killed-face
5564 The face for folders that are deleted from the access group in the
5565 folder mode.
5566
5567 @item wl-highlight-folder-opened-face
5568 The face for open groups in the folder mode.
5569 It is meaningful when @code{wl-highlight-group-folder-by-numbers} is nil.
5570
5571 @item wl-highlight-folder-closed-face
5572 The face for close groups in the folder mode.
5573 It is meaningful when @code{wl-highlight-group-folder-by-numbers} is nil.
5574
5575 @item wl-highlight-folder-path-face
5576 The face for the path to the currently selected folder in the folder
5577 mode.
5578
5579 @item wl-highlight-logo-face
5580 The face for logo in the demo.
5581
5582 @item wl-highlight-demo-face
5583 The face for strings (for example, a version number) in the demo.
5584 @end table
5585
5586 @node Advanced Settings, Customizable Variables, Highlights, Customization
5587 @section Advanced Settings
5588
5589 @menu
5590 * Draft for Reply::             Draft for Reply
5591 * Thread Format::               Appearance of Thread
5592 * User-Agent Header::           User-Agent Header
5593 @end menu
5594
5595
5596 @node Draft for Reply, Thread Format, Advanced Settings, Advanced Settings
5597 @subsection Draft for Replay
5598
5599 If you want, when you replying to articles in mailing lists, the address
5600 in Reply-To field of the original message to be prepared to To field of
5601 the reply draft by simply pressing @kbd{a} in the summary mode, try the
5602 following settings:
5603
5604 @lisp
5605 (setq wl-draft-reply-without-argument-list
5606       '(("Mail-Followup-To" . (("Mail-Followup-To") nil ("Newsgroups")))
5607         ("Followup-To" . (nil nil ("Followup-To")))
5608         (("X-ML-Name" "Reply-To") . (("Reply-To") nil nil))
5609         ("From" . (("From") ("To" "Cc") ("Newsgroups")))))
5610 @end lisp
5611
5612 @noindent
5613 (Only if there are both of "X-ML-Name" and "Reply-To" fields in the
5614 original message, Reply-To: field in the original is copied to To:
5615 field.)
5616
5617 @node Thread Format, User-Agent Header, Draft for Reply, Advanced Settings
5618 @subsection Appearance of Threads
5619
5620 @example
5621   389  09/18(Fri)01:07 [ Teranishi         ] wl-0.6.3
5622   390  09/18(Fri)07:25 +-[ Tsumura-san       ]
5623   391  09/18(Fri)19:24 +-[ Murata-san        ]
5624   392  09/20(Sun)21:49 +-[ Okunishi-san      ]
5625   396  09/20(Sun)22:11 | +-[ Tsumura-san       ]
5626   398  09/21(Mon)00:17 |   +-[ Tsumura-san       ]
5627   408  09/21(Mon)22:37 |     +-[ Okunishi-san      ]
5628   411  09/22(Tue)01:34 |       +-[ Tsumura-san       ]
5629   412  09/22(Tue)09:28 |       +-[ Teranishi         ]
5630   415  09/22(Tue)11:52 |         +-[ Tsumura-san       ]
5631   416  09/22(Tue)12:38 |           +-[ Teranishi         ]
5632   395  09/20(Sun)21:49 +-[ Okunishi-san      ]
5633   397  09/21(Mon)00:15 +-[ Okunishi-san      ]
5634 @end example
5635
5636 Settings to make appearance of threads like shown above:
5637
5638 @lisp
5639 (setq wl-thread-indent-level 2)
5640 (setq wl-thread-have-younger-brother-str "+")
5641 (setq wl-thread-youngest-child-str       "+")
5642 (setq wl-thread-vertical-str             "|")
5643 (setq wl-thread-horizontal-str           "-")
5644 (setq wl-thread-space-str                " ")
5645 @end lisp
5646
5647 If you do not want to see branches, do the following:
5648
5649 @lisp
5650 (setq wl-thread-indent-level 2)
5651 (setq wl-thread-have-younger-brother-str " ")
5652 (setq wl-thread-youngest-child-str       " ")
5653 (setq wl-thread-vertical-str             " ")
5654 (setq wl-thread-horizontal-str           " ")
5655 (setq wl-thread-space-str                " ")
5656 @end lisp
5657
5658
5659 @node User-Agent Header,  , Thread Format, Advanced Settings
5660 @subsection User-Agent
5661
5662 If you are eccentric enough to elaborate X-Mailer or User-Agent fields,
5663 define a function that inserts appropriate strings as you like, and set
5664 it to @code{wl-generate-mailer-string-func}.
5665
5666 The following is an example.
5667
5668 @lisp
5669 (setq wl-generate-mailer-string-func
5670       (function
5671        (lambda ()
5672          (concat "X-Mailer: "
5673                  (format "%s/%s (%s)" wl-appname wl-version wl-codename)))))
5674 @end lisp
5675
5676 @node Customizable Variables,  , Advanced Settings, Customization
5677 @section Customizable Variables
5678
5679 Customizable variables that have not been described yet:
5680
5681 @table @code
5682 @item wl-default-folder
5683 @vindex wl-default-folder
5684 The initial setting is "%inbox".  This is the default value for moving to
5685 a folder and the like.
5686
5687 @item wl-draft-folder
5688 @vindex wl-draft-folder
5689 The initial setting is "+draft".  It is the folder to which drafts are
5690 saved.  It must be a localdir folder.
5691
5692 @item wl-trash-folder
5693 @vindex wl-trash-folder
5694 The initial setting is "+trash".  It is the wastebasket folder.
5695 If you changed this variable, you had better restart Wanderlust.
5696
5697 @item wl-interactive-exit
5698 @vindex wl-interactive-exit
5699 The initial setting is t.
5700 If non-nil, you are asked for confirmation when Wanderlust terminates.
5701
5702 @item wl-interactive-send
5703 @vindex wl-interactive-send
5704 The initial setting is nil.
5705 If non-nil, you are asked for confirmation when mail is sent.
5706
5707 @item wl-folder-sync-range-alist
5708 @vindex wl-folder-sync-range-alist
5709 The initial setting is the list shown below:
5710 @example
5711 (("^&.*$" . "all")
5712  ("^\\+draft$\\|^\\+queue$" . "all"))
5713 @end example
5714 This is an associative list of regular expressions of folder names and
5715 update range of the summary.
5716 Update range is one of the "all", "update", "rescan", "rescan-noscore", "first"
5717  and "last". If a folder do not match, "update" is used.
5718
5719 @item wl-ask-range
5720 @vindex wl-ask-range
5721 The initial setting is t.
5722 If nil, the value of @code{wl-folder-sync-range-alist} is used for
5723 updating the summary when you changed folders.
5724
5725 @item wl-mime-charset
5726 @vindex wl-mime-charset
5727 The initial setting is 'x-ctext.
5728 This is the MIME charset for messages that are not MIME (e.g. without
5729 Content-Type). This value also used as default charset for summary.
5730 (If you want to share Summary on Nemacs and other Emacsen,
5731 set this value as 'iso-2022-jp.)
5732
5733 @item wl-search-mime-charset
5734 @vindex wl-search-mime-charset
5735 The initial setting is 'iso-2022-jp.
5736 This is used as a MIME charset for searching.
5737
5738 @item wl-highlight-folder-with-icon
5739 @vindex wl-highlight-folder-with-icon
5740 This is meaningful for XEmacs only.  The initial setting depends on
5741 XEmacs (t for XEmacs with icons).
5742
5743 @item wl-strict-diff-folders
5744 @vindex wl-strict-diff-folders
5745 This is a list of regular expressions of folders.
5746 Unread messages are checked, for example when you press @kbd{s} in
5747 the folder mode, usually in a brief way (rapidly processed but not
5748 accurate).
5749 The folders matching this variable are seriously checked.
5750 You may want to set this variable so as to match conditional filter
5751 folders for IMAP4 folders.
5752 The initial setting is nil.
5753
5754 @item wl-folder-use-server-diff
5755 @vindex wl-folder-use-server-diff
5756 When unread messages are checked, for example when you press @kbd{s} in
5757 the folder mode, usually (the number of messages on the server) - (the
5758 number of local messages) will be the number of unread messages.
5759 However, if this variable is non-nil, the number of unread messages on
5760 the server is checked.  This affects IMAP4 folders only, but IMAP4
5761 folders in mail boxes matching
5762 @code{elmo-imap4-disuse-server-flag-mailbox-regexp} are not checked for
5763 the number of unread messages on the server, even if they matches this
5764 variable.  The initial setting is t.
5765
5766 @item wl-auto-check-folder-name
5767 @vindex wl-auto-check-folder-name
5768 The initial setting is nil.
5769 If non-nil, the folder with the name of the value is checked for unread
5770 messages at the start.
5771 If it is 'none, no folders are checked.
5772 If it is a list, all folders in the list are checked at the start.
5773
5774 @item wl-auto-uncheck-folder-list
5775 @vindex wl-auto-uncheck-folder-list
5776 The initial setting is '("\\$.*").
5777 Folders with the name matching this variable are not checked for unread
5778 messages at the start, even if they are included in the groups in
5779 @code{wl-auto-check-folder-name}.
5780
5781 @item wl-auto-check-folder-list
5782 @vindex wl-auto-check-folder-list
5783 The initial setting is nil.
5784 Folders with the name matching this variable are always checked for
5785 unread messages at the start, if they are included in the groups in
5786 @code{wl-auto-check-folder-name}.
5787 This takes precedence over @code{wl-auto-uncheck-folder-list}.
5788
5789 @item wl-no-save-folder-list
5790 @vindex wl-no-save-folder-list
5791 The initial setting is '("^/.*$").
5792 This is a list of regular expressions of folders not to be saved.
5793
5794 @item wl-save-folder-list
5795 @vindex wl-save-folder-list
5796 The initial setting is nil.
5797 This is a list of regular expressions of folders to be saved.
5798 This takes precedence over @code{wl-no-save-folder-list}.
5799
5800 @item wl-folder-mime-charset-alist
5801 @vindex wl-folder-mime-charset-alist
5802 The initial setting is the list shown below:
5803
5804 @lisp
5805 '(("^-alt\\.chinese" . big5)
5806   ("^-relcom\\." . koi8-r)
5807   ("^-tw\\." . big5)
5808   ("^-han\\." . euc-kr)
5809   )
5810 @end lisp
5811
5812 This is an associative list of regular expressions of folder names and
5813 MIME charsets.
5814 If a folder do not match, @code{wl-mime-charset} is used.
5815
5816 @item wl-folder-init-load-access-folders
5817 @vindex wl-folder-init-load-access-folders
5818 The initial setting is nil.
5819 This is a list of access groups to be loaded specifically at the start.
5820 If it is  nil, @code{wl-folder-init-no-load-access-folders} is referred.
5821
5822 @item wl-folder-init-no-load-access-folders
5823 @vindex wl-folder-init-no-load-access-folders
5824 The initial setting is nil.
5825 This is a list of access groups not to be loaded specifically at the
5826 start.
5827 It is ignored if @code{wl-folder-init-load-access-folders} is non-nil.
5828
5829 @item wl-delete-folder-alist
5830 @vindex wl-delete-folder-alist
5831 The initial setting is '(("^-" . remove)).
5832 This list determines disposition of messages with delete marks.
5833 Each item in the list is a folder and destination; you can specify any
5834 one of the following in the place of destination:
5835
5836 @example
5837 'remove or 'null : deletes the messages instantly.
5838 string           : moves the messages to the specific folder.
5839 'trash or others : moves the messages to `wl-trash-folder'.
5840 @end example
5841
5842 @item wl-refile-policy-alist
5843 @vindex wl-refile-policy-alist
5844 The initial setting is '(("^[-=]" . copy) (".*" . move)).
5845 This list determines whether messages with re-file marks are moved or
5846 copied.
5847 Each item in the list is a cons cell of a folder and copy or move.
5848
5849 @item wl-x-face-file
5850 @vindex wl-x-face-file
5851 The initial setting is "~/.xface".
5852 The name of the file that contains encoded X-Face strings.
5853 @xref{x-face-mule}.
5854
5855 @item wl-demo-display-logo
5856 @vindex wl-demo-display-logo
5857 If non-nil, bitmap image is shown on the opening demo.
5858
5859 @item elmo-use-database
5860 @vindex  elmo-use-database
5861 This is meaningful for XEmacs only.  The initial setting depends on
5862 XEmacs (t for XEmacs with dbm).
5863 If non-nil, Message-ID is controlled by dbm.
5864
5865 @item elmo-passwd-alist-file-name
5866 @vindex  elmo-passwd-alist-file-name
5867 The initial setting is "passwd".
5868 This is the name of the file in which passwords are saved.
5869 @code{elmo-passwd-alist-save} saves current passwords to the file.
5870
5871 @item elmo-nntp-list-folders-use-cache
5872 @vindex elmo-nntp-list-folders-use-cache
5873 The initial setting is 600 (in seconds).
5874 This is period in seconds during which results of @samp{list} and
5875 @samp{list active} in NNTP are cached.  If it is nil, they are not
5876 cached.
5877
5878 @item elmo-nntp-max-number-precedes-list-active
5879 @vindex elmo-nntp-max-number-precedes-list-active
5880 The initial setting is nil.
5881 If non-nil, the number of article obtained by @samp{list active} in NNTP
5882 are used as the maximum article number of the folder.
5883 Set this to t if you are using for example INN 2.3 as an NNTP server,
5884 and if the number of read messages is not correct.
5885
5886 @item elmo-nntp-default-use-listgroup
5887 @vindex elmo-nntp-default-use-listgroup
5888 The initial setting is t.
5889 If non-nil, @samp{listgroup} is used for checking the total number of
5890 articles.
5891 If it is nil, @samp{group} is used.  In the latter case, the processing
5892 will be a little faster at the sacrifice of accuracy.
5893
5894 @item elmo-pop3-send-command-synchronously
5895 @vindex elmo-pop3-send-command-synchronously
5896 The initial setting is nil.
5897 If non-nil, POP3 commands are issued synchronously.  Some implementation
5898 of POP3 server fails to get summary information without this setting.
5899 You may have to set this variable to t, if the process hangs while
5900 looking up POP3.
5901
5902 @item elmo-dop-flush-confirm
5903 @vindex elmo-dop-flush-confirm
5904 The initial setting is t.
5905 If non-nil, you are asked for confirmation if accumulated off-line
5906 operations are executed.
5907 @end table
5908
5909
5910 @c
5911 @c  Mailing List
5912 @c
5913 @node Mailing List, Addition, Customization, Top
5914 @chapter Wanderlust Mailing List
5915
5916 @display
5917 Wanderlust Mailing List @t{<wl@@lists.airs.net>}
5918 @end display
5919
5920 Topics related to Wanderlust are discussed in the mailing list.
5921 The latest version is also announced there (in Japanese, sorry).
5922
5923 A guide can be obtained automatically by sending mail to
5924 @t{wl-ctl@@lists.airs.net} with the body
5925
5926 @example
5927 # guide
5928 @end example
5929 Please send bug reports or patches to the mailing list.
5930 You can post to the mailing list even though you are not a member of it.
5931
5932 I would like to express my thanks to the members of the mailing list for 
5933 valuable advice and many pieces of code they contributed.
5934
5935
5936 @c
5937 @c  Addition
5938 @c
5939 @node Addition, Index, Mailing List, Top
5940 @chapter Additional Information
5941
5942 @section Brief History
5943
5944 @example
5945 1998  3/05    Tried to make a prototype that displays MH messages in threads.
5946       3/10    Made a msgdb mechanism by elisp.
5947       3/26    IMAP and NNTP can be displayed in threads.
5948       4/13    Began to assemble thread display modules as elmo.
5949       5/01    Finished 0.1.0, initial version with many defects.
5950       6/12    I made a slip of the tongue and said I was writing elisp
5951               mailer supporting IMAP
5952       6/16    0.1.3 was announced at tm-ja, elisp ML.
5953       6/22    Thanks to Kitame-san, the mailing list started at northeye.org.
5954       7/01    Support for mm-backend (0.3.0).
5955       8/25    multi folder added (0.5.0).
5956       8/28    filter folder added (0.5.1).
5957       9/10    You can open/close threads (0.6.0).
5958       9/11    fldmgr by Murata-san made editing folders easy.
5959       9/18    lha folders added by Okunishi-san (0.6.3).
5960       9/24    Display of branches of threads (0.6.5).
5961       9/28    Compression folder supporting multiple archivers by Okunishi-san.
5962      10/28    Off-line operations (0.7.4).
5963      12/09    Becomes beta version.
5964      12/21    wl-expire by Murata-san.
5965 1999  2/03    auto-refile by Tsumura-san.
5966       4/28    wl-template by Murata-san.
5967       5/18    Released 1.0.0 stable.
5968       7/5     Scoring by Murata-san (2.1.0).
5969 @end example
5970
5971 See @file{ChangeLog} for details.
5972
5973 @section The Name
5974
5975 According to a dictionary, Wanderlust has the meaning:
5976
5977 @display
5978 wanderlust
5979   n eager longing for or impulse towards travelling in distant lands
5980   [Ger, fr wandern to wander + lust desire, pleasure]
5981 @end display
5982
5983 @noindent
5984 but I had no profound intention.
5985 (if farfetched, IMAP @t{=>} you can read mail anywhere @t{=>} desire to
5986 wander ?)
5987
5988 Elmo is the abbreviation of @samp{Elisp Library for Message
5989 Orchestration}.
5990 At first I meant the red puppet in the Sesame Street, but you may
5991 associate it with
5992 Wandering @t{=>} Drifting @t{=>} Guidepost @t{=>} St.@: Elmo's fire @t{=>} elmo.
5993
5994 @section Code Names
5995
5996 Each versions has code names (they are almost jokes).
5997 Currently they are picked up alphabetically from the top 40 hits of
5998 U.S. Billboard magazines in 1980s.
5999
6000 (@samp{http://www.summer.com.br/~pfilho/html/top40/index.html})
6001
6002
6003 @node Index,  , Addition, Top
6004 @unnumbered Index
6005
6006 @menu
6007 * Concept Index::               Concept Index
6008 * Key Index::                   Key Index
6009 * Variable Index::              Variable Index
6010 * Function Index::              Function Index
6011 @end menu
6012
6013 @node Concept Index, Key Index, Index, Index
6014 @unnumberedsec Concept Index
6015 @printindex cp
6016
6017 @node Key Index, Variable Index, Concept Index, Index
6018 @unnumberedsec Key Index
6019 @printindex ky
6020
6021 @node Variable Index, Function Index, Key Index, Index
6022 @unnumberedsec Variable Index
6023 @printindex vr
6024
6025 @node Function Index,  , Variable Index, Index
6026 @unnumberedsec Function Index
6027 @printindex fn
6028
6029 @summarycontents
6030 @contents
6031 @bye