diff options
Diffstat (limited to 'soldep')
-rw-r--r-- | soldep/bootstrp/prj.cxx | 36 | ||||
-rw-r--r-- | soldep/inc/soldep/prj.hxx | 2 |
2 files changed, 36 insertions, 2 deletions
diff --git a/soldep/bootstrp/prj.cxx b/soldep/bootstrp/prj.cxx index 5f5f7f2db43a..14f966469e6f 100644 --- a/soldep/bootstrp/prj.cxx +++ b/soldep/bootstrp/prj.cxx @@ -1230,6 +1230,12 @@ void Star::UpdateFileList( GenericInformationList *pStandLst, ByteString &rVersi aEntry += DirEntry( ssAddPath ); } } + sPath = rVersion; + sPath += "/settings/SHORTPATH"; + GenericInformation *pShortPath = pStandLst->GetInfo( sPath, TRUE ); + BOOL bShortPath = FALSE; + if (pShortPath && (pShortPath->GetValue() == "_TRUE")) + bShortPath = TRUE; sSourceRoot = aEntry.GetFull(); GenericInformationList *pProjects = pProjectsKey->GetSubList(); if ( pProjects ) { @@ -1243,7 +1249,11 @@ void Star::UpdateFileList( GenericInformationList *pStandLst, ByteString &rVersi GenericInformation * pDir = pProject->GetSubInfo (aDirStr); if (pDir) { ByteString aDir = pDir->GetValue(); - DirEntry aRootEntry = aEntry.GetPath() + DirEntry(aDir); + DirEntry aRootEntry; + if (bShortPath) + aRootEntry = aEntry + DirEntry(aDir); + else + aRootEntry = aEntry.GetPath() + DirEntry(aDir); sLocalSourceRoot = aRootEntry.GetFull(); } @@ -1277,6 +1287,18 @@ void Star::UpdateFileList( GenericInformationList *pStandLst, ByteString &rVersi } /*****************************************************************************/ +void Star::FullReload( GenericInformationList *pStandLst, ByteString &rVersion, + BOOL bRead, BOOL bLocal, const char *pSourceRoot ) +/*****************************************************************************/ +{ + ClearAvailableDeps(); + ClearCurrentDeps(); + ClearLoadedFilesList(); + RemoveAllPrj(); + UpdateFileList( pStandLst, rVersion, bRead, bLocal, pSourceRoot ); +} + +/*****************************************************************************/ BOOL Star::CheckFileLoadList(SolarFileList *pSolarFiles) /*****************************************************************************/ { @@ -2379,6 +2401,12 @@ StarWriter::StarWriter( XmlBuildList* pXmlBuildListObj, GenericInformationList * aEntry += DirEntry( ssAddPath ); } } + sPath = rVersion; + sPath += "/settings/SHORTPATH"; + GenericInformation *pShortPath = pStandLst->GetInfo( sPath, TRUE ); + BOOL bShortPath = FALSE; + if (pShortPath && (pShortPath->GetValue() == "_TRUE")) + bShortPath = TRUE; sSourceRoot = aEntry.GetFull(); GenericInformationList *pProjects = pProjectsKey->GetSubList(); if ( pProjects ) { @@ -2396,7 +2424,11 @@ StarWriter::StarWriter( XmlBuildList* pXmlBuildListObj, GenericInformationList * GenericInformation * pDir = pProject->GetSubInfo (aDirStr); if (pDir) { ByteString aDir = pDir->GetValue(); - aPrjEntry = aEntry.GetPath() + DirEntry(aDir); + if (bShortPath) + aPrjEntry = aEntry; + else + aPrjEntry = aEntry.GetPath(); + aPrjEntry += DirEntry(aDir); } aPrjEntry += DirEntry( ssProject ); diff --git a/soldep/inc/soldep/prj.hxx b/soldep/inc/soldep/prj.hxx index a2765c1c6cf4..0d0e3c270997 100644 --- a/soldep/inc/soldep/prj.hxx +++ b/soldep/inc/soldep/prj.hxx @@ -418,6 +418,8 @@ public: void ReplaceFileEntry( StarFileList *pStarFiles, StarFile* pFile ); void UpdateFileList( GenericInformationList *pStandLst, ByteString &rVersion, BOOL bRead = FALSE, BOOL bLocal = FALSE, const char *pSourceRoot = NULL ); + void FullReload( GenericInformationList *pStandLst, ByteString &rVersion, BOOL bRead = FALSE, + BOOL bLocal = FALSE, const char *pSourceRoot = NULL ); void GenerateFileLoadList( SolarFileList *pSolarFiles ); BOOL CheckFileLoadList(SolarFileList *pSolarFiles); |