home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
modu1096.zip
/
GPMsym
/
progargs.def
< prev
next >
Wrap
Text File
|
1996-08-29
|
4KB
|
84 lines
(****************************************************************)
(* *)
(* Gardens Point Modula-2 Library Definition *)
(* *)
(* *)
(* (c) Copyright 1996 Faculty of Information Technology *)
(* Queensland University of Technology *)
(* *)
(* Permission is granted to use, copy and change this *)
(* program as long as the copyright message is left intact *)
(* *)
(****************************************************************)
(* !SYSTEM! *) DEFINITION MODULE ProgArgs;
(* this is a system module; it is known to the compiler and *)
(* activated by import. There is no explicit implementation. *)
PROCEDURE ArgNumber() : CARDINAL;
(* postcondition : returns number of arguments with UNIX *)
(* conventions. Returns 1 if no args given *)
PROCEDURE GetArg(num : CARDINAL; VAR arg : ARRAY OF CHAR);
(* precondition : 0 <= num <= ArgNumber() - 1 *)
(* postcondition : arg is a nul terminated string. ( ==> *)
(* it is fast even if HIGH(arg) >> length) *)
(* usage example: to simply print all the arguments --
FOR ix := 0 TO ArgNumber() - 1 DO
GetArg(ix,str); WriteString(str); WriteLn;
END;
*)
PROCEDURE EnvironString(inStr : ARRAY OF CHAR;
VAR outStr : ARRAY OF CHAR);
(* precondition : HIGH(outStr) must be > than length of *)
(* outString ... no checking is done. *)
(* postcondition : outStr holds value of environ variable, *)
(* or an empty string if inStr not defined *)
PROCEDURE VersionTime(VAR outStr : ARRAY OF CHAR);
(* precondition : HIGH(outStr) > 26 *)
(* postcondition : outStr is a nul terminated string with *)
(* the date and time at which the program *)
(* was built. The string includes newline *)
(* usage example: to print version time --
*
* WriteString("Program version of ");
* VersionTime(str);
* WriteString(str); (* no WriteLn needed *)
*)
PROCEDURE UNIXtime() : CARDINAL;
(* returns time in seconds since 00:00:00, GMT Jan 1 1970 *)
PROCEDURE UNIXexit(res : CARDINAL);
(* exits program returning result code res to UNIX caller *)
PROCEDURE Assert(expr : BOOLEAN;
optString : ARRAY OF CHAR);
(* If expr is FALSE, the program aborts with the message *)
(* optString. The open array is optional, and if used *)
(* replaces the module name message which is otherwise *)
(* generated *)
(* From the command line "gpm -a" suppresses assert tests *)
VAR FP_Overflow : BOOLEAN;
(*
* This flag is set by the appropriate signal handler and remains
* set unless explicitly cleared by the application.
* The gpm front-end uses it to handle infinity on Alpha's
* (On most machines the result of an FP overflow is +infinity
* On ALPHA it's UNPREDICTABLE.)
* Typical usage:-
* FP_Overflow := FALSE;
* ... some floating-point calculations
* IF (FP_Overflow) THEN
* ... floating-point overflow occurred
* END;
*)
END ProgArgs.