Added SDL_vsscanf().

This commit is contained in:
Ryan C. Gordon 2013-11-24 23:35:38 -05:00
parent 928b494630
commit e769374096
27 changed files with 44 additions and 37 deletions

View File

@ -503,13 +503,14 @@ if(LIBC)
check_c_source_compiles("#include <sys/types.h> check_c_source_compiles("#include <sys/types.h>
#include <sys/mman.h> #include <sys/mman.h>
int main() { }" HAVE_MPROTECT) int main() { }" HAVE_MPROTECT)
# FIXME: we don't care if you have snprintf, etc, any more. We only care if you have vsnprintf. Clean this up.
foreach(_FN foreach(_FN
strtod malloc calloc realloc free getenv setenv putenv unsetenv strtod malloc calloc realloc free getenv setenv putenv unsetenv
qsort abs bcopy memset memcpy memmove memcmp strlen strlcpy strlcat qsort abs bcopy memset memcpy memmove memcmp strlen strlcpy strlcat
strdup _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa strdup _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa
_uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull
atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp
sscanf snprintf vsnprintf fseeko fseeko64 sigaction setjmp vsscanf snprintf vsnprintf fseeko fseeko64 sigaction setjmp
nanosleep sysconf sysctlbyname nanosleep sysconf sysctlbyname
) )
string(TOUPPER ${_FN} _UPPER) string(TOUPPER ${_FN} _UPPER)

2
configure vendored
View File

@ -16581,7 +16581,7 @@ fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi fi
for ac_func in malloc calloc realloc free getenv setenv putenv unsetenv qsort abs bcopy memset memcpy memmove strlen strlcpy strlcat strdup _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp sscanf snprintf vsnprintf fseeko fseeko64 sigaction setjmp nanosleep sysconf sysctlbyname for ac_func in malloc calloc realloc free getenv setenv putenv unsetenv qsort abs bcopy memset memcpy memmove strlen strlcpy strlcat strdup _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp vsscanf snprintf vsnprintf fseeko fseeko64 sigaction setjmp nanosleep sysconf sysctlbyname
do : do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"

View File

@ -268,7 +268,8 @@ if test x$enable_libc = xyes; then
AC_DEFINE(HAVE_MPROTECT, 1, [ ]) AC_DEFINE(HAVE_MPROTECT, 1, [ ])
]), ]),
) )
AC_CHECK_FUNCS(malloc calloc realloc free getenv setenv putenv unsetenv qsort abs bcopy memset memcpy memmove strlen strlcpy strlcat strdup _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp sscanf snprintf vsnprintf fseeko fseeko64 sigaction setjmp nanosleep sysconf sysctlbyname) dnl FIXME: we don't care if you have snprintf, etc, any more. We only care if you have vsnprintf. Clean this up.
AC_CHECK_FUNCS(malloc calloc realloc free getenv setenv putenv unsetenv qsort abs bcopy memset memcpy memmove strlen strlcpy strlcat strdup _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp vsscanf snprintf vsnprintf fseeko fseeko64 sigaction setjmp nanosleep sysconf sysctlbyname)
AC_CHECK_LIB(m, pow, [LIBS="$LIBS -lm"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"]) AC_CHECK_LIB(m, pow, [LIBS="$LIBS -lm"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"])
AC_CHECK_FUNCS(atan atan2 acos asin ceil copysign cos cosf fabs floor log pow scalbn sin sinf sqrt) AC_CHECK_FUNCS(atan atan2 acos asin ceil copysign cos cosf fabs floor log pow scalbn sin sinf sqrt)

View File

@ -124,7 +124,7 @@
#cmakedefine HAVE_STRCASECMP 1 #cmakedefine HAVE_STRCASECMP 1
#cmakedefine HAVE__STRNICMP 1 #cmakedefine HAVE__STRNICMP 1
#cmakedefine HAVE_STRNCASECMP 1 #cmakedefine HAVE_STRNCASECMP 1
#cmakedefine HAVE_SSCANF 1 #cmakedefine HAVE_VSSCANF 1
#cmakedefine HAVE_SNPRINTF 1 #cmakedefine HAVE_SNPRINTF 1
#cmakedefine HAVE_VSNPRINTF 1 #cmakedefine HAVE_VSNPRINTF 1
#cmakedefine HAVE_M_PI 1 #cmakedefine HAVE_M_PI 1

