[comp.lang.pascal] Lightspeed Pascal 2.0 bug

ags@s.cc.purdue.edu (Dave Seaman) (02/17/89)

Given the declarations

	var ff : text; v : char;

The statement

	read(ff,v)

is supposed to be exactly equivalent to

	v := ff^; get(ff)

as stated in 6.9.1(b) of the American Pascal Standard and also in Chapter 17,
paragraph 9.4.1.1 (page 310) of Think's Lightspeed Pascal User Manual.  The
implementation in Lightspeed Pascal 2.0 for the Macintosh, however, is
broken.  The statement turns out to have the same effect as

	v := ff^; if not eoln(ff) then get(ff)

which means that on a nontrivial file you can read forever.  

Even Turbo Pascal 1.1 manages to get this one right!  (I have cross-posted
this to comp.lang.pascal because (a) it is not in any way
Macintosh-related, and (b) to remind the people who keep posting 
MS-DOS-specific questions to that group that there is another world out there.)

-- 
Dave Seaman	  					
ags@j.cc.purdue.edu

siegel@endor.harvard.edu (Rich Siegel) (02/19/89)

	Thanks for the report; this isn't the first, but there will be a fix
in the librares in the near future...

		R.
Rich Siegel
Staff Software Developer
THINK Technologies Division, Symantec Corp.
Internet: siegel@endor.harvard.edu
UUCP: ..harvard!endor!siegel
Phone: (617) 275-4800 x305