home *** CD-ROM | disk | FTP | other *** search
- procedure InitSaveFile;
- label
- 99;
- var
- s : string[14];
- result : integer;
- begin
- if not SaveOpen then
- begin
- writeln;
- write('Name of file to hold saved text: ');
- readln(s);
- if length(s) = 0 then
- begin
- writeln('ITERM --- text save aborted.');
- goto 99
- end;
- {$I-}
- assign(SaveFile, s);
- reset(SaveFile);
- result := IOresult;
- case result of
- 0 : {existing file open ok}
- begin
- writeln('ITERM --- appending text to ',s);
- SaveOpen := TRUE;
- seek(SaveFile, FileSize(SaveFile))
- end;
- 1,2 : {file does not exist, need to create it}
- begin
- writeln('ITERM --- creating ', s);
- SaveOpen := TRUE;
- rewrite(SaveFile)
- end;
- $F1 : {illegal file name or disk full}
- writeln('ITERM --- text save aborted. ', s, ' is not a useable file name.');
- else {unresolved error -- just report it}
- writeln('ITERM --- I/O error number ', result:2,' on ',s);
- writeln(' Text save aborted.')
- end;
- {$I+}
- 99: {exit point if no file name}
- if (not (result in [0..2])) or (length(s) = 0) then
- begin
- SaveText := 0;
- Status(3,'Text save: OFF')
- end
- end;
- end;
-
- procedure DiskBuffer(c : char);
- {maintain a file of text from remote session as it appears on the screen}
- begin
- if SaveOpen then
- begin
- if SavePtr <= SAVE_BUF_SIZE then
- begin
- SaveBuffer[SavePtr] := c;
- SavePtr := succ(SavePtr)
- end
- else
- begin
- send(ord(^S)); {x-off}
- for SavePtr := 1 to SAVE_BUF_SIZE do
- write(SaveFile, SaveBuffer[SavePtr]);
- SavePtr := 1;
- SaveBuffer[SavePtr] := c;
- SavePtr := succ(SavePtr);
- send(ord(^Q)) {x-on}
- end
- end
- end;