Menu

#68 released code failed to parse modems' xml-files

Fixed
closed-fixed
nobody
Modem (6)
5
2007-03-22
2006-07-03
YURiQUE
No

>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

Discussion

  • Stephen Boyd

    Stephen Boyd - 2007-03-22

    Logged In: YES
    user_id=84969
    Originator: NO

    Fixed & posted to CVS.

     
  • Stephen Boyd

    Stephen Boyd - 2007-03-22
    • status: open --> closed-fixed
     

Log in to post a comment.