From 88b01f0fe04caf08d8b656fabeeb238ec1243791 Mon Sep 17 00:00:00 2001 From: michael Date: Wed, 17 Jan 2007 20:45:21 +0000 Subject: [PATCH] * Patch from Sergei Gorelkin to detect and skip whitespace nodes in (short)description nodes git-svn-id: trunk@6029 - --- utils/fpdoc/dwriter.pp | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/utils/fpdoc/dwriter.pp b/utils/fpdoc/dwriter.pp index 36abe8202a..9c358bda00 100644 --- a/utils/fpdoc/dwriter.pp +++ b/utils/fpdoc/dwriter.pp @@ -278,6 +278,25 @@ begin List.Add(FName+'='+FDescription); end; +function IsWhitespaceNode(Node: TDOMText): Boolean; +var + I,L: Integer; + S: DOMString; + P : PWideChar; + +begin + S := Node.Data; + Result := True; + I:=0; + L:=Length(S); + P:=PWideChar(S); + While Result and (I ELEMENT_NODE then begin - Result := Node.NodeType = COMMENT_NODE; + if Node.NodeType = TEXT_NODE then + Result := IsWhitespaceNode(TDOMText(Node)) + else + Result := Node.NodeType = COMMENT_NODE; exit; end; if Node.NodeName = 'remark' then @@ -809,7 +832,7 @@ function TFPDocWriter.ConvertSimpleBlock(AContext: TPasElement; Empty := True; while Assigned(Node) do begin - if (Node.NodeType = TEXT_NODE) or (Node.NodeType = ENTITY_REFERENCE_NODE) + if ((Node.NodeType = TEXT_NODE) and not IsWhitespaceNode(TDOMText(Node))) or (Node.NodeType = ENTITY_REFERENCE_NODE) then Warning(AContext, SErrInvalidListContent) else if Node.NodeType = ELEMENT_NODE then @@ -836,7 +859,7 @@ function TFPDocWriter.ConvertSimpleBlock(AContext: TPasElement; ExpectDTNext := True; while Assigned(Node) do begin - if (Node.NodeType = TEXT_NODE) or (Node.NodeType = ENTITY_REFERENCE_NODE) + if ((Node.NodeType = TEXT_NODE) and not IsWhitespaceNode(TDOMText(Node))) or (Node.NodeType = ENTITY_REFERENCE_NODE) then Warning(AContext, SErrInvalidListContent) else if Node.NodeType = ELEMENT_NODE then @@ -899,7 +922,7 @@ var begin if Node.NodeType <> ELEMENT_NODE then begin - Result := False; + Result := (Node.NodeType = TEXT_NODE) and IsWhitespaceNode(TDOMText(Node)); exit; end; if Node.NodeName = 'p' then