Browse Source

* Fixed some severe bugs (sg)

fcl 26 years ago
parent
commit
eec7aaad52
1 changed files with 11 additions and 18 deletions
  1. 11 18
      fcl/inc/parser.inc

+ 11 - 18
fcl/inc/parser.inc

@@ -58,26 +58,16 @@ begin
   FSourceEnd[0] := #0;
 end;
 
-
 procedure TParser.SkipBlanks;
-var
-  Count            : Integer;
 begin
-  Inc(FOrigin, FSourcePtr - FBuffer);
-  FSourceEnd[0] := FSaveChar;
-  Count := FBufPtr - FSourcePtr;
-  if Count <> 0 then Move(FSourcePtr[0], FBuffer[0], Count);
-  FBufPtr := FBuffer + Count;
-  Inc(FBufPtr, FStream.Read(FBufPtr[0], FBufEnd - FBufPtr));
-  FSourcePtr := FBuffer;
-  FSourceEnd := FBufPtr;
-  if FSourceEnd = FBufEnd then
-  begin
-    FSourceEnd := LineStart(FBuffer, FSourceEnd - 1);
-    if FSourceEnd = FBuffer then Error(SLineTooLong);
+  while FSourcePtr^ < #33 do begin
+    if FSourcePtr^ = #0 then begin
+      ReadBuffer;
+      if FSourcePtr^ = #0 then exit;
+      continue;
+    end else if FSourcePtr^ = #10 then Inc(FSourceLine);
+    Inc(FSourcePtr);
   end;
-  FSaveChar := FSourceEnd[0];
-  FSourceEnd[0] := #0;
 end;
 
 constructor TParser.Create(Stream: TStream);
@@ -311,7 +301,10 @@ begin
 end;
 {
   $Log$
-  Revision 1.6  1999-04-08 10:18:53  peter
+  Revision 1.7  1999-09-28 10:28:21  fcl
+  * Fixed some severe bugs  (sg)
+
+  Revision 1.6  1999/04/08 10:18:53  peter
     * makefile updates
 
 }