From d399a2f23ed12703b521599f9cf6a30c35ec6119 Mon Sep 17 00:00:00 2001 From: Kirk McKusick Date: Wed, 17 Jun 1981 07:40:37 -0800 Subject: [PATCH] date and time created 81/06/17 00:40:37 by mckusick SCCS-vsn: usr.bin/pascal/libpc/unixio.i 1.1 --- usr/src/usr.bin/pascal/libpc/unixio.i | 76 +++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 usr/src/usr.bin/pascal/libpc/unixio.i diff --git a/usr/src/usr.bin/pascal/libpc/unixio.i b/usr/src/usr.bin/pascal/libpc/unixio.i new file mode 100644 index 0000000000..3bc0fca1a9 --- /dev/null +++ b/usr/src/usr.bin/pascal/libpc/unixio.i @@ -0,0 +1,76 @@ +(* Copyright (c) 1979 Regents of the University of California *) + +const +sccsid = '@(#)unixio.i 1.1 %G%'; + +type +fileptr = record + cnt :integer + end; + +function TELL( +var fptr :text) +{returns} :fileptr; + +var +filesize, headsize, tailsize :integer; +result :fileptr; + +begin +tailsize := 0; +while not eof(fptr) do begin + get(fptr); + tailsize := tailsize + 1 + end; +filesize := 0; +reset(fptr); +while not eof(fptr) do begin + get(fptr); + filesize := filesize + 1 + end; +reset(fptr); +for headsize := 1 to filesize - tailsize do + get(fptr); +result.cnt := headsize; +TELL := result +end; + +procedure SEEK( + var fptr :text; + var cnt :fileptr); + +var +i :integer; + +begin +reset(fptr); +for i := 1 to cnt.cnt do + get(fptr) +end; + +procedure APPEND( + var fptr :text); + +var +tmp :text; + +begin +rewrite(tmp); +reset(fptr); +while not eof(fptr) do begin + if eoln(fptr) then + writeln(tmp) + else + write(tmp, fptr^); + get(fptr) + end; +reset(tmp); +rewrite(fptr); +while not eof(tmp) do begin + if eoln(tmp) then + writeln(fptr) + else + write(fptr, tmp^); + get(tmp) + end +end; -- 2.20.1