diff options
author | Marius Storm-Olsen <marius.storm-olsen@nokia.com> | 2009-09-16 10:20:20 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-09-18 20:00:42 -0700 |
commit | a6ca8c62467570d5d227eba4f2b838ce4b9940e8 (patch) | |
tree | f2e77f5142850d4987fb7434b1c0074091184195 | |
parent | Change regerror() declaration from K&R style to ANSI C (C89) (diff) | |
download | tgif-a6ca8c62467570d5d227eba4f2b838ce4b9940e8.tar.xz |
Set _O_BINARY as default fmode for both MinGW and MSVC
MinGW set the _CRT_fmode to set both the default fmode and _O_BINARY on
stdin/stdout/stderr. Rather use the main() define in mingw.h to set this
for both MinGW and MSVC.
This will ensure that a MinGW and MSVC build will handle input and output
identically.
Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | compat/mingw.c | 2 | ||||
-rw-r--r-- | compat/mingw.h | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/compat/mingw.c b/compat/mingw.c index 5478b747ce..5a8fae8b31 100644 --- a/compat/mingw.c +++ b/compat/mingw.c @@ -3,8 +3,6 @@ #include <conio.h> #include "../strbuf.h" -unsigned int _CRT_fmode = _O_BINARY; - static int err_win_to_posix(DWORD winerr) { int error = ENOSYS; diff --git a/compat/mingw.h b/compat/mingw.h index c43917cd6e..bcd23b0a45 100644 --- a/compat/mingw.h +++ b/compat/mingw.h @@ -227,12 +227,17 @@ void free_environ(char **env); /* * A replacement of main() that ensures that argv[0] has a path + * and that default fmode and std(in|out|err) are in binary mode */ #define main(c,v) dummy_decl_mingw_main(); \ static int mingw_main(); \ int main(int argc, const char **argv) \ { \ + _fmode = _O_BINARY; \ + _setmode(_fileno(stdin), _O_BINARY); \ + _setmode(_fileno(stdout), _O_BINARY); \ + _setmode(_fileno(stderr), _O_BINARY); \ argv[0] = xstrdup(_pgmptr); \ return mingw_main(argc, argv); \ } \ |