.RE
.PP
.BR Sequence\-Negation :
-not
+\&!
.RS 5
Defines the string which, when prefixed to a sequence name, negates
-that sequence. Hence, \*(lqnotseen\*(rq means all those messages that
-are not a member of the sequence \*(lqseen\*(rq. Read the
+that sequence. Hence, \*(lq!foo\*(rq means all those messages that
+are not a member of the sequence \*(lqfoo\*(rq.
+To deactivate this mechanism, define Sequence\-Negation to an empty value.
+Read the
.BR mh\-sequence (7)
-man page for the details. (profile, no default)
+man page for the details. (profile, default: !)
.RE
.PP
.BR Unseen\-Sequence :
.SS "Sequence Negation"
.B Nmh
-provides the ability to select all messages not elements of a
-user-defined sequence. To do this, the user should define the entry
+provides the ability to select all messages
+.B not
+elements of a user-defined sequence.
+A special string is used to preface an existing user-defined
+sequence name. This specification then refers to those
+messages not elements of the specified sequence name.
+The default negation prefix is the exlamation mark `!',
+but it may be change to any string, by defining the entry
\*(lqSequence\-Negation\*(rq in the
.B nmh
-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:
+profile file.
+For example, if the profile entry is:
.PP
.RS 5
Sequence\-Negation: not
.PP
Obviously, the user should beware of defining sequences with names that
begin with the value of the \*(lqSequence\-Negation\*(rq profile entry.
+The default value `!' was chosen due to its similar meaning in the C
+programming language, and because it cannot be part of a user-defined
+sequence. But if your shell provides history expansion,
+you might need to quote the exlamation mark (prefix it with a backslash).
+.PP
+To deactivate the negation mechanism, define Sequence\-Negation in your
+profile to an empty value.
.SS "The Previous Sequence"
.B Nmh
return 0;
/* Check for sequence negation */
- if ((dp = context_find(nsequence)) && *dp != '\0' &&
- isprefix(dp, cp)) {
+ if (!(dp = context_find(nsequence))) {
+ dp = seq_neg; /* use default */
+ }
+ if (dp && *dp && isprefix(dp, cp)) {
inverted = 1;
cp += strlen(dp);
}