A command specified by " is called with Grep pattern and file
names of the messages in the directory of a target folder.
Grep pattern is encoded according to mew-cs-database-for-arg.
The command must produce output whose lines start with a file name of matched messages. It's OK if the same file name appears multiple times.
10: xxx pattern xxx
10: yyy pattern yyy
21: zzz pattern zzz
A symbol, say symb, in mew-scan-form means to call the function
mew-scan-form-symb. Read the document of mew-scan-form for more
information. This function MUST return a string.
mew-scan-form-* can use some functions
(MEW-FOO) and variables (TOTAL, WIDTH).
Users customizable variables are mew-scan-fields and
mew-scan-fields-alias.
mew-scan-fields MUST start with ("Folder:" "Filename:").
(nthcdr 2 mew-scan-fields) passed to "mewl" and mew-vec, which contains each
value of field in mew-scan-fields, is created.
Each element of mew-scan-fields-alias is corresponding to an element
of mew-scan-fields, respectively. Functions called MEW-FOO is
defined according to mew-scan-fields-alias.
(MEW-SUBJ) returns the value of Subject:.
MEW-SUBJ is defined as (aref mew-vec 3)
Pre-defined functions are:
MEW-FLD- Folder:MEW-NUM- Filename:MEW-SUBJ- Subject:MEW-DATE- Date:MEW-FROM- From:MEW-TO- To:MEW-CT- Content-Type:MEW-ID- Message-ID:MEW-UIDL- X-Mew-UIDL:
To get a size in X-Mew-UIDL:, call (mew-scan-get-size (MEW-UIDL)).
To get a uidl in X-Mew-UIDL:, call (mew-scan-get-uidl (MEW-UIDL)).
Also, two local variables are available:
TOTAL- the current total widthWIDTH- the width
After you change both mew-scan-fields and mew-scan-fields-alias,
call mew-status-update (Z in Summary mode).
Mew uses POP to retrieve messages. If you want to retrieve them from a
local mailbox, set mew-mailbox-type to mbox.
(setq mew-mailbox-type 'mbox)In this case, Mew executes "mewl" with mew-mbox-command and
mew-mbox-command-arg.
mewl -e mew-mbox-command -m mew-mbox-command-arg +folder
"mewl" then executes mew-mbox-command like this:
mew-mbox-command mew-mbox-command-arg +folder
Note that mew-mbox-command is executed in the destination directory
(e.g. +folder). So, mew-mbox-command need not to expand/analysis the
destination folder string.
Note also that you can specifies a source of messages (i.e. local
mailbox) in mew-mbox-command-arg. (The source need not to be the
folder format. Just a path is enough.)
mew-mbox-command MUST be move a message to the destination, then
print its file name (a message number) to stdout. Repeat this cycle
until the mailbox becomes empty.
"mewl" reads stdin, extracts a message number, opens the message,
then prints necessary fields. The extraction of a message number is
performed like "^[\t]*\\([0-9]+=\\)".
It is emphasized that mew-mbox-command MUST print a resulting
message number just after it moves the corresponding file so that
"mewl" prints necessary fields immediately. It is a quite bad idea
that mew-mbox-command moves all files first, then prints all message
numbers.
An example:
(setq mew-mbox-command "inc")
(setq mew-mbox-command-arg "-truncate -file /var/mail/user")The image of this example is as follows:
mewl -e inc -m '-truncate -file /var/mail/user' +inbox
v
(fork)
v
inc -truncate -file /var/mail/user +inbox | mewl