Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mhl(1) — BSD/386 1.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

show(1)

ap(8)

dp(8)



MHL(1)                        [mh.6]                       MHL(1)


NAME
       mhl - produce formatted listings of MH messages

SYNOPSIS
       /usr/contrib/mh/lib/mhl    [-bell]    [-nobell]   [-clear]
            [-noclear]     [-folder +folder]     [-form formfile]
            [-length lines]  [-width columns] [-moreproc program]
            [-nomoreproc] [files ...]  [-help]

DESCRIPTION
       Mhl is a formatted message listing  program.   It  can  be
       used   as   a   replacement   for  more (1)  (the  default
       showproc ).  As with more, each of the messages  specified
       as  arguments  (or the standard input) will be output.  If
       more than one message file is specified, the user will  be
       prompted  prior  to each one, and a <RETURN> or <EOT> will
       begin the output, with <RETURN> clearing  the  screen  (if
       appropriate),  and  <EOT> (usually CTRL-D) suppressing the
       screen clear.  An <INTERRUPT> (usually CTRL-C) will  abort
       the current message output, prompting for the next message
       (if there is one), and a <QUIT> (usually CTRL-\) will ter-
       minate the program (without core dump).

       The  `-bell'  option tells mhl to ring the terminal's bell
       at the end of each page, while the `-clear'  option  tells
       mhl  to clear the scree at the end of each page (or output
       a formfeed after each message).  Both  of  these  switches
       (and  their  inverse counterparts) take effect only if the
       profile entry moreproc is defined but empty,  and  mhl  is
       outputting  to  a  terminal.   If  the  moreproc  entry is
       defined and non-empty, and mhl is outputting to  a  termi-
       nal, then mhl will cause the moreproc to be placed between
       the terminal and mhl and the switches are  ignored.   Fur-
       thermore,  if the `-clear' switch is used and mhl's output
       is directed to a terminal, then mhl will consult the $TERM
       and  $TERMCAP envariables to determine the user's terminal
       type in order to find out how to clear the screen.  If the
       `-clear'  switch  is used and mhl's output is not directed
       to a terminal (e.g., a pipe or a file), then mhl will send
       a formfeed after each message.

       To  override  the  default moreproc and the profile entry,
       use the `-moreproc program' switch.

       The `-length length' and `-width width' switches  set  the
       screen  length  and width, respectively.  These default to
       the values indicated by $TERMCAP, if  appropriate,  other-
       wise they default to 40 and 80, respectively.

       The  default  format file used by mhl is called mhl.format
       (which is first searched for in the user's  MH  directory,
       and  then  sought  in  the /usr/contrib/mh/lib directory),
       this  can  be  changed  by  using  the  `-form formatfile'
       switch.



MH                        April 22, 1986                        1




MHL(1)                        [mh.6]                       MHL(1)


       Finally,  the  `-folder +folder' switch sets the MH folder
       name, which is used for the messagename:  field  described
       below.   The  envariable  $mhfolder  is  consulted for the
       default value,  which  show,  next,  and  prev  initialize
       appropriately.

       Mhl  operates  in two phases: 1) read and parse the format
       file, and 2) process each message (file).  During phase 1,
       an  internal  description  of  the format is produced as a
       structured list.  In phase 2, this list is walked for each
       message,  outputting  message information under the format
       constraints from the format file.

       The mhl.format form file contains information  controlling
       screen  clearing, screen size, wrap-around control, trans-
       parent text, component ordering, and component formatting.
       Also, a list of components to ignore may be specified, and
       a couple of special  components  are  defined  to  provide
       added  functionality.  Message output will be in the order
       specified by the order in the format file.

       Each line of mhl.format has one of the formats:

            ;comment
            :cleartext
            variable[,variable...]
            component:[variable,...]

       A line beginning with a `;' is a comment, and is  ignored.
       A  line  beginning with a `:' is clear text, and is output
       exactly as is.  A line containing only a  `:'  produces  a
       blank  line  in  the output.  A line beginning with compo-
       nent: defines the format for the specified component,  and
       finally, remaining lines define the global environment.

       For example, the line:

            width=80,length=40,clearscreen,overflowtext="***",overflowoffset=5

       defines the screen size to be 80 columns by 40 rows, spec-
       ifies  that  the  screen  should  be cleared prior to each
       page, that the overflow indentation is 5, and  that  over-
       flow text should be flagged with ***.

       Following are all of the current variables and their argu-
       ments.  If they follow a component,  they  apply  only  to
       that  component, otherwise, their affect is global.  Since
       the whole format is parsed before any  output  processing,
       the  last  global switch setting for a variable applies to
       the whole message if that variable is  used  in  a  global
       context (i.e., bell, clearscreen, width, length).

            variable       type       semantics
            width          integer    screen width or component width



MH                        April 22, 1986                        2




MHL(1)                        [mh.6]                       MHL(1)


            length         integer    screen length or component length
            offset         integer    positions to indent component:
            overflowtext   string     text to use at the beginning of an
                                      overflow line
            overflowoffset integer    positions to indent overflow lines
            compwidth      integer    positions to indent component text
                                      after the first line is output
            uppercase      flag       output text of this component in all
                                      upper case
            nouppercase    flag       don't uppercase
            clearscreen    flag/G     clear the screen prior to each page
            noclearscreen  flag/G     don't clearscreen
            bell           flag/G     ring the bell at the end of each page
            nobell         flag/G     don't bell
            component      string/L   name to use instead of component for
                                      this component
            nocomponent    flag       don't output component:  for this
                                      component
            center         flag       center component on line (works for
                                      one-line components only)
            nocenter       flag       don't center
            leftadjust     flag       strip off leading whitespace on each
                                      line of text
            noleftadjust   flag       don't leftadjust
            compress       flag       change newlines in text to spaces
            nocompress     flag       don't compress
            formatfield    string     format string for this component
            addrfield      flag       field contains addresses
            datefield      flag       field contains dates

       To  specify  the value of integer-valued and string-valued
       variables, follow their name with an equals-sign  and  the
       value.  Integer-valued variables are given decimal values,
       while string-valued variables  are  given  arbirtray  text
       bracketed  by double-quotes.  If a value is suffixed by /G
       or /L, then its  value  is  useful  in  a  global-only  or
       local-only context (respectively).

       A line of the form:

           ignores=component,...

       specifies a list of components which are never output.

       The  component  MessageName (case-insensitive) will output
       the actual message name (file name) preceded by the folder
       name if one is specified or found in the environment.  The
       format is identical to  that  produced  by  the  `-header'
       option to show.

       The  component Extras will output all of the components of
       the message which were not matched by explicit components,
       or  included in the ignore list.  If this component is not
       specified,  an  ignore  list  is  not  needed  since   all



