summaryrefslogtreecommitdiff
path: root/match-trees.c
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2019-06-19 21:05:59 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-06-20 21:03:05 (GMT)
commit396ff7547d8b3f6a933069f048d09380d515a10b (patch)
treed2b19c7d46f474640533485939f952602bbdea13 /match-trees.c
parent96a0679441224e1a1d6f8afd6e25671ce577b92f (diff)
downloadgit-396ff7547d8b3f6a933069f048d09380d515a10b.zip
git-396ff7547d8b3f6a933069f048d09380d515a10b.tar.gz
git-396ff7547d8b3f6a933069f048d09380d515a10b.tar.bz2
mingw: replace mingw_startup() hack
Git for Windows has special code to retrieve the command-line parameters (and even the environment) in UTF-16 encoding, so that they can be converted to UTF-8. This is necessary because Git for Windows wants to use UTF-8 encoded strings throughout its code, and the main() function does not get the parameters in that encoding. To do that, we used the __wgetmainargs() function, which is not even a Win32 API function, but provided by the MINGW "runtime" instead. Obviously, this method would not work with any compiler other than GCC, and in preparation for compiling with Visual C++, we would like to avoid precisely that. Lucky us, there is a much more elegant way: we can simply implement the UTF-16 variant of `main()`: `wmain()`. To make that work, we need to link with -municode. The command-line parameters are passed to `wmain()` encoded in UTF-16, as desired, and this method also works with GCC, and also with Visual C++ after adjusting the MSVC linker flags to force it to use `wmain()`. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'match-trees.c')
0 files changed, 0 insertions, 0 deletions