summaryrefslogtreecommitdiff
path: root/macosx/plugins/DFInput/SDL/include/SDL_stdinc.h
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-07-31 12:31:11 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-07-31 12:31:11 +0000
commit8bca7a2d9797c2b0546895f5e62fc05b38183468 (patch)
tree19e6bad8d1c3eabaaa7e34fe425a702ef7eb1e2b /macosx/plugins/DFInput/SDL/include/SDL_stdinc.h
parentdd4c0b039bcd38459cd5545d087c2b047198067b (diff)
downloadpcsxr-8bca7a2d9797c2b0546895f5e62fc05b38183468.tar.gz
dfinput (macosx): upgraded to SDL 1.3 Beta.
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@55318 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'macosx/plugins/DFInput/SDL/include/SDL_stdinc.h')
-rw-r--r--macosx/plugins/DFInput/SDL/include/SDL_stdinc.h357
1 files changed, 275 insertions, 82 deletions
diff --git a/macosx/plugins/DFInput/SDL/include/SDL_stdinc.h b/macosx/plugins/DFInput/SDL/include/SDL_stdinc.h
index d15a9f95..ba1e5b5b 100644
--- a/macosx/plugins/DFInput/SDL/include/SDL_stdinc.h
+++ b/macosx/plugins/DFInput/SDL/include/SDL_stdinc.h
@@ -1,6 +1,6 @@
/*
SDL - Simple DirectMedia Layer
- Copyright (C) 1997-2006 Sam Lantinga
+ Copyright (C) 1997-2010 Sam Lantinga
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -20,10 +20,11 @@
slouken@libsdl.org
*/
-// 7-25-2010 Wei Mingzhi
-// Removed everything unrelated to Mac OS X Joystick support.
-
-/* This is a general header that includes C language support */
+/**
+ * \file SDL_stdinc.h
+ *
+ * This is a general header that includes C language support.
+ */
#ifndef _SDL_stdinc_h
#define _SDL_stdinc_h
@@ -71,52 +72,116 @@
#ifdef HAVE_CTYPE_H
# include <ctype.h>
#endif
-#ifdef HAVE_ICONV_H
+#ifdef HAVE_MATH_H
+# include <math.h>
+#endif
+#if defined(HAVE_ICONV) && defined(HAVE_ICONV_H)
# include <iconv.h>
#endif
-/* The number of elements in an array */
+/**
+ * The number of elements in an array.
+ */
#define SDL_arraysize(array) (sizeof(array)/sizeof(array[0]))
#define SDL_TABLESIZE(table) SDL_arraysize(table)
-/* Basic data types */
-typedef enum SDL_bool {
- SDL_FALSE = 0,
- SDL_TRUE = 1
+/**
+ * \name Cast operators
+ *
+ * Use proper C++ casts when compiled as C++ to be compatible with the option
+ * -Wold-style-cast of GCC (and -Werror=old-style-cast in GCC 4.2 and above).
+ */
+/*@{*/
+#ifdef __cplusplus
+#define SDL_reinterpret_cast(type, expression) reinterpret_cast<type>(expression)
+#define SDL_static_cast(type, expression) static_cast<type>(expression)
+#else
+#define SDL_reinterpret_cast(type, expression) ((type)(expression))
+#define SDL_static_cast(type, expression) ((type)(expression))
+#endif
+/*@}*//*Cast operators*/
+
+/* Define a four character code as a Uint32 */
+#define SDL_FOURCC(A, B, C, D) \
+ ((SDL_static_cast(Uint32, SDL_static_cast(Uint8, (A))) << 0) | \
+ (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (B))) << 8) | \
+ (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (C))) << 16) | \
+ (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (D))) << 24))
+
+/**
+ * \name Basic data types
+ */
+/*@{*/
+
+typedef enum
+{
+ SDL_FALSE = 0,
+ SDL_TRUE = 1
} SDL_bool;
-typedef int8_t Sint8;
-typedef uint8_t Uint8;
-typedef int16_t Sint16;
-typedef uint16_t Uint16;
-typedef int32_t Sint32;
-typedef uint32_t Uint32;
+/**
+ * \brief A signed 8-bit integer type.
+ */
+typedef int8_t Sint8;
+/**
+ * \brief An unsigned 8-bit integer type.
+ */
+typedef uint8_t Uint8;
+/**
+ * \brief A signed 16-bit integer type.
+ */
+typedef int16_t Sint16;
+/**
+ * \brief An unsigned 16-bit integer type.
+ */
+typedef uint16_t Uint16;
+/**
+ * \brief A signed 32-bit integer type.
+ */
+typedef int32_t Sint32;
+/**
+ * \brief An unsigned 32-bit integer type.
+ */
+typedef uint32_t Uint32;
#ifdef SDL_HAS_64BIT_TYPE
-typedef int64_t Sint64;
-#ifndef SYMBIAN32_GCCE
-typedef uint64_t Uint64;
-#endif
+/**
+ * \brief A signed 64-bit integer type.
+ * \warning On platforms without any sort of 64-bit datatype, this is equivalent to Sint32!
+ */
+typedef int64_t Sint64;
+/**
+ * \brief An unsigned 64-bit integer type.
+ * \warning On platforms without any sort of 64-bit datatype, this is equivalent to Uint32!
+ */
+typedef uint64_t Uint64;
#else
/* This is really just a hack to prevent the compiler from complaining */
-typedef struct {
- Uint32 hi;
- Uint32 lo;
-} Uint64, Sint64;
+typedef Sint32 Sint64;
+typedef Uint32 Uint64;
#endif
-/* Make sure the types really have the right sizes */
+/*@}*//*Basic data types*/
+
+
#define SDL_COMPILE_TIME_ASSERT(name, x) \
typedef int SDL_dummy_ ## name[(x) * 2 - 1]
-
+/** \cond */
+#ifndef DOXYGEN_SHOULD_IGNORE_THIS
SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1);
SDL_COMPILE_TIME_ASSERT(sint8, sizeof(Sint8) == 1);
SDL_COMPILE_TIME_ASSERT(uint16, sizeof(Uint16) == 2);
SDL_COMPILE_TIME_ASSERT(sint16, sizeof(Sint16) == 2);
SDL_COMPILE_TIME_ASSERT(uint32, sizeof(Uint32) == 4);
SDL_COMPILE_TIME_ASSERT(sint32, sizeof(Sint32) == 4);
+#ifndef __NINTENDODS__ /* TODO: figure out why the following happens:
+ include/SDL_stdinc.h:150: error: size of array 'SDL_dummy_uint64' is negative
+ include/SDL_stdinc.h:151: error: size of array 'SDL_dummy_sint64' is negative */
SDL_COMPILE_TIME_ASSERT(uint64, sizeof(Uint64) == 8);
SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8);
+#endif
+#endif /* DOXYGEN_SHOULD_IGNORE_THIS */
+/** \endcond */
/* Check to make sure enums are the size of ints, for structure packing.
For both Watcom C/C++ and Borland C/C++ the compiler option that makes
@@ -128,37 +193,43 @@ SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8);
#pragma enumsalwaysint on
#endif
-typedef enum {
- DUMMY_ENUM_VALUE
+/** \cond */
+#ifndef DOXYGEN_SHOULD_IGNORE_THIS
+#ifndef __NINTENDODS__ /* TODO: include/SDL_stdinc.h:174: error: size of array 'SDL_dummy_enum' is negative */
+typedef enum
+{
+ DUMMY_ENUM_VALUE
} SDL_DUMMY_ENUM;
-#ifndef __NDS__
SDL_COMPILE_TIME_ASSERT(enum, sizeof(SDL_DUMMY_ENUM) == sizeof(int));
#endif
-
+#endif /* DOXYGEN_SHOULD_IGNORE_THIS */
+/** \endcond */
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
#ifdef HAVE_MALLOC
#define SDL_malloc malloc
#else
-extern DECLSPEC void * SDLCALL SDL_malloc(size_t size);
+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);
+extern DECLSPEC void *SDLCALL SDL_calloc(size_t nmemb, size_t size);
#endif
#ifdef HAVE_REALLOC
#define SDL_realloc realloc
#else
-extern DECLSPEC void * SDLCALL SDL_realloc(void *mem, size_t size);
+extern DECLSPEC void *SDLCALL SDL_realloc(void *mem, size_t size);
#endif
#ifdef HAVE_FREE
@@ -182,11 +253,11 @@ extern DECLSPEC void SDLCALL SDL_free(void *mem);
# elif defined(__DMC__)
# include <stdlib.h>
# elif defined(__AIX__)
- #pragma alloca
+#pragma alloca
# elif defined(__MRC__)
- void *alloca (unsigned);
+void *alloca(unsigned);
# else
- char *alloca ();
+char *alloca();
# endif
#endif
#ifdef HAVE_ALLOCA
@@ -200,20 +271,23 @@ extern DECLSPEC void SDLCALL SDL_free(void *mem);
#ifdef HAVE_GETENV
#define SDL_getenv getenv
#else
-extern DECLSPEC char * SDLCALL SDL_getenv(const char *name);
+extern DECLSPEC char *SDLCALL SDL_getenv(const char *name);
#endif
-#ifdef HAVE_PUTENV
-#define SDL_putenv putenv
+/* SDL_putenv() has moved to SDL_compat. */
+#ifdef HAVE_SETENV
+#define SDL_setenv setenv
#else
-extern DECLSPEC int SDLCALL SDL_putenv(const char *variable);
+extern DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value,
+ int overwrite);
#endif
#ifdef HAVE_QSORT
#define SDL_qsort qsort
#else
extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size,
- int (*compare)(const void *, const void *));
+ int (*compare) (const void *,
+ const void *));
#endif
#ifdef HAVE_ABS
@@ -240,8 +314,10 @@ extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size,
#ifdef HAVE_MEMSET
#define SDL_memset memset
#else
-extern DECLSPEC void * SDLCALL SDL_memset(void *dst, int c, size_t len);
+extern DECLSPEC void *SDLCALL SDL_memset(void *dst, int c, size_t len);
#endif
+#define SDL_zero(x) SDL_memset(&(x), 0, sizeof((x)))
+#define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x)))
#if defined(__GNUC__) && defined(i386)
#define SDL_memset4(dst, val, len) \
@@ -251,7 +327,7 @@ do { \
"cld\n\t" \
"rep ; stosl\n\t" \
: "=&D" (u0), "=&a" (u1), "=&c" (u2) \
- : "0" (dst), "1" (val), "2" ((Uint32)(len)) \
+ : "0" (dst), "1" (val), "2" (SDL_static_cast(Uint32, len)) \
: "memory" ); \
} while(0)
#endif
@@ -260,8 +336,9 @@ do { \
do { \
unsigned _count = (len); \
unsigned _n = (_count + 3) / 4; \
- Uint32 *_p = (Uint32 *)(dst); \
+ Uint32 *_p = SDL_static_cast(Uint32 *, dst); \
Uint32 _val = (val); \
+ if (len == 0) break; \
switch (_count % 4) { \
case 0: do { *_p++ = _val; \
case 3: *_p++ = _val; \
@@ -290,7 +367,7 @@ do { \
"movsb\n" \
"2:" \
: "=&c" (u0), "=&D" (u1), "=&S" (u2) \
- : "0" ((unsigned)(len)/4), "q" (len), "1" (dst),"2" (src) \
+ : "0" (SDL_static_cast(unsigned, len)/4), "q" (len), "1" (dst),"2" (src) \
: "memory" ); \
} while(0)
#endif
@@ -300,7 +377,8 @@ do { \
#elif defined(HAVE_BCOPY)
#define SDL_memcpy(d, s, n) bcopy((s), (d), (n))
#else
-extern DECLSPEC void * SDLCALL SDL_memcpy(void *dst, const void *src, size_t len);
+extern DECLSPEC void *SDLCALL SDL_memcpy(void *dst, const void *src,
+ size_t len);
#endif
#endif
@@ -315,7 +393,7 @@ do { \
"cld\n\t" \
"rep ; movsl" \
: "=&c" (ecx), "=&D" (edi), "=&S" (esi) \
- : "0" ((unsigned)(len)), "1" (dst), "2" (src) \
+ : "0" (SDL_static_cast(unsigned, len)), "1" (dst), "2" (src) \
: "memory" ); \
} while(0)
#endif
@@ -327,13 +405,14 @@ do { \
#define SDL_revcpy(dst, src, len) \
do { \
int u0, u1, u2; \
- char *dstp = (char *)(dst); \
- char *srcp = (char *)(src); \
+ char *dstp = SDL_static_cast(char *, dst); \
+ char *srcp = SDL_static_cast(char *, src); \
int n = (len); \
if ( n >= 4 ) { \
__asm__ __volatile__ ( \
"std\n\t" \
"rep ; movsl\n\t" \
+ "cld\n\t" \
: "=&c" (u0), "=&D" (u1), "=&S" (u2) \
: "0" (n >> 2), \
"1" (dstp+(n-4)), "2" (srcp+(n-4)) \
@@ -350,7 +429,8 @@ do { \
} while(0)
#endif
#ifndef SDL_revcpy
-extern DECLSPEC void * SDLCALL SDL_revcpy(void *dst, const void *src, size_t len);
+extern DECLSPEC void *SDLCALL SDL_revcpy(void *dst, const void *src,
+ size_t len);
#endif
#ifdef HAVE_MEMMOVE
@@ -371,7 +451,8 @@ do { \
#ifdef HAVE_MEMCMP
#define SDL_memcmp memcmp
#else
-extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t len);
+extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2,
+ size_t len);
#endif
#ifdef HAVE_STRLEN
@@ -380,40 +461,51 @@ extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t le
extern DECLSPEC size_t SDLCALL SDL_strlen(const char *string);
#endif
+#ifdef HAVE_WCSLEN
+#define SDL_wcslen wcslen
+#else
+#if !defined(wchar_t) && defined(__NINTENDODS__)
+#define wchar_t short /* TODO: figure out why libnds doesn't have this */
+#endif
+extern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t * string);
+#endif
+
#ifdef HAVE_STRLCPY
#define SDL_strlcpy strlcpy
#else
-extern DECLSPEC size_t SDLCALL SDL_strlcpy(char *dst, const char *src, size_t maxlen);
+extern DECLSPEC size_t SDLCALL SDL_strlcpy(char *dst, const char *src,
+ size_t maxlen);
#endif
#ifdef HAVE_STRLCAT
#define SDL_strlcat strlcat
#else
-extern DECLSPEC size_t SDLCALL SDL_strlcat(char *dst, const char *src, size_t maxlen);
+extern DECLSPEC size_t SDLCALL SDL_strlcat(char *dst, const char *src,
+ size_t maxlen);
#endif
#ifdef HAVE_STRDUP
#define SDL_strdup strdup
#else
-extern DECLSPEC char * SDLCALL SDL_strdup(const char *string);
+extern DECLSPEC char *SDLCALL SDL_strdup(const char *string);
#endif
#ifdef HAVE__STRREV
#define SDL_strrev _strrev
#else
-extern DECLSPEC char * SDLCALL SDL_strrev(char *string);
+extern DECLSPEC char *SDLCALL SDL_strrev(char *string);
#endif
#ifdef HAVE__STRUPR
#define SDL_strupr _strupr
#else
-extern DECLSPEC char * SDLCALL SDL_strupr(char *string);
+extern DECLSPEC char *SDLCALL SDL_strupr(char *string);
#endif
#ifdef HAVE__STRLWR
#define SDL_strlwr _strlwr
#else
-extern DECLSPEC char * SDLCALL SDL_strlwr(char *string);
+extern DECLSPEC char *SDLCALL SDL_strlwr(char *string);
#endif
#ifdef HAVE_STRCHR
@@ -421,7 +513,7 @@ extern DECLSPEC char * SDLCALL SDL_strlwr(char *string);
#elif defined(HAVE_INDEX)
#define SDL_strchr index
#else
-extern DECLSPEC char * SDLCALL SDL_strchr(const char *string, int c);
+extern DECLSPEC char *SDLCALL SDL_strchr(const char *string, int c);
#endif
#ifdef HAVE_STRRCHR
@@ -429,13 +521,14 @@ extern DECLSPEC char * SDLCALL SDL_strchr(const char *string, int c);
#elif defined(HAVE_RINDEX)
#define SDL_strrchr rindex
#else
-extern DECLSPEC char * SDLCALL SDL_strrchr(const char *string, int c);
+extern DECLSPEC char *SDLCALL SDL_strrchr(const char *string, int c);
#endif
#ifdef HAVE_STRSTR
#define SDL_strstr strstr
#else
-extern DECLSPEC char * SDLCALL SDL_strstr(const char *haystack, const char *needle);
+extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack,
+ const char *needle);
#endif
#ifdef HAVE_ITOA
@@ -447,7 +540,7 @@ extern DECLSPEC char * SDLCALL SDL_strstr(const char *haystack, const char *need
#ifdef HAVE__LTOA
#define SDL_ltoa _ltoa
#else
-extern DECLSPEC char * SDLCALL SDL_ltoa(long value, char *string, int radix);
+extern DECLSPEC char *SDLCALL SDL_ltoa(long value, char *string, int radix);
#endif
#ifdef HAVE__UITOA
@@ -459,19 +552,22 @@ extern DECLSPEC char * SDLCALL SDL_ltoa(long value, char *string, int radix);
#ifdef HAVE__ULTOA
#define SDL_ultoa _ultoa
#else
-extern DECLSPEC char * SDLCALL SDL_ultoa(unsigned long value, char *string, int radix);
+extern DECLSPEC char *SDLCALL SDL_ultoa(unsigned long value, char *string,
+ int radix);
#endif
#ifdef HAVE_STRTOL
#define SDL_strtol strtol
#else
-extern DECLSPEC long SDLCALL SDL_strtol(const char *string, char **endp, int base);
+extern DECLSPEC long SDLCALL SDL_strtol(const char *string, char **endp,
+ int base);
#endif
#ifdef HAVE_STRTOUL
#define SDL_strtoul strtoul
#else
-extern DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *string, char **endp, int base);
+extern DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *string,
+ char **endp, int base);
#endif
#ifdef SDL_HAS_64BIT_TYPE
@@ -479,25 +575,29 @@ extern DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *string, char **end
#ifdef HAVE__I64TOA
#define SDL_lltoa _i64toa
#else
-extern DECLSPEC char* SDLCALL SDL_lltoa(Sint64 value, char *string, int radix);
+extern DECLSPEC char *SDLCALL SDL_lltoa(Sint64 value, char *string,
+ int radix);
#endif
#ifdef HAVE__UI64TOA
#define SDL_ulltoa _ui64toa
#else
-extern DECLSPEC char* SDLCALL SDL_ulltoa(Uint64 value, char *string, int radix);
+extern DECLSPEC char *SDLCALL SDL_ulltoa(Uint64 value, char *string,
+ int radix);
#endif
#ifdef HAVE_STRTOLL
#define SDL_strtoll strtoll
#else
-extern DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *string, char **endp, int base);
+extern DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *string, char **endp,
+ int base);
#endif
#ifdef HAVE_STRTOULL
#define SDL_strtoull strtoull
#else
-extern DECLSPEC Uint64 SDLCALL SDL_strtoull(const char *string, char **endp, int base);
+extern DECLSPEC Uint64 SDLCALL SDL_strtoull(const char *string, char **endp,
+ int base);
#endif
#endif /* SDL_HAS_64BIT_TYPE */
@@ -529,7 +629,8 @@ extern DECLSPEC int SDLCALL SDL_strcmp(const char *str1, const char *str2);
#ifdef HAVE_STRNCMP
#define SDL_strncmp strncmp
#else
-extern DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2, size_t maxlen);
+extern DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2,
+ size_t maxlen);
#endif
#ifdef HAVE_STRCASECMP
@@ -537,7 +638,8 @@ extern DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2, size
#elif defined(HAVE__STRICMP)
#define SDL_strcasecmp _stricmp
#else
-extern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1, const char *str2);
+extern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1,
+ const char *str2);
#endif
#ifdef HAVE_STRNCASECMP
@@ -545,25 +647,105 @@ extern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1, const char *str2);
#elif defined(HAVE__STRNICMP)
#define SDL_strncasecmp _strnicmp
#else
-extern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1, const char *str2, size_t maxlen);
+extern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1,
+ const char *str2, size_t maxlen);
#endif
#ifdef HAVE_SSCANF
#define SDL_sscanf sscanf
#else
-extern DECLSPEC int SDLCALL SDL_sscanf(const char *text, const char *fmt, ...);
+extern DECLSPEC int SDLCALL SDL_sscanf(const char *text, const char *fmt,
+ ...);
#endif
#ifdef HAVE_SNPRINTF
#define SDL_snprintf snprintf
#else
-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, ...);
#endif
#ifdef HAVE_VSNPRINTF
#define SDL_vsnprintf vsnprintf
#else
-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);
+#endif
+
+#ifndef HAVE_M_PI
+#define M_PI 3.14159265358979323846264338327950288 /* pi */
+#endif
+
+#ifdef HAVE_CEIL
+#define SDL_ceil ceil
+#else
+#define SDL_ceil(x) ((double)(int)((x)+0.5))
+#endif
+
+#ifdef HAVE_COPYSIGN
+#define SDL_copysign copysign
+#else
+extern DECLSPEC double SDLCALL SDL_copysign(double x, double y);
+#endif
+
+#ifdef HAVE_COS
+#define SDL_cos cos
+#else
+extern DECLSPEC double SDLCALL SDL_cos(double x);
+#endif
+
+#ifdef HAVE_COSF
+#define SDL_cosf cosf
+#else
+#define SDL_cosf(x) (float)SDL_cos((double)x)
+#endif
+
+#ifdef HAVE_FABS
+#define SDL_fabs fabs
+#else
+extern DECLSPEC double SDLCALL SDL_fabs(double x);
+#endif
+
+#ifdef HAVE_FLOOR
+#define SDL_floor floor
+#else
+extern DECLSPEC double SDLCALL SDL_floor(double x);
+#endif
+
+#ifdef HAVE_LOG
+#define SDL_log log
+#else
+extern DECLSPEC double SDLCALL SDL_log(double x);
+#endif
+
+#ifdef HAVE_POW
+#define SDL_pow pow
+#else
+extern DECLSPEC double SDLCALL SDL_pow(double x, double y);
+#endif
+
+#ifdef HAVE_SCALBN
+#define SDL_scalbn scalbn
+#else
+extern DECLSPEC double SDLCALL SDL_scalbn(double x, int n);
+#endif
+
+#ifdef HAVE_SIN
+#define SDL_sin sin
+#else
+extern DECLSPEC double SDLCALL SDL_sin(double x);
+#endif
+
+#ifdef HAVE_SINF
+#define SDL_sinf sinf
+#else
+#define SDL_sinf(x) (float)SDL_sin((double)x)
+#endif
+
+#ifdef HAVE_SQRT
+#define SDL_sqrt sqrt
+#else
+extern DECLSPEC double SDLCALL SDL_sqrt(double x);
#endif
/* The SDL implementation of iconv() returns these error codes */
@@ -572,28 +754,39 @@ extern DECLSPEC int SDLCALL SDL_vsnprintf(char *text, size_t maxlen, const char
#define SDL_ICONV_EILSEQ (size_t)-3
#define SDL_ICONV_EINVAL (size_t)-4
-#ifdef HAVE_ICONV
+#if defined(HAVE_ICONV) && defined(HAVE_ICONV_H)
#define SDL_iconv_t iconv_t
#define SDL_iconv_open iconv_open
#define SDL_iconv_close iconv_close
#else
typedef struct _SDL_iconv_t *SDL_iconv_t;
-extern DECLSPEC SDL_iconv_t SDLCALL SDL_iconv_open(const char *tocode, const char *fromcode);
+extern DECLSPEC SDL_iconv_t SDLCALL SDL_iconv_open(const char *tocode,
+ const char *fromcode);
extern DECLSPEC int SDLCALL SDL_iconv_close(SDL_iconv_t cd);
#endif
-extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
-/* This function converts a string between encodings in one pass, returning a
- string that must be freed with SDL_free() or NULL on error.
-*/
-extern DECLSPEC char * SDLCALL SDL_iconv_string(const char *tocode, const char *fromcode, const char *inbuf, size_t inbytesleft);
+extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf,
+ size_t * inbytesleft, char **outbuf,
+ size_t * outbytesleft);
+/**
+ * This function converts a string between encodings in one pass, returning a
+ * string that must be freed with SDL_free() or NULL on error.
+ */
+extern DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode,
+ const char *fromcode,
+ const char *inbuf,
+ size_t inbytesleft);
#define SDL_iconv_utf8_locale(S) SDL_iconv_string("", "UTF-8", S, SDL_strlen(S)+1)
#define SDL_iconv_utf8_ucs2(S) (Uint16 *)SDL_iconv_string("UCS-2", "UTF-8", S, SDL_strlen(S)+1)
#define SDL_iconv_utf8_ucs4(S) (Uint32 *)SDL_iconv_string("UCS-4", "UTF-8", S, SDL_strlen(S)+1)
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_stdinc_h */
+
+/* vi: set ts=4 sw=4 expandtab: */