FUNCTION GET_ENVIRON, EVAR, PATH=PATH ; ON_ERROR, 2 ; IF N_PARAMS() NE 1 THEN MESSAGE, $ 'Syntax: Result = GET_ENVIRON( EVAR )' ; ; If the operating system is VMS, then use TRNLOG to get the value. ; IF OS_FAMILY() EQ 'vms' THEN BEGIN DUMMY = EXECUTE('TEST = TRNLOG(EVAR, VALUE, /FULL)') ; ; If unsuccessful, and the input starts with a dollar sign, then try it ; without the dollar sign. ; IF (NOT TEST) AND (STRMID(EVAR,0,1) EQ '$') THEN BEGIN FOLLOWING = STRMID(EVAR,1,STRLEN(EVAR)-1) DUMMY = EXECUTE('TEST = TRNLOG(FOLLOWING, VALUE, /FULL)') ENDIF IF NOT TEST THEN RETURN, '' IF KEYWORD_SET(PATH) THEN BEGIN VAL = VALUE VALUE = VALUE(0) FOR I = 1,N_ELEMENTS(VAL)-1 DO VALUE = VALUE + ',' + VAL(I) ENDIF ; ; For other operating systems, use GETENV. ; END ELSE BEGIN VALUE = GETENV(EVAR) IF (VALUE EQ '') AND (STRMID(EVAR,0,1) EQ '$') THEN BEGIN FOLLOWING = STRMID(EVAR,1,STRLEN(EVAR)-1) VALUE = GETENV(FOLLOWING) ENDIF ENDELSE ; RETURN, VALUE END