Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  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.