• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 */
174