const char *p;
int no = 0;
- if (needle_len >= 2 && !strncmp(needle, "no", 2)) {
+ if (needle_len >= 1 && *needle == '+') {
+ needle++;
+ needle_len--;
+ } else if (needle_len >= 2 && !strncmp(needle, "no", 2)) {
no = 1;
needle += 2;
needle_len -= 2;
* Unlike fs type matching, nonetdev,user and nonetdev,nouser have
* DIFFERENT meanings; each option is matched explicitly as specified.
*
+ * The "no" prefix interpretation could be disable by "+" prefix, for example
+ * "+noauto" matches if @optstr literally contains "noauto" string.
+ *
* "xxx,yyy,zzz" : "nozzz" -> False
*
* "xxx,yyy,zzz" : "xxx,noeee" -> True
*
+ * "bar,zzz" : "nofoo" -> True
+ *
+ * "nofoo,bar" : "+nofoo" -> True
+ *
+ * "bar,zzz" : "+nofoo" -> False
+ *
+ *
* Returns: 1 if pattern is matching, else 0. This function also returns 0
* if @pattern is NULL and @optstr is non-NULL.
*/
.B \-t
in that each option is matched exactly; a leading
.I no
-at the beginning
-of one option does not negate the rest. For more details see
-.BR mount (8).
+at the beginning does not have global meaning. The "no" could used for
+individual items in the list. The "no" prefix interpratation could be disabled
+by "+" prefix.
.IP "\fB\-o, \-\-output \fIlist\fP"
Define output columns. Currently supported are
.BR ACTION,