Xinqi Bao's Git
projects
/
dmenu.git
/ commitdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
patch
|
inline
| side by side (from parent 1:
13f7873
)
applied Martin Kühl's inverse matching flag to stest
author
Anselm R Garbe <
[email protected]
>
Tue, 13 Aug 2013 17:15:04 +0000
(19:15 +0200)
committer
Anselm R Garbe <
[email protected]
>
Tue, 13 Aug 2013 17:15:04 +0000
(19:15 +0200)
stest.1
patch
|
blob
|
history
stest.c
patch
|
blob
|
history
diff --git
a/stest.1
b/stest.1
index
bb48f45
..
2667d8a
100644
(file)
--- a/
stest.1
+++ b/
stest.1
@@
-67,6
+67,9
@@
Test that files are not empty.
.B \-u
Test that files have their set-user-ID flag set.
.TP
.B \-u
Test that files have their set-user-ID flag set.
.TP
+.B \-v
+Invert the sense of tests, only failing files pass.
+.TP
.B \-w
Test that files are writable.
.TP
.B \-w
Test that files are writable.
.TP
diff --git
a/stest.c
b/stest.c
index
e1dcf36
..
8fac42a
100644
(file)
--- a/
stest.c
+++ b/
stest.c
@@
-22,7
+22,7
@@
main(int argc, char *argv[]) {
DIR *dir;
int opt;
DIR *dir;
int opt;
- while((opt = getopt(argc, argv, "abcdefghln:o:pqrsuwx")) != -1)
+ while((opt = getopt(argc, argv, "abcdefghln:o:pqrsu
v
wx")) != -1)
switch(opt) {
case 'n': /* newer than file */
case 'o': /* older than file */
switch(opt) {
case 'n': /* newer than file */
case 'o': /* older than file */
@@
-33,7
+33,7
@@
main(int argc, char *argv[]) {
FLAG(opt) = true;
break;
case '?': /* error: unknown flag */
FLAG(opt) = true;
break;
case '?': /* error: unknown flag */
- fprintf(stderr, "usage: %s [-abcdefghlpqrsuwx] [-n file] [-o file] [file...]\n", argv[0]);
+ fprintf(stderr, "usage: %s [-abcdefghlpqrsu
v
wx] [-n file] [-o file] [file...]\n", argv[0]);
exit(2);
}
if(optind == argc)
exit(2);
}
if(optind == argc)
@@
-60,7
+60,7
@@
void
test(const char *path, const char *name) {
struct stat st, ln;
test(const char *path, const char *name) {
struct stat st, ln;
- if(
!stat(path, &st) && (FLAG('a') || name[0] != '.')
/* hidden files */
+ if(
(!stat(path, &st) && (FLAG('a') || name[0] != '.')
/* hidden files */
&& (!FLAG('b') || S_ISBLK(st.st_mode)) /* block special */
&& (!FLAG('c') || S_ISCHR(st.st_mode)) /* character special */
&& (!FLAG('d') || S_ISDIR(st.st_mode)) /* directory */
&& (!FLAG('b') || S_ISBLK(st.st_mode)) /* block special */
&& (!FLAG('c') || S_ISCHR(st.st_mode)) /* character special */
&& (!FLAG('d') || S_ISDIR(st.st_mode)) /* directory */
@@
-75,7
+75,7
@@
test(const char *path, const char *name) {
&& (!FLAG('s') || st.st_size > 0) /* not empty */
&& (!FLAG('u') || st.st_mode & S_ISUID) /* set-user-id flag */
&& (!FLAG('w') || access(path, W_OK) == 0) /* writable */
&& (!FLAG('s') || st.st_size > 0) /* not empty */
&& (!FLAG('u') || st.st_mode & S_ISUID) /* set-user-id flag */
&& (!FLAG('w') || access(path, W_OK) == 0) /* writable */
- && (!FLAG('x') || access(path, X_OK) == 0))
{
/* executable */
+ && (!FLAG('x') || access(path, X_OK) == 0))
!= FLAG('v')) {
/* executable */
if(FLAG('q'))
exit(0);
match = true;
if(FLAG('q'))
exit(0);
match = true;