kernel32: Set argv[0] to the full path of the binary when starting from Unix.
This commit is contained in:
parent
7b7f35aee5
commit
fc87182d19
|
@ -598,6 +598,30 @@ static void set_library_wargv( char **argv )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* update_library_argv0
|
||||||
|
*
|
||||||
|
* Update the argv[0] global variable with the binary we have found.
|
||||||
|
*/
|
||||||
|
static void update_library_argv0( const WCHAR *argv0 )
|
||||||
|
{
|
||||||
|
DWORD len = strlenW( argv0 );
|
||||||
|
|
||||||
|
if (len > strlenW( __wine_main_wargv[0] ))
|
||||||
|
{
|
||||||
|
__wine_main_wargv[0] = RtlAllocateHeap( GetProcessHeap(), 0, (len + 1) * sizeof(WCHAR) );
|
||||||
|
}
|
||||||
|
strcpyW( __wine_main_wargv[0], argv0 );
|
||||||
|
|
||||||
|
len = WideCharToMultiByte( CP_ACP, 0, argv0, -1, NULL, 0, NULL, NULL );
|
||||||
|
if (len > strlen( __wine_main_argv[0] ) + 1)
|
||||||
|
{
|
||||||
|
__wine_main_argv[0] = RtlAllocateHeap( GetProcessHeap(), 0, len );
|
||||||
|
}
|
||||||
|
WideCharToMultiByte( CP_ACP, 0, argv0, -1, __wine_main_argv[0], len, NULL, NULL );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* build_command_line
|
* build_command_line
|
||||||
*
|
*
|
||||||
|
@ -1024,6 +1048,7 @@ void CDECL __wine_kernel_init(void)
|
||||||
MESSAGE( "wine: cannot find '%s'\n", __wine_main_argv[0] );
|
MESSAGE( "wine: cannot find '%s'\n", __wine_main_argv[0] );
|
||||||
ExitProcess( GetLastError() );
|
ExitProcess( GetLastError() );
|
||||||
}
|
}
|
||||||
|
update_library_argv0( main_exe_name );
|
||||||
if (!build_command_line( __wine_main_wargv )) goto error;
|
if (!build_command_line( __wine_main_wargv )) goto error;
|
||||||
boot_event = start_wineboot();
|
boot_event = start_wineboot();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue