1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* ftstdlib.h */ 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* ANSI-specific library and header configuration file (specification */ 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* only). */ 7049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 8a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang/* Copyright 2002-2007, 2009, 2011-2012 by */ 9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 10049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* This file is part of the FreeType project, and may only be used, */ 12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* modified, and distributed under the terms of the FreeType project */ 13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* this file you indicate that you have read the license and */ 15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* understand and accept it fully. */ 16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* This file is used to group all #includes to the ANSI C library that */ 23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FreeType normally requires. It also defines macros to rename the */ 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* standard functions within the FreeType source code. */ 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Load a file which defines __FTSTDLIB_H__ before this one to override */ 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* it. */ 28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef __FTSTDLIB_H__ 33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __FTSTDLIB_H__ 34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <stddef.h> 37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_ptrdiff_t ptrdiff_t 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /**********************************************************************/ 42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* integer limits */ 44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* UINT_MAX and ULONG_MAX are used to automatically compute the size */ 46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* of `int' and `long' in bytes at compile-time. So far, this works */ 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* for all platforms the library has been tested on. */ 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Note that on the extremely rare platforms that do not provide */ 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* integer types that are _exactly_ 16 and 32 bits wide (e.g. some */ 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* old Crays where `int' is 36 bits), we do not make any guarantee */ 52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* about the correct behaviour of FT2 with all fonts. */ 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* In these case, `ftconfig.h' will refuse to compile anyway with a */ 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* message like `couldn't find 32-bit type' or something similar. */ 56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /**********************************************************************/ 58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <limits.h> 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 62e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang#define FT_CHAR_BIT CHAR_BIT 63e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang#define FT_USHORT_MAX USHRT_MAX 64e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang#define FT_INT_MAX INT_MAX 65e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang#define FT_INT_MIN INT_MIN 66e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang#define FT_UINT_MAX UINT_MAX 67e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang#define FT_ULONG_MAX ULONG_MAX 68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /**********************************************************************/ 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* character and string processing */ 73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /**********************************************************************/ 75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <string.h> 78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_memchr memchr 80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_memcmp memcmp 81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_memcpy memcpy 82049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_memmove memmove 83049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_memset memset 84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_strcat strcat 85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_strcmp strcmp 86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_strcpy strcpy 87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_strlen strlen 88049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_strncmp strncmp 89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_strncpy strncpy 90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_strrchr strrchr 91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_strstr strstr 92049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 93049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 94049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /**********************************************************************/ 95049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 96049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* file handling */ 97049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 98049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /**********************************************************************/ 99049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <stdio.h> 102049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 103049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_FILE FILE 104049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_fclose fclose 105049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_fopen fopen 106049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_fread fread 107049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_fseek fseek 108049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_ftell ftell 109049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_sprintf sprintf 110049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 111049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 112049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /**********************************************************************/ 113049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 114049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* sorting */ 115049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 116049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /**********************************************************************/ 117049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 118049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 119049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <stdlib.h> 120049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 121049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_qsort qsort 122049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 123049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 124049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /**********************************************************************/ 125049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 126049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* memory allocation */ 127049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 128049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /**********************************************************************/ 129049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 130049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 131049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_scalloc calloc 132049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_sfree free 133049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_smalloc malloc 134049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_srealloc realloc 135049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 136049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 137049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /**********************************************************************/ 138049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 139049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* miscellaneous */ 140049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 141049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /**********************************************************************/ 142049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 143049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 144049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_atol atol 145049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_labs labs 146049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 147049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 148049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /**********************************************************************/ 149049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 150049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* execution control */ 151049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 152049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /**********************************************************************/ 153049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 154049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 155049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <setjmp.h> 156049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 157049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_jmp_buf jmp_buf /* note: this cannot be a typedef since */ 158049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* jmp_buf is defined as a macro */ 159049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* on certain platforms */ 160049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 161049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define ft_longjmp longjmp 162a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define ft_setjmp( b ) setjmp( *(ft_jmp_buf*) &(b) ) /* same thing here */ 163049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 164049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 165049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* the following is only used for debugging purposes, i.e., if */ 166049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined */ 167049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 168049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <stdarg.h> 169049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 170049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 171049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __FTSTDLIB_H__ */ 172049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 173049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 174049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 175