-.TH MH-PROFILE %manext5% "%nmhdate%" MH.6.8 [%nmhversion%]
+.TH MH-PROFILE %manext5% "December 21, 2014" "%nmhversion%"
.\"
.\" %nmhwarning%
.\"
.SH NAME
mh-profile \- user profile customization for nmh message handler
-.SH SYNOPSIS
-.I $HOME/.mh\(ruprofile
.SH DESCRIPTION
Each user of
.B nmh
.PP
Blank lines are not permitted in
.IR \&.mh\(ruprofile.
+The shell quoting conventions are not available in the
+.IR \&.mh\(ruprofile ;
+each token is separated by whitespace.
.SS "Standard Profile Entries"
The possible profile components are exemplified below. The only mandatory
entry is `Path:'. The others are optional; some have default values if
component can only appear once. Multiple appearances with trigger a
warning that all appearances after the first are ignored.
.PP
+Some MH programs, including
+.BR mhbuild ,
+.BR mhshow ,
+and
+.BR mhstore ,
+have specific profile components that are described in their respective
+man pages. Each component name begins with the name of the program and
+is followed by a dash.
+.PP
.BR Path :
Mail
.RS 5
.RE
.PP
.BR Editor :
-/usr/bin/vi
+vi
.RS 5
Defines the editor to be used by the commands
.BR comp ,
.BR forw ,
and
.BR repl .
-(profile, default: %default_editor%)
-.RE
-.PP
-.BR automimeproc :
-.RS 5
-If defined and set to 1, then the
-.B whatnow
-program will automatically
-invoke the buildmimeproc (discussed below) to process each message as a MIME
-composition draft before it is sent.
-(profile, no default)
+If not set in profile the value will be taken from the VISUAL and
+EDITOR environment variables.
+(profile, default: vi)
.RE
.PP
.BR Msg\-Protect :
(profile, default: 700)
.RE
.PP
+.BR datalocking :
+fcntl
+.RS 5
+The locking algorithm used to lock changes to any
+.B nmh
+data files, such as sequences or the context. The locking algorithm is
+any one of the following entries:
+.PP
+.RS 5
+.nf
+%supported_locks%
+.fi
+.RE
+.PP
+Available locking algorithms can vary depending on what is supported by
+the operating system. Note: currently transactional locking is only
+supported on public sequences; see
+.IR mh\-sequence (5)
+for more information.
+(profile, default: fcntl)
+.RE
+.PP
.IR program :
.I default switches
.RS 5
and
.B repl
to construct your default \*(lqFrom\*(rq header. The text used here will
-be copied exactly to your From: header, so it should already be RFC-822
+be copied exactly to your From: header, so it should already be RFC 822
compliant. If this is set, the
.B Signature
profile entry is NOT used, so it should include a signature as well. (profile,
signature text. The \*(lqLocal\-Mailbox\*(rq profile component
supersedes all of this. (profile, no default)
.RE
+.PP
+.BR credentials :
+\&legacy
+.RS 5
+Indicates how the username and password credentials will be retrieved
+for access to external servers, such as those that provide SMTP or POP
+service. The supported entry values are \*(lqlegacy\*(rq and
+.RI \*(lqfile: netrc \*(rq.
+With \*(lqlegacy\*(rq, or if there is no credentials entry, the
+username is the first of:
+.PP
+.RS 5
+1)
+.B \-user
+switch to
+.BR send ,
+.BR post ,
+.BR whom ,
+.BR inc ,
+or
+.B msgchk
+program
+.br
+2) the login name on the local machine
+.RE
+.PP
+The password for SMTP services is the first of:
+.PP
+.RS 5
+1) password value from matching entry in file named \*(lq.netrc\*(rq
+in the user's home directory
+.br
+2) password obtained by interactively prompting the user
+.RE
+.PP
+The password for POP service when the
+.B \-sasl
+switch is used with one of these programs is the login name on the
+local machine.
+.PP
+With a
+.RI \*(lqfile: netrc \*(rq
+.B credentials
+entry, the username is the first of:
+.PP
+.RS 5
+1)
+.B \-user
+switch to program
+.br
+2) login name from matching entry in
+.I netrc
+file
+.br
+3) value provided by user in response to interactive query
+.RE
+.PP
+Similarly, the password is provided either in the
+.I netrc
+file or interactively.
+.I netrc
+can be any valid filename, either absolute or relative to Path or
+$HOME. The
+.I netrc
+file contains authentication information, for each server,
+using a line of the following form. Replace the words
+.IR myserver ,
+.IR mylogin ,
+and
+.I mypassword
+with your own account information:
+.PP
+.RS 5
+.B machine
+.I myserver
+.B login
+.I mylogin
+.B password
+.I mypassword
+.RE
+.PP
+This
+.I netrc
+file must be owned and readable only by you.
+(profile, default: legacy)
+.RE
.SS "Process Profile Entries"
The following profile elements are used whenever an
.B nmh
.I \&.mh\(ruprofile
can be used to select alternate programs if the
user wishes. The default values are given in the examples.
+.PP
+If the profile element contains spaces, the element is split at spaces
+into tokens and each token is given as a separate argument to the
+.IR execvp (2)
+system call. If the element contains shell metacharacters then the entire
+element is executed using
+.BR /bin/sh .
.RE
.PP
.BR buildmimeproc :
is invoked with no arguments.
.RE
.PP
-.BR installproc :
-%libdir%/install\-mh
-.RS 5
-This program is called to initialize the environment for
-new users of
-.BR nmh .
-.RE
-.PP
.BR lproc :
-%default_pager%
+more
.RS 5
This program is used to list the contents of a message in response
to the
.RS 5
This is the program used to automatically mail various messages
and notifications. It is used by
-.B conflict
-when using the
-.B \-mail
-option. It is used by
.B send
to post failure notices.
It is used to retrieve an external-body with access-type `mail-server'
.RE
.PP
.BR mhlproc :
-%libdir%/mhl
+%nmhlibexecdir%/mhl
.RS 5
This is the program used to filter messages in various ways. It
is used by
.RE
.PP
.BR moreproc :
-%default_pager%
+more
.RS 5
This is the program used by
.B mhl
supersedes the default built-in pager command.)
.RE
.PP
-.BR mshproc :
-%bindir%/msh
-.RS 5
-Currently not used.
-.RE
-.PP
.BR packproc :
%bindir%/packf
.RS 5
.RE
.PP
.BR postproc :
-%libdir%/post
+%nmhlibexecdir%/post
.RS 5
This is the program used by
.BR send ,
none
.RS 5
This is the program used by
-.B rmm
+.BR rmm ,
+.BR refile ,
and
-.B refile
+.B mhfixmsg
to delete a message from a folder.
.RE
.PP
.RE
.PP
.BR showproc :
-%libdir%/mhl
+%nmhlibexecdir%/mhl
.RS 5
This is the program used by
.B show
.B whatnow
to determine to whom a message would be sent.
.RE
+.SS "Profile Lookup"
+After consulting .mh_profile,
+some programs read an optional profile specified by a
+program-specific environment variable,
+and then the system-wide profile %nmhetcdir%/mhn.defaults.
+These programs are mhbuild, mhshow, mhstore, and mhn.
+mhfixmsg is similar, but has no optional profile.
+
+The first occurrence of a component is used,
+e.g.\& .mh_profile's trumps $MHSHOW's.
+A component with no value still stops further occurrences being used,
+but is considered absent.
.SS "Environment Variables"
The operation of
.B nmh
.BR mhn ,
in addition to the mhn.defaults profile.
.B mhn
-is deprecated, so this support for this variable will
+is deprecated, so support for this variable will
be removed from a future nmh release.
.RE
.PP
in addition to the mhn.defaults profile.
.RE
.PP
-.B $MM_CHARSET
-.RS 5
-With this environment variable, you can specify
-the native character set you are using. You must be able to display
-this character set on your terminal.
-.PP
-This variable is checked to see if a RFC-2047 header field should be
-decoded (in
-.BR inc ,
-.BR scan ,
-.BR mhl ).
-This variable is
-checked by
-.B show
-to see if the
-.I showproc
-or
-.I showmimeproc
-should
-be called, since showmimeproc will be called if a text message uses
-a character set that doesn't match
-.BR $MM_CHARSET .
-This variable is
-checked by
-.B mhshow
-for matches against the charset parameter
-of text contents to decide it the text content can be displayed
-without modifications to your terminal. This variable is checked by
-.B mhbuild
-to decide what character set to specify in the charset
-parameter of text contents containing 8\-bit characters.
-.PP
-When decoding text in such an alternate character set,
-.B nmh
-must be able to determine which characters are alphabetic, which
-are control characters, etc. For many operating systems, this
-will require enabling the support for locales (such as setting
-the environment variable
-.B $LC_CTYPE
-to iso_8859_1).
-.RE
-.PP
.B $MAILDROP
.RS 5
This variable tells
.PP
.B $MHTMPDIR
.B $TMPDIR
-.B $TMP
.RS 5
These variables are searched, in order, for the directory in which to
create some temporary files.
If this variable is set to a non-null value,
.B pick
will emit a representation of the search pattern.
+.B $MHPDEBUG
+is deprecated, so support for this variable will
+be removed from a future nmh release. Instead,
+.B pick
+now supports a
+.B \-debug
+switch.
.RE
.PP
.B $MHWDEBUG
.B repl
during edit sessions so you can
peruse the message being distributed or replied to. The message is also
-available through a link called \*(lq@\*(rq in the current directory if
+available, when the
+.B \-atfile
+switch is used,
+through a link called \*(lq@\*(rq in the current directory if
your current working directory and the folder the message lives in are
-on the same UNIX filesystem.
+on the same UNIX filesystem, and if your current working directory is
+writable.
.RE
.PP
.B $mhdraft
.SH FILES
.fc ^ ~
.nf
-.ta \w'%etcdir%/ExtraBigFileName 'u
+.ta \w'%nmhetcdir%/ExtraBigFileName 'u
^$HOME/\&.mh\(ruprofile~^The user profile
^or $MH~^Rather than the standard profile
^<mh\-dir>/context~^The user context
.SH "SEE ALSO"
.IR environ (5),
.IR mh-sequence (5),
+.IR mhbuild (1),
+.IR mhshow (1),
+.IR mhstore (1),
.IR nmh (7)
.SH HISTORY
The
directory. As a result, you can actually have more than one set of
private sequences by using different context files.
.SH BUGS
-The shell quoting conventions are not available in the
-.IR \&.mh\(ruprofile .
-Each token is separated by whitespace.
-.PP
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