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 <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_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#include "../../../../fxcrt/fx_system.h"
77#include <string.h>
78
79#define ft_memchr   FXSYS_memchr
80#define ft_memcmp   FXSYS_memcmp32
81#define ft_memcpy   FXSYS_memcpy32
82#define ft_memmove  FXSYS_memmove32
83#define ft_memset   FXSYS_memset8
84//#define ft_strcat   FXSYS_strcat
85#define ft_strcmp   FXSYS_strcmp
86#define ft_strcpy   FXSYS_strcpy
87#define ft_strlen   FXSYS_strlen
88#define ft_strncmp  FXSYS_strncmp
89#define ft_strncpy  FXSYS_strncpy
90#define ft_strrchr  FXSYS_strrchr
91#define ft_strstr   FXSYS_strstr
92
93
94  /**********************************************************************/
95  /*                                                                    */
96  /*                           file handling                            */
97  /*                                                                    */
98  /**********************************************************************/
99
100
101#include <stdio.h>
102
103#define FT_FILE     FXSYS_FILE
104#define ft_fclose   FXSYS_fclose
105#define ft_fopen    FXSYS_fopen
106#define ft_fread    FXSYS_fread
107#define ft_fseek    FXSYS_fseek
108#define ft_ftell    FXSYS_ftell
109#define ft_sprintf  FXSYS_sprintf
110
111
112  /**********************************************************************/
113  /*                                                                    */
114  /*                             sorting                                */
115  /*                                                                    */
116  /**********************************************************************/
117
118
119//#include <stdlib.h>
120
121#define ft_qsort  FXSYS_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   FXSYS_atoi
145#define ft_labs   labs
146
147
148  /**********************************************************************/
149  /*                                                                    */
150  /*                         execution control                          */
151  /*                                                                    */
152  /**********************************************************************/
153
154
155//#include <setjmp.h>
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 <stdarg.h>
169
170
171#endif /* __FTSTDLIB_H__ */
172
173
174/* END */
175