main: use g_setenv() instead of setenv()
Removed the fallback setenv() implementation for solaris.
This commit is contained in:
parent
6517126204
commit
274b919966
@ -360,7 +360,6 @@ AC_CHECK_LIB(socket,socket,MPD_LIBS="$MPD_LIBS -lsocket",)
|
||||
AC_CHECK_LIB(nsl,gethostbyname,MPD_LIBS="$MPD_LIBS -lnsl",)
|
||||
|
||||
AC_CHECK_LIB(m,exp,MPD_LIBS="$MPD_LIBS -lm",)
|
||||
AC_CHECK_FUNCS(setenv)
|
||||
|
||||
# Check for pkg-config before using it
|
||||
PKG_PROG_PKG_CONFIG
|
||||
|
43
src/main.c
43
src/main.c
@ -71,47 +71,6 @@
|
||||
#include <locale.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* from git-1.3.0, needed for solaris
|
||||
*/
|
||||
#ifndef HAVE_SETENV
|
||||
static int setenv(const char *name, const char *value, int replace)
|
||||
{
|
||||
int out;
|
||||
size_t namelen, valuelen;
|
||||
char *envstr;
|
||||
|
||||
if (!name || !value)
|
||||
return -1;
|
||||
if (!replace) {
|
||||
char *oldval = NULL;
|
||||
oldval = getenv(name);
|
||||
if (oldval)
|
||||
return 0;
|
||||
}
|
||||
|
||||
namelen = strlen(name);
|
||||
valuelen = strlen(value);
|
||||
envstr = xmalloc((namelen + valuelen + 2));
|
||||
if (!envstr)
|
||||
return -1;
|
||||
|
||||
memcpy(envstr, name, namelen);
|
||||
envstr[namelen] = '=';
|
||||
memcpy(envstr + namelen + 1, value, valuelen);
|
||||
envstr[namelen + valuelen + 1] = 0;
|
||||
|
||||
out = putenv(envstr);
|
||||
/* putenv(3) makes the argument string part of the environment,
|
||||
* and changing that string modifies the environment --- which
|
||||
* means we do not own that storage anymore. Do not free
|
||||
* envstr.
|
||||
*/
|
||||
|
||||
return out;
|
||||
}
|
||||
#endif /* HAVE_SETENV */
|
||||
|
||||
static void changeToUser(void)
|
||||
{
|
||||
ConfigParam *param = getConfigParam(CONF_USER);
|
||||
@ -148,7 +107,7 @@ static void changeToUser(void)
|
||||
|
||||
/* this is needed by libs such as arts */
|
||||
if (userpwd->pw_dir) {
|
||||
setenv("HOME", userpwd->pw_dir, 1);
|
||||
g_setenv("HOME", userpwd->pw_dir, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user