4 .TH MHL %manext1% "%nmhdate%" MH.6.8 [%nmhversion%]
6 mhl \- produce formatted listings of nmh messages
28 command for filtering and/or displaying text
29 messages. It is the default method of displaying text messages for
36 is outputting to a terminal, then
41 to be placed between the terminal and
44 To override the default
46 and the profile entry, use the
54 switch sets the screen width. This defaults to the value indicated by
56 if appropriate, otherwise it defaults to 80.
58 The default format file used by
61 .RI \*(lq mhl.format \*(rq.
63 will first search for this file in the user's
65 directory, and will then search in the directory
68 can be changed by using the
72 Note: In contrast to any other
76 switch does only take file names, but no format strings with a prepended
85 which is used for the \*(lqmessagename:\*(rq field described below. The
88 is consulted for the default value,
94 initialize appropriately.
97 operates in two phases: 1) read and parse the format file, and
98 2) process each message (file). During phase 1, an internal description
99 of the format is produced as a structured list. In phase 2, this list
100 is walked for each message, outputting message information under the
101 format constraints from the format file.
103 The format file can contain information controlling
104 screen size, wrap\-around control, transparent text, component ordering,
105 and component formatting. Also, a list of components to ignore may be
106 specified, and a couple of \*(lqspecial\*(rq components are defined
107 to provide added functionality. Message output will be in the order
108 specified by the order in the format file.
110 Each line of a format file has one of the following forms:
116 variable[,variable...]
117 component:[variable,...]
122 A line beginning with a `;' is a comment, and is ignored.
124 A line beginning with a `:' is clear text, and is output exactly as is.
126 A line containing only a `:' produces a blank line in the output.
128 A line beginning with \*(lqcomponent:\*(rq defines the format for the specified
131 Remaining lines define the global environment.
133 For example, the line:
136 width=80,overflowtext="***",overflowoffset=5
139 defines the screen size to be 80 columns by 40 rows, specifies that the
141 is 5, and that overflow text should be flagged with \*(lq***\*(rq.
143 Following are all of the current variables and their arguments. If they
144 follow a component, they apply only to that component, otherwise, their
145 affect is global. Since the whole format is parsed before any output
146 processing, the last global switch setting for a variable applies to
147 the whole message if that variable is used in a global context (i.e.,
152 .ta \w'xxxxxxxxxxxxx 'u +\w'integer/G 'u
153 .I variable type semantics
154 width integer screen width or component width
155 length integer component length
156 offset integer positions to indent \*(lqcomponent: \*(rq
157 overflowtext string text to use at the beginning of an
159 overflowoffset integer positions to indent overflow lines
160 compwidth integer positions to indent component text
161 after the first line is output
162 uppercase flag output text of this component in all
164 nouppercase flag don't uppercase
165 component string/L name to use instead of \*(lqcomponent\*(rq for
167 nocomponent flag don't output \*(lqcomponent: \*(rq for this
169 center flag center component on line (works for
170 one\-line components only)
171 nocenter flag don't center
172 leftadjust flag strip off leading whitespace on each
174 noleftadjust flag don't leftadjust
175 compress flag change newlines in text to spaces
176 nocompress flag don't compress
177 split flag don't combine multiple fields into
179 nosplit flag combine multiple fields into
181 newline flag print newline at end of components
182 (this is the default)
183 nonewline flag don't print newline at end of components
184 formatfield string format string for this component
186 decode flag decode text as RFC-2047 encoded
188 addrfield flag field contains addresses
189 datefield flag field contains dates
193 To specify the value of integer\-valued and string\-valued variables,
194 follow their name with an equals\-sign and the value. Integer\-valued
195 variables are given decimal values, while string\-valued variables
196 are given arbitrary text bracketed by double\-quotes. If a value is
197 suffixed by \*(lq/G\*(rq or \*(lq/L\*(rq, then its value is useful in
198 a global\-only or local\-only context (respectively).
203 ignores=component,...
206 specifies a list of components which are never output.
208 The component \*(lqMessageName\*(rq (case\-insensitive) will output the
209 actual message name (file name) preceded by the folder name if one is
210 specified or found in the environment. The format is identical to that
216 The component \*(lqExtras\*(rq will output all of the components of the
217 message which were not matched by explicit components, or included in
218 the ignore list. If this component is not specified, an ignore list is
219 not needed since all non\-specified components will be ignored.
221 If \*(lqnocomponent\*(rq is NOT specified, then the component name will
222 be output as it appears in the format file.
224 The default format file is:
232 The variable \*(lqformatfield\*(rq specifies a format string (see
234 The flag variables \*(lqaddrfield\*(rq and
235 \*(lqdatefield\*(rq (which are mutually exclusive), tell
237 to interpret the escapes in the format string as either addresses or
242 does not apply any formatting string to fields
243 containing address or dates (see
246 fields). Note that this results in faster operation since
248 must parse both addresses and dates in order to apply a format string
251 can be given a default format string for
252 either address or date fields (but not both). To do this, on a global
253 line specify: either the flag addrfield or datefield, along with the
254 appropriate formatfield variable string.
259 .ta \w'%etcdir%/ExtraBigFileName 'u
260 ^%etcdir%/mhl.format~^The message template
261 ^or $HOME/.mmh/mhl.format~^Rather than the standard template
262 ^$HOME/.mh/profile~^The user profile
265 .SH "PROFILE COMPONENTS"
269 .ta \w'ExtraBigProfileName 'u
270 ^moreproc:~^Program to use as interactive front\-end
274 show(1), ap(8), dp(8)
285 In contrast to any other
289 switch does only take file names, but no format strings with a prepended
292 The \*(lqnonewline\*(rq option interacts badly with \*(lqcompress\*(rq