mh_profile - User customization file for the MH message system
Each user of MH is expected to have a file named .mh_profile in his or her
home directory. This file contains a set of static user parameters used by
some or all programs in the the MH family. Each line of the file is in the
In addition, MH keeps information about changes in context (for example,
the current folder and message) in the context file, which is normally
located in the user's Mail directory. MH also consults a number of
environment variables. Both the context file entries and these environment
variables are described in this reference page.
Profile File Entries
The possible profile components are described in the following list. Only
Path is mandatory. The others are optional; some have default values if
they are not present. In the notation used below, the default value is
given in parentheses ( ) at the end of each entry.
When giving path names, mh-dir is used to indicate the user's Mail direc-
tory. This is the directory given by the Path entry in the user's profile,
and is set up initially by MH to be $HOME/Mail.
Locates MH transactions in the named directory. If the directory path
name is not absolute (does not begin with a / ), it is assumed to begin
in the user's home directory. When you first use MH, it creates a
directory called Mail in your home directory, and adds the appropriate
entry to the .mh_profile.
Declares the location of the MH context file.
Names the sequences which should be defined as the msgs or msg argument
given to the program. If not present, or empty, no sequences are
defined. Otherwise, for each name given, the sequence is first zeroed
and then each message is added to the sequence.
Defines the string which, when prefixed to a sequence name, negates
that sequence. Hence, the argument notseen means all those messages
that are not a member of the sequence seen.
Names the sequences which should be defined as those messages recently
incorporated by inc. The show command removes messages from this
sequence once it thinks they have been seen. If not present, or empty,
no sequences are defined. Otherwise, for each name given, the sequence
is first zeroed and then each message is added to the sequence.
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
Defines the editor to be used by the comp, dist, forw, and repl com-
Defines octal protection bits for message files. See chmod(1) for an
explanation of the octal number.
Defines protection bits for folder directories. See chmod(1) for an
explanation of the octal number.
Sets the options to be used whenever an MH command is invoked. You
should set up only command options, not command arguments, in your pro-
file. Options correspond to settings made through command line flags,
which are usually preceded by a dash - in the SYNOPSIS for the command.
You can override any options set up in your .mh_profile by using a flag
on the command line. For example, you can override the Editor profile
component when replying to messages by entering the following command:
% repl -editor /bin/ed
Defines the alias file to be used by MH commands that take the -alias
flag. The named file must be in the correct format; see mh-alias(4).
Names nexteditor to be the default editor after using lasteditor. This
takes effect at the What now? level when using 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 at
the What now? prompt, then nexteditor is used.
If present, tells inc to compose an Emacs audit file in addition to
other tasks performed by the command.
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 host names listed should be the official
host names for the mailboxes you indicate, as local nicknames for hosts
are not replaced by their official site names. If a host is not given
for an address, then that address on any host is considered to be you.
In addition, an asterisk (*) may appear at either or both ends of the
mailbox and host to indicate wild-card matching.
(default: your user-id)
Specifies the name of the draft folder. This is used by comp, dist,
forw, and repl to construct draft messages in, and to store unsent
draft messages. A draft folder allows you to have more than one unsent
draft at a time. The draft folder is conventionally called +drafts.
Tells inc your maildrop, if itdifferent from the default. This is
superseded by the $MAILDROP environment variable.
Tells send your mail signature. This is superseded by the $SIGNATURE
environment variable. The signature must be enclosed in double quotes
Tells send the mail interchange codeset. The send program can convert a
message from the user application codeset used for local message
display to the codeset used for mail interchange. For more information
on codeset conversion, see the section on internationalization features
in the mh(1) reference page.
Provides a default locale when the LANG or LC_ALL environment variable
is not defined. One field in this locale name indicates the user
application codeset, which is used for codeset conversion of mail mes-
sages. For more information on codeset conversion, see the section on
internationalization features in the mh(1) reference page.
The profile elements in the following example are used whenever an MH pro-
gram invokes some other program, such as more. The example shows the pro-
grams used by default. You can specify alternative programs if you want.
Context File Entries
Changes in context are made to the context file kept in the user's Mail
directory. This includes, but is not limited to, the Current-Folder entry,
and all private sequence information. Information kept in the context file
is updated by MH programs as they are used; the .mh_profile contains only
static information, which MH programs do not update.
The .mh_profile may override the path of the context file by specifying a
context entry (this must be in lowercase). If the entry is not absolute
(does not start with /), then it is interpreted relative to the user's Mail
Private sequence information is kept in the context file. Public sequence
information is kept in a file called .mh_sequences in each folder.
The context file may contain the following components:
Keeps track of the current open folder.
atr-seq-folder: 172 178-181 212
Keeps track of the private sequence called seq in the specified folder.
Specifies the contents of the folder-stack for the folder command.
Tells forw the last issue of the last volume sent for the digest list.
Tells forw the last volume sent for the digest list.
In addition to the .mh_profile and context files, MH programs consult a
number of environment variables.
If you define the environment variable $MH, you can specify a profile other
than .mh_profile to be read by the MH programs that you invoke. If the
value of $MH is not absolute, (that is, does not begin with /), 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 Mail directory.
Similarly, if you define the environment variable $MHCONTEXT, you can
specify a context other than the normal context file (as specified in
.mh_profile). Unless the value of $MHCONTEXT is absolute, it will be
presumed to start from your Mail directory.
MH programs also consult the following environment variables:
Tells inc the default maildrop. This supersedes the Maildrop profile
Tells send and post your mail signature. This supersedes the Signature
Tells all MH programs your home directory.
Tells MH your terminal type. The $TERMCAP environment variable is also
consulted. In particular, these two environment variables tell scan
and mhl how to clear your terminal and how many columns wide your ter-
minal is. These variables also tell mhl how many lines long your ter-
minal screen is.
The following environment variables are set by MH programs for the what-
The alternative message. Set by dist and repl during edit sessions so
you can view the message being distributed or replied to. The message
is also available through a link called @ in the current directory, as
long as your current working directory has write permission. If your
current working directory and the folder containing the message are on
the same file system, this link is a hard link; otherwise, it is a sym-
The path to the working draft. Set by comp, dist, forw, and repl to
tell the whatnowproc program which file to ask What now? questions
about. In addition, dist, forw, and repl set $mhfolder, if appropri-
Set by dist and repl to tell the whatnowproc program about an alterna-
tive message associated with the draft (the message being distributed
or replied to).
Set by dist to tell the whatnowproc program that message redistribution
Set to tell the whatnowproc program your choice of editor (unless over-
ridden by -noedit).
May be set by comp.
$mhmessages, $mhannotate, $mhinplace
Set by dist, forw, and repl if annotations are to occur. The reason
for setting these variables is so the MH user can select any applica-
tion, including one of the standard shells, as the whatnowproc program.
As a result, it is not possible to pass information by using an argu-
Specifies the folder containing the alternate message. Set by dist and
repl during edit sessions so you can view other messages in the current
folder, not just the one being distributed or replied to. The
$mhfolder environment variable is also set by show, prev, and next for
use by mhl.
The shell quoting conventions are not available in .mh_profile. Use white
space to separate each token.
It is recommended that you set up in your .mh_profile only those values
that are associated with command line flags. Do not include values, such
as file names, folders, and message sequences when these are independent
command line arguments. In the following example, +project is an indepen-
dent argument (that should not be set up in your .mh_profile) and +drafts
is an argument associated with a flag (that can be set up in your
% forw 3 +project -draftfolder +drafts
When conflicting options are given to MH commands, the option specified on
the command line supersedes the one specified in .mh_profile. Therefore,
you can always override an option you have set up in your .mh_profile by
specifying a related flag on the command line. However, any independent
arguments set up in .mh_profile cannot be superseded by using different
arguments on the command line.
If you find that an MH program is being invoked again and again with the
same arguments (and these are not values associated with flags), you can
use one of the following methods to make command entry more efficient:
+ Create a symbolic 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.
+ Create a small shell script that calls the MH program of your choice
with a particular set of parameters. Using links and an alternate
profile entry is preferable to this solution.
+ If you are a csh user, you can create an alias for the command as fol-
alias my_cmd /usr/bin/mh/cmd arg1 arg2 ..
You can then use the alias to avoid typing lengthy commands to the
shell and still enter MH commands safely. Remember, however, that
some MH commands invoke others, and that in all cases, the profile is
read. Aliases are disregarded for commands that are indirectly
invoked by the one that you enter.
The user profile
The user's context file
Public sequences for a particular folder
Commands: chmod(1), mh(1)