MH                        April 22, 1986                        3




MHL(1)                        [mh.6]                       MHL(1)


       non-specified components will be ignored.

       If  nocomponent  is NOT specified, then the component name
       will be output as it appears in the format file.

       The default format is:

            : -- using template mhl.format --
            overflowtext="***",overflowoffset=5
            leftadjust,compwidth=9
            ignores=msgid,message-id,received
            Date:formatfield="%<(nodate{text})%{text}%|%(pretty{text})%>"
            To:
            cc:
            :
            From:
            Subject:
            :
            extras:nocomponent
            :
            body:nocomponent,overflowtext=,overflowoffset=0,noleftadjust

       The variable formatfield specifies a  format  string  (see
       mh-format(5)).   The  variables  addrfield  and  datefield
       (which are mutually exclusive), control the interpretation
       of the escapes.

       By  default,  mhl  does not apply any formatting string to
       fields containing address or dates (see mh-mail (5) for  a
       list  of  these fields).  Note that this results in faster
       operation since mhl must parse both addresses and dates in
       order  to  apply a format string to them.  If desired, mhl
       can be given a default format string for either address or
       date  fields (but not both).  To do this, on a global line
       specify either the  variable  addrfield  or  the  variable
       datefield, along with the variable formatfield.

FILES
       /usr/contrib/mh/lib/mhl.format        The message template
       or <mh-dir>/mhl.format                Rather than the standard template
       $HOME/.mh_profile                     The user profile

PROFILE COMPONENTS
       moreproc:            Program to use as interactive front-end

SEE ALSO
       show(1), ap(8), dp(8)

DEFAULTS
       `-bell'
       `-noclear'
       `-length 40'
       `-width 80'




MH                        April 22, 1986                        4




MHL(1)                        [mh.6]                       MHL(1)


CONTEXT
       None

BUGS
       There should be some way to pass `bell' and `clear' infor-
       mation to the front-end.

       On hosts where MH was configured  with  the  BERK  option,
       address parsing is not enabled.
















































MH                        April 22, 1986                        5


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026