1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-23 07:12:39 +00:00

- move our setenv() fallback implementation to osdep

- assert that the override param is nonzero (zero is not implemented)
- correct return value type to int

based on a patch by Diego
fixes bugzilla bug #342


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17246 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
al 2005-12-26 03:16:48 +00:00
parent 74f1ad8a0a
commit fa2d1c9a69
5 changed files with 51 additions and 33 deletions

21
configure vendored
View File

@ -3304,6 +3304,21 @@ fi
echores "$_glob"
echocheck "setenv()"
cat > $TMPC << EOF
#include <stdlib.h>
int main (void){ setenv("","",0); return 0; }
EOF
_setenv=no
cc_check && _setenv=yes
if test "$_setenv" = yes ; then
_def_setenv='#define HAVE_SETENV 1'
else
_def_setenv='#undef HAVE_SETENV'
fi
echores "$_setenv"
echocheck "sys/sysinfo.h"
cat > $TMPC << EOF
#include <sys/sysinfo.h>
@ -7480,6 +7495,12 @@ $_def_gettimeofday
/* Define this if your system has glob */
$_def_glob
/* Define this if your system has setenv */
$_def_setenv
#ifndef HAVE_SETENV
int setenv(const char *name, const char *val, int overwrite);
#endif
/* Define this if your system has pthreads */
$_def_pthreads

View File

@ -122,22 +122,6 @@ static int read_buffer(unsigned char* data,int len){
// end ring buffer stuff
#if defined(__MINGW32__) || defined(HPUX) || defined(sgi) || (defined(sun) && defined(__svr4__))
/* setenv is missing on win32, solaris, IRIX and HPUX */
static void setenv(const char *name, const char *val, int _xx)
{
int len = strlen(name) + strlen(val) + 2;
char *env = malloc(len);
if (env != NULL) {
strcpy(env, name);
strcat(env, "=");
strcat(env, val);
putenv(env);
}
}
#endif
// to set/get/query special features/parameters
static int control(int cmd,void *arg){

View File

@ -138,22 +138,6 @@ LIBVO_EXTERN(sdl)
#include <SDL.h>
//#include <SDL/SDL_syswm.h>
#if defined(__MINGW32__) || defined(HPUX) || defined(sgi) || (defined(sun) && defined(__svr4__))
/* setenv is missing on win32, solaris, IRIX and HPUX */
static void setenv(const char *name, const char *val, int _xx)
{
int len = strlen(name) + strlen(val) + 2;
char *env = malloc(len);
if (env != NULL) {
strcpy(env, name);
strcat(env, "=");
strcat(env, val);
putenv(env);
}
}
#endif
#ifdef SDL_ENABLE_LOCKS
#define SDL_OVR_LOCK(x) if (SDL_LockYUVOverlay (priv->overlay)) { \

View File

@ -4,7 +4,7 @@ include ../config.mak
LIBNAME = libosdep.a
SRCS= shmem.c strsep.c strl.c vsscanf.c scandir.c gettimeofday.c fseeko.c \
swab.c
swab.c setenv.c
# timer.c
getch = getch2.c

29
osdep/setenv.c Normal file
View File

@ -0,0 +1,29 @@
/* setenv implementation for systems lacking it. */
#include "../config.h"
#ifndef HAVE_SETENV
#include <stdlib.h>
#include <string.h>
#ifndef MP_DEBUG
#define NDEBUG
#endif
#include <assert.h>
int setenv(const char *name, const char *val, int overwrite)
{
int len = strlen(name) + strlen(val) + 2;
char *env = malloc(len);
if (!env) { return -1; }
assert(overwrite != 0);
strcpy(env, name);
strcat(env, "=");
strcat(env, val);
putenv(env);
return 0;
}
#endif