git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
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

  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).