mhl(1mh)mhl(1mh)Namemhl - produce formatted listings of MH messages
Syntaxmhl [ options ] [ files... ]
Description
The command is a program for listing formatted messages, which can be
used as a replacement for the default program.
As with each of the messages specified as arguments (or the standard
input) are output. If more than one message file is specified, you are
prompted prior to each one, and a <RETURN> or <EOT> begins the output.
<RETURN> clears the screen (if appropriate), and <EOT>, usually
<CTRL/D>, suppresses the screen clear. An <INTERRUPT>, usually
<CTRL/C>, aborts the current message output, prompting for the next
message, if there is one. A <QUIT>, usually <CTRL/E>, terminates the
program without generating a core dump.
The command operates in two phases: it reads and parses the format
file; then it processes each message (file). During the first phase,
an internal description of the format is produced as a structured list.
In the second phase, this list is traversed for each message, and mes‐
sage information is output according to the instructions contained in
the format file.
The Form File mhl.format
The form file contains information controlling screen clearing, screen
size, wrap-around control, transparent text, component ordering, and
component formatting. A list of components that should be ignored may
also be specified, and some special components are defined to provide
added functionality. Message output is in the order specified by the
order in the format file.
Each line of the file has one of the following formats:
;comment
:cleartext
variable[variable...]
component:[variable...]
A line beginning with a semi colon (;) is a comment, and is ignored. A
line beginning with a colon (:) is clear text, and is output exactly as
it is. A line containing only a colon (:) produces a blank line in the
output. A line beginning with component: defines the format for the
specified component. Remaining lines define the global environment.
Examples of these are given below, together with the system default
form file.
If variables or arguments follow a component, they apply only to that
component; otherwise, their effect is global. Since the whole format
is parsed before any output processing, the last global switch setting
for a variable applies to the whole message, provided that the variable
is used in a global context (bell, clearscreen, width, length). All of
the current variables and their arguments are shown in the following
table:
──────────────────────────────────────────────────────────────────
Variable Type Semantics
──────────────────────────────────────────────────────────────────
width integer screen width or component width
length integer screen length or component length
offset integer positions to indent the component
overflowtext string text to use at the beginning of an
overflow line
overflowoffset integer positions to indent overflow lines
compwidth integer positions to indent component text
after the first line is output
uppercase flag output text of this component in all
upper case
nouppercase flag do not use uppercase
clearscreen flag/G clear the screen prior to each page
noclearscreen flag/G do not clear the screen
bell flag/G ring the bell at the end of each page
nobell flag/G disable bell
component string/L name to use instead of component for
this component
nocomponent flag do not output component: for this
component
center flag center component on line (works for
one-line components only)
nocenter flag do not center
leftadjust flag strip off leading white-space on each
line of text
noleftadjust flag do not leftadjust
compress flag change newlines in text to spaces
nocompress flag do not compress
formatfield string format string for this component
addrfield flag field contains addresses
datefield flag field contains dates
──────────────────────────────────────────────────────────────────
To specify the value of integer-valued and string-valued variables,
follow their name with an equals-sign (=) and the value. Integer-val‐
ued variables are given decimal values, while string-valued variables
are given arbitrary text bracketed by double-quotes. If a value is
suffixed by /G or /L, then its value is useful in a global-only or
local-only context (respectively). A line of the form:
ignores=component,...
specifies a list of components which are never output.
The component MessageName outputs the actual message name (file name)
preceded by the folder name if one is specified or found in the envi‐
ronment. The format is identical to that produced by the -header
option to
The component Extras outputs all of the components of the message which
were not matched by explicit components, or included in the ignore
list. If this component is not specified, an ignore list is not needed
since all non-specified components are ignored.
If -nocomponent is not specified, then the component name is output as
it appears in the format file.
The variable formatfield specifies a format string; see The variables
addrfield and datefield, which are mutually exclusive, control the
interpretation of the escapes.
By default, does not apply any formatting string to fields containing
address or dates; see for a list of these fields. This results in
faster operation since must parse both addresses and dates in order to
apply a format string to them. If desired, can be given a default for‐
mat string for either address or date fields, but not both. To do
this, on a global line specify either the variable addrfield or the
variable datefield, along with the variable formatfield.
Options-bell
-nobell Tells to ring the terminal bell at the end of each page.
This is the default behavior. You can suppress this by using
the -nobell option.
This option takes effect only if the profile entry is defined
but empty, and if is outputting to a terminal. If the entry
is defined and non-empty, and is outputting to a terminal,
then causes the to be placed between the terminal and and the
switches are ignored.
-clear
-noclear Tells to clear the screen at the end of each page, or output
a formfeed after each message. You can suppress this by
using the -noclear option. The default behavior is -noclear.
This option takes effect only if the profile entry is defined
but empty, and if is outputting to a terminal. If the entry
in the user's is defined and non-empty, and is outputting to
a terminal, then causes the program to be placed between the
terminal and and the options are ignored.
If the -clear option is used and the output of is directed to
a terminal, then consults the $TERM and $TERMCAP environment
variables to determine your terminal type in order to find
out how to clear the screen. If the -clear switch is used
and the output of is not directed to a terminal (if, for
example, it is directed to a pipe or a file), then sends a
formfeed after each message.
-folder +foldername
Sets the folder name. This is used by components in the form
file to output the message name. If you do not use this
option, consults the environmental variable $mhfolder.
-form formfile
Specifies the format file used. If this option is not given,
searches in your Mail directory for a file called or, if this
file does not exist, it uses the system default file
-help Prints a list of the valid options to this command.
-length lines
Sets the screen length. This defaults to the value indicated
by if appropriate; otherwise, it defaults to 40.
-width columns
Sets the screen width. This defaults to the value indicated
by if appropriate; otherwise, it defaults to 80.
-moreproc program
-nomoreproc
Overrides the default program. Note that never starts a if
invoked on a hardcopy terminal.
The defaults for this command are:
-bell
-noclear
-length 40
-width 80
Examples
The first example gives a typical line of a form file:
width=80,length=40,clearscreen,overflowtext="***",overflowoffset=5
The first two elements define the screen width to be 80 characters, and
the screen length to be 40 lines. The next element, clearscreen, spec‐
ifies that the screen should be cleared prior to each page. The next
element, overflowoffset=5, states that that the overflow indentation is
5. The final element, overflowtext="***", specifies that overflow text
should be flagged with three asterisks.
The system default form file, is:
: -- using template mhl.format - -
overflowtext="***",overflowoffset=5
leftadjust,compwidth=9
ignores=msid,msgid,message-id,received
Date:formatfield="%<(nodate{text})%{text}%|%(pretty{text})%>"
To:
cc:
:
From:
Subject:
:
extras:nocomponent
:
body:nocomponent,overflowtext=,overflowoffset=0,noleftadjust
Profile Components
Path: To determine your Mail directory
moreproc: Program to use as interactive front-end
Files
The system default form file, used to format message.
The user-supplied alternate to the system default form file.
The user profile.
See Alsomore(1), show(1mh), mh_profile(5mh), ap(8mh), dp(8mh)mhl(1mh)