Commit 78516b56 authored by Sam Lantinga's avatar Sam Lantinga

Configure dynamically generates SDL_config.h

I'm still wrestling with autoheader, but this should work for now...
Fixed lots of build problems with C library support disabled

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401345
parent dd8d77d9
......@@ -6,6 +6,7 @@ echo "This may take a while ..."
# Touch the timestamps on all the files since CVS messes them up
directory=`dirname $0`
touch $directory/configure.in
touch $directory/include/SDL_config.h.in
# Regenerate configuration files
aclocal || exit 1
......
dnl Process this file with autoconf to produce a configure script.
AC_INIT(README)
AH_TOP([/*
SDL - Simple DirectMedia Layer
Copyright (C) 1997-2006 Sam Lantinga
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Sam Lantinga
slouken@libsdl.org
*/
#ifndef _SDL_config_h
#define _SDL_config_h
/* This is a set of defines to configure the SDL features */
/* Comment this if you want to build without any libc requirements */
#undef HAVE_LIBC
#ifdef HAVE_LIBC
])
AC_CONFIG_HEADER(include/SDL_config.h)
AH_BOTTOM([
#endif /* HAVE_LIBC */
#endif /* _SDL_config_h */
])
dnl Set various version strings - taken gratefully from the GTk sources
#
......@@ -113,6 +150,40 @@ if test x$ac_cv_prog_gcc = xyes; then
fi
fi
dnl See whether we are allowed to use the system C library
AC_ARG_ENABLE(libc,
[ --enable-libc Use the system C library [default=yes]],
, AC_DEFINE(HAVE_LIBC))
dnl Checks for header files.
AC_CHECK_HEADERS(alloca.h stdint.h stdlib.h stdarg.h malloc.h)
AC_CHECK_HEADERS(ctype.h)
AC_CHECK_HEADERS(string.h)
AC_CHECK_HEADERS(stdio.h)
AC_CHECK_HEADERS(signal.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
AC_TYPE_SIZE_T
AC_CHECK_SIZEOF(char, 1)
AC_CHECK_SIZEOF(short, 2)
AC_CHECK_SIZEOF(int, 4)
AC_CHECK_SIZEOF(long, 4)
AC_CHECK_SIZEOF(long long, 8)
dnl Checks for library functions.
AC_FUNC_ALLOCA
AC_CHECK_FUNCS(malloc calloc realloc free)
AC_CHECK_FUNCS(getenv putenv qsort abs)
AC_CHECK_FUNCS(memset memcpy memmove memcmp)
AC_CHECK_FUNCS(strlen strcpy strncpy strcat strncat strdup)
AC_CHECK_FUNCS(_strrev _strupr _strlwr)
AC_CHECK_FUNCS(strchr strrchr strstr)
AC_CHECK_FUNCS(itoa _ltoa _uitoa _ultoa strtol _i64toa _ui64toa strtoll atoi atof)
AC_CHECK_FUNCS(strcmp strncmp stricmp strcasecmp)
AC_CHECK_FUNCS(sscanf snprintf vsnprintf)
dnl Initialize the compiler and linker flags for SDL applications
SDL_CFLAGS=""
......
......@@ -41,3 +41,7 @@ libSDLinclude_HEADERS = \
SDL_windows.h \
begin_code.h \
close_code.h
EXTRA_DIST = \
SDL_config.h.in \
SDL_config.h.minimal
......@@ -23,81 +23,8 @@
#ifndef _SDL_config_h
#define _SDL_config_h
/* This is a set of defines to configure the SDL features */
/* This is the minimal configuration that can be used to build SDL */
#define HAVE_STDARG_H
/* Comment this if you want to build without any libc requirements */
#define HAVE_LIBC
#ifdef HAVE_LIBC
/* Various C library headers */
#ifndef HAVE_CTYPE_H
#define HAVE_CTYPE_H
#endif
#ifndef HAVE_STDIO_H
#define HAVE_STDIO_H
#endif
#ifndef HAVE_STDLIB_H
#define HAVE_STDLIB_H
#endif
#ifndef HAVE_MALLOC_H
#define HAVE_MALLOC_H
#endif
#ifndef HAVE_STRING_H
#define HAVE_STRING_H
#endif
#if !defined(_WIN32_WCE)
#ifndef HAVE_SIGNAL_H
#define HAVE_SIGNAL_H
#endif
#endif /* !_WIN32_WCE */
/* Features provided by SDL_stdlib.h */
#define HAVE_MALLOC
#define HAVE_REALLOC
#define HAVE_FREE
#ifndef HAVE_ALLOCA
#define HAVE_ALLOCA
#endif
#if !defined(_WIN32) /* Don't use C runtime versions of these on Windows */
#define HAVE_GETENV
#define HAVE_PUTENV
#endif
/*#define HAVE_QSORT*/
/* Features provided by SDL_string.h */
#define HAVE_MEMSET
#define HAVE_MEMCPY
#define HAVE_MEMMOVE
#define HAVE_MEMCMP
#define HAVE_STRLEN
#define HAVE_STRCPY
#define HAVE_STRNCPY
#define HAVE_STRCAT
#define HAVE_STRNCAT
/*#define HAVE__STRREV*/
/*#define HAVE__STRUPR*/
/*#define HAVE__STRLWR*/
#define HAVE_STRCHR
#define HAVE_STRRCHR
#define HAVE_STRSTR
/*#define HAVE_ITOA*/
/*#define HAVE__LTOA*/
/*#define HAVE__UITOA*/
/*#define HAVE__ULTOA*/
/*#define HAVE_STRTOL*/
/*#define HAVE__I64TOA*/
/*#define HAVE__UI64TOA*/
/*#define HAVE_STRTOLL*/
#define HAVE_STRCMP
#define HAVE_STRNCMP
/*#define HAVE_STRICMP*/
/*#define HAVE_STRCASECMP*/
#define HAVE_SSCANF
/*#define HAVE_SNPRINTF*/
/*#define HAVE_VSNPRINTF*/
#endif /* HAVE_LIBC */
#define HAVE_STDARG_H 1
#endif /* _SDL_config_h */
/* include/SDL_config.h.in. Generated from configure.in by autoheader. */
/*
SDL - Simple DirectMedia Layer
Copyright (C) 1997-2006 Sam Lantinga
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Sam Lantinga
slouken@libsdl.org
*/
#ifndef _SDL_config_h
#define _SDL_config_h
/* This is a set of defines to configure the SDL features */
/* Comment this if you want to build without any libc requirements */
#undef HAVE_LIBC
#ifdef HAVE_LIBC
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
systems. This function is required for `alloca.c' support on those systems.
*/
#undef CRAY_STACKSEG_END
/* Define to 1 if using `alloca.c'. */
#undef C_ALLOCA
/* Define to 1 if you have the `abs' function. */
#undef HAVE_ABS
/* Define to 1 if you have `alloca', as a function or macro. */
#undef HAVE_ALLOCA
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
*/
#undef HAVE_ALLOCA_H
/* Define to 1 if you have the `atof' function. */
#undef HAVE_ATOF
/* Define to 1 if you have the `atoi' function. */
#undef HAVE_ATOI
/* Define to 1 if you have the `calloc' function. */
#undef HAVE_CALLOC
/* Define to 1 if you have the <ctype.h> header file. */
#undef HAVE_CTYPE_H
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if you have the `free' function. */
#undef HAVE_FREE
/* Define to 1 if you have the `getenv' function. */
#undef HAVE_GETENV
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the `itoa' function. */
#undef HAVE_ITOA
/* Define to 1 if you have the `asound' library (-lasound). */
#undef HAVE_LIBASOUND
/* Define to 1 if you have the `malloc' function. */
#undef HAVE_MALLOC
/* Define to 1 if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H
/* Define to 1 if you have the `memcmp' function. */
#undef HAVE_MEMCMP
/* Define to 1 if you have the `memcpy' function. */
#undef HAVE_MEMCPY
/* Define to 1 if you have the `memmove' function. */
#undef HAVE_MEMMOVE
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the `memset' function. */
#undef HAVE_MEMSET
/* Define to 1 if you have the `putenv' function. */
#undef HAVE_PUTENV
/* Define to 1 if you have the `qsort' function. */
#undef HAVE_QSORT
/* Define to 1 if you have the `realloc' function. */
#undef HAVE_REALLOC
/* Define to 1 if you have the <signal.h> header file. */
#undef HAVE_SIGNAL_H
/* Define to 1 if you have the `snprintf' function. */
#undef HAVE_SNPRINTF
/* Define to 1 if you have the `sscanf' function. */
#undef HAVE_SSCANF
/* Define to 1 if you have the <stdarg.h> header file. */
#undef HAVE_STDARG_H
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <stdio.h> header file. */
#undef HAVE_STDIO_H
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the `strcasecmp' function. */
#undef HAVE_STRCASECMP
/* Define to 1 if you have the `strcat' function. */
#undef HAVE_STRCAT
/* Define to 1 if you have the `strchr' function. */
#undef HAVE_STRCHR
/* Define to 1 if you have the `strcmp' function. */
#undef HAVE_STRCMP
/* Define to 1 if you have the `strcpy' function. */
#undef HAVE_STRCPY
/* Define to 1 if you have the `strdup' function. */
#undef HAVE_STRDUP
/* Define to 1 if you have the `stricmp' function. */
#undef HAVE_STRICMP
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define to 1 if you have the `strlen' function. */
#undef HAVE_STRLEN
/* Define to 1 if you have the `strncat' function. */
#undef HAVE_STRNCAT
/* Define to 1 if you have the `strncmp' function. */
#undef HAVE_STRNCMP
/* Define to 1 if you have the `strncpy' function. */
#undef HAVE_STRNCPY
/* Define to 1 if you have the `strrchr' function. */
#undef HAVE_STRRCHR
/* Define to 1 if you have the `strstr' function. */
#undef HAVE_STRSTR
/* Define to 1 if you have the `strtol' function. */
#undef HAVE_STRTOL
/* Define to 1 if you have the `strtoll' function. */
#undef HAVE_STRTOLL
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define to 1 if you have the `vsnprintf' function. */
#undef HAVE_VSNPRINTF
/* Define to 1 if you have the `_i64toa' function. */
#undef HAVE__I64TOA
/* Define to 1 if you have the `_ltoa' function. */
#undef HAVE__LTOA
/* Define to 1 if you have the `_strlwr' function. */
#undef HAVE__STRLWR
/* Define to 1 if you have the `_strrev' function. */
#undef HAVE__STRREV
/* Define to 1 if you have the `_strupr' function. */
#undef HAVE__STRUPR
/* Define to 1 if you have the `_ui64toa' function. */
#undef HAVE__UI64TOA
/* Define to 1 if you have the `_uitoa' function. */
#undef HAVE__UITOA
/* Define to 1 if you have the `_ultoa' function. */
#undef HAVE__ULTOA
/* Name of package */
#undef PACKAGE
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* The size of a `char', as computed by sizeof. */
#undef SIZEOF_CHAR
/* The size of a `int', as computed by sizeof. */
#undef SIZEOF_INT
/* The size of a `long', as computed by sizeof. */
#undef SIZEOF_LONG
/* The size of a `long long', as computed by sizeof. */
#undef SIZEOF_LONG_LONG
/* The size of a `short', as computed by sizeof. */
#undef SIZEOF_SHORT
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
#undef STACK_DIRECTION
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Version number of package */
#undef VERSION
/* Define to 1 if the X Window System is missing or not being used. */
#undef X_DISPLAY_MISSING
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
#undef inline
#endif
/* Define to `unsigned' if <sys/types.h> does not define. */
#undef size_t
#endif /* HAVE_LIBC */
#endif /* _SDL_config_h */
/*
SDL - Simple DirectMedia Layer
Copyright (C) 1997-2006 Sam Lantinga
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Sam Lantinga
slouken@libsdl.org
*/
#ifndef _SDL_config_h
#define _SDL_config_h
/* This is the minimal configuration that can be used to build SDL */
#define HAVE_STDARG_H 1
#endif /* _SDL_config_h */
......@@ -62,6 +62,12 @@ extern "C" {
extern DECLSPEC void * SDLCALL SDL_malloc(size_t size);
#endif
#ifdef HAVE_CALLOC
#define SDL_calloc calloc
#else
extern DECLSPEC void * SDLCALL SDL_calloc(size_t nmemb, size_t size);
#endif
#ifdef HAVE_REALLOC
#define SDL_realloc realloc
#else
......@@ -101,6 +107,12 @@ extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size,
int (*compare)(const void *, const void *));
#endif
#ifdef HAVE_ABS
#define SDL_abs abs
#else
#define SDL_abs(X) ((X) < 0 ? -(X) : (X))
#endif
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
}
......
......@@ -201,6 +201,12 @@ extern DECLSPEC char * SDLCALL SDL_strncpy(char *dst, const char *src, size_t ma
#define SDL_strncat(dst, src, n) (SDL_strncpy(dst+SDL_strlen(dst), src, n), dst)
#endif
#ifdef HAVE_STRDUP
#define SDL_strdup strdup
#else
extern DECLSPEC char * SDLCALL SDL_strdup(const char *string);
#endif
#ifdef HAVE__STRREV
#define SDL_strrev _strrev
#else
......@@ -289,6 +295,24 @@ extern DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *string, char **endp, int
#endif /* SDL_HAS_64BIT_TYPE */
#ifdef HAVE_STRTOD
#define SDL_strtod strtod
#else
extern DECLSPEC double SDLCALL SDL_strtod(const char *string, char **endp);
#endif
#ifdef HAVE_ATOI
#define SDL_atoi atoi
#else
#define SDL_atoi(X) SDL_strtol(X, NULL, 0)
#endif
#ifdef HAVE_ATOF
#define SDL_atof atof
#else
#define SDL_atof(X) SDL_strtod(X, NULL)
#endif
#ifdef HAVE_STRCMP
#define SDL_strcmp strcmp
#else
......
......@@ -306,18 +306,20 @@ int SDL_AudioInit(const char *driver_name)
*/
for ( i=0; bootstrap[i]; ++i ) {
if ( SDL_strcmp(bootstrap[i]->name, "esd") == 0 ) {
#ifdef HAVE_PUTENV
const char *esd_no_spawn;
/* Don't start ESD if it's not running */
esd_no_spawn = SDL_getenv("ESD_NO_SPAWN");
esd_no_spawn = getenv("ESD_NO_SPAWN");
if ( esd_no_spawn == NULL ) {
putenv("ESD_NO_SPAWN=1");
}
#endif
if ( bootstrap[i]->available() ) {
audio = bootstrap[i]->create(0);
break;
}
#ifdef linux /* No unsetenv() on most platforms */
#ifdef HAVE_UNSETENV
if ( esd_no_spawn == NULL ) {
unsetenv("ESD_NO_SPAWN");
}
......
......@@ -22,6 +22,8 @@
/* Allow access to a raw mixing buffer (for AmigaOS) */
#include "SDL_stdlib.h"
#include "SDL_string.h"
#include "SDL_endian.h"
#include "SDL_audio.h"
#include "SDL_audiomem.h"
......
......@@ -26,6 +26,7 @@
/* Output raw audio data to a file. */
#include <stdio.h>
#include <string.h> /* For strerror() */
#include <errno.h>
#include <unistd.h>
#include <sys/stat.h>
......@@ -130,7 +131,7 @@ static SDL_AudioDevice *DISKAUD_CreateDevice(int devindex)
SDL_memset(this->hidden, 0, (sizeof *this->hidden));
envr = SDL_getenv(DISKENVR_WRITEDELAY);
this->hidden->write_delay = (envr) ? atoi(envr) : DISKDEFAULT_WRITEDELAY;
this->hidden->write_delay = (envr) ? SDL_atoi(envr) : DISKDEFAULT_WRITEDELAY;
/* Set the function pointers */
this->OpenAudio = DISKAUD_OpenAudio;
......
......@@ -23,6 +23,7 @@
/* Allow access to a raw mixing buffer */
#include <stdio.h>
#include <string.h> /* For strerror() */
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>
......
......@@ -25,7 +25,8 @@
/* Allow access to a raw mixing buffer */
#include <stdio.h> /* For perror() ... should we really do this? */
#include <stdio.h> /* For perror() */
#include <string.h> /* For strerror() */
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>
......
......@@ -24,6 +24,8 @@
#include <mme_api.h>
#include "SDL_stdlib.h"
#include "SDL_string.h"
#include "SDL_audio.h"
#include "SDL_mutex.h"
#include "SDL_timer.h"
......
......@@ -22,6 +22,7 @@
/* Functions for system-level CD-ROM audio control */
#include <string.h> /* For strerror() */
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
......@@ -215,7 +216,7 @@ static void CheckMounts(const char *mtab)
tmp = SDL_strstr(mntent->mnt_opts, "fs=");
if ( tmp ) {
SDL_free(mnt_type);
mnt_type = strdup(tmp + SDL_strlen("fs="));
mnt_type = SDL_strdup(tmp + SDL_strlen("fs="));
if ( mnt_type ) {
tmp = SDL_strchr(mnt_type, ',');
if ( tmp ) {
......@@ -226,7 +227,7 @@ static void CheckMounts(const char *mtab)
tmp = SDL_strstr(mntent->mnt_opts, "dev=");
if ( tmp ) {
SDL_free(mnt_dev);
mnt_dev = strdup(tmp + SDL_strlen("dev="));
mnt_dev = SDL_strdup(tmp + SDL_strlen("dev="));
if ( mnt_dev ) {
tmp = SDL_strchr(mnt_dev, ',');
if ( tmp ) {
......
......@@ -113,11 +113,11 @@ int SDL_putenv(const char *variable)
}
/* Allocate memory for the variable */
new_variable = (char *)malloc(strlen(variable)+1);
new_variable = (char *)SDL_malloc(SDL_strlen(variable)+1);
if ( ! new_variable ) {
return(-1);
}
strcpy(new_variable, variable);
SDL_strcpy(new_variable, variable);
/* Actually put it into the environment */
added = 0;
......@@ -126,13 +126,13 @@ int SDL_putenv(const char *variable)
/* Check to see if it's already there... */
len = (value - name);
for ( ; SDL_env[i]; ++i ) {
if ( strncmp(SDL_env[i], name, len) == 0 ) {
if ( SDL_strncmp(SDL_env[i], name, len) == 0 ) {
break;
}
}
/* If we found it, just replace the entry */
if ( SDL_env[i] ) {
free(SDL_env[i]);
SDL_free(SDL_env[i]);
SDL_env[i] = new_variable;
added = 1;
}
......@@ -147,7 +147,7 @@ int SDL_putenv(const char *variable)
SDL_env[i++] = (char *)0;
added = 1;
} else {
free(new_variable);
SDL_free(new_variable);
}
}
return (added ? 0 : -1);
......@@ -161,9 +161,9 @@ char *SDL_getenv(const char *name)
value = (char *)0;
if ( SDL_env ) {
len = strlen(name);
len = SDL_strlen(name);
for ( i=0; SDL_env[i] && !value; ++i ) {
if ( (strncmp(SDL_env[i], name, len) == 0) &&
if ( (SDL_strncmp(SDL_env[i], name, len) == 0) &&
(SDL_env[i][len] == '=') ) {
value = &SDL_env[i][len+1];
}
......@@ -185,59 +185,59 @@ int main(int argc, char *argv[])
printf("Checking for non-existent variable... ");
fflush(stdout);
if ( ! getenv("EXISTS") ) {
if ( ! SDL_getenv("EXISTS") ) {
printf("okay\n");
} else {
printf("failed\n");
}
printf("Setting FIRST=VALUE1 in the environment... ");
fflush(stdout);
if ( putenv("FIRST=VALUE1") == 0 ) {
if ( SDL_putenv("FIRST=VALUE1") == 0 ) {
printf("okay\n");
} else {
printf("failed\n");
}
printf("Getting FIRST from the environment... ");
fflush(stdout);
value = getenv("FIRST");
if ( value && (strcmp(value, "VALUE1") == 0) ) {
value = SDL_getenv("FIRST");
if ( value && (SDL_strcmp(value, "VALUE1") == 0) ) {
printf("okay\n");
} else {
printf("failed\n");
}
printf("Setting SECOND=VALUE2 in the environment... ");
fflush(stdout);
if ( putenv("SECOND=VALUE2") == 0 ) {
if ( SDL_putenv("SECOND=VALUE2") == 0 ) {
printf("okay\n");
} else {
printf("failed\n");
}
printf("Getting SECOND from the environment... ");
fflush(stdout);
value = getenv("SECOND");
if ( value && (strcmp(value, "VALUE2") == 0) ) {
value = SDL_getenv("SECOND");
if ( value && (SDL_strcmp(value, "VALUE2") == 0) ) {
printf("okay\n");
} else {
printf("failed\n");
}
printf("Setting FIRST=NOVALUE in the environment... ");
fflush(stdout);
if ( putenv("FIRST=NOVALUE") == 0 ) {
if ( SDL_putenv("FIRST=NOVALUE") == 0 ) {
printf("okay\n");
} else {
printf("failed\n");
}
printf("Getting FIRST from the environment... ");
fflush(stdout);
value = getenv("FIRST");
if ( value && (strcmp(value, "NOVALUE") == 0) ) {
value = SDL_getenv("FIRST");
if ( value && (SDL_strcmp(value, "NOVALUE") == 0) ) {
printf("okay\n");
} else {
printf("failed\n");
}
printf("Checking for non-existent variable... ");
fflush(stdout);
if ( ! getenv("EXISTS") ) {
if ( ! SDL_getenv("EXISTS") ) {
printf("okay\n");
} else {
printf("failed\n");
......
......@@ -25,6 +25,7 @@
#include "SDL_types.h"
#include "SDL_ctype.h"
#include "SDL_stdlib.h"
#include "SDL_string.h"
......@@ -175,7 +176,7 @@ static size_t SDL_ScanUnsignedLongLong(const char *text, int radix, Uint64 *valu
#endif
#endif /* SDL_HAS_64BIT_TYPE */
#ifndef HAVE_SSCANF
#if !defined(HAVE_SSCANF) || !defined(HAVE_STRTOD)
static size_t SDL_ScanFloat(const char *text, double *valuep)
{
const char *textstart = text;
......@@ -322,6 +323,18 @@ char *SDL_strncpy(char *dst, const char *src, size_t maxlen)
}
#endif
#ifndef HAVE_STRDUP
char *SDL_strdup(const char *string)
{
size_t len = SDL_strlen(string);
char *newstr = SDL_malloc(len+1);
if ( newstr ) {
SDL_strcpy(newstr, string);
}
return newstr;
}
#endif
#ifndef HAVE__STRREV
char *SDL_strrev(char *string)
{
......@@ -549,6 +562,20 @@ Sint64 SDL_strtoll(const char *string, char **endp, int base)
#endif /* SDL_HAS_64BIT_TYPE */
#ifndef HAVE_STRTOD
double SDL_strtod(const char *string, char **endp)
{
size_t len;
double value;
len = SDL_ScanFloat(string, &value);
if ( endp ) {
*endp = (char *)string + len;
}
return value;
}
#endif
#ifndef HAVE_STRCMP
int SDL_strcmp(const char *str1, const char *str2)
{
......
......@@ -798,7 +798,7 @@ SDL_Surface * SDL_SetVideoMode (int width, int height, int bpp, Uint32 flags)
*/
if ( (bpp == 16) &&
(SDL_strstr((const char *)video->glGetString(GL_EXTENSIONS), "GL_EXT_packed_pixels") ||
(atof((const char *)video->glGetString(GL_VERSION)) >= 1.2f))
(SDL_atof((const char *)video->glGetString(GL_VERSION)) >= 1.2f))
) {
video->is_32bit = 0;
SDL_VideoSurface = SDL_CreateRGBSurface(
......
......@@ -23,6 +23,7 @@
/* This is the implementation of the YUV video surface support */
#include "SDL_stdlib.h"
#include "SDL_string.h"
#include "SDL_video.h"
#include "SDL_error.h"
#include "SDL_sysvideo.h"
......@@ -54,7 +55,7 @@ SDL_Overlay *SDL_CreateYUVOverlay(int w, int h, Uint32 format,
overlay = NULL;
yuv_hwaccel = SDL_getenv("SDL_VIDEO_YUV_HWACCEL");
if ( ((display == SDL_VideoSurface) && video->CreateYUVOverlay) &&
(!yuv_hwaccel || (*yuv_hwaccel != '0')) ) {
(!yuv_hwaccel || (SDL_atoi(yuv_hwaccel) > 0)) ) {
overlay = video->CreateYUVOverlay(this, w, h, format, display);
}
/* If hardware YUV overlay failed ... */
......
......@@ -92,7 +92,7 @@ int eloParsePacket(unsigned char* mousebuf, int* dx, int* dy, int* button_state)
x = ((mousebuf[4] << 8) | mousebuf[3]);
y = ((mousebuf[6] << 8) | mousebuf[5]);
if((abs(x - last_x) > ELO_SNAP_SIZE) || (abs(y - last_y) > ELO_SNAP_SIZE)) {
if((SDL_abs(x - last_x) > ELO_SNAP_SIZE) || (SDL_abs(y - last_y) > ELO_SNAP_SIZE)) {
*dx = ((mousebuf[4] << 8) | mousebuf[3]);
*dy = ((mousebuf[6] << 8) | mousebuf[5]);
}
......@@ -335,19 +335,19 @@ int eloInitController(int fd) {
/* try to read the calibration values */
buffer = SDL_getenv("SDL_ELO_MIN_X");
if(buffer) {
ELO_MIN_X = atoi(buffer);
ELO_MIN_X = SDL_atoi(buffer);
}
buffer = SDL_getenv("SDL_ELO_MAX_X");
if(buffer) {
ELO_MAX_X = atoi(buffer);
ELO_MAX_X = SDL_atoi(buffer);
}
buffer = SDL_getenv("SDL_ELO_MIN_Y");
if(buffer) {
ELO_MIN_Y = atoi(buffer);
ELO_MIN_Y = SDL_atoi(buffer);
}
buffer = SDL_getenv("SDL_ELO_MAX_Y");
if(buffer) {
ELO_MAX_Y = atoi(buffer);
ELO_MAX_Y = SDL_atoi(buffer);
}
#ifdef DEBUG_MOUSE
......
......@@ -351,7 +351,7 @@ static int find_pid(DIR *proc, const char *wanted_name)
name[0] = '\0';
fscanf(status, "Name: %s", name);
if ( SDL_strcmp(name, wanted_name) == 0 ) {
pid = atoi(entry->d_name);
pid = SDL_atoi(entry->d_name);
}
fclose(status);
}
......
......@@ -523,7 +523,7 @@ static int FB_VideoInit(_THIS, SDL_PixelFormat *vformat)
{ const char *fb_accel;
fb_accel = SDL_getenv("SDL_FBACCEL");
if ( fb_accel ) {
finfo.accel = atoi(fb_accel);
finfo.accel = SDL_atoi(fb_accel);
}
}
......
......@@ -68,9 +68,9 @@ static void NX_DeleteDevice (SDL_VideoDevice * device)
Dprintf ("enter NX_DeleteDevice\n") ;
if (device) {
if (device -> hidden) free (device -> hidden) ;
if (device -> gl_data) free (device -> gl_data) ;
free (device) ;
if (device -> hidden) SDL_free (device -> hidden) ;
if (device -> gl_data) SDL_free (device -> gl_data) ;
SDL_free (device) ;
}
Dprintf ("leave NX_DeleteDevice\n") ;
......@@ -256,9 +256,9 @@ void NX_VideoQuit (_THIS)
GrDestroyWindow (FSwindow) ;
}
NX_FreeVideoModes (this) ;
free (GammaRamp_R) ;
free (GammaRamp_G) ;
free (GammaRamp_B) ;
SDL_free (GammaRamp_R) ;
SDL_free (GammaRamp_G) ;
SDL_free (GammaRamp_B) ;
#ifdef ENABLE_NANOX_DIRECT_FB
if (Clientfb)
......@@ -306,7 +306,7 @@ static int NX_CreateWindow (_THIS, SDL_Surface * screen,
// See if we have been given a window id
if (SDL_windowid) {
SDL_Window = strtol (SDL_windowid, NULL, 0) ;
SDL_Window = SDL_strtol (SDL_windowid, NULL, 0) ;
} else {
SDL_Window = 0 ;
}
......
......@@ -798,7 +798,7 @@ static int GetCodePage()
int cp = GetACP();
if (GetLocaleInfo(lcid, LOCALE_IDEFAULTANSICODEPAGE, buff, sizeof(buff))) {
cp = SDL_strtol(buff, NULL, 0);
cp = SDL_atoi(buff);
}
return cp;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment