scan - produce a summary listing of nmh messages
scan
[-help] [-version] [+folder] [msgs] [-clear
| -noclear] [-form formatfile] [-format
string] [-header | -noheader] [-width
columns] [-reverse | -noreverse] [-file
filename]
scan produces a one-line-per-message listing of the specified folder or
messages. Each
scan line contains the message number (name), the date,
the “From:” field, the “Subject” field, and, if
room allows, some of the body of the message. For example:
15+ 10/05 crocker nned <<Last week I asked some of
16- 10/05 crocker message id format <<I recommend
18 10/06 brien Re: Exit status from mkdir
19 10/07*brien “scan” listing format in nmh
The `+' on message 15 indicates that it is the current message.
The `-' on message 16 indicates that it has been replied to, as indicated by a
“Replied:” component (produced by the
-annotate switch to
the
repl command).
The `*' on message 19 indicates that no “Date:” header was
present. The time of last modification of the message is given instead.
If there is sufficient room left on the
scan line after the subject, the
line will be filled with text from the body, preceded by
“<<”, and terminated by “>>” if the
body is sufficiently short.
scan actually reads each of the specified
messages and parses them to extract the desired fields. During parsing,
appropriate error messages will be produced if there are format errors in any
of the messages.
By default,
scan will decode RFC 2047 (MIME) encoding in these scan
listings.
scan will only decode these fields if your terminal can
natively display the character set used in the encoding. You should set the
appropriate
locale(1) environment variables to your native character
set, if it is not US-ASCII. See
locale(1) for more details on the
appropriate environment variables.
The switch
-reverse, makes
scan list the messages in reverse
order.
The
-file filename switch allows the user to obtain a
scan
listing of a mail drop. This listing includes every message in the mail drop
(you can't scan individual messages). The switch
-reverse is ignored
with this option. If
filename is a file, it can be in
mbox or
MMDF format, as produced by
packf. If
filename is a
directory, it is considered to be in
Maildir format.
The switch
-width columns may be used to specify the width of the
scan line. The default is to use the width of the terminal.
The
-header switch produces a header line prior to the
scan
listing. Currently, the name of the folder and the current date and time are
output (see the
HISTORY section for more information).
If the
-clear switch is used and
scan's output is directed to a
terminal, then
scan will consult the environment variables
$TERM
and
$TERMCAP to determine your terminal type in order to find out how
to clear the screen prior to exiting. If the
-clear switch is used and
scan's output is not directed to a terminal (e.g., a pipe or a file),
then
scan will send a formfeed prior to exiting.
For example, the command:
(scan -clear -header; show all -show pr -f) |
lpr
produces a scan listing of the current folder, followed by a formfeed, followed
by a formatted listing of all messages in the folder, one per page. Omitting
“
-show pr -f” will cause the messages to be
concatenated, separated by a one-line header and two blank lines.
To override the output format used by
scan, the
-format
string or
-form file switches are used. This permits
individual fields of the scan listing to be extracted with ease. The string is
simply a format string and the file is simply a format file. See
mh-format(5) for the details.
In addition to the standard
mh-format(5) escapes,
scan also
recognizes the following additional
component escapes:
Escape Returns Description
body string the (compressed) first part of the body
dtimenow date the current date
folder string the name of the current folder
{
body} returns a string without MIME decoding, i.e. the MIME boundary
separator may be the first text shown.
If no date header is present in the message, the
function escapes which
operate on {
date} will return values for the date of last modification
of the message file itself. This feature is handy for scanning a draft folder,
as message drafts usually aren't allowed to have dates in them.
The
/etc/nmh directory contains several format files as examples of
customized
scan output.
scan will update the
nmh context prior to starting the listing, so
interrupting a long
scan listing preserves the new context.
nmh
purists hate this idea.
^$HOME/.mh_profile~^The user profile
^Path:~^To determine the user's nmh directory
^Alternate-Mailboxes:~^To determine the user's mailboxes
^Current-Folder:~^To find the default current folder
pick(1),
show(1),
mh-format(5)
`+folder' defaults to the current folder
`msgs' defaults to all
`-format' defaulted as described above
`-noheader'
`-width' defaulted to the width of the terminal
If a folder is given, it will become the current folder.
Prior to using the format string mechanism,
-header used to generate a
heading saying what each column in the listing was. Format strings prevent
this from happening.
The value of each
component escape is set by
scan to the contents
of the first message header
scan encounters with the corresponding
component name; any following headers with the same component name are
ignored.