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