From 9d55475eeef3f3fce1700f6aa7ebced1656db01e Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 30 Dec 2009 12:12:13 +0100 Subject: [PATCH] winebuild: Always initialize the dll name at startup. --- tools/winebuild/main.c | 18 ++++++++++++++++++ tools/winebuild/spec16.c | 19 ------------------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/tools/winebuild/main.c b/tools/winebuild/main.c index 14c168994b2..ae7904d25af 100644 --- a/tools/winebuild/main.c +++ b/tools/winebuild/main.c @@ -138,6 +138,23 @@ static void set_dll_file_name( const char *name, DLLSPEC *spec ) } } +/* set the dll name from the file name */ +static void init_dll_name( DLLSPEC *spec ) +{ + if (!spec->file_name) + { + char *p; + spec->file_name = xstrdup( output_file_name ); + if ((p = strrchr( spec->file_name, '.' ))) *p = 0; + } + if (!spec->dll_name) /* set default name from file name */ + { + char *p; + spec->dll_name = xstrdup( spec->file_name ); + if ((p = strrchr( spec->dll_name, '.' ))) *p = 0; + } +} + /* set the dll subsystem */ static void set_subsystem( const char *subsystem, DLLSPEC *spec ) { @@ -505,6 +522,7 @@ static char **parse_options( int argc, char **argv, DLLSPEC *spec ) if (spec->file_name && !strchr( spec->file_name, '.' )) strcat( spec->file_name, exec_mode == MODE_EXE ? ".exe" : ".dll" ); + init_dll_name( spec ); switch (target_cpu) { diff --git a/tools/winebuild/spec16.c b/tools/winebuild/spec16.c index 93c082259dc..abc090d3fbb 100644 --- a/tools/winebuild/spec16.c +++ b/tools/winebuild/spec16.c @@ -64,22 +64,6 @@ static inline int is_function( const ORDDEF *odp ) odp->type == TYPE_STUB); } -static void init_dll_name( DLLSPEC *spec ) -{ - if (!spec->file_name) - { - char *p; - spec->file_name = xstrdup( output_file_name ); - if ((p = strrchr( spec->file_name, '.' ))) *p = 0; - } - if (!spec->dll_name) /* set default name from file name */ - { - char *p; - spec->dll_name = xstrdup( spec->file_name ); - if ((p = strrchr( spec->dll_name, '.' ))) *p = 0; - } -} - /******************************************************************* * output_entries * @@ -853,7 +837,6 @@ static void output_module16( DLLSPEC *spec ) */ void BuildSpec16File( DLLSPEC *spec ) { - init_dll_name( spec ); output_standard_file_header(); output_module16( spec ); output_init_code( spec ); @@ -877,7 +860,6 @@ void output_spec16_file( DLLSPEC *spec16 ) { DLLSPEC *spec32 = alloc_dll_spec(); - init_dll_name( spec16 ); spec32->file_name = xstrdup( spec16->file_name ); if (spec16->characteristics & IMAGE_FILE_DLL) @@ -921,7 +903,6 @@ void output_fake_module16( DLLSPEC *spec ) unsigned int i, rsrctab, restab, namelen, modtab, imptab, enttab, cbenttab, codeseg, dataseg, rsrcdata; - init_dll_name( spec ); init_output_buffer(); rsrctab = lfanew;