From 1a50f3ed26a0b8ce74cf3170b3440d6b7dd12480 Mon Sep 17 00:00:00 2001 From: sergei Date: Wed, 14 Jul 2010 14:35:13 +0000 Subject: [PATCH] * The fix in r15551 was not entirely correct. Must handle the case when string ends with a single whitespace. git-svn-id: trunk@15570 - --- packages/fcl-xml/src/sax_html.pp | 9 +++++---- packages/fcl-xml/src/sax_xml.pp | 10 ++++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/packages/fcl-xml/src/sax_html.pp b/packages/fcl-xml/src/sax_html.pp index f1e513f683..4345b289e2 100644 --- a/packages/fcl-xml/src/sax_html.pp +++ b/packages/fcl-xml/src/sax_html.pp @@ -325,11 +325,12 @@ var DoIncJ: Boolean; begin Attr := nil; - i := 1; - while (i <= Length(s)) and not IsXMLWhitespace(s[i]) do - Inc(i); + i := 0; + repeat + Inc(i) + until (i > Length(s)) or IsXMLWhitespace(s[i]); - if i = Length(s) then + if i > Length(s) then Result := s else begin diff --git a/packages/fcl-xml/src/sax_xml.pp b/packages/fcl-xml/src/sax_xml.pp index 21f288f04b..5ab58c59ea 100644 --- a/packages/fcl-xml/src/sax_xml.pp +++ b/packages/fcl-xml/src/sax_xml.pp @@ -272,10 +272,12 @@ procedure TSAXXMLReader.EnterNewScannerContext(NewContext: TXMLScannerContext); DoIncJ: Boolean; begin Attr := nil; - i := 1; - while (i <= Length(s)) and not (s[i] in WhitespaceChars) do - Inc(i); - if i = Length(s) then + i := 0; + repeat + Inc(i) + until (i > Length(s)) or (s[i] in WhitespaceChars); + + if i > Length(s) then Result := LowerCase(s) else begin