Package: gs-gpl Version: 8.50-1 Severity: important
I am resubmitting my earlier patch with adjustments for the 8.50-1 package, see also http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=352133 Three header files (ttfoutl.h, tttype.h and tttypes.h) implicitly assume that 'long' is 32 bit, causing TT fonts to be rendered illegibly small when it is not. Arne --- gs-gpl-8.50-orig/src/ttfoutl.h 2004-10-21 17:05:13.000000000 +0200 +++ gs-gpl-8.50/src/ttfoutl.h 2006-03-29 23:21:34.000000000 +0200 @@ -20,6 +20,8 @@ #ifndef incl_ttfoutl #define incl_ttfoutl +#include "stdint_.h" + #ifndef TFace_defined #define TFace_defined typedef struct _TFace TFace; @@ -52,7 +54,7 @@ typedef struct { double x, y; } FloatPoint; -typedef signed long F26Dot6; +typedef int32_t F26Dot6; typedef struct { F26Dot6 x; --- gs-gpl-8.50-orig/src/tttype.h 2003-11-21 21:01:22.000000000 +0100 +++ gs-gpl-8.50/src/tttype.h 2006-03-29 23:21:34.000000000 +0200 @@ -49,6 +49,8 @@ #ifndef FREETYPE_H #define FREETYPE_H +#include "stdint_.h" + #ifdef __cplusplus extern "C" { #endif @@ -62,15 +64,15 @@ /* */ /*******************************************************************/ - typedef signed long TT_Fixed; /* Signed Fixed 16.16 Float */ + typedef int32_t TT_Fixed; /* Signed Fixed 16.16 Float */ typedef signed short TT_FWord; /* Distance in FUnits */ typedef unsigned short TT_UFWord; /* Unsigned distance */ typedef signed short TT_Short; typedef unsigned short TT_UShort; - typedef signed long TT_Long; - typedef unsigned long TT_ULong; + typedef int32_t TT_Long; + typedef uint32_t TT_ULong; typedef signed short TT_F2Dot14; /* Signed fixed float 2.14 used for */ /* unary vectors, with layout: */ @@ -85,10 +87,10 @@ /* added. */ /* */ - typedef signed long TT_F26Dot6; /* 26.6 fixed float, used for */ + typedef int32_t TT_F26Dot6; /* 26.6 fixed float, used for */ /* glyph points pixel coordinates. */ - typedef signed long TT_Pos; /* point position, expressed either */ + typedef int32_t TT_Pos; /* point position, expressed either */ /* in fractional pixels or notional */ /* units, depending on context. For */ /* example, glyph coordinates */ --- gs-gpl-8.50-orig/src/tttypes.h 2003-10-01 15:44:56.000000000 +0200 +++ gs-gpl-8.50/src/tttypes.h 2006-03-29 23:21:34.000000000 +0200 @@ -65,19 +65,7 @@ typedef unsigned long ULong; typedef signed long Long; -#if SIZEOF_INT == 4 - - typedef long int Fixed; /* signed fixed 16.16 float */ - -#elif SIZEOF_LONG == 4 - - typedef long Fixed; /* signed fixed 16.16 float */ - -#else - -#error "no 32bit type found" - -#endif + typedef int32_t Fixed; /* signed fixed 16.16 float */ typedef int Int; @@ -117,7 +105,7 @@ #define NULL (void*)0 #endif - typedef long* PStorage; + typedef int32_t* PStorage; /* Rounding mode constants */ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]