diff --git a/radiant/environment.cpp b/radiant/environment.cpp index d255908c..eb2e3020 100644 --- a/radiant/environment.cpp +++ b/radiant/environment.cpp @@ -180,17 +180,16 @@ bool portable_app_setup(){ } -const char* g_openCmdMap; +CopiedString g_openMapByCmd; void cmdMap(){ - g_openCmdMap = NULL; for ( int i = 1; i < g_argc; ++i ) - { - //if ( !stricmp( g_argv[i] + strlen(g_argv[i]) - 4, ".map" ) ){ if( string_equal_suffix_nocase( g_argv[i], ".map" ) ){ - g_openCmdMap = g_argv[i]; + StringOutputStream stream( 256 ); + stream << PathCleaned( g_argv[i] ); + g_openMapByCmd = stream.c_str(); + return; } - } } #if defined( POSIX ) diff --git a/radiant/environment.h b/radiant/environment.h index e42c9fde..c756c7ee 100644 --- a/radiant/environment.h +++ b/radiant/environment.h @@ -29,7 +29,7 @@ const char* environment_get_app_path(); extern int g_argc; extern const char** g_argv; -extern const char* g_openCmdMap; - +#include "string/stringfwd.h" +extern CopiedString g_openMapByCmd; #endif diff --git a/radiant/main.cpp b/radiant/main.cpp index 55e33696..eddfd303 100644 --- a/radiant/main.cpp +++ b/radiant/main.cpp @@ -654,8 +654,8 @@ int main( int argc, char* argv[] ){ hide_splash(); - if( g_openCmdMap && *g_openCmdMap ){ - Map_LoadFile( g_openCmdMap ); + if( !g_openMapByCmd.empty() ){ + Map_LoadFile( g_openMapByCmd.c_str() ); } else if ( g_bLoadLastMap && !g_strLastMap.empty() ) { Map_LoadFile( g_strLastMap.c_str() );