View File

@ -128,6 +128,7 @@
#undef HAVE__STRNICMP #undef HAVE__STRNICMP
#undef HAVE_STRNCASECMP #undef HAVE_STRNCASECMP
#undef HAVE_SSCANF #undef HAVE_SSCANF
#undef HAVE_VSSCANF
#undef HAVE_SNPRINTF #undef HAVE_SNPRINTF
#undef HAVE_VSNPRINTF #undef HAVE_VSNPRINTF
#undef HAVE_M_PI #undef HAVE_M_PI

View File

@ -81,7 +81,7 @@
#define HAVE_STRNCMP 1 #define HAVE_STRNCMP 1
#define HAVE_STRCASECMP 1 #define HAVE_STRCASECMP 1
#define HAVE_STRNCASECMP 1 #define HAVE_STRNCASECMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_SNPRINTF 1 #define HAVE_SNPRINTF 1
#define HAVE_VSNPRINTF 1 #define HAVE_VSNPRINTF 1
#define HAVE_M_PI 1 #define HAVE_M_PI 1

View File

@ -79,7 +79,7 @@
#define HAVE_STRNCMP 1 #define HAVE_STRNCMP 1
#define HAVE_STRCASECMP 1 #define HAVE_STRCASECMP 1
#define HAVE_STRNCASECMP 1 #define HAVE_STRNCASECMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_SNPRINTF 1 #define HAVE_SNPRINTF 1
#define HAVE_VSNPRINTF 1 #define HAVE_VSNPRINTF 1
#define HAVE_M_PI 1 #define HAVE_M_PI 1

View File

@ -82,7 +82,7 @@
#define HAVE_STRNCMP 1 #define HAVE_STRNCMP 1
#define HAVE_STRCASECMP 1 #define HAVE_STRCASECMP 1
#define HAVE_STRNCASECMP 1 #define HAVE_STRNCASECMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_SNPRINTF 1 #define HAVE_SNPRINTF 1
#define HAVE_VSNPRINTF 1 #define HAVE_VSNPRINTF 1
#define HAVE_CEIL 1 #define HAVE_CEIL 1

View File

@ -81,7 +81,7 @@
#define HAVE_STRNCMP 1 #define HAVE_STRNCMP 1
#define HAVE_STRCASECMP 1 #define HAVE_STRCASECMP 1
#define HAVE_STRNCASECMP 1 #define HAVE_STRNCASECMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_SNPRINTF 1 #define HAVE_SNPRINTF 1
#define HAVE_VSNPRINTF 1 #define HAVE_VSNPRINTF 1
#define HAVE_M_PI 1 #define HAVE_M_PI 1

View File

@ -79,7 +79,7 @@
#define HAVE_STRNCMP 1 #define HAVE_STRNCMP 1
#define HAVE_STRCASECMP 1 #define HAVE_STRCASECMP 1
#define HAVE_STRNCASECMP 1 #define HAVE_STRNCASECMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_SNPRINTF 1 #define HAVE_SNPRINTF 1
#define HAVE_VSNPRINTF 1 #define HAVE_VSNPRINTF 1
#define HAVE_M_PI 1 #define HAVE_M_PI 1

View File

@ -132,7 +132,7 @@ typedef unsigned int uintptr_t;
#define HAVE_SQRT 1 #define HAVE_SQRT 1
#if _MSC_VER >= 1800 #if _MSC_VER >= 1800
#define HAVE_STRTOLL 1 #define HAVE_STRTOLL 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_COPYSIGN 1 #define HAVE_COPYSIGN 1
#define HAVE_SCALBN 1 #define HAVE_SCALBN 1
#endif #endif

View File

@ -75,7 +75,7 @@
#define HAVE_STRNCMP 1 #define HAVE_STRNCMP 1
#define HAVE_STRCASECMP 1 #define HAVE_STRCASECMP 1
#define HAVE_STRNCASECMP 1 #define HAVE_STRNCASECMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_SNPRINTF 1 #define HAVE_SNPRINTF 1
#define HAVE_VSNPRINTF 1 #define HAVE_VSNPRINTF 1
#define HAVE_M_PI 1 #define HAVE_M_PI 1

