From 95e49adf77241c3cb8dac9c98e8d5435ba4fd7da Mon Sep 17 00:00:00 2001 From: mattias Date: Fri, 23 Sep 2005 21:40:32 +0000 Subject: [PATCH] improved TUnitInfo.ReadUnitNameFromSource git-svn-id: trunk@7810 - --- ide/main.pp | 1 + ide/project.pp | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/ide/main.pp b/ide/main.pp index f7c7d6d00e..9eb7cba7a6 100644 --- a/ide/main.pp +++ b/ide/main.pp @@ -5495,6 +5495,7 @@ begin if Result<>mrOk then exit; if Handled then exit; end; + debugln('TMainIDE.DoOpenEditorFile ',NewUnitInfo.Filename,' ',NewUnitInfo.UnitName); // check readonly NewUnitInfo.FileReadOnly:=FileExists(NewUnitInfo.Filename) diff --git a/ide/project.pp b/ide/project.pp index 7ff1771e22..0e99911efc 100644 --- a/ide/project.pp +++ b/ide/project.pp @@ -719,19 +719,22 @@ procedure TUnitInfo.ReadUnitNameFromSource(TryCache: boolean); var NewUnitName: String; begin - if TryCache then begin + NewUnitName:=''; + if TryCache then NewUnitName:=CodeToolBoss.GetCachedSourceName(Source); - if NewUnitName<>'' then begin - fUnitName:=NewUnitName; + if NewUnitName='' then + NewUnitName:=CodeToolBoss.GetSourceName(fSource,false); + if NewUnitName='' then begin + // unable to parse the source + // use default: the filename + NewUnitName:=ExtractFileNameOnly(Filename); + if CompareText(NewUnitName,fUnitName)=0 then begin + // the last stored unitname has the better case exit; end; end; - NewUnitName:=CodeToolBoss.GetSourceName(fSource,false); - if (NewUnitName='') then begin - NewUnitName:=ExtractFileNameOnly(Filename); - if CompareText(NewUnitName,fUnitName)=0 then exit; + if NewUnitName<>'' then fUnitName:=NewUnitName; - end; end; function TUnitInfo.CreateUnitName: string;