Skip to content
Snippets Groups Projects
getenv.c 1.95 KiB
Newer Older
  • Learn to ignore specific revisions
  • Daniel Stenberg's avatar
    Daniel Stenberg committed
    /*****************************************************************************
     *                                  _   _ ____  _     
     *  Project                     ___| | | |  _ \| |    
     *                             / __| | | | |_) | |    
     *                            | (__| |_| |  _ <| |___ 
     *                             \___|\___/|_| \_\_____|
     *
    
     * Copyright (C) 1998 - 2002, Daniel Stenberg, <daniel@haxx.se>, et al.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
     *
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
     * In order to be useful for every potential user, curl and libcurl are
     * dual-licensed under the MPL and the MIT/X-derivate licenses.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
     *
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
     * You may opt to use, copy, modify, merge, publish, distribute and/or sell
     * copies of the Software, and permit persons to whom the Software is
     * furnished to do so, under the terms of the MPL or the MIT/X-derivate
     * licenses. You may pick one of these licenses.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
     *
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
     * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
     * KIND, either express or implied.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
     *
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
     * $Id$
     *****************************************************************************/
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    #include "setup.h"
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    #include <stdio.h>
    #include <stdlib.h>
    
    #include <string.h>
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    
    #ifdef WIN32
    #include <windows.h>
    #endif
    
    
    #ifdef VMS
    #include <unixlib.h>
    #endif
    
    
    #ifdef MALLOCDEBUG
    #include "memdebug.h"
    #endif
    
    
    char *GetEnv(const char *variable)
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    {
    #ifdef WIN32
      /* This shit requires windows.h (HUGE) to be included */
    
      char env[MAX_PATH]; /* MAX_PATH is from windef.h */
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
      char *temp = getenv(variable);
      env[0] = '\0';
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
      if (temp != NULL)
        ExpandEnvironmentStrings(temp, env, sizeof(env));
    
    #else
    #ifdef	VMS
      char *env = getenv(variable);
      if (env && strcmp("HOME",variable) == 0) {
    	env = decc$translate_vms(env);
      }
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    #else
      /* no length control */
      char *env = getenv(variable);
    
    #endif
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    #endif
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
      return (env && env[0])?strdup(env):NULL;
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    }
    
    
    char *curl_getenv(const char *v)
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    {
      return GetEnv(v);
    }
    
    
    /*
     * local variables:
     * eval: (load-file "../curl-mode.el")
     * end:
    
     * vim600: fdm=marker
     * vim: et sw=2 ts=2 sts=2 tw=78