diff --git a/3d-viewer/3d_cache/3d_filename_resolver.cpp b/3d-viewer/3d_cache/3d_filename_resolver.cpp index 9282055f30..465748a9a5 100644 --- a/3d-viewer/3d_cache/3d_filename_resolver.cpp +++ b/3d-viewer/3d_cache/3d_filename_resolver.cpp @@ -150,14 +150,13 @@ bool S3D_FILENAME_RESOLVER::createPathList( void ) wxString kmod; - // add the current working directory as the first entry by - // default; since CWD is not necessarily what we really want, + // add an entry for the default search path; at this point + // we cannot set a sensible default so we use an empty string. // the user may change this later with a call to SetProjectDir() S3D_ALIAS lpath; lpath.m_alias = _( "(DEFAULT)" ); - lpath.m_pathvar = _( "(PROJECT DIR)" ); - lpath.m_pathexp = wxFileName::GetCwd(); + lpath.m_pathvar = _( "${PROJDIR}" ); lpath.m_description = _( "Current project directory" ); m_Paths.push_back( lpath ); @@ -275,7 +274,7 @@ wxString S3D_FILENAME_RESOLVER::ResolvePath( const wxString& aFileName ) // check the path relative to the current project directory; // note: this is not necessarily the same as the current working // directory, which has already been checked - do + if( !sPL->m_pathexp.empty() ) { wxFileName fpath( wxFileName::DirName( sPL->m_pathexp ) ); wxString fullPath = fpath.GetPathWithSep() + tname; @@ -291,7 +290,7 @@ wxString S3D_FILENAME_RESOLVER::ResolvePath( const wxString& aFileName ) return tname; } - } while( 0 ); + } ++sPL; // skip to item 2: KISYS3DMOD @@ -334,7 +333,7 @@ wxString S3D_FILENAME_RESOLVER::ResolvePath( const wxString& aFileName ) while( sPL != ePL ) { - if( !sPL->m_alias.Cmp( alias ) ) + if( !sPL->m_alias.Cmp( alias ) && !sPL->m_pathexp.empty() ) { wxFileName fpath( wxFileName::DirName( sPL->m_pathexp ) ); wxString fullPath = fpath.GetPathWithSep() + relpath; @@ -443,7 +442,7 @@ bool S3D_FILENAME_RESOLVER::addPath( const S3D_ALIAS& aPath ) } // aliases with the same m_pathexp are acceptable (one or both - // aliases being testes may be expanded variables) but when shortening + // aliases being tested may be expanded variables) but when shortening // names the preference is for (a) a fully specified path in m_pathvar // then (b) the more senior alias in the list if( !sPL->m_pathexp.empty() && !tpath.m_pathexp.empty() )