summaryrefslogtreecommitdiff
path: root/soldep/bootstrp/prj.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'soldep/bootstrp/prj.cxx')
-rw-r--r--soldep/bootstrp/prj.cxx679
1 files changed, 236 insertions, 443 deletions
diff --git a/soldep/bootstrp/prj.cxx b/soldep/bootstrp/prj.cxx
index d13e08a05283..dfb29fe74754 100644
--- a/soldep/bootstrp/prj.cxx
+++ b/soldep/bootstrp/prj.cxx
@@ -160,45 +160,34 @@ ByteString SimpleConfig::GetNextLine()
ByteString SimpleConfig::GetCleanedNextLine( BOOL bReadComments )
/*****************************************************************************/
{
+ sal_Bool bStreamOk;
+ sal_Bool bReadNextLine = sal_True;
+ while (bReadNextLine)
+ {
+ bStreamOk = aFileStream.ReadLine ( aTmpStr );
+ if (!bStreamOk)
+ return ByteString();
- aFileStream.ReadLine ( aTmpStr );
- if ( aTmpStr.Search( "#" ) == 0 )
- if (bReadComments )
- return aTmpStr;
- else
- while ( aTmpStr.Search( "#" ) == 0 )
- {
- aFileStream.ReadLine ( aTmpStr );
- }
+ ByteString sTab = "\t";
+ ByteString sDoubleTab = "\t\t";
+ ByteString sSpace = " ";
+ xub_StrLen nIndex = 0;
- aTmpStr = aTmpStr.EraseLeadingChars();
- aTmpStr = aTmpStr.EraseTrailingChars();
-// while ( aTmpStr.SearchAndReplace(String(' '),String('\t') ) != (USHORT)-1 );
- int nLength = aTmpStr.Len();
-// USHORT nPos = 0;
- ByteString aEraseString;
- BOOL bFirstTab = TRUE;
- for ( USHORT i = 0; i<= nLength; i++)
- {
- if ( aTmpStr.GetChar( i ) == 0x20 )
- aTmpStr.SetChar( i, 0x09 );
+ aTmpStr.SearchAndReplaceAll(sSpace, sTab);
+ while ( (nIndex = aTmpStr.SearchAndReplace(sDoubleTab, sTab, nIndex )) != STRING_NOTFOUND );
+
+ aTmpStr = aTmpStr.EraseLeadingAndTrailingChars('\t'); // remove tabs
- if ( aTmpStr.GetChar( i ) == 0x09 )
+ if ( aTmpStr.Search( "#" ) == 0 )
{
- if ( bFirstTab )
- bFirstTab = FALSE;
- else
- {
- aTmpStr.SetChar( i, 0x20 );
- }
+ if (bReadComments )
+ return aTmpStr;
}
- else
- bFirstTab = TRUE;
-
+ else if (aTmpStr != ByteString::EmptyString())
+ bReadNextLine = sal_False;
}
- aTmpStr.EraseAllChars(' ');
- return aTmpStr;
+ return aTmpStr;
}
@@ -824,7 +813,8 @@ Prj::Prj() :
bVisited( FALSE ),
bIsAvailable( TRUE ),
pTempCommandDataList (0),
- bTempCommandDataListPermanent (FALSE)
+ bTempCommandDataListPermanent (FALSE),
+ bError (FALSE)
/*****************************************************************************/
{
}
@@ -841,7 +831,8 @@ Prj::Prj( ByteString aName ) :
bVisited( FALSE ),
bIsAvailable( TRUE ),
pTempCommandDataList (0),
- bTempCommandDataListPermanent (FALSE)
+ bTempCommandDataListPermanent (FALSE),
+ bError (FALSE)
/*****************************************************************************/
{
}
@@ -1146,6 +1137,7 @@ Prj& Prj::operator>> ( SvStream& rStream )
rStream << bFixedDependencies;
rStream << bSorted;
rStream << bIsAvailable;
+ rStream << bError;
if (pPrjDepInfoList)
{
@@ -1178,6 +1170,7 @@ Prj& Prj::operator<< ( SvStream& rStream )
rStream >> bFixedDependencies;
rStream >> bSorted;
rStream >> bIsAvailable;
+ rStream >> bError;
BOOL bDepList;
rStream >> bDepList;
@@ -1509,18 +1502,7 @@ void Star::Read( String &rFileName )
while( aFileList.Count()) {
String ssFileName = *aFileList.GetObject(( ULONG ) 0 );
- ByteString sFileName_l(ssFileName, RTL_TEXTENCODING_ASCII_US);
- StarFile *pFile = new StarFile( ssFileName );
- if ( pFile->Exists()) {
-// if (sFileName_l.Len() >= RTL_CONSTASCII_LENGTH(XML_EXT) && ssFileName.EqualsAscii(XML_EXT, sFileName_l.Len() - RTL_CONSTASCII_LENGTH(XML_EXT), RTL_CONSTASCII_LENGTH(XML_EXT)))
-// {
-// ReadXmlBuildList(sFileName_l);
-// } else {
- SimpleConfig aSolarConfig( ssFileName );
- while (( aString = aSolarConfig.GetNext()) != "" )
- InsertToken (( char * ) aString.GetBuffer());
-// }
- }
+ StarFile* pFile = ReadBuildlist (ssFileName);
aMutex.acquire();
ReplaceFileEntry (&aLoadedFilesList, pFile);
//aLoadedFilesList.Insert( pFile, LIST_APPEND );
@@ -1575,19 +1557,9 @@ void Star::Read( SolarFileList *pSolarFiles )
ByteString aString;
String ssFileName = *pSolarFiles->GetObject(( ULONG ) 0 );
- ByteString sFileName_l(ssFileName, RTL_TEXTENCODING_ASCII_US);
- StarFile *pFile = new StarFile( ssFileName );
+ StarFile *pFile = ReadBuildlist ( ssFileName);
if ( pFile->Exists()) {
-// if (sFileName_l.Len() >= RTL_CONSTASCII_LENGTH(XML_EXT) && ssFileName.EqualsAscii(XML_EXT, sFileName_l.Len() - RTL_CONSTASCII_LENGTH(XML_EXT), RTL_CONSTASCII_LENGTH(XML_EXT)))
-// {
-// ReadXmlBuildList(sFileName_l);
-// } else {
- SimpleConfig aSolarConfig( ssFileName );
- while (( aString = aSolarConfig.GetNext()) != "" )
- InsertToken (( char * ) aString.GetBuffer());
-// }
-
DirEntry aEntry( pFile->GetName() );
DirEntry aEntryPrj = aEntry.GetPath().GetPath();
if (aEntryPrj.GetExtension() != String::CreateFromAscii( "" ))
@@ -1721,207 +1693,259 @@ void Star::Expand_Impl()
}
/*****************************************************************************/
-void Star::InsertToken ( char *yytext )
+StarFile* Star::ReadBuildlist (const String& rFilename, BOOL bReadComments, BOOL bExtendAlias)
+/*****************************************************************************/
+{
+ ByteString sFileName_l(rFilename, RTL_TEXTENCODING_ASCII_US);
+ StarFile *pFile = new StarFile( rFilename );
+ if ( pFile->Exists()) {
+ SimpleConfig aSolarConfig( rFilename );
+ DirEntry aEntry(rFilename);
+ ByteString sProjectName (aEntry.GetPath().GetPath().GetName(), RTL_TEXTENCODING_ASCII_US);
+ Prj* pPrj = GetPrj (sProjectName); // 0, if Prj not found
+ if (pPrj)
+ {
+ Remove(pPrj); // Project exist, remove old Project and read again
+ DELETEZ (pPrj); // delete and set pPrj to 0
+ }
+ ByteString aString;
+ while (( aString = aSolarConfig.GetCleanedNextLine( bReadComments )) != ByteString::EmptyString() )
+ InsertTokenLine ( aString, &pPrj, sProjectName, bExtendAlias );
+ }
+ return pFile;
+}
+
+/*****************************************************************************/
+void Star::InsertTokenLine ( const ByteString& rTokenLine, Prj** ppPrj, const ByteString& rProjectName, const sal_Bool bExtendAlias )
/*****************************************************************************/
{
- static int i = 0;
- static ByteString aDirName, aWhat, aWhatOS,
+ int i = 0;
+ ByteString aWhat, aWhatOS,
sClientRestriction, aLogFileName, aProjectName, aPrefix, aCommandPara;
- static BOOL bPrjDep = FALSE;
- static BOOL bHardDep = FALSE;
- static BOOL bFixedDep = FALSE;
- static int nCommandType, nOSType;
+ ByteString aDirName;
+ BOOL bPrjDep = FALSE;
+ BOOL bHardDep = FALSE;
+ BOOL bFixedDep = FALSE;
+ BOOL bNewProject = FALSE;
+ int nCommandType=0, nOSType=0;
+ Prj* pPrj = *ppPrj;
CommandData* pCmdData;
- static SByteStringList *pStaticDepList;
- Prj* pPrj;
+ SByteStringList *pDepList = NULL;
+ ByteString aCommentString;
+ ByteString sToken;
+ ByteString sStringBuffer = rTokenLine;
- switch (i)
+ while (sStringBuffer != ByteString::EmptyString())
{
- case 0:
- aPrefix = yytext;
- pStaticDepList = 0;
- break;
- case 1:
- aDirName = yytext;
- aProjectName = aDirName.GetToken ( 0, 0x5c);
- break;
- case 2:
- if ( !strcmp( yytext, ":" ))
- {
- bPrjDep = TRUE;
- bHardDep = FALSE;
- bFixedDep = FALSE;
- i = 9;
- }
- else if ( !strcmp( yytext, "::" ))
- {
- bPrjDep = TRUE;
- bHardDep = TRUE;
- bFixedDep = FALSE;
- i = 9;
- }
- else if ( !strcmp( yytext, ":::" ))
- {
- bPrjDep = TRUE;
- bHardDep = TRUE;
- bFixedDep = TRUE;
- i = 9;
- }
- else
- {
- bPrjDep = FALSE;
- bHardDep = FALSE;
- bFixedDep = FALSE;
+ ByteString sToken = sStringBuffer.GetToken(0,'\t');
+ sStringBuffer.Erase(0, sToken.Len()+1);
- aWhat = yytext;
- nCommandType = GetJobType(aWhat);
- }
- if (bPrjDep)
- {
- if ( HasProject( aProjectName ))
+ switch (i)
+ {
+ case 0:
+ if ( sToken.Search( "#" ) == 0 )
{
- RemovePrj(GetPrj(aProjectName));
- // Projekt exist. schon, entfernen, spter neue anlegen
+ i = -1;
+ aCommentString = sToken;
+ sStringBuffer = ByteString::EmptyString();
+ if ( Count() == 0 )
+ aDirName = "null_entry" ; //comments at begin of file
}
- }
- break;
- case 3:
- if ( !bPrjDep )
- {
- aWhat = yytext;
- if ( aWhat == "-" )
+ else
{
- aCommandPara = ByteString();
+ aPrefix = sToken;
+ pDepList = 0;
}
- else
- aCommandPara = aWhat;
- }
- break;
- case 4:
- if ( !bPrjDep )
- {
- aWhatOS = yytext;
- if ( aWhatOS.GetTokenCount( ',' ) > 1 ) {
- sClientRestriction = aWhatOS.Copy( aWhatOS.GetToken( 0, ',' ).Len() + 1 );
- aWhatOS = aWhatOS.GetToken( 0, ',' );
+ break;
+ case 1:
+ aDirName = sToken;
+ aProjectName = aDirName.GetToken ( 0, 0x5c);
+ if (aProjectName != rProjectName)
+ sStringBuffer = ByteString::EmptyString(); // something is wrong, ignore line
+ break;
+ case 2:
+ if ( sToken.CompareTo(":") == COMPARE_EQUAL )
+ {
+ bPrjDep = TRUE;
+ bHardDep = FALSE;
+ bFixedDep = FALSE;
+ i = 9;
}
- nOSType = GetOSType (aWhatOS);
- }
- break;
- case 5:
- if ( !bPrjDep )
- {
- aLogFileName = (ByteString(aProjectName).Append("_")).Append(yytext);
- }
- break;
- default:
- if ( !bPrjDep )
- {
- ByteString aItem = yytext;
- if ( aItem == "NULL" )
+ else if ( sToken.CompareTo("::") == COMPARE_EQUAL )
{
- // Liste zu Ende
- i = -1;
+ bPrjDep = TRUE;
+ bHardDep = TRUE;
+ bFixedDep = FALSE;
+ i = 9;
+ }
+ else if ( sToken.CompareTo(":::") == COMPARE_EQUAL )
+ {
+ bPrjDep = TRUE;
+ bHardDep = TRUE;
+ bFixedDep = TRUE;
+ i = 9;
}
else
{
- // ggfs. Dependency liste anlegen und ergaenzen
- if ( !pStaticDepList )
- pStaticDepList = new SByteStringList;
- ByteString* pStr = new ByteString ((ByteString (aProjectName).Append("_")).Append(aItem));
- pStaticDepList->PutString( pStr );
+ bPrjDep = FALSE;
+ bHardDep = FALSE;
+ bFixedDep = FALSE;
+
+ aWhat = sToken;
+ nCommandType = GetJobType(aWhat);
}
- }
- else
- {
- ByteString aItem = yytext;
- if ( aItem == "NULL" )
+ if (bPrjDep)
{
- // Liste zu Ende
- i = -1;
- bPrjDep= FALSE;
+ if (pPrj)
+ sStringBuffer = ByteString::EmptyString(); // definition more than once or not first line, ignore line
}
- else
+ break;
+ case 3:
+ if ( !bPrjDep )
{
- ByteString sMode;
- BOOL bHasModes = FALSE;
- if (aItem.Search(":") != STRING_NOTFOUND)
+ aWhat = sToken;
+ if ( aWhat == "-" )
{
- sMode = aItem.GetToken ( 0, ':');
- aItem = aItem.GetToken ( 1, ':');
- bHasModes = TRUE;
+ aCommandPara = ByteString();
+ }
+ else
+ aCommandPara = aWhat;
+ }
+ break;
+ case 4:
+ if ( !bPrjDep )
+ {
+ aWhatOS = sToken;
+ if ( aWhatOS.GetTokenCount( ',' ) > 1 ) {
+ sClientRestriction = aWhatOS.Copy( aWhatOS.GetToken( 0, ',' ).Len() + 1 );
+ aWhatOS = aWhatOS.GetToken( 0, ',' );
}
+ nOSType = GetOSType (aWhatOS);
+ }
+ break;
+ case 5:
+ if ( !bPrjDep )
+ {
+ if (bExtendAlias)
+ aLogFileName = (ByteString(aProjectName).Append("_")).Append(sToken);
+ else
+ aLogFileName = sToken;
- if ( HasProject( aProjectName ))
+ }
+ break;
+ default:
+ if ( !bPrjDep )
+ {
+ ByteString aItem = sToken;
+ if ( aItem == "NULL" )
{
- pPrj = GetPrj( aProjectName );
- // Projekt exist. schon, neue Eintraege anhaengen
+ // Liste zu Ende
+ i = -1;
}
else
{
- // neues Project anlegen
- pPrj = new Prj ( aProjectName );
- pPrj->SetPreFix( aPrefix );
- Insert(pPrj,LIST_APPEND);
+ // ggfs. Dependency liste anlegen und ergaenzen
+ if ( !pDepList )
+ pDepList = new SByteStringList;
+ ByteString* pStr;
+ if (bExtendAlias)
+ pStr = new ByteString ((ByteString (aProjectName).Append("_")).Append(aItem));
+ else
+ pStr = new ByteString (aItem);
+ pDepList->PutString( pStr );
+ }
+ }
+ else
+ {
+ ByteString aItem = sToken;
+ if ( aItem == "NULL" )
+ {
+ // Liste zu Ende
+ i = -1;
+ bPrjDep= FALSE;
}
- if (bHasModes)
- pPrj->AddDependencies( aItem, sMode );
else
- pPrj->AddDependencies( aItem );
- pPrj->HasHardDependencies( bHardDep );
- pPrj->HasFixedDependencies( bFixedDep );
-
-/*
- if ( nStarMode == STAR_MODE_RECURSIVE_PARSE ) {
- String sItem( aItem, RTL_TEXTENCODING_ASCII_US );
- InsertSolarList( sItem );
+ {
+ ByteString sMode;
+ BOOL bHasModes = FALSE;
+ if (aItem.Search(":") != STRING_NOTFOUND)
+ {
+ sMode = aItem.GetToken ( 0, ':');
+ aItem = aItem.GetToken ( 1, ':');
+ bHasModes = TRUE;
+ }
+ if (!pPrj)
+ {
+ // neues Project anlegen
+ pPrj = new Prj ( aProjectName );
+ pPrj->SetPreFix( aPrefix );
+ bNewProject = TRUE;
+ }
+ if (bHasModes)
+ pPrj->AddDependencies( aItem, sMode );
+ else
+ pPrj->AddDependencies( aItem );
+ pPrj->HasHardDependencies( bHardDep );
+ pPrj->HasFixedDependencies( bFixedDep );
}
- */
}
- }
- break;
+ break;
+ }
+ if ( i == -1 )
+ break;
+ i++;
}
/* Wenn dieses Project noch nicht vertreten ist, in die Liste
der Solar-Projekte einfuegen */
if ( i == -1 )
{
- if ( HasProject( aProjectName ))
- {
- pPrj = GetPrj( aProjectName );
- // Projekt exist. schon, neue Eintraege anhaengen
- }
- else
+ if (!pPrj)
{
// neues Project anlegen
pPrj = new Prj ( aProjectName );
pPrj->SetPreFix( aPrefix );
- Insert(pPrj,LIST_APPEND);
+ bNewProject = TRUE;
}
+ if (bNewProject)
+ Insert(pPrj,LIST_APPEND);
+
pCmdData = new CommandData;
pCmdData->SetPath( aDirName );
pCmdData->SetCommandType( nCommandType );
pCmdData->SetCommandPara( aCommandPara );
pCmdData->SetOSType( nOSType );
pCmdData->SetLogFile( aLogFileName );
+ pCmdData->SetComment( aCommentString );
pCmdData->SetClientRestriction( sClientRestriction );
- if ( pStaticDepList )
- pCmdData->SetDependencies( pStaticDepList );
+ if ( pDepList )
+ pCmdData->SetDependencies( pDepList );
- pStaticDepList = 0;
+ pDepList = 0;
pPrj->Insert ( pCmdData, LIST_APPEND );
- aDirName ="";
- aWhat ="";
- aWhatOS = "";
- sClientRestriction = "";
- aLogFileName = "";
- nCommandType = 0;
- nOSType = 0;
- }
- i++;
- // und wer raeumt die depLst wieder ab ?
- // CommandData macht das
+ // und wer raeumt die depLst wieder ab ?
+ // CommandData macht das
+ }
+ else
+ {
+ if (!pPrj)
+ {
+ // new project to set the error flag
+ pPrj = new Prj ( rProjectName );
+ pPrj->SetPreFix( aPrefix );
+ bNewProject = TRUE;
+ }
+ if (pPrj)
+ {
+ pPrj->SetError();
+ if (bNewProject)
+ Insert(pPrj,LIST_APPEND); // add project even if there is a buildlist error
+ }
+ if ( pDepList )
+ delete pDepList;
+ }
+ *ppPrj = pPrj;
}
/*****************************************************************************/
@@ -2572,19 +2596,7 @@ USHORT StarWriter::Read( String aFileName, BOOL bReadComments, USHORT nMode )
while( aFileList.Count()) {
String ssFileName = *aFileList.GetObject(( ULONG ) 0 );
- ByteString sFileName_l(ssFileName, RTL_TEXTENCODING_ASCII_US);
- StarFile *pFile = new StarFile( ssFileName );
- if ( pFile->Exists()) {
-// if (sFileName_l.Len() >= RTL_CONSTASCII_LENGTH(XML_EXT) && ssFileName.EqualsAscii(XML_EXT, sFileName_l.Len() - RTL_CONSTASCII_LENGTH(XML_EXT), RTL_CONSTASCII_LENGTH(XML_EXT)))
-// {
-// ReadXmlBuildList(sFileName_l);
-// } else {
- SimpleConfig aSolarConfig( ssFileName );
- while (( aString = aSolarConfig.GetCleanedNextLine( bReadComments )) != "" )
- InsertTokenLine ( aString );
- }
-// }
-
+ StarFile* pFile = ReadBuildlist (ssFileName, bReadComments, FALSE);
aMutex.acquire();
aLoadedFilesList.Insert( pFile, LIST_APPEND );
aMutex.release();
@@ -2608,21 +2620,7 @@ USHORT StarWriter::Read( SolarFileList *pSolarFiles, BOOL bReadComments )
while( pSolarFiles->Count()) {
ByteString aString;
String ssFileName = *pSolarFiles->GetObject(( ULONG ) 0 );
- ByteString sFileName_l(ssFileName, RTL_TEXTENCODING_ASCII_US);
- StarFile *pFile = new StarFile( ssFileName);
- if ( pFile->Exists()) {
-// if (sFileName_l.Len() >= RTL_CONSTASCII_LENGTH(XML_EXT) && ssFileName.EqualsAscii(XML_EXT, sFileName_l.Len() - RTL_CONSTASCII_LENGTH(XML_EXT), RTL_CONSTASCII_LENGTH(XML_EXT)))
-// {
-// ReadXmlBuildList(sFileName_l);
-// }
-// else
-// {
- SimpleConfig aSolarConfig( ssFileName );
- while (( aString = aSolarConfig.GetCleanedNextLine( bReadComments )) != "" )
- InsertTokenLine ( aString );
-// }
- }
-
+ StarFile* pFile = ReadBuildlist(ssFileName, bReadComments, FALSE);
aMutex.acquire();
aLoadedFilesList.Insert( pFile, LIST_APPEND );
aMutex.release();
@@ -2803,217 +2801,12 @@ USHORT StarWriter::WriteMultiple( String rSourceRoot )
}
/*****************************************************************************/
-void StarWriter::InsertTokenLine ( ByteString& rString )
+void StarWriter::InsertTokenLine ( const ByteString& rTokenLine )
/*****************************************************************************/
{
- int i = 0;
- ByteString aWhat, aWhatOS,
- sClientRestriction, aLogFileName, aProjectName, aPrefix, aCommandPara;
- static ByteString aDirName;
- BOOL bPrjDep = FALSE;
- BOOL bHardDep = FALSE;
- BOOL bFixedDep = FALSE;
- int nCommandType=0, nOSType=0;
- CommandData* pCmdData;
- SByteStringList *pDepList2 = NULL;
- Prj* pPrj;
-
- ByteString aEmptyString;
- ByteString aToken = rString.GetToken( 0, '\t' );
- ByteString aCommentString;
-
- const char* yytext = aToken.GetBuffer();
-
- while ( !( aToken == aEmptyString ) )
- {
- switch (i)
- {
- case 0:
- if ( rString.Search( "#" ) == 0 )
- {
- i = -1;
- aCommentString = rString;
- rString = aEmptyString;
- if ( Count() == 0 )
- aDirName = "null_entry" ; //comments at begin of file
- break;
- }
- aPrefix = yytext;
- pDepList2 = NULL;
- break;
- case 1:
- aDirName = yytext;
- break;
- case 2:
- if ( !strcmp( yytext, ":" ))
- {
- bPrjDep = TRUE;
- bHardDep = FALSE;
- bFixedDep = FALSE;
- i = 9;
- }
- else if ( !strcmp( yytext, "::" ))
- {
- bPrjDep = TRUE;
- bHardDep = TRUE;
- bFixedDep = FALSE;
- i = 9;
- }
- else if ( !strcmp( yytext, ":::" ))
- {
- bPrjDep = TRUE;
- bHardDep = TRUE;
- bFixedDep = TRUE;
- i = 9;
- }
- else
- {
- bPrjDep = FALSE;
- bHardDep = FALSE;
- bFixedDep = FALSE;
-
- aWhat = yytext;
- nCommandType = GetJobType(aWhat);
- }
- break;
- case 3:
- if ( !bPrjDep )
- {
- aWhat = yytext;
- if ( aWhat == "-" )
- {
- aCommandPara = ByteString();
- }
- else
- aCommandPara = aWhat;
- }
- break;
- case 4:
- if ( !bPrjDep )
- {
- aWhatOS = yytext;
- if ( aWhatOS.GetTokenCount( ',' ) > 1 ) {
- sClientRestriction = aWhatOS.Copy( aWhatOS.GetToken( 0, ',' ).Len() + 1 );
- aWhatOS = aWhatOS.GetToken( 0, ',' );
- }
- nOSType = GetOSType (aWhatOS);
- }
- break;
- case 5:
- if ( !bPrjDep )
- {
- aLogFileName = yytext;
- }
- break;
- default:
- if ( !bPrjDep )
- {
- ByteString aItem = yytext;
- if ( aItem == "NULL" )
- {
- // Liste zu Ende
- i = -1;
- }
- else
- {
- // ggfs. Dependency liste anlegen und ergaenzen
- if ( !pDepList2 )
- pDepList2 = new SByteStringList;
- pDepList2->PutString( new ByteString( aItem ));
- }
- }
- else
- {
- ByteString aItem = yytext;
- if ( aItem == "NULL" )
- {
- // Liste zu Ende
- i = -1;
- bPrjDep= FALSE;
- }
- else
- {
- ByteString sMode;
- BOOL bHasModes = FALSE;
- if (aItem.Search(":") != STRING_NOTFOUND)
- {
- sMode = aItem.GetToken ( 0, ':');
- aItem = aItem.GetToken ( 1, ':');
- bHasModes = TRUE;
- }
-
- aProjectName = aDirName.GetToken ( 0, 0x5c);
- if ( HasProject( aProjectName ))
- {
- pPrj = GetPrj( aProjectName );
- // Projekt exist. schon, neue Eintraege anhaengen
- }
- else
- {
- // neues Project anlegen
- pPrj = new Prj ( aProjectName );
- pPrj->SetPreFix( aPrefix );
- Insert(pPrj,LIST_APPEND);
- }
- if (bHasModes)
- pPrj->AddDependencies( aItem, sMode );
- else
- pPrj->AddDependencies( aItem );
- pPrj->HasHardDependencies( bHardDep );
- pPrj->HasFixedDependencies( bFixedDep );
-
- /*
- if ( nStarMode == STAR_MODE_RECURSIVE_PARSE ) {
- String sItem( aItem, RTL_TEXTENCODING_ASCII_US );
- InsertSolarList( sItem );
- }
- */
- }
-
- }
- break;
- }
- /* Wenn dieses Project noch nicht vertreten ist, in die Liste
- der Solar-Projekte einfuegen */
- if ( i == -1 )
- {
- aProjectName = aDirName.GetToken ( 0, 0x5c);
- if ( HasProject( aProjectName ))
- {
- pPrj = GetPrj( aProjectName );
- // Projekt exist. schon, neue Eintraege anhaengen
- }
- else
- {
- // neues Project anlegen
- pPrj = new Prj ( aProjectName );
- pPrj->SetPreFix( aPrefix );
- Insert(pPrj,LIST_APPEND);
- }
-
- pCmdData = new CommandData;
- pCmdData->SetPath( aDirName );
- pCmdData->SetCommandType( nCommandType );
- pCmdData->SetCommandPara( aCommandPara );
- pCmdData->SetOSType( nOSType );
- pCmdData->SetLogFile( aLogFileName );
- pCmdData->SetComment( aCommentString );
- pCmdData->SetClientRestriction( sClientRestriction );
- if ( pDepList2 )
- pCmdData->SetDependencies( pDepList2 );
-
- pPrj->Insert ( pCmdData, LIST_APPEND );
-
- }
- i++;
-
- rString.Erase(0, aToken.Len()+1);
- aToken = rString.GetToken( 0, '\t' );
- yytext = aToken.GetBuffer();
-
- }
- // und wer raeumt die depLst wieder ab ?
- // macht CommandData selber
+ ByteString sProjectName = rTokenLine.GetToken(1,'\t');
+ Prj* pPrj = GetPrj (sProjectName); // 0, if Prj not found;
+ Star::InsertTokenLine ( rTokenLine, &pPrj, sProjectName, sal_False );
}
/*****************************************************************************/