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