1 /***************************************************************************/ |
|
2 /* */ |
|
3 /* ftstdlib.h */ |
|
4 /* */ |
|
5 /* ANSI-specific library and header configuration file (specification */ |
|
6 /* only). */ |
|
7 /* */ |
|
8 /* Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2009 by */ |
|
9 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
|
10 /* */ |
|
11 /* This file is part of the FreeType project, and may only be used, */ |
|
12 /* modified, and distributed under the terms of the FreeType project */ |
|
13 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ |
|
14 /* this file you indicate that you have read the license and */ |
|
15 /* understand and accept it fully. */ |
|
16 /* */ |
|
17 /***************************************************************************/ |
|
18 |
|
19 |
|
20 /*************************************************************************/ |
|
21 /* */ |
|
22 /* This file is used to group all #includes to the ANSI C library that */ |
|
23 /* FreeType normally requires. It also defines macros to rename the */ |
|
24 /* standard functions within the FreeType source code. */ |
|
25 /* */ |
|
26 /* Load a file which defines __FTSTDLIB_H__ before this one to override */ |
|
27 /* it. */ |
|
28 /* */ |
|
29 /*************************************************************************/ |
|
30 |
|
31 |
|
32 #ifndef __FTSTDLIB_H__ |
|
33 #define __FTSTDLIB_H__ |
|
34 |
|
35 |
|
36 #include <stddef.h> |
|
37 |
|
38 #define ft_ptrdiff_t ptrdiff_t |
|
39 |
|
40 |
|
41 /**********************************************************************/ |
|
42 /* */ |
|
43 /* integer limits */ |
|
44 /* */ |
|
45 /* UINT_MAX and ULONG_MAX are used to automatically compute the size */ |
|
46 /* of `int' and `long' in bytes at compile-time. So far, this works */ |
|
47 /* for all platforms the library has been tested on. */ |
|
48 /* */ |
|
49 /* Note that on the extremely rare platforms that do not provide */ |
|
50 /* integer types that are _exactly_ 16 and 32 bits wide (e.g. some */ |
|
51 /* old Crays where `int' is 36 bits), we do not make any guarantee */ |
|
52 /* about the correct behaviour of FT2 with all fonts. */ |
|
53 /* */ |
|
54 /* In these case, `ftconfig.h' will refuse to compile anyway with a */ |
|
55 /* message like `couldn't find 32-bit type' or something similar. */ |
|
56 /* */ |
|
57 /**********************************************************************/ |
|
58 |
|
59 |
|
60 #include <limits.h> |
|
61 |
|
62 #define FT_CHAR_BIT CHAR_BIT |
|
63 #define FT_INT_MAX INT_MAX |
|
64 #define FT_INT_MIN INT_MIN |
|
65 #define FT_UINT_MAX UINT_MAX |
|
66 #define FT_ULONG_MAX ULONG_MAX |
|
67 |
|
68 |
|
69 /**********************************************************************/ |
|
70 /* */ |
|
71 /* character and string processing */ |
|
72 /* */ |
|
73 /**********************************************************************/ |
|
74 |
|
75 |
|
76 #include <string.h> |
|
77 |
|
78 #define ft_memchr memchr |
|
79 #define ft_memcmp memcmp |
|
80 #define ft_memcpy memcpy |
|
81 #define ft_memmove memmove |
|
82 #define ft_memset memset |
|
83 #define ft_strcat strcat |
|
84 #define ft_strcmp strcmp |
|
85 #define ft_strcpy strcpy |
|
86 #define ft_strlen strlen |
|
87 #define ft_strncmp strncmp |
|
88 #define ft_strncpy strncpy |
|
89 #define ft_strrchr strrchr |
|
90 #define ft_strstr strstr |
|
91 |
|
92 |
|
93 /**********************************************************************/ |
|
94 /* */ |
|
95 /* file handling */ |
|
96 /* */ |
|
97 /**********************************************************************/ |
|
98 |
|
99 |
|
100 #include <stdio.h> |
|
101 |
|
102 #define FT_FILE FILE |
|
103 #define ft_fclose fclose |
|
104 #define ft_fopen fopen |
|
105 #define ft_fread fread |
|
106 #define ft_fseek fseek |
|
107 #define ft_ftell ftell |
|
108 #define ft_sprintf sprintf |
|
109 |
|
110 |
|
111 /**********************************************************************/ |
|
112 /* */ |
|
113 /* sorting */ |
|
114 /* */ |
|
115 /**********************************************************************/ |
|
116 |
|
117 |
|
118 #include <stdlib.h> |
|
119 |
|
120 #define ft_qsort qsort |
|
121 |
|
122 |
|
123 /**********************************************************************/ |
|
124 /* */ |
|
125 /* memory allocation */ |
|
126 /* */ |
|
127 /**********************************************************************/ |
|
128 |
|
129 |
|
130 #define ft_scalloc calloc |
|
131 #define ft_sfree free |
|
132 #define ft_smalloc malloc |
|
133 #define ft_srealloc realloc |
|
134 |
|
135 |
|
136 /**********************************************************************/ |
|
137 /* */ |
|
138 /* miscellaneous */ |
|
139 /* */ |
|
140 /**********************************************************************/ |
|
141 |
|
142 |
|
143 #define ft_atol atol |
|
144 #define ft_labs labs |
|
145 |
|
146 |
|
147 /**********************************************************************/ |
|
148 /* */ |
|
149 /* execution control */ |
|
150 /* */ |
|
151 /**********************************************************************/ |
|
152 |
|
153 |
|
154 #include <setjmp.h> |
|
155 |
|
156 #define ft_jmp_buf jmp_buf /* note: this cannot be a typedef since */ |
|
157 /* jmp_buf is defined as a macro */ |
|
158 /* on certain platforms */ |
|
159 |
|
160 #define ft_longjmp longjmp |
|
161 #define ft_setjmp( b ) setjmp( *(jmp_buf*) &(b) ) /* same thing here */ |
|
162 |
|
163 |
|
164 /* the following is only used for debugging purposes, i.e., if */ |
|
165 /* FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined */ |
|
166 |
|
167 #include <stdarg.h> |
|
168 |
|
169 |
|
170 #endif /* __FTSTDLIB_H__ */ |
|
171 |
|
172 |
|
173 /* END */ |
|