diff --git a/utils/fpdoc/dw_html.pp b/utils/fpdoc/dw_html.pp index 5986960020..078cdac96b 100644 --- a/utils/fpdoc/dw_html.pp +++ b/utils/fpdoc/dw_html.pp @@ -962,19 +962,25 @@ function THTMLWriter.ResolveLinkID(const Name: String; Level : Integer = 0): DOM var i: Integer; ThisPackage: TLinkNode; + s:String; begin Result:=Engine.ResolveLink(Module,Name, True); + // engine can return backslashes on Windows if Length(Result) > 0 then - if Copy(Result, 1, Length(CurDirectory) + 1) = CurDirectory + '/' then + begin + s:=Copy(Result, 1, Length(CurDirectory) + 1); + if (S= CurDirectory + '/') or (s= CurDirectory + '\') then Result := Copy(Result, Length(CurDirectory) + 2, Length(Result)) else if not IsLinkAbsolute(Result) then Result := BaseDirectory + Result; + end; end; function THTMLWriter.ResolveLinkWithinPackage(AElement: TPasElement; ASubpageIndex: Integer): String; var ParentEl: TPasElement; + s : String; begin ParentEl := AElement; while Assigned(ParentEl) and not (ParentEl.ClassType = TPasPackage) do @@ -982,7 +988,9 @@ begin if Assigned(ParentEl) and (TPasPackage(ParentEl) = Engine.Package) then begin Result := Allocator.GetFilename(AElement, ASubpageIndex); - if Copy(Result, 1, Length(CurDirectory) + 1) = CurDirectory + '/' then + // engine/allocator can return backslashes on Windows + s:=Copy(Result, 1, Length(CurDirectory) + 1); + if (S= CurDirectory + '/') or (s= CurDirectory + '\') then Result := Copy(Result, Length(CurDirectory) + 2, Length(Result)) else Result := BaseDirectory + Result;