text.tex

来自「早期freebsd实现」· TEX 代码 · 共 724 行 · 第 1/3 页

TEX
724
字号
% begin text\banner\section{Acknowledgements}The \MH/ system described herein is based on the original Rand \MH/ system.It has been extensively developed (perhaps too much so) by Marshall Rose andJohn Romine at the University of California, Irvine.Einar Stefferud, Jerry Sweet, and Terry Domae provided numerous suggestionsto improve the UCI version of \MH/.\section{Disclaimer}The Regents of the University of California wish to make it known that:\bigquoteAlthough each program has been tested by its contributor,no warranty, express or implied,is made by the contributor or the University of California,as to the accuracy and functioning of the programand related program material,nor shall the fact of distribution constitute any such warranty,and no responsibility is assumed by the contributoror the University of California in connection herewith.\endbigquote\section{Conventions}In this document,certain \TeX -formatting conventions are adhered to:{\advance\leftskip by\parindent\item{1.} The names of \unix/ commands, such as \pgm{comp},are presented in {\it text italics}.\item{2.} Arguments to programs, such as \arg{msgs},are presented in {\sl slanted roman} and delimited by single-quotes.\item{3.} \unix/ pathnames and envariables,such as \file{/usr/uci/} and \file{\$SIGNATURE},are also presented in {\sl slanted roman}.\item{4.} Text presenting an example, such as \eg{frated},is presented in {\tt typewriter style}.\item{5.} Entries in the user's \MH/ \profile/ and \context/ files,such as \entry{Current-Folder},are presented in {\sc Caps-Small-Caps} and delimited by a box.\smallskip}\bop\section{General Changes}This section discusses system-wide changes to \MH/ that are general in nature.\subsection{Message Numbering}In previous versions of \MH/, a folder could have up to \eg{999} messages;in \mh4, this limit has been raised to \eg{1999}.\subsection{Version Information}When any \MH/ command is invoked with the \switch{help} switch,in addition to listing the syntax of the command,the program will list information pertaining to its version.This information includes the version of \MH/,the host it was generated on,and the date the program was loaded.For example,\example MH \#4.25[UCI] (uci-750b) of Thu Jul 19 21:07:01 PDT 1984\endexampleThe \eg{\#4.25[UCI]} indicates that the program is from the UCI \mh4version of \MH/.The program was generated on \eg{uci-750b},on \eg{Thu Jul 19 21:07:01 PDT 1984}.\parThis information is sometimes useful in the unusual circumstance when a bugis found in \MH/.By providing the version information,along with the circumstances concerning the problem with \MH/,the local \MH/ maintainer is better able to track-down the problem.\subsection{The User Context}The \MH/ profile for the user now consists of two parts:a static part, the \profile/, which is found in the user's \file{\$HOME/}directory,and, a dynamic part, the \context/, which is usually found in the user's \MH/directory.The former file contains information which \MH/ commands read,but {\it never\/} write(e.g., command switches).The latter contains information that \MH/ commands read and write,(e.g., \entry{Current-Folder}).\parThis change has three advantages over the way things were done in \mh3.\underbar{First},a lot less information gets written out when an \MH/ command exits,if the context changes.This is due to the fact that the user's \context/ file is often much,much smaller than a user's \profile/ file.\underbar{Second},one can keep different context files around(the entry \entry{context} is changed in the user's \profile/ file).%\nfootnote{Note that this entry must be given {\it entirely} in lowercase inthe \profile/ file.}Hence, the \MH/ user can maintain different sets of private sequences(explained later),by manipulating different \context/ files.\underbar{Third},if more than one person uses a \unix/ login(say a maintenance account),then each can define their own \file{\$MH} envariable to point to their\profile/ file.As a result,each user has the \MH/ environment which that user is accustomed to.Further,depending on the needs of the users who share the \unix/ login,the same or different contexts may be automatically maintained for that login.\parSee \man{mh-profile}(5) for more details on the user context file.\section{Message Selection}A new facility has been added to give the \MH/ user greater power inselecting and referencing messages:first, a change to the \pgm{pick} program is described;second, the notion of user-defined sequences is detailed.\subsection{Selecting Messages}The \pgm{pick} command now does only one thing:it defines sequences based on the selection criterion it is given.In addition, with the \switch{list} switch,\pgm{pick} can be directed to list the numbers of the messages whichsatisfied the criterion, to the standard output.This is very handy for using \pgm{pick} in backquoted operations with theshell.\subsection{User-Defined Sequences}User-defined sequences allow the \MH/ user a tremendous amount of powerin dealing with groups of messages in the same folderby allowing the user to bind a group of messages to a meaningful symbolicname.The user may choose any name for a message sequence,as long as it consists of alphanumeric characters and does not conflict withthe standard \MH/ reserved message names (e.g., \arg{first}, etc).After defining a sequence,it can be used wherever a \MH/ command expects a \arg{msg} or \arg{msgs}argument.Although all \MH/ commands expand user-defined sequences as appropriate,there are two commands that allow the user to define and manipulate them:\pgm{pick} and \pgm{mark}.\subsubsection{Pick and User-Defined Sequences}Most users of \MH/ will use only the \pgm{pick} command.By giving the \switch{sequence~name} switch to \pgm{pick}(which can occur more than once on the command line),each sequence named is defined as those messages which \pgm{pick} matched,according the the selection criteria it was given.Hence,\example pick -from frated -seq fred\endexamplefinds all those messages in the current folder which were from\eg{frated},creates a sequence called \eg{fred},and then adds them to the sequence.The user could then invoke\example scan fred\endexampleto get a \pgm{scan} listing of those messages.Note that by default,\pgm{pick} creates the named sequencesbefore it adds the selected messages to the sequence.Hence, if the named sequence already existed,the sequence is destroyed prior to being re-defined(nothing happens to the messages that were a part of this sequence,they simply cease to be members of that sequence).By using the \switch{nozero} switch, this behavior can be inhibited,as in\example    pick -from frated -seq sgroup\\    pick -from fear -seq sgroup -nozero\\    pick -from freida -seq sgroup -nozero%\endexamplewhich finds all those messages in the current folder which were from\eg{frated}, \eg{fear}, or \eg{freida},and defines the sequence called \eg{sgroup} as exactly those messages.These operations amounted to an ``inclusive-or'' of three selectioncriteria.Using \pgm{pick},one can also generate the ``and'' of some selection criteria as well:\example    pick -from frated -seq fred\\    pick -before friday -seq fred -nozero fred%\endexampleThis example defines the sequence called \eg{fred} as exactly thosemessages from \eg{frated} that were dated prior to \eg{friday}.\par\pgm{Pick} is normally used as a back-quoted command,for example,\example scan \bq{pick -from postmaster}\endexampleNow suppose that the user decides that another command should be issued,using exactly those messages.Since,\pgm{pick} wasn't given a \switch{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 \profile/ file.For example,\example pick: -sequence select -list\endexamplewill tell \pgm{pick} to always define the sequence \eg{select} wheneverit's run.The \switch{list} is necessary since the \switch{sequence~name} switch sets\switch{nolist}whenever the former is encountered.Hence, this profile entry makes \pgm{pick} define the \eg{select}sequence and otherwise behave exactly as if it had no profile entry at all.\parFinally,previous versions of \pgm{pick} balked if a selection criterion was not given.The \mh4 version of \pgm{pick} does not, and merely matches the messages thatwere specified.This lets the \MH/ user type something such as\example show \bq{pick last:20 -seq fear}\endexampleinstead of typing\example    mark -add -nozero -seq fear last:20\\    show fear%\endexample\subsubsection{Mark and User-Defined Sequences}The \pgm{mark} command lets the user perform low-level manipulation ofsequences,and also provides a well-needed debug facility to theimplementors/developers/maintainers of \MH/ (the \MH/-hacks).In the future, a user-friendly ``front-end'' for \pgm{mark} willprobably be developed to give the \MH/ user a way to take betteradvantage of the underlying facilities.\subsubsection{Public and Private User-Defined Sequences}There are two kinds of sequences: {\it public\/} sequences,and {\it private\/} sequences.{\it Public\/} sequences of a folder are accessible to any \MH/ user whocan read that folder.{\it Private\/} sequences are accessible only to the \MH/ user who definedthose sequences.By default,\pgm{pick} (and \pgm{mark\/}) create {\it public\/} sequencesif the folder for which the sequences are being defined is writable by the\MH/ user.Otherwise, {\it private\/} sequences are created.This can be overridden with the \switch{public} and \switch{private} switches.\subsubsection{Sequence Negation}In addition to telling a \MH/ command to use the messages in the sequence\eg{seen}, as in\example refile seen +old\endexampleit would be useful to be easily able to tell a \MH/ command to use allmessages {\it except\/} those in the sequence.One way of doing this would be to use \pgm{mark} and define the sequenceexplicitly,as in\example mark -delete -zero seen -seq notseen\endexamplewhich,owing to \pgm{mark\/}'s cryptic interpretation of \switch{delete} and\switch{zero},defines the sequence \eg{notseen} to be all messages not in the sequence\eg{seen}.Naturally,anytime the sequence \eg{seen} is changed,\eg{notseen} will have to be updated.Another way to achieve this is to define the entry\entry{Sequence-Negation} in the \profile/ file.If the entry was\example Sequence-Negation: not\endexample

⌨️ 快捷键说明

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