Mercurial > hg > Applications > mh
diff doc/mh-sequence.me @ 0:bce86c4163a3
Initial revision
author | kono |
---|---|
date | Mon, 18 Apr 2005 23:46:02 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/mh-sequence.me Mon Apr 18 23:46:02 2005 +0900 @@ -0,0 +1,229 @@ +.\" This file is automatically generated. Do not edit! +.\" @(#)$Id$ +.SC MH-SEQUENCE 5 +.NA +mh-sequence \- sequence specification for MH message system +.SY +most \fIMH\fR commands +.DE +Most \fIMH\fP commands accept a `msg' or `msgs' specification, where +`msg' indicates one message and `msgs' indicates one or more +messages. +To designate a message, you may use either its number (e.g., 1, 10, 234) +or one of these \*(lqreserved\*(rq message names: +.in +.5i +.sp 1 +.nf +.ta +\w'\fIName\fP 'u +\fIName\fP \fIDescription\fR +first the first message in the folder +last the last message in the folder +cur the most recently accessed message +prev the message numerically preceding \*(lqcur\*(rq +next the message numerically following \*(lqcur\*(rq +.re +.fi +.in -.5i + +In commands that take a `msg' argument, the default is \*(lqcur\*(rq. +As a shorthand, \*(lq\&.\*(rq is equivalent to \*(lqcur\*(rq. + +For example: In a folder containing five messages numbered 5, 10, 94, +177 and 325, \*(lqfirst\*(rq is 5 and \*(lqlast\*(rq is 325. +If \*(lqcur\*(rq is 94, then \*(lqprev\*(rq is 10 and \*(lqnext\*(rq +is 177. + +The word `msgs' indicates that one or more messages may be specified. +Such a specification consists of one message designation or of several message +designations separated by spaces. +A message designation consists either +of a message name as defined above, or a message range. + +A message range is specified as \*(lqname1\-name2\*(rq +or \*(lqname:n\*(rq, +where `name', `name1' and `name2' are message names, and `n' is an integer. + +The specification \*(lqname1\-name2\*(rq +designates all currently-existing messages from `name1' to `name2' inclusive. +The message name \*(lqall\*(rq is a shorthand for the message +range \*(lqfirst\-last\*(rq. + +The specification \*(lqname:n\*(rq designates up to `n' messages. +These messages start with `name' if `name' is a message number +or one of the reserved names \*(lqfirst\*(rq \*(lqcur\*(rq, or \*(lqnext\*(rq, +The messages end with `name' if `name' is \*(lqprev\*(rq or \*(lqlast\*(rq. +The interpretation of `n' may be overridden by preceding `n' with +a plus or minus sign; `+n' always means up to `n' messages starting +with `name', and `\-n' always means up to `n' messages ending +with `name'. + +In commands which accept a `msgs' argument, the default is either +\*(lqcur\*(rq or \*(lqall\*(rq, depending on which makes more sense +for each command (see the individual man pages for details). +Repeated specifications of the same message have the same effect as +a single specification of the message. + +.Uh "User\-Defined Message Sequences" +In addition to the \*(lqreserved\*(rq (pre-defined) message names given above, +\fIMH\fP supports user-defined sequence names. +User-defined sequences allow the \fIMH\fR user a tremendous amount of power +in dealing with groups of messages in the same folder +by allowing the user to bind a group of messages to a meaningful symbolic +name. + +The name used to denote a message sequence must consist of +an alphabetic character followed by zero or more +alphanumeric characters, and can not be one of the \*(lqreserved\*(rq +message names above. +After defining a sequence, +it can be used wherever an \fIMH\fR command expects a `msg' or `msgs' +argument. + +Some forms of message ranges are allowed with user-defined +sequences. The +specification \*(lqname:n\*(rq may be used, and it +designates up to the first `n' messages (or last `n' messages for `\-n') +which are elements of the user-defined sequence `name'. + +The specifications \*(lqname:next\*(rq and \*(lqname:prev\*(rq +may also be used, and they designate the +next or previous message (relative to the current message) +which is an element of the user-defined sequence `name'. +The specificaitions +\*(lqname:first\*(rq and \*(lqname:last\*(rq are equivalent +to \*(lqname:1\*(rq and \*(lqname:\-1\*(rq, respectively. +The specification \*(lqname:cur\*(rq is not allowed +(use just \*(lqcur\*(rq instead). +The syntax of these message range +specifcations is subject to change +in the future. + +User-defined sequence names +are specific to each folder. +They are defined using the \fIpick\fP and \fImark\fP commands. + +.Uh "Public and Private User-Defined Sequences" +There are two varieties of sequences: \fIpublic\fR sequences +and \fIprivate\fR sequences. +\fIPublic\fR sequences of a folder are accessible to any \fIMH\fR user that +can 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 defined +those sequences and are kept in the user's \fIMH\fR context file. +By default, +\fIpick\fR and \fImark\fR create \fIpublic\fR sequences +if 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 +to \fImark\fP. + +.Uh "Sequence Negation" +\fIMH\fP provides the ability to select all messages +not elements of a user-defined sequence. To do this, +the user should define the entry +\*(lqSequence\-Negation\*(rq in the \fIMH\fR profile file; +its value may be any string. +This string is then used to preface an existing user-defined +sequence name. This specification then refers to those messages +not elements of the specified sequence name. +For example, if the profile entry is: + +.ti +.5i +Sequence\-Negation:\^ not + +then anytime an \fIMH\fR command is given \*(lqnotfoo\*(rq as a `msg' or +`msgs' argument, +it would substitute all messages that are not elements of the sequence +\*(lqfoo\*(rq. + +Obviously, +the user should beware of defining sequences with names that +begin with the value of the +\*(lqSequence\-Negation\*(rq profile entry. + +.Uh "The Previous Sequence" +\fIMH\fR provides the ability +to remember the `msgs' or +`msg' argument last given to an \fIMH\fR command. +The entry \*(lqPrevious\-Sequence\*(rq should be defined in the +\fIMH\fR profile; its value should be a sequence name or multiple +sequence names separated by spaces. +If this entry is defined, when +when an \fIMH\fP command finishes, +it will define the sequence(s) named in the value of this entry to be +those messages that were specified to the command. +Hence, a profile entry of + +.ti +.5i +Previous\-Sequence:\^ pseq + +directs any \fIMH\fR command that accepts a `msg' or `msgs' argument to +define the sequence \*(lqpseq\*(rq as those messages when it finishes. + +\fBNote:\fP there can be a performance penalty in using the +\*(lqPrevious\-Sequence\*(rq facility. +If it is used, +\fBall\fP \fIMH\fR programs have to write the sequence information +to the \&.mh\(rusequences file for +the folder each time they run. +If the \*(lqPrevious\-Sequence\*(rq profile entry is not included, +only \fIpick\fR and \fImark\fR will write to the \&.mh\(rusequences file. + +.Uh "The Unseen Sequence" +Finally, some users like to indicate messages which have not been +previously seen by them. +Both \fIinc\fR and \fIshow\fR honor the profile entry +\*(lqUnseen\-Sequence\*(rq to support this activity. +This entry in the \&.mh\(ruprofile should be defined +as one or more sequence names separated by spaces. +If there is a value for \*(lqUnseen\-Sequence\*(rq in the profile, +then whenever \fIinc\fR places new messages in a folder, +the new messages will also be added to the sequence(s) named +in the value of this entry. +Hence, a profile entry of + +.ti +.5i +Unseen\-Sequence:\^ unseen + +directs \fIinc\fR to add new messages to the sequence \*(lqunseen\*(rq. +Unlike the behavior of the \*(lqPrevious\-Sequence\*(rq entry in the profile, +however, the sequence(s) will \fBnot\fR be zeroed by \fIinc\fP. + +Similarly, +whenever \fIshow\fR (or \fInext\fR or \fIprev\fR\^) displays a message, +that message will be removed +from any sequences named by the +\*(lqUnseen\-Sequence\*(rq entry in the profile. + +.Fi +^$HOME/\&.mh\(ruprofile~^The user profile +^<mh\-dir>/context~^The user context +^<folder>/\&.mh\(rusequences~^Public sequences for <folder> +.Pr +^Sequence\-Negation:~^To designate messages not in a sequence +.Ps +^Previous\-Sequence:~^The last message specification given +.Ps +^Unseen\-Sequence:~^Those messages not yet seen by the user +.Sa +mh(1), mark(1), pick(1), mh-profile(5) +.De +None +.Co +All +.Bu +User-defined sequences are stored in the \&.mh\(rusequences file +as a series of message specifications separated by spaces. +If a user-defined sequence contains too many individual +message specifications, +that line in the file may become too long for \fIMH\fP to handle. +This will generate the error message \*(lq\&.mh\(rusequences is +poorly formatted\*(rq. You'll have to edit the file by hand to +remove the offending line. + +This can happen to users who define the \*(lqPrevious\-Sequence\*(rq entry in +the \fIMH\fP profile +and have a folder containing many messages with gaps in the numbering. +A workaround for large folders is to minimize numbering gaps by using +\*(lqfolder\ \-pack\*(rq often. +.En