summaryrefslogtreecommitdiff
path: root/compat/mingw.c
diff options
context:
space:
mode:
authorJohannes Sixt <j6t@kdbg.org>2010-02-25 20:03:44 (GMT)
committerJunio C Hamano <gitster@pobox.com>2010-02-25 20:27:38 (GMT)
commit3fdcdbdf301dadb7af58fe038501f0af6419a2e0 (patch)
treea93e6858dfc1b9db2bd6fd71eff8a3ece8d2f9d5 /compat/mingw.c
parent251a4951a20b23760c3ccf3f3122d4394ab37357 (diff)
downloadgit-3fdcdbdf301dadb7af58fe038501f0af6419a2e0.zip
git-3fdcdbdf301dadb7af58fe038501f0af6419a2e0.tar.gz
git-3fdcdbdf301dadb7af58fe038501f0af6419a2e0.tar.bz2
Windows: redirect f[re]open("/dev/null") to f[re]open("nul")
On Windows, the equivalent of "/dev/null" is "nul". This implements compatibility wrappers around fopen() and freopen() that check for this particular file name. The new tests exercise code paths where this is relevant. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'compat/mingw.c')
-rw-r--r--compat/mingw.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/compat/mingw.c b/compat/mingw.c
index ab65f77..c5bfb39 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -140,6 +140,22 @@ int mingw_open (const char *filename, int oflags, ...)
return fd;
}
+#undef fopen
+FILE *mingw_fopen (const char *filename, const char *otype)
+{
+ if (!strcmp(filename, "/dev/null"))
+ filename = "nul";
+ return fopen(filename, otype);
+}
+
+#undef freopen
+FILE *mingw_freopen (const char *filename, const char *otype, FILE *stream)
+{
+ if (filename && !strcmp(filename, "/dev/null"))
+ filename = "nul";
+ return freopen(filename, otype, stream);
+}
+
/*
* The unit of FILETIME is 100-nanoseconds since January 1, 1601, UTC.
* Returns the 100-nanoseconds ("hekto nanoseconds") since the epoch.