handle OSes (such as Unicos) which use a different value for S_IFLNK
[rsync/rsync.git] / rsync.h
diff --git a/rsync.h b/rsync.h
index ef7ea88..982eb22 100644 (file)
--- a/rsync.h
+++ b/rsync.h
 #endif
 
 
-#ifndef S_IFLNK
-#define S_IFLNK  0120000
-#endif
-
-#ifndef S_ISLNK
-#define S_ISLNK(mode) (((mode) & S_IFLNK) == S_IFLNK)
-#endif
-
 #define BOOL int
 
 #ifndef uchar
@@ -409,6 +401,18 @@ extern int errno;
 #define S_IWUSR 0200
 #endif
 
+#ifndef _S_IFMT
+#define _S_IFMT        0170000
+#endif
+
+#ifndef _S_IFLNK
+#define _S_IFLNK  0120000
+#endif
+
+#ifndef S_ISLNK
+#define S_ISLNK(mode) (((mode) & (_S_IFMT)) == (_S_IFLNK))
+#endif
+
 #ifndef S_ISBLK
 #define S_ISBLK(mode) (((mode) & (_S_IFMT)) == (_S_IFBLK))
 #endif