handle hard links on systems with 16 bit ino_t
[rsync/rsync.git] / rsync.h
diff --git a/rsync.h b/rsync.h
index 345144d..b294513 100644 (file)
--- a/rsync.h
+++ b/rsync.h
 #endif
 
 #include <sys/types.h>
+
+#ifdef HAVE_GETOPT_LONG
+#include <getopt.h>
+#else
+#include "lib/getopt.h"
+#endif
+
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 #include "lib/fnmatch.h"
 #endif
 
-#ifdef HAVE_GETOPT_LONG
-#include <getopt.h>
-#else
-#include "lib/getopt.h"
-#endif
-
 #ifdef HAVE_GLOB
 #include <glob.h>
 #endif
 #define NO_INT64
 #endif
 
+#if HAVE_SHORT_INO_T
+#define INO_T uint32
+#else
+#define INO_T ino_t
+#endif
+
 #ifndef MIN
 #define MIN(a,b) ((a)<(b)?(a):(b))
 #endif
@@ -283,7 +290,7 @@ struct file_struct {
        time_t modtime;
        OFF_T length;
        mode_t mode;
-       ino_t inode;
+       INO_T inode;
        dev_t dev;
        dev_t rdev;
        uid_t uid;
@@ -302,11 +309,11 @@ struct file_list {
 };
 
 struct sum_buf {
-  OFF_T offset;                        /* offset in file of this chunk */
-  int len;                     /* length of chunk of file */
-  int i;                       /* index of this chunk */
-  uint32 sum1;                 /* simple checksum */
-  char sum2[SUM_LENGTH];       /* checksum  */
+       OFF_T offset;           /* offset in file of this chunk */
+       int len;                /* length of chunk of file */
+       int i;                  /* index of this chunk */
+       uint32 sum1;            /* simple checksum */
+       char sum2[SUM_LENGTH];  /* checksum  */
 };
 
 struct sum_struct {
@@ -437,3 +444,6 @@ extern int errno;
 
 #define IS_DEVICE(mode) (S_ISCHR(mode) || S_ISBLK(mode) || S_ISSOCK(mode) || S_ISFIFO(mode))
 
+#ifndef ACCESSPERMS
+#define ACCESSPERMS 0777
+#endif