(*$S+*) (* rmx/udi version *) MODULE GETREC; (*$I FIBDEF.LIB*) VAR @LFB: EXTERNAL ^FIB; EXTERNAL PROCEDURE @RNB; PROCEDURE GET(VAR F:FIB; SZ:INTEGER); VAR IS_EOLN : BOOLEAN; BEGIN F.FEOLN := FALSE; (* DEFAULT IS THAT WE RESET IT *) @LFB := ADDR(F); IF F.FEOF THEN BEGIN F.FEOLN := TRUE; EXIT END; @RNB; (* GO READ FROM THE FILE/CONSOLE *) IF F.FTEXT THEN (* TEXT FILE, EOLN/EOF MUST BE SET *) BEGIN F.FEOF := (F.FBUFFER[0] = CHR($1A)) OR (F.FEOF); IS_EOLN := (F.FBUFFER[0] = CHR($0D)); (* $0D for rmx/udi *) IF (IS_EOLN) OR (F.FEOF) THEN F.FEOLN := TRUE; IF (IS_EOLN) AND (F.OPTION = FRDWR) THEN (* GOBBLE LF *) @RNB; IF F.FEOF OR F.FEOLN THEN F.FBUFFER[0] := ' '; END END; MODEND.