+.SS "Showing the Contents"
+.B Mhshow
+prints messages in a convenient representation.
+If
+.B show
+is outputting to a terminal, then
+a pager will be placed between the terminal and
+.BR show .
+.PP
+The headers of each message are displayed with
+.B mhl
+using the standard format file
+.IR mhl.headers .
+You may specify an alternate format file with the
+.B \-form
+.I formfile
+switch. If the format file
+.I mhl.null
+is specified, then the display
+of the message headers is suppressed.
+.PP
+Next, the contents are extracted from the message and are stored in
+a temporary file. Usually, the name of the temporary file is the
+word `show' followed by a string of characters. Occasionally,
+the method used to display a content (described next), requires that
+the file end in a specific suffix. For example, the
+.B soffice
+command (part of the StarOffice package) can be used to display
+Microsoft Word content, but it uses the suffix to determine how to display
+the file. If no suffix is present, the file is not correctly loaded.
+Similarly, older versions of the
+.B gs
+command append a `.ps' suffix to
+the filename if one was missing. As a result, these cannot be used to read
+the default temporary file.
+.PP
+To get around this, your profile can contain lines of the forms:
+.PP
+.RS 5
+.nf
+mhshow-suffix-<type>/<subtype>: <suffix>
+mhshow-suffix-<type>: <suffix>
+.fi
+.RE
+.PP
+to specify a suffix which can be automatically added to the temporary
+file created for a specific content type. For example, the following
+lines might appear in your profile:
+.PP
+.RS 5
+.nf
+mhshow-suffix-text: .txt
+mhshow-suffix-application/msword: .doc
+mhshow-suffix-application/PostScript: .ps
+.fi
+.RE
+.PP
+to automatically append a suffix to the temporary files.
+.PP
+The method used to display the different contents in the messages bodies
+will be determined by a `display string'. To find the display
+string,
+.B show
+will first search your profile for an entry of the form:
+.PP
+.RS 5
+mhshow-show-<type>/<subtype>
+.RE
+.PP
+to determine the display string. If this isn't found,
+.B show
+will search for an entry of the form:
+.PP
+.RS 5
+mhshow-show-<type>
+.RE
+.PP
+to determine the display string.
+.PP
+If a display string is found, any escapes (given below) will be expanded.
+The result will be executed under
+`/bin/sh', with the standard input
+set to the content.
+.PP
+The display string may contain the following escapes:
+.PP
+.RS 5
+.nf
+.ta \w'%F 'u
+%l Display listing prior to displaying content
+%f Insert filename containing content
+%F %f, but stdin is terminal not content
+%a Insert parameters from Content-Type field
+%s Insert content subtype
+%c Insert foreign charset
+%d Insert content description
+%% The character %
+.fi
+.RE
+.PP
+.B Mhshow
+processes the MIME parts serially, i.e. the next display process
+is executed after the previous one has terminated.
+.PP
+Further, when
+.B show
+is display a content, typing QUIT (usually
+control-\\) will tell
+.B show
+to wrap things up immediately.
+.PP
+Note that if the content being displayed is multipart, but not one of
+the subtypes listed above, then the f- and F-escapes expand to multiple
+filenames, one for each subordinate content. Further, stdin is not
+redirected from the terminal to the content.
+.PP
+If a display string is not found,
+.B show
+has the following default values:
+.PP
+.RS 5
+.nf
+mhshow-show-text/plain: %liconv \-f <source-charset>
+mhshow-show-message/rfc822: %lshow \-file %F
+.fi
+.RE
+.PP
+If a subtype of type text doesn't have a profile entry, it will be
+treated as text/plain.
+.PP
+.B show
+has default methods for handling multipart messages of subtype
+mixed, alternative, parallel, and digest. Any unknown subtype of type
+multipart (without a profile entry), will be treated as multipart/mixed.
+.PP
+If none of these apply, then
+.B show
+will complain.
+.PP
+Example entries might be:
+.PP
+.RS 5
+.nf
+mhshow-show-audio/basic: raw2audio 2>/dev/null | play
+mhshow-show-image: xv %f
+mhshow-show-application/PostScript: lpr \-Pps
+.fi
+.RE
+.PP
+When expanding %f and %F escapes, the file names get wrapped in
+single-quotes automatically.
+.PP
+Finally,
+.B show
+will process each message serially \- it won't start
+showing the next message until all the commands executed to display the
+current message have terminated. Although a multipart content may
+contain advice to display the parts in parallel,
+.B show
+will never do so.
+.SS "Showing Alternate Character Sets"
+Because a content of type text might be in a non-ASCII character
+set, when
+.B show
+encounters a `charset' parameter for
+this content, it checks if your terminal can display this character
+set natively.
+.B show
+checks this by first examining the the environment
+variable
+.B $MM_CHARSET
+and if not set, taking the character encoding of the current locale.
+.PP
+If the character set of text/plain cannot be displayed natively, then
+the default display method converts the content automatically by
+piping it through:
+.PP
+.RS 5
+iconv \-f '<source-charset>'
+.RE
+.PP
+Note that if you have a custom `mhshow-show-*' display string, you
+need to care yourself for converting the encodings.
+(The foreign charset is available through the %c escape.)
+.PP
+The tool
+.B iconv
+needs to be available.
+.PP
+`mhshow-charset-*' profile entries are not supported anymore.
+.SS "Messages of Type message/partial"
+.B show
+cannot directly display messages of type partial.
+You must reassemble them first into a normal message using
+.BR mhstore .
+Check the man page for
+.BR mhstore (1)
+for details.
+.SS "External Access"
+.B Mhshow
+does not automatically retrieve message/external-body parts (anymore),
+but prints the relevant information to enable the user to retrieve
+the files manually.
+.SS "User Environment"
+Because the display environment in which
+.B show
+operates may vary for
+different machines,
+.B show
+will look for the environment variable
+.BR $MHSHOW .
+If present, this specifies the name of an additional
+user profile which should be read. Hence, when a user logs in on a
+particular display device, this environment variable should be set to
+refer to a file containing definitions useful for the given display device.
+Normally, only entries that deal with the methods to display different
+content type and subtypes
+.PP
+.RS 5
+.nf
+mhshow-show-<type>/<subtype>
+mhshow-show-<type>
+.fi
+.RE
+.PP
+need be present in this additional profile. Finally,
+.B show
+will attempt to consult one other additional user profile,
+e.g.,
+.PP
+.RS 5
+%etcdir%/mhn.defaults
+.RE
+.PP
+which is created automatically during
+.B mmh
+installation.