IMPLEMENTATION MODULE MYPARAM; (*************************************************************************** Environnement : Solaris 2.3 Modula -2 ------------- Programmeurs : Pierre L'Ecuyer, Benoit Martin. ------------ ***************************************************************************) FROM MYINOUT IMPORT WriteString, WriteLn, WriteCard, Assert, Error; FROM MYSTR IMPORT Copy, Append; FROM EntryExit IMPORT argc, argv; FROM Environ IMPORT GetEnv; PROCEDURE ParamToString (N : CARDINAL; VAR S : ARRAY OF CHAR); VAR h, i : CARDINAL; Found : BOOLEAN; BEGIN Found := FALSE; Assert ((argc-1 >= N), "ParamToString: Argument not found."); i:= 0; WHILE NOT (Found) DO IF argv^[N]^[i] =0C THEN Found := TRUE; ELSE INC(i) END; END; h:= i; IF HIGH(S) >= h THEN FOR i := 0 TO h DO S[i] := argv^[N]^[i] END; IF HIGH(S) > h THEN S[h+1] := 0C END; ELSE Error ("ParamToString: Argument too long!"); END; END ParamToString; PROCEDURE HostName (VAR N : ARRAY OF CHAR); VAR Str : ARRAY [0..32] OF CHAR; BEGIN IF NOT GetEnv ("HOST", N) THEN Copy (N, "unknown...") END; IF GetEnv ("MACHINE", Str) THEN Append (N, ", "); Append (N, Str) END; END HostName; END MYPARAM.