MH-PROFILE(5) RISC/os Reference Manual 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 .mh_profile
in his or her home directory. This file contains a set of
user parameters used by some or all of the MH family of pro-
grams. 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 notation
used below, (profile, default) indicates whether the infor-
mation is kept in the user's MH profile or MH context, 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. (context,
default: +inbox)
Previous-Sequence: pseq
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 zero'd and then each message 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. Show
Printed 1/15/91 MH Page 1
MH-PROFILE(5) RISC/os Reference Manual MH-PROFILE(5)
knows to remove 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 zero'd and
then each message is added to the sequence. (pro-
file, 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 Page 2 Printed 1/15/91
MH-PROFILE(5) RISC/os Reference Manual 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 auditfile
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" hostnames 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 asterisk (`*') 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: /usr/mail/$USER)
Signature: Rand MH System (agent: Marshall Rose)
Tells send your mail signature. This is super-
ceded by the $SIGNATURE envariable. On hosts
where MH was configured with the UCI option, if
$SIGNATURE is not set and this profile entry is
not present, the file $HOME/.signature is con-
sulted. (profile, no default)
Printed 1/15/91 MH Page 3
MH-PROFILE(5) RISC/os Reference Manual MH-PROFILE(5)
The following profile elements are used whenever an MH pro-
gram invokes some other program such as more (1). The
.mh_profile can be used to select alternate programs if the
user wishes. The default values are given in the examples.
fileproc: /usr/new/mh/refile
incproc: /usr/new/mh/inc
installproc: /usr/new/lib/mh/install-mh
lproc: /usr/ucb/more
mailproc: /usr/new/mh/mhmail
mhlproc: /usr/new/lib/mh/mhl
moreproc: /usr/ucb/more
mshproc: /usr/new/mh/msh
packproc: /usr/new/mh/packf
postproc: /usr/new/lib/mh/post
rmmproc: none
rmfproc: /usr/new/mh/rmf
sendproc: /usr/new/mh/send
showproc: /usr/ucb/more
whatnowproc: /usr/new/mh/whatnow
whomproc: /usr/new/mh/whom
If you define the envariable $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, (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 con-
sidered 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 particu-
lar, these tells scan and mhl how to clear your termi-
nal, and how many columns wide your terminal is. They
MH Page 4 Printed 1/15/91
MH-PROFILE(5) RISC/os Reference Manual MH-PROFILE(5)
also tell mhl how many lines long your terminal screen
is.
$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
current 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 distri-
buted or replied-to), and dist sets $mhdist to tell the
whatnowproc that message re-distribution is occurring.
Also, $mheditor is set to tell the whatnowproc the
user's choice of editor (unless overridden 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 $mhannotate, and
$mhinplace). It's amazing all the information 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 absolute, (i.e.,
does not begin with a / ), it will be presumed to start
Printed 1/15/91 MH Page 5
MH-PROFILE(5) RISC/os Reference Manual MH-PROFILE(5)
from the current working directory.
$MHFD :
If the OVERHEAD option was set during MH 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 number 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 pro-
grams call other MH programs, this scheme is used.
These file-descriptors are not closed throughout the
execution of the MH program, so children may take
advantage of this. This approach is thought to be com-
pletely 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 .mh_profile contained the
current-message values for all folders, regardless of their
writability.
In all versions of MH since mh.4, the .mh_profile contains
only static information, which MH programs will NOT update.
Changes in context are made to the context file kept in the
MH Page 6 Printed 1/15/91
MH-PROFILE(5) RISC/os Reference Manual MH-PROFILE(5)
users MH directory. This includes, but is not limited to:
the "Current-Folder" entry and all private sequence informa-
tion. Public sequence information is kept in a file called
.mh_sequences in each folder.
To convert from the format used in releases of MH prior to
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 .mh_profile 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 direc-
tory. 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 pro-
grams: conflicting switches (e.g., `-header and
`-noheader') may occur more than one time on the command
line, with the last switch taking effect. Other arguments,
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 arguments) 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 solu-
tion).
Finally, the csh user could create an alias for the command
of the form:
alias cmd 'cmd arg1 arg2 ...'
In this way, the user can avoid lengthy type-in to the
Printed 1/15/91 MH Page 7
MH-PROFILE(5) RISC/os Reference Manual MH-PROFILE(5)
shell, and still give MH commands safely. (Recall that some
MH commands invoke others, and that in all cases, the pro-
file is read, meaning that aliases are disregarded beyond an
initial command invocation)
MH Page 8 Printed 1/15/91