MH-PROFILE(5) UNIX Programmer's Manual MH-PROFILE(5) NAME .mh_profile - user customization for MH message system SYNOPSIS any _M_H command 9 Each user of _M_H is expected to have a file named ._m_h__p_r_o_f_i_l_e in his or her home directory. This file contains a set of user parameters used by some or all of the _M_H family of pro- grams. Each line of the file is of the format _p_r_o_f_i_l_e-_c_o_m_p_o_n_e_n_t: _v_a_l_u_e 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 _M_H profile or _M_H context, and indicates what the default value is. Path: Mail Locates _M_H transactions in directory "Mail". (profile, no default) context: context Declares the location of the _M_H 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 _i_n_c. _S_h_o_w knows to remove messages from this sequence once it thinks they have been seen. If not present, or Printed 1/10/87 MH 1 9 MH-PROFILE(5) UNIX Programmer's Manual MH-PROFILE(5) 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-_s_e_q-_f_o_l_d_e_r: 172 178-181 212 Keeps track of the private sequence called _s_e_q in the specified folder. (context, no default) Editor: /usr/ucb/ex Defines editor to be used by _c_o_m_p (1), _d_i_s_t (1), _f_o_r_w (1), and _r_e_p_l (1). (profile, default: prompter) Msg-Protect: 644 Defines octal protection bits for message files. See _c_h_m_o_d (1) for an explanation of the octal number. (profile, default: 0644) Folder-Protect: 711 Defines protection bits for folder directories. (profile, default: 0711) _p_r_o_g_r_a_m: default switches Sets default switches to be used whenever the mh program _p_r_o_g_r_a_m is invoked. For example, one could override the _E_d_i_t_o_r: profile component when replying to messages by adding a component such as: repl: -editor /bin/ed (profile, no defaults) _l_a_s_t_e_d_i_t_o_r-next: nexteditor Names "nexteditor" to be the default editor after using "lasteditor". This takes effect at "What now?" level in _c_o_m_p, _d_i_s_t, _f_o_r_w, and _r_e_p_l. 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 _b_b_c which BBoards you are interested in. (profile, default: system) Folder-Stack: _f_o_l_d_e_r_s Printed 1/10/87 MH 2 MH-PROFILE(5) UNIX Programmer's Manual MH-PROFILE(5) The contents of the folder-stack for the _f_o_l_d_e_r command. (context, no default) mhe: If present, tells _i_n_c to compose an _M_H_E auditfile in addition to its other tasks. _M_H_E is Brian Reid's _E_m_a_c_s front-end for _M_H. An early version is supplied with the _m_h._6 distribution. (profile, no default) Alternate-Mailboxes: mh@uci-750a, bug-mh* Tells _r_e_p_l and _s_c_a_n which addresses are really yours. In this way, _r_e_p_l knows which addresses should be included in the reply, and _s_c_a_n 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 _c_o_m_p, _d_i_s_t, _f_o_r_w, and _r_e_p_l. (profile, no default) digest-issue-_l_i_s_t: 1 Tells _f_o_r_w the last issue of the last volume sent for the digest _l_i_s_t. (context, no default) digest-volume-_l_i_s_t: 1 Tells _f_o_r_w the last volume sent for the digest _l_i_s_t. (context, no default) MailDrop: .mail Tells _i_n_c your maildrop, if different from the default. This is superceded by the $MAILDROP envariable. (profile, default: /usr/spool/mail/$USER) Signature: Rand MH System (agent: Marshall Rose) Tells _s_e_n_d your mail signature. This is super- ceded by the $SIGNATURE envariable. On hosts where _M_H 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/10/87 MH 3 MH-PROFILE(5) UNIX Programmer's Manual MH-PROFILE(5) The following profile elements are used whenever an _M_H pro- gram invokes some other program such as _m_o_r_e (1). The ._m_h__p_r_o_f_i_l_e can be used to select alternate programs if the user wishes. The default values are given in the examples. fileproc: /usr/misc/mh/refile incproc: /usr/misc/mh/inc installproc: /usr/misc/mh/lib/install-mh lproc: /usr/ucb/more mailproc: /usr/misc/mh/mhmail mhlproc: /usr/misc/mh/lib/mhl moreproc: /usr/ucb/more mshproc: /usr/misc/mh/msh packproc: /usr/misc/mh/packf postproc: /usr/misc/mh/lib/post rmmproc: none rmfproc: /usr/misc/mh/rmf sendproc: /usr/misc/mh/send showproc: /usr/ucb/more whatnowproc: /usr/misc/mh/whatnow whomproc: /usr/misc/mh/whom If you define the envariable $MH, you can specify a profile other than ._m_h__p_r_o_f_i_l_e to be read by the _M_H 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 _M_H where non-absolute pathnames are not con- sidered relative to the user's _M_H directory. Similarly, if you define the envariable $MHCONTEXT, you can specify a context other than the normal context file (as specified in the _M_H profile). As always, unless the value of $MHCONTEXT is absolute, it will be presumed to start from your _M_H directory. _M_H programs also support other envariables: $MAILDROP : tells _i_n_c the default maildrop This supercedes the "MailDrop:" profile entry. $SIGNATURE : tells _s_e_n_d and _p_o_s_t your mail signature This supercedes the "Signature:" profile entry. $HOME : tells all _M_H programs your home directory $SHELL : tells _b_b_l the default shell to run $TERM : tells _M_H your terminal type The $TERMCAP envariable is also consulted. In particu- lar, these tells _s_c_a_n and _m_h_l how to clear your termi- nal, and how many columns wide your terminal is. They Printed 1/10/87 MH 4 MH-PROFILE(5) UNIX Programmer's Manual MH-PROFILE(5) also tell _m_h_l how many lines long your terminal screen is. $editalt : the alternate message This is set by _d_i_s_t and _r_e_p_l 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 _c_o_m_p, _d_i_s_t, _f_o_r_w, and _r_e_p_l to tell the _w_h_a_t_n_o_w_p_r_o_c which file to ask "What now?" questions about. In addition, _d_i_s_t, _f_o_r_w, and _r_e_p_l set $mhfolder if appropriate. Further, _d_i_s_t and _r_e_p_l set $mhaltmsg to tell the _w_h_a_t_n_o_w_p_r_o_c about an alternate message associated with the draft (the message being distri- buted or replied-to), and _d_i_s_t sets $mhdist to tell the _w_h_a_t_n_o_w_p_r_o_c that message re-distribution is occurring. Also, $mheditor is set to tell the _w_h_a_t_n_o_w_p_r_o_c the user's choice of editor (unless overridden by `-noedit'). Similarly, $mhuse may be set by _c_o_m_p. Finally, $mhmessages is set by _d_i_s_t, _f_o_r_w, and _r_e_p_l 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 _M_H user, isn't it? The reason for all this is that the _M_H user can select _a_n_y program as the _w_h_a_t_n_o_w_p_r_o_c, 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 _M_H configuration (type `-help' to an _M_H command to find out), and if this envariable is set, if the commands _r_e_f_i_l_e, _s_e_n_d, _s_h_o_w, or _w_h_o_m 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 _w_h_a_t_n_o_w_p_r_o_c. $mhfolder : the folder containing the alternate message This is set by _d_i_s_t and _r_e_p_l 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 _s_h_o_w, _p_r_e_v, and _n_e_x_t for use by _m_h_l. $MHBBRC : If you define the envariable $MHBBRC, you can specify a BBoards information file other than ._b_b_r_c to be read by _b_b_c. If the value of $MHBBRC is not absolute, (i.e., does not begin with a / ), it will be presumed to start Printed 1/10/87 MH 5 MH-PROFILE(5) UNIX Programmer's Manual MH-PROFILE(5) from the current working directory. $MHFD : If the OVERHEAD option was set during _M_H configuration (type `-help' to an _M_H command to find out), then if this envariable is set, _M_H considers it to be the number of a file-descriptor which is opened, read-only to the _M_H profile. Similarly, if the envariable $MHCONTEXTFD is set, this is the number of a file-descriptor which is opened read-only to the _M_H context. This feature of _M_H is experimental, and is used to examine possible speed improvements for _M_H startup. Note that these envariables must be set and non-empty to enable this feature. However, if OVERHEAD is enabled during _M_H configuration, then when _M_H pro- grams call other _M_H programs, this scheme is used. These file-descriptors are not closed throughout the execution of the _M_H 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 _M_H, the current-message value of a writable folder was kept in a file called "cur" in the folder itself. In _m_h._3, the ._m_h__p_r_o_f_i_l_e contained the current-message values for all folders, regardless of their writability. In all versions of _M_H since _m_h._4, the ._m_h__p_r_o_f_i_l_e contains only static information, which _M_H programs will NOT update. Changes in context are made to the _c_o_n_t_e_x_t file kept in the Printed 1/10/87 MH 6 MH-PROFILE(5) UNIX Programmer's Manual MH-PROFILE(5) users MH _d_i_r_e_c_t_o_r_y. 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 ._m_h__s_e_q_u_e_n_c_e_s in each folder. To convert from the format used in releases of _M_H prior to the format used in the _m_h._4 release, _i_n_s_t_a_l_l-_m_h should be invoked with the `-compat' switch. This generally happens automatically on _M_H systems generated with the "COMPAT" option during _M_H configuration. The ._m_h__p_r_o_f_i_l_e may override the path of the _c_o_n_t_e_x_t 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 _M_H 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 _M_H 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 _M_H 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 $_H_O_M_E/_b_i_n directory to the _M_H 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 _M_H command. Similarly, you could create a small shell script which called the _M_H 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 _c_s_h 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/10/87 MH 7 MH-PROFILE(5) UNIX Programmer's Manual MH-PROFILE(5) shell, and still give _M_H commands safely. (Recall that some _M_H commands invoke others, and that in all cases, the pro- file is read, meaning that aliases are disregarded beyond an initial command invocation) Printed 1/10/87 MH 8