From: Marius Storm-Olsen <mstormo@gmail.com>
To: Johannes.Schindelin@gmx.de
Cc: msysgit@googlegroups.com, git@vger.kernel.org, lznuaa@gmail.com,
raa.lkml@gmail.com, snaury@gmail.com,
Marius Storm-Olsen <mstormo@gmail.com>
Subject: [PATCH 04/14] Set _O_BINARY as default fmode for both MinGW and MSVC
Date: Tue, 15 Sep 2009 15:44:07 +0200 [thread overview]
Message-ID: <badc5d24387c28c752a45f75e8aec6bce64f81fe.1253021728.git.mstormo@gmail.com> (raw)
In-Reply-To: <6e6345fb3fbc19b1a2467e33e1633fe9025e547b.1253021728.git.mstormo@gmail.com>
In-Reply-To: <cover.1253021728.git.mstormo@gmail.com>
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>
---
compat/mingw.c | 2 --
compat/mingw.h | 8 ++++++++
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/compat/mingw.c b/compat/mingw.c
index 5478b74..5a8fae8 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 c43917c..384b667 100644
--- a/compat/mingw.h
+++ b/compat/mingw.h
@@ -229,10 +229,18 @@ void free_environ(char **env);
* A replacement of main() that ensures that argv[0] has a path
*/
+extern int _fmode;
#define main(c,v) dummy_decl_mingw_main(); \
static int mingw_main(); \
int main(int argc, const char **argv) \
{ \
+ _fmode = _O_BINARY; \
+ if (stdin) \
+ _setmode(_fileno(stdin), _O_BINARY); \
+ if (stdout) \
+ _setmode(_fileno(stdout), _O_BINARY); \
+ if (stderr) \
+ _setmode(_fileno(stderr), _O_BINARY); \
argv[0] = xstrdup(_pgmptr); \
return mingw_main(argc, argv); \
} \
--
1.6.2.1.418.g33d56.dirty
next prev parent reply other threads:[~2009-09-15 13:45 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-15 13:44 [RFC/PATCH v3 00/14] Build Git with MSVC Marius Storm-Olsen
[not found] ` <cover.1253021728.git.mstormo@gmail.com>
2009-09-15 13:44 ` [PATCH 01/14] Avoid declaration after statement Marius Storm-Olsen
2009-09-15 13:44 ` [PATCH 02/14] Add define guards to compat/win32.h Marius Storm-Olsen
2009-09-15 13:44 ` [PATCH 03/14] Change regerror() declaration from K&R style to ANSI C (C89) Marius Storm-Olsen
2009-09-15 13:44 ` Marius Storm-Olsen [this message]
2009-09-15 18:40 ` [PATCH 04/14] Set _O_BINARY as default fmode for both MinGW and MSVC Alexey Borzenkov
2009-09-15 19:01 ` Alexey Borzenkov
2009-09-15 19:07 ` Alexey Borzenkov
2009-09-15 19:12 ` Marius Storm-Olsen
2009-09-15 13:44 ` [PATCH 05/14] Fix __stdcall placement and function prototype Marius Storm-Olsen
2009-09-15 13:44 ` [PATCH 06/14] Test for WIN32 instead of __MINGW32_ Marius Storm-Olsen
2009-09-15 13:44 ` [PATCH 07/14] Add empty header files for MSVC port Marius Storm-Olsen
2009-09-15 13:44 ` [PATCH 08/14] Add MinGW header files to build git with MSVC Marius Storm-Olsen
2009-09-15 13:44 ` [PATCH 09/14] Add platform files for MSVC porting Marius Storm-Olsen
2009-09-15 13:44 ` [PATCH 10/14] Make usage of windows.h lean and mean Marius Storm-Olsen
2009-09-15 13:44 ` [PATCH 11/14] Define strncasecmp and ftruncate for MSVC Marius Storm-Olsen
2009-09-15 13:44 ` [PATCH 12/14] Add MSVC to Makefile Marius Storm-Olsen
2009-09-15 13:44 ` [PATCH 13/14] Add README for MSVC build Marius Storm-Olsen
2009-09-16 1:22 ` Thiago Farina
2009-09-16 5:26 ` Marius Storm-Olsen
2009-09-15 13:44 ` [PATCH 14/14] Add scripts to generate projects for other buildsystems (MSVC vcproj, QMake) Marius Storm-Olsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=badc5d24387c28c752a45f75e8aec6bce64f81fe.1253021728.git.mstormo@gmail.com \
--to=mstormo@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=lznuaa@gmail.com \
--cc=msysgit@googlegroups.com \
--cc=raa.lkml@gmail.com \
--cc=snaury@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).