[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Devel] New "ftstdlib.h" configuration file
From: |
David Turner |
Subject: |
[Devel] New "ftstdlib.h" configuration file |
Date: |
Fri, 12 Apr 2002 12:16:07 +0200 |
Hello,
Following Juliusz's ideas, I have created a new configuration file named
<freetype/config/ftstdlib.h>, whose purpose is to define aliases for all
routines of the ISO C library that the font engine uses..
This allows easier ports on exotic platforms to replace these function
calls with something different when they need to. Content follows below.
Notice that this file doesn't include heap management and i/o routines
since these should normally be implemented by platform-specific
"ftsystem.c" implementations. Of course, all includes to the C library
itself have been removed from the engine's source code proper, except
some rare cases specific to debugging which are not part of a normal
build..
I do not claim that this change will solve Juliusz's problems with
integrating FT2 within an XFree86 extension, only that it's a step
in the right direction. :-)
Note also that I didn't bother changing the names of the memory
object methods (they're still "alloc", "realloc" and "free") since
the FT_Memory structure is going to change significantly in 2.1.1
with the inclusion of cleanup-stack exception handling, which
should happen fairly soon after 2.1.0 ...
As usual, testing will be appreciated..
Best Regards,
- David
=============================================================================
/***************************************************************************/
/* */
/* ftstdlib.h */
/* */
/* ANSI-specific configuration file */
/* */
/* Copyright 1996-2001, 2002 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/* */
/* This file is used to group all #includes to the ANSI C library */
/* that FreeType normally requires. It also defines macros to rename */
/* the standard functions within the FT source code */
/* */
/* (You're free to provide alternative when working in exotic */
/* runtime environments :-) */
/* */
/***************************************************************************/
#ifndef __FT_STANDARD_LIBRARY_H__
#define __FT_STANDARD_LIBRARY_H__
/************************************************************************/
/* */
/* integer limits */
/* */
/* UINT_MAX and ULONG_MAX are used to automatically compute the size */
/* of 'int' and 'long' in bytes at compile-time. So far, this works */
/* for all platforms the library has been tested on. */
/* */
/* Note that on the extremely rare platforms that do not provide */
/* integer types that are _exactly_ 16 and 32 bits wide (e.g. some */
/* old Crays where 'int' is 36 bits !!), we do not make any guarantee */
/* about the correct behaviour of FT2 with all fonts.. */
/* */
/* in these case, "ftconfig.h" will refuse to compile anyway with a */
/* message like "couldn't find 32-bit type" or something similar */
/* anyway.. */
/* */
/* */
/* IMPORTANT NOTE: We do not define aliases for heap management and */
/* i/o routines (i.e. malloc/free/fopen/fread/...) */
/* since these functions should all be encapsulated */
/* by platform-specific implementations of */
/* "ftsystem.c" anyway !! */
/* */
/************************************************************************/
#include <limits.h>
#define FT_UINT_MAX UINT_MAX
#define FT_ULONG_MAX ULONG_MAX
/************************************************************************/
/* */
/* character and string processing */
/* */
/************************************************************************/
#include <ctype.h>
#define ft_isalnum isalnum
#define ft_isupper isupper
#define ft_islower islower
#include <string.h>
#define ft_strlen strlen
#define ft_strcmp strcmp
#define ft_strncmp strncmp
#define ft_memcpy memcpy
#define ft_strcpy strcpy
#define ft_strncpy strncpy
#define ft_memset memset
#define ft_memmove memmove
/************************************************************************/
/* */
/* sorting */
/* */
/************************************************************************/
#include <stdlib.h> /* for qsort() */
#define ft_qsort qsort
/************************************************************************/
/* */
/* execution control */
/* */
/************************************************************************/
#include <setjmp.h>
#define ft_jmp_buf jmp_buf /* note: this cannot be a typedef since */
/* jmp_buf is defined as a macro */
/* on certain platforms.. */
#define ft_setjmp setjmp /* same thing here */
#define ft_longjmp longjmp /* " */
/* the following is only used for debugging purposes, i.e. when */
/* FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined */
/* */
#include <stdarg.h>
#endif /* __FT_STANDARD_LIBRARY_H__ */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Devel] New "ftstdlib.h" configuration file,
David Turner <=