Add support for -k (checking sticky bit) to test(1)
This commit is contained in:
parent
11c078d116
commit
c23616555b
3
test.1
3
test.1
|
@ -29,6 +29,9 @@ ILE exists and is a regular file
|
||||||
.B \-g FILE
|
.B \-g FILE
|
||||||
FILE exists and is set-group-ID
|
FILE exists and is set-group-ID
|
||||||
.TP
|
.TP
|
||||||
|
.B \-k FILE
|
||||||
|
FILE exists and its sticky bit is set
|
||||||
|
.TP
|
||||||
.B \-h FILE
|
.B \-h FILE
|
||||||
FILE exists and is a symbolic link (same as -L)
|
FILE exists and is a symbolic link (same as -L)
|
||||||
.TP
|
.TP
|
||||||
|
|
6
test.c
6
test.c
|
@ -57,7 +57,7 @@ unary(const char *op, const char *arg)
|
||||||
usage();
|
usage();
|
||||||
switch(op[1]) {
|
switch(op[1]) {
|
||||||
case 'b': case 'c': case 'd': case 'f': case 'g':
|
case 'b': case 'c': case 'd': case 'f': case 'g':
|
||||||
case 'p': case 'S': case 's': case 'u':
|
case 'k': case 'p': case 'S': case 's': case 'u':
|
||||||
if((r = stat(arg, &st)) == -1)
|
if((r = stat(arg, &st)) == -1)
|
||||||
return false; /* -e */
|
return false; /* -e */
|
||||||
switch(op[1]) {
|
switch(op[1]) {
|
||||||
|
@ -71,6 +71,8 @@ unary(const char *op, const char *arg)
|
||||||
return S_ISREG(st.st_mode);
|
return S_ISREG(st.st_mode);
|
||||||
case 'g':
|
case 'g':
|
||||||
return st.st_mode & S_ISGID;
|
return st.st_mode & S_ISGID;
|
||||||
|
case 'k':
|
||||||
|
return st.st_mode & S_ISVTX;
|
||||||
case 'p':
|
case 'p':
|
||||||
return S_ISFIFO(st.st_mode);
|
return S_ISFIFO(st.st_mode);
|
||||||
case 'S':
|
case 'S':
|
||||||
|
@ -153,5 +155,5 @@ usage(void)
|
||||||
const char *ket = (*argv0 == '[') ? " ]" : "";
|
const char *ket = (*argv0 == '[') ? " ]" : "";
|
||||||
|
|
||||||
eprintf("usage: %s string%s\n"
|
eprintf("usage: %s string%s\n"
|
||||||
" %s [!] [-bcdefghLnprSstuwxz] string%s\n", argv0, ket, argv0, ket);
|
" %s [!] [-bcdefgkhLnprSstuwxz] string%s\n", argv0, ket, argv0, ket);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user