Console.txt 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. MODULE LinConsole;
  2. (* THIS IS TEXT COPY OF OpenBUGS Lin/Mod/Console.odc *)
  3. (* DO NOT EDIT *)
  4. IMPORT
  5. SYSTEM,
  6. Console,
  7. LinLibc;
  8. TYPE
  9. LinCons = POINTER TO RECORD (Console.Console) END;
  10. LinProcess = POINTER TO RECORD (Console.Process) END;
  11. CONST
  12. strLen = 1024;
  13. VAR
  14. s: ARRAY strLen OF CHAR;
  15. ss: ARRAY strLen OF SHORTCHAR;
  16. linCons: LinCons;
  17. version-: INTEGER;
  18. maintainer-: ARRAY 40 OF CHAR;
  19. PROCEDURE (cons: LinCons) ReadLn (OUT text: ARRAY OF CHAR);
  20. VAR
  21. i: INTEGER;
  22. str: POINTER TO ARRAY [untagged] OF SHORTCHAR;
  23. BEGIN
  24. str := LinLibc.fgets(ss, strLen, LinLibc.stdin);
  25. IF (str = NIL) THEN
  26. (* if end of file, then ss is not changed by fgets and NIL is returned.
  27. We return an empty string here *)
  28. text[0] := 0X;
  29. RETURN
  30. END;
  31. i := 0;
  32. REPEAT
  33. text[i] := ss[i];
  34. INC(i)
  35. UNTIL (ss[i] = 0X) OR (i = LEN(text) - 1);
  36. text[i] := 0X
  37. END ReadLn;
  38. PROCEDURE Printf;
  39. VAR res: INTEGER;
  40. BEGIN
  41. res := LinLibc.printf(ss);
  42. res := LinLibc.fflush(LinLibc.NULL)
  43. END Printf;
  44. PROCEDURE (cons: LinCons) WriteChar (c: CHAR);
  45. BEGIN
  46. s[0] := c;
  47. s[1] := 0X;
  48. ss := SHORT(s);
  49. Printf()
  50. END WriteChar;
  51. PROCEDURE (cons: LinCons) WriteStr (IN text: ARRAY OF CHAR);
  52. BEGIN
  53. ss := SHORT(text);
  54. Printf()
  55. END WriteStr;
  56. PROCEDURE (cons: LinCons) WriteLn;
  57. BEGIN
  58. ss[0] := 0AX;
  59. ss[1] := 0X;
  60. Printf()
  61. END WriteLn;
  62. PROCEDURE (cons: LinCons) Open;
  63. BEGIN
  64. END Open;
  65. PROCEDURE (cons: LinCons) Close;
  66. BEGIN
  67. END Close;
  68. PROCEDURE (cons: LinCons) CreateProcess (cmdLine: ARRAY OF CHAR): Console.Process;
  69. BEGIN
  70. (* needs coding *)
  71. RETURN NIL
  72. END CreateProcess;
  73. PROCEDURE (cons: LinCons) CommandLine (OUT cmdLine: ARRAY OF CHAR);
  74. BEGIN
  75. END CommandLine;
  76. PROCEDURE (p: LinProcess) Terminate;
  77. BEGIN
  78. (* needs coding *)
  79. END Terminate;
  80. PROCEDURE Maintainer;
  81. BEGIN
  82. version := 303;
  83. maintainer := "A.Thomas"
  84. END Maintainer;
  85. PROCEDURE Init;
  86. BEGIN
  87. Maintainer;
  88. NEW(linCons);
  89. Console.SetConsole(linCons)
  90. END Init;
  91. BEGIN
  92. Init
  93. END LinConsole.