4 .TH MHL %manext1% "%nmhdate%" MH.6.8 [%nmhversion%]
6 mhl \- produce formatted listings of nmh messages
24 command for filtering and/or displaying text
25 messages. It is the default method of displaying text messages for
32 is outputting to a terminal, then
34 will cause a pager to be placed between the terminal and
40 switch sets the screen width. This defaults to the value indicated by
42 if appropriate, otherwise it defaults to 80.
44 The default format file used by
47 .RI \*(lq mhl.format \*(rq.
49 will first search for this file in the user's
51 directory, and will then search in the directory
54 can be changed by using the
58 Note: In contrast to any other
62 switch does only take file names, but no format strings with a prepended
66 operates in two phases: 1) read and parse the format file, and
67 2) process each message (file). During phase 1, an internal description
68 of the format is produced as a structured list. In phase 2, this list
69 is walked for each message, outputting message information under the
70 format constraints from the format file.
72 The format file can contain information controlling
73 screen size, wrap\-around control, transparent text, component ordering,
74 and component formatting. Also, a list of components to ignore may be
75 specified, and a couple of \*(lqspecial\*(rq components are defined
76 to provide added functionality. Message output will be in the order
77 specified by the order in the format file.
79 Each line of a format file has one of the following forms:
85 variable[,variable...]
86 component:[variable,...]
91 A line beginning with a `;' is a comment, and is ignored.
93 A line beginning with a `:' is clear text, and is output exactly as is.
95 A line containing only a `:' produces a blank line in the output.
97 A line beginning with \*(lqcomponent:\*(rq defines the format for the specified
100 Remaining lines define the global environment.
102 For example, the line:
105 width=80,overflowtext="***",overflowoffset=5
108 defines the screen size to be 80 columns by 40 rows, specifies that the
110 is 5, and that overflow text should be flagged with \*(lq***\*(rq.
112 Following are all of the current variables and their arguments. If they
113 follow a component, they apply only to that component, otherwise, their
114 affect is global. Since the whole format is parsed before any output
115 processing, the last global switch setting for a variable applies to
116 the whole message if that variable is used in a global context (i.e.,
121 .ta \w'xxxxxxxxxxxxx 'u +\w'integer/G 'u
122 .I "variable type semantics
123 width integer screen width or component width
124 length integer component length
125 offset integer positions to indent \*(lqcomponent: \*(rq
126 overflowtext string text to use at the beginning of an
128 overflowoffset integer positions to indent overflow lines
129 compwidth integer positions to indent component text
130 after the first line is output
131 uppercase flag output text of this component in all
133 nouppercase flag don't uppercase
134 component string/L name to use instead of \*(lqcomponent\*(rq for
136 nocomponent flag don't output \*(lqcomponent: \*(rq for this
138 center flag center component on line (works for
139 one\-line components only)
140 nocenter flag don't center
141 leftadjust flag strip off leading whitespace on each
143 noleftadjust flag don't leftadjust
144 compress flag change newlines in text to spaces
145 nocompress flag don't compress
146 split flag don't combine multiple fields into
148 nosplit flag combine multiple fields into
150 newline flag print newline at end of components
151 (this is the default)
152 nonewline flag don't print newline at end of components
153 formatfield string format string for this component
155 decode flag decode text as RFC-2047 encoded
157 addrfield flag field contains addresses
158 datefield flag field contains dates
162 To specify the value of integer\-valued and string\-valued variables,
163 follow their name with an equals\-sign and the value. Integer\-valued
164 variables are given decimal values, while string\-valued variables
165 are given arbitrary text bracketed by double\-quotes. If a value is
166 suffixed by \*(lq/G\*(rq or \*(lq/L\*(rq, then its value is useful in
167 a global\-only or local\-only context (respectively).
172 ignores=component,...
175 specifies a list of components which are never output.
177 The component \*(lqMessageName\*(rq (case\-insensitive) will output the
178 message file name as a one-line header, similar to
180 E.g. ``(Message 42)''
182 The component \*(lqExtras\*(rq will output all of the components of the
183 message which were not matched by explicit components, or included in
184 the ignore list. If this component is not specified, an ignore list is
185 not needed since all non\-specified components will be ignored.
187 If \*(lqnocomponent\*(rq is NOT specified, then the component name will
188 be output as it appears in the format file.
190 The default format file is:
198 The variable \*(lqformatfield\*(rq specifies a format string (see
200 The flag variables \*(lqaddrfield\*(rq and
201 \*(lqdatefield\*(rq (which are mutually exclusive), tell
203 to interpret the escapes in the format string as either addresses or
208 does not apply any formatting string to fields
209 containing address or dates (see
212 fields). Note that this results in faster operation since
214 must parse both addresses and dates in order to apply a format string
217 can be given a default format string for
218 either address or date fields (but not both). To do this, on a global
219 line specify: either the flag addrfield or datefield, along with the
220 appropriate formatfield variable string.
225 .ta \w'%etcdir%/ExtraBigFileName 'u
226 ^%etcdir%/mhl.format~^The message template
227 ^or $HOME/.mmh/mhl.format~^Rather than the standard template
228 ^$HOME/.mh/profile~^The user profile
231 .SH "PROFILE COMPONENTS"
235 .ta \w'ExtraBigProfileName 'u
236 ^Pager:~^Program to use as interactive front\-end
240 show(1), ap(8), dp(8)
251 In contrast to any other
255 switch does only take file names, but no format strings with a prepended
258 The \*(lqnonewline\*(rq option interacts badly with \*(lqcompress\*(rq