⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mh.rf

📁 早期freebsd实现
💻 RF
📖 第 1 页 / 共 5 页
字号:
invoked and the draft you indicated already exists,these programs will prompt the user for a reponse directing the program'saction.The prompt is.ti +.5iDraft ``/usr/src/uci/mh/mhbox/draft'' exists (xx bytes)..ti +.5iDisposition?The appropriate responses and their meanings are:.u replace :deletes the draft and starts afresh;.u list :lists the draft;.u refile :files the draft into a folder and starts afresh;and,.u quit :leaves the draft intact and exits.In addition, if you specified `\-draftfolder\0folder' to the command,then one other response will be accepted:.u new :finds a new draft,just as if `\-draftmessage\0new' had been given.Finally, the \fIcomp\fR command will accept one more response:.u use :re-uses the draft,just as if `\-use' had been given..UH "The Push Option at What now? Level".ppThe \fIpush\fR option to the \*(lqWhat now?\*(rq queryin the \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR commands,directs the command to \fIsend\fR the draftin a special detached fashion,with all normal output discarded.If \fIpush\fR is used and the draft can not be sent,then \fIMH\fR will send the user a message,indicating the name of the draft file,and an explanation of the failure..\" Although using \fIpush\fR calls \fIsend\fR\0(1),.\" the \fIsend\fR command will consult the profile entry for \fIpush\fR..ppThe user can also invoke \fIsend\fR from the shell with the `\-push'switch,which makes \fIsend\fR act like it had been \fIpush\fR\0'd by one of thecomposition commands..\" composition commands.\**.\" .(f.\" \** Note that in this case,.\" \fIsend\fR consults the profile entry for whatever name it was invoked as,.\" such as \fIsendf\fR..\" .)f.ppBy using \fIpush\fR, the user can free the shell to do other things,because it appears to the shell that the \fIMH\fR command has finished.As a result the shell will immediately prompt for another command,despite the fact that the command is really still running.Note that if the user indicates that annotations are to be performed(with `\-annotate' to \fIdist\fR, \fIforw\fR, or \fIrepl\fR),the annotations will be performed after the message has beensuccessfully sent.This action will appear to occur asynchronously.Obviously, if one of the messages that is to be annotated isremoved before the draft has been successfully sent,then when \fIMH\fR tries to make the annotations,it won't be able to do so.In previous versions of \fIMH\fR,this resulted in an error message mysteriously appearing on the user'sterminal.In \fImh.5\fR and later versions,in this special circumstance, no error will be generated..ppIf send is \fIpush\fR\0'd,then the `\-forward' switch is examined if a failure notice is generated.If given,then the draft is forwarded with the failure notice sent to the user.This allows rapid \fIburst\fR\0'ing of the failure notice to retrieve theunsent draft..UH "Options at What now? Level".ppBy default,the message composition programs call a program called \fIwhatnow\fR beforethe initial draft composition.The \fIMH\fR user can specify any program for this.Following is some information about the default \*(lqWhat now?\*(rq level.More detailed information can be found in the \fIwhatnow\fR\0(1) manual entry..ppWhen using the \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR commands at\*(lqWhat now?\*(rq level,the \fIedit\fR, \fIlist\fR, \fIheaders\fR, \fIrefile\fR,and (for the \fIdist\fR and \fIrepl\fR commands) the \fIdisplay\fR optionswill pass on any additional arguments given them to whatever program theyinvoke..ppIn \fImh.1\fR (the original RAND \fIMH\fR\0)and \fImh.2\fR (the first UCI version of \fIMH\fR\0),\fIMH\fR used a complicated heuristic to determine if the draft should bedeleted or preserved after an unsuccessful edit.In \fImh.3\fR,\fIMH\fR was changed to preserve the draft always,since \fIcomp\fR, et. al.,could usually look at a draft, apply another set of heuristics,and decide if it was important or not.With the notion of a \fIdraft folder\fR, in which one by default gets a `new' message draft,the edit deletion/preservation algorithm was re-implemented,to keep the draft folder from being cluttered with aborted edits..ppAlso,note that by default,if the draft cannot be successfully sent,these commands return to \*(lqWhat now?\*(rq level.But, when \fIpush\fR is used, this does not happen (obviously).Hence,if these commands were expected to annotate any messages,this will have to be done by hand, later on, with the \fIanno\fR command..ppFinally, if the `\-delete' switch is not given to the \fIquit\fR option,then these commands will inform the user of the name of the unsent draft file..UH "Digests".ppThe \fIforw\fR command has the beginnings of a digestifying facility,with the `\-digest\ list', `\-issue\ number', and `\-volume\ number' switches.If \fIforw\fR is given \*(lqlist\*(rq to the `\-digest' switchas the name of the discussion group,and the `\-issue\ number' switch is not given,then \fIforw\fR looks for an entry in the user's \fIMH\fR context called\*(lq\fIdigest\fR\-issue\-list\*(rq and increments its value to use as theissue number.Similarly,if the `\-volume\ number' switch is not given,then \fIforw\fR looks for \*(lq\fIdigest\fR\-volume\-list\*(rq(but does not increment its value) to use as the volume number.Having calculated the name of the digest and the volume and issue numbers,\fIforw\fR will now process the components file using the same format stringmechanism used by \fIrepl\fR.The current `%'\-escapes are:.nf.ta \w'escape  'u +\w'integer  'u\fIescape\fR	\fItype\fR	\fIsubstitution\fRdigest	string	digest namemsg	integer	issue numbercur	integer	volume number.re.fiIn addition, to capture the current date,any of the escapes valid for \fIdp\fR\0(8) are also valid for \fIforw\fR.The default components file used by \fIforw\fR when in digest mode is:.nf.in +.5i.ne 10.eo.so @(MHETCPATH)/digestcomps.ec.in -.5i.fiHence, when the `\-digest' switch is present,the first step taken by \fIforw\fR is to expand the format strings in thecomponent file.The next step is to compose the draft usingthe standard digest encapsulation algorithm(even putting an \*(lqEnd of list Digest\*(rq trailer in the draft).Once the draft is composed by \fIforw\fR,\fIforw\fR writes out the volume and issue profile entries for the digest,and then invokes the editor.Naturally, when composing the draft,\fIforw\fR will honor the `\-filter\ filterfile' switch,which is given to \fImhl\fR to filter each message being forwarded prior toencapsulation in the draft.A good filter file to use, which is called \fImhl.digest\fR, is:.nf.in +.5i.ne 10.eo.so @(MHETCPATH)/mhl.digest.ec.in -.5i.fi.uh "FOLDER HANDLING".ppThere are two interesting facilities for manipulating folders:relative folder addressing,which allows a user to shorten the typing of long folder names;andthe folder\-stack,which permits a user to keep a stack of current folders..UH "Relative Folder Addressing".ppBy default, when `+folder' is given,and the folder name is not absolute(does not start with \fB/\fR, \fB\&./\fR, or \fB\&.\&./\fR),then the UNIX pathname of the folder is interpreted relative to the user's\fIMH\fR directory.Although this mechanism works fine for top\-level folders and their immediatesub\-folders,once the depth of the sub\-folder tree grows, it becomes rather unwieldly:.ti +.5iscan\0+mh/mh.4/draft/flamesis a lot of typing.\fIMH\fR can't do anything if the current folder was \*(lq+inbox\*(rq,but if the current folder was, say, \*(lq+mh/mh.4/draft\*(rq,\fIMH\fR has a short\-hand notation to reference a sub\-folder of thecurrent folder.Using the `@folder' notation,the \fIMH\fR user can direct any \fIMH\fR program which expects a `+folder'argument to look for the folder relative to the current folder instead of theuser's \fIMH\fR directory.Hence, if the current folder \fIwas\fR \*(lq+mh/mh.4/draft\*(rq,then.ti +.5iscan\0@flameswould do the trick handily.In addition, if the current folder \fIwas\fR \*(lq+mh/mh.4/draft\*(rq,.ti +.5iscan\0@../pickwould scan the folder \*(lq+mh/mh.4/pick\*(rq,since, in the UNIX fashion,it references the folder \*(lqpick\*(rq which is a sub\-folder ofthe folder that is the parent of the current folder.Since most advanced \fIMH\fR users seem to exhibit a large degree of localityin referencing folders when they process mail,this convention should receive a wide range of uses..UH "The Folder\-Stack".ppThe \fIfolder\-stack\fR mechanism in \fIMH\fR gives the \fIMH\fR user afacility similar to the \fICShell\fR\0's directory\-stack.Simply put,.ti +.5ifolder\0\-push\0+foomakes \*(lqfoo\*(rq the current folder,saving the folder that was previously the current folder on the\fIfolder\-stack\fR.As expected,.ti +.5ifolder\0\-poptakes the top of the \fIfolder\-stack\fR and makes it the current folder.Each of these switches lists the \fIfolder\-stack\fR when they execute.It is simple to write a \fIpushf\fR command as a shell script.It's one line:.ti +.5iexec\0folder\0\-push\0$@Probably a better way is to link \fIfolder\fR to the $HOME/bin/ directory underthe name of \fIpushf\fR and then add the entry.ti +.5ipushf:\0\-pushto the \&.mh\(ruprofile..ppThe manual page for \fIfolder\fR discusses the analogy between the\fICShell\fR directory stack commands and the switches in \fIfolder\fR whichmanipulate the \fIfolder\-stack\fR.The \fIfolder\fR command uses the context entry `Folder\-Stack:' to keeptrack of the folders in the user's stack of folders.\"\"              On to the Appendices\".fo ''-%-''.he ''''@BEGIN: BSD44.eh 'USD:8-%''The RAND Message Handling System: User Manual'.oh 'The RAND Message Handling System: User Manual''USD:8-%'@END: BSD44.(x.spAppendix.)x _.de $c                          \" Major Heading printer.ceAppendix \\n+(ch.sp 2p.ce.b "\\s12\\$1\\s0"              \" 12 Point Bold Header.(x\ \ \ \\n(ch.\\ \\ \\$2.)x.sp 45p				\" 45 points or about 1/2 inch...++ A.bp.$c "COMMAND SUMMARY" "Command Summary".po -.50i.so mh-chart.me.po +.50i.if t \{.ll 32P.lt 32P\}.bp.$c "MESSAGE NAME BNF" "Message Name BNF".nf.in 1i.ta \w'user-defined-sequence 'u +\w':=  'u +\w'user-defined-sequence  'umsgs	:=	msgspec	|		msgs msgspecmsgspec	:=	msg	|		msg-range	|		msg-sequence	|		user-defined-sequencemsg	:=	msg-name	|		<number>msg-name	:=	\*(lqfirst\*(rq	|		\*(lqlast\*(rq	|		\*(lqcur\*(rq	|		\*(lq\&.\*(rq	|		\*(lqnext\*(rq	|		\*(lqprev\*(rqmsg-range	:=	msg\*(lq\-\*(rqmsg	|		\*(lqall\*(rqmsg-sequence	:=	msg\*(lq:\*(rqsigned-numbersigned-number	:=	\*(lq+\*(rq<number>	|		\*(lq\-\*(rq<number>	|		<number>user-defined-sequence	:=	<alpha>	|		<alpha><alphanumeric>*.re.fi.sp.lpWhere <number> is a decimal number greater than zero..lpMsg-range specifies all of the messages in the given rangeand must not be empty..lpMsg-sequence specifies up to <number> of messages, beginningwith \*(lqmsg\*(rq (in the case of first, cur, next, or <number>),or ending with \*(lqmsg\*(rq (in the case of prev or last).+<number> forces \*(lqstarting with msg\*(rq, and \-<number> forces\*(lqending with number\*(rq.In all cases, \*(lqmsg\*(rq must exist..lpUser\-defined sequences are defined and manipulated with the \fIpick\fRand \fImark\fR commands..in 0.bp.ce.b \\s12REFERENCES\\s0.(x.spREFERENCES.)x.sp 3.in .4i.ti 01.  Crocker, D. H., J. J. Vittal, K. T. Pogran, and D. A. Henderson, Jr.,\*(lqStandard for the Format of ARPA Network Text Messages,\*(rq\fIRFC733\fR,November 1977..ti 02.  Thompson, K., and D. M. Ritchie, \*(lqThe UNIX Time-sharing System,\*(rq\fICommunications of the ACM\fR, Vol. 17, July 1974, pp. 365-375..ti 03.  McCauley, E. J., and P. J. Drongowski, \*(lqKSOS\-The Design of a SecureOperating System,\*(rq \fIAFIPS Conference Proceedings\fR,National Computer Conference,Vol. 48, 1979, pp. 345-353..ti 04.  Crocker, David H., \fIFramework and Functions of the \*(lqMS\*(rq PersonalMessage System\fR, The RAND Corporation, R-2134-ARPA, December 1977..ti 05.  Thompson, K., and D. M. Ritchie, \fIUNIX Programmer's Manual\fR, 6th ed.,Western Electric Company, May 1975 (available only to UNIX licensees)..ti 06. Crocker, D. H.,\*(lqStandard for the Format of ARPA Internet Text Messages,\*(rq\fIRFC822\fR,August 1982..de $c.ce.b "\\s12\\$1\\s0"   \" 12

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -