annotate include/SDL_stdinc.h @ 1675:d33dcfc3fde7 SDL-1.3

Overlay functions are being replaced by YUV textures. If the driver doesn't support YUV textures, they can be emulated by backing the texture with an RGB texture and using the software conversion routines. Note that it doesn't make sense to lock a portion of a YV12 texture, since you'd need to return three pixel pointers and pitch values instead of the one that's available through the API. I'm guessing that's one of the reasons DirectX 9 doesn't support this format at all.
author Sam Lantinga <slouken@libsdl.org>
date Sun, 11 Jun 2006 07:30:16 +0000
parents 4da1ee79c9af
children 3695d3637045
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
1662
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
23 /**
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
24 * \file SDL_stdinc.h
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
25 *
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
26 * This is a general header that includes C language support
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
27 */
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
28
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
29 #ifndef _SDL_stdinc_h
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
30 #define _SDL_stdinc_h
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
31
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
32 #include "SDL_config.h"
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
33
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
34
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
35 #ifdef HAVE_SYS_TYPES_H
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
36 #include <sys/types.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
37 #endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
38 #ifdef HAVE_STDIO_H
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
39 #include <stdio.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
40 #endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
41 #if defined(STDC_HEADERS)
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
42 # include <stdlib.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
43 # include <stddef.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
44 # include <stdarg.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
45 #else
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
46 # if defined(HAVE_STDLIB_H)
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
47 # include <stdlib.h>
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
48 # elif defined(HAVE_MALLOC_H)
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
49 # include <malloc.h>
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
50 # endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
51 # if defined(HAVE_STDDEF_H)
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
52 # 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
53 # endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
54 # if defined(HAVE_STDARG_H)
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
55 # include <stdarg.h>
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
56 # endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
57 #endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
58 #ifdef HAVE_STRING_H
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
59 # if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H)
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
60 # include <memory.h>
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
61 # endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
62 # include <string.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
63 #endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
64 #ifdef HAVE_STRINGS_H
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
65 # include <strings.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
66 #endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
67 #if defined(HAVE_INTTYPES_H)
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
68 # include <inttypes.h>
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
69 #elif defined(HAVE_STDINT_H)
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
70 # include <stdint.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
71 #endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
72 #ifdef HAVE_CTYPE_H
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
73 # include <ctype.h>
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
74 #endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
75 #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
76 # 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
77 #endif
1357
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 /* The number of elements in an array */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
80 #define SDL_arraysize(array) (sizeof(array)/sizeof(array[0]))
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
81 #define SDL_TABLESIZE(table) SDL_arraysize(table)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
82
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
83 /* Basic data types */
1662
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
84 typedef enum SDL_bool
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
85 {
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
86 SDL_FALSE = 0,
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
87 SDL_TRUE = 1
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
88 } SDL_bool;
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
89
1662
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
90 /**
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
91 * \typedef Sint8
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
92 * \brief A signed 8-bit integer type.
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
93 */
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
94 typedef int8_t Sint8;
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
95 /**
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
96 * \typedef Uint8
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
97 * \brief An unsigned 8-bit integer type.
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
98 */
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
99 typedef uint8_t Uint8;
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
100 /**
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
101 * \typedef Sint16
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
102 * \brief A signed 16-bit integer type.
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
103 */
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
104 typedef int16_t Sint16;
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
105 /**
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
106 * \typedef Uint16
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
107 * \brief An unsigned 16-bit integer type.
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
108 */
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
109 typedef uint16_t Uint16;
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
110 /**
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
111 * \typedef Sint32
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
112 * \brief A signed 32-bit integer type.
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
113 */
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
114 typedef int32_t Sint32;
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
115 /**
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
116 * \typedef Uint32
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
117 * \brief An unsigned 32-bit integer type.
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
118 */
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
119 typedef uint32_t Uint32;
1357
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 #ifdef SDL_HAS_64BIT_TYPE
1662
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
122 /**
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
123 * \typedef Sint64
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
124 * \brief A signed 64-bit integer type.
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
125 * \warning On platforms without any sort of 64-bit datatype, this is equivalent to Sint32!
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
126 */
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
127 typedef int64_t Sint64;
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
128 /**
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
129 * \typedef Uint64
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
130 * \brief An unsigned 64-bit integer type.
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
131 * \warning On platforms without any sort of 64-bit datatype, this is equivalent to Uint32!
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
132 */
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
133 typedef uint64_t Uint64;
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
134 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
135 /* This is really just a hack to prevent the compiler from complaining */
1662
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
136 typdef Sint32 Sint64;
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
137 typdef Uint32 Uint32;
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
138 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
139
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
140 /* Make sure the types really have the right sizes */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
141 #define SDL_COMPILE_TIME_ASSERT(name, x) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
142 typedef int SDL_dummy_ ## name[(x) * 2 - 1]
1662
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
143 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
144 SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1);
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
145 SDL_COMPILE_TIME_ASSERT(sint8, sizeof(Sint8) == 1);
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
146 SDL_COMPILE_TIME_ASSERT(uint16, sizeof(Uint16) == 2);
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
147 SDL_COMPILE_TIME_ASSERT(sint16, sizeof(Sint16) == 2);
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
148 SDL_COMPILE_TIME_ASSERT(uint32, sizeof(Uint32) == 4);
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
149 SDL_COMPILE_TIME_ASSERT(sint32, sizeof(Sint32) == 4);
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
150 SDL_COMPILE_TIME_ASSERT(uint64, sizeof(Uint64) == 8);
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
151 SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8);
1662
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
152 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
153
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
154 /* 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
155 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
156 enums having the size of an int must be enabled.
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
157 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
158 */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
159 /* Enable enums always int in CodeWarrior (for MPW use "-enum int") */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
160 #ifdef __MWERKS__
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
161 #pragma enumsalwaysint on
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
162 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
163
1662
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
164 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
165 typedef enum
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
166 {
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
167 DUMMY_ENUM_VALUE
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
168 } SDL_DUMMY_ENUM;
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
169
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
170 SDL_COMPILE_TIME_ASSERT(enum, sizeof(SDL_DUMMY_ENUM) == sizeof(int));
1662
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
171 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
172
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
173 #include "begin_code.h"
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
174 /* Set up for C function definitions, even when using C++ */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
175 #ifdef __cplusplus
1662
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
176 /* *INDENT-OFF* */
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
177 extern "C" {
1662
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
178 /* *INDENT-ON* */
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
179 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
180
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
181 #ifdef HAVE_MALLOC
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
182 #define SDL_malloc malloc
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
183 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
184 extern DECLSPEC void *SDLCALL SDL_malloc(size_t size);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
185 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
186
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
187 #ifdef HAVE_CALLOC
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
188 #define SDL_calloc calloc
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
189 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
190 extern DECLSPEC void *SDLCALL SDL_calloc(size_t nmemb, size_t size);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
191 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
192
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
193 #ifdef HAVE_REALLOC
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
194 #define SDL_realloc realloc
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
195 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
196 extern DECLSPEC void *SDLCALL SDL_realloc(void *mem, size_t size);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
197 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
198
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
199 #ifdef HAVE_FREE
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
200 #define SDL_free free
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
201 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
202 extern DECLSPEC void SDLCALL SDL_free(void *mem);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
203 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
204
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
205 #if defined(HAVE_ALLOCA) && !defined(alloca)
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
206 # if defined(HAVE_ALLOCA_H)
1381
8570e1f4b1f1 On FreeBSD, alloca is defined in stdlib.h
Sam Lantinga <slouken@libsdl.org>
parents: 1379
diff changeset
207 # include <alloca.h>
1402
d910939febfa Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents: 1381
diff changeset
208 # elif defined(__GNUC__)
1381
8570e1f4b1f1 On FreeBSD, alloca is defined in stdlib.h
Sam Lantinga <slouken@libsdl.org>
parents: 1379
diff changeset
209 # define alloca __builtin_alloca
1402
d910939febfa Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents: 1381
diff changeset
210 # elif defined(_MSC_VER)
1381
8570e1f4b1f1 On FreeBSD, alloca is defined in stdlib.h
Sam Lantinga <slouken@libsdl.org>
parents: 1379
diff changeset
211 # include <malloc.h>
8570e1f4b1f1 On FreeBSD, alloca is defined in stdlib.h
Sam Lantinga <slouken@libsdl.org>
parents: 1379
diff changeset
212 # define alloca _alloca
1659
14717b52abc0 Merge trunk-1.3-3
Sam Lantinga <slouken@libsdl.org>
parents: 1626
diff changeset
213 # elif defined(__WATCOMC__)
14717b52abc0 Merge trunk-1.3-3
Sam Lantinga <slouken@libsdl.org>
parents: 1626
diff changeset
214 # include <malloc.h>
1402
d910939febfa Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents: 1381
diff changeset
215 # elif defined(__AIX__)
1662
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
216 #pragma alloca
1659
14717b52abc0 Merge trunk-1.3-3
Sam Lantinga <slouken@libsdl.org>
parents: 1626
diff changeset
217 # elif defined(__MRC__)
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
218 void *alloca(unsigned);
1381
8570e1f4b1f1 On FreeBSD, alloca is defined in stdlib.h
Sam Lantinga <slouken@libsdl.org>
parents: 1379
diff changeset
219 # else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
220 char *alloca();
1381
8570e1f4b1f1 On FreeBSD, alloca is defined in stdlib.h
Sam Lantinga <slouken@libsdl.org>
parents: 1379
diff changeset
221 # endif
8570e1f4b1f1 On FreeBSD, alloca is defined in stdlib.h
Sam Lantinga <slouken@libsdl.org>
parents: 1379
diff changeset
222 #endif
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
223 #ifdef HAVE_ALLOCA
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
224 #define SDL_stack_alloc(type, count) (type*)alloca(sizeof(type)*count)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
225 #define SDL_stack_free(data)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
226 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
227 #define SDL_stack_alloc(type, count) (type*)SDL_malloc(sizeof(type)*count)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
228 #define SDL_stack_free(data) SDL_free(data)
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_GETENV
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
232 #define SDL_getenv getenv
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
233 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
234 extern DECLSPEC char *SDLCALL SDL_getenv(const char *name);
1357
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
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
237 #ifdef HAVE_PUTENV
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
238 #define SDL_putenv putenv
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
239 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
240 extern DECLSPEC int SDLCALL SDL_putenv(const char *variable);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
241 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
242
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
243 #ifdef HAVE_QSORT
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
244 #define SDL_qsort qsort
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
245 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
246 extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
247 int (*compare) (const void *,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
248 const void *));
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
249 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
250
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
251 #ifdef HAVE_ABS
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
252 #define SDL_abs abs
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
253 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
254 #define SDL_abs(X) ((X) < 0 ? -(X) : (X))
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
255 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
256
1379
c0a74f199ecf Use only safe string functions
Sam Lantinga <slouken@libsdl.org>
parents: 1368
diff changeset
257 #define SDL_min(x, y) (((x) < (y)) ? (x) : (y))
c0a74f199ecf Use only safe string functions
Sam Lantinga <slouken@libsdl.org>
parents: 1368
diff changeset
258 #define SDL_max(x, y) (((x) > (y)) ? (x) : (y))
c0a74f199ecf Use only safe string functions
Sam Lantinga <slouken@libsdl.org>
parents: 1368
diff changeset
259
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
260 #ifdef HAVE_CTYPE_H
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
261 #define SDL_isdigit(X) isdigit(X)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
262 #define SDL_isspace(X) isspace(X)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
263 #define SDL_toupper(X) toupper(X)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
264 #define SDL_tolower(X) tolower(X)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
265 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
266 #define SDL_isdigit(X) (((X) >= '0') && ((X) <= '9'))
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
267 #define SDL_isspace(X) (((X) == ' ') || ((X) == '\t') || ((X) == '\r') || ((X) == '\n'))
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
268 #define SDL_toupper(X) (((X) >= 'a') && ((X) <= 'z') ? ('A'+((X)-'a')) : (X))
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
269 #define SDL_tolower(X) (((X) >= 'A') && ((X) <= 'Z') ? ('a'+((X)-'A')) : (X))
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
270 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
271
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
272 #ifdef HAVE_MEMSET
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
273 #define SDL_memset memset
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
274 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
275 extern DECLSPEC void *SDLCALL SDL_memset(void *dst, int c, size_t len);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
276 #endif
1662
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
277 #define SDL_zero(x) SDL_memset(&(x), 0, sizeof((x)))
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
278 #define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x)))
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
279
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
280 #if defined(__GNUC__) && defined(i386)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
281 #define SDL_memset4(dst, val, len) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
282 do { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
283 int u0, u1, u2; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
284 __asm__ __volatile__ ( \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
285 "cld\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
286 "rep ; stosl\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
287 : "=&D" (u0), "=&a" (u1), "=&c" (u2) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
288 : "0" (dst), "1" (val), "2" ((Uint32)(len)) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
289 : "memory" ); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
290 } while(0)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
291 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
292 #ifndef SDL_memset4
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
293 #define SDL_memset4(dst, val, len) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
294 do { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
295 unsigned _count = (len); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
296 unsigned _n = (_count + 3) / 4; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
297 Uint32 *_p = (Uint32 *)(dst); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
298 Uint32 _val = (val); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
299 switch (_count % 4) { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
300 case 0: do { *_p++ = _val; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
301 case 3: *_p++ = _val; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
302 case 2: *_p++ = _val; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
303 case 1: *_p++ = _val; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
304 } while ( --_n ); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
305 } \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
306 } while(0)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
307 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
308
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
309 #if defined(__GNUC__) && defined(i386)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
310 #define SDL_memcpy(dst, src, len) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
311 do { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
312 int u0, u1, u2; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
313 __asm__ __volatile__ ( \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
314 "cld\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
315 "rep ; movsl\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
316 "testb $2,%b4\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
317 "je 1f\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
318 "movsw\n" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
319 "1:\ttestb $1,%b4\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
320 "je 2f\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
321 "movsb\n" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
322 "2:" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
323 : "=&c" (u0), "=&D" (u1), "=&S" (u2) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
324 : "0" ((unsigned)(len)/4), "q" (len), "1" (dst),"2" (src) \
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 } while(0)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
327 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
328 #ifndef SDL_memcpy
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
329 #ifdef HAVE_MEMCPY
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
330 #define SDL_memcpy memcpy
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
331 #elif defined(HAVE_BCOPY)
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
332 #define SDL_memcpy(d, s, n) bcopy((s), (d), (n))
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
333 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
334 extern DECLSPEC void *SDLCALL SDL_memcpy(void *dst, const void *src,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
335 size_t len);
1357
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 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
338
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
339 #if defined(__GNUC__) && defined(i386)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
340 #define SDL_memcpy4(dst, src, len) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
341 do { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
342 int ecx, edi, esi; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
343 __asm__ __volatile__ ( \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
344 "cld\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
345 "rep ; movsl" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
346 : "=&c" (ecx), "=&D" (edi), "=&S" (esi) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
347 : "0" ((unsigned)(len)), "1" (dst), "2" (src) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
348 : "memory" ); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
349 } while(0)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
350 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
351 #ifndef SDL_memcpy4
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
352 #define SDL_memcpy4(dst, src, len) SDL_memcpy(dst, src, (len) << 2)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
353 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
354
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
355 #if defined(__GNUC__) && defined(i386)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
356 #define SDL_revcpy(dst, src, len) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
357 do { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
358 int u0, u1, u2; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
359 char *dstp = (char *)(dst); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
360 char *srcp = (char *)(src); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
361 int n = (len); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
362 if ( n >= 4 ) { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
363 __asm__ __volatile__ ( \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
364 "std\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
365 "rep ; movsl\n\t" \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
366 : "=&c" (u0), "=&D" (u1), "=&S" (u2) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
367 : "0" (n >> 2), \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
368 "1" (dstp+(n-4)), "2" (srcp+(n-4)) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
369 : "memory" ); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
370 } \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
371 switch (n & 3) { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
372 case 3: dstp[2] = srcp[2]; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
373 case 2: dstp[1] = srcp[1]; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
374 case 1: dstp[0] = srcp[0]; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
375 break; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
376 default: \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
377 break; \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
378 } \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
379 } while(0)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
380 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
381 #ifndef SDL_revcpy
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
382 extern DECLSPEC void *SDLCALL SDL_revcpy(void *dst, const void *src,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
383 size_t len);
1357
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_MEMMOVE
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
387 #define SDL_memmove memmove
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
388 #elif defined(HAVE_BCOPY)
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
389 #define SDL_memmove(d, s, n) bcopy((s), (d), (n))
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
390 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
391 #define SDL_memmove(dst, src, len) \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
392 do { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
393 if ( dst < src ) { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
394 SDL_memcpy(dst, src, len); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
395 } else { \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
396 SDL_revcpy(dst, src, len); \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
397 } \
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
398 } while(0)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
399 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
400
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
401 #ifdef HAVE_MEMCMP
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
402 #define SDL_memcmp memcmp
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
403 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
404 extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
405 size_t len);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
406 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
407
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
408 #ifdef HAVE_STRLEN
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
409 #define SDL_strlen strlen
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
410 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
411 extern DECLSPEC size_t SDLCALL SDL_strlen(const char *string);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
412 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
413
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
414 #ifdef HAVE_STRLCPY
1379
c0a74f199ecf Use only safe string functions
Sam Lantinga <slouken@libsdl.org>
parents: 1368
diff changeset
415 #define SDL_strlcpy strlcpy
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
416 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
417 extern DECLSPEC size_t SDLCALL SDL_strlcpy(char *dst, const char *src,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
418 size_t maxlen);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
419 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
420
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
421 #ifdef HAVE_STRLCAT
1379
c0a74f199ecf Use only safe string functions
Sam Lantinga <slouken@libsdl.org>
parents: 1368
diff changeset
422 #define SDL_strlcat strlcat
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
423 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
424 extern DECLSPEC size_t SDLCALL SDL_strlcat(char *dst, const char *src,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
425 size_t maxlen);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
426 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
427
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
428 #ifdef HAVE_STRDUP
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
429 #define SDL_strdup strdup
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
430 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
431 extern DECLSPEC char *SDLCALL SDL_strdup(const char *string);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
432 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
433
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
434 #ifdef HAVE__STRREV
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
435 #define SDL_strrev _strrev
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
436 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
437 extern DECLSPEC char *SDLCALL SDL_strrev(char *string);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
438 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
439
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
440 #ifdef HAVE__STRUPR
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
441 #define SDL_strupr _strupr
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
442 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
443 extern DECLSPEC char *SDLCALL SDL_strupr(char *string);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
444 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
445
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
446 #ifdef HAVE__STRLWR
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
447 #define SDL_strlwr _strlwr
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
448 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
449 extern DECLSPEC char *SDLCALL SDL_strlwr(char *string);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
450 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
451
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
452 #ifdef HAVE_STRCHR
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
453 #define SDL_strchr strchr
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
454 #elif defined(HAVE_INDEX)
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
455 #define SDL_strchr index
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
456 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
457 extern DECLSPEC char *SDLCALL SDL_strchr(const char *string, int c);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
458 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
459
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
460 #ifdef HAVE_STRRCHR
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
461 #define SDL_strrchr strrchr
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
462 #elif defined(HAVE_RINDEX)
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
463 #define SDL_strrchr rindex
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
464 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
465 extern DECLSPEC char *SDLCALL SDL_strrchr(const char *string, int c);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
466 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
467
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
468 #ifdef HAVE_STRSTR
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
469 #define SDL_strstr strstr
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
470 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
471 extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
472 const char *needle);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
473 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
474
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
475 #ifdef HAVE_ITOA
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
476 #define SDL_itoa itoa
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
477 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
478 #define SDL_itoa(value, string, radix) SDL_ltoa((long)value, string, radix)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
479 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
480
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
481 #ifdef HAVE__LTOA
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
482 #define SDL_ltoa _ltoa
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
483 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
484 extern DECLSPEC char *SDLCALL SDL_ltoa(long value, char *string, int radix);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
485 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
486
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
487 #ifdef HAVE__UITOA
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
488 #define SDL_uitoa _uitoa
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
489 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
490 #define SDL_uitoa(value, string, radix) SDL_ultoa((long)value, string, radix)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
491 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
492
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
493 #ifdef HAVE__ULTOA
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
494 #define SDL_ultoa _ultoa
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
495 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
496 extern DECLSPEC char *SDLCALL SDL_ultoa(unsigned long value, char *string,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
497 int radix);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
498 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
499
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
500 #ifdef HAVE_STRTOL
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
501 #define SDL_strtol strtol
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
502 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
503 extern DECLSPEC long SDLCALL SDL_strtol(const char *string, char **endp,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
504 int base);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
505 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
506
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
507 #ifdef HAVE_STRTOUL
1456
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
508 #define SDL_strtoul strtoul
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
509 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
510 extern DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *string,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
511 char **endp, int base);
1456
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
512 #endif
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
513
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
514 #ifdef SDL_HAS_64BIT_TYPE
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
515
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
516 #ifdef HAVE__I64TOA
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
517 #define SDL_lltoa _i64toa
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
518 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
519 extern DECLSPEC char *SDLCALL SDL_lltoa(Sint64 value, char *string,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
520 int radix);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
521 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
522
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
523 #ifdef HAVE__UI64TOA
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
524 #define SDL_ulltoa _ui64toa
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
525 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
526 extern DECLSPEC char *SDLCALL SDL_ulltoa(Uint64 value, char *string,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
527 int radix);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
528 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
529
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
530 #ifdef HAVE_STRTOLL
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
531 #define SDL_strtoll strtoll
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
532 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
533 extern DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *string, char **endp,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
534 int base);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
535 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
536
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
537 #ifdef HAVE_STRTOULL
1456
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
538 #define SDL_strtoull strtoull
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
539 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
540 extern DECLSPEC Uint64 SDLCALL SDL_strtoull(const char *string, char **endp,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
541 int base);
1456
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
542 #endif
84de7511f79f Fixed a bunch of 64-bit compatibility problems
Sam Lantinga <slouken@libsdl.org>
parents: 1422
diff changeset
543
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
544 #endif /* SDL_HAS_64BIT_TYPE */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
545
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
546 #ifdef HAVE_STRTOD
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
547 #define SDL_strtod strtod
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
548 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
549 extern DECLSPEC double SDLCALL SDL_strtod(const char *string, char **endp);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
550 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
551
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
552 #ifdef HAVE_ATOI
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
553 #define SDL_atoi atoi
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
554 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
555 #define SDL_atoi(X) SDL_strtol(X, NULL, 0)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
556 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
557
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
558 #ifdef HAVE_ATOF
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
559 #define SDL_atof atof
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
560 #else
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
561 #define SDL_atof(X) SDL_strtod(X, NULL)
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
562 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
563
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
564 #ifdef HAVE_STRCMP
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
565 #define SDL_strcmp strcmp
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
566 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
567 extern DECLSPEC int SDLCALL SDL_strcmp(const char *str1, const char *str2);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
568 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
569
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
570 #ifdef HAVE_STRNCMP
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
571 #define SDL_strncmp strncmp
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
572 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
573 extern DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
574 size_t maxlen);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
575 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
576
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
577 #ifdef HAVE_STRCASECMP
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
578 #define SDL_strcasecmp strcasecmp
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
579 #elif defined(HAVE__STRICMP)
1510
720f8bb49d7d Win32 fixes
Sam Lantinga <slouken@libsdl.org>
parents: 1501
diff changeset
580 #define SDL_strcasecmp _stricmp
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
581 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
582 extern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
583 const char *str2);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
584 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
585
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
586 #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
587 #define SDL_strncasecmp strncasecmp
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
588 #elif defined(HAVE__STRNICMP)
1512
845b1619c8f6 Added _strnicmp support
Sam Lantinga <slouken@libsdl.org>
parents: 1510
diff changeset
589 #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
590 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
591 extern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
592 const char *str2, size_t maxlen);
1501
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
593 #endif
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
594
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
595 #ifdef HAVE_SSCANF
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
596 #define SDL_sscanf sscanf
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
597 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
598 extern DECLSPEC int SDLCALL SDL_sscanf(const char *text, const char *fmt,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
599 ...);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
600 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
601
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
602 #ifdef HAVE_SNPRINTF
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
603 #define SDL_snprintf snprintf
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
604 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
605 extern DECLSPEC int SDLCALL SDL_snprintf(char *text, size_t maxlen,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
606 const char *fmt, ...);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
607 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
608
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
609 #ifdef HAVE_VSNPRINTF
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
610 #define SDL_vsnprintf vsnprintf
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
611 #else
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
612 extern DECLSPEC int SDLCALL SDL_vsnprintf(char *text, size_t maxlen,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
613 const char *fmt, va_list ap);
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
614 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
615
1501
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
616 /* 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
617 #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
618 #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
619 #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
620 #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
621
1626
a80e1e0880b8 Fixed bug #176
Sam Lantinga <slouken@libsdl.org>
parents: 1512
diff changeset
622 #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
623 #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
624 #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
625 #define SDL_iconv_close iconv_close
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
626 extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, char **inbuf,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
627 size_t * inbytesleft, char **outbuf,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
628 size_t * outbytesleft);
1501
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
629 #else
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
630 typedef struct _SDL_iconv_t *SDL_iconv_t;
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
631 extern DECLSPEC SDL_iconv_t SDLCALL SDL_iconv_open(const char *tocode,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
632 const char *fromcode);
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
633 extern DECLSPEC int SDLCALL SDL_iconv_close(SDL_iconv_t cd);
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
634 extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, char **inbuf,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
635 size_t * inbytesleft, char **outbuf,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
636 size_t * outbytesleft);
1501
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
637 #endif
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
638 /* 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
639 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
640 */
1668
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
641 extern DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
642 const char *fromcode,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
643 char *inbuf,
4da1ee79c9af more tweaking indent options
Sam Lantinga <slouken@libsdl.org>
parents: 1662
diff changeset
644 size_t inbytesleft);
1501
73dc5d39bbf8 Added UTF-8 <-> UTF-16 <-> UTF-32 <-> UCS-2 <-> UCS-4 conversion capability
Sam Lantinga <slouken@libsdl.org>
parents: 1456
diff changeset
645 #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
646 #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
647 #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
648 #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
649
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
650 /* Ends C function definitions when using C++ */
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
651 #ifdef __cplusplus
1662
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
652 /* *INDENT-OFF* */
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
653 }
1662
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
654 /* *INDENT-ON* */
1357
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
655 #endif
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
656 #include "close_code.h"
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
657
e18467d67cfd Whoops, need this. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
658 #endif /* _SDL_stdinc_h */
1662
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
659
782fd950bd46 Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
Sam Lantinga <slouken@libsdl.org>
parents: 1659
diff changeset
660 /* vi: set ts=4 sw=4 expandtab: */