mhl - produce formatted listings of MH messages
mhl [ options ] [ files... ]
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 mes-
sage, 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
message 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 pro-
vide 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:
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 vari-
able is used in a global context (bell, clearscreen, width, length). All of the current variables and their arguments are shown in the
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
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
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
nocomponent flag do not output component: for this
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:
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
format 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.
-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
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
-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 vari-
ables 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.
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.
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.
Sets the screen length. This defaults to the value indicated by if appropriate; otherwise, it defaults to 40.
Sets the screen width. This defaults to the value indicated by if appropriate; otherwise, it defaults to 80.
Overrides the default program. Note that never starts a if invoked on a hardcopy terminal.
The defaults for this command are:
The first example gives a typical line of a form file:
The first two elements define the screen width to be 80 characters, and the screen length to be 40 lines. The next element, clearscreen,
specifies that the screen should be cleared prior to each page. The next element, overflowoffset=5, states that that the overflow indenta-
tion 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 - -
Path: To determine your Mail directory
moreproc: Program to use as interactive front-end
The system default form file, used to format message.
The user-supplied alternate to the system default form file.
The user profile.
more(1), show(1mh), mh_profile(5mh), ap(8mh), dp(8mh)