This is to avoid spreading #ifdef HAVE_INOTIFY around and keep most
code compiled even if it's never active.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclo...@gmail.com>
---
 config.mak.uname  |  1 +
 git-compat-util.h | 43 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+)

diff --git a/config.mak.uname b/config.mak.uname
index 7d31fad..ee548f5 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -33,6 +33,7 @@ ifeq ($(uname_S),Linux)
        HAVE_PATHS_H = YesPlease
        LIBC_CONTAINS_LIBINTL = YesPlease
        HAVE_DEV_TTY = YesPlease
+       BASIC_CFLAGS += -DHAVE_INOTIFY
 endif
 ifeq ($(uname_S),GNU/kFreeBSD)
        NO_STRLCPY = YesPlease
diff --git a/git-compat-util.h b/git-compat-util.h
index cbd86c3..8b55dd0 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -128,6 +128,9 @@
 #else
 #include <poll.h>
 #endif
+#ifdef HAVE_INOTIFY
+#include <sys/inotify.h>
+#endif
 
 #if defined(__MINGW32__)
 /* pull in Windows compatibility stuff */
@@ -721,4 +724,44 @@ void warn_on_inaccessible(const char *path);
 /* Get the passwd entry for the UID of the current process. */
 struct passwd *xgetpwuid_self(void);
 
+#ifndef HAVE_INOTIFY
+/* Keep inotify-specific code build, even if it's not used */
+
+#define IN_DELETE_SELF 1
+#define IN_MOVE_SELF   2
+#define IN_ATTRIB      4
+#define IN_DELETE      8
+#define IN_MODIFY      16
+#define IN_MOVED_FROM  32
+#define IN_MOVED_TO    64
+#define IN_Q_OVERFLOW  128
+#define IN_UNMOUNT     256
+#define IN_CREATE      512
+#define IN_ISDIR       1024
+#define IN_IGNORED     2048
+
+struct inotify_event {
+       int event, mask, wd, len;
+       char name[FLEX_ARRAY];
+};
+
+static inline int inotify_init()
+{
+       errno = ENOSYS;
+       return -1;
+}
+
+static inline int inotify_add_watch(int fd, const char *path, int options)
+{
+       errno = ENOSYS;
+       return -1;
+}
+
+static inline int inotify_rm_watch(int fd, int wd)
+{
+       errno = ENOSYS;
+       return -1;
+}
+#endif
+
 #endif
-- 
1.8.5.2.240.g8478abd

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to