misc/libfreetype/include/freetype/config/ftstdlib.h
changeset 9372 915436ff64ab
parent 9371 f3840de881bd
child 9373 b769a8e38cbd
equal deleted inserted replaced
9371:f3840de881bd 9372:915436ff64ab
     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 */