5172
|
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 */
|