BSD 4_3_Net_2 release
[unix-history] / usr / src / usr.bin / pascal / tstpx / pi / unixio.i
CommitLineData
d399a2f2
KM
1(* Copyright (c) 1979 Regents of the University of California *)
2
3const
4b9ccde7 4sccsid = '@(#)unixio.i 1.1 6/17/81';
d399a2f2
KM
5
6type
7fileptr = record
8 cnt :integer
9 end;
10
11function TELL(
12var fptr :text)
13{returns} :fileptr;
14
15var
16filesize, headsize, tailsize :integer;
17result :fileptr;
18
19begin
20tailsize := 0;
21while not eof(fptr) do begin
22 get(fptr);
23 tailsize := tailsize + 1
24 end;
25filesize := 0;
26reset(fptr);
27while not eof(fptr) do begin
28 get(fptr);
29 filesize := filesize + 1
30 end;
31reset(fptr);
32for headsize := 1 to filesize - tailsize do
33 get(fptr);
34result.cnt := headsize;
35TELL := result
36end;
37
38procedure SEEK(
39 var fptr :text;
40 var cnt :fileptr);
41
42var
43i :integer;
44
45begin
46reset(fptr);
47for i := 1 to cnt.cnt do
48 get(fptr)
49end;
50
51procedure APPEND(
52 var fptr :text);
53
54var
55tmp :text;
56
57begin
58rewrite(tmp);
59reset(fptr);
60while not eof(fptr) do begin
61 if eoln(fptr) then
62 writeln(tmp)
63 else
64 write(tmp, fptr^);
65 get(fptr)
66 end;
67reset(tmp);
68rewrite(fptr);
69while not eof(tmp) do begin
70 if eoln(tmp) then
71 writeln(fptr)
72 else
73 write(fptr, tmp^);
74 get(tmp)
75 end
76end;