131 |
"%<(mymbox{from})%<{to}To:%14(friendly{to})%>%>" |
"%<(mymbox{from})%<{to}To:%14(friendly{to})%>%>" |
132 |
"%<(zero)%17(friendly{from})%> " |
"%<(zero)%17(friendly{from})%> " |
133 |
"%{subject}%<{body}<<%{body}%>") |
"%{subject}%<{body}<<%{body}%>") |
134 |
"*Scan format string for MH, provided to the scan program via the -format arg. |
"*Scan format string for MH. |
135 |
|
This string is passed to the scan program via the -format arg. |
136 |
This format is identical to the default except that additional hints for |
This format is identical to the default except that additional hints for |
137 |
fontification have been added to the fifth column (remember that in Emacs, the |
fontification have been added to the fifth column (remember that in Emacs, the |
138 |
first column is 0). |
first column is 0). |
168 |
field matches, and `n' if a non-empty Newsgroups: field is present.") |
field matches, and `n' if a non-empty Newsgroups: field is present.") |
169 |
|
|
170 |
(defvar mh-note-deleted ?D |
(defvar mh-note-deleted ?D |
171 |
"Deleted messages are marked by this character. |
"Messages that have been deleted are marked by this character. |
172 |
See also `mh-scan-deleted-msg-regexp'.") |
See also `mh-scan-deleted-msg-regexp'.") |
173 |
|
|
174 |
(defvar mh-note-refiled ?^ |
(defvar mh-note-refiled ?^ |
175 |
"Refiled messages are marked by this character. |
"Messages that have been refiled are marked by this character. |
176 |
See also `mh-scan-refiled-msg-regexp'.") |
See also `mh-scan-refiled-msg-regexp'.") |
177 |
|
|
178 |
(defvar mh-note-cur ?+ |
(defvar mh-note-cur ?+ |
179 |
"The current message (in MH) is marked by this character. |
"The current message (in MH, not in MH-E) is marked by this character. |
180 |
See also `mh-scan-cur-msg-number-regexp'.") |
See also `mh-scan-cur-msg-number-regexp'.") |
181 |
|
|
182 |
(defvar mh-scan-good-msg-regexp "^\\( *[0-9]+\\)[^D^0-9]" |
(defvar mh-scan-good-msg-regexp "^\\( *[0-9]+\\)[^D^0-9]" |
183 |
"This regexp specifies the scan lines that are 'good' messages. |
"This regular expression matches \"good\" messages. |
184 |
Note that the default setting of `mh-folder-font-lock-keywords' expects this |
It must match from the beginning of the line. Note that the default setting of |
185 |
expression to contain at least one parenthesized expression which matches the |
`mh-folder-font-lock-keywords' expects this expression to contain at least one |
186 |
message number as in the default of \"^\\\\( *[0-9]+\\\\)[^D^0-9]\".") |
parenthesized expression which matches the message number as in the default of |
187 |
|
\"^\\\\( *[0-9]+\\\\)[^D^0-9]\". This regular expression should be correct as |
188 |
|
it is needed by non-fontifying functions.") |
189 |
|
|
190 |
(defvar mh-scan-deleted-msg-regexp "^\\( *[0-9]+\\)D" |
(defvar mh-scan-deleted-msg-regexp "^\\( *[0-9]+\\)D" |
191 |
"This regexp matches deleted messages. |
"This regular expression matches deleted messages. |
192 |
Note that the default setting of `mh-folder-font-lock-keywords' expects this |
It must match from the beginning of the line. Note that the default setting of |
193 |
expression to contain at least one parenthesized expression which matches the |
`mh-folder-font-lock-keywords' expects this expression to contain at least one |
194 |
message number as in the default of \"^\\\\( *[0-9]+\\\\)D\". |
parenthesized expression which matches the message number as in the default of |
195 |
See also `mh-note-deleted'.") |
\"^\\\\( *[0-9]+\\\\)D\". This regular expression should be correct as it is |
196 |
|
needed by non-fontifying functions. See also `mh-note-deleted'.") |
197 |
|
|
198 |
(defvar mh-scan-refiled-msg-regexp "^\\( *[0-9]+\\)\\^" |
(defvar mh-scan-refiled-msg-regexp "^\\( *[0-9]+\\)\\^" |
199 |
"This regexp matches refiled messages. |
"This regular expression matches refiled messages. |
200 |
Note that the default setting of `mh-folder-font-lock-keywords' expects this |
It must match from the beginning of the line. Note that the default setting of |
201 |
expression to contain at least one parenthesized expression which matches the |
`mh-folder-font-lock-keywords' expects this expression to contain at least one |
202 |
message number as in the default of \"^\\\\( *[0-9]+\\\\)\\\\^\". |
parenthesized expression which matches the message number as in the default of |
203 |
See also `mh-note-refiled'.") |
\"^\\\\( *[0-9]+\\\\)\\\\^\". This regular expression should be correct as it |
204 |
|
is needed by non-fontifying functions. See also `mh-note-refiled'.") |
205 |
|
|
206 |
(defvar mh-scan-valid-regexp "^ *[0-9]" |
(defvar mh-scan-valid-regexp "^ *[0-9]" |
207 |
"This regexp matches scan lines for messages (not error messages).") |
"This regular expression describes a valid scan line. |
208 |
|
This is used to eliminate error messages that are occasionally produced by |
209 |
|
\"inc\".") |
210 |
|
|
211 |
(defvar mh-scan-cur-msg-number-regexp "^\\( *[0-9]+\\+\\).*" |
(defvar mh-scan-cur-msg-number-regexp "^\\( *[0-9]+\\+\\).*" |
212 |
"This regexp matches the current message. |
"This regular expression matches the current message. |
213 |
Note that the default setting of `mh-folder-font-lock-keywords' expects this |
It must match from the beginning of the line. Note that the default setting of |
214 |
expression to contain at least one parenthesized expression which matches the |
`mh-folder-font-lock-keywords' expects this expression to contain at least one |
215 |
message number as in the default of \"^\\\\( *[0-9]+\\\\+\\\\).*\". Don't |
parenthesized expression which matches the message number as in the default of |
216 |
disable this regexp as it's needed by non-fontifying functions. |
\"^\\\\( *[0-9]+\\\\+\\\\).*\". This regular expression should be correct as |
217 |
See also `mh-note-cur'.") |
it is needed by non-fontifying functions. See also `mh-note-cur'.") |
218 |
|
|
219 |
(defvar mh-scan-date-regexp "\\([0-9][0-9]/[0-9][0-9]\\)" |
(defvar mh-scan-date-regexp "\\([0-9][0-9]/[0-9][0-9]\\)" |
220 |
"This regexp matches a valid date. |
"This regular expression matches a valid date. |
221 |
Note that the default setting of `mh-folder-font-lock-keywords' expects this |
It must not be anchored to the beginning or the end of the line. Note that the |
222 |
expression to contain only one parenthesized expression which matches the date |
default setting of `mh-folder-font-lock-keywords' expects this expression to |
223 |
field as in the default of \"\\\\([0-9][0-9]/[0-9][0-9]\\\\)\"}. |
contain only one parenthesized expression which matches the date field as in |
224 |
See also `mh-scan-format-regexp'.") |
the default of \"\\\\([0-9][0-9]/[0-9][0-9]\\\\)\"}. If this regular |
225 |
|
expression is not correct, the date will not be highlighted. See also |
226 |
|
`mh-scan-format-regexp'.") |
227 |
|
|
228 |
(defvar mh-scan-rcpt-regexp "\\(To:\\)\\(..............\\)" |
(defvar mh-scan-rcpt-regexp "\\(To:\\)\\(..............\\)" |
229 |
"This regexp specifies the recipient in messages you sent. |
"This regular expression specifies the recipient in messages you sent. |
230 |
Note that the default setting of `mh-folder-font-lock-keywords' |
Note that the default setting of `mh-folder-font-lock-keywords' |
231 |
expects this expression to contain two parenthesized expressions. The |
expects this expression to contain two parenthesized expressions. The |
232 |
first is expected to match the `To:' that the default scan format |
first is expected to match the `To:' that the default scan format |
233 |
file generates. The second is expected to match the recipient's name |
file generates. The second is expected to match the recipient's name |
234 |
as in the default of \"\\\\(To:\\\\)\\\\(..............\\\\)\".") |
as in the default of \"\\\\(To:\\\\)\\\\(..............\\\\)\". If this |
235 |
|
regular expression is not correct, the recipient will not be highlighted.") |
236 |
|
|
237 |
(defvar mh-scan-body-regexp "\\(<<\\([^\n]+\\)?\\)" |
(defvar mh-scan-body-regexp "\\(<<\\([^\n]+\\)?\\)" |
238 |
"This regexp matches the message body fragment displayed in scan lines. |
"This regular expression matches the message body fragment. |
239 |
Note that the default setting of `mh-folder-font-lock-keywords' expects this |
Note that the default setting of `mh-folder-font-lock-keywords' expects this |
240 |
expression to contain at least one parenthesized expression which matches the |
expression to contain at least one parenthesized expression which matches the |
241 |
body text as in the default of \"\\\\(<<\\\\([^\\n]+\\\\)?\\\\)\".") |
body text as in the default of \"\\\\(<<\\\\([^\\n]+\\\\)?\\\\)\". If this |
242 |
|
regular expression is not correct, the body fragment will not be highlighted.") |
243 |
|
|
244 |
(defvar mh-scan-subject-regexp |
(defvar mh-scan-subject-regexp |
245 |
"^ *[0-9]+........[ ]*...................\\([Rr][Ee]\\(\\[[0-9]+\\]\\)?:\\s-*\\)*\\([^<\n]*\\)" |
"^ *[0-9]+........[ ]*...................\\([Rr][Ee]\\(\\[[0-9]+\\]\\)?:\\s-*\\)*\\([^<\n]*\\)" |
246 |
"This regexp matches the subject. |
"This regular expression matches the subject. |
247 |
Note that the default setting of `mh-folder-font-lock-keywords' expects this |
It must match from the beginning of the line. Note that the default setting |
248 |
expression to contain at least three parenthesized expressions. The first is |
of `mh-folder-font-lock-keywords' expects this expression to contain at least |
249 |
expected to match the `Re:' string, if any. The second matches an optional |
three parenthesized expressions. The first is expected to match the `Re:' |
250 |
bracketed number after `Re:', such as in `Re[2]:' (and is thus a |
string, if any. The second matches an optional bracketed number after `Re:', |
251 |
sub-expression of the first expression) and the third is expected to match |
such as in `Re[2]:' (and is thus a sub-expression of the first expression) and |
252 |
the subject line itself as in the default of \"^ *[0-9]+........[ ]*...................\\\\([Rr][Ee]\\\\(\\\\\\=[[0-9]+\\\\]\\\\)?:\\\\s-*\\\\)*\\\\([^<\\n]*\\\\)\".") |
the third is expected to match the subject line itself as in the default of |
253 |
|
\(broken on multiple lines for readability): |
254 |
|
^ *[0-9]+........[ ]*................... |
255 |
|
\\\\([Rr][Ee]\\\\(\\\\\\=[[0-9]+\\\\]\\\\)?:\\\\s-*\\\\)* |
256 |
|
\\\\([^<\\n]*\\\\) |
257 |
|
This regular expression should be correct as it is needed by non-fontifying |
258 |
|
functions.") |
259 |
|
|
260 |
(defvar mh-scan-format-regexp |
(defvar mh-scan-format-regexp |
261 |
(concat "\\([bct]\\)" mh-scan-date-regexp " *\\(..................\\)") |
(concat "\\([bct]\\)" mh-scan-date-regexp " *\\(..................\\)") |
262 |
"This regexp matches the output of scan. |
"This regular expression matches the output of scan. |
263 |
Note that the default setting of `mh-folder-font-lock-keywords' expects this |
Note that the default setting of `mh-folder-font-lock-keywords' expects this |
264 |
expression to contain at least three parenthesized expressions. The first |
expression to contain at least three parenthesized expressions. The first |
265 |
should match the fontification hint, the second is found in |
should match the fontification hint (see `mh-scan-format-nmh'), the second is |
266 |
`mh-scan-date-regexp', and the third should match the user name as in the |
found in `mh-scan-date-regexp', and the third should match the user name as in |
267 |
default of \"(concat \"\\\\([bct]\\\\)\" mh-scan-date-regexp |
the default of \"(concat \"\\\\([bct]\\\\)\" mh-scan-date-regexp |
268 |
\"*\\\\(..................\\\\)\")\".") |
\"*\\\\(..................\\\\)\")\". |
269 |
|
If this regular expression is not correct, the notation hints and the sender |
270 |
|
will not be highlighted.") |
271 |
|
|
272 |
|
|
273 |
|
|
300 |
(list mh-scan-format-regexp |
(list mh-scan-format-regexp |
301 |
'(1 mh-folder-date-face) |
'(1 mh-folder-date-face) |
302 |
'(3 mh-folder-scan-format-face))) |
'(3 mh-folder-scan-format-face))) |
303 |
"Regexp keywords used to fontify the MH-Folder buffer.") |
"Keywords (regular expressions) used to fontify the MH-Folder buffer.") |
304 |
|
|
305 |
(defvar mh-scan-cmd-note-width 1 |
(defvar mh-scan-cmd-note-width 1 |
306 |
"Number of columns consumed by the cmd-note field in `mh-scan-format'. |
"Number of columns consumed by the cmd-note field in `mh-scan-format'. |
1720 |
(mh-notate-deleted-and-refiled))) |
(mh-notate-deleted-and-refiled))) |
1721 |
|
|
1722 |
(defun mh-set-cmd-note (width) |
(defun mh-set-cmd-note (width) |
1723 |
"Set `mh-cmd-note' to WIDTH characters (minimum of 2). |
"Set `mh-cmd-note' to WIDTH (minimum of 2). |
1724 |
|
|
1725 |
|
If `mh-scan-format-file' is set to \"Use Default scan Format\" or \"Specify a |
1726 |
|
scan Format File\", then this function will NOT update `mh-cmd-note'. In these |
1727 |
|
cases, the user should change `mh-cmd-note' with `setq' if necessary. |
1728 |
|
|
1729 |
If `mh-scan-format-file' specifies nil or a filename, then this function |
Note that columns in Emacs start with 0." |
|
will NOT update `mh-cmd-note'." |
|
1730 |
;; Add one to the width to always have whitespace in column zero. |
;; Add one to the width to always have whitespace in column zero. |
1731 |
(setq width (max (1+ width) 2)) |
(setq width (max (1+ width) 2)) |
1732 |
(if (and (equal mh-scan-format-file t) |
(if (and (equal mh-scan-format-file t) |