.\" @(#)$Id: mark.rf,v 1.7 1992/02/12 00:23:13 jromine Exp $
mark \- mark messages
\%[+folder] \%[msgs]
\%[\-sequence\ name\ ...]
\%[\-add] \%[\-delete] \%[\-list] 
\%[\-public] \%[\-nopublic]
\%[\-zero] \%[\-nozero]
The \fImark\fR command manipulates message sequences by adding or
deleting message numbers from folder\-specific message sequences,
or by listing those sequences and messages.
A message sequence is a keyword, just like one of the
\*(lqreserved\*(rq message names,
such as \*(lqfirst\*(rq or \*(lqnext\*(rq.
Unlike the \*(lqreserved\*(rq message names,
which have a fixed semantics on a per\-folder basis,
the semantics of a message sequence may be defined, modified, and
removed by the user.
Message sequences are folder\-specific, e.g.,
the sequence name \*(lqseen\*(rq in the context of folder \*(lq+inbox\*(rq
need not have any relation whatsoever to the sequence of the same name
in a folder of a different name.

Three action switches direct the operation of \fImark\fR.
These switches are mutually exclusive:
the last occurrence of any of them overrides any previous occurrence of the
other two.

The `\-add' switch tells \fImark\fR to add messages to sequences
or to create a new sequence.
For each sequence named via the `\-sequence\ name' argument
(which must occur at least once)
the messages named via `msgs'
(which defaults to \*(lqcur\*(rq if no `msgs' are given),
are added to the sequence.
The messages to be added need not be absent from the sequence.
If the `\-zero' switch is specified,
the sequence will be emptied prior to adding the messages.
Hence, `\-add\ \-zero' means that each sequence should be initialized
to the indicated messages,
while `\-add\ \-nozero' means that each sequence should be appended to
by the indicated messages.

The `\-delete' switch tells \fImark\fR to delete messages from
sequences, and is the dual of `\-add'.
For each of the named sequences,
the named messages are removed from the sequence.
These messages need not be already present in the sequence.
If the `\-zero' switch is specified,
then all messages in the folder are appended to the sequence prior to
removing the messages.
Hence, `\-delete\ \-zero' means that each sequence should contain all
messages except those indicated,
while `\-delete\ \-nozero' means that only the indicated messages
should be removed from each sequence.
As expected, the command `mark\0\-sequence\0seen\0\-delete\0all'
deletes the sequence \*(lqseen\*(rq from the current folder.

When creating (or modifying) a sequence,
the `\-public' switch indicates that the sequence should be made readable
for other \fIMH\fR users.
In contrast, the `\-nopublic' switch indicates that the sequence should be
private to the user's \fIMH\fR environment.

The `\-list' switch tells \fImark\fR to list both the sequences defined
for the folder and the messages associated with those sequences.
\fIMark\fR will list the name of each sequence given by
`\-sequence\ name' and the messages associated with that sequence.
If `\-sequence' isn't used, all sequences will be listed,
with private sequences being so indicated.
The `\-zero' switch does not affect the operation of `\-list'.

The current restrictions on sequences are:

.in +.25i
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
(e.g., \*(lqfirst\*(rq, \*(lqcur\*(rq, and so forth).

Only a certain number of sequences may be defined for a given folder.
This number is usually limited to 26 (10 on small systems).

Message ranges with user\-defined 
sequence names are restricted to the form \*(lqname:n\*(rq or
\*(lqname:-n\*(rq, and refer to the first or last `n' messages
of the sequence `name', respectively.
Constructs of the form \*(lqname1\-name2\*(rq are forbidden.
.in -.25i
^$HOME/\&.mh\(ruprofile~^The user profile
^Path:~^To determine the user's MH directory
^Current\-Folder:~^To find the default current folder
pick (1), mh-sequence (5)
`+folder' defaults to the current folder
`\-add' if `\-sequence' is specified, `\-list' otherwise
`msgs' defaults to cur (or all if `\-list' is specified)
`\-nopublic' if the folder is read\-only, `\-public' otherwise
If a folder is given, it will become the current folder.
Use \*(lqpick sequence \-list\*(rq
to enumerate the messages in a sequence (such as for use 
by a shell script).