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

📄 mh.rf

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 RF
📖 第 1 页 / 共 5 页
字号:
.brpick\0\-from\0freida\0\-seq\0sgroup\0\-nozero.in -.5ifinds all those messages in the current folder which were from\*(lqfrated\*(rq, \*(lqfear\*(rq, or \*(lqfreida\*(rq,and defines the sequence called \*(lqsgroup\*(rq as exactly those messages.These operations amounted to an \*(lqinclusive\-or\*(rq of three selectioncriteria,using \fIpick\fR,one can also generate the \*(lqand\*(rq of some selection criteria as well:.in +.5ipick\0\-from\0frated\0\-seq\0fred.brpick\0\-before\0friday\0\-seq\0fred\0fred.in -.5iThis example defines the sequence called \*(lqfred\*(rq as exactly thosemessages from \*(lqfrated\*(rq that were dated prior to \*(lqfriday\*(rq.\**.(f\** Of course,it is much easier to simply use the built\-in boolean operation of\fIpick\fR to get the desired results:.ti +.5ipick\0\-from\0frated\0\-or\0\-from\0fear\0\-or\0\-from\0freida\0\-seq\0sgroupand.ti +.5ipick\0\-from\0frated\0\-and\0\-before\0friday\0\-seq\0freddo exactly the same thing as the five commands listed above.Hence, the `\-nozero' option to \fIpick\fR is only useful to manipulateexisting sequences..)f.pp\fIPick\fR is normally used as a back\-quoted command,for example,.ti +.5iscan\0`pick\0\-from\0postmaster`Now suppose that the user decides that another command should be issued,using exactly those messages.Since,\fIpick\fR wasn't given a `\-sequence\ name' argument in this example,the user would end\-up typing the entire back\-quoted command again.A simpler way is to add a default sequence name to the \&.mh\(ruprofile.For example,.ti +.5ipick:\0\-seq\0select\0\-listwill tell \fIpick\fR to always define the sequence \*(lqselect\*(rq wheneverit's run.The `-list' is necessary since the `\-sequence\ name' switch sets `\-nolist'whenever the former is encountered.Hence, this profile entry makes \fIpick\fR define the \*(lqselect\*(rqsequence and otherwise behave exactly as if there was no profile entry at all..UH "Mark and User\-Defined Sequences".ppThe \fImark\fR command lets the user perform low\-level manipulation ofsequences,and also provides a well\-needed debug facility to theimplementors/developers/maintainers of \fIMH\fR (the \fIMH\fR\-hacks).In the future, a user\-friendly \*(lqfront\-end\*(rq for \fImark\fR willprobably be developed to give the \fIMH\fR user a way to take betteradvantage of the underlying facilities..UH "Public and Private User\-Defined Sequences".ppThere are two kinds of sequences: \fIpublic\fR sequences,and \fIprivate\fR sequences.\fIPublic\fR sequences of a folder are accessible to any \fIMH\fR user thatcan read that folder and are kept in the \&.mh\(rusequences file in the folder.\fIPrivate\fR sequences are accessible only to the \fIMH\fR user that definedthose sequences and are kept in the user's \fIMH\fR context file.By default,\fIpick\fR (and \fImark\fR\0) create \fIpublic\fR sequencesif the folder for which the sequences are being defined is writable by the\fIMH\fR user.Otherwise, \fIprivate\fR sequences are created.This can be overridden with the `\-public' and `\-private' switches..UH "Sequence Negation".ppIn addition to telling an \fIMH\fR command to use the messages in the sequence\*(lqseen\*(rq, as in.ti +.5irefile\0seen\0+oldit would be useful to be easily able to tell an \fIMH\fR command to use allmessages \fIexcept\fR those in the sequence.One way of doing this would be to use \fImark\fR and define the sequenceexplicitly,as in.ti +.5imark\0\-delete\0\-zero\0seen\0\-seq\0notseenwhich,owing to \fImark\fR\0's cryptic interpretation of `\-delete' and `\-zero',defines the sequence \*(lqnotseen\*(rq to be all messages not in the sequence\*(lqseen\*(rq.Naturally,anytime the sequence \*(lqseen\*(rq is changed,\*(lqnotseen\*(rq will have to be updated.Another way to achieve this is to define the entry\*(lqSequence\-Negation:\*(rq in the \&.mh\(ruprofile.If the entry was.ti +.5iSequence\-Negation:\0notthen anytime an \fIMH\fR command was given \*(lqnotseen\*(rq as a `msg' or`msgs' argument,it would substitute all messages that are not a member of the sequence\*(lqseen\*(rq.That is,.ti +.5irefile\0notseen\0+newdoes just that.The value of the \*(lqSequence\-Negation:\*(rq entry in the profile can beany string.Hence,experienced users of \fIMH\fR do not use a word,but rather a special character which their shell does not interpret(users of the \fICShell\fR use a single caret or circumflex (usually shift\-6),while users of the Bourne shell use an exclamation\-mark).This is because there is nothing to prevent a user of \fIMH\fR from defining asequence with this string as its prefix,if the string is nothing by letters and digits.Obviously,this could lead to confusing behaviorif the \*(lqSequence\-Negation:\*(rq entry leads \fIMH\fR to believe that twosequences are opposites by virtue of their names differing by the prefixstring..UH "The Previous Sequence".ppMany times users find themselves issuing a series of commands on the samesequences of messages.If the user first defined these messages as a sequence,then considerable typing may be saved.If the user doesn't have this foresight,\fIMH\fR provides a handy way of having \fIMH\fR remember the `msgs' or`msg' argument last given to an \fIMH\fR command.If the entry \*(lqPrevious\-Sequence:\*(rq is defined in the\&.mh\(ruprofile,then when the command finishes,it will define the sequence(s) named in the value of this entry as beingexactly those messages that were specified.Hence, a profile entry of.ti +.5iPrevious\-Sequence:\0pseqdirects any \fIMH\fR command that accepts a `msg' or `msgs' argument todefine the sequence \*(lqpseq\*(rq as those messages when it finishes.More than one sequence name may be placed in this entry,separated with spaces.The one disadvantage of this approachis that the \fIMH\fR progams have to update the sequence information forthe folder each time they run(although most programs read this information,usually only \fIpick\fR and \fImark\fR have to write this information out)..UH "The Unseen Sequence".ppFinally, some users like to distinguish between messages which have beenpreviously seen by them.Both \fIinc\fR and \fIshow\fR honorthe profile entry\*(lqUnseen\-Sequence\*(rq to support this activity.Whenever \fIinc\fR places new messages in a folder,if the entry \*(lqUnseen\-Sequence\*(rq is defined in the \&.mh\(ruprofile,then when the command finishes,\fIinc\fR will add the new messages to the sequence(s) named in the value ofthis entry.Hence, a profile entry of.ti +.5iUnseen\-Sequence:\0 unseendirects \fIinc\fR to add new messages to the sequence \*(lqunseen\*(rq.Unlike the behavior of the \*(lqPrevious\-Sequence\*(rq entry in the profilehowever,the sequence(s) will \fBnot\fR be zero'd..ppSimilarly,whenever \fIshow\fR (or \fInext\fR or \fIprev\fR\0) displays a message,they remove those messages from any sequences named by the\*(lqUnseen\-Sequence\*(rq entry in the profile..uh "COMPOSITION OF MAIL".ppThere are a number of interesting advanced facilities for the composition ofoutgoing mail..UH "The Draft Folder".ppThe \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR commands have twoswitches, `\-draftfolder\0+folder' and `\-draftmessage\0msg'.If `\-draftfolder\0+folder' is used,these commands are directed to construct a draft message in the indicatedfolder.(The \*(lqDraft\-Folder:\*(rq profile entry may be used to declare adefault draft folder for use with\fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR)If `\-draftmessage\0msg' is not used, it defaults to `new'(unless the user invokes \fIcomp\fR with `\-use',in which case the default is `cur').Hence, the user may have several message compositions in progresssimultaneously.Now, all of the \fIMH\fR tools are available on each of the user's messagedrafts(e.g., \fIshow\fR, \fIscan\fR, \fIpick\fR, and so on).If the folder does not exist,the user is asked if it should be created (just like with \fIrefile\fR\0).Also,the last draft message the user was composing is known as `cur' in thedraft folder..ppFurthermore,the \fIsend\fR command has these switches as well.Hence, from the shell,the user can send off whatever drafts desired using thestandard \fIMH\fR `msgs' convention with `\-draftmessage msgs'.If no `msgs' are given, it defaults to `cur'..ppIn addition,all five programs have a `\-nodraftfolder' switch,which undoes the last occurrence of `\-draftfolder\0folder'(useful if the latter occurs in the user's \fIMH\fR profile)..ppIf the user does not give the `\-draftfolder\0+folder' switch,then all these commands act ``normally''.Note that the `\-draft' switch to \fIsend\fR and \fIshow\fRstill refers to the file called `draft' in the user's \fIMH\fRdirectory.In the interests of economy of expression,when using \fIcomp\fR or \fIsend\fR,the user needn't prefix the draft `msg' or `msgs' with`\-draftmessage'.Both of these commands accept a `file' or `files' argument,and they will, if given `\-draftfolder\0+folder' treat these argumentsas `msg' or `msgs'.\**.(f\** This may appear to be inconsistent, at first,but it saves a lot of typing..)fHence,.ti +.5isend -draftf +drafts firstis the same as.ti +.5isend -draftf +drafts -draftm first.ppTo make all this a bit more clear, here are some examples.Let's assume that the following entries are in the \fIMH\fR profile:.in +.5i.nfDraft\-Folder: +draftssendf: -draftfolder +drafts.fi.in -.5iFurthermore,let's assume that the program \fIsendf\fR is a (symbolic) link in the user's \fB$HOME/bin/\fR directory to \fIsend\fR.Then, any of the commands.in +.5i.nfcompdistforwrepl.fi.in -.5iconstructs the message draft in the `draft' folder using the `new'message number.Furthermore,they each define `cur' in this folder to be that message draft.If the user were to use the \fIquit\fR option at `What now?' level,then later on,if no other draft composition was done,the draft could be sent with simply.ti +.5isendfOr,if more editing was required,the draft could be edited with.ti +.5icomp -useInstead,if other drafts had been composed in the meantime,so that this message draft was no longer known as `cur' in the `draft'folder,then the user could \fIscan\fR the folder to see which message draft in thefolder should be used for editing or sending.Clever users could even employ a back-quoted \fIpick\fR to do the work:.ti +.5icomp -use `pick +drafts -to bug-mh`or.ti +.5isendf `pick +drafts -to bug-mh`Note that in the \fIcomp\fR example,the output from \fIpick\fR must resolve to a single message draft(it makes no sense to talk about composing two or more drafts with oneinvocation of \fIcomp\fR\0).In contrast,in the \fIsend\fR example,as many message drafts as desired can appear,since \fIsend\fR doesn't mind sending more than one draft at a time..ppNote that the argument `\-draftfolder\0+folder' is notincluded in the profile entry for \fIsend\fR,since when \fIcomp\fR, et. al., invoke \fIsend\fR directly,they supply \fIsend\fR with the UNIX pathname of the message draft,and \fBnot\fR a `draftmessage\0msg' argument.As far as \fIsend\fR is concerned,a \fIdraft folder\fR is not being used..ppIt is important to realize that \fIMH\fR treats the draft folder like a standard\fIMH\fR folder in nearly all respects.There are two exceptions:.u first ,under no circumstancs will the `\-draftfolder\0folder' switch cause thenamed folder to become the current folder.\**.(f\** Obviously,if the folder appeared in the context of a standard `+folder'argument to an \fIMH\fR program, as in.ti +.5iscan +draftsit might become the current folder, depending on the context changes of the\fIMH\fR program in question..)f.u Second ,although conceptually \fIsend\fR deletes the `msgs' named in the draftfolder,it does not call `delete-prog' to perform the deletion..UH "What Happens if the Draft Exists".ppWhen the \fIcomp\fR, \fIdist\fR, \fIforw\fR, and \fIrepl\fR commands areinvoked 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.\**

⌨️ 快捷键说明

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