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(nsl,gethostbyname,MPD_LIBS="$MPD_LIBS -lnsl",)
|
||||||
|
|
||||||
AC_CHECK_LIB(m,exp,MPD_LIBS="$MPD_LIBS -lm",)
|
AC_CHECK_LIB(m,exp,MPD_LIBS="$MPD_LIBS -lm",)
|
||||||
AC_CHECK_FUNCS(setenv)
|
|
||||||
|
|
||||||
# Check for pkg-config before using it
|
# Check for pkg-config before using it
|
||||||
PKG_PROG_PKG_CONFIG
|
PKG_PROG_PKG_CONFIG
|
||||||
|
43
src/main.c
43
src/main.c
@ -71,47 +71,6 @@
|
|||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#endif
|
#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)
|
static void changeToUser(void)
|
||||||
{
|
{
|
||||||
ConfigParam *param = getConfigParam(CONF_USER);
|
ConfigParam *param = getConfigParam(CONF_USER);
|
||||||
@ -148,7 +107,7 @@ static void changeToUser(void)
|
|||||||
|
|
||||||
/* this is needed by libs such as arts */
|
/* this is needed by libs such as arts */
|
||||||
if (userpwd->pw_dir) {
|
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