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