1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
<API>
Kazu Yamamoto
Feb 16, 2004
---
* '"'
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
---
* mew-scan-form-*
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'.
e.g.
(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 width
WIDTH - the width
After you change both 'mew-scan-fields' and 'mew-scan-fields-alias',
call 'mew-status-update' ("Z" in Summary mode).
---
* Local mailbox
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
---
|