some more fixes to fixes

This commit is contained in:
ceriel 1988-02-19 16:52:54 +00:00
parent dead814781
commit d949e3e8c5
3 changed files with 15 additions and 10 deletions

View file

@ -132,7 +132,7 @@ IMPLEMENTATION MODULE InOut ;
j : CARDINAL; j : CARDINAL;
BEGIN BEGIN
Done := TRUE; Done := TRUE;
IF Streams.isatty(Streams.InputStream) THEN IF Streams.isatty(Streams.InputStream, result) THEN
XWriteString(prompt); XWriteString(prompt);
END; END;
XReadString(buf); XReadString(buf);

View file

@ -16,8 +16,7 @@ IMPLEMENTATION MODULE PascalIO;
IMPORT RealConversions; IMPORT RealConversions;
FROM Streams IMPORT Stream, StreamKind, StreamMode, StreamResult, FROM Streams IMPORT Stream, StreamKind, StreamMode, StreamResult,
InputStream, OutputStream, OpenStream, CloseStream, InputStream, OutputStream, OpenStream, CloseStream,
EndOfStream, Read, Write, SetStreamBuffering, EndOfStream, Read, Write, StreamBuffering;
StreamBuffering;
FROM Storage IMPORT ALLOCATE; FROM Storage IMPORT ALLOCATE;
FROM SYSTEM IMPORT ADR; FROM SYSTEM IMPORT ADR;

View file

@ -376,22 +376,24 @@ IMPLEMENTATION MODULE Streams;
PROCEDURE isatty(stream: Stream; VAR result: StreamResult): BOOLEAN; PROCEDURE isatty(stream: Stream; VAR result: StreamResult): BOOLEAN;
VAR buf: ARRAY[1..100] OF CHAR; VAR buf: ARRAY[1..100] OF CHAR;
BEGIN BEGIN
IF (stream = NIL) OR (s^.kind = none) THEN IF (stream = NIL) OR (stream^.kind = none) THEN
result := nostream; result := nostream;
RETURN FALSE; RETURN FALSE;
END; END;
#ifdef __USG #ifdef __USG
RETURN ioctl(stream^.fildes, INTEGER(ORD('T') * 256 + 1), ADR(buf)) >= 0; RETURN Unix.ioctl(stream^.fildes, INTEGER(ORD('T') * 256 + 1), ADR(buf)) >= 0;
#else #else
#ifdef __BSD4_2 #ifdef __BSD4_2
RETURN ioctl(stream^.fildes, INTEGER(ORD('t') * 256 + 8 + 6*65536 + 40000000H), ADR(buf)) >= 0; RETURN Unix.ioctl(stream^.fildes, INTEGER(ORD('t') * 256 + 8 + 6*65536 + 40000000H), ADR(buf)) >= 0;
#else #else
RETURN ioctl(stream^.fildes, INTEGER(ORD('t') * 256 + 8), ADR(buf)) >= 0; RETURN Unix.ioctl(stream^.fildes, INTEGER(ORD('t') * 256 + 8), ADR(buf)) >= 0;
#endif #endif
#endif #endif
END isatty; END isatty;
BEGIN PROCEDURE InitStreams;
VAR result: StreamResult;
BEGIN
InputStream := ADR(ibuf); InputStream := ADR(ibuf);
OutputStream := ADR(obuf); OutputStream := ADR(obuf);
ErrorStream := ADR(ebuf); ErrorStream := ADR(ebuf);
@ -414,7 +416,7 @@ BEGIN
maxcnt := 0; maxcnt := 0;
cnt := 0; cnt := 0;
bufferedcnt := BUFSIZ; bufferedcnt := BUFSIZ;
IF isatty(OutputStream) THEN IF isatty(OutputStream, result) THEN
buffering := linebuffered; buffering := linebuffered;
ELSE ELSE
buffering := blockbuffered; buffering := blockbuffered;
@ -429,7 +431,7 @@ BEGIN
maxcnt := 0; maxcnt := 0;
cnt := 0; cnt := 0;
bufferedcnt := BUFSIZ; bufferedcnt := BUFSIZ;
IF isatty(ErrorStream) THEN IF isatty(ErrorStream, result) THEN
buffering := linebuffered; buffering := linebuffered;
ELSE ELSE
buffering := blockbuffered; buffering := blockbuffered;
@ -437,4 +439,8 @@ BEGIN
END; END;
head := InputStream; head := InputStream;
IF Epilogue.CallAtEnd(EndIt) THEN ; END; IF Epilogue.CallAtEnd(EndIt) THEN ; END;
END InitStreams;
BEGIN
InitStreams
END Streams. END Streams.