Build with colour output when on a tty/console.

This commit is contained in:
David Brown 2016-11-15 17:33:05 +00:00
parent f08e49d856
commit 6da0d5d685
7 changed files with 195 additions and 176 deletions

View file

@ -2,7 +2,13 @@ MODULE Out; (* DCW Brown. 2016-09-27 *)
IMPORT SYSTEM, Platform;
VAR buf: ARRAY 128 OF CHAR; in: INTEGER;
VAR
IsConsole-: BOOLEAN;
buf: ARRAY 128 OF CHAR;
in: INTEGER;
PROCEDURE Flush*;
VAR error: Platform.ErrorCode;
@ -199,5 +205,7 @@ PROCEDURE LongReal*(x: LONGREAL; n: INTEGER);
BEGIN RealP(x, n, TRUE);
END LongReal;
BEGIN in := 0
BEGIN
IsConsole := Platform.IsConsole(Platform.StdOut);
in := 0
END Out.

View file

@ -303,7 +303,7 @@ END New;
PROCEDURE -closefile (fd: LONGINT): INTEGER "close(fd)";
PROCEDURE -closefile(fd: LONGINT): INTEGER "close(fd)";
PROCEDURE Close*(h: FileHandle): ErrorCode;
BEGIN
@ -311,6 +311,12 @@ BEGIN
END Close;
PROCEDURE -isatty(fd: LONGINT): INTEGER "isatty(fd)";
PROCEDURE IsConsole*(h: FileHandle): BOOLEAN;
BEGIN RETURN isatty(h) # 0 END IsConsole;
PROCEDURE -fstat(fd: LONGINT): INTEGER "fstat(fd, &s)";
PROCEDURE -stat(n: ARRAY OF CHAR): INTEGER "stat((char*)n, &s)";

View file

@ -539,6 +539,11 @@ VAR mode: SYSTEM.INT32;
BEGIN IF GetConsoleMode(StdOut, mode) THEN SetConsoleMode(StdOut, mode+VTprocessing) END
END EnableVT100;
PROCEDURE IsConsole*(h: FileHandle): BOOLEAN;
VAR mode: SYSTEM.INT32;
BEGIN RETURN GetConsoleMode(StdOut, mode)
END IsConsole;
PROCEDURE TestLittleEndian;
VAR i: INTEGER;