diff --git a/lib/getenv.c b/lib/getenv.c index 4f955f893..475c3d3ca 100644 --- a/lib/getenv.c +++ b/lib/getenv.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2005, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2007, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -48,18 +48,15 @@ char *GetEnv(const char *variable) env[0] = '\0'; if (temp != NULL) ExpandEnvironmentStrings(temp, env, sizeof(env)); + return (env[0] != '\0')?strdup(env):NULL; #else -#ifdef VMS - char *env = getenv(variable); - if (env && strcmp("HOME",variable) == 0) { - env = decc$translate_vms(env); - } -#else - /* no length control */ char *env = getenv(variable); +#ifdef VMS + if (env && strcmp("HOME",variable) == 0) + env = decc$translate_vms(env); #endif + return env?strdup(env):NULL; #endif - return (env && env[0])?strdup(env):NULL; #endif }