]> diplodocus.org Git - nmh/blobdiff - man/mh-sequence.man
Allow -clobber with mhstore -outfile.
[nmh] / man / mh-sequence.man
index a97af0ea3a496fca3a4a1e596526ff0d7086f323..8fbba7d2d3cc00b5f73eddf1e160fb6adee4f989 100644 (file)
@@ -1,8 +1,7 @@
+.TH MH-SEQUENCE %manext5% "January 9, 2001" "%nmhversion%"
 .\"
 .\" %nmhwarning%
-.\" $Id$
 .\"
-.TH MH-SEQUENCE %manext5% "%nmhdate%" MH.6.8 [%nmhversion%]
 .SH NAME
 mh-sequence \- sequence specification for nmh message system
 .SH SYNOPSIS
@@ -16,7 +15,6 @@ message or collection of messages.
 has several internally
 defined sequences, as well as allowing users to define their own
 sequences.
-
 .SS "Message Specification and Pre\-Defined Message Sequences"
 Most
 .B nmh
@@ -28,7 +26,7 @@ or one of these \*(lqreserved\*(rq message names:
 .RS 5
 .nf
 .ta +\w'\fIName\fP      'u
-.I Name        Description
+.I "Name       Description"
 first  the first message in the folder
 last   the last message in the folder
 cur    the most recently accessed message
@@ -66,6 +64,14 @@ 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'.
 .PP
+Substituting `=' for `:' (i.e., \*(lqname=n\*(rq) will reduce the
+selection from a range of up to `n' messages, to a selection of
+just the `n'th message.  So for example, while \*(lqname:-3\*(rq
+selects the 3 messages ending with `name', \*(lqname=-3\*(rq selects
+just the 2nd previous message.  It is an error if the requested
+message does not exist (i.e., there aren't enough messages in the
+folder).
+.PP 
 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
@@ -76,7 +82,6 @@ There is also a special \*(lqreserved\*(rq message name \*(lqnew\*(rq
 which is used by the
 .B mhpath
 command.
-
 .SS "User\-Defined Message Sequences"
 In addition to the \*(lqreserved\*(rq (pre-defined) message names given
 above,
@@ -110,6 +115,15 @@ specification \*(lqname:cur\*(rq is not allowed (use just \*(lqcur\*(rq
 instead).  The syntax of these message range specifications is subject
 to change in the future.
 .PP
+Single messages (as opposed to ranges) may also be selected by
+substituting `=' for `:', as in \*(lqname=n\*(rq.  This will reduce
+the selection from being a range of up to `n' messages, to being a
+selection of just the `n'th message.  So while \*(lqseq:5\*(rq
+selects the first 5 messages of seqence `seq', \*(lqseq=5\*(rq
+selects just the 5th message of the sequence.  It is
+an error if the requested message does not exist (i.e., there aren't
+at least `n' messages in the sequence).
+.PP
 User-defined sequence names are specific to each folder.  They are
 defined using the
 .B pick
@@ -148,7 +162,6 @@ and
 But if the folder is read\-only, or if
 the \*(lqmh\-sequences\*(rq profile entry is defined but empty, then
 \fIprivate\fR sequences will be created instead.
-
 .SS "Sequence Negation"
 .B Nmh
 provides the ability to select all messages not elements of a
@@ -173,7 +186,6 @@ of the sequence \*(lqfoo\*(rq.
 .PP
 Obviously, the user should beware of defining sequences with names that
 begin with the value of the \*(lqSequence\-Negation\*(rq profile entry.
-
 .SS "The Previous Sequence"
 .B Nmh
 provides the ability to remember the `msgs' or `msg' argument
@@ -214,7 +226,6 @@ and
 will write to the
 .B \&.mh\(rusequences
 file.
-
 .SS "The Unseen Sequence"
 Finally, many users like to indicate which messages have not been
 previously seen by them.  The commands
@@ -260,7 +271,36 @@ or
 displays a message, that message will be removed from
 any sequences named by the \*(lqUnseen\-Sequence\*(rq entry in the
 profile.
-
+.SS Sequence File Locking
+The \*(lqdatalocking\*(rq profile entry controls the type of locking used
+when reading and writing sequence files.  The locking mechanisms supported
+are detailed in
+.IR mh\-profile (5).
+This protects sequence file integrity when multiple
+.B nmh
+commands are run simultaneously.
+.B Nmh
+commands that modify the sequence file use transactional locks; the lock
+is held from the time the sequence file is read until it it written out.
+This ensures that modifications to the sequence file will not be lost
+if multiple commands are run simultaneously.  Long\-running
+.B nmh
+commands, such as
+.B inc
+and
+.BR pick ,
+will release the sequence lock during the bulk of their runtime and reread
+the sequence file after their processing is complete to reduce lock
+contention time.
+.PP
+.B Note:
+Currently transactional locks are
+.B only
+supported for public sequences; private sequences will not get corrupted, but
+the possibility exists that two
+.B nmh
+commands run simultaneously that add messages to a private sequence could result in
+one command's messages not appearing on the requested sequence.
 .SH FILES
 .fc ^ ~
 .nf
@@ -269,7 +309,6 @@ profile.
 ^<mh\-dir>/context~^The user context
 ^<folder>/\&.mh\(rusequences~^File for public sequences
 .fi
-
 .SH "PROFILE COMPONENTS"
 .fc ^ ~
 .nf
@@ -280,9 +319,10 @@ profile.
 ^Previous\-Sequence:~^The last message specification given
 ^Unseen\-Sequence:~^Those messages not yet seen by the user
 .fi
-
 .SH "SEE ALSO"
-flist(1), mark(1), pick(1), mh-profile(5)
-
+.IR flist (1),
+.IR mark (1),
+.IR pick (1),
+.IR mh-profile (5)
 .SH DEFAULTS
 None