date and time created 81/06/17 00:40:37 by mckusick
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Wed, 17 Jun 1981 15:40:37 +0000 (07:40 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Wed, 17 Jun 1981 15:40:37 +0000 (07:40 -0800)
SCCS-vsn: usr.bin/pascal/libpc/unixio.i 1.1

usr/src/usr.bin/pascal/libpc/unixio.i [new file with mode: 0644]

diff --git a/usr/src/usr.bin/pascal/libpc/unixio.i b/usr/src/usr.bin/pascal/libpc/unixio.i
new file mode 100644 (file)
index 0000000..3bc0fca
--- /dev/null
@@ -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;