View File

@ -331,6 +331,7 @@ extern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1, const char *str2);
extern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1, const char *str2, size_t len); extern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1, const char *str2, size_t len);
extern DECLSPEC int SDLCALL SDL_sscanf(const char *text, const char *fmt, ...); extern DECLSPEC int SDLCALL SDL_sscanf(const char *text, const char *fmt, ...);
extern DECLSPEC int SDLCALL SDL_vsscanf(const char *text, const char *fmt, va_list ap);
extern DECLSPEC int SDLCALL SDL_snprintf(char *text, size_t maxlen, const char *fmt, ...); extern DECLSPEC int SDLCALL SDL_snprintf(char *text, size_t maxlen, const char *fmt, ...);
extern DECLSPEC int SDLCALL SDL_vsnprintf(char *text, size_t maxlen, const char *fmt, va_list ap); extern DECLSPEC int SDLCALL SDL_vsnprintf(char *text, size_t maxlen, const char *fmt, va_list ap);

View File

@ -128,7 +128,7 @@
#define HAVE_STRCASECMP 1 #define HAVE_STRCASECMP 1
/* #undef HAVE__STRNICMP */ /* #undef HAVE__STRNICMP */
#define HAVE_STRNCASECMP 1 #define HAVE_STRNCASECMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_SNPRINTF 1 #define HAVE_SNPRINTF 1
#define HAVE_VSNPRINTF 1 #define HAVE_VSNPRINTF 1
#define HAVE_M_PI /**/ #define HAVE_M_PI /**/

View File

@ -118,7 +118,7 @@ typedef unsigned int uintptr_t;
#define HAVE_STRNCMP 1 #define HAVE_STRNCMP 1
#define HAVE__STRICMP 1 #define HAVE__STRICMP 1
#define HAVE__STRNICMP 1 #define HAVE__STRNICMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_M_PI 1 #define HAVE_M_PI 1
#define HAVE_ATAN 1 #define HAVE_ATAN 1
#define HAVE_ATAN2 1 #define HAVE_ATAN2 1

View File

@ -118,7 +118,7 @@ typedef unsigned int uintptr_t;
#define HAVE_STRNCMP 1 #define HAVE_STRNCMP 1
#define HAVE__STRICMP 1 #define HAVE__STRICMP 1
#define HAVE__STRNICMP 1 #define HAVE__STRNICMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_M_PI 1 #define HAVE_M_PI 1
#define HAVE_ATAN 1 #define HAVE_ATAN 1
#define HAVE_ATAN2 1 #define HAVE_ATAN2 1

View File

@ -118,7 +118,7 @@ typedef unsigned int uintptr_t;
#define HAVE_STRNCMP 1 #define HAVE_STRNCMP 1
#define HAVE__STRICMP 1 #define HAVE__STRICMP 1
#define HAVE__STRNICMP 1 #define HAVE__STRNICMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_M_PI 1 #define HAVE_M_PI 1
#define HAVE_ATAN 1 #define HAVE_ATAN 1
#define HAVE_ATAN2 1 #define HAVE_ATAN2 1

View File

@ -118,7 +118,7 @@ typedef unsigned int uintptr_t;
#define HAVE_STRNCMP 1 #define HAVE_STRNCMP 1
#define HAVE__STRICMP 1 #define HAVE__STRICMP 1
#define HAVE__STRNICMP 1 #define HAVE__STRNICMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_M_PI 1 #define HAVE_M_PI 1
#define HAVE_ATAN 1 #define HAVE_ATAN 1
#define HAVE_ATAN2 1 #define HAVE_ATAN2 1

View File

@ -79,7 +79,7 @@
#define HAVE_STRNCMP 1 #define HAVE_STRNCMP 1
#define HAVE_STRCASECMP 1 #define HAVE_STRCASECMP 1
#define HAVE_STRNCASECMP 1 #define HAVE_STRNCASECMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_SNPRINTF 1 #define HAVE_SNPRINTF 1
#define HAVE_VSNPRINTF 1 #define HAVE_VSNPRINTF 1
#define HAVE_M_PI 1 #define HAVE_M_PI 1

View File

