Submitted By: Dan Nicholson Date: 2007-05-23 Initial Package Version: 4.6.0 Origin: Upstream Description: Allow XFree86 to build against freetype releases newer than 2.1.10. This removes usage of the freetype internals in most places. http://www.mail-archive.com/cvs-commit@xfree86.org/msg05110.html http://www.mail-archive.com/cvs-commit@xfree86.org/msg05102.html http://cvsweb.xfree86.org/cvsweb/xc/extras/freetype2/src/lzw/zopen.h.diff?r1=1.2&r2=1.3 diff -pNur xc.orig/extras/freetype2/include/freetype/config/ftconfig.h xc/extras/freetype2/include/freetype/config/ftconfig.h --- xc.orig/extras/freetype2/include/freetype/config/ftconfig.h 2004-04-26 09:15:53.000000000 -0700 +++ xc/extras/freetype2/include/freetype/config/ftconfig.h 2007-05-23 12:43:10.000000000 -0700 @@ -72,11 +72,12 @@ FT_BEGIN_HEADER /* The size of an `int' type. */ -#if FT_UINT_MAX == 0xFFFFFFFFUL +#if FT_UINT_MAX == 0xFFFFFFFFUL #define FT_SIZEOF_INT (32 / FT_CHAR_BIT) #elif FT_UINT_MAX == 0xFFFFU #define FT_SIZEOF_INT (16 / FT_CHAR_BIT) -#elif FT_UINT_MAX > 0xFFFFFFFFU && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFU +#elif ((FT_UINT_MAX & ~0xFFFFFFFFU) != 0) && \ + (FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFU) #define FT_SIZEOF_INT (64 / FT_CHAR_BIT) #else #error "Unsupported size of `int' type!" @@ -85,7 +86,8 @@ FT_BEGIN_HEADER /* The size of a `long' type. */ #if FT_ULONG_MAX == 0xFFFFFFFFUL #define FT_SIZEOF_LONG (32 / FT_CHAR_BIT) -#elif FT_ULONG_MAX > 0xFFFFFFFFU && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFU +#elif ((FT_ULONG_MAX & ~0xFFFFFFFFU) != 0) && \ + (FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFU) #define FT_SIZEOF_LONG (64 / FT_CHAR_BIT) #else #error "Unsupported size of `long' type!" diff -pNur xc.orig/extras/freetype2/include/freetype/config/ftmodule.h xc/extras/freetype2/include/freetype/config/ftmodule.h --- xc.orig/extras/freetype2/include/freetype/config/ftmodule.h 2003-05-28 19:01:46.000000000 -0700 +++ xc/extras/freetype2/include/freetype/config/ftmodule.h 2007-05-23 15:22:28.000000000 -0700 @@ -1,6 +1,8 @@ FT_USE_MODULE(autohint_module_class) FT_USE_MODULE(cff_driver_class) +#ifndef FONTMODULE FT_USE_MODULE(t1cid_driver_class) +#endif FT_USE_MODULE(pcf_driver_class) FT_USE_MODULE(bdf_driver_class) FT_USE_MODULE(psaux_module_class) @@ -8,12 +10,16 @@ FT_USE_MODULE(psnames_module_class) FT_USE_MODULE(pshinter_module_class) FT_USE_MODULE(ft_raster1_renderer_class) FT_USE_MODULE(sfnt_module_class) +#ifndef FONTMODULE FT_USE_MODULE(ft_smooth_renderer_class) FT_USE_MODULE(ft_smooth_lcd_renderer_class) FT_USE_MODULE(ft_smooth_lcdv_renderer_class) +#endif FT_USE_MODULE(tt_driver_class) FT_USE_MODULE(t1_driver_class) +#ifndef FONTMODULE FT_USE_MODULE(t42_driver_class) FT_USE_MODULE(pfr_driver_class) FT_USE_MODULE(winfnt_driver_class) +#endif diff -pNur xc.orig/extras/freetype2/include/freetype/config/ftoption.h xc/extras/freetype2/include/freetype/config/ftoption.h --- xc.orig/extras/freetype2/include/freetype/config/ftoption.h 2004-04-26 09:15:53.000000000 -0700 +++ xc/extras/freetype2/include/freetype/config/ftoption.h 2007-05-23 12:43:10.000000000 -0700 @@ -526,7 +526,11 @@ FT_BEGIN_HEADER /* files into an existing face. Note that if set, the T1 driver will be */ /* unable to produce kerning distances. */ /* */ +#ifdef FONTMODULE +#define T1_CONFIG_OPTION_NO_AFM +#else #undef T1_CONFIG_OPTION_NO_AFM +#endif /*************************************************************************/ @@ -535,7 +539,11 @@ FT_BEGIN_HEADER /* compilation of the Multiple Masters font support in the Type 1 */ /* driver. */ /* */ +#ifdef FONTMODULE +#define T1_CONFIG_OPTION_NO_MM_SUPPORT +#else #undef T1_CONFIG_OPTION_NO_MM_SUPPORT +#endif /* */ diff -pNur xc.orig/extras/freetype2/include/freetype/config/ftstdlib.h xc/extras/freetype2/include/freetype/config/ftstdlib.h --- xc.orig/extras/freetype2/include/freetype/config/ftstdlib.h 2004-04-26 08:40:19.000000000 -0700 +++ xc/extras/freetype2/include/freetype/config/ftstdlib.h 2007-05-23 15:21:31.000000000 -0700 @@ -58,6 +58,8 @@ /**********************************************************************/ +#ifndef FONTMODULE + #include #define FT_UINT_MAX UINT_MAX @@ -132,6 +134,74 @@ #define ft_longjmp longjmp /* " */ +#else + +#include +#define _XTYPEDEF_BOOL +#include +#define DONT_DEFINE_WRAPPERS +#define DEFINE_SETJMP_WRAPPERS +#include "xf86_ansic.h" +#undef DONT_DEFINE_WRAPPERS + +#ifndef offsetof +#define offsetof(TYPE, MEMBER) ((xf86size_t)&((TYPE*)0)->MEMBER) +#endif + +#define FT_CHAR_BIT 8 +#define FT_UINT_MAX 4294967295U +#ifdef LONG64 +#define FT_ULONG_MAX 18446744073709551615UL +#else +#define FT_ULONG_MAX 4294967295UL +#endif + +#define ft_isalnum xf86isalnum +#define ft_isupper xf86isupper +#define ft_islower xf86islower +#define ft_isdigit xf86isdigit +#define ft_isxdigit xf86isxdigit + +#define ft_memcmp xf86memcmp +#define ft_memcpy xf86memcpy +#define ft_memmove xf86memmove +#define ft_memset xf86memset +#define ft_strcat xf86strcat +#define ft_strcmp xf86strcmp +#define ft_strcpy xf86strcpy +#define ft_strlen xf86strlen +#define ft_strncmp xf86strncmp +#define ft_strncpy xf86strncpy +#define ft_strrchr xf86strrchr + +#define ft_sprintf xf86sprintf + +#define ft_qsort xf86qsort +#define ft_exit xf86exit + +#define ft_atol xf86atol + +#define ft_jmp_buf jmp_buf +#define ft_setjmp setjmp +#define ft_longjmp longjmp + +#undef exit +#define exit xf86exit + +#undef fprintf +#define fprintf xf86fprintf + +#undef memcpy +#define memcpy xf86memcpy +#undef memset +#define memset xf86memset + +#undef stderr +#define stderr xf86stderr + +#endif /* FONTMODULE */ + + /* the following is only used for debugging purposes, i.e. when */ /* FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined */ /* */ diff -pNur xc.orig/extras/freetype2/include/freetype/fttypes.h xc/extras/freetype2/include/freetype/fttypes.h --- xc.orig/extras/freetype2/include/freetype/fttypes.h 2003-05-28 19:01:45.000000000 -0700 +++ xc/extras/freetype2/include/freetype/fttypes.h 2007-05-23 15:19:56.000000000 -0700 @@ -25,7 +25,19 @@ #include FT_SYSTEM_H #include FT_IMAGE_H +#ifndef FONTMODULE #include +#else +#include +#define _XTYPEDEF_BOOL +#include +#include "xf86_ansic.h" +#ifndef size_t +#define DONT_DEFINE_WRAPPERS +#define size_t xf86size_t +#undef DONT_DEFINE_WRAPPERS +#endif +#endif FT_BEGIN_HEADER diff -pNur xc.orig/extras/freetype2/src/base/ftsystem.c xc/extras/freetype2/src/base/ftsystem.c --- xc.orig/extras/freetype2/src/base/ftsystem.c 2005-02-28 15:19:13.000000000 -0800 +++ xc/extras/freetype2/src/base/ftsystem.c 2007-05-23 12:43:10.000000000 -0700 @@ -35,8 +35,28 @@ #include FT_TYPES_H #include FT_INTERNAL_STREAM_H +#ifndef FONTMODULE #include #include +#else +#include +#define _XTYPEDEF_BOOL +#include +#define DONT_DEFINE_WRAPPERS +#include "xf86_ansic.h" +#undef DONT_DEFINE_WRAPPERS +#define malloc(x) xf86malloc(x) +#define realloc(x, y) xf86realloc(x, y) +#define free(x) xf86free(x) +#define FILE XF86FILE +#define fopen(x, y) xf86fopen(x, y) +#define fclose(x) xf86fclose(x) +#define fseek(x, y, z) xf86fseek(x, y, z) +#define ftell(x) xf86ftell(x) +#define SEEK_SET XF86_SEEK_SET +#define SEEK_END XF86_SEEK_END +#define fread(x, y, z, t) xf86fread(x, y, z, t) +#endif /*************************************************************************/ @@ -267,6 +287,10 @@ #endif +#ifdef FONTMODULE +#undef free +#endif + /* documentation is in ftobjs.h */ FT_EXPORT_DEF( FT_Memory ) diff -pNur xc.orig/extras/freetype2/src/lzw/zopen.h xc/extras/freetype2/src/lzw/zopen.h --- xc.orig/extras/freetype2/src/lzw/zopen.h 2006-01-09 06:56:44.000000000 -0800 +++ xc/extras/freetype2/src/lzw/zopen.h 2007-05-23 16:29:05.000000000 -0700 @@ -40,7 +40,9 @@ * */ +#ifndef FONTMODULE #include +#endif #define BITS 16 /* Default bits. */ #define HSIZE 69001 /* 95% occupancy */ diff -pNur xc.orig/lib/Xft/Imakefile xc/lib/Xft/Imakefile --- xc.orig/lib/Xft/Imakefile 2005-10-25 09:58:48.000000000 -0700 +++ xc/lib/Xft/Imakefile 2007-05-23 12:43:10.000000000 -0700 @@ -23,7 +23,8 @@ XCOMM $XFree86: xc/lib/Xft/Imakefile,v 1 #endif #ifdef UseInstalled -/* when using xmkmf, make sure the needed definitions for the fontconfig +/* + * when using xmkmf, make sure the needed definitions for the fontconfig * library are available */ @@ -44,7 +45,7 @@ TYPE1DIR=XftType1Dir WARNINGS=-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs #endif INCLUDES=$(FONTCONFIGINCLUDES) $(FREETYPE2INCLUDES) $(WARNINGS) -DEFINES=$(FREETYPE2DEFINES) $(RENDERDEFINES) -DXFREE86_FT2 +DEFINES=$(FREETYPE2DEFINES) $(RENDERDEFINES) XFT_REVISION=0 diff -pNur xc.orig/lib/Xft1/Imakefile xc/lib/Xft1/Imakefile --- xc.orig/lib/Xft1/Imakefile 2006-02-07 16:49:12.000000000 -0800 +++ xc/lib/Xft1/Imakefile 2007-05-23 12:43:10.000000000 -0700 @@ -90,7 +90,7 @@ YFLAGS = -d XFTLIBDIR=XftLibDir INCLUDES=$(FONTCONFIGINCLUDES) $(FREETYPE2INCLUDES) -DEFINES=$(FREETYPE2DEFINES) $(RENDERDEFINES) -DXFREE86_FT2 +DEFINES=$(FREETYPE2DEFINES) $(RENDERDEFINES) #if UseFreetype2 FREETYPE2REQLIB = $(FREETYPE2LIB) diff -pNur xc.orig/lib/font/FreeType/Imakefile xc/lib/font/FreeType/Imakefile --- xc.orig/lib/font/FreeType/Imakefile 2005-10-14 08:16:01.000000000 -0700 +++ xc/lib/font/FreeType/Imakefile 2007-05-23 12:43:10.000000000 -0700 @@ -7,14 +7,9 @@ XCOMM $XFree86: xc/lib/font/FreeType/Ima SUBDIRS = module #endif -DEFINES = ServerExtraDefines StrcasecmpDefines Freetype2BuildDefines \ - -DXFREE86_FT2 +DEFINES = ServerExtraDefines StrcasecmpDefines Freetype2BuildDefines -FT2SOURCEDIR = $(TOP)/extras/freetype2/src -FT2INCS = $(FREETYPE2INCLUDES) - -INCLUDES = $(FT2INCS) -I../include -I$(SERVERSRC)/include \ - -I$(FT2SOURCEDIR)/truetype +INCLUDES = $(FREETYPE2INCLUDES) -I../include -I$(SERVERSRC)/include SRCS = xttcap.c ftfuncs.c ftenc.c fttools.c OBJS = xttcap.o ftfuncs.o ftenc.o fttools.o diff -pNur xc.orig/lib/font/FreeType/ftconfig.h xc/lib/font/FreeType/ftconfig.h --- xc.orig/lib/font/FreeType/ftconfig.h 2004-04-26 09:15:56.000000000 -0700 +++ xc/lib/font/FreeType/ftconfig.h 1969-12-31 16:00:00.000000000 -0800 @@ -1,386 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftconfig.h */ -/* */ -/* ANSI-specific configuration file (specification only). */ -/* */ -/* Copyright 1996-2001, 2002, 2003, 2004 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* Modified for XFree86. */ -/* */ -/* 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. */ -/* */ -/***************************************************************************/ - -/* $XFree86: xc/lib/font/FreeType/ftconfig.h,v 1.8 2004/04/26 16:15:56 dawes Exp $ */ - - /*************************************************************************/ - /* */ - /* This header file contains a number of macro definitions that are used */ - /* by the rest of the engine. Most of the macros here are automatically */ - /* determined at compile time, and you should not need to change it to */ - /* port FreeType, except to compile the library with a non-ANSI */ - /* compiler. */ - /* */ - /* Note however that if some specific modifications are needed, we */ - /* advise you to place a modified copy in your build directory. */ - /* */ - /* The build directory is usually `freetype/builds/', and */ - /* contains system-specific files that are always included first when */ - /* building the library. */ - /* */ - /* This ANSI version should stay in `include/freetype/config'. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTCONFIG_H__ -#define __FTCONFIG_H__ - -#include -#include FT_CONFIG_OPTIONS_H -#include FT_CONFIG_STANDARD_LIBRARY_H - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* PLATFORM-SPECIFIC CONFIGURATION MACROS */ - /* */ - /* These macros can be toggled to suit a specific system. The current */ - /* ones are defaults used to compile FreeType in an ANSI C environment */ - /* (16bit compilers are also supported). Copy this file to your own */ - /* `freetype/builds/' directory, and edit it to port the engine. */ - /* */ - /*************************************************************************/ - - -#ifndef __CHAR_BIT__ -#define __CHAR_BIT__ 8 -#endif - -#ifndef CHAR_BIT -#define CHAR_BIT 8 -#endif - - -#ifdef XFREE86_FT2 - -# include "X11/Xmd.h" - -#ifndef FT_CHAR_BIT -#define FT_CHAR_BIT CHAR_BIT -#endif - - /* The number of bytes in an `int' type. */ -# define FT_SIZEOF_INT 4 - - /* The number of bytes in a `long' type. */ -# ifdef LONG64 -# define FT_SIZEOF_LONG 8 -# else -# define FT_SIZEOF_LONG 4 -# endif - -#else - - /* There are systems (like the Texas Instruments 'C54x) where a `char' */ - /* has 16 bits. ANSI C says that sizeof(char) is always 1. Since an */ - /* `int' has 16 bits also for this system, sizeof(int) gives 1 which */ - /* is probably unexpected. */ - /* */ - /* `CHAR_BIT' (defined in limits.h) gives the number of bits in a */ - /* `char' type. */ - -#ifndef FT_CHAR_BIT -#define FT_CHAR_BIT CHAR_BIT -#endif - - - /* The size of an `int' type. */ -#if FT_UINT_MAX == 0xFFFFFFFFUL -#define FT_SIZEOF_INT (32 / FT_CHAR_BIT) -#elif FT_UINT_MAX == 0xFFFFU -#define FT_SIZEOF_INT (16 / FT_CHAR_BIT) -#elif FT_UINT_MAX > 0xFFFFFFFFU && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFU -#define FT_SIZEOF_INT (64 / FT_CHAR_BIT) -#else -#error "Unsupported size of `int' type!" -#endif - - /* The size of a `long' type. */ -#if FT_ULONG_MAX == 0xFFFFFFFFUL -#define FT_SIZEOF_LONG (32 / FT_CHAR_BIT) -#elif FT_ULONG_MAX > 0xFFFFFFFFU && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFU -#define FT_SIZEOF_LONG (64 / FT_CHAR_BIT) -#else -#error "Unsupported size of `long' type!" -#endif - -#endif - - /* Preferred alignment of data */ -#define FT_ALIGNMENT 8 - - - /* FT_UNUSED is a macro used to indicate that a given parameter is not */ - /* used -- this is only used to get rid of unpleasant compiler warnings */ -#ifndef FT_UNUSED -#define FT_UNUSED( arg ) ( (arg) = (arg) ) -#endif - - - /*************************************************************************/ - /* */ - /* AUTOMATIC CONFIGURATION MACROS */ - /* */ - /* These macros are computed from the ones defined above. Don't touch */ - /* their definition, unless you know precisely what you are doing. No */ - /* porter should need to mess with them. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Mac support */ - /* */ - /* This is the only necessary change, so it is defined here instead */ - /* providing a new configuration file. */ - /* */ -#if ( defined( __APPLE__ ) && !defined( DARWIN_NO_CARBON ) ) || \ - ( defined( __MWERKS__ ) && defined( macintosh ) ) -#define FT_MACINTOSH 1 -#endif - - - /*************************************************************************/ - /* */ - /* IntN types */ - /* */ - /* Used to guarantee the size of some specific integers. */ - /* */ - typedef signed short FT_Int16; - typedef unsigned short FT_UInt16; - -#if FT_SIZEOF_INT == (32 / FT_CHAR_BIT) - - typedef signed int FT_Int32; - typedef unsigned int FT_UInt32; - -#elif FT_SIZEOF_LONG == (32 / FT_CHAR_BIT) - - typedef signed long FT_Int32; - typedef unsigned long FT_UInt32; - -#else -#error "no 32bit type found -- please check your configuration files" -#endif - - /* look up an integer type that is at least 32 bits */ -#if FT_SIZEOF_INT >= (32 / FT_CHAR_BIT) - - typedef int FT_Fast; - typedef unsigned int FT_UFast; - -#elif FT_SIZEOF_LONG >= (32 / FT_CHAR_BIT) - - typedef long FT_Fast; - typedef unsigned long FT_UFast; - -#endif - - - /* determine whether we have a 64-bit int type for platforms without */ - /* Autoconf */ -#if FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) - - /* FT_LONG64 must be defined if a 64-bit type is available */ -#define FT_LONG64 -#define FT_INT64 long - -#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */ - - /* this compiler provides the __int64 type */ -#define FT_LONG64 -#define FT_INT64 __int64 - -#elif defined( __BORLANDC__ ) /* Borland C++ */ - - /* XXXX: We should probably check the value of __BORLANDC__ in order */ - /* to test the compiler version. */ - - /* this compiler provides the __int64 type */ -#define FT_LONG64 -#define FT_INT64 __int64 - -#elif defined( __WATCOMC__ ) /* Watcom C++ */ - - /* Watcom doesn't provide 64-bit data types */ - -#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */ - -#define FT_LONG64 -#define FT_INT64 long long int - -#elif defined( __GNUC__ ) - - /* GCC provides the "long long" type */ -#define FT_LONG64 -#define FT_INT64 long long int - -#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */ - - -#define FT_BEGIN_STMNT do { -#define FT_END_STMNT } while ( 0 ) -#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT - - - /*************************************************************************/ - /* */ - /* A 64-bit data type will create compilation problems if you compile */ - /* in strict ANSI mode. To avoid them, we disable their use if */ - /* __STDC__ is defined. You can however ignore this rule by */ - /* defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */ - /* */ -#if defined( FT_LONG64 ) && !defined( FT_CONFIG_OPTION_FORCE_INT64 ) - -#ifdef __STDC__ - - /* undefine the 64-bit macros in strict ANSI compilation mode */ -#undef FT_LONG64 -#undef FT_INT64 - -#endif /* __STDC__ */ - -#endif /* FT_LONG64 && !FT_CONFIG_OPTION_FORCE_INT64 */ - - -#ifdef FT_MAKE_OPTION_SINGLE_OBJECT - -#define FT_LOCAL( x ) static x -#define FT_LOCAL_DEF( x ) static x - -#else - -#ifdef __cplusplus -#define FT_LOCAL( x ) extern "C" x -#define FT_LOCAL_DEF( x ) extern "C" x -#else -#define FT_LOCAL( x ) extern x -#define FT_LOCAL_DEF( x ) x -#endif - -#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */ - - -#ifndef FT_BASE - -#ifdef __cplusplus -#define FT_BASE( x ) extern "C" x -#else -#define FT_BASE( x ) extern x -#endif - -#endif /* !FT_BASE */ - - -#ifndef FT_BASE_DEF - -#ifdef __cplusplus -#define FT_BASE_DEF( x ) extern "C" x -#else -#define FT_BASE_DEF( x ) extern x -#endif - -#endif /* !FT_BASE_DEF */ - - -#ifndef FT_EXPORT - -#ifdef __cplusplus -#define FT_EXPORT( x ) extern "C" x -#else -#define FT_EXPORT( x ) extern x -#endif - -#endif /* !FT_EXPORT */ - - -#ifndef FT_EXPORT_DEF - -#ifdef __cplusplus -#define FT_EXPORT_DEF( x ) extern "C" x -#else -#define FT_EXPORT_DEF( x ) extern x -#endif - -#endif /* !FT_EXPORT_DEF */ - - -#ifndef FT_EXPORT_VAR - -#ifdef __cplusplus -#define FT_EXPORT_VAR( x ) extern "C" x -#else -#define FT_EXPORT_VAR( x ) extern x -#endif - -#endif /* !FT_EXPORT_VAR */ - - /* The following macros are needed to compile the library with a */ - /* C++ compiler and with 16bit compilers. */ - /* */ - - /* This is special. Within C++, you must specify `extern "C"' for */ - /* functions which are used via function pointers, and you also */ - /* must do that for structures which contain function pointers to */ - /* assure C linkage -- it's not possible to have (local) anonymous */ - /* functions which are accessed by (global) function pointers. */ - /* */ - /* */ - /* FT_CALLBACK_DEF is used to _define_ a callback function. */ - /* */ - /* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */ - /* contains pointers to callback functions. */ - /* */ - /* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */ - /* that contains pointers to callback functions. */ - /* */ - /* */ - /* Some 16bit compilers have to redefine these macros to insert */ - /* the infamous `_cdecl' or `__fastcall' declarations. */ - /* */ -#ifndef FT_CALLBACK_DEF -#ifdef __cplusplus -#define FT_CALLBACK_DEF( x ) extern "C" x -#else -#define FT_CALLBACK_DEF( x ) static x -#endif -#endif /* FT_CALLBACK_DEF */ - -#ifndef FT_CALLBACK_TABLE -#ifdef __cplusplus -#define FT_CALLBACK_TABLE extern "C" -#define FT_CALLBACK_TABLE_DEF extern "C" -#else -#define FT_CALLBACK_TABLE extern -#define FT_CALLBACK_TABLE_DEF /* nothing */ -#endif -#endif /* FT_CALLBACK_TABLE */ - - -FT_END_HEADER - - -#endif /* __FTCONFIG_H__ */ - - -/* END */ diff -pNur xc.orig/lib/font/FreeType/ftfuncs.c xc/lib/font/FreeType/ftfuncs.c --- xc.orig/lib/font/FreeType/ftfuncs.c 2005-10-14 08:16:01.000000000 -0700 +++ xc/lib/font/FreeType/ftfuncs.c 2007-05-23 12:43:10.000000000 -0700 @@ -50,10 +50,7 @@ THE SOFTWARE. #include FT_TYPE1_TABLES_H #include FT_XFREE86_H #include FT_BBOX_H -#include FT_INTERNAL_TRUETYPE_TYPES_H #include FT_TRUETYPE_TAGS_H -#include FT_INTERNAL_SFNT_H -#include FT_INTERNAL_STREAM_H /* * If you want to use FT_Outline_Get_CBox instead of * FT_Outline_Get_BBox, define here. @@ -119,6 +116,25 @@ static char *xlfd_props[] = { }; +/* read 2-byte value from a SFNT table */ +static FT_UShort +sfnt_get_ushort( FT_Face face, + FT_ULong table_tag, + FT_ULong table_offset ) +{ + FT_Byte buff[2]; + FT_ULong len = sizeof(buff); + FT_UShort result = 0; + + if ( !FT_Load_Sfnt_Table( face, table_tag, table_offset, buff, &len ) ); + result = (FT_UShort)( (buff[0] << 8) | buff[1] ); + + return result; +} + +#define sfnt_get_short(f,t,o) ((FT_Short)sfnt_get_ushort((f),(t),(o))) + + static int ftypeInitP = 0; /* is the engine initialised? */ static FT_Library ftypeLibrary; @@ -207,6 +223,10 @@ FreeTypeOpenFace(FTFacePtr *facep, char if(maxp && maxp->maxContours == 0) face->bitmap = 1; } + + face->num_hmetrics = (FT_UInt) sfnt_get_ushort( face->face, + TTAG_hhea, 34 ); + /* Insert face in hashtable and return it */ face->next = faceTable[bucket]; faceTable[bucket] = face; @@ -458,30 +478,32 @@ FreeTypeOpenInstance(FTInstancePtr *inst } if( FT_IS_SFNT( face->face ) ) { - /* See Set_Char_Sizes() in ttdriver.c */ - FT_Error err; - TT_Face tt_face; - FT_Long tt_dim_x, tt_dim_y; - FT_UShort tt_x_ppem, tt_y_ppem; - FT_F26Dot6 tt_char_width, tt_char_height; - SFNT_Service sfnt; - tt_face=(TT_Face)face->face; - tt_char_width = (int)(trans->scale*(1<<6) + 0.5); - tt_char_height = (int)(trans->scale*(1<<6) + 0.5); - if ( ( tt_face->header.Flags & 8 ) != 0 ) { - tt_dim_x = ( ( tt_char_width * trans->xres + (36+32*72) ) / 72 ) & -64; - tt_dim_y = ( ( tt_char_height * trans->yres + (36+32*72) ) / 72 ) & -64; - } - else{ - tt_dim_x = ( ( tt_char_width * trans->xres + 36 ) / 72 ); - tt_dim_y = ( ( tt_char_height * trans->yres + 36 ) / 72 ); - } - tt_x_ppem = (FT_UShort)( tt_dim_x >> 6 ); - tt_y_ppem = (FT_UShort)( tt_dim_y >> 6 ); - /* See Reset_SBit_Size() in ttobjs.c */ - sfnt = (SFNT_Service)tt_face->sfnt; - err = sfnt->set_sbit_strike(tt_face,tt_x_ppem,tt_y_ppem,&instance->strike_index); - if ( err ) instance->strike_index=0xFFFFU; + FT_F26Dot6 tt_char_width, tt_char_height, tt_dim_x, tt_dim_y; + FT_UInt nn; + + instance->strike_index=0xFFFFU; + + tt_char_width = (FT_F26Dot6)(trans->scale*(1<<6) + 0.5); + tt_char_height = (FT_F26Dot6)(trans->scale*(1<<6) + 0.5); + + tt_dim_x = FLOOR64( ( tt_char_width * trans->xres + 36 ) / 72 + 32 ); + tt_dim_y = FLOOR64( ( tt_char_height * trans->yres + 36 ) / 72 + 32 ); + + if ( tt_dim_x && !tt_dim_y ) + tt_dim_y = tt_dim_x; + else if ( !tt_dim_x && tt_dim_y ) + tt_dim_x = tt_dim_y; + + for ( nn = 0; nn < face->face->num_fixed_sizes; nn++ ) + { + FT_Bitmap_Size* sz = &face->face->available_sizes[nn]; + + if ( tt_dim_x == FLOOR64(sz->x_ppem + 32) && tt_dim_y == FLOOR64(sz->y_ppem + 32) ) + { + instance->strike_index = nn; + break; + } + } } /* maintain a linked list of instances */ @@ -799,31 +821,61 @@ ft_make_up_italic_bitmap( char *raster, * parse the htmx field in TrueType font. */ -/* from src/truetype/ttgload.c */ static void -tt_get_metrics( TT_HoriHeader* header, +tt_get_metrics( FT_Face face, FT_UInt idx, + FT_UInt num_hmetrics, FT_Short* bearing, FT_UShort* advance ) -/* Copyright 1996-2001, 2002 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ { - TT_LongMetrics longs_m; - FT_UShort k = header->number_Of_HMetrics; + /* read the metrics directly from the horizontal header, we + * parse the SFNT table directly through the standard FreeType API. + * this works with any version of the library and doesn't need to + * peek at its internals. Maybe a bit less + */ + FT_UInt count = num_hmetrics; + FT_ULong length = 0; + FT_ULong offset = 0; + FT_Error error; - if ( k == 0 ) { - *bearing = *advance = 0; - return; - } + error = FT_Load_Sfnt_Table( face, TTAG_hmtx, 0, NULL, &length ); - if ( idx < (FT_UInt)k ) { - longs_m = (TT_LongMetrics )header->long_metrics + idx; - *bearing = longs_m->bearing; - *advance = longs_m->advance; + if ( count == 0 || error ) + { + *advance = 0; + *bearing = 0; + } + else if ( idx < count ) + { + offset = idx * 4L; + if ( offset + 4 > length ) + { + *advance = 0; + *bearing = 0; + } + else + { + *advance = sfnt_get_ushort( face, TTAG_hmtx, offset ); + *bearing = sfnt_get_short ( face, TTAG_hmtx, offset+2 ); + } + } + else + { + offset = 4L * (count - 1); + if ( offset + 4 > length ) + { + *advance = 0; + *bearing = 0; + } + else + { + *advance = sfnt_get_ushort ( face, TTAG_hmtx, offset ); + offset += 4 + 2 * ( idx - count ); + if ( offset + 2 > length) + *bearing = 0; + else + *bearing = sfnt_get_short ( face, TTAG_hmtx, offset ); } - else { - *bearing = ((TT_ShortMetrics*)header->short_metrics)[idx - k]; - *advance = ((TT_LongMetrics )header->long_metrics)[k - 1].advance; } } @@ -831,6 +883,7 @@ static int ft_get_very_lazy_bbox( FT_UInt index, FT_Face face, FT_Size size, + FT_UInt num_hmetrics, double slant, FT_Matrix *matrix, FT_BBox *bbox, @@ -838,15 +891,14 @@ ft_get_very_lazy_bbox( FT_UInt index, FT_Long *vertAdvance) { if ( FT_IS_SFNT( face ) ) { - TT_Face ttface = (TT_Face)face; FT_Size_Metrics *smetrics = &size->metrics; FT_Short leftBearing = 0; FT_UShort advance = 0; FT_Vector p0, p1, p2, p3; /* horizontal */ - tt_get_metrics(&ttface->horizontal, index, - &leftBearing, &advance); + tt_get_metrics( face, index, num_hmetrics, + &leftBearing, &advance ); #if 0 fprintf(stderr,"x_scale=%f y_scale=%f\n", @@ -905,69 +957,25 @@ static FT_Error FT_Do_SBit_Metrics( FT_Face ft_face, FT_Size ft_size, FT_ULong strike_index, FT_UShort glyph_index, FT_Glyph_Metrics *metrics_return ) { - SFNT_Service sfnt; - TT_Face face; - FT_Error error; - FT_Stream stream; - TT_SBit_Strike strike; - TT_SBit_Range range; - TT_SBit_MetricsRec elem_metrics; - FT_ULong ebdt_pos; - FT_ULong glyph_offset; - ; - - if ( ! FT_IS_SFNT( ft_face ) ) - { - error=-1; - goto Exit; - } - - face = (TT_Face)ft_face; - sfnt = (SFNT_Service)face->sfnt; - - if ( strike_index != 0xFFFFU && sfnt->load_sbits ) { - /* Check whether there is a glyph sbit for the current index */ - error = sfnt->find_sbit_image( face, glyph_index, strike_index, - &range, &strike, &glyph_offset ); - } - else error=-1; - if ( error ) goto Exit; - - if ( metrics_return == NULL ) goto Exit; - - stream = face->root.stream; - - /* now, find the location of the `EBDT' table in */ - /* the font file */ - error = face->goto_table( face, TTAG_EBDT, stream, 0 ); - if ( error ) - error = face->goto_table( face, TTAG_bdat, stream, 0 ); - if (error) - goto Exit; - - ebdt_pos = FT_STREAM_POS(); - - /* place stream at beginning of glyph data and read metrics */ - if ( FT_STREAM_SEEK( ebdt_pos + glyph_offset ) ) - goto Exit; - - error = sfnt->load_sbit_metrics( stream, range, &elem_metrics ); - if ( error ) - goto Exit; - - metrics_return->width = (FT_Pos)elem_metrics.width << 6; - metrics_return->height = (FT_Pos)elem_metrics.height << 6; - - metrics_return->horiBearingX = (FT_Pos)elem_metrics.horiBearingX << 6; - metrics_return->horiBearingY = (FT_Pos)elem_metrics.horiBearingY << 6; - metrics_return->horiAdvance = (FT_Pos)elem_metrics.horiAdvance << 6; - - metrics_return->vertBearingX = (FT_Pos)elem_metrics.vertBearingX << 6; - metrics_return->vertBearingY = (FT_Pos)elem_metrics.vertBearingY << 6; - metrics_return->vertAdvance = (FT_Pos)elem_metrics.vertAdvance << 6; - - Exit: - return error; + if ( strike_index != 0xFFFFU && ft_face->available_sizes != NULL ) + { + FT_Error error; + FT_Bitmap_Size* sz = &ft_face->available_sizes[strike_index]; + + error = FT_Set_Pixel_Sizes( ft_face, sz->x_ppem/64, sz->y_ppem/64 ); + if ( !error ) + { + error = FT_Load_Glyph( ft_face, glyph_index, FT_LOAD_SBITS_ONLY ); + if ( !error ) + { + if ( metrics_return != NULL ) + *metrics_return = ft_face->glyph->metrics; + + return 0; + } + } + } + return -1; } int @@ -1023,6 +1031,7 @@ FreeTypeRasteriseGlyph(unsigned idx, int if( bitmap_metrics == NULL ) { if ( instance->ttcap.flags & TTCAP_IS_VERY_LAZY ) { if( ft_get_very_lazy_bbox( idx, face->face, instance->size, + face->num_hmetrics, instance->ttcap.vl_slant, &instance->transformation.matrix, &bbox, &outline_hori_advance, @@ -1183,10 +1192,27 @@ FreeTypeRasteriseGlyph(unsigned idx, int } if( face->face->glyph->format != FT_GLYPH_FORMAT_BITMAP ) { +#ifdef USE_GET_CBOX + FT_Outline_Get_CBox(&face->face->glyph->outline, &bbox); + ftrc = 0; +#else + ftrc = FT_Outline_Get_BBox(&face->face->glyph->outline, &bbox); +#endif + if( ftrc != 0 ) return FTtoXReturnCode(ftrc); + bbox.yMin = FLOOR64( bbox.yMin ); + bbox.yMax = CEIL64 ( bbox.yMax ); + ht_actual = ( bbox.yMax - bbox.yMin ) >> 6; + /* FreeType think a glyph with 0 height control box is invalid. + * So just let X to create a empty bitmap instead. */ + if ( ht_actual == 0 ) + is_outline = -1; + else + { ftrc = FT_Render_Glyph(face->face->glyph,FT_RENDER_MODE_MONO); if( ftrc != 0 ) return FTtoXReturnCode(ftrc); is_outline = 1; } + } else{ is_outline=0; } @@ -1197,6 +1223,7 @@ FreeTypeRasteriseGlyph(unsigned idx, int if( is_outline == 1 ){ if( correct ){ if( ft_get_very_lazy_bbox( idx, face->face, instance->size, + face->num_hmetrics, instance->ttcap.vl_slant, &instance->transformation.matrix, &bbox, &outline_hori_advance, diff -pNur xc.orig/lib/font/FreeType/ftfuncs.h xc/lib/font/FreeType/ftfuncs.h --- xc.orig/lib/font/FreeType/ftfuncs.h 2004-04-14 08:32:43.000000000 -0700 +++ xc/lib/font/FreeType/ftfuncs.h 2007-05-23 12:43:10.000000000 -0700 @@ -47,6 +47,7 @@ typedef struct _FTFace { char *filename; FT_Face face; int bitmap; + FT_UInt num_hmetrics; struct _FTInstance *instances; struct _FTInstance *active_instance; struct _FTFace *next; /* link to next face in bucket */ diff -pNur xc.orig/lib/font/FreeType/ftsystem.c xc/lib/font/FreeType/ftsystem.c --- xc.orig/lib/font/FreeType/ftsystem.c 2005-10-14 08:16:01.000000000 -0700 +++ xc/lib/font/FreeType/ftsystem.c 1969-12-31 16:00:00.000000000 -0800 @@ -1,331 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftsystem.c */ -/* */ -/* ANSI-specific FreeType low-level system interface (body). */ -/* */ -/* Copyright 1996-2001, 2002 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* Modified for XFree86. */ -/* */ -/* 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. */ -/* */ -/***************************************************************************/ - -/* Modified for XFree86 */ -/* $XFree86: xc/lib/font/FreeType/ftsystem.c,v 1.5 2005/10/14 15:16:01 tsi Exp $ */ - - /*************************************************************************/ - /* */ - /* This file contains the default interface used by FreeType to access */ - /* low-level, i.e. memory management, i/o access as well as thread */ - /* synchronisation. It can be replaced by user-specific routines if */ - /* necessary. */ - /* */ - /*************************************************************************/ - - -#include -#include FT_CONFIG_CONFIG_H -#include FT_INTERNAL_DEBUG_H -#include FT_SYSTEM_H -#include FT_ERRORS_H -#include FT_TYPES_H -#include FT_INTERNAL_OBJECTS_H -#include FT_INTERNAL_STREAM_H - -#ifndef FONTMODULE -#include -#include -#else -#include -#define _XTYPEDEF_BOOL -#include -#define DONT_DEFINE_WRAPPERS -#include "xf86_ansic.h" -#undef DONT_DEFINE_WRAPPERS -#define malloc(x) xf86malloc(x) -#define realloc(x, y) xf86realloc(x, y) -#define free(x) xf86free(x) -#define FILE XF86FILE -#define fopen(x, y) xf86fopen(x, y) -#define fclose(x) xf86fclose(x) -#define fseek(x, y, z) xf86fseek(x, y, z) -#define ftell(x) xf86ftell(x) -#define SEEK_SET XF86_SEEK_SET -#define SEEK_END XF86_SEEK_END -#define fread(x, y, z, t) xf86fread(x, y, z, t) -#endif - - - /*************************************************************************/ - /* */ - /* MEMORY MANAGEMENT INTERFACE */ - /* */ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* It is not necessary to do any error checking for the */ - /* allocation-related functions. This will be done by the higher level */ - /* routines like FT_Alloc() or FT_Realloc(). */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* */ - /* ft_alloc */ - /* */ - /* */ - /* The memory allocation function. */ - /* */ - /* */ - /* memory :: A pointer to the memory object. */ - /* */ - /* size :: The requested size in bytes. */ - /* */ - /* */ - /* The address of newly allocated block. */ - /* */ - FT_CALLBACK_DEF( void* ) - ft_alloc( FT_Memory memory, - long size ) - { - FT_UNUSED( memory ); - - return malloc( size ); - } - - - /*************************************************************************/ - /* */ - /* */ - /* ft_realloc */ - /* */ - /* */ - /* The memory reallocation function. */ - /* */ - /* */ - /* memory :: A pointer to the memory object. */ - /* */ - /* cur_size :: The current size of the allocated memory block. */ - /* */ - /* new_size :: The newly requested size in bytes. */ - /* */ - /* block :: The current address of the block in memory. */ - /* */ - /* */ - /* The address of the reallocated memory block. */ - /* */ - FT_CALLBACK_DEF( void* ) - ft_realloc( FT_Memory memory, - long cur_size, - long new_size, - void* block ) - { - FT_UNUSED( memory ); - FT_UNUSED( cur_size ); - - return realloc( block, new_size ); - } - - - /*************************************************************************/ - /* */ - /* */ - /* ft_free */ - /* */ - /* */ - /* The memory release function. */ - /* */ - /* */ - /* memory :: A pointer to the memory object. */ - /* */ - /* block :: The address of block in memory to be freed. */ - /* */ - FT_CALLBACK_DEF( void ) - ft_free( FT_Memory memory, - void* block ) - { - FT_UNUSED( memory ); - - free( block ); - } - - - /*************************************************************************/ - /* */ - /* RESOURCE MANAGEMENT INTERFACE */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* The macro FT_COMPONENT is used in trace mode. It is an implicit */ - /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log */ - /* messages during execution. */ - /* */ -#undef FT_COMPONENT -#define FT_COMPONENT trace_io - - /* We use the macro STREAM_FILE for convenience to extract the */ - /* system-specific stream handle from a given FreeType stream object */ -#define STREAM_FILE( stream ) ( (FILE*)stream->descriptor.pointer ) - - - /*************************************************************************/ - /* */ - /* */ - /* ft_ansi_stream_close */ - /* */ - /* */ - /* The function to close a stream. */ - /* */ - /* */ - /* stream :: A pointer to the stream object. */ - /* */ - FT_CALLBACK_DEF( void ) - ft_ansi_stream_close( FT_Stream stream ) - { - fclose( STREAM_FILE( stream ) ); - - stream->descriptor.pointer = NULL; - stream->size = 0; - stream->base = 0; - } - - - /*************************************************************************/ - /* */ - /* */ - /* ft_ansi_stream_io */ - /* */ - /* */ - /* The function to open a stream. */ - /* */ - /* */ - /* stream :: A pointer to the stream object. */ - /* */ - /* offset :: The position in the data stream to start reading. */ - /* */ - /* buffer :: The address of buffer to store the read data. */ - /* */ - /* count :: The number of bytes to read from the stream. */ - /* */ - /* */ - /* The number of bytes actually read. */ - /* */ - FT_CALLBACK_DEF( unsigned long ) - ft_ansi_stream_io( FT_Stream stream, - unsigned long offset, - unsigned char* buffer, - unsigned long count ) - { - FILE* file; - - - file = STREAM_FILE( stream ); - - fseek( file, offset, SEEK_SET ); - - return (unsigned long)fread( buffer, 1, count, file ); - } - - - /* documentation is in ftobjs.h */ - - FT_EXPORT_DEF( FT_Error ) - FT_Stream_Open( FT_Stream stream, - const char* filepathname ) - { - FILE* file; - - - if ( !stream ) - return FT_Err_Invalid_Stream_Handle; - - file = fopen( filepathname, "rb" ); - if ( !file ) - { - FT_ERROR(( "FT_Stream_Open:" )); - FT_ERROR(( " could not open `%s'\n", filepathname )); - - return FT_Err_Cannot_Open_Resource; - } - - fseek( file, 0, SEEK_END ); - stream->size = ftell( file ); - fseek( file, 0, SEEK_SET ); - - stream->descriptor.pointer = file; - stream->pathname.pointer = (char*)filepathname; - stream->pos = 0; - - stream->read = ft_ansi_stream_io; - stream->close = ft_ansi_stream_close; - - FT_TRACE1(( "FT_Stream_Open:" )); - FT_TRACE1(( " opened `%s' (%d bytes) successfully\n", - filepathname, stream->size )); - - return FT_Err_Ok; - } - - -#ifdef FT_DEBUG_MEMORY - - extern FT_Int - ft_mem_debug_init( FT_Memory memory ); - - extern void - ft_mem_debug_done( FT_Memory memory ); - -#endif - - - /* documentation is in ftobjs.h */ - - FT_EXPORT_DEF( FT_Memory ) - FT_New_Memory( void ) - { - FT_Memory memory; - - - memory = (FT_Memory)malloc( sizeof ( *memory ) ); - if ( memory ) - { - memory->user = 0; - memory->alloc = ft_alloc; - memory->realloc = ft_realloc; - memory->free = ft_free; -#ifdef FT_DEBUG_MEMORY - ft_mem_debug_init( memory ); -#endif - } - - return memory; - } - - - /* documentation is in ftobjs.h */ - - FT_EXPORT_DEF( void ) - FT_Done_Memory( FT_Memory memory ) - { -#ifdef FT_DEBUG_MEMORY - ft_mem_debug_done( memory ); -#endif -#undef free - memory->free( memory, memory ); - } - - -/* END */ diff -pNur xc.orig/lib/font/FreeType/module/Imakefile xc/lib/font/FreeType/module/Imakefile --- xc.orig/lib/font/FreeType/module/Imakefile 2005-10-14 08:16:01.000000000 -0700 +++ xc/lib/font/FreeType/module/Imakefile 2007-05-23 12:43:10.000000000 -0700 @@ -52,7 +52,7 @@ FT2INCDIR = $(TOP)/extras/freetype2/incl #define IHaveModules #include -DEFINES = -DFONTMODULE Freetype2BuildDefines -DXFREE86_FT2 +DEFINES = -DFONTMODULE Freetype2BuildDefines INCLUDES = -I.. -I../../include \ -I$(SERVERSRC)/include \ @@ -96,7 +96,7 @@ LinkSourceFile(ftbase.c,$(FT2SOURCEDIR)/ LinkSourceFile(ftinit.c,$(FT2SOURCEDIR)/base) LinkSourceFile(ftglyph.c,$(FT2SOURCEDIR)/base) LinkSourceFile(ftbbox.c,$(FT2SOURCEDIR)/base) -LinkSourceFile(ftsystem.c,..) +LinkSourceFile(ftsystem.c,$(FT2SOURCEDIR)/base) LinkSourceFile(ftutil.c,$(FT2SOURCEDIR)/base) LinkSourceFile(fttype1.c,$(FT2SOURCEDIR)/base) LinkSourceFile(ftxf86.c,$(FT2SOURCEDIR)/base) diff -pNur xc.orig/lib/font/FreeType/module/ft2build.h xc/lib/font/FreeType/module/ft2build.h --- xc.orig/lib/font/FreeType/module/ft2build.h 2003-11-19 18:35:40.000000000 -0800 +++ xc/lib/font/FreeType/module/ft2build.h 1969-12-31 16:00:00.000000000 -0800 @@ -1,41 +0,0 @@ -/***************************************************************************/ -/* */ -/* ft2build.h */ -/* */ -/* FreeType 2 build and setup macros. */ -/* */ -/* Copyright 1996-2001 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* Modified for XFree86. */ -/* */ -/* 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. */ -/* */ -/***************************************************************************/ - -/* $XFree86: xc/lib/font/FreeType/module/ft2build.h,v 1.1 2003/11/20 02:35:40 dawes Exp $ */ - - /*************************************************************************/ - /* */ - /* This file corresponds to the default "ft2build.h" file for */ - /* FreeType 2. It uses the "freetype" include root. */ - /* */ - /* Note that specific platforms might use a different configuration. */ - /* See builds/unix/ft2unix.h for an example. */ - /* */ - /*************************************************************************/ - - -#ifndef __FT2_BUILD_GENERIC_H__ -#define __FT2_BUILD_GENERIC_H__ - -#include "ftheader.h" - -#endif /* __FT2_BUILD_GENERIC_H__ */ - - -/* END */ diff -pNur xc.orig/lib/font/FreeType/module/ftheader.h xc/lib/font/FreeType/module/ftheader.h --- xc.orig/lib/font/FreeType/module/ftheader.h 2004-04-26 09:15:56.000000000 -0700 +++ xc/lib/font/FreeType/module/ftheader.h 1969-12-31 16:00:00.000000000 -0800 @@ -1,564 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftheader.h */ -/* */ -/* Build macros of the FreeType 2 library. */ -/* */ -/* Copyright 1996-2001, 2002, 2003, 2004 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. */ -/* */ -/***************************************************************************/ -/* $XFree86: xc/lib/font/FreeType/module/ftheader.h,v 1.2 2004/04/26 16:15:56 dawes Exp $ */ - -#ifndef __FT_HEADER_H__ -#define __FT_HEADER_H__ - - /*@***********************************************************************/ - /* */ - /* */ - /* FT_BEGIN_HEADER */ - /* */ - /* */ - /* This macro is used in association with @FT_END_HEADER in header */ - /* files to ensure that the declarations within are properly */ - /* encapsulated in an `extern "C" { .. }' block when included from a */ - /* C++ compiler. */ - /* */ -#ifdef __cplusplus -#define FT_BEGIN_HEADER extern "C" { -#else -#define FT_BEGIN_HEADER /* nothing */ -#endif - - - /*@***********************************************************************/ - /* */ - /* */ - /* FT_END_HEADER */ - /* */ - /* */ - /* This macro is used in association with @FT_BEGIN_HEADER in header */ - /* files to ensure that the declarations within are properly */ - /* encapsulated in an `extern "C" { .. }' block when included from a */ - /* C++ compiler. */ - /* */ -#ifdef __cplusplus -#define FT_END_HEADER } -#else -#define FT_END_HEADER /* nothing */ -#endif - - - /*************************************************************************/ - /* */ - /* Aliases for the FreeType 2 public and configuration files. */ - /* */ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /*
*/ - /* header_file_macros */ - /* */ - /* */ - /* Header File Macros */ - /* */ - /* <Abstract> */ - /* Macro definitions used to #include specific header files. */ - /* */ - /* <Description> */ - /* The following macros are defined to the name of specific */ - /* FreeType 2 header files. They can be used directly in #include */ - /* statements as in: */ - /* */ - /* { */ - /* #include FT_FREETYPE_H */ - /* #include FT_MULTIPLE_MASTERS_H */ - /* #include FT_GLYPH_H */ - /* } */ - /* */ - /* There are several reasons why we are now using macros to name */ - /* public header files. The first one is that such macros are not */ - /* limited to the infamous 8.3 naming rule required by DOS (and */ - /* `FT_MULTIPLE_MASTERS_H' is a lot more meaningful than `ftmm.h'). */ - /* */ - /* The second reason is that is allows for more flexibility in the */ - /* way FreeType 2 is installed on a given system. */ - /* */ - /*************************************************************************/ - - /* configuration files */ - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_CONFIG_CONFIG_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* FreeType 2 configuration data. */ - /* */ -#ifndef FT_CONFIG_CONFIG_H -#define FT_CONFIG_CONFIG_H <ftconfig.h> -#endif - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_CONFIG_STANDARD_LIBRARY_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* FreeType 2 configuration data. */ - /* */ -#ifndef FT_CONFIG_STANDARD_LIBRARY_H -#define FT_CONFIG_STANDARD_LIBRARY_H <ftstdlib.h> -#endif - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_CONFIG_OPTIONS_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* FreeType 2 project-specific configuration options. */ - /* */ -#ifndef FT_CONFIG_OPTIONS_H -#define FT_CONFIG_OPTIONS_H <ftoption.h> -#endif - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_CONFIG_MODULES_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the list of FreeType 2 modules that are statically linked to new */ - /* library instances in @FT_Init_FreeType. */ - /* */ -#ifndef FT_CONFIG_MODULES_H -#define FT_CONFIG_MODULES_H <ftmodule.h> -#endif - - /* public headers */ - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_FREETYPE_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the base FreeType 2 API. */ - /* */ -#define FT_FREETYPE_H <freetype/freetype.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_ERRORS_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the list of FreeType 2 error codes (and messages). */ - /* */ - /* It is included by @FT_FREETYPE_H. */ - /* */ -#define FT_ERRORS_H <freetype/fterrors.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_MODULE_ERRORS_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the list of FreeType 2 module error offsets (and messages). */ - /* */ -#define FT_MODULE_ERRORS_H <freetype/ftmoderr.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_SYSTEM_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the FreeType 2 interface to low-level operations (i.e. memory */ - /* management and stream i/o). */ - /* */ - /* It is included by @FT_FREETYPE_H. */ - /* */ -#define FT_SYSTEM_H <freetype/ftsystem.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_IMAGE_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* types definitions related to glyph images (i.e. bitmaps, outlines, */ - /* scan-converter parameters). */ - /* */ - /* It is included by @FT_FREETYPE_H. */ - /* */ -#define FT_IMAGE_H <freetype/ftimage.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_TYPES_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the basic data types defined by FreeType 2. */ - /* */ - /* It is included by @FT_FREETYPE_H. */ - /* */ -#define FT_TYPES_H <fttypes.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_LIST_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the list management API of FreeType 2. */ - /* */ - /* (Most applications will never need to include this file.) */ - /* */ -#define FT_LIST_H <freetype/ftlist.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_OUTLINE_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the scalable outline management API of FreeType 2. */ - /* */ -#define FT_OUTLINE_H <freetype/ftoutln.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_SIZES_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the API used to manage multiple @FT_Size objects per face. */ - /* */ -#define FT_SIZES_H <freetype/ftsizes.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_MODULE_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the module management API of FreeType 2. */ - /* */ -#define FT_MODULE_H <freetype/ftmodapi.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_RENDER_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the renderer module management API of FreeType 2. */ - /* */ -#define FT_RENDER_H <freetype/ftrender.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_TYPE1_TABLES_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the types and API specific to the Type 1 format. */ - /* */ -#define FT_TYPE1_TABLES_H <freetype/t1tables.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_TRUETYPE_IDS_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the enumeration values used to identify name strings, languages, */ - /* encodings, etc. This file really contains a _large_ set of */ - /* constant macro definitions, taken from the TrueType and OpenType */ - /* specifications. */ - /* */ -#define FT_TRUETYPE_IDS_H <freetype/ttnameid.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_TRUETYPE_TABLES_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the types and API specific to the TrueType (as well as OpenType) */ - /* format. */ - /* */ -#define FT_TRUETYPE_TABLES_H <freetype/tttables.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_TRUETYPE_TAGS_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the definitions of TrueType 4-byte `tags' used to identify blocks */ - /* in SFNT-based font formats (i.e. TrueType and OpenType). */ - /* */ -#define FT_TRUETYPE_TAGS_H <freetype/tttags.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_BDF_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the definitions of an API to access BDF-specific strings from a */ - /* face. */ - /* */ -#define FT_BDF_H <freetype/ftbdf.h> - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_GZIP_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the definitions of an API to support for gzip-compressed files. */ - /* */ -#define FT_GZIP_H <freetype/ftgzip.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_LZW_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the definitions of an API to support for LZW-compressed files. */ - /* */ -#define FT_LZW_H <freetype/ftlzw.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_WINFONTS_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the definitions of an API to support Windows .FNT files */ - /* */ -#define FT_WINFONTS_H <freetype/ftwinfnt.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_GLYPH_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the API of the optional glyph management component. */ - /* */ -#define FT_GLYPH_H <freetype/ftglyph.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_BBOX_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the API of the optional exact bounding box computation routines. */ - /* */ -#define FT_BBOX_H <freetype/ftbbox.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_CACHE_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the API of the optional FreeType 2 cache sub-system. */ - /* */ -#define FT_CACHE_H <freetype/ftcache.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_CACHE_IMAGE_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the `glyph image' API of the FreeType 2 cache sub-system. */ - /* */ - /* It is used to define a cache for @FT_Glyph elements. You can also */ - /* see the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need */ - /* to store small glyph bitmaps, as it will use less memory. */ - /* */ - /* This macro is deprecated. Simply include @FT_CACHE_H to have all */ - /* glyph image-related cache declarations. */ - /* */ -#define FT_CACHE_IMAGE_H FT_CACHE_H - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_CACHE_SMALL_BITMAPS_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the `small bitmaps' API of the FreeType 2 cache sub-system. */ - /* */ - /* It is used to define a cache for small glyph bitmaps in a */ - /* relatively memory-efficient way. You can also use the API defined */ - /* in @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images, */ - /* including scalable outlines. */ - /* */ - /* This macro is deprecated. Simply include @FT_CACHE_H to have all */ - /* small bitmaps-related cache declarations. */ - /* */ -#define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_CACHE_CHARMAP_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the `charmap' API of the FreeType 2 cache sub-system. */ - /* */ - /* This macro is deprecated. Simply include @FT_CACHE_H to have all */ - /* charmap-based cache declarations. */ - /* */ -#define FT_CACHE_CHARMAP_H FT_CACHE_H - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_MAC_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the Macintosh-specific FreeType 2 API. The latter is used to */ - /* access fonts embedded in resource forks. */ - /* */ - /* This header file must be explicitly included by client */ - /* applications compiled on the Mac (note that the base API still */ - /* works though). */ - /* */ -#define FT_MAC_H <freetype/ftmac.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_MULTIPLE_MASTERS_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the optional multiple-masters management API of FreeType 2. */ - /* */ -#define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_SFNT_NAMES_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the optional FreeType 2 API used to access embedded `name' strings */ - /* in SFNT-based font formats (i.e. TrueType and OpenType). */ - /* */ -#define FT_SFNT_NAMES_H <freetype/ftsnames.h> - - /* */ - -#define FT_TRIGONOMETRY_H <freetype/fttrigon.h> -#define FT_STROKER_H <freetype/ftstroke.h> -#define FT_SYNTHESIS_H <freetype/ftsynth.h> -#define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h> - -#define FT_CACHE_MANAGER_H <freetype/cache/ftcmanag.h> - -#define FT_CACHE_INTERNAL_MRU_H <freetype/cache/ftcmru.h> -#define FT_CACHE_INTERNAL_MANAGER_H <freetype/cache/ftcmanag.h> -#define FT_CACHE_INTERNAL_CACHE_H <freetype/cache/ftccache.h> -#define FT_CACHE_INTERNAL_GLYPH_H <freetype/cache/ftcglyph.h> -#define FT_CACHE_INTERNAL_IMAGE_H <freetype/cache/ftcimage.h> -#define FT_CACHE_INTERNAL_SBITS_H <freetype/cache/ftcsbits.h> - - -#define FT_XFREE86_H <freetype/ftxf86.h> - -#define FT_INCREMENTAL_H <freetype/ftincrem.h> - -#define FT_TRUETYPE_UNPATENTED_H <freetype/ttunpat.h> - - /* now include internal headers definitions from <freetype/internal/...> */ - -#define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h> -#include FT_INTERNAL_INTERNAL_H - - -#endif /* __FT2_BUILD_H__ */ - - -/* END */ diff -pNur xc.orig/lib/font/FreeType/module/ftmodule.h xc/lib/font/FreeType/module/ftmodule.h --- xc.orig/lib/font/FreeType/module/ftmodule.h 2003-11-19 18:35:40.000000000 -0800 +++ xc/lib/font/FreeType/module/ftmodule.h 1969-12-31 16:00:00.000000000 -0800 @@ -1,21 +0,0 @@ -/* $XFree86: xc/lib/font/FreeType/module/ftmodule.h,v 1.1 2003/11/20 02:35:40 dawes Exp $ */ - -FT_USE_MODULE(autohint_module_class) -FT_USE_MODULE(cff_driver_class) -/* FT_USE_MODULE(t1cid_driver_class) */ -FT_USE_MODULE(pcf_driver_class) -FT_USE_MODULE(bdf_driver_class) -FT_USE_MODULE(psaux_module_class) -FT_USE_MODULE(psnames_module_class) -FT_USE_MODULE(pshinter_module_class) -FT_USE_MODULE(ft_raster1_renderer_class) -FT_USE_MODULE(sfnt_module_class) -/* FT_USE_MODULE(ft_smooth_renderer_class) */ -/* FT_USE_MODULE(ft_smooth_lcd_renderer_class) */ -/* FT_USE_MODULE(ft_smooth_lcdv_renderer_class) */ -FT_USE_MODULE(tt_driver_class) -FT_USE_MODULE(t1_driver_class) -/* FT_USE_MODULE(t42_driver_class) */ -/* FT_USE_MODULE(pfr_driver_class) */ -/* FT_USE_MODULE(winfnt_driver_class) */ - diff -pNur xc.orig/lib/font/FreeType/module/ftoption.h xc/lib/font/FreeType/module/ftoption.h --- xc.orig/lib/font/FreeType/module/ftoption.h 2005-03-28 20:00:30.000000000 -0800 +++ xc/lib/font/FreeType/module/ftoption.h 1969-12-31 16:00:00.000000000 -0800 @@ -1,570 +0,0 @@ -/* $XFree86: xc/lib/font/FreeType/module/ftoption.h,v 1.3 2005/03/29 04:00:30 tsi Exp $ */ -/***************************************************************************/ -/* */ -/* ftoption.h */ -/* */ -/* User-selectable configuration macros (specification only). */ -/* */ -/* Copyright 1996-2001, 2002, 2003, 2004 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* Modified for XFree86. */ -/* */ -/* 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. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTOPTION_H__ -#define __FTOPTION_H__ - - -#include <ft2build.h> - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* USER-SELECTABLE CONFIGURATION MACROS */ - /* */ - /* This file contains the default configuration macro definitions for */ - /* a standard build of the FreeType library. There are three ways to */ - /* use this file to build project-specific versions of the library: */ - /* */ - /* - You can modify this file by hand, but this is not recommended in */ - /* cases where you would like to build several versions of the */ - /* library from a single source directory. */ - /* */ - /* - You can put a copy of this file in your build directory, more */ - /* precisely in "$BUILD/freetype/config/ftoption.h", where "$BUILD" */ - /* is the name of a directory that is included _before_ the FreeType */ - /* include path during compilation. */ - /* */ - /* The default FreeType Makefiles and Jamfiles use the build */ - /* directory "builds/<system>" by default, but you can easily change */ - /* that for your own projects. */ - /* */ - /* - Copy the file <ft2build.h> to "$BUILD/ft2build.h" and modify it */ - /* slightly to pre-define the macro FT_CONFIG_OPTIONS_H used to */ - /* locate this file during the build. For example, */ - /* */ - /* #define FT_CONFIG_OPTIONS_H <myftoptions.h> */ - /* #include <freetype/config/ftheader.h> */ - /* */ - /* will use "$BUILD/myftoptions.h" instead of this file for macro */ - /* definitions. */ - /* */ - /* Note also that you can similarly pre-define the macro */ - /* FT_CONFIG_MODULES_H used to locate the file listing of the modules */ - /* that are statically linked to the library at compile time. By */ - /* default, this file is <freetype/config/ftmodule.h>. */ - /* */ - /* We highly recommend using the third method whenever possible. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** G E N E R A L F R E E T Y P E 2 C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Many compilers provide a non-ANSI 64-bit data type that can be used */ - /* by FreeType to speed up some computations. However, this will create */ - /* some problems when compiling the library in strict ANSI mode. */ - /* */ - /* For this reason, the use of 64-bit integers is normally disabled when */ - /* the __STDC__ macro is defined. You can however disable this by */ - /* defining the macro FT_CONFIG_OPTION_FORCE_INT64 here. */ - /* */ - /* For most compilers, this will only create compilation warnings when */ - /* building the library. */ - /* */ - /* ObNote: The compiler-specific 64-bit integers are detected in the */ - /* file "ftconfig.h" either statically or through the */ - /* `configure' script on supported platforms. */ - /* */ -#undef FT_CONFIG_OPTION_FORCE_INT64 - - - /*************************************************************************/ - /* */ - /* LZW-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* 'compress' program. This is mostly used to parse many of the PCF */ - /* files that come with various X11 distributions. The implementation */ - /* uses NetBSD's `zopen' to partially uncompress the file on the fly */ - /* (see src/lzw/ftgzip.c). */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -#define FT_CONFIG_OPTION_USE_LZW - - - /*************************************************************************/ - /* */ - /* Gzip-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* 'gzip' program. This is mostly used to parse many of the PCF files */ - /* that come with XFree86. The implementation uses `zlib' to */ - /* partially uncompress the file on the fly (see src/gzip/ftgzip.c). */ - /* */ - /* Define this macro if you want to enable this `feature'. See also */ - /* the macro FT_CONFIG_OPTION_SYSTEM_ZLIB below. */ - /* */ -#define FT_CONFIG_OPTION_USE_ZLIB - - - /*************************************************************************/ - /* */ - /* ZLib library selection */ - /* */ - /* This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined. */ - /* It allows FreeType's `ftgzip' component to link to the system's */ - /* installation of the ZLib library. This is useful on systems like */ - /* Unix or VMS where it generally is already available. */ - /* */ - /* If you let it undefined, the component will use its own copy */ - /* of the zlib sources instead. These have been modified to be */ - /* included directly within the component and *not* export external */ - /* function names. This allows you to link any program with FreeType */ - /* _and_ ZLib without linking conflicts. */ - /* */ - /* Do not #undef this macro here since the build system might define */ - /* it for certain configurations only. */ - /* */ -/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ - - - /*************************************************************************/ - /* */ - /* DLL export compilation */ - /* */ - /* When compiling FreeType as a DLL, some systems/compilers need a */ - /* special keyword in front OR after the return type of function */ - /* declarations. */ - /* */ - /* Two macros are used within the FreeType source code to define */ - /* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */ - /* */ - /* FT_EXPORT( return_type ) */ - /* */ - /* is used in a function declaration, as in */ - /* */ - /* FT_EXPORT( FT_Error ) */ - /* FT_Init_FreeType( FT_Library* alibrary ); */ - /* */ - /* */ - /* FT_EXPORT_DEF( return_type ) */ - /* */ - /* is used in a function definition, as in */ - /* */ - /* FT_EXPORT_DEF( FT_Error ) */ - /* FT_Init_FreeType( FT_Library* alibrary ) */ - /* { */ - /* ... some code ... */ - /* return FT_Err_Ok; */ - /* } */ - /* */ - /* You can provide your own implementation of FT_EXPORT and */ - /* FT_EXPORT_DEF here if you want. If you leave them undefined, they */ - /* will be later automatically defined as `extern return_type' to */ - /* allow normal compilation. */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ -/* #define FT_EXPORT(x) extern x */ -/* #define FT_EXPORT_DEF(x) x */ - - - /*************************************************************************/ - /* */ - /* Glyph Postscript Names handling */ - /* */ - /* By default, FreeType 2 is compiled with the `PSNames' module. This */ - /* module is in charge of converting a glyph name string into a */ - /* Unicode value, or return a Macintosh standard glyph name for the */ - /* use with the TrueType `post' table. */ - /* */ - /* Undefine this macro if you do not want `PSNames' compiled in your */ - /* build of FreeType. This has the following effects: */ - /* */ - /* - The TrueType driver will provide its own set of glyph names, */ - /* if you build it to support postscript names in the TrueType */ - /* `post' table. */ - /* */ - /* - The Type 1 driver will not be able to synthetize a Unicode */ - /* charmap out of the glyphs found in the fonts. */ - /* */ - /* You would normally undefine this configuration macro when building */ - /* a version of FreeType that doesn't contain a Type 1 or CFF driver. */ - /* */ -#define FT_CONFIG_OPTION_POSTSCRIPT_NAMES - - - /*************************************************************************/ - /* */ - /* Postscript Names to Unicode Values support */ - /* */ - /* By default, FreeType 2 is built with the `PSNames' module compiled */ - /* in. Among other things, the module is used to convert a glyph name */ - /* into a Unicode value. This is especially useful in order to */ - /* synthetize on the fly a Unicode charmap from the CFF/Type 1 driver */ - /* through a big table named the `Adobe Glyph List' (AGL). */ - /* */ - /* Undefine this macro if you do not want the Adobe Glyph List */ - /* compiled in your `PSNames' module. The Type 1 driver will not be */ - /* able to synthetize a Unicode charmap out of the glyphs found in the */ - /* fonts. */ - /* */ -#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST - - - /*************************************************************************/ - /* */ - /* Support for Mac fonts */ - /* */ - /* Define this macro if you want support for outline fonts in Mac */ - /* format (mac dfont, mac resource, macbinary containing a mac */ - /* resource) on non-Mac platforms. */ - /* */ - /* Note that the `FOND' resource isn't checked. */ - /* */ -#define FT_CONFIG_OPTION_MAC_FONTS - - - /*************************************************************************/ - /* */ - /* Guessing methods to access embedded resource forks */ - /* */ - /* Enable extra Mac fonts support on non-Mac platforms (e.g. */ - /* GNU/Linux). */ - /* */ - /* Resource forks which include fonts data are stored sometimes in */ - /* locations which users or developers don't expected. In some cases, */ - /* resource forks start with some offset from the head of a file. In */ - /* other cases, the actual resource fork is stored in file different */ - /* from what the user specifies. If this option is activated, */ - /* FreeType tries to guess whether such offsets or different file */ - /* names must be used. */ - /* */ - /* Note that normal, direct access of resource forks is controlled via */ - /* the FT_CONFIG_OPTION_MAC_FONTS option. */ - /* */ -#ifdef FT_CONFIG_OPTION_MAC_FONTS -#define FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK -#endif - - - /*************************************************************************/ - /* */ - /* Allow the use of FT_Incremental_Interface to load typefaces that */ - /* contain no glyph data, but supply it via a callback function. */ - /* This allows FreeType to be used with the PostScript language, using */ - /* the GhostScript interpreter. */ - /* */ -/* #define FT_CONFIG_OPTION_INCREMENTAL */ - - - /*************************************************************************/ - /* */ - /* The size in bytes of the render pool used by the scan-line converter */ - /* to do all of its work. */ - /* */ - /* This must be greater than 4KByte. */ - /* */ -#define FT_RENDER_POOL_SIZE 16384L - - - /*************************************************************************/ - /* */ - /* FT_MAX_MODULES */ - /* */ - /* The maximum number of modules that can be registered in a single */ - /* FreeType library object. 32 is the default. */ - /* */ -#define FT_MAX_MODULES 32 - - - /*************************************************************************/ - /* */ - /* Debug level */ - /* */ - /* FreeType can be compiled in debug or trace mode. In debug mode, */ - /* errors are reported through the `ftdebug' component. In trace */ - /* mode, additional messages are sent to the standard output during */ - /* execution. */ - /* */ - /* Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode. */ - /* Define FT_DEBUG_LEVEL_TRACE to build it in trace mode. */ - /* */ - /* Don't define any of these macros to compile in `release' mode! */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ -/* #define FT_DEBUG_LEVEL_ERROR */ -/* #define FT_DEBUG_LEVEL_TRACE */ - - - /*************************************************************************/ - /* */ - /* Memory Debugging */ - /* */ - /* FreeType now comes with an integrated memory debugger that is */ - /* capable of detecting simple errors like memory leaks or double */ - /* deletes. To compile it within your build of the library, you */ - /* should define FT_DEBUG_MEMORY here. */ - /* */ - /* Note that the memory debugger is only activated at runtime when */ - /* when the _environment_ variable "FT2_DEBUG_MEMORY" is defined also! */ - /* */ - /* Do not #undef this macro here since the build system might define */ - /* it for certain configurations only. */ - /* */ -/* #define FT_DEBUG_MEMORY */ - - - /*************************************************************************/ - /* */ - /* Module errors */ - /* */ - /* If this macro is set (which is _not_ the default), the higher byte */ - /* of an error code gives the module in which the error has occurred, */ - /* while the lower byte is the real error code. */ - /* */ - /* Setting this macro makes sense for debugging purposes only, since */ - /* it would break source compatibility of certain programs that use */ - /* FreeType 2. */ - /* */ - /* More details can be found in the files ftmoderr.h and fterrors.h. */ - /* */ -#undef FT_CONFIG_OPTION_USE_MODULE_ERRORS - - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** S F N T D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support */ - /* embedded bitmaps in all formats using the SFNT module (namely */ - /* TrueType & OpenType). */ - /* */ -#define TT_CONFIG_OPTION_EMBEDDED_BITMAPS - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to */ - /* load and enumerate the glyph Postscript names in a TrueType or */ - /* OpenType file. */ - /* */ - /* Note that when you do not compile the `PSNames' module by undefining */ - /* the above FT_CONFIG_OPTION_POSTSCRIPT_NAMES, the `sfnt' module will */ - /* contain additional code used to read the PS Names table from a font. */ - /* */ - /* (By default, the module uses `PSNames' to extract glyph names.) */ - /* */ -#define TT_CONFIG_OPTION_POSTSCRIPT_NAMES - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_SFNT_NAMES if your applications need to */ - /* access the internal name table in a SFNT-based format like TrueType */ - /* or OpenType. The name table contains various strings used to */ - /* describe the font, like family name, copyright, version, etc. It */ - /* does not contain any glyph name though. */ - /* */ - /* Accessing SFNT names is done through the functions declared in */ - /* `freetype/ftnames.h'. */ - /* */ -#define TT_CONFIG_OPTION_SFNT_NAMES - - - /*************************************************************************/ - /* */ - /* TrueType CMap support */ - /* */ - /* Here you can fine-tune which TrueType CMap table format shall be */ - /* supported. */ -#define TT_CONFIG_CMAP_FORMAT_0 -#define TT_CONFIG_CMAP_FORMAT_2 -#define TT_CONFIG_CMAP_FORMAT_4 -#define TT_CONFIG_CMAP_FORMAT_6 -#define TT_CONFIG_CMAP_FORMAT_8 -#define TT_CONFIG_CMAP_FORMAT_10 -#define TT_CONFIG_CMAP_FORMAT_12 - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** T R U E T Y P E D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile */ - /* a bytecode interpreter in the TrueType driver. Note that there are */ - /* important patent issues related to the use of the interpreter. */ - /* */ - /* By undefining this, you will only compile the code necessary to load */ - /* TrueType glyphs without hinting. */ - /* */ - /* Do not #undef this macro here, since the build system might */ - /* define it for certain configurations only. */ - /* */ -/* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_UNPATENTED_HINTING (in addition to */ - /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER) to compile the unpatented */ - /* work-around hinting system. Note that for the moment, the algorithm */ - /* is only used when selected at runtime through the parameter tag */ - /* FT_PARAM_TAG_UNPATENTED_HINTING; or when the debug hook */ - /* FT_DEBUG_HOOK_UNPATENTED_HINTING is globally actived */ - /* */ -#define TT_CONFIG_OPTION_UNPATENTED_HINTING - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_INTERPRETER_SWITCH to compile the TrueType */ - /* bytecode interpreter with a huge switch statement, rather than a call */ - /* table. This results in smaller and faster code for a number of */ - /* architectures. */ - /* */ - /* Note however that on some compiler/processor combinations, undefining */ - /* this macro will generate faster, though larger, code. */ - /* */ -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the */ - /* TrueType glyph loader to use Apple's definition of how to handle */ - /* component offsets in composite glyphs. */ - /* */ - /* Apple and MS disagree on the default behavior of component offsets */ - /* in composites. Apple says that they should be scaled by the scale */ - /* factors in the transformation matrix (roughly, it's more complex) */ - /* while MS says they should not. OpenType defines two bits in the */ - /* composite flags array which can be used to disambiguate, but old */ - /* fonts will not have them. */ - /* */ - /* http://partners.adobe.com/asn/developer/opentype/glyf.html */ - /* http://fonts.apple.com/TTRefMan/RM06/Chap6glyf.html */ - /* */ -#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** T Y P E 1 D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* T1_MAX_DICT_DEPTH is the maximal depth of nest dictionaries and */ - /* arrays in the Type 1 stream (see t1load.c). A minimum of 4 is */ - /* required. */ - /* */ -#define T1_MAX_DICT_DEPTH 5 - - - /*************************************************************************/ - /* */ - /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */ - /* calls during glyph loading. */ - /* */ -#define T1_MAX_SUBRS_CALLS 16 - - - /*************************************************************************/ - /* */ - /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A */ - /* minimum of 16 is required. */ - /* */ - /* The Chinese font MingTiEG-Medium (CNS 11643 character set) needs 256. */ - /* */ -#define T1_MAX_CHARSTRINGS_OPERANDS 256 - - - /*************************************************************************/ - /* */ - /* Define this configuration macro if you want to prevent the */ - /* compilation of `t1afm', which is in charge of reading Type 1 AFM */ - /* files into an existing face. Note that if set, the T1 driver will be */ - /* unable to produce kerning distances. */ - /* */ -#define T1_CONFIG_OPTION_NO_AFM - - - /*************************************************************************/ - /* */ - /* Define this configuration macro if you want to prevent the */ - /* compilation of the Multiple Masters font support in the Type 1 */ - /* driver. */ - /* */ -#define T1_CONFIG_OPTION_NO_MM_SUPPORT - - /* */ - -/* - * The FT_CONFIG_OPTION_CHESTER_XXXX macros are used to toggle some recent - * improvements to the auto-hinter contributed by David Chester. They will - * most likely disappear completely in the next release. For now, you - * should always keep them defined. - * - */ -#define FT_CONFIG_OPTION_CHESTER_HINTS - -#ifdef FT_CONFIG_OPTION_CHESTER_HINTS - -#define FT_CONFIG_CHESTER_SMALL_F -#define FT_CONFIG_CHESTER_ASCENDER -#define FT_CONFIG_CHESTER_SERIF -#define FT_CONFIG_CHESTER_STEM -#define FT_CONFIG_CHESTER_BLUE_SCALE - -#endif /* FT_CONFIG_OPTION_CHESTER_HINTS */ - -FT_END_HEADER - - -#endif /* __FTOPTION_H__ */ - - -/* END */ diff -pNur xc.orig/lib/font/FreeType/module/ftstdlib.h xc/lib/font/FreeType/module/ftstdlib.h --- xc.orig/lib/font/FreeType/module/ftstdlib.h 2005-10-14 08:16:01.000000000 -0700 +++ xc/lib/font/FreeType/module/ftstdlib.h 1969-12-31 16:00:00.000000000 -0800 @@ -1,207 +0,0 @@ -/* ftstdlib.h -- modified for XFree86. */ -/* $XFree86: xc/lib/font/FreeType/module/ftstdlib.h,v 1.4 2005/10/14 15:16:01 tsi Exp $ */ - -/***************************************************************************/ -/* */ -/* ftstdlib.h */ -/* */ -/* ANSI-specific library and header configuration file (specification */ -/* only). */ -/* */ -/* Copyright 2002, 2003, 2004 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 FreeType source code. */ - /* */ - /* Load a file which defines __FTSTDLIB_H__ before this one to override */ - /* it. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTSTDLIB_H__ -#define __FTSTDLIB_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.