On 5/17/19 10:11 PM, Martin Storsjö wrote:
On Fri, 17 May 2019, Jacek Caban wrote:
I see it now. The problem seems to be wider than assert and caused by
__set_app_type call in ucrtbase_main.c. If I remove them, it behaves
correctly. Do you remember it's called there? Note that crtexe.c already
sets app type correctly, but it's broken by __getmainargs later.
I think the reason why I added the __set_app_type call in
__getmainargs, is that I checked with the wine implementation of the
function for hints about what it should do, when implementing this for
the ucrt compat wrapping.
Wine's function looks like this:
int CDECL __getmainargs(int *argc, char** *argv, char** *envp,
int expand_wildcards, int *new_mode)
{
...
if (new_mode)
MSVCRT__set_new_mode( *new_mode );
return 0;
}
But now when looking at the mingw-w64 crt code, I see that *new_mode
always is 0 here - so apparently msvcrt.dll doesn't actually use the
parameter in this exact way.
new_mode seems to be something different than app type and we could
probably use _set_new_mode for that, but we should be fine ignoring it.
Jacek
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public