Undef DT_* before redefining them.
authorJunio C Hamano <junkio@cox.net>
Fri, 20 Jan 2006 21:33:20 +0000 (13:33 -0800)
committerJunio C Hamano <junkio@cox.net>
Sun, 22 Jan 2006 03:33:22 +0000 (19:33 -0800)
When overriding DT_* macro detection with NO_D_TYPE_IN_DIRENT (recent
Cygwin build problem, which hopefully is already fixed in their CVS
snapshot version), we define DTYPE() macro to return just "we do not
know", but still needed to use DT_* macro to avoid ifdef in the code
we use them.  If the platform defines DT_* macro but with unusable
d_type, this would have resulted in us redefining these preprocessor
symbols.

Admittedly, that would be just a couple of compilation warnings, and
on Cygwin at least this particular problem is transitory (the problem
is already fixed in their CVS snapshot version), so this is a low
priority fix.

Signed-off-by: Junio C Hamano <junkio@cox.net>
cache.h

diff --git a/cache.h b/cache.h
index 3d79c55a297ab8f9854cb29c89a6fac4117403af..b493b65b74d31aa146ac3af80c5cd24967bce816 100644 (file)
--- a/cache.h
+++ b/cache.h
 #if defined(DT_UNKNOWN) && !NO_D_TYPE_IN_DIRENT
 #define DTYPE(de)      ((de)->d_type)
 #else
+#undef DT_UNKNOWN
+#undef DT_DIR
+#undef DT_REG
+#undef DT_LNK
 #define DT_UNKNOWN     0
 #define DT_DIR         1
 #define DT_REG         2