@ -85,7 +85,7 @@
#define HAVE_STRNCMP 1 #define HAVE_STRNCMP 1
#define HAVE_STRCASECMP 1 #define HAVE_STRCASECMP 1
#define HAVE_STRNCASECMP 1 #define HAVE_STRNCASECMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_SNPRINTF 1 #define HAVE_SNPRINTF 1
#define HAVE_VSNPRINTF 1 #define HAVE_VSNPRINTF 1
#define HAVE_CEIL 1 #define HAVE_CEIL 1

View File

@ -85,7 +85,7 @@
#define HAVE_STRNCMP 1 #define HAVE_STRNCMP 1
#define HAVE_STRCASECMP 1 #define HAVE_STRCASECMP 1
#define HAVE_STRNCASECMP 1 #define HAVE_STRNCASECMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_SNPRINTF 1 #define HAVE_SNPRINTF 1
#define HAVE_VSNPRINTF 1 #define HAVE_VSNPRINTF 1
#define HAVE_CEIL 1 #define HAVE_CEIL 1

View File

@ -124,7 +124,7 @@
#define HAVE_STRCASECMP 1 #define HAVE_STRCASECMP 1
/* #undef HAVE__STRNICMP */ /* #undef HAVE__STRNICMP */
#define HAVE_STRNCASECMP 1 #define HAVE_STRNCASECMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_SNPRINTF 1 #define HAVE_SNPRINTF 1
#define HAVE_VSNPRINTF 1 #define HAVE_VSNPRINTF 1
#define HAVE_M_PI /**/ #define HAVE_M_PI /**/

View File

@ -79,7 +79,7 @@
#define HAVE_STRNCMP 1 #define HAVE_STRNCMP 1
#define HAVE_STRCASECMP 1 #define HAVE_STRCASECMP 1
#define HAVE_STRNCASECMP 1 #define HAVE_STRNCASECMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_SNPRINTF 1 #define HAVE_SNPRINTF 1
#define HAVE_VSNPRINTF 1 #define HAVE_VSNPRINTF 1
#define HAVE_M_PI 1 #define HAVE_M_PI 1

View File

@ -128,7 +128,7 @@
#define HAVE_STRCASECMP 1 #define HAVE_STRCASECMP 1
/* #undef HAVE__STRNICMP */ /* #undef HAVE__STRNICMP */
#define HAVE_STRNCASECMP 1 #define HAVE_STRNCASECMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_SNPRINTF 1 #define HAVE_SNPRINTF 1
#define HAVE_VSNPRINTF 1 #define HAVE_VSNPRINTF 1
#define HAVE_M_PI /**/ #define HAVE_M_PI /**/

View File

@ -85,7 +85,7 @@
#define HAVE_STRNCMP 1 #define HAVE_STRNCMP 1
#define HAVE_STRCASECMP 1 #define HAVE_STRCASECMP 1
#define HAVE_STRNCASECMP 1 #define HAVE_STRNCASECMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_SNPRINTF 1 #define HAVE_SNPRINTF 1
#define HAVE_VSNPRINTF 1 #define HAVE_VSNPRINTF 1
#define HAVE_CEIL 1 #define HAVE_CEIL 1

View File

@ -118,7 +118,7 @@ typedef unsigned int uintptr_t;
#define HAVE_STRNCMP 1 #define HAVE_STRNCMP 1
#define HAVE__STRICMP 1 #define HAVE__STRICMP 1
#define HAVE__STRNICMP 1 #define HAVE__STRNICMP 1
#define HAVE_SSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_M_PI 1 #define HAVE_M_PI 1
#define HAVE_ATAN 1 #define HAVE_ATAN 1
#define HAVE_ATAN2 1 #define HAVE_ATAN2 1

View File

@ -43,7 +43,7 @@ static int UTF8_TrailingBytes(unsigned char c)
return 0; return 0;
} }
#if !defined(HAVE_SSCANF) || !defined(HAVE_STRTOL) #if !defined(HAVE_VSSCANF) || !defined(HAVE_STRTOL)
static size_t static size_t
SDL_ScanLong(const char *text, int radix, long *valuep) SDL_ScanLong(const char *text, int radix, long *valuep)
{ {
@ -84,7 +84,7 @@ SDL_ScanLong(const char *text, int radix, long *valuep)
} }
#endif #endif
#if !defined(HAVE_SSCANF) || !defined(HAVE_STRTOUL) || !defined(HAVE_STRTOD) #if !defined(HAVE_VSSCANF) || !defined(HAVE_STRTOUL) || !defined(HAVE_STRTOD)
static size_t static size_t
SDL_ScanUnsignedLong(const char *text, int radix, unsigned long *valuep) SDL_ScanUnsignedLong(const char *text, int radix, unsigned long *valuep)
{ {
@ -116,7 +116,7 @@ SDL_ScanUnsignedLong(const char *text, int radix, unsigned long *valuep)
} }
#endif #endif
#ifndef HAVE_SSCANF #ifndef HAVE_VSSCANF
static size_t static size_t
SDL_ScanUintPtrT(const char *text, int radix, uintptr_t * valuep) SDL_ScanUintPtrT(const char *text, int radix, uintptr_t * valuep)
{ {
@ -148,7 +148,7 @@ SDL_ScanUintPtrT(const char *text, int radix, uintptr_t * valuep)
} }
#endif #endif
#if !defined(HAVE_SSCANF) || !defined(HAVE_STRTOLL) #if !defined(HAVE_VSSCANF) || !defined(HAVE_STRTOLL)
static size_t static size_t
SDL_ScanLongLong(const char *text, int radix, Sint64 * valuep) SDL_ScanLongLong(const char *text, int radix, Sint64 * valuep)
{ {
@ -189,7 +189,7 @@ SDL_ScanLongLong(const char *text, int radix, Sint64 * valuep)
} }
#endif #endif
#if !defined(HAVE_SSCANF) || !defined(HAVE_STRTOULL) #if !defined(HAVE_VSSCANF) || !defined(HAVE_STRTOULL)
static size_t static size_t
SDL_ScanUnsignedLongLong(const char *text, int radix, Uint64 * valuep) SDL_ScanUnsignedLongLong(const char *text, int radix, Uint64 * valuep)
{ {
@ -221,7 +221,7 @@ SDL_ScanUnsignedLongLong(const char *text, int radix, Uint64 * valuep)
} }
#endif #endif
#if !defined(HAVE_SSCANF) || !defined(HAVE_STRTOD) #if !defined(HAVE_VSSCANF) || !defined(HAVE_STRTOD)
static size_t static size_t
SDL_ScanFloat(const char *text, double *valuep) SDL_ScanFloat(const char *text, double *valuep)
{ {
@ -967,25 +967,29 @@ SDL_strncasecmp(const char *str1, const char *str2, size_t maxlen)
#endif /* HAVE_STRNCASECMP */ #endif /* HAVE_STRNCASECMP */
} }
#ifdef HAVE_SSCANF
int int
SDL_sscanf(const char *text, const char *fmt, ...) SDL_sscanf(const char *text, const char *fmt, ...)
{ {
int rc; int rc;
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
rc = vsscanf(text, fmt, ap); rc = SDL_vsscanf(text, fmt, ap);
va_end(ap); va_end(ap);
return rc; return rc;
} }
#ifdef HAVE_VSSCANF
int
SDL_vsscanf(const char *text, const char *fmt, va_list ap)
{
return vsscanf(text, fmt, ap);
}
#else #else
int int
SDL_sscanf(const char *text, const char *fmt, ...) SDL_vsscanf(const char *text, const char *fmt, ...)
{ {
va_list ap;
int retval = 0; int retval = 0;
va_start(ap, fmt);
while (*fmt) { while (*fmt) {
if (*fmt == ' ') { if (*fmt == ' ') {
while (SDL_isspace((unsigned char) *text)) { while (SDL_isspace((unsigned char) *text)) {
@ -1239,11 +1243,10 @@ SDL_sscanf(const char *text, const char *fmt, ...)
/* Text didn't match format specifier */ /* Text didn't match format specifier */
break; break;
} }
va_end(ap);
return retval; return retval;
} }
#endif /* HAVE_SSCANF */ #endif /* HAVE_VSSCANF */
int int
SDL_snprintf(char *text, size_t maxlen, const char *fmt, ...) SDL_snprintf(char *text, size_t maxlen, const char *fmt, ...)