Provided by: mmh_0.4-2_amd64 bug

NAME

       show - display (MIME) messages

       next - show the next message

       prev - show the previous message

SYNOPSIS

       show [+folder] [msgs] [-file file] [-part number] ...  [-type content] ...  [-form
            formfile] [-Version] [-help]

       next is equivalent to show n

       prev is equivalent to show p

NOTE

       This (i.e. mmh's) version of show is a modified version of nmh's mhshow program.  The  old
       (non-MIME) show program was removed from mmh.

DESCRIPTION

       The  show  command  display  contents  of  a  MIME  (multi-media) message or collection of
       messages.  Next and prev perform a show on the next or previous message in  the  specified
       (or current) folder, respectively.

       show  manipulates  multi-media messages as specified in RFC-2045 thru RFC-2049.  Currently
       show only supports encodings in message bodies, and  does  not  support  the  encoding  of
       message headers as specified in RFC-2047.

       By  default  show  will  display all parts of a multipart message.  By using the -part and
       -type switches, you may limit the scope of show to particular  subparts  (of  a  multipart
       content) and/or particular content types.

       The option -file file directs show to use the specified file as the source message, rather
       than a message from a folder.  If you specify this file as `-', then show will accept  the
       source  message  on  the standard input.  Note that the file, or input from standard input
       should be a validly formatted message, just like any other mh message.  It should  NOT  be
       in mail drop format (to convert a file in mail drop format to a folder of mh messages, see
       inc(1)).

       When displaying multiple messages, show prepends each of them with  a  `>>>  Message  nnn'
       header,  and  separates  the messages with two lines of space.  This is similar to the way
       mhl acts on multiple files.

       A part specification consists of a series of numbers separated by dots.  For example, in a
       multipart  content  containing  three  parts,  these  would  be  named  as  1,  2,  and 3,
       respectively.  If part 2 was also a multipart content containing two parts, these would be
       named  as  2.1  and  2.2,  respectively.  Note that the -part switch is effective for only
       messages containing a multipart content.  If a message has some other kind of content,  or
       if  the  part  is  itself another multipart content, the -part switch will not prevent the
       content from being acted upon.

       A content specification consists of a content type and a subtype.   The  initial  list  of
       `standard' content types and subtypes can be found in RFC-2046.

       A list of commonly used contents is briefly reproduced here:

            Type         Subtypes
            ----         --------
            text         plain, enriched
            multipart    mixed, alternative, digest, parallel
            message      rfc822, partial, external-body
            application  octet-stream, postscript
            image        jpeg, gif, png
            audio        basic
            video        mpeg

       A legal MIME message must contain a subtype specification.

       To  specify  a content, regardless of its subtype, just use the name of the content, e.g.,
       `audio'.   To  specify  a  specific  subtype,  separate  the  two  with  a  slash,   e.g.,
       `audio/basic'.   Note  that  regardless  of  the  values  given  to  the `-type' switch, a
       multipart content (of any subtype listed above) is always acted upon.

   Unseen Sequence
       If the profile entry `Unseen-Sequence' is present and non-empty,  then  show  will  remove
       each of the messages shown from each sequence named by the profile entry.

   Showing the Contents
       Mhshow  prints  messages  in  a  convenient  representation.   If  show is outputting to a
       terminal, then a pager will be placed between the terminal and show.

       The headers of each message  are  displayed  with  mhl  using  the  standard  format  file
       mhl.headers.  You may specify an alternate format file with the -form formfile switch.  If
       the format file mhl.null is  specified,  then  the  display  of  the  message  headers  is
       suppressed.

       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 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 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.

       To get around this, your profile can contain lines of the forms:

            mhshow-suffix-<type>/<subtype>: <suffix>
            mhshow-suffix-<type>: <suffix>

       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:

            mhshow-suffix-text: .txt
            mhshow-suffix-application/msword: .doc
            mhshow-suffix-application/PostScript: .ps

       to automatically append a suffix to the temporary files.

       The  method  used  to  display  the  different  contents  in  the  messages bodies will be
       determined by a `display string'.  To find the display string, show will first search your
       profile for an entry of the form:

            mhshow-show-<type>/<subtype>

       to  determine  the  display string.  If this isn't found, show will search for an entry of
       the form:

            mhshow-show-<type>

       to determine the display string.

       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.

       The display string may contain the following escapes:

            %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 %

       Mhshow  processes the MIME parts serially, i.e. the next display process is executed after
       the previous one has terminated.

       Further, when show is display a content, typing QUIT (usually control-\) will tell show to
       wrap things up immediately.

       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.

       If a display string is not found, show has the following default values:

            mhshow-show-text/plain: %liconv -f <source-charset>
            mhshow-show-message/rfc822: %lshow -file %F

       If a subtype of type text doesn't have a profile entry, it will be treated as text/plain.

       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.

       If none of these apply, then show will complain.

       Example entries might be:

            mhshow-show-audio/basic: raw2audio 2>/dev/null | play
            mhshow-show-image: xv %f
            mhshow-show-application/PostScript: lpr -Pps

       When   expanding  %f  and  %F  escapes,  the  file  names  get  wrapped  in  single-quotes
       automatically.

       Finally, 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, show  will  never
       do so.

   Showing Alternate Character Sets
       Because a content of type text might be in a non-ASCII character set, when show encounters
       a `charset' parameter for this content, it  checks  if  your  terminal  can  display  this
       character  set natively.  show checks this by first examining the the environment variable
       $MM_CHARSET and if not set, taking the character encoding of the current locale.

       If the character set of text/plain cannot be displayed natively, then the default  display
       method converts the content automatically by piping it through:

            iconv -f '<source-charset>'

       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.)

       The tool iconv needs to be available.

       `mhshow-charset-*' profile entries are not supported anymore.

   Messages of Type message/partial
       show cannot directly display messages of type partial.  You  must  reassemble  them  first
       into a normal message using mhstore.  Check the man page for mhstore(1) for details.

   External Access
       Mhshow  does  not automatically retrieve message/external-body parts (anymore), but prints
       the relevant information to enable the user to retrieve the files manually.

   User Environment
       Because the display environment in which show operates may vary  for  different  machines,
       show  will look for the environment variable $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

            mhshow-show-<type>/<subtype>
            mhshow-show-<type>

       need  be  present  in  this  additional profile. Finally, show will attempt to consult one
       other additional user profile, e.g.,

            /etc/mmh/mhn.defaults

       which is created automatically during mmh installation.

FILES

       $HOME/.mmh/profile         The user profile
       $MHSHOW                    Additional profile entries
       /etc/mmh/mhn.defaults      System default MIME profile entries
       /etc/mmh/mhl.headers       The headers template

PROFILE COMPONENTS

       Path:                To determine the user's mail storage
       Current-Folder:      To find the default current folder
       Unseen-Sequence:     To name sequences denoting unseen messages
       mhshow-show-<type>*  Template for displaying contents
       Pager:               Program to use as interactive front-end

SEE ALSO

       mhbuild(1), mhl(1), mhlist(1), mhstore(1), sendfiles(1)

DEFAULTS

       `+folder' defaults to the current folder
       `msgs' defaults to the current message
       `-form mhl.headers'
       `-noverbose'

CONTEXT

       If a folder is given, it will become the current folder.  The last message  selected  will
       become the current message.

BUGS

       Next  and  prev  are really links to the show program.  As a result, if you make a link to
       next or prev and that link is not called next or  prev,  your  link  will  act  like  show
       instead.  To circumvent this, add a profile-entry for the link to your mmh profile and add
       the argument n or p to the entry.