4 .TH MHL %manext1% "%nmhdate%" MH.6.8 [%nmhversion%]
6 mhl \- produce formatted listings of nmh messages
30 command for filtering and/or displaying text
31 messages. It is the default method of displaying text messages for
38 is outputting to a terminal, then
43 to be placed between the terminal and
46 To override the default
48 and the profile entry, use the
59 switches set the screen
60 length and width, respectively. These default to the values indicated by
62 if appropriate, otherwise they default to 40 and 80, respectively.
64 The default format file used by
67 .RI \*(lq mhl.format \*(rq.
69 will first search for this file in the user's
71 directory, and will then search in the directory
74 can be changed by using the
78 Note: In contrast to any other
82 switch does only take file names, but no format strings with a prepended
91 which is used for the \*(lqmessagename:\*(rq field described below. The
94 is consulted for the default value,
100 initialize appropriately.
103 operates in two phases: 1) read and parse the format file, and
104 2) process each message (file). During phase 1, an internal description
105 of the format is produced as a structured list. In phase 2, this list
106 is walked for each message, outputting message information under the
107 format constraints from the format file.
109 The format file can contain information controlling
110 screen size, wrap\-around control, transparent text, component ordering,
111 and component formatting. Also, a list of components to ignore may be
112 specified, and a couple of \*(lqspecial\*(rq components are defined
113 to provide added functionality. Message output will be in the order
114 specified by the order in the format file.
116 Each line of a format file has one of the following forms:
122 variable[,variable...]
123 component:[variable,...]
128 A line beginning with a `;' is a comment, and is ignored.
130 A line beginning with a `:' is clear text, and is output exactly as is.
132 A line containing only a `:' produces a blank line in the output.
134 A line beginning with \*(lqcomponent:\*(rq defines the format for the specified
137 Remaining lines define the global environment.
139 For example, the line:
142 width=80,length=40,overflowtext="***",overflowoffset=5
145 defines the screen size to be 80 columns by 40 rows, specifies that the
147 is 5, and that overflow text should be flagged with \*(lq***\*(rq.
149 Following are all of the current variables and their arguments. If they
150 follow a component, they apply only to that component, otherwise, their
151 affect is global. Since the whole format is parsed before any output
152 processing, the last global switch setting for a variable applies to
153 the whole message if that variable is used in a global context (i.e.,
158 .ta \w'xxxxxxxxxxxxx 'u +\w'integer/G 'u
159 .I variable type semantics
160 width integer screen width or component width
161 length integer screen length or component length
162 offset integer positions to indent \*(lqcomponent: \*(rq
163 overflowtext string text to use at the beginning of an
165 overflowoffset integer positions to indent overflow lines
166 compwidth integer positions to indent component text
167 after the first line is output
168 uppercase flag output text of this component in all
170 nouppercase flag don't uppercase
171 component string/L name to use instead of \*(lqcomponent\*(rq for
173 nocomponent flag don't output \*(lqcomponent: \*(rq for this
175 center flag center component on line (works for
176 one\-line components only)
177 nocenter flag don't center
178 leftadjust flag strip off leading whitespace on each
180 noleftadjust flag don't leftadjust
181 compress flag change newlines in text to spaces
182 nocompress flag don't compress
183 split flag don't combine multiple fields into
185 nosplit flag combine multiple fields into
187 newline flag print newline at end of components
188 (this is the default)
189 nonewline flag don't print newline at end of components
190 formatfield string format string for this component
192 decode flag decode text as RFC-2047 encoded
194 addrfield flag field contains addresses
195 datefield flag field contains dates
199 To specify the value of integer\-valued and string\-valued variables,
200 follow their name with an equals\-sign and the value. Integer\-valued
201 variables are given decimal values, while string\-valued variables
202 are given arbitrary text bracketed by double\-quotes. If a value is
203 suffixed by \*(lq/G\*(rq or \*(lq/L\*(rq, then its value is useful in
204 a global\-only or local\-only context (respectively).
209 ignores=component,...
212 specifies a list of components which are never output.
214 The component \*(lqMessageName\*(rq (case\-insensitive) will output the
215 actual message name (file name) preceded by the folder name if one is
216 specified or found in the environment. The format is identical to that
222 The component \*(lqExtras\*(rq will output all of the components of the
223 message which were not matched by explicit components, or included in
224 the ignore list. If this component is not specified, an ignore list is
225 not needed since all non\-specified components will be ignored.
227 If \*(lqnocomponent\*(rq is NOT specified, then the component name will
228 be output as it appears in the format file.
230 The default format file is:
238 The variable \*(lqformatfield\*(rq specifies a format string (see
240 The flag variables \*(lqaddrfield\*(rq and
241 \*(lqdatefield\*(rq (which are mutually exclusive), tell
243 to interpret the escapes in the format string as either addresses or
248 does not apply any formatting string to fields
249 containing address or dates (see
252 fields). Note that this results in faster operation since
254 must parse both addresses and dates in order to apply a format string
257 can be given a default format string for
258 either address or date fields (but not both). To do this, on a global
259 line specify: either the flag addrfield or datefield, along with the
260 appropriate formatfield variable string.
265 .ta \w'%etcdir%/ExtraBigFileName 'u
266 ^%etcdir%/mhl.format~^The message template
267 ^or $HOME/.mmh/mhl.format~^Rather than the standard template
268 ^$HOME/.mh/profile~^The user profile
271 .SH "PROFILE COMPONENTS"
275 .ta \w'ExtraBigProfileName 'u
276 ^moreproc:~^Program to use as interactive front\-end
280 show(1), ap(8), dp(8)
292 In contrast to any other
296 switch does only take file names, but no format strings with a prepended
299 The \*(lqnonewline\*(rq option interacts badly with \*(lqcompress\*(rq