>AdXChrFlt.pas:435
TApdInCharFilter.TryRead(const S : array of Longint) :
Boolean;
It reads a sequence of chars from the input stream and
checks is to match the specified one (S).
If it successfully reads the sequence it "zeros" some
fields to specify, that the next read char should be
*actually* read from the input stream (as far as I
understand the code). Among others is sets the
FLastChar field to #0:
>AdXChrFlt.pas:469
FLastChar := #0;
On the other hand, there is a
>AdXChrFlt.pas:505
TApdInCharFilter.ReadChar : DOMChar;
This function "reads" the next char. Actually, it
checks the FLastChar against '' (!):
>AdXChrFlt.pas:510
if FLastChar = '' then begin
and uses the FLastChar instead of reading the next
char from the input stream. An this is a bug - it
should check against #0 (as it is set in
TApdInCharFilter.TryRead). The workaround is to change
"''" to "#0" at AdXChrFlt.pas:510.
It should look like:
if FLastChar = #0 then begin
Logged In: YES
user_id=84969
Originator: NO
Fixed & posted to CVS.