Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4349 | Serge | 1 | /***************************************************************************/ |
2 | /* */ |
||
3 | /* ftstdlib.h */ |
||
4 | /* */ |
||
5 | /* ANSI-specific library and header configuration file (specification */ |
||
6 | /* only). */ |
||
7 | /* */ |
||
8 | /* Copyright 2002-2007, 2009, 2011-2012 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 |
||
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 |
||
61 | |||
62 | #define FT_CHAR_BIT CHAR_BIT |
||
63 | #define FT_USHORT_MAX USHRT_MAX |
||
64 | #define FT_INT_MAX INT_MAX |
||
65 | #define FT_INT_MIN INT_MIN |
||
66 | #define FT_UINT_MAX UINT_MAX |
||
67 | #define FT_ULONG_MAX ULONG_MAX |
||
68 | |||
69 | |||
70 | /**********************************************************************/ |
||
71 | /* */ |
||
72 | /* character and string processing */ |
||
73 | /* */ |
||
74 | /**********************************************************************/ |
||
75 | |||
76 | |||
77 | #include |
||
78 | |||
79 | #define ft_memchr memchr |
||
80 | #define ft_memcmp memcmp |
||
81 | #define ft_memcpy memcpy |
||
82 | #define ft_memmove memmove |
||
83 | #define ft_memset memset |
||
84 | #define ft_strcat strcat |
||
85 | #define ft_strcmp strcmp |
||
86 | #define ft_strcpy strcpy |
||
87 | #define ft_strlen strlen |
||
88 | #define ft_strncmp strncmp |
||
89 | #define ft_strncpy strncpy |
||
90 | #define ft_strrchr strrchr |
||
91 | #define ft_strstr strstr |
||
92 | |||
93 | |||
94 | /**********************************************************************/ |
||
95 | /* */ |
||
96 | /* file handling */ |
||
97 | /* */ |
||
98 | /**********************************************************************/ |
||
99 | |||
100 | |||
101 | #include |
||
102 | |||
103 | #define FT_FILE FILE |
||
104 | #define ft_fclose fclose |
||
105 | #define ft_fopen fopen |
||
106 | #define ft_fread fread |
||
107 | #define ft_fseek fseek |
||
108 | #define ft_ftell ftell |
||
109 | #define ft_sprintf sprintf |
||
110 | |||
111 | |||
112 | /**********************************************************************/ |
||
113 | /* */ |
||
114 | /* sorting */ |
||
115 | /* */ |
||
116 | /**********************************************************************/ |
||
117 | |||
118 | |||
119 | #include |
||
120 | |||
121 | #define ft_qsort qsort |
||
122 | |||
123 | |||
124 | /**********************************************************************/ |
||
125 | /* */ |
||
126 | /* memory allocation */ |
||
127 | /* */ |
||
128 | /**********************************************************************/ |
||
129 | |||
130 | |||
131 | #define ft_scalloc calloc |
||
132 | #define ft_sfree free |
||
133 | #define ft_smalloc malloc |
||
134 | #define ft_srealloc realloc |
||
135 | |||
136 | |||
137 | /**********************************************************************/ |
||
138 | /* */ |
||
139 | /* miscellaneous */ |
||
140 | /* */ |
||
141 | /**********************************************************************/ |
||
142 | |||
143 | |||
144 | #define ft_atol atol |
||
145 | #define ft_labs labs |
||
146 | |||
147 | |||
148 | /**********************************************************************/ |
||
149 | /* */ |
||
150 | /* execution control */ |
||
151 | /* */ |
||
152 | /**********************************************************************/ |
||
153 | |||
154 | |||
155 | #include |
||
156 | |||
157 | #define ft_jmp_buf jmp_buf /* note: this cannot be a typedef since */ |
||
158 | /* jmp_buf is defined as a macro */ |
||
159 | /* on certain platforms */ |
||
160 | |||
161 | #define ft_longjmp longjmp |
||
162 | #define ft_setjmp( b ) setjmp( *(ft_jmp_buf*) &(b) ) /* same thing here */ |
||
163 | |||
164 | |||
165 | /* the following is only used for debugging purposes, i.e., if */ |
||
166 | /* FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined */ |
||
167 | |||
168 | #include |
||
169 | |||
170 | |||
171 | #endif /* __FTSTDLIB_H__ */ |
||
172 | |||
173 | |||
174 | /* END */ |