threads / patch / 21013

patchtest-genrandom: ensure stdout is set to _O_BINARY on Windows

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

## tl;dr

2 messages between Sep 21, 2009 and Sep 21, 2009. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Johannes Sixt· Sep 21, 2009, 07:34 UTC · lore
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(-)
Show changes to test-genrandom.c +1 −2
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· Sep 21, 2009, 07:36 UTC · re: Johannes Sixt · lore

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

Johannes Sixt <j.sixt@viscovery.net> writes:
Show 15 quoted lines
> 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.

← back to recent threads