diff options
| author | andrew <andrew@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2009-10-24 19:06:12 +0000 |
|---|---|---|
| committer | andrew <andrew@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2009-10-24 19:06:12 +0000 |
| commit | 132a7afcc6150e7690ea3ff8efd948467739e6e5 (patch) | |
| tree | 3d0a818428b31afb4c13510cf5ecadc7b1e1436b /packages/chm | |
| parent | 1c9665cf4f02a5df90ba8524ab40404fbd8ab760 (diff) | |
| download | fpc-132a7afcc6150e7690ea3ff8efd948467739e6e5.tar.gz | |
* Fixed bug 14858 where chmsitemap could not properly read a file
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@13947 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/chm')
| -rw-r--r-- | packages/chm/src/chmsitemap.pas | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/packages/chm/src/chmsitemap.pas b/packages/chm/src/chmsitemap.pas index dd15d2cfa3..fa13854b2b 100644 --- a/packages/chm/src/chmsitemap.pas +++ b/packages/chm/src/chmsitemap.pas @@ -124,6 +124,7 @@ type FUseFolderImages: Boolean; FWindowName: String; FLevel: Integer; + FLevelForced: Boolean; FWindowStyles: LongInt; procedure SetItems(const AValue: TChmSiteMapItems); protected @@ -202,7 +203,7 @@ begin else begin // looking for /HTML if TagName = '/HTML' then Exclude(FSiteMapTags, smtHTML); end;} - + //if (smtHTML in FSiteMapTags) then begin if not (smtBODY in FSiteMapTags) then begin if TagName = 'BODY' then Include(FSiteMapTags, smtBODY); @@ -210,7 +211,7 @@ begin else begin if TagName = '/BODY' then Exclude(FSiteMapTags, smtBODY); end; - + if (smtBODY in FSiteMapTags) then begin //WriteLn('GOT TAG: ', AActualTag); if TagName = 'UL' then begin @@ -221,16 +222,26 @@ begin //WriteLN('Dec Level'); DecreaseULevel; end + else if (TagName = 'LI') and (FLevel = 0) then + FLevelForced := True else if TagName = 'OBJECT' then begin Include(FSiteMapBodyTags, smbtOBJECT); + if FLevelForced then + IncreaseULevel; If FLevel > 0 then // if it is zero it is the site properties NewSiteMapItem; end else if TagName = '/OBJECT' then begin Exclude(FSiteMapBodyTags, smbtOBJECT); + if FLevelForced then + begin + DecreaseULevel; + FLevelForced := False; + end; end else begin // we are the properties of the object tag - if (smbtOBJECT in FSiteMapBodyTags) then begin + if (FLevel > 0 ) and (smbtOBJECT in FSiteMapBodyTags) then begin + if LowerCase(GetTagName(AActualTag)) = 'param' then begin TagAttributeName := GetVal(AActualTag, 'name'); |
