|
|
1.1 root 1: .\" @(MHWARNING)
2: .TH MH\-PROFILE 5 "April 22, 1986" MH [mh.6]
3: .UC 6
4: .SH NAME
5: \&.mh\(ruprofile \- user customization for MH message system
6: .SH SYNOPSIS
7: .in +.5i
8: .ti -.5i
9: any \fIMH\fR command
10: .in -.5i
11: .SH DESCRIPTION
12: Each user of \fIMH\fR is expected to have a file named \fI\&.mh\(ruprofile\fR
13: in his or her home directory. This file contains a set of
14: user parameters used by some or all of the \fIMH\fR
15: family of programs. Each line of the file is of the format
16:
17: \fIprofile\-component\fR: \fIvalue\fR
18:
19: The possible profile components are exemplified below.
20: Only `Path:' is mandatory.
21: The others are optional;
22: some have default values if they are not present.
23: In the notation used below,
24: (profile, default) indicates whether the information is kept in the user's
25: \fIMH\fR profile or \fIMH\fR context,
26: and indicates what the default value is.
27:
28: .in +1i
29: .ti -1i
30: Path: Mail
31: .br
32: Locates \fIMH\fR transactions in directory \*(lqMail\*(rq.
33: (profile, no default)
34:
35: .ti -1i
36: context: context
37: .br
38: Declares the location of the \fIMH\fR context file,
39: see the \fBHISTORY\fR section below.
40: (profile, default: <mh\-dir>/context)
41:
42: .ti -1i
43: Current\-Folder:\ inbox
44: .br
45: Keeps track of the current open folder.
46: (context, default: +inbox)
47:
48: .ti -1i
49: Previous\-Sequence:\ pseq
50: .br
51: Names the sequences which should be defined as the `msgs' or `msg'
52: argument given to the program.
53: If not present, or empty, no sequences are defined.
54: Otherwise,
55: for each name given,
56: the sequence is first zero'd and then each message is added to the sequence.
57: (profile, no default)
58:
59: .ti -1i
60: Sequence\-Negation:\ not
61: .br
62: Defines the string which, when prefixed to a sequence name,
63: negates that sequence.
64: Hence,
65: \*(lqnotseen\*(rq means all those messages that are not a member of
66: the sequence \*(lqseen\*(rq.
67: (profile, no default)
68:
69: .ti -1i
70: Unseen\-Sequence:\ unseen
71: .br
72: Names the sequences which should be defined as those messages recently
73: incorporated by \fIinc\fR.
74: \fIShow\fR knows to remove messages from this sequence once it thinks they
75: have been seen.
76: If not present, or empty, no sequences are defined.
77: Otherwise,
78: for each name given,
79: the sequence is first zero'd and then each message is added to the sequence.
80: (profile, no default)
81:
82: .ti -1i
83: mh\-sequences:\ \&.mh\(rusequences
84: .br
85: The name of the file in each folder which defines public sequences.
86: To disable the use of public sequences,
87: leave the value portion of this entry blank.
88: (profile, default: \&.mh\(rusequences)
89:
90: .ti -1i
91: atr\-\fIseq\fR\-\fIfolder\fR:\ 172\0178\-181\0212
92: .br
93: Keeps track of the private sequence called \fIseq\fR in the specified folder.
94: (context, no default)
95:
96: .ti -1i
97: Editor:\ /usr/ucb/ex
98: .br
99: Defines editor to be used by
100: \fIcomp\fR\0(1), \fIdist\fR\0(1), \fIforw\fR\0(1), and \fIrepl\fR\0(1).
101: (profile, default: @(MHEDITOR))
102:
103: .ti -1i
104: Msg\-Protect:\ 644
105: .br
106: Defines octal protection bits for message files.
107: See \fIchmod\fR\0(1) for an explanation of the octal number.
108: (profile, default: 0644)
109:
110: .ti -1i
111: Folder\-Protect:\ 711
112: .br
113: Defines protection bits for folder directories.
114: (profile, default: 0711)
115:
116: .ti -1i
117: \fIprogram\fR:\ default switches
118: .br
119: Sets default switches to be used whenever the mh program
120: \fIprogram\fR is invoked.
121: For example, one could override the \fIEditor\fR:
122: profile component when replying to messages by adding a
123: component such as:
124: .br
125: repl: \-editor /bin/ed
126: .br
127: (profile, no defaults)
128:
129: .ti -1i
130: \fIlasteditor\fR\-next:\ nexteditor
131: .br
132: Names \*(lqnexteditor\*(rq to be the default editor after using \*(lqlasteditor\*(rq.
133: This takes effect at \*(lqWhat now?\*(rq level in
134: \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR.
135: After editing the draft with \*(lqlasteditor\*(rq,
136: the default editor is set to be \*(lqnexteditor\*(rq.
137: If the user types \*(lqedit\*(rq without any arguments to \*(lqWhat now?\*(rq,
138: then \*(lqnexteditor\*(rq is used.
139: (profile, no default)
140:
141: .ti -1i
142: bboards: system
143: .br
144: Tells \fIbbc\fR which BBoards you are interested in.
145: (profile, default: system)
146:
147: .ti -1i
148: Folder\-Stack: \fIfolders\fR
149: .br
150: The contents of the folder\-stack for the \fIfolder\fR command.
151: (context, no default)
152:
153: .ti -1i
154: mhe:
155: .br
156: If present, tells \fIinc\fR to compose an \fIMHE\fR auditfile in addition to
157: its other tasks.
158: \fIMHE\fR is Brian Reid's \fIEmacs\fR front\-end for \fIMH\fR.
159: An early version is supplied with the \fImh.6\fR distribution.
160: (profile, no default)
161:
162: .ti \-1i
163: Alternate\-Mailboxes: mh@uci\-750a, bug-mh*
164: .br
165: Tells \fIrepl\fR and \fIscan\fR which addresses are really yours.
166: In this way, \fIrepl\fR knows which addresses should be included in the reply,
167: and \fIscan\fR knows if the message really originated from you.
168: Addresses must be separated by a comma,
169: and the hostnames listed should be the \*(lqofficial\*(rq hostnames for the
170: mailboxes you indicate,
171: as local nicknames for hosts are not replaced with their official site names.
172: For each address,
173: if a host is not given,
174: then that address on any host is considered to be you.
175: In addition,
176: an asterisk (`*') may appear at either or both ends of the mailbox and host
177: to indicate wild\-card matching.
178: (profile, default: your user-id)
179:
180: .ti -1i
181: Draft\-Folder: drafts
182: .br
183: Indicates a default draft folder for \fIcomp\fR, \fIdist\fR, \fIforw\fR,
184: and \fIrepl\fR.
185: (profile, no default)
186:
187: .ti -1i
188: digest\-issue\-\fIlist\fR:\ 1
189: .br
190: Tells \fIforw\fR the last issue of the last volume sent for the digest
191: \fIlist\fR.
192: (context, no default)
193:
194: .ti -1i
195: digest\-volume\-\fIlist\fR:\ 1
196: .br
197: Tells \fIforw\fR the last volume sent for the digest \fIlist\fR.
198: (context, no default)
199:
200: .ti -1i
201: MailDrop: .mail
202: .br
203: Tells \fIinc\fR your maildrop, if different from the default.
204: This is superceded by the \fB$MAILDROP\fR envariable.
205: (profile, default: @(MHDROPLOC))
206:
207: .ti -1i
208: Signature: Rand MH System (agent: Marshall Rose)
209: .br
210: Tells \fIsend\fR your mail signature.
211: This is superceded by the \fB$SIGNATURE\fR envariable.
212: On hosts where \fIMH\fR was configured with the UCI option,
213: if \fB$SIGNATURE\fR is not set and this profile entry is not present,
214: the file $HOME/.signature is consulted.
215: (profile, no default)
216: .in -1i
217:
218: The following profile elements are used whenever an \fIMH\fR program
219: invokes some other program such as \fImore\fR\0(1).
220: The \fI\&.mh\(ruprofile\fR can be used to select alternate
221: programs if the user wishes. The default values are given in
222: the examples.
223:
224: .nf
225: .in +.5i
226: .ta \w'whatnowproc: 'u
227: ^fileproc:~^@(MHBINPATH)/refile
228: ^incproc:~^@(MHBINPATH)/inc
229: ^installproc:~^@(MHETCPATH)/install\-mh
230: ^lproc:~^/usr/ucb/more
231: ^mailproc:~^@(MHBINPATH)/mhmail
232: ^mhlproc:~^@(MHETCPATH)/mhl
233: ^moreproc:~^/usr/ucb/more
234: ^mshproc:~^@(MHBINPATH)/msh
235: ^packproc:~^@(MHBINPATH)/packf
236: ^postproc:~^@(MHETCPATH)/post
237: ^rmmproc:~^none
238: ^rmfproc:~^@(MHBINPATH)/rmf
239: ^sendproc:~^@(MHBINPATH)/send
240: ^showproc:~^/usr/ucb/more
241: ^whatnowproc:~^@(MHBINPATH)/whatnow
242: ^whomproc:~^@(MHBINPATH)/whom
243: .re
244: .in -.5i
245: .fi
246:
247: If you define the envariable \fB$MH\fR,
248: you can specify a profile other than \fI\&.mh\(ruprofile\fR to be read
249: by the \fIMH\fR programs that you invoke.
250: If the value of \fB$MH\fR is not absolute,
251: (i.e., does not begin with a \fB/\fR\0),
252: it will be presumed to start from the current working directory.
253: This is one of the very few exceptions in \fIMH\fR where non\-absolute
254: pathnames are not considered relative to the user's \fIMH\fR directory.
255:
256: Similarly,
257: if you define the envariable \fB$MHCONTEXT\fR,
258: you can specify a context other than the normal context file
259: (as specified in the \fIMH\fR profile).
260: As always,
261: unless the value of \fB$MHCONTEXT\fR is absolute,
262: it will be presumed to start from your \fIMH\fR directory.
263:
264: \fIMH\fR programs also support other envariables:
265:
266: .in +.5i
267: .ti -.5i
268: \fB$MAILDROP\fR\0: tells \fIinc\fR the default maildrop
269: .br
270: This supercedes the \*(lqMailDrop:\*(rq profile entry.
271:
272: .ti -.5i
273: \fB$SIGNATURE\fR\0: tells \fIsend\fR and \fIpost\fR your mail signature
274: .br
275: This supercedes the \*(lqSignature:\*(rq profile entry.
276:
277: .ti -.5i
278: \fB$HOME\fR\0: tells all \fIMH\fR programs your home directory
279:
280: .ti -.5i
281: \fB$SHELL\fR\0: tells \fIbbl\fR the default shell to run
282:
283: .ti -.5i
284: \fB$TERM\fR\0: tells \fIMH\fR your terminal type
285: .br
286: The \fB$TERMCAP\fR envariable is also consulted.
287: In particular,
288: these tells \fIscan\fR and \fImhl\fR how to clear your terminal,
289: and how many columns wide your terminal is.
290: They also tell \fImhl\fR how many lines long your terminal screen is.
291:
292: .ti -.5i
293: \fB$editalt\fR\0: the alternate message
294: .br
295: This is set by \fIdist\fR and \fIrepl\fR during edit sessions
296: so you can peruse the message being distributed or replied-to.
297: The message is also available through a link called \*(lq@\*(rq
298: in the current directory if your current working directory and
299: the folder the message lives in are on the same UNIX filesystem.
300:
301: .ti -.5i
302: \fB$mhdraft\fR\0: the path to the working draft
303: .br
304: This is set by \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR
305: to tell the \fIwhatnowproc\fR which file to ask \*(lqWhat now?\*(rq questions
306: about.
307: In addition,
308: \fIdist\fR, \fIforw\fR, and \fIrepl\fR set \fB$mhfolder\fR if appropriate.
309: Further,
310: \fIdist\fR and \fIrepl\fR set \fB$mhaltmsg\fR to tell the
311: \fIwhatnowproc\fR about an alternate message associated with the draft
312: (the message being distributed or replied\-to),
313: and
314: \fIdist\fR sets \fB$mhdist\fR to tell the \fIwhatnowproc\fR that
315: message re\-distribution is occurring.
316: Also,
317: \fB$mheditor\fR is set to tell the \fIwhatnowproc\fR the user's choice of
318: editor (unless overridden by `\-noedit').
319: Similarly,
320: \fB$mhuse\fR may be set by \fIcomp\fR.
321: Finally,
322: \fB$mhmessages\fR is set by \fIdist\fR, \fIforw\fR, and \fIrepl\fR
323: if annotations are to occur
324: (along with \fB$mhannotate\fR, and \fB$mhinplace\fR).
325: It's amazing all the information that has to get passed via envariables to
326: make the \*(lqWhat now?\*(rq interface look squeaky clean to the \fIMH\fR
327: user, isn't it?
328: The reason for all this
329: is that the \fIMH\fR user can select \fIany\fR program as the
330: \fIwhatnowproc\fR, including one of the standard shells.
331: As a result, it's not possible to pass information via an argument list.
332: .br
333: If the WHATNOW option was set during \fIMH\fR configuration
334: (type `\-help' to an \fIMH\fR command to find out),
335: and if this envariable is set,
336: if the commands \fIrefile\fR, \fIsend\fR, \fIshow\fR, or \fIwhom\fR
337: are not given any `msgs' arguments,
338: then they will default to using the file indicated by \fB$mhdraft\fR.
339: This is useful for getting the default behavior supplied by the default
340: \fIwhatnowproc\fR.
341:
342: .ti -.5i
343: \fB$mhfolder\fR\0: the folder containing the alternate message
344: .br
345: This is set by \fIdist\fR and \fIrepl\fR during edit sessions
346: so you can peruse other messages in the current folder
347: besides the one being distributed or replied-to.
348: The \fB$mhfolder\fR envariable is also
349: set by \fIshow\fR, \fIprev\fR, and \fInext\fR
350: for use by \fImhl\fR.
351:
352: .ti -.5i
353: \fB$MHBBRC\fR\0:
354: .br
355: If you define the envariable \fB$MHBBRC\fR,
356: you can specify a BBoards information file other than \fI\&.bbrc\fR to be
357: read by \fIbbc\fR.
358: If the value of \fB$MHBBRC\fR is not absolute,
359: (i.e., does not begin with a \fB/\fR\0),
360: it will be presumed to start from the current working directory.
361:
362: .ti -.5i
363: \fB$MHFD\fR\0:
364: .br
365: If the OVERHEAD option was set during \fIMH\fR configuration
366: (type `\-help' to an \fIMH\fR command to find out),
367: then if this envariable is set,
368: \fIMH\fR considers it to be the number of a file\-descriptor which is opened,
369: read\-only to the \fIMH\fR profile.
370: Similarly,
371: if the envariable \fB$MHCONTEXTFD\fR is set,
372: this is the number of a file\-descriptor which is opened read\-only
373: to the \fIMH\fR context.
374: This feature of \fIMH\fR is experimental,
375: and is used to examine possible speed improvements for \fIMH\fR startup.
376: Note that these envariables must be set and non\-empty to enable this feature.
377: However,
378: if OVERHEAD is enabled during \fIMH\fR configuration,
379: then when \fIMH\fR programs call other \fIMH\fR programs,
380: this scheme is used.
381: These file\-descriptors are not closed throughout the execution of the
382: \fIMH\fR program,
383: so children may take advantage of this.
384: This approach is thought to be completely safe and does result in some
385: performance enhancements.
386: .in -.5i
387:
388: .Fi
389: ^$HOME/\&.mh\(ruprofile~^The user profile
390: ^or $MH~^Rather than the standard profile
391: ^<mh\-dir>/context~^The user context
392: ^or $CONTEXT~^Rather than the standard context
393: ^<folder>/\&.mh\(rusequences~^Public sequences for <folder>
394: .Pr
395: All
396: .Sa
397: mh(1), environ(5)
398: .De
399: None
400: .Co
401: All
402: .Hi
403: In previous versions of \fIMH\fR,
404: the current\-message value of a writable folder was kept in a file
405: called \*(lqcur\*(rq in the folder itself.
406: In \fImh.3\fR,
407: the \fI\&.mh\(ruprofile\fR contained the current\-message values for
408: all folders, regardless of their writability.
409:
410: In all versions of \fIMH\fR since \fImh.4\fR,
411: the \fI\&.mh\(ruprofile\fR contains only static information,
412: which \fIMH\fR programs will \fBNOT\fR update.
413: Changes in context are made to the \fIcontext\fR file kept in the users MH
414: \fIdirectory\fR.
415: This includes, but is not limited to:
416: the \*(lqCurrent\-Folder\*(rq entry and all private sequence information.
417: Public sequence information is kept in a file called \fI\&.mh\(rusequences\fR
418: in each folder.
419:
420: To convert from the format used in releases of \fIMH\fR prior
421: to the format used in the \fImh.4\fR release,
422: \fIinstall\-mh\fR should be invoked with the `\-compat' switch.
423: This generally happens automatically on \fIMH\fR systems generated with the
424: \*(lqCOMPAT\*(rq option during \fIMH\fR configuration.
425:
426: The \fI\&.mh\(ruprofile\fR may override the path of the \fIcontext\fR file,
427: by specifying a \*(lqcontext\*(rq entry (this must be in lower-case).
428: If the entry is not absolute (does not start with a \fB/\fR\0),
429: then it is interpreted relative to the user's \fIMH\fR directory.
430: As a result,
431: you can actually have more than one set of private sequences by using
432: different context files.
433: .Bu
434: The shell quoting conventions are not available in the \&.mh\(ruprofile.
435: Each token is separated by whitespace.
436:
437: There is some question as to what kind of arguments should be placed in
438: the profile as options.
439: In order to provide a clear answer,
440: recall command line semantics of all \fIMH\fR programs:
441: conflicting switches (e.g., `\-header and `\-noheader')
442: may occur more than one time on the command line,
443: with the last switch taking effect.
444: Other arguments,
445: such as message sequences, filenames and folders,
446: are always remembered on the invocation line and are not superseded by
447: following arguments of the same type.
448: Hence, it is safe to place only switches (and their arguments)
449: in the profile.
450:
451: If one finds that an \fIMH\fR
452: program is being invoked again and again with the same arguments,
453: and those arguments aren't switches,
454: then there are a few possible solutions to this problem.
455: The first is to create a (soft) link in your \fI$HOME/bin\fR directory
456: to the \fIMH\fR program of your choice.
457: By giving this link a different name,
458: you can create a new entry in your profile
459: and use an alternate set of defaults for the \fIMH\fR command.
460: Similarly, you could create a small shell script which called the
461: \fIMH\fR program of your choice with an alternate set of invocation
462: line switches (using links and an alternate profile entry is preferable
463: to this solution).
464:
465: Finally, the \fIcsh\fR user could create an alias for the command of the form:
466:
467: .ti +.5i
468: alias cmd 'cmd arg1 arg2 ...'
469:
470: In this way, the user can avoid lengthy type\-in to the shell,
471: and still give \fIMH\fR commands safely. (Recall that some \fIMH\fR
472: commands invoke others, and that in all cases, the profile is read,
473: meaning that aliases are disregarded beyond an initial command invocation)
474: .En
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.