anchor.diff:      Next1;
   end;
   
  +procedure THtmlParser.CollectNormalText(S: TTokenObj);
  +// Considers the current data as pure text and collects everything until
  +// the input end or one of the reserved tokens is found.
  +var
  +  Buffer: TCharCollection;
  +  CodePage, SaveIndex: Integer;
  +  Entity: ThtString;
  +begin
  +  CodePage := PropStack.Last.CodePage;
  +  Buffer := TCharCollection.Create;
  +  try
  +    while True do
  +    begin
  +      case LCh of
  +        #1..#8, EOFChar, LessChar:
  +          break;
  +
  +        AmperChar:
  +          begin
  +            SaveIndex := PropStack.SIndex;
  +            Entity := GetEntityStr(CodePage);
  +            if not LinkSearch then
  +//              if Length(Entity) = 1 then
  +//                Buffer.Add(Entity[1], SaveIndex)
  +//              else
  +                Buffer.Add(Entity, SaveIndex);
  +          end;
  +
  +        SpcChar, CrChar, LfChar, TabChar:
  +          begin
  +            if not LinkSearch then
  +              Buffer.Add(SpcChar, PropStack.SIndex);
  +            GetCh;
  +            // Skip other white spaces.
  +            SkipWhiteSpace;
  +          end;
  +      else
  +        if not LinkSearch then
  +          Buffer.Add(LCh, PropStack.SIndex);
  +        GetCh;
  +      end;
  +    end;
  +    if Buffer.Size > 0 then
  +      S.AddString(Buffer);
  +  finally
  +    Buffer.Free;
  +  end;
  +end;
  +
  +procedure THtmlParser.CollectPreText(S: TTokenObj);
  +// Considers the current data as pure text and collects everything until
  +// the input ends or one of the reserved tokens is found.
  +var
  +  Buffer: TCharCollection;
  +  CodePage, SaveIndex: Integer;
  +  Entity: ThtString;
  +begin
  +  CodePage := PropStack.Last.CodePage;
  +  Buffer := TCharCollection.Create;
  +  try
  +    while True do
  +      case LCh of
  +        #1..#8, EOFChar, LessChar, CrChar:
  +          break;
  +
  +        AmperChar:
  +        begin
  +          SaveIndex := PropStack.SIndex;
  +          Entity := GetEntityStr(CodePage);
  +          if not LinkSearch then
  +            Buffer.Add(Entity, SaveIndex);
  +        end;
  +
  +    else
  +      {Get any normal text, including spaces}
  +      if not LinkSearch then
  +        Buffer.Add(LCh, PropStack.SIndex);
  +      GetCh;
  +    end;
  +
  +    if Buffer.Size > 0 then
  +      S.AddString(Buffer);
  +  finally
  +    Buffer.Free;
  +  end;
  +end;
  +
  +procedure THtmlParser.CollectText(S: TTokenObj; AWhiteSpace : ThtWhiteSpaceStyle);
  +begin
  +  case AWhiteSpace of
  +    wsNormal : CollectNormalText(S);
  +    wsPre : CollectPreText(S);
  +    //TODO:  research these
  +    wsNoWrap : CollectNormalText(S);
  +    wsPreWrap : CollectNormalText(S);
  +    wsPreLine : CollectNormalText(S);
  +  end;
  +end;
  +
   {----------------DoCommonSy}
   
   procedure THtmlParser.DoCommonSy;
  
positive.code:       Sy := EofSy;
    else
      Sy := StringSy;
      CollectText;
    end;
  end;
  
  
negative.code:     C: ThtChar;
      N, IX: Integer;
      Before, After, Intact: Boolean;
      LW : ThtWhiteSpaceStyle;
  
    begin
      InForm := False;
  