annotate include/SDL_stdinc.h @ 3914:4fd12011d8d6 SDL-1.2

Quartz code should use F13, F14, and F15 keys instead of PrintScreen, ScrollLock, and Pause, since that's what's on the standard Apple keyboards (minus the laptops, which have neither set). Ideally we'll find a better way to distinguish this...the keys being replaced would be correct on a USB keyboard for Windows. Sigh. Fixes Bugzilla #301.
author Ryan C. Gordon <icculus@icculus.org>
date Wed, 14 Feb 2007 10:23:23 +0000
parents ce3a2bd11305
children f16c15f3bc2b
rev   line source
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
1 /*
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
2 SDL - Simple DirectMedia Layer
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
3 Copyright (C) 1997-2006 Sam Lantinga
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
4
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
5 This library is free software; you can redistribute it and/or
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
6 modify it under the terms of the GNU Lesser General Public
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
7 License as published by the Free Software Foundation; either
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
8 version 2.1 of the License, or (at your option) any later version.
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
9
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
10 This library is distributed in the hope that it will be useful,
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
13 Lesser General Public License for more details.
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
14
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
15 You should have received a copy of the GNU Lesser General Public
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
16 License along with this library; if not, write to the Free Software
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
18
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
19 Sam Lantinga
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
20 slouken@libsdl.org
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
21 */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
22
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
23 /* This is a general header that includes C language support */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
24
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
25 #ifndef _SDL_stdinc_h
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
26 #define _SDL_stdinc_h
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
27
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
28 #include "SDL_config.h"
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
29
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
30
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
31 #ifdef HAVE_SYS_TYPES_H
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
32 #include <sys/types.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
33 #endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
34 #ifdef HAVE_STDIO_H
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
35 #include <stdio.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
36 #endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
37 #if defined(STDC_HEADERS)
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
38 # include <stdlib.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
39 # include <stddef.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
40 # include <stdarg.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
41 #else
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
42 # if defined(HAVE_STDLIB_H)
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
43 # include <stdlib.h>
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
44 # elif defined(HAVE_MALLOC_H)
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
45 # include <malloc.h>
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
46 # endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
47 # if defined(HAVE_STDDEF_H)
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
48 # include <stddef.h>
1422
d2ee8da60262 Added pre-configured versions of SDL_config.h for various platforms
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
49 # endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
50 # if defined(HAVE_STDARG_H)
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
51 # include <stdarg.h>
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
52 # endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
53 #endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
54 #ifdef HAVE_STRING_H
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
55 # if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H)
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
56 # include <memory.h>
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
57 # endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
58 # include <string.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
59 #endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
60 #ifdef HAVE_STRINGS_H
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
61 # include <strings.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
62 #endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
63 #if defined(HAVE_INTTYPES_H)
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
64 # include <inttypes.h>
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
65 #elif defined(HAVE_STDINT_H)
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
66 # include <stdint.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
67 #endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
68 #ifdef HAVE_CTYPE_H
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
69 # include <ctype.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
70 #endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
71 #ifdef HAVE_ICONV_H
1501
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
72 # include <iconv.h>
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
73 #endif
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
74
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
75 /* The number of elements in an array */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
76 #define SDL_arraysize(array) (sizeof(array)/sizeof(array[0]))
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
77 #define SDL_TABLESIZE(table) SDL_arraysize(table)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
78
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
79 /* Basic data types */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
80 typedef enum SDL_bool {
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
81 SDL_FALSE = 0,
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
82 SDL_TRUE = 1
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
83 } SDL_bool;
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
84
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
85 typedef int8_t Sint8;
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
86 typedef uint8_t Uint8;
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
87 typedef int16_t Sint16;
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
88 typedef uint16_t Uint16;
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
89 typedef int32_t Sint32;
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
90 typedef uint32_t Uint32;
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
91
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
92 #ifdef SDL_HAS_64BIT_TYPE
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
93 typedef int64_t Sint64;
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
94 typedef uint64_t Uint64;
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
95 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
96 /* This is really just a hack to prevent the compiler from complaining */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
97 typedef struct {
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
98 Uint32 hi;
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
99 Uint32 lo;
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
100 } Uint64, Sint64;
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
101 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
102
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
103 /* Make sure the types really have the right sizes */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
104 #define SDL_COMPILE_TIME_ASSERT(name, x) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
105 typedef int SDL_dummy_ ## name[(x) * 2 - 1]
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
106
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
107 SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
108 SDL_COMPILE_TIME_ASSERT(sint8, sizeof(Sint8) == 1);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
109 SDL_COMPILE_TIME_ASSERT(uint16, sizeof(Uint16) == 2);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
110 SDL_COMPILE_TIME_ASSERT(sint16, sizeof(Sint16) == 2);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
111 SDL_COMPILE_TIME_ASSERT(uint32, sizeof(Uint32) == 4);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
112 SDL_COMPILE_TIME_ASSERT(sint32, sizeof(Sint32) == 4);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
113 SDL_COMPILE_TIME_ASSERT(uint64, sizeof(Uint64) == 8);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
114 SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
115
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
116 /* Check to make sure enums are the size of ints, for structure packing.
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
117 For both Watcom C/C++ and Borland C/C++ the compiler option that makes
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
118 enums having the size of an int must be enabled.
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
119 This is "-b" for Borland C/C++ and "-ei" for Watcom C/C++ (v11).
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
120 */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
121 /* Enable enums always int in CodeWarrior (for MPW use "-enum int") */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
122 #ifdef __MWERKS__
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
123 #pragma enumsalwaysint on
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
124 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
125
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
126 typedef enum {
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
127 DUMMY_ENUM_VALUE
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
128 } SDL_DUMMY_ENUM;
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
129
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
130 SDL_COMPILE_TIME_ASSERT(enum, sizeof(SDL_DUMMY_ENUM) == sizeof(int));
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
131
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
132
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
133 #include "begin_code.h"
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
134 /* Set up for C function definitions, even when using C++ */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
135 #ifdef __cplusplus
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
136 extern "C" {
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
137 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
138
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
139 #ifdef HAVE_MALLOC
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
140 #define SDL_malloc malloc
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
141 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
142 extern DECLSPEC void * SDLCALL SDL_malloc(size_t size);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
143 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
144
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
145 #ifdef HAVE_CALLOC
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
146 #define SDL_calloc calloc
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
147 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
148 extern DECLSPEC void * SDLCALL SDL_calloc(size_t nmemb, size_t size);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
149 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
150
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
151 #ifdef HAVE_REALLOC
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
152 #define SDL_realloc realloc
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
153 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
154 extern DECLSPEC void * SDLCALL SDL_realloc(void *mem, size_t size);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
155 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
156
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
157 #ifdef HAVE_FREE
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
158 #define SDL_free free
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
159 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
160 extern DECLSPEC void SDLCALL SDL_free(void *mem);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
161 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
162
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
163 #if defined(HAVE_ALLOCA) && !defined(alloca)
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
164 # if defined(HAVE_ALLOCA_H)
1381
8570e1f4b1f1 On FreeBSD, alloca is defined in stdlib.h
Sam Lantinga <slouken@libsdl.org>
parents: 1379
diff changeset
165 # include <alloca.h>
1402
d910939febfa Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents: 1381
diff changeset
166 # elif defined(__GNUC__)
1381
8570e1f4b1f1 On FreeBSD, alloca is defined in stdlib.h
Sam Lantinga <slouken@libsdl.org>
parents: 1379
diff changeset
167 # define alloca __builtin_alloca
1402
d910939febfa Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents: 1381
diff changeset
168 # elif defined(_MSC_VER)
1381
8570e1f4b1f1 On FreeBSD, alloca is defined in stdlib.h
Sam Lantinga <slouken@libsdl.org>
parents: 1379
diff changeset
169 # include <malloc.h>
8570e1f4b1f1 On FreeBSD, alloca is defined in stdlib.h
Sam Lantinga <slouken@libsdl.org>
parents: 1379
diff changeset
170 # define alloca _alloca
1769
290b5baf2fca Fixed bug #215
Sam Lantinga <slouken@libsdl.org>
parents: 1626
diff changeset
171 # elif defined(__WATCOMC__)
290b5baf2fca Fixed bug #215
Sam Lantinga <slouken@libsdl.org>
parents: 1626
diff changeset
172 # include <malloc.h>
1870
39a4f91b164a Fixed bug #256
Sam Lantinga <slouken@libsdl.org>
parents: 1829
diff changeset
173 # elif defined(__DMC__)
39a4f91b164a Fixed bug #256
Sam Lantinga <slouken@libsdl.org>
parents: 1829
diff changeset
174 # include <stdlib.h>
1402
d910939febfa Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents: 1381
diff changeset
175 # elif defined(__AIX__)
1381
8570e1f4b1f1 On FreeBSD, alloca is defined in stdlib.h
Sam Lantinga <slouken@libsdl.org>
parents: 1379
diff changeset
176 #pragma alloca
1829
b98fd17b0b02 Fixed alloca declaration for MPW
Sam Lantinga <slouken@libsdl.org>
parents: 1769
diff changeset
177 # elif defined(__MRC__)
b98fd17b0b02 Fixed alloca declaration for MPW
Sam Lantinga <slouken@libsdl.org>
parents: 1769
diff changeset
178 void *alloca (unsigned);
1381
8570e1f4b1f1 On FreeBSD, alloca is defined in stdlib.h
Sam Lantinga <slouken@libsdl.org>
parents: 1379
diff changeset
179 # else
8570e1f4b1f1 On FreeBSD, alloca is defined in stdlib.h
Sam Lantinga <slouken@libsdl.org>
parents: 1379
diff changeset
180 char *alloca ();
8570e1f4b1f1 On FreeBSD, alloca is defined in stdlib.h
Sam Lantinga <slouken@libsdl.org>
parents: 1379
diff changeset
181 # endif
8570e1f4b1f1 On FreeBSD, alloca is defined in stdlib.h
Sam Lantinga <slouken@libsdl.org>
parents: 1379
diff changeset
182 #endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
183 #ifdef HAVE_ALLOCA
3900
ce3a2bd11305 Wrapped some macro params in parentheses for alloca wrappers.
Ryan C. Gordon <icculus@icculus.org>
parents: 1870
diff changeset
184 #define SDL_stack_alloc(type, count) (type*)alloca(sizeof(type)*(count))
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
185 #define SDL_stack_free(data)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
186 #else
3900
ce3a2bd11305 Wrapped some macro params in parentheses for alloca wrappers.
Ryan C. Gordon <icculus@icculus.org>
parents: 1870
diff changeset
187 #define SDL_stack_alloc(type, count) (type*)SDL_malloc(sizeof(type)*(count))
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
188 #define SDL_stack_free(data) SDL_free(data)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
189 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
190
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
191 #ifdef HAVE_GETENV
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
192 #define SDL_getenv getenv
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
193 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
194 extern DECLSPEC char * SDLCALL SDL_getenv(const char *name);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
195 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
196
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
197 #ifdef HAVE_PUTENV
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
198 #define SDL_putenv putenv
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
199 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
200 extern DECLSPEC int SDLCALL SDL_putenv(const char *variable);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
201 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
202
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
203 #ifdef HAVE_QSORT
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
204 #define SDL_qsort qsort
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
205 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
206 extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size,
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
207 int (*compare)(const void *, const void *));
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
208 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
209
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
210 #ifdef HAVE_ABS
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
211 #define SDL_abs abs
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
212 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
213 #define SDL_abs(X) ((X) < 0 ? -(X) : (X))
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
214 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
215
1379
c0a74f199ecf Use only safe string functions
Sam Lantinga <slouken@libsdl.org>
parents: 1368
diff changeset
216 #define SDL_min(x, y) (((x) < (y)) ? (x) : (y))
c0a74f199ecf Use only safe string functions
Sam Lantinga <slouken@libsdl.org>
parents: 1368
diff changeset
217 #define SDL_max(x, y) (((x) > (y)) ? (x) : (y))
c0a74f199ecf Use only safe string functions
Sam Lantinga <slouken@libsdl.org>
parents: 1368
diff changeset
218
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
219 #ifdef HAVE_CTYPE_H
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
220 #define SDL_isdigit(X) isdigit(X)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
221 #define SDL_isspace(X) isspace(X)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
222 #define SDL_toupper(X) toupper(X)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
223 #define SDL_tolower(X) tolower(X)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
224 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
225 #define SDL_isdigit(X) (((X) >= '0') && ((X) <= '9'))
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
226 #define SDL_isspace(X) (((X) == ' ') || ((X) == '\t') || ((X) == '\r') || ((X) == '\n'))
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
227 #define SDL_toupper(X) (((X) >= 'a') && ((X) <= 'z') ? ('A'+((X)-'a')) : (X))
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
228 #define SDL_tolower(X) (((X) >= 'A') && ((X) <= 'Z') ? ('a'+((X)-'A')) : (X))
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
229 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
230
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
231 #ifdef HAVE_MEMSET
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
232 #define SDL_memset memset
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
233 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
234 extern DECLSPEC void * SDLCALL SDL_memset(void *dst, int c, size_t len);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
235 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
236
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
237 #if defined(__GNUC__) && defined(i386)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
238 #define SDL_memset4(dst, val, len) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
239 do { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
240 int u0, u1, u2; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
241 __asm__ __volatile__ ( \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
242 "cld\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
243 "rep ; stosl\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
244 : "=&D" (u0), "=&a" (u1), "=&c" (u2) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
245 : "0" (dst), "1" (val), "2" ((Uint32)(len)) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
246 : "memory" ); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
247 } while(0)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
248 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
249 #ifndef SDL_memset4
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
250 #define SDL_memset4(dst, val, len) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
251 do { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
252 unsigned _count = (len); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
253 unsigned _n = (_count + 3) / 4; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
254 Uint32 *_p = (Uint32 *)(dst); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
255 Uint32 _val = (val); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
256 switch (_count % 4) { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
257 case 0: do { *_p++ = _val; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
258 case 3: *_p++ = _val; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
259 case 2: *_p++ = _val; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
260 case 1: *_p++ = _val; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
261 } while ( --_n ); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
262 } \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
263 } while(0)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
264 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
265
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
266 #if defined(__GNUC__) && defined(i386)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
267 #define SDL_memcpy(dst, src, len) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
268 do { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
269 int u0, u1, u2; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
270 __asm__ __volatile__ ( \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
271 "cld\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
272 "rep ; movsl\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
273 "testb $2,%b4\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
274 "je 1f\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
275 "movsw\n" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
276 "1:\ttestb $1,%b4\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
277 "je 2f\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
278 "movsb\n" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
279 "2:" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
280 : "=&c" (u0), "=&D" (u1), "=&S" (u2) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
281 : "0" ((unsigned)(len)/4), "q" (len), "1" (dst),"2" (src) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
282 : "memory" ); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
283 } while(0)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
284 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
285 #ifndef SDL_memcpy
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
286 #ifdef HAVE_MEMCPY
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
287 #define SDL_memcpy memcpy
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
288 #elif defined(HAVE_BCOPY)
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
289 #define SDL_memcpy(d, s, n) bcopy((s), (d), (n))
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
290 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
291 extern DECLSPEC void * SDLCALL SDL_memcpy(void *dst, const void *src, size_t len);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
292 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
293 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
294
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
295 #if defined(__GNUC__) && defined(i386)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
296 #define SDL_memcpy4(dst, src, len) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
297 do { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
298 int ecx, edi, esi; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
299 __asm__ __volatile__ ( \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
300 "cld\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
301 "rep ; movsl" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
302 : "=&c" (ecx), "=&D" (edi), "=&S" (esi) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
303 : "0" ((unsigned)(len)), "1" (dst), "2" (src) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
304 : "memory" ); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
305 } while(0)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
306 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
307 #ifndef SDL_memcpy4
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
308 #define SDL_memcpy4(dst, src, len) SDL_memcpy(dst, src, (len) << 2)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
309 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
310
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
311 #if defined(__GNUC__) && defined(i386)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
312 #define SDL_revcpy(dst, src, len) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
313 do { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
314 int u0, u1, u2; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
315 char *dstp = (char *)(dst); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
316 char *srcp = (char *)(src); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
317 int n = (len); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
318 if ( n >= 4 ) { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
319 __asm__ __volatile__ ( \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
320 "std\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
321 "rep ; movsl\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
322 : "=&c" (u0), "=&D" (u1), "=&S" (u2) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
323 : "0" (n >> 2), \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
324 "1" (dstp+(n-4)), "2" (srcp+(n-4)) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
325 : "memory" ); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
326 } \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
327 switch (n & 3) { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
328 case 3: dstp[2] = srcp[2]; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
329 case 2: dstp[1] = srcp[1]; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
330 case 1: dstp[0] = srcp[0]; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
331 break; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
332 default: \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
333 break; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
334 } \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
335 } while(0)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
336 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
337 #ifndef SDL_revcpy
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
338 extern DECLSPEC void * SDLCALL SDL_revcpy(void *dst, const void *src, size_t len);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
339 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
340
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
341 #ifdef HAVE_MEMMOVE
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
342 #define SDL_memmove memmove
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
343 #elif defined(HAVE_BCOPY)
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
344 #define SDL_memmove(d, s, n) bcopy((s), (d), (n))
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
345 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
346 #define SDL_memmove(dst, src, len) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
347 do { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
348 if ( dst < src ) { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
349 SDL_memcpy(dst, src, len); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
350 } else { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
351 SDL_revcpy(dst, src, len); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
352 } \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
353 } while(0)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
354 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
355
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
356 #ifdef HAVE_MEMCMP
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
357 #define SDL_memcmp memcmp
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
358 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
359 extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t len);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
360 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
361
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
362 #ifdef HAVE_STRLEN
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
363 #define SDL_strlen strlen
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
364 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
365 extern DECLSPEC size_t SDLCALL SDL_strlen(const char *string);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
366 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
367
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
368 #ifdef HAVE_STRLCPY
1379
c0a74f199ecf Use only safe string functions
Sam Lantinga <slouken@libsdl.org>
parents: 1368
diff changeset
369 #define SDL_strlcpy strlcpy
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
370 #else
1379
c0a74f199ecf Use only safe string functions
Sam Lantinga <slouken@libsdl.org>
parents: 1368
diff changeset
371 extern DECLSPEC size_t SDLCALL SDL_strlcpy(char *dst, const char *src, size_t maxlen);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
372 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
373
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
374 #ifdef HAVE_STRLCAT
1379
c0a74f199ecf Use only safe string functions
Sam Lantinga <slouken@libsdl.org>
parents: 1368
diff changeset
375 #define SDL_strlcat strlcat
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
376 #else
1379
c0a74f199ecf Use only safe string functions
Sam Lantinga <slouken@libsdl.org>
parents: 1368
diff changeset
377 extern DECLSPEC size_t SDLCALL SDL_strlcat(char *dst, const char *src, size_t maxlen);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
378 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
379
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
380 #ifdef HAVE_STRDUP
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
381 #define SDL_strdup strdup
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
382 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
383 extern DECLSPEC char * SDLCALL SDL_strdup(const char *string);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
384 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
385
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
386 #ifdef HAVE__STRREV
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
387 #define SDL_strrev _strrev
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
388 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
389 extern DECLSPEC char * SDLCALL SDL_strrev(char *string);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
390 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
391
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
392 #ifdef HAVE__STRUPR
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
393 #define SDL_strupr _strupr
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
394 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
395 extern DECLSPEC char * SDLCALL SDL_strupr(char *string);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
396 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
397
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
398 #ifdef HAVE__STRLWR
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
399 #define SDL_strlwr _strlwr
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
400 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
401 extern DECLSPEC char * SDLCALL SDL_strlwr(char *string);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
402 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
403
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
404 #ifdef HAVE_STRCHR
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
405 #define SDL_strchr strchr
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
406 #elif defined(HAVE_INDEX)
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
407 #define SDL_strchr index
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
408 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
409 extern DECLSPEC char * SDLCALL SDL_strchr(const char *string, int c);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
410 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
411
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
412 #ifdef HAVE_STRRCHR
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
413 #define SDL_strrchr strrchr
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
414 #elif defined(HAVE_RINDEX)
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
415 #define SDL_strrchr rindex
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
416 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
417 extern DECLSPEC char * SDLCALL SDL_strrchr(const char *string, int c);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
418 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
419
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
420 #ifdef HAVE_STRSTR
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
421 #define SDL_strstr strstr
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
422 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
423 extern DECLSPEC char * SDLCALL SDL_strstr(const char *haystack, const char *needle);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
424 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
425
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
426 #ifdef HAVE_ITOA
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
427 #define SDL_itoa itoa
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
428 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
429 #define SDL_itoa(value, string, radix) SDL_ltoa((long)value, string, radix)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
430 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
431
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
432 #ifdef HAVE__LTOA
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
433 #define SDL_ltoa _ltoa
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
434 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
435 extern DECLSPEC char * SDLCALL SDL_ltoa(long value, char *string, int radix);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
436 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
437
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
438 #ifdef HAVE__UITOA
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
439 #define SDL_uitoa _uitoa
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
440 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
441 #define SDL_uitoa(value, string, radix) SDL_ultoa((long)value, string, radix)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
442 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
443
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
444 #ifdef HAVE__ULTOA
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
445 #define SDL_ultoa _ultoa
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
446 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
447 extern DECLSPEC char * SDLCALL SDL_ultoa(unsigned long value, char *string, int radix);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
448 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
449
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
450 #ifdef HAVE_STRTOL
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
451 #define SDL_strtol strtol
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
452 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
453 extern DECLSPEC long SDLCALL SDL_strtol(const char *string, char **endp, int base);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
454 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
455
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
456 #ifdef HAVE_STRTOUL
1456
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
457 #define SDL_strtoul strtoul
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
458 #else
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
459 extern DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *string, char **endp, int base);
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
460 #endif
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
461
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
462 #ifdef SDL_HAS_64BIT_TYPE
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
463
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
464 #ifdef HAVE__I64TOA
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
465 #define SDL_lltoa _i64toa
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
466 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
467 extern DECLSPEC char* SDLCALL SDL_lltoa(Sint64 value, char *string, int radix);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
468 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
469
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
470 #ifdef HAVE__UI64TOA
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
471 #define SDL_ulltoa _ui64toa
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
472 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
473 extern DECLSPEC char* SDLCALL SDL_ulltoa(Uint64 value, char *string, int radix);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
474 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
475
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
476 #ifdef HAVE_STRTOLL
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
477 #define SDL_strtoll strtoll
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
478 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
479 extern DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *string, char **endp, int base);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
480 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
481
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
482 #ifdef HAVE_STRTOULL
1456
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
483 #define SDL_strtoull strtoull
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
484 #else
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
485 extern DECLSPEC Uint64 SDLCALL SDL_strtoull(const char *string, char **endp, int base);
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
486 #endif
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
487
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
488 #endif /* SDL_HAS_64BIT_TYPE */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
489
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
490 #ifdef HAVE_STRTOD
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
491 #define SDL_strtod strtod
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
492 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
493 extern DECLSPEC double SDLCALL SDL_strtod(const char *string, char **endp);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
494 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
495
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
496 #ifdef HAVE_ATOI
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
497 #define SDL_atoi atoi
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
498 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
499 #define SDL_atoi(X) SDL_strtol(X, NULL, 0)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
500 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
501
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
502 #ifdef HAVE_ATOF
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
503 #define SDL_atof atof
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
504 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
505 #define SDL_atof(X) SDL_strtod(X, NULL)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
506 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
507
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
508 #ifdef HAVE_STRCMP
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
509 #define SDL_strcmp strcmp
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
510 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
511 extern DECLSPEC int SDLCALL SDL_strcmp(const char *str1, const char *str2);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
512 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
513
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
514 #ifdef HAVE_STRNCMP
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
515 #define SDL_strncmp strncmp
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
516 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
517 extern DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2, size_t maxlen);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
518 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
519
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
520 #ifdef HAVE_STRCASECMP
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
521 #define SDL_strcasecmp strcasecmp
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
522 #elif defined(HAVE__STRICMP)
1510
720f8bb49d7d Win32 fixes
Sam Lantinga <slouken@libsdl.org>
parents: 1501
diff changeset
523 #define SDL_strcasecmp _stricmp
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
524 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
525 extern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1, const char *str2);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
526 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
527
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
528 #ifdef HAVE_STRNCASECMP
1501
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
529 #define SDL_strncasecmp strncasecmp
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
530 #elif defined(HAVE__STRNICMP)
1512
845b1619c8f6 Added _strnicmp support
Sam Lantinga <slouken@libsdl.org>
parents: 1510
diff changeset
531 #define SDL_strncasecmp _strnicmp
1501
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
532 #else
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
533 extern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1, const char *str2, size_t maxlen);
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
534 #endif
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
535
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
536 #ifdef HAVE_SSCANF
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
537 #define SDL_sscanf sscanf
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
538 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
539 extern DECLSPEC int SDLCALL SDL_sscanf(const char *text, const char *fmt, ...);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
540 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
541
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
542 #ifdef HAVE_SNPRINTF
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
543 #define SDL_snprintf snprintf
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
544 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
545 extern DECLSPEC int SDLCALL SDL_snprintf(char *text, size_t maxlen, const char *fmt, ...);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
546 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
547
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
548 #ifdef HAVE_VSNPRINTF
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
549 #define SDL_vsnprintf vsnprintf
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
550 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
551 extern DECLSPEC int SDLCALL SDL_vsnprintf(char *text, size_t maxlen, const char *fmt, va_list ap);
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
552 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
553
1501
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
554 /* The SDL implementation of iconv() returns these error codes */
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
555 #define SDL_ICONV_ERROR (size_t)-1
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
556 #define SDL_ICONV_E2BIG (size_t)-2
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
557 #define SDL_ICONV_EILSEQ (size_t)-3
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
558 #define SDL_ICONV_EINVAL (size_t)-4
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
559
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
560 #ifdef HAVE_ICONV
1501
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
561 #define SDL_iconv_t iconv_t
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
562 #define SDL_iconv_open iconv_open
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
563 #define SDL_iconv_close iconv_close
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
564 extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
565 #else
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
566 typedef struct _SDL_iconv_t *SDL_iconv_t;
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
567 extern DECLSPEC SDL_iconv_t SDLCALL SDL_iconv_open(const char *tocode, const char *fromcode);
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
568 extern DECLSPEC int SDLCALL SDL_iconv_close(SDL_iconv_t cd);
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
569 extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
570 #endif
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
571 /* This function converts a string between encodings in one pass, returning a
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
572 string that must be freed with SDL_free() or NULL on error.
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
573 */
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
574 extern DECLSPEC char * SDLCALL SDL_iconv_string(const char *tocode, const char *fromcode, char *inbuf, size_t inbytesleft);
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
575 #define SDL_iconv_utf8_ascii(S) SDL_iconv_string("ASCII", "UTF-8", S, SDL_strlen(S)+1)
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
576 #define SDL_iconv_utf8_latin1(S) SDL_iconv_string("LATIN1", "UTF-8", S, SDL_strlen(S)+1)
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
577 #define SDL_iconv_utf8_ucs2(S) (Uint16 *)SDL_iconv_string("UCS-2", "UTF-8", S, SDL_strlen(S)+1)
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
578 #define SDL_iconv_utf8_ucs4(S) (Uint32 *)SDL_iconv_string("UCS-4", "UTF-8", S, SDL_strlen(S)+1)
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
579
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
580 /* Ends C function definitions when using C++ */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
581 #ifdef __cplusplus
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
582 }
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
583 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
584 #include "close_code.h"
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
585
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
586 #endif /* _SDL_stdinc_h */