3 (* file locking test *)
5 IMPORT Kernel
, Files
, Console
, Strings
, Log
;
11 VAR i
: INTEGER; s
: ARRAY 16 OF CHAR; f
: Files
.File
; loc
: Files
.Locator
;
13 IF (Kernel
.trapCount
> 0) & (Kernel
.err
# 128) THEN
14 IF Kernel
.err
= 200 THEN Console
.WriteStr("Keyboard Interrupt")
15 ELSE Console
.WriteStr("Trap "); Strings
.IntToString(Kernel
.err
, s
); Console
.WriteStr(s
)
22 loc
:= Files
.dir
.This("");
23 WHILE i
< Kernel
.argc
DO
24 IF Kernel
.argv
[i
]$
= "-" THEN mode
:= Files
.shared
25 ELSIF Kernel
.argv
[i
]$
= "+" THEN mode
:= Files
.exclusive
26 ELSIF Kernel
.argv
[i
]$
= "!" THEN
27 IF f
# NIL THEN f
.Close
; f
:= NIL END
29 f
:= Files
.dir
.Old(loc
, Kernel
.argv
[i
]$
, mode
);
30 Log
.Int(i
); Log
.String(": ");
31 IF f
= NIL THEN Log
.String("~open")