]> diplodocus.org Git - nmh/blob - man/mh-profile.man
Simplified m_strn() per Ralph's suggestions.
[nmh] / man / mh-profile.man
1 .TH MH-PROFILE %manext5% 2016-10-19 "%nmhversion%"
2 .
3 .\" %nmhwarning%
4 .
5 .SH NAME
6 mh-profile \- user profile customization for nmh message handler
7 .SH DESCRIPTION
8 Each user of
9 .B nmh
10 is expected to have a file named
11 .I \&.mh\-profile
12 in their home directory. This file contains
13 a set of user parameters used by the
14 .B nmh
15 family of programs. Each entry in the file is of the format
16 .PP
17 .RS 5
18 .IR profile-component ": " value
19 .RE
20 .PP
21 If the text of a profile entry is long, you may extend it across several
22 real lines by indenting the continuation lines with leading spaces or tabs.
23 Comments may be introduced by a line starting with `#:':
24 .PP
25 .RS 5
26 .IR # ": "
27 This is a comment.
28 .RE
29 .PP
30 Blank lines are not permitted in
31 .IR \&.mh\-profile.
32 Shell quoting conventions are not available; each token is separated
33 by whitespace.
34 .SS "Standard Profile Entries"
35 The possible profile components are exemplified below. The only mandatory
36 entry is `Path:'. The others are optional; some have default values if
37 they are not present. In the notation used below, (profile, default)
38 indicates whether the information is kept in the user's
39 .B nmh
40 profile or
41 .B nmh
42 context, and indicates what the default value is. Note that a profile
43 component can only appear once. Multiple appearances will trigger a
44 warning that all appearances after the first are ignored.
45 .PP
46 Some MH programs, including
47 .BR mhbuild ,
48 .BR mhshow ,
49 and
50 .BR mhstore ,
51 have specific profile components that are described in their respective
52 man pages. Each component name specific to these programs begins with
53 the name of the program and is followed by a dash.
54 .PP
55 .BR Path :
56 Mail
57 .RS 5
58 Locates
59 .B nmh
60 transactions in directory \*(lqMail\*(rq. This is the
61 only mandatory profile entry. (profile, no default)
62 .RE
63 .PP
64 .BR locale :
65 locale
66 .RS 5
67 Set the locale for all
68 .B nmh
69 programs except
70 .BR post ,
71 .BR install-mh ,
72 and
73 .BR slocal .
74 See the LC_ALL, LC_CTYPE, and LANG variables in the "ENVIRONMENT"
75 section below for a reference on how the locale is set if this profile
76 component is not used.
77 .RE
78 .PP
79 .BR context :
80 context
81 .RS 5
82 Declares the location of the
83 .B nmh
84 context file. This can be overridden by the environment variable
85 MHCONTEXT.
86 See the
87 .B HISTORY
88 section below.
89 (profile, default: <nmh-dir>/context)
90 .RE
91 .PP
92 .BR Current\-Folder :
93 inbox
94 .RS 5
95 Keeps track of the current open folder.
96 (context, default: folder specified by \*(lqInbox\*(rq)
97 .RE
98 .PP
99 .BR Inbox :
100 inbox
101 .RS 5
102 Defines the name of the default inbox.
103 (profile, default: inbox)
104 .RE
105 .PP
106 .BR Previous\-Sequence :
107 .I pseq
108 .RS 5
109 Names the sequence or sequences which should be defined as the `msgs' or
110 `msg' argument given to any
111 .B nmh
112 command. If not present or empty,
113 no such sequences are defined. Otherwise, for each name given, the
114 sequence is first zeroed and then each message is added to the sequence.
115 Read the
116 .IR mh\-sequence (5)
117 man page for the details about this sequence. (profile, no default)
118 .RE
119 .PP
120 .BR Sequence\-Negation :
121 not
122 .RS 5
123 Defines the string which, when prefixed to a sequence name, negates
124 that sequence. Hence, \*(lqnotseen\*(rq means all those messages that
125 are not a member of the sequence \*(lqseen\*(rq. Read the
126 .IR mh\-sequence (5)
127 man page for the details. (profile, no default)
128 .RE
129 .PP
130 .BR Unseen\-Sequence :
131 unseen
132 .RS 5
133 Names the sequence or sequences which should be defined as those
134 messages which are unread. The commands
135 .BR inc ,
136 .BR rcvstore ,
137 .BR mhshow ,
138 and
139 .B show
140 will add or remove messages from these
141 sequences when they are incorporated or read. If not present or
142 empty, no such sequences are defined. Otherwise, each message is
143 added to, or removed from, each sequence name given. Read the
144 .IR mh\-sequence (5)
145 man page for the details about this sequence.
146 (profile, no default)
147 .RE
148 .PP
149 .BR mh\-sequences :
150 \&.mh\-sequences
151 .RS 5
152 The name of the file in each folder which defines public sequences.
153 To disable the use of public sequences, leave the value portion of this
154 entry blank. (profile, default: \&.mh\-sequences)
155 .RE
156 .PP
157 .BI atr\- seq \- folder :
158 172\0178\-181\0212
159 .RS 5
160 Keeps track of the private sequence called \*(lqseq\*(rq in the specified
161 folder. Private sequences are generally used for read-only folders.
162 See the
163 .IR mh\-sequence (5)
164 man page for details about private sequences.
165 (context, no default)
166 .RE
167 .PP
168 .BR Editor :
169 vi
170 .RS 5
171 Defines the editor to be used by the commands
172 .BR comp ,
173 .BR dist ,
174 .BR forw ,
175 and
176 .BR repl .
177 If not set, the value will be taken from the VISUAL and EDITOR environment
178 variables. (profile, default: vi)
179 .RE
180 .PP
181 .BR Msg\-Protect :
182 600
183 .RS 5
184 An octal number which defines the permission bits for new message files.
185 See
186 .IR chmod (1)
187 for an explanation of the octal number. Note that some filesystems,
188 such as FAT32, do not support removal of read file permissions.
189 (profile, default: 0600)
190 .RE
191 .PP
192 .BR Folder\-Protect :
193 700
194 .RS 5
195 An octal number which defines the permission bits for new folder
196 directories. See
197 .IR chmod (1)
198 for an explanation of the octal number.
199 (profile, default: 700)
200 .RE
201 .PP
202 .BR datalocking :
203 fcntl
204 .RS 5
205 The locking algorithm used to lock changes to any
206 .B nmh
207 data files, such as sequences or context. The locking algorithm is
208 any one of the following entries:
209 .PP
210 .RS 5
211 .nf
212 %supported_locks%
213 .fi
214 .RE
215 .PP
216 Available locking algorithms can vary depending on the operating system.
217 Note: currently, transactional locking is only supported on public sequences; see
218 .IR mh\-sequence (5)
219 for more information.
220 (profile, default: fcntl)
221 .RE
222 .PP
223 .IR program :
224 .I default switches
225 .RS 5
226 Sets default switches to be used whenever the mh program
227 .I program
228 is invoked. For example, one could override the \*(lqEditor:\*(rq profile
229 component when replying to messages by adding a component such as:
230 .PP
231 .RS 5
232 repl: \-editor /bin/ed
233 .RE
234 .PP
235 (profile, no defaults)
236 .RE
237 .PP
238 .IB lasteditor "-next:"
239 .I nexteditor
240 .RS 5
241 Names \*(lqnexteditor\*(rq to be the default editor after using
242 \*(lqlasteditor\*(rq. This takes effect at the \*(lqWhat now?\*(rq prompt
243 in
244 .BR comp ,
245 .BR dist ,
246 .BR forw ,
247 and
248 .BR repl .
249 After editing the draft with \*(lqlasteditor\*(rq, the default editor is
250 set to be \*(lqnexteditor\*(rq. If the user types \*(lqedit\*(rq without
251 any arguments to \*(lqWhat now?\*(rq, then \*(lqnexteditor\*(rq is used.
252 (profile, no default)
253 .RE
254 .PP
255 .BR Folder\-Stack :
256 .I folders
257 .RS 5
258 The contents of the folder-stack for the
259 .B folder
260 command.
261 (context, no default)
262 .RE
263 .PP
264 .BR Local\-Mailbox :
265 Your Username <user@some.host>
266 .RS 5
267 Tells the MH programs what your local mailbox is. If set, it will be used
268 by the default component files by programs like
269 .B comp
270 and
271 .B repl
272 to construct your default \*(lqFrom:\*(rq header. The text used here will
273 be copied exactly to your \*(lqFrom:\*(rq header, so it should already be RFC
274 822 compliant. If this is set, the
275 .B Signature
276 profile entry is
277 .I not
278 used, so it should include a signature as well. (profile,
279 default: userid@local.hostname)
280 .RE
281 .PP
282 .BR Alternate\-Mailboxes :
283 mh@uci\-750a, bug-mh*
284 .RS 5
285 Tells
286 .B repl
287 and
288 .B scan
289 which additional addresses are yours. In this way,
290 .B repl
291 knows which addresses should be included in the reply, and
292 .B scan
293 knows if a message originated from you. Addresses must be separated by a comma,
294 and the hostnames listed should be the \*(lqofficial\*(rq hostnames for the
295 mailboxes you indicate, as local nicknames for hosts are not replaced with
296 their official site names. For each address, if a host is not given, then
297 that address on any host is considered to be you. In addition, an asterisk
298 (`*') may appear at either or both ends of the mailbox and host to indicate
299 wild-card matching. (profile, default: your user-id)
300 .RE
301 .PP
302 .BR Aliasfile :
303 aliases
304 .I other-aliases
305 .RS 5
306 Indicates alias files for
307 .BR ali ,
308 .BR whom ,
309 and
310 .BR send .
311 This may be used instead of the
312 .B \-alias
313 .I file
314 switch. (profile, no default)
315 .RE
316 .PP
317 .BR Draft\-Folder :
318 drafts
319 .RS 5
320 Indicates a default draft folder for
321 .BR comp ,
322 .BR dist ,
323 .BR forw ,
324 .BR refile ,
325 and
326 .BR repl .
327 Read the
328 .IR mh\-draft (5)
329 man page for details. (profile, no default)
330 .RE
331 .PP
332 .BI digest\-issue\- list :
333 1
334 .RS 5
335 Tells
336 .B forw
337 the last issue of the last volume sent for the digest
338 .IR list .
339 (context, no default)
340 .RE
341 .PP
342 .BI digest\-volume\- list :
343 1
344 .RS 5
345 Tells
346 .B forw
347 the last volume sent for the digest
348 .IR list .
349 (context, no default)
350 .RE
351 .PP
352 .BR MailDrop :
353 \&.mail
354 .RS 5
355 Tells
356 .B inc
357 your mail drop, if different from the default. This is
358 superseded by the environment variable MAILDROP.
359 (profile, default: %mailspool%/$USER)
360 .RE
361 .PP
362 .BR Signature :
363 RAND MH System (agent: Marshall Rose)
364 .RS 5
365 Tells front-end programs such as
366 .BR comp,
367 .BR forw,
368 and
369 .B repl
370 your mail signature. (This is not to be confused with a .signature
371 that might be appended to mails.) This is superseded by the environment
372 variable SIGNATURE. If SIGNATURE is not set and this profile entry is
373 not present, the \*(lqgcos\*(rq field of the \fI/etc/passwd\fP file
374 will be used. Your signature will be added to the address
375 .B send
376 puts in the \*(lqFrom:\*(rq header; do not include an address in the
377 signature text. The \*(lqLocal\-Mailbox\*(rq profile component
378 supersedes all of this. (profile, no default)
379 .RE
380 .PP
381 .BR credentials :
382 legacy
383 .RS 5
384 Indicates how the username and password credentials will be retrieved
385 for access to external servers, such as those that provide SMTP or POP
386 service. The supported entry values are \*(lqlegacy\*(rq,
387 .RI \*(lqfile: netrc \*(rq,
388 and
389 .RI \*(lqfile\-nopermcheck: netrc \*(rq.
390 With \*(lqlegacy\*(rq, or if there is no credentials entry, the
391 username is the first of:
392 .RS 5
393 .TP 5
394 .PD 0
395 1)
396 .B \-user
397 switch to
398 .BR inc ,
399 .BR msgchk ,
400 .BR post ,
401 .BR send ,
402 or
403 .B whom
404 program
405 .TP
406 2)
407 the login name on the local machine
408 .PD
409 .RE
410 .PP
411 The password for SMTP services is the first of:
412 .RS 5
413 .TP 5
414 .PD 0
415 1)
416 password value from matching entry in file named \*(lq.netrc\*(rq
417 in the user's home directory
418 .TP
419 2)
420 password obtained by interactively prompting the user
421 .PD
422 .RE
423 .PP
424 The password for POP service when the
425 .B \-sasl
426 switch is used with one of these programs is the login name on the
427 local machine.
428 .PP
429 With a
430 .RI \*(lqfile: netrc \*(rq
431 .B credentials
432 entry, the username is the first of:
433 .RS 5
434 .PD 0
435 .TP 5
436 1)
437 .B \-user
438 switch to program
439 .TP 5
440 2)
441 login name from matching entry in
442 .I netrc
443 file
444 .TP 5
445 3)
446 value provided by user in response to interactive query
447 .PD
448 .RE
449 .PP
450 Similarly, the password is provided either in the
451 .I netrc
452 file or interactively.
453 .I netrc
454 can be any valid filename, either absolute or relative to Path or
455 $HOME. The
456 .I netrc
457 file contains authentication information, for each server,
458 using a line of the following form. (Replace
459 .IR myserver ,
460 .IR mylogin ,
461 and
462 .I mypassword
463 with your own account information.)
464 .PP
465 .RS 5
466 .B machine
467 .I myserver
468 .B login
469 .I mylogin
470 .B password
471 .I mypassword
472 .RE
473 .PP
474 This
475 .I netrc
476 file must be owned and readable only by you.
477 .PP
478 The
479 .RI \*(lqfile\-nopermcheck: netrc \*(rq
480 .B credentials
481 entry is identical in behavior to the \*(lqfile\*(rq entry, with the
482 exception that the permission checks done by
483 \*(lqfile\*(rq are not performed. This entry should be used with
484 caution and only when absolutely necessary.
485 (profile, default: legacy)
486 .RE
487 .PP
488 .BR Welcome :
489 disable
490 .RS 5
491 If the Welcome component is not present, or its value is not
492 .RI \*(lq disable \*(rq,
493 a welcome message will be displayed the first time that an interactive
494 .B nmh
495 program is run after updating the
496 .B nmh
497 installation.
498 The user must press the Enter key to continue.
499 .PP
500 If the MHCONTEXT environment variable is set and non-empty (and
501 the Welcome component is not
502 .RI \*(lq disable \*(rq),
503 the welcome message is only displayed if the context file contains a version
504 reference, and that reference is older than the installed
505 .B nmh
506 version. The version reference is of the form:
507 .PP
508 .RS 5
509 .nf
510 Version: %nmhversion%
511 .fi
512 .RE
513 .SS "Process Profile Entries"
514 The following profile elements are used whenever an
515 .B nmh
516 program invokes some other program, such as
517 .BR more .
518 The
519 .I \&.mh\-profile
520 can be used to select alternate programs if the user wishes.
521 The default values are given in the examples.
522 .PP
523 If the profile element contains spaces, the element is split at spaces
524 into tokens and each token is given as a separate argument to the
525 .IR execvp (2)
526 system call. If the element contains shell metacharacters then the entire
527 element is executed using
528 .BR /bin/sh .
529 .PP
530 .BR buildmimeproc :
531 %bindir%/mhbuild
532 .RS 5
533 This is the program used by
534 .B whatnow
535 to process drafts which are MIME composition files.
536 .RE
537 .PP
538 .BR fileproc :
539 %bindir%/refile
540 .RS 5
541 This program is used to refile or link a message to another folder.
542 It is used by
543 .B send
544 to file a copy of a message into a folder given
545 by a \*(lqFcc:\*(rq field. It is used by the draft folder facility in
546 .BR comp ,
547 .BR dist ,
548 .BR forw ,
549 and
550 .B repl
551 to refile a draft
552 message into another folder. It is used to refile a draft message in
553 response to the
554 .B refile
555 directive at the \*(lqWhat now?\*(rq prompt.
556 .RE
557 .PP
558 .BR formatproc :
559 .RS 5
560 Program called by
561 .B mhl
562 to filter a component when it is tagged with the \*(lqformat\*(rq variable
563 in the mhl filter. See
564 .IR mhl (5)
565 for more information.
566 .RE
567 .PP
568 .BR incproc :
569 %bindir%/inc
570 .RS 5
571 Program called by
572 .B mhmail
573 to incorporate new mail when it
574 is invoked with no arguments.
575 .RE
576 .PP
577 .BR lproc :
578 more
579 .RS 5
580 This program is used to list the contents of a message in response
581 to the
582 .B list
583 directive at the \*(lqWhat now?\*(rq prompt. It is
584 also used by the draft folder facility in
585 .BR comp ,
586 .BR dist ,
587 .BR forw ,
588 and
589 .B repl
590 to display the draft message.
591 (Note that
592 the environment variable PAGER
593 supersedes the default built-in pager command.)
594 .RE
595 .PP
596 .BR mailproc :
597 %bindir%/mhmail
598 .RS 5
599 This is the program used to automatically mail various messages
600 and notifications. It is used by
601 .B send
602 to post failure notices.
603 It is used to retrieve an external-body with access-type `mail-server'
604 (such as when storing the body with
605 .BR mhstore ).
606 .RE
607 .PP
608 .BR mhlproc :
609 %nmhlibexecdir%/mhl
610 .RS 5
611 This is the program used to filter messages in various ways. It
612 is used by
613 .B mhshow
614 to filter and display the message headers
615 of MIME messages. When the
616 .B \-format
617 or
618 .B \-filter
619 option is used
620 by
621 .B forw
622 or
623 .BR repl ,
624 the
625 .I mhlproc
626 is used to filter the
627 message that you are forwarding, or to which you are replying.
628 When the
629 .B \-filter
630 option is given to
631 .BR send ,
632 the
633 .I mhlproc
634 is used to filter the copy of the message
635 that is sent to \*(lqBcc:\*(rq recipients.
636 .RE
637 .PP
638 .BR moreproc :
639 more
640 .RS 5
641 This is the program used by
642 .B mhl
643 to page the
644 .B mhl
645 formatted message when displaying to a terminal. It is also the default
646 program used by
647 .B mhshow
648 to display message bodies (or message parts) of type text/plain.
649 (Note that
650 the environment variable PAGER
651 supersedes the default built-in pager command.)
652 .RE
653 .PP
654 .BR packproc :
655 %bindir%/packf
656 .RS 5
657 Currently not used.
658 .RE
659 .PP
660 .BR postproc :
661 %nmhlibexecdir%/post
662 .RS 5
663 This is the program used by
664 .BR send ,
665 .BR mhmail ,
666 .BR rcvdist ,
667 and
668 .B viamail
669 (used by the
670 .B sendfiles
671 shell script) to
672 post a message to the mail transport system. It is also called by
673 .B whom
674 (called with the switches
675 .B \-whom
676 and
677 .BR \-library )
678 to do address verification.
679 .RE
680 .PP
681 .BR rmmproc :
682 none
683 .RS 5
684 This is the program used by
685 .BR rmm ,
686 .BR refile ,
687 and
688 .B mhfixmsg
689 to delete a message from a folder.
690 .RE
691 .PP
692 .BR sendproc :
693 %bindir%/send
694 .RS 5
695 This is the program used by
696 .B whatnow
697 to actually send the message
698 .RE
699 .PP
700 .BR showmimeproc :
701 %bindir%/mhshow
702 .RS 5
703 This is the program used by
704 .B show
705 to process and display non-text (MIME) messages.
706 .RE
707 .PP
708 .BR showproc :
709 %nmhlibexecdir%/mhl
710 .RS 5
711 This is the program used by
712 .B show
713 to filter and display text (non-MIME) messages.
714 .RE
715 .PP
716 .BR whatnowproc :
717 %bindir%/whatnow
718 .RS 5
719 This is the program invoked by
720 .BR comp ,
721 .BR dist ,
722 .BR forw ,
723 and
724 .B repl
725 to query about the disposition of a composed draft message.
726 .RE
727 .PP
728 .BR whomproc :
729 %bindir%/whom
730 .RS 5
731 This is the program used by
732 .B whatnow
733 to determine to whom a message would be sent.
734 .RE
735 .SS "Profile Lookup"
736 After consulting .mh_profile, some programs read an optional profile
737 specified by a program-specific environment variable, and then the
738 system-wide profile %nmhetcdir%/mhn.defaults.
739 These programs are
740 .BR mhbuild ,
741 .BR mhshow ,
742 .BR mhstore ,
743 and
744 .BR mhn .
745 .B mhfixmsg
746 is similar, but has no optional profile.
747 .PP
748 The first occurrence of a component is used, e.g.\& .mh_profile's
749 trumps $MHSHOW's. A component with no value still stops further
750 occurrences being used, but is considered absent.
751 .PP
752 The
753 .I \&.mh\-profile
754 contains only static information, which
755 .B nmh
756 programs will
757 .I not
758 update. Changes in context are made to the
759 .I context
760 file kept in the users
761 .B nmh
762 directory. This includes, but is not limited to: the
763 \*(lqCurrent\-Folder\*(rq entry and all private sequence information.
764 Public sequence information is kept in each folder in the file
765 determined by the \*(lqmh\-sequences\*(rq profile entry (default is
766 .IR \&.mh\-sequences ).
767 .PP
768 The
769 .I \&.mh\-profile
770 may override the path of the
771 .I context
772 file, by specifying a \*(lqcontext\*(rq entry (this must be in
773 lower-case). If the entry is not absolute (does not start with a
774 \*(lq/\*(rq), then it is interpreted relative to the user's
775 .B nmh
776 directory. As a result, you can actually have more than one set of
777 private sequences by using different context files.
778 .SH ENVIRONMENT
779 The operation of
780 .B nmh
781 and its commands it also controlled by the
782 presence of certain environment variables.
783 .PP
784 Many of these environment variables are used internally by the
785 \*(lqWhat now?\*(rq interface. It's amazing all the information
786 that has to get passed via environment variables to make the
787 \*(lqWhat now?\*(rq interface look squeaky clean to the
788 .B nmh
789 user, isn't it? The reason for all this is that the
790 .B nmh
791 user can select any program as the
792 .IR whatnowproc ,
793 including one of the standard shells. As a result, it's not possible
794 to pass information via an argument list. The convention is that
795 environment variables whose names are all upper-case are user-settable;
796 those whose names are lower-case only are used internally by nmh and
797 should not generally be set by the user.
798 .TP
799 LC_ALL, LC_CTYPE, and LANG
800 These variables are used to set the locale, see locale(1).
801 The \*(lqlocale\*(rq profile entry supersedes these.
802 .TP
803 MAILDROP
804 This variable tells
805 .B inc
806 the default mail drop. This supersedes the \*(lqMailDrop\*(rq
807 profile entry.
808 .TP
809 MAILHOST
810 This variable tells
811 .B inc
812 the POP host to query for mail to incorporate. See the
813 .IR inc (1)
814 man page for more information.
815 .TP
816 MH
817 With this environment variable, you can specify a profile
818 other than
819 .I \&.mh\-profile
820 to be read by the
821 .B nmh
822 programs that you invoke. If the value of MH is not absolute,
823 (i.e., does not begin with a \*(lq/\*(rq), it will be presumed
824 to start from the current working directory. This is one of the
825 very few exceptions in
826 .B nmh
827 where non-absolute pathnames are not considered relative to the user's
828 .B nmh
829 directory.
830 .TP
831 MHBUILD
832 With this environment variable, you can specify an additional user profile
833 (file) to be read by
834 .BR mhbuild ,
835 in addition to the mhn.defaults profile.
836 .TP
837 MHCONTEXT
838 With this environment variable, you can specify a context other than the
839 normal context file (as specified in the
840 .B nmh
841 profile). As usual, unless the value of MHCONTEXT is absolute, it will
842 be presumed to start from your
843 .B nmh
844 directory.
845 .TP
846 MHLDEBUG
847 If this variable is set to a non-null value,
848 .B mhl
849 will emit debugging information.
850 .TP
851 MHMTSCONF
852 If this variable is set to a non-null value, it specifies the
853 name of the mail transport configuration file to use by
854 .BR inc ,
855 .BR post ,
856 and other programs that interact with the mail transport system,
857 instead of the default. See
858 .IR mh-tailor (5).
859 .TP
860 MHMTSUSERCONF
861 If this variable is set to a non-null value, it specifies the name of
862 a mail transport configuration file to be read in addition to the
863 default. See
864 .IR mh-tailor (5).
865 .TP
866 MHN
867 With this environment variable, you can specify an additional user
868 profile (file) to be read by
869 .BR mhn ,
870 in addition to the mhn.defaults profile.
871 .B mhn
872 is deprecated, so support for this variable will be removed from a
873 future nmh release.
874 .TP
875 MHSHOW
876 With this environment variable, you can specify an additional user
877 profile (file) to be read by
878 .BR mhshow ,
879 in addition to the mhn.defaults profile.
880 .TP
881 MHSTORE
882 With this environment variable, you can specify an additional user
883 profile (file) to be read by
884 .BR mhstore ,
885 in addition to the mhn.defaults profile.
886 .TP
887 MHPDEBUG
888 If this variable is set to a non-null value,
889 .B pick
890 will emit a representation of the search pattern.
891 MHPDEBUG
892 is deprecated, so support for this variable will be removed from a
893 future nmh release. Instead,
894 .B pick
895 now supports a
896 .B \-debug
897 switch.
898 .TP
899 MHTMPDIR, TMPDIR
900 These variables are searched, in order, for the directory in which to
901 create some temporary files.
902 MHTMPDIR is deprecated and will be removed in a future release of nmh.
903 .TP
904 MHWDEBUG
905 If this variable is set to a non-null value,
906 .B nmh
907 commands that use the
908 .B Alternate\-Mailboxes
909 profile entry will display debugging information about the values in
910 that entry.
911 .TP
912 PAGER
913 If set to a non-null value, this supersedes the value of the default
914 built-in pager command.
915 .TP
916 SIGNATURE
917 This variable tells
918 .B send
919 and
920 .B post
921 your mail signature. This supersedes the \*(lqSignature\*(rq profile entry,
922 and is not used when the \*(lqLocal\-Mailbox\*(rq profile component is set.
923 .TP
924 USER
925 This variable tells
926 .B repl
927 your user name and
928 .B inc
929 your default mail drop: see the \*(lqMailDrop\*(rq profile entry.
930 .TP
931 USERNAME_EXTENSION
932 This variable is for use with username_extension masquerading. See the
933 .IR mh-tailor (5)
934 man page.
935 .TP
936 editalt
937 This is the alternate message. This is set by
938 .B dist
939 and
940 .B repl
941 during edit sessions so you can peruse the message being distributed or
942 replied to. The message is also available, when the
943 .B \-atfile
944 switch is used, through a link called \*(lq@\*(rq in the current directory
945 if your current working directory and the folder the message lives in are
946 on the same Unix filesystem, and if your current working directory is
947 writable.
948 .TP
949 mhaltmsg
950 .B dist
951 and
952 .B repl
953 set mhaltmsg to tell the
954 .I whatnowproc
955 about an alternate message associated with the
956 draft (the message being distributed or replied to).
957 .TP
958 mhannotate
959 This is set by
960 .BR dist ,
961 .BR forw ,
962 and
963 .B repl
964 if annotations are to occur.
965 .TP
966 mhdist
967 .B dist
968 sets mhdist to tell the
969 .I whatnowproc
970 that message re-distribution is occurring.
971 .TP
972 mhdraft
973 This is the path to the working draft. It is set by
974 .BR comp ,
975 .BR dist ,
976 .BR forw ,
977 and
978 .B repl
979 to tell the
980 .I whatnowproc
981 which file to ask \*(lqWhat now?\*(rq questions about.
982 .TP
983 mheditor
984 This is set by
985 .BR comp ,
986 .BR repl ,
987 .BR forw ,
988 and
989 .B dist
990 to tell the
991 .I whatnowproc
992 the user's choice of editor (unless overridden by
993 .BR \-noedit ).
994 .TP
995 mhfolder
996 This is the folder containing the alternate message.
997 It is set by
998 .B dist
999 and
1000 .B repl
1001 during edit sessions so you can peruse other messages in the current
1002 folder besides the one being distributed or replied to.
1003 The environment variable mhfolder is also set by
1004 .BR next ,
1005 .BR prev ,
1006 and
1007 .B show
1008 for use by
1009 .BR mhl .
1010 .TP
1011 mhinplace
1012 This is set by
1013 .BR dist ,
1014 .BR forw ,
1015 and
1016 .B repl
1017 if annotations are to occur.
1018 .TP
1019 mhmessages
1020 This is set by
1021 .BR dist ,
1022 .BR forw ,
1023 and
1024 .B repl
1025 if annotations are to occur.
1026 .TP
1027 mhuse
1028 This may be set by
1029 .BR comp .
1030 .SH FILES
1031 .PD 0
1032 .TP 20
1033 $HOME/.mh\-profile
1034 The user's profile.
1035 .TP
1036 <mh-dir>/context
1037 The user's context
1038 .TP
1039 <folder>/.mh\-sequences
1040 Public sequences for <folder>.
1041 .PD
1042 .SH "SEE ALSO"
1043 .IR mhbuild (1),
1044 .IR mhshow (1),
1045 .IR mhstore (1),
1046 .IR mh-sequence (5),
1047 .IR nmh (7)
1048 .SH BUGS
1049 There is some question as to what kind of arguments should be placed
1050 in the profile as options. In order to provide a clear answer, recall
1051 the command line semantics of all
1052 .B nmh
1053 programs: conflicting switches
1054 (e.g.
1055 .B \-header
1056 and
1057 .BR \-noheader )
1058 may occur more than one time on the command line, with the last switch
1059 taking effect. Other arguments, such as message sequences, filenames
1060 and folders, are always remembered on the invocation line and are not
1061 superseded by following arguments of the same type.
1062 Hence, it is safe to place only switches (and their arguments) in the profile.
1063 .PP
1064 If one finds that an
1065 .B nmh
1066 program is being invoked again and again with the same arguments, and those
1067 arguments aren't switches, then there are a few possible solutions to this
1068 problem. The first is to create a (soft) link in your
1069 .I $HOME/bin
1070 directory to the
1071 .B nmh
1072 program of your choice. By giving this link a different name, you can create
1073 a new entry in your profile and use an alternate set of defaults for
1074 the
1075 .B nmh
1076 command. Similarly, you could create a small shell script
1077 which called the
1078 .B nmh
1079 program of your choice with an alternate set
1080 of invocation line switches (using links and an alternate profile entry
1081 is preferable to this solution).
1082 .PP
1083 Finally, the
1084 .B csh
1085 user could create an alias for the command of the form:
1086 .PP
1087 .RS 5
1088 alias cmd 'cmd arg1 arg2 ...'
1089 .RE
1090 .PP
1091 In this way, the user can avoid lengthy type-in to the shell, and still
1092 give
1093 .B nmh
1094 commands safely. (Recall that some
1095 .B nmh
1096 commands
1097 invoke others, and that in all cases, the profile is read, meaning that
1098 aliases are disregarded beyond an initial command invocation)