aboutsummaryrefslogtreecommitdiff
path: root/compat/mingw.h
diff options
context:
space:
mode:
authorKarsten Blees <blees@dcon.de>2011-01-07 19:47:23 +0100
committerJunio C Hamano <gitster@pobox.com>2014-06-10 13:31:01 -0700
commit13f1df432ea78a9dda2e70036215f754db182934 (patch)
treeba9d167dc6da34fe6ef158e52b14799ee6e1d5ea /compat/mingw.h
parentc2369bdf7ff082d588c4a4efe280bc4a483d0192 (diff)
downloadgit-13f1df432ea78a9dda2e70036215f754db182934.tar.gz
git-13f1df432ea78a9dda2e70036215f754db182934.tar.xz
Win32: move main macro to a function
The code in the MinGW main macro is getting more and more complex, move to a separate initialization function for readabiliy and extensibility. Signed-off-by: Karsten Blees <blees@dcon.de> Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Signed-off-by: Stepan Kasal <kasal@ucw.cz> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'compat/mingw.h')
-rw-r--r--compat/mingw.h14
1 files changed, 4 insertions, 10 deletions
diff --git a/compat/mingw.h b/compat/mingw.h
index 3eaf822e2..15f0c9d79 100644
--- a/compat/mingw.h
+++ b/compat/mingw.h
@@ -363,22 +363,16 @@ void free_environ(char **env);
extern CRITICAL_SECTION pinfo_cs;
/*
- * 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
+ * A replacement of main() that adds win32 specific initialization.
*/
+void mingw_startup();
#define main(c,v) dummy_decl_mingw_main(); \
static int mingw_main(c,v); \
int main(int argc, char **argv) \
{ \
- extern CRITICAL_SECTION pinfo_cs; \
- _fmode = _O_BINARY; \
- _setmode(_fileno(stdin), _O_BINARY); \
- _setmode(_fileno(stdout), _O_BINARY); \
- _setmode(_fileno(stderr), _O_BINARY); \
- argv[0] = xstrdup(_pgmptr); \
- InitializeCriticalSection(&pinfo_cs); \
- return mingw_main(argc, argv); \
+ mingw_startup(); \
+ return mingw_main(__argc, __argv); \
} \
static int mingw_main(c,v)