Home | History | Annotate | Download | only in config
      1 /***************************************************************************/
      2 /*                                                                         */
      3 /*  ftstdlib.h                                                             */
      4 /*                                                                         */
      5 /*    ANSI-specific library and header configuration file (specification   */
      6 /*    only).                                                               */
      7 /*                                                                         */
      8 /*  Copyright 2002-2007, 2009, 2011 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 
     77 #include <string.h>
     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 <stdio.h>
    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 <stdlib.h>
    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 <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( *(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