Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mh-profile(5) — BSD/386 1.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

mh(1)

environ(5)



MH-PROFILE(5)                 [mh.6]                MH-PROFILE(5)


NAME
        .mh_profile - user customization for MH message system

SYNOPSIS
       any MH command

DESCRIPTION
       Each  user  of  MH  is  expected  to  have  a  file  named
       .mhprofile in his or her home directory.  This file  con-
       tains  a set of user parameters used by some or all of the
       MH family of programs.  Each line of the file  is  of  the
       format

           profile-component: value

       The  possible  profile  components  are exemplified below.
       Only `Path:' is mandatory.  The others are optional;  some
       have default values if they are not present.  In the nota-
       tion used below, (profile, default) indicates whether  the
       information  is  kept  in the user's MH profile or MH con-
       text, and indicates what the default value is.

       Path: Mail
                 Locates  MH  transactions  in  directory   Mail.
                 (profile, no default)

       context: context
                 Declares  the  location  of the MH context file,
                 see  the  HISTORY  section   below.    (profile,
                 default: <mh-dir>/context)

       Current-Folder: inbox
                 Keeps  track  of the current open folder.  (con-
                 text, default: +inbox)

       Previous-Sequence: pseq
                 Names the sequences which should be  defined  as
                 the  `msgs'  or `msg' argument given to the pro-
                 gram.  If not present, or  empty,  no  sequences
                 are  defined.   Otherwise,  for each name given,
                 the sequence is first zero'd and then each  mes-
                 sage  is  added  to  the sequence.  (profile, no
                 default)

       Sequence-Negation: not
                 Defines the string which,  when  prefixed  to  a
                 sequence  name,  negates  that sequence.  Hence,
                 notseen means all those messages that are not  a
                 member  of  the  sequence  seen.   (profile,  no
                 default)

       Unseen-Sequence: unseen
                 Names the sequences which should be  defined  as
                 those  messages  recently  incorporated  by inc.



MH                        April 22, 1986                        1




MH-PROFILE(5)                 [mh.6]                MH-PROFILE(5)


                 Show knows to remove messages from this sequence
                 once it thinks they have been seen.  If not pre-
                 sent, or empty, no sequences are defined.   Oth-
                 erwise,  for  each  name  given, the sequence is
                 first zero'd and then each message is  added  to
                 the sequence.  (profile, no default)

       mh-sequences: .mh_sequences
                 The  name  of  the  file  in  each  folder which
                 defines public sequences.  To disable the use of
                 public  sequences,  leave  the  value portion of
                 this   entry    blank.     (profile,    default:
                 .mh_sequences)

       atr-seq-folder: 172 178-181 212
                 Keeps  track  of the private sequence called seq
                 in the specified folder.  (context, no default)

       Editor: /usr/ucb/ex
                 Defines editor to be used by comp (1), dist (1),
                 forw (1),   and  repl (1).   (profile,  default:
                 prompter)

       Msg-Protect: 644
                 Defines octal protection bits for message files.
                 See  chmod (1)  for  an explanation of the octal
                 number.  (profile, default: 0644)

       Folder-Protect: 711
                 Defines protection bits for folder  directories.
                 (profile, default: 0711)

       program: default switches
                 Sets default switches to be used whenever the mh
                 program program is invoked.   For  example,  one
                 could  override  the  Editor:  profile component
                 when replying to messages by adding a  component
                 such as:
                      repl: -editor /bin/ed
                 (profile, no defaults)

       lasteditor-next: nexteditor
                 Names  nexteditor to be the default editor after
                 using lasteditor.  This  takes  effect  at  What
                 now? level in comp, dist, forw, and repl.  After
                 editing the draft with lasteditor,  the  default
                 editor  is  set  to  be nexteditor.  If the user
                 types edit without any arguments to  What  now?,
                 then nexteditor is used.  (profile, no default)

       bboards: system
                 Tells  bbc  which BBoards you are interested in.
                 (profile, default: system)




MH                        April 22, 1986                        2




MH-PROFILE(5)                 [mh.6]                MH-PROFILE(5)


       Folder-Stack: folders
                 The contents of the folder-stack for the  folder
                 command.  (context, no default)

       mhe:
                 If  present,  tells inc to compose an MHE audit-
                 file in addition to its  other  tasks.   MHE  is
                 Brian  Reid's  Emacs front-end for MH.  An early
                 version is supplied with the mh.6  distribution.
                 (profile, no default)

                 Alternate-Mailboxes: mh@uci-750a, bug-mh*
                 Tells  repl  and scan which addresses are really
                 yours.  In this way, repl knows which  addresses
                 should  be included in the reply, and scan knows
                 if  the  message  really  originated  from  you.
                 Addresses  must be separated by a comma, and the
                 hostnames listed should be  the  official  host-
                 names  for  the mailboxes you indicate, as local
                 nicknames for hosts are not replaced with  their
                 official  site  names.   For  each address, if a
                 host is not given, then that address on any host
                 is considered to be you.  In addition, an aster-
                 isk (`*') may appear at either or both  ends  of
                 the  mailbox  and  host  to  indicate  wild-card
                 matching.  (profile, default: your user-id)

       Draft-Folder: drafts
                 Indicates a default draft folder for comp, dist,
                 forw, and repl.  (profile, no default)

       digest-issue-list: 1
                 Tells  forw  the  last  issue of the last volume
                 sent for the digest list.  (context, no default)

       digest-volume-list: 1
                 Tells  forw  the last volume sent for the digest
                 list.  (context, no default)

       MailDrop: .mail
                 Tells inc your maildrop, if different  from  the
                 default.   This  is  superceded by the $MAILDROP
                 envariable.  (profile, default: /var/mail/$USER)

       Signature: Rand MH System (agent: Marshall Rose)
                 Tells   send   your  mail  signature.   This  is
                 superceded by  the  $SIGNATURE  envariable.   On
                 hosts  where  MH  was  configured  with  the UCI
                 option, if $SIGNATURE is not set and  this  pro-
                 file    entry   is   not   present,   the   file
                 $HOME/.signature  is  consulted.   (profile,  no
                 default)

       The  following  profile  elements  are used whenever an MH



MH                        April 22, 1986                        3




MH-PROFILE(5)                 [mh.6]                MH-PROFILE(5)


       program invokes some other program such as more (1).   The
       .mhprofile  can  be  used to select alternate programs if
       the user wishes.  The default  values  are  given  in  the
       examples.

            fileproc:     /usr/contrib/mh/bin/refile
            incproc:      /usr/contrib/mh/bin/inc
            installproc:  /usr/contrib/mh/lib/install-mh
            lproc:        /usr/ucb/more
            mailproc:     /usr/contrib/mh/bin/mhmail
            mhlproc:      /usr/contrib/mh/lib/mhl
            moreproc:     /usr/ucb/more
            mshproc:      /usr/contrib/mh/bin/msh
            packproc:     /usr/contrib/mh/bin/packf
            postproc:     /usr/contrib/mh/lib/post
            rmmproc:      none
            rmfproc:      /usr/contrib/mh/bin/rmf
            sendproc:     /usr/contrib/mh/bin/send
            showproc:     /usr/ucb/more
            whatnowproc:  /usr/contrib/mh/bin/whatnow
            whomproc:     /usr/contrib/mh/bin/whom

       If  you  define the envariable $MH, you can specify a pro-
       file other than .mhprofile to be read by the MH  programs
       that  you  invoke.   If  the value of $MH is not absolute,
       (i.e., does not begin with a / ), it will be  presumed  to
       start  from the current working directory.  This is one of
       the very few exceptions in MH where non-absolute pathnames
       are not considered relative to the user's MH directory.

       Similarly,  if  you  define the envariable $MHCONTEXT, you
       can specify a context other than the normal  context  file
       (as  specified  in the MH profile).  As always, unless the
       value of $MHCONTEXT is absolute, it will  be  presumed  to
       start from your MH directory.

       MH programs also support other envariables:

       $MAILDROP : tells inc the default maildrop
            This supercedes the MailDrop: profile entry.

       $SIGNATURE : tells send and post your mail signature
            This supercedes the Signature: profile entry.

       $HOME : tells all MH programs your home directory

       $SHELL : tells bbl the default shell to run

       $TERM : tells MH your terminal type
            The  $TERMCAP  envariable is also consulted.  In par-
            ticular, these tells scan and mhl how to  clear  your
            terminal, and how many columns wide your terminal is.
            They also tell mhl how many lines long your  terminal
            screen is.



MH                        April 22, 1986                        4




MH-PROFILE(5)                 [mh.6]                MH-PROFILE(5)


       $editalt : the alternate message
            This  is set by dist and repl during edit sessions so
            you can  peruse  the  message  being  distributed  or
            replied-to.   The message is also available through a
            link called @ in the current directory if  your  cur-
            rent  working  directory  and  the folder the message
            lives in are on the same UNIX filesystem.

       $mhdraft : the path to the working draft
            This is set by comp, dist, forw, and repl to tell the
            whatnowproc  which  file  to  ask What now? questions
            about.   In  addition,  dist,  forw,  and  repl   set
            $mhfolder if appropriate.  Further, dist and repl set
            $mhaltmsg to tell the whatnowproc about an  alternate
            message  associated with the draft (the message being
            distributed or replied-to), and dist sets $mhdist  to
            tell  the whatnowproc that message re-distribution is
            occurring.  Also, $mheditor is set to tell the  what-
            nowproc  the user's choice of editor (unless overrid-
            den by `-noedit').  Similarly, $mhuse may be  set  by
            comp.  Finally, $mhmessages is set by dist, forw, and
            repl if annotations are to occur (along with $mhanno-
            tate, and $mhinplace).  It's amazing all the informa-
            tion that has to get passed via envariables  to  make
            the  What now? interface look squeaky clean to the MH
            user, isn't it?  The reason for all this is that  the
            MH  user  can  select any program as the whatnowproc,
            including one of the standard shells.  As  a  result,
            it's not possible to pass information via an argument
            list.
            If the WHATNOW option was set during MH configuration
            (type  `-help'  to an MH command to find out), and if
            this envariable is set, if the commands refile, send,
            show,  or  whom  are  not given any `msgs' arguments,
            then they will default to using the file indicated by
            $mhdraft.   This  is  useful  for getting the default
            behavior supplied by the default whatnowproc.

       $mhfolder : the folder containing the alternate message
            This is set by dist and repl during edit sessions  so
            you  can  peruse other messages in the current folder
            besides the one being distributed or replied-to.  The
            $mhfolder  envariable  is also set by show, prev, and
            next for use by mhl.

       $MHBBRC :
            If you define the envariable $MHBBRC, you can specify
            a  BBoards  information  file  other than .bbrc to be
            read by bbc.  If the value of $MHBBRC  is  not  abso-
            lute,  (i.e.,  does  not begin with a / ), it will be
            presumed to start from the current working directory.

       $MHFD :
            If   the   OVERHEAD   option   was   set   during  MH



MH                        April 22, 1986                        5




MH-PROFILE(5)                 [mh.6]                MH-PROFILE(5)


            configuration (type `-help' to an MH command to  find
            out), then if this envariable is set, MH considers it
            to be  the  number  of  a  file-descriptor  which  is
            opened,  read-only  to the MH profile.  Similarly, if
            the envariable $MHCONTEXTFD is set, this is the  num-
            ber of a file-descriptor which is opened read-only to
            the MH context.  This feature of MH is  experimental,
            and  is  used  to examine possible speed improvements
            for MH startup.  Note that these envariables must  be
            set  and  non-empty to enable this feature.  However,
            if OVERHEAD is enabled during MH configuration,  then
            when  MH programs call other MH programs, this scheme
            is  used.   These  file-descriptors  are  not  closed
            throughout  the execution of the MH program, so chil-
            dren may take advantage of this.   This  approach  is
            thought to be completely safe and does result in some
            performance enhancements.


FILES
       $HOME/.mh_profile                     The user profile
       or $MH                                Rather than the standard profile
       <mh-dir>/context                      The user context
       or $CONTEXT                           Rather than the standard context
       <folder>/.mh_sequences                Public sequences for <folder>

PROFILE COMPONENTS
       All

SEE ALSO
       mh(1), environ(5)

DEFAULTS
       None

CONTEXT
       All

HISTORY
       In previous versions of MH, the current-message value of a
       writable  folder  was  kept  in  a  file called cur in the
       folder itself.  In mh.3,  the  .mhprofile  contained  the
       current-message  values  for  all  folders,  regardless of
       their writability.

       In all versions of MH since mh.4, the .mhprofile contains
       only  static  information,  which  MH  programs  will  NOT
       update.  Changes in context are made to the  context  file
       kept in the users MH directory.  This includes, but is not
       limited to:  the  Current-Folder  entry  and  all  private
       sequence information.  Public sequence information is kept
       in a file called .mhsequences in each folder.

       To convert from the format used in releases of MH prior to



MH                        April 22, 1986                        6




MH-PROFILE(5)                 [mh.6]                MH-PROFILE(5)


       the  format used in the mh.4 release, install-mh should be
       invoked with the `-compat' switch.  This generally happens
       automatically  on  MH  systems  generated  with the COMPAT
       option during MH configuration.

       The .mhprofile may override the path of the context file,
       by  specifying  a  context  entry  (this must be in lower-
       case).  If the entry is not absolute (does not start  with
       a  / ),  then  it is interpreted relative to the user's MH
       directory.  As a result, you can actually have  more  than
       one  set  of  private sequences by using different context
       files.

BUGS
       The shell quoting conventions are  not  available  in  the
       .mh_profile.  Each token is separated by whitespace.

       There is some question as to what kind of arguments should
       be placed in the profile as options.  In order to  provide
       a  clear  answer,  recall command line semantics of all MH
       programs:  conflicting  switches   (e.g.,   `-header   and
       `-noheader')  may  occur more than one time on the command
       line, with the last switch  taking  effect.   Other  argu-
       ments,  such  as message sequences, filenames and folders,
       are always remembered on the invocation line and  are  not
       superseded  by  following  arguments  of  the  same  type.
       Hence, it is safe to place only switches (and their  argu-
       ments) in the profile.

       If one finds that an MH program is being invoked again and
       again with the same arguments, and those arguments  aren't
       switches,  then there are a few possible solutions to this
       problem.  The first is to create a  (soft)  link  in  your
       $HOME/bin  directory to the MH program of your choice.  By
       giving this link a different name, you can  create  a  new
       entry in your profile and use an alternate set of defaults
       for the MH command.  Similarly, you could create  a  small
       shell  script  which  called the MH program of your choice
       with an alternate set of invocation line  switches  (using
       links and an alternate profile entry is preferable to this
       solution).

       Finally, the csh user could create an alias for  the  com-
       mand of the form:

            alias cmd 'cmd arg1 arg2 ...'

       In  this  way,  the  user can avoid lengthy type-in to the
       shell, and still give MH commands  safely.   (Recall  that
       some MH commands invoke others, and that in all cases, the
       profile is read,  meaning  that  aliases  are  disregarded
       beyond an initial command invocation)





MH                        April 22, 1986                        7


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