env-generic.cpp revision ababd7e83ee3d23c5191a0d3802f10764df69e36
* available from http://www.virtualbox.org. This file is free software;
#include <stdlib.h>
#if !defined(RT_OS_WINDOWS)
# include <unistd.h>
#if defined(RT_OS_SOLARIS)
extern char **environ;
typedef struct RTENVINTERNAL
char **papszEnv;
char **papszEnvOtherCP;
static const char * const *rtEnvDefault(void)
#ifdef RT_OS_DARWIN
return *(_NSGetEnviron());
return NULL;
return environ;
if (pIntEnv)
return VINF_SUCCESS;
return VERR_NO_MEMORY;
return VINF_SUCCESS;
while (iVar-- > 0)
return VINF_SUCCESS;
const char * const *papszEnv;
cVars = 0;
if (papszEnv)
cVars++;
return rc;
return rc;
if (pIntEnvToClone)
return rc;
int rc;
if (!pszEq)
return rc;
int rc;
char *pszVarOtherCP;
char *pszValueOtherCP;
if (pszEntry)
void *pvNew = RTMemRealloc(pIntEnv->papszEnv, sizeof(char *) * (pIntEnv->cAllocated + RTENV_GROW_SIZE));
if (!pvNew)
return rc;
int rc;
char *pszVarOtherCP;
return rc;
RTDECL(int) RTEnvGetEx(RTENV Env, const char *pszVar, char *pszValue, size_t cbValue, size_t *pcchActual)
if (pcchActual)
*pcchActual = 0;
int rc;
char *pszVarOtherCP;
if (pszValueOtherCP)
char *pszValueUtf8;
if (pcchActual)
if (pcchActual)
return rc;
bool fExist = false;
char *pszVarOtherCP;
fExist = true;
return fExist;
const char * const *papszRet;
if (!papszRet)
char **papsz;
papszRet = pIntEnv->papszEnvOtherCP = papsz = (char **)RTMemAlloc(sizeof(char *) * (pIntEnv->cVars + 1));
if (papsz)
return papszRet;