IMPLEMENTATION MODULE Environment ;
FROM SYSTEM IMPORT ADR ;
FROM libc IMPORT getenv ;
FROM ASCII IMPORT nul ;
FROM StrLib IMPORT StrCopy ;
CONST
Max = 5000 ;
PROCEDURE GetEnvironment (Env: ARRAY OF CHAR; VAR a: ARRAY OF CHAR) : BOOLEAN ;
VAR
Out : ARRAY [0..Max] OF CHAR ;
High,
i : CARDINAL ;
Addr: POINTER TO CHAR ;
BEGIN
StrCopy(Env, Out) ;
i := 0 ;
High := HIGH(a) ;
Addr := getenv(ADR(Out)) ;
WHILE (i<High) AND (Addr#NIL) AND (Addr^#nul) DO
a[i] := Addr^ ;
INC(Addr) ;
INC(i)
END ;
IF i<High
THEN
a[i] := nul
END ;
RETURN( Addr#NIL )
END GetEnvironment ;
END Environment.