Hello,
this patch adds the -not operator to find(1).
I personally always found -not easier to use due to shell
escaping, but today may laziness has bitten back.
And "it's just one more non-POSIX-compliant option".
--steffen
Index: usr.bin/find/find.1
===================================================================
RCS file: /Users/steffen/arena/code.openbsd/src/usr.bin/find/find.1,v
retrieving revision 1.85
diff -a -p -u -r1.85 find.1
--- usr.bin/find/find.1 5 Jan 2012 13:16:10 -0000 1.85
+++ usr.bin/find/find.1 27 Feb 2012 18:11:14 -0000
@@ -520,6 +520,7 @@ This evaluates to true if the parenthesi
true.
.Pp
.It Cm \&! Ar expression
+.It Cm -not Ar expression
This is the unary
.Tn NOT
operator.
@@ -607,8 +608,8 @@ utility is compliant with the
specification.
.Pp
The options
-.Op Fl dfhXx
-and primaries
+.Op Fl dfhXx ,
+primaries
.Ic -amin ,
.Ic -anewer ,
.Ic -cmin ,
@@ -626,6 +627,8 @@ and primaries
.Ic -mmin ,
and
.Ic -print0
+and the operator
+.Ic Cm -not
are extensions to that specification.
The
.Ic -iname
Index: usr.bin/find/function.c
===================================================================
RCS file: /Users/steffen/arena/code.openbsd/src/usr.bin/find/function.c,v
retrieving revision 1.38
diff -a -p -u -r1.38 function.c
--- usr.bin/find/function.c 5 Jan 2012 10:21:33 -0000 1.38
+++ usr.bin/find/function.c 27 Feb 2012 17:58:28 -0000
@@ -1542,7 +1542,7 @@ c_closeparen(char *ignore, char ***ignor
}
/*
- * ! expression functions --
+ * ! expression/-not expression functions --
*
* Negation of a primary; the unary NOT operator.
*/
Index: usr.bin/find/option.c
===================================================================
RCS file: /Users/steffen/arena/code.openbsd/src/usr.bin/find/option.c,v
retrieving revision 1.18
diff -a -p -u -r1.18 option.c
--- usr.bin/find/option.c 27 Oct 2009 23:59:38 -0000 1.18
+++ usr.bin/find/option.c 27 Feb 2012 17:57:45 -0000
@@ -79,6 +79,7 @@ static OPTION options[] = {
{ "-name", N_NAME, c_name, O_ARGV },
{ "-newer", N_NEWER, c_newer, O_ARGV },
{ "-nogroup", N_NOGROUP, c_nogroup, O_ZERO },
+ { "-not", N_NOT, c_not, O_ZERO },
{ "-nouser", N_NOUSER, c_nouser, O_ZERO },
{ "-o", N_OR, c_or, O_ZERO },
{ "-ok", N_OK, c_exec, O_ARGVP },