# [PATCH] test-genrandom: ensure stdout is set to _O_BINARY on Windows

2 messages from 2009-09-21 to 2009-09-21. Participants: Johannes Sixt, Junio C Hamano.
Thread: https://gitlist.dev/t/21013

## Johannes Sixt, 2009-09-21 07:34

Subject: [PATCH] test-genrandom: ensure stdout is set to _O_BINARY on Windows
Message-ID: <4AB72CA2.1020808@viscovery.net>
URL: https://gitlist.dev/e/4AB72CA2.1020808%40viscovery.net

```
From: Johannes Sixt <j6t@kdbg.org>

Commit a6ca8c62 (Set _O_BINARY as default fmode for both MinGW and MSVC)
removed the definition of _CRT_fmode from mingw.c. Before this commit,
since test-genrandom is linked against libgit.a, the MinGW process
initialization code would pick up that definition of _CRT_fmode, which was
initialized to _O_BINARY. After this commit, however, text mode is used
for std(in|out|err) because it is the default in absence of _CRT_fmode.
In order to fix that, we must use git-compat-util.h, which overrides
main() to set the mode to binary.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
 Unfortunately, this change in an updated patch 04/15 of the MSVC series
 went to the Big Void. ;)

 -- Hannes

 test-genrandom.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/test-genrandom.c b/test-genrandom.c
index 8ad276d..b3c28d9 100644
--- a/test-genrandom.c
+++ b/test-genrandom.c
@@ -4,8 +4,7 @@
  * Copyright (C) 2007 by Nicolas Pitre, licensed under the GPL version 2.
  */

-#include <stdio.h>
-#include <stdlib.h>
+#include "git-compat-util.h"

 int main(int argc, char *argv[])
 {
-- 
1.6.5.rc1.1051.gdc4fd

```

## Junio C Hamano, 2009-09-21 07:36

Subject: Re: [PATCH] test-genrandom: ensure stdout is set to _O_BINARY on Windows
Message-ID: <7vws3svjel.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vws3svjel.fsf%40alter.siamese.dyndns.org
In-Reply-To: <4AB72CA2.1020808@viscovery.net>

```
Johannes Sixt <j.sixt@viscovery.net> writes:

> From: Johannes Sixt <j6t@kdbg.org>
>
> Commit a6ca8c62 (Set _O_BINARY as default fmode for both MinGW and MSVC)
> removed the definition of _CRT_fmode from mingw.c. Before this commit,
> since test-genrandom is linked against libgit.a, the MinGW process
> initialization code would pick up that definition of _CRT_fmode, which was
> initialized to _O_BINARY. After this commit, however, text mode is used
> for std(in|out|err) because it is the default in absence of _CRT_fmode.
> In order to fix that, we must use git-compat-util.h, which overrides
> main() to set the mode to binary.
>
> Signed-off-by: Johannes Sixt <j6t@kdbg.org>
> ---
>  Unfortunately, this change in an updated patch 04/15 of the MSVC series
>  went to the Big Void. ;)

Thanks.

```
