Fix --remove-source-files sanity check w/--copy-links the right way.
[rsync.git] / rsync.h
diff --git a/rsync.h b/rsync.h
index fcb4c267933d482d8d87370f99ce17e2ebb74c60..53fff2d630f4a1f7036d06c01459c58698906381 100644 (file)
--- a/rsync.h
+++ b/rsync.h
@@ -2,7 +2,7 @@
  * Copyright (C) 1996, 2000 Andrew Tridgell
  * Copyright (C) 1996 Paul Mackerras
  * Copyright (C) 2001, 2002 Martin Pool <mbp@samba.org>
- * Copyright (C) 2003-2013 Wayne Davison
+ * Copyright (C) 2003-2018 Wayne Davison
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 
 #define ATTRS_REPORT           (1<<0)
 #define ATTRS_SKIP_MTIME       (1<<1)
+#define ATTRS_SET_NANO         (1<<2)
 
 #define FULL_FLUSH     1
 #define NORMAL_FLUSH   0
 #define CFN_KEEP_TRAILING_SLASH (1<<1)
 #define CFN_DROP_TRAILING_DOT_DIR (1<<2)
 #define CFN_COLLAPSE_DOT_DOT_DIRS (1<<3)
+#define CFN_REFUSE_DOT_DOT_DIRS (1<<4)
 
 #define SP_DEFAULT 0
 #define SP_KEEP_DOT_DIRS (1<<0)
@@ -371,7 +373,7 @@ enum delret {
 #include <utime.h>
 #endif
 
-#if defined HAVE_UTIMENSAT || defined HAVE_LUTIMES
+#if defined HAVE_UTIMENSAT || defined HAVE_LUTIMES || defined HAVE_SETATTRLIST
 #define CAN_SET_SYMLINK_TIMES 1
 #endif
 
@@ -383,11 +385,17 @@ enum delret {
 #define CAN_CHMOD_SYMLINK 1
 #endif
 
-#ifdef HAVE_UTIMENSAT
+#if defined HAVE_UTIMENSAT || defined HAVE_SETATTRLIST
+#define CAN_SET_NSEC 1
+#endif
+
+#ifdef CAN_SET_NSEC
 #ifdef HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC
 #define ST_MTIME_NSEC st_mtim.tv_nsec
 #elif defined(HAVE_STRUCT_STAT_ST_MTIMENSEC)
 #define ST_MTIME_NSEC st_mtimensec
+#elif defined(HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC)
+#define ST_MTIME_NSEC st_mtimespec.tv_nsec
 #endif
 #endif
 
@@ -787,6 +795,8 @@ extern int xattrs_ndx;
 #define DIR_FIRST_CHILD(a) (a)[1]
 #define DIR_NEXT_SIBLING(a) (a)[2]
 
+#define IS_MISSING_FILE(statbuf) ((statbuf).st_mode == 0)
+
 /*
  * Start the flist array at FLIST_START entries and grow it
  * by doubling until FLIST_LINEAR then grow by FLIST_LINEAR
@@ -853,6 +863,10 @@ struct map_struct {
        int status;             /* first errno from read errors         */
 };
 
+#define NAME_IS_FILE           (0)    /* filter name as a file */
+#define NAME_IS_DIR            (1<<0) /* filter name as a dir */
+#define NAME_IS_XATTR          (1<<2) /* filter name as an xattr */
+
 #define FILTRULE_WILD          (1<<0) /* pattern has '*', '[', and/or '?' */
 #define FILTRULE_WILD2         (1<<1) /* pattern has '**' */
 #define FILTRULE_WILD2_PREFIX  (1<<2) /* pattern starts with "**" */
@@ -873,6 +887,7 @@ struct map_struct {
 #define FILTRULE_RECEIVER_SIDE (1<<17)/* rule applies to the receiving side */
 #define FILTRULE_CLEAR_LIST    (1<<18)/* this item is the "!" token */
 #define FILTRULE_PERISHABLE    (1<<19)/* perishable if parent dir goes away */
+#define FILTRULE_XATTR         (1<<20)/* rule only applies to xattr names */
 
 #define FILTRULES_SIDES (FILTRULE_SENDER_SIDE | FILTRULE_RECEIVER_SIDE)
 
@@ -889,7 +904,6 @@ typedef struct filter_struct {
 typedef struct filter_list_struct {
        filter_rule *head;
        filter_rule *tail;
-       filter_rule *parent_dirscan_head;
        char *debug_type;
 } filter_rule_list;