Call setgroups(1, &gid) after setting the gid (rather than calling
[rsync/rsync.git] / rsync.h
diff --git a/rsync.h b/rsync.h
index e3cbe57..52b3e70 100644 (file)
--- a/rsync.h
+++ b/rsync.h
 
 #define MPLEX_BASE 7
 
+#define NO_EXCLUDES    0
+#define SERVER_EXCLUDES        1
+#define ALL_EXCLUDES   2
+
+#define MISSING_OK    0
+#define MISSING_FATAL 1
+
+#define ADD_INCLUDE 1
+#define ADD_EXCLUDE 0
+
 /* Log values.  I *think* what these mean is: FLOG goes to the server
  * logfile; FERROR and FINFO try to end up on the client, with
  * different levels of filtering. */
@@ -182,12 +192,6 @@ enum logcode {FNONE=0, FERROR=1, FINFO=2, FLOG=3 };
 #endif
 #endif
 
-#ifdef HAVE_FNMATCH
-#include <fnmatch.h>
-#else
-#include "lib/fnmatch.h"
-#endif
-
 #ifdef HAVE_GLOB_H
 #include <glob.h>
 #endif
@@ -421,13 +425,16 @@ struct map_struct {
        OFF_T file_size, p_offset, p_fd_offset;
 };
 
+#define MATCHFLG_WILD          0x0001 /* pattern has '*', '[', and/or '?' */
+#define MATCHFLG_WILD2         0x0002 /* pattern has '**' */
+#define MATCHFLG_WILD2_PREFIX  0x0004 /* pattern starts with '**' */
+#define MATCHFLG_ABS_PATH      0x0008 /* path-match on absolute path */
 struct exclude_struct {
        char *pattern;
-       int regular_exp;
-       int fnmatch_flags;
+       int match_flags;
        int include;
        int directory;
-       int local;
+       int slash_cnt;
 };
 
 struct stats {
@@ -454,6 +461,7 @@ static inline int flist_up(struct file_list *flist, int i)
 
 #include "byteorder.h"
 #include "lib/mdfour.h"
+#include "lib/wildmatch.h"
 #include "lib/permstring.h"
 #include "lib/addrinfo.h"
 
@@ -468,11 +476,13 @@ int asprintf(char **ptr, const char *format, ...);
 int vasprintf(char **ptr, const char *format, va_list ap);
 #endif
 
-#if !defined(HAVE_VSNPRINTF) && !defined(HAVE_C99_VSNPRINTF)
-int vsnprintf (char *str, size_t count, const char *fmt, va_list args);
+#if !defined(HAVE_VSNPRINTF) || !defined(HAVE_C99_VSNPRINTF)
+#define vsnprintf rsync_vsnprintf
+int vsnprintf(char *str, size_t count, const char *fmt, va_list args);
 #endif
 
-#if !defined(HAVE_SNPRINTF) && !defined(HAVE_C99_VSNPRINTF)
+#if !defined(HAVE_SNPRINTF) || !defined(HAVE_C99_VSNPRINTF)
+#define snprintf rsync_snprintf
 int snprintf(char *str,size_t count,const char *fmt,...);
 #endif