3 IMPORT S
:= SYSTEM
, Console
, HostLang
, unistd
:= PosixCunistd
;
6 Directory
= POINTER TO RECORD (Console
.Directory
) END;
8 PROCEDURE (d
: Directory
) WriteChar (ch
: CHAR);
9 VAR res
: INTEGER; s
: ARRAY 2 OF CHAR; ss
: ARRAY 12 OF SHORTCHAR
;
11 s
[0] := ch
; s
[1] := 0X
;
12 HostLang
.StringToHost(s
, ss
, HostLang
.replace
, res
);
14 res
:= unistd
.write(1, S
.ADR(ss
[0]), LEN(ss$
));
15 res
:= unistd
.fsync(1)
18 PROCEDURE (d
: Directory
) WriteString (IN s
: ARRAY OF CHAR);
19 VAR ss
: POINTER TO ARRAY OF SHORTCHAR
; res
: INTEGER;
21 NEW(ss
, LEN(s$
) * 4 + 1);
22 HostLang
.StringToHost(s
, ss
, HostLang
.replace
, res
);
24 res
:= unistd
.write(1, S
.ADR(ss
[0]), LEN(ss$
));
25 res
:= unistd
.fsync(1)
28 PROCEDURE (d
: Directory
) WriteLn
;
36 NEW(d
); Console
.SetDir(d
)