summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/test.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/test.c b/src/test.c
index 9421fea10..4fc35bbaf 100644
--- a/src/test.c
+++ b/src/test.c
@@ -824,23 +824,31 @@ unary_operator ()
case 'u': /* File is setuid? */
unary_advance ();
+#ifndef S_ISUID
+ return (FALSE);
+#else
if (test_stat (argv[pos - 1], &stat_buf) < 0)
return (FALSE);
return (TRUE == (0 != (stat_buf.st_mode & S_ISUID)));
+#endif
case 'g': /* File is setgid? */
unary_advance ();
+#ifndef S_ISGID
+ return (FALSE);
+#else
if (test_stat (argv[pos - 1], &stat_buf) < 0)
return (FALSE);
return (TRUE == (0 != (stat_buf.st_mode & S_ISGID)));
+#endif
case 'k': /* File has sticky bit set? */
unary_advance ();
if (test_stat (argv[pos - 1], &stat_buf) < 0)
return (FALSE);
-#if !defined (S_ISVTX)
+#ifndef S_ISVTX
/* This is not Posix, and is not defined on some Posix systems. */
return (FALSE);
#else