DEADSOFTWARE

cpmake: fix preprocessor selector handling
[cpc.git] / src / generic / Dsw / Mod / LoopMain.cp
1 MODULE DswLoopMain;
3 (* file locking test *)
5 IMPORT Kernel, Files, Console, Strings, Log;
7 VAR
8 mode: BOOLEAN;
10 PROCEDURE Init;
11 VAR i: INTEGER; s: ARRAY 16 OF CHAR; f: Files.File; loc: Files.Locator;
12 BEGIN
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)
16 END;
17 Console.WriteLn;
18 Kernel.Quit(1)
19 END;
20 i := 1;
21 mode := Files.shared;
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
28 ELSE
29 f := Files.dir.Old(loc, Kernel.argv[i]$, mode);
30 Log.Int(i); Log.String(": ");
31 IF f = NIL THEN Log.String("~open")
32 ELSE Log.String("ok")
33 END;
34 Log.Int(loc.res);
35 Log.Ln
36 END;
37 INC(i)
38 END;
39 LOOP END;
40 Kernel.Quit(0)
41 END Init;
43 BEGIN
44 Kernel.Start(Init)
45 END DswLoopMain.