server: Allow to create win32 prefix when directory already exists.

Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Sebastian Lackner 2016-09-21 15:24:38 +02:00 committed by Alexandre Julliard
parent 6f2f307b1d
commit 808619b72d
2 changed files with 7 additions and 12 deletions

View File

@ -1139,17 +1139,6 @@ static void setup_config_dir(void)
mkdir( config_dir, 0777 ); mkdir( config_dir, 0777 );
if (chdir( config_dir ) == -1) fatal_perror( "chdir to %s\n", config_dir ); if (chdir( config_dir ) == -1) fatal_perror( "chdir to %s\n", config_dir );
if ((p = getenv( "WINEARCH" )) && !strcmp( p, "win32" ))
{
/* force creation of a 32-bit prefix */
int fd = open( "system.reg", O_WRONLY | O_CREAT | O_EXCL, 0666 );
if (fd != -1)
{
static const char regfile[] = "WINE REGISTRY Version 2\n\n#arch=win32\n";
write( fd, regfile, sizeof(regfile) - 1 );
close( fd );
}
}
MESSAGE( "wine: created the configuration directory '%s'\n", config_dir ); MESSAGE( "wine: created the configuration directory '%s'\n", config_dir );
} }

View File

@ -1805,6 +1805,7 @@ void init_registry(void)
WCHAR *current_user_path; WCHAR *current_user_path;
struct unicode_str current_user_str; struct unicode_str current_user_str;
struct key *key, *hklm, *hkcu; struct key *key, *hklm, *hkcu;
char *p;
/* switch to the config dir */ /* switch to the config dir */
@ -1821,7 +1822,12 @@ void init_registry(void)
fatal_error( "could not create Machine registry key\n" ); fatal_error( "could not create Machine registry key\n" );
if (!load_init_registry_from_file( "system.reg", hklm )) if (!load_init_registry_from_file( "system.reg", hklm ))
prefix_type = sizeof(void *) > sizeof(int) ? PREFIX_64BIT : PREFIX_32BIT; {
if ((p = getenv( "WINEARCH" )) && !strcmp( p, "win32" ))
prefix_type = PREFIX_32BIT;
else
prefix_type = sizeof(void *) > sizeof(int) ? PREFIX_64BIT : PREFIX_32BIT;
}
else if (prefix_type == PREFIX_UNKNOWN) else if (prefix_type == PREFIX_UNKNOWN)
prefix_type = PREFIX_32BIT; prefix_type = PREFIX_32BIT;