Skip to Content.
Sympa Menu

sm-commit - [SM-Commit] GIT changes to devel grimoire by George Sherwood (fb19e1f9eb9197008901c834b1edaa7c69555409)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: George Sherwood <scm AT mail.sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org
  • Subject: [SM-Commit] GIT changes to devel grimoire by George Sherwood (fb19e1f9eb9197008901c834b1edaa7c69555409)
  • Date: Thu, 16 Nov 2006 12:39:16 -0600

GIT changes to devel grimoire by George Sherwood <chat AT sourcemage.org>:

x11-libs/xfree86/CAN-2005-2495.patch | 169 -------------
x11-libs/xfree86/DETAILS | 18 -
x11-libs/xfree86/HISTORY | 15 +
x11-libs/xfree86/INSTALL | 4
x11-libs/xfree86/PRE_BUILD | 9
x11-libs/xfree86/ftfuncs.h.patch | 10
x11-libs/xfree86/ftfuncs.patch | 241
+++++++++++++++++++
x11-libs/xfree86/ftsystem.patch | 13 +
x11-libs/xfree86/util.c.patch | 10
x11-libs/xfree86/xfree86-xft-releasefile-crash.patch | 11
10 files changed, 305 insertions(+), 195 deletions(-)

New commits:
commit fb19e1f9eb9197008901c834b1edaa7c69555409
Author: George Sherwood <chat AT sourcemage.org>
Commit: George Sherwood <chat AT sourcemage.org>

xfree86: Updated to verison in test and updated to 4.6.0. Added patches
for freetype2 2.2.1

diff --git a/x11-libs/xfree86/CAN-2005-2495.patch
b/x11-libs/xfree86/CAN-2005-2495.patch
deleted file mode 100644
index e6ac39d..0000000
--- a/x11-libs/xfree86/CAN-2005-2495.patch
+++ /dev/null
@@ -1,169 +0,0 @@
---- programs/Xserver/afb/afbpixmap.c.orig Tue Jun 3 16:11:07 1997
-+++ programs/Xserver/afb/afbpixmap.c Tue Sep 6 16:26:35 2005
-@@ -73,10 +73,14 @@ afbCreatePixmap(pScreen, width, height,
- int depth;
- {
- PixmapPtr pPixmap;
-- int datasize;
-- int paddedWidth;
-+ size_t datasize;
-+ size_t paddedWidth;
-
- paddedWidth = BitmapBytePad(width);
-+
-+ if (paddedWidth > 32767 || height > 32767)
-+ return NullPixmap;
-+
- datasize = height * paddedWidth * depth;
- pPixmap = AllocatePixmap(pScreen, datasize);
- if (!pPixmap)
---- programs/Xserver/cfb/cfbpixmap.c.orig Fri Dec 14 20:59:23 2001
-+++ programs/Xserver/cfb/cfbpixmap.c Tue Sep 6 16:26:35 2005
-@@ -70,10 +70,13 @@ cfbCreatePixmap (pScreen, width, height,
- int depth;
- {
- PixmapPtr pPixmap;
-- int datasize;
-- int paddedWidth;
-+ size_t datasize;
-+ size_t paddedWidth;
-
- paddedWidth = PixmapBytePad(width, depth);
-+
-+ if (paddedWidth > 32767 || height > 32767)
-+ return NullPixmap;
- datasize = height * paddedWidth;
- pPixmap = AllocatePixmap(pScreen, datasize);
- if (!pPixmap)
---- programs/Xserver/dix/dispatch.c.orig Wed Jun 23 21:40:15 2004
-+++ programs/Xserver/dix/dispatch.c Tue Sep 6 16:26:35 2005
-@@ -1483,6 +1483,23 @@ ProcCreatePixmap(client)
- client->errorValue = 0;
- return BadValue;
- }
-+ if (stuff->width > 32767 || stuff->height > 32767)
-+ {
-+ /* It is allowed to try and allocate a pixmap which is larger than
-+ * 32767 in either dimension. However, all of the framebuffer code
-+ * is buggy and does not reliably draw to such big pixmaps, basically
-+ * because the Region data structure operates with signed shorts
-+ * for the rectangles in it.
-+ *
-+ * Furthermore, several places in the X server computes the
-+ * size in bytes of the pixmap and tries to store it in an
-+ * integer. This integer can overflow and cause the allocated size
-+ * to be much smaller.
-+ *
-+ * So, such big pixmaps are rejected here with a BadAlloc
-+ */
-+ return BadAlloc;
-+ }
- if (stuff->depth != 1)
- {
- pDepth = pDraw->pScreen->allowedDepths;
---- programs/Xserver/fb/fbpixmap.c.orig Mon Sep 16 20:05:34 2002
-+++ programs/Xserver/fb/fbpixmap.c Tue Sep 6 16:26:35 2005
-@@ -32,12 +32,14 @@ PixmapPtr
- fbCreatePixmapBpp (ScreenPtr pScreen, int width, int height, int depth, int
bpp)
- {
- PixmapPtr pPixmap;
-- int datasize;
-- int paddedWidth;
-+ size_t datasize;
-+ size_t paddedWidth;
- int adjust;
- int base;
-
- paddedWidth = ((width * bpp + FB_MASK) >> FB_SHIFT) * sizeof (FbBits);
-+ if (paddedWidth > 32767 || height > 32767)
-+ return NullPixmap;
- datasize = height * paddedWidth;
- #ifdef PIXPRIV
- base = pScreen->totalPixmapSize;
---- programs/Xserver/hw/xfree86/xaa/xaaInit.c.orig Thu Jul 19 20:50:16
2001
-+++ programs/Xserver/hw/xfree86/xaa/xaaInit.c Tue Sep 6 16:26:35 2005
-@@ -480,6 +480,9 @@ XAACreatePixmap(ScreenPtr pScreen, int w
- XAAPixmapPtr pPriv;
- PixmapPtr pPix = NULL;
- int size = w * h;
-+
-+ if (w > 32767 || h > 32767)
-+ return NullPixmap;
-
- if (!infoRec->offscreenDepthsInitialized)
- XAAInitializeOffscreenDepths (pScreen);
---- programs/Xserver/hw/xfree86/xf4bpp/ppcPixmap.c.orig Thu Apr 27
18:26:49 2000
-+++ programs/Xserver/hw/xfree86/xf4bpp/ppcPixmap.c Tue Sep 6 16:26:35
2005
-@@ -85,14 +85,18 @@ xf4bppCreatePixmap( pScreen, width, heig
- int depth ;
- {
- register PixmapPtr pPixmap = (PixmapPtr)NULL;
-- int size ;
-+ size_t size ;
-
- TRACE(("xf4bppCreatePixmap(pScreen=0x%x, width=%d, height=%d,
depth=%d)\n", pScreen, width, height, depth)) ;
-
- if ( depth > 8 )
- return (PixmapPtr) NULL ;
-
-+ if (width > 32767 || height > 32767)
-+ return (PixmapPtr) NULL ;
-+
- size = PixmapBytePad(width, depth);
-+
- pPixmap = AllocatePixmap (pScreen, (height * size));
-
- if ( !pPixmap )
---- programs/Xserver/ilbm/ilbmpixmap.c.orig Sun Aug 18 03:54:01 1996
-+++ programs/Xserver/ilbm/ilbmpixmap.c Tue Sep 6 16:26:35 2005
-@@ -75,10 +75,12 @@ ilbmCreatePixmap(pScreen, width, height,
- int depth;
- {
- PixmapPtr pPixmap;
-- int datasize;
-- int paddedWidth;
-+ size_t datasize;
-+ size_t paddedWidth;
-
- paddedWidth = BitmapBytePad(width);
-+ if (paddedWidth > 32767 || height > 32767)
-+ return NullPixmap;
- datasize = height * paddedWidth * depth;
- pPixmap = AllocatePixmap(pScreen, datasize);
- if (!pPixmap)
---- programs/Xserver/iplan2p4/iplpixmap.c.orig Mon Dec 17 21:00:46 2001
-+++ programs/Xserver/iplan2p4/iplpixmap.c Tue Sep 6 16:26:35 2005
-@@ -74,12 +74,14 @@ iplCreatePixmap (pScreen, width, height,
- int depth;
- {
- PixmapPtr pPixmap;
-- int datasize;
-- int paddedWidth;
-+ size_t datasize;
-+ size_t paddedWidth;
- int ipad=INTER_PLANES*2 - 1;
-
- paddedWidth = PixmapBytePad(width, depth);
- paddedWidth = (paddedWidth + ipad) & ~ipad;
-+ if (paddedWidth > 32767 || height > 32767)
-+ return NullPixmap;
- datasize = height * paddedWidth;
- pPixmap = AllocatePixmap(pScreen, datasize);
- if (!pPixmap)
---- programs/Xserver/mfb/mfbpixmap.c.orig Fri Dec 14 21:00:10 2001
-+++ programs/Xserver/mfb/mfbpixmap.c Tue Sep 6 16:26:35 2005
-@@ -72,10 +72,12 @@ mfbCreatePixmap (pScreen, width, height,
- int depth;
- {
- PixmapPtr pPixmap;
-- int datasize;
-- int paddedWidth;
-+ size_t datasize;
-+ size_t paddedWidth;
-
- if (depth != 1)
-+ return NullPixmap;
-+ if (width > 32767 || height > 32767)
- return NullPixmap;
- paddedWidth = BitmapBytePad(width);
- datasize = height * paddedWidth;
diff --git a/x11-libs/xfree86/DETAILS b/x11-libs/xfree86/DETAILS
index febf93d..b293868 100755
--- a/x11-libs/xfree86/DETAILS
+++ b/x11-libs/xfree86/DETAILS
@@ -1,5 +1,5 @@
SPELL=xfree86
- VERSION=4.5.0
+ VERSION=4.6.0
SOURCE=XFree86-$VERSION-src-1.tgz
SOURCE2=XFree86-$VERSION-src-2.tgz
SOURCE3=XFree86-$VERSION-src-3.tgz
@@ -15,18 +15,16 @@ SOURCE_DIRECTORY=$BUILD_DIRECTORY/xc
SOURCE5_URL[0]=$XFREE86_URL/$VERSION/source/$SOURCE5
SOURCE6_URL[0]=$XFREE86_URL/$VERSION/source/$SOURCE6
SOURCE7_URL[0]=$XFREE86_URL/$VERSION/source/$SOURCE7
-
SOURCE_HASH=sha512:464502e5ee0e4f9b3a15df21b324431e159e880d965e55838700421d39cac31f670aba043acc2773b78ee2fefce9e7fddab46c0e4010da70fd97a652e14f49aa
-
SOURCE2_HASH=sha512:2ee4febbe6b7b0047c7deedf353875375dec699f8878b7d48ced1bfe82c8c01de97f15f73c9f6f70bde334bf6c239c9a8eea4648eedb8fcd846d615c9f855cbe
-
SOURCE3_HASH=sha512:d81c3edcb89e679f250757010639403c743a5b7ae549cd9c6677974a9f2a39b274bddc6271c006d00568531afb3de761f93bd1497040394037e79f0121f28b8c
-
SOURCE4_HASH=sha512:6b2eac53305640130ae8cfe60546437da98616315d0017f4fc1daf6b677b8714e54b94d7e1d7d597aeb0fd89e1759d8ddb7bf6d647310f4da620071c0392a267
-
SOURCE5_HASH=sha512:8bfc6d58d76583ece1b2ccd34a775825505665b1791cd33d02a76fd069c62458f1f2fc12520076e044f57b44f5a4860728b1e9cb16ffdd857a8af7e84843080c
-
SOURCE6_HASH=sha512:74550dc0339cb3b8cb6167c273acf09dc662106a0afb0213187a2e478e548b09468018c4d3e7bac116ca1159f16932d2addd241378b1495fec735f88b9148ff5
-
SOURCE7_HASH=sha512:c9485e22f529d8db7a462c44f271cfc90d766924522c4171e936f5f03ac06ab78a81f018025e7f00b8e11de85a6c869de7b0ed9e4e559da8c2f0c61adf9069a3
+
SOURCE_HASH=sha512:59a41c8bfbb72950c5af42d8f2ac9bfe609d87f94e78b494c14d95fef963550a22fc30bdaff51841a358508f9f745bc75e3b8e9b3ae03c985677914c436ef03d
+
SOURCE2_HASH=sha512:a09eb878b7da2be34d98fc1610e5a9174a02027f4de9471f2e78ac0e6671b98ab583b1fadb70fd919551b331baee75a8467a05214c60bed8bdf6f58f62d5a7c5
+
SOURCE3_HASH=sha512:13010a6eb95b9397d6bc899acb8b077130d30695ef8bc742f8637f50ee2feff3faa88e5c78922de38a8cda571c8fa4bfc64a835c96d09885780c99977ea1398b
+
SOURCE4_HASH=sha512:18a4b999c75945f640110ef66ee27bef46de841a48682c566c6796d0416e7abf0319f2673dabd19ddc7584960e2333a350b3efdcf27b45399b47efccddb048dd
+
SOURCE5_HASH=sha512:64c78eb8866203d6005bf6b91a765b19c8d6087497a41dfcbab514f958b47b0d6b368e8d35a5f031208f9c09d6a597b6ab41d30e70b5217ece0e388db46d9e79
+
SOURCE6_HASH=sha512:496f1fc95c9f24137e2dad6f57b5ced289b90cd58f638d12fa6cb036a6e07d21daee60d71dbc656583e33dadc7da43dba0c70a73d217b9a6cc0bb66e7a6d3b0f
+
SOURCE7_HASH=sha512:8d1f69832c24f602045901ed1f1b55b0df1bb8b9fcd16c41e298f6d9bf6638b659697a6eae6eb58a9db25d2b47daae8f49c15ee5d55fb0093d87f03b453adbe6
WEB_SITE=http://www.xfree86.org/
ENTERED=20010922
- UPDATED=20050920
LICENSE[0]=XCL
- BUILD_API=2
KEYWORDS="x11 libs"
SHORT="Stable free implementation of the X Window System"
cat << EOF
diff --git a/x11-libs/xfree86/HISTORY b/x11-libs/xfree86/HISTORY
index 0caaa99..632433b 100644
--- a/x11-libs/xfree86/HISTORY
+++ b/x11-libs/xfree86/HISTORY
@@ -1,3 +1,18 @@
+2006-11-16 George Sherwood <george AT beernabeer.com>
+ * DETAILS: Updated to version 4.6.0. Removed UPDATED.
+ * PRE_BUILD: Removed integrated patches. Added patches for
+ freetype2. 2.2.1.
+ * ftfuncs.patch, ftfuncs.h.patch, ftsytem.patch, util.c.patch:
+ Added patches for freetype2 2.2.1
+ * CAN-2005-2495.patch: Removed.
+ * xfree86-xft-releasefile-crash.patch: Removed.
+
+2006-10-26 Jaka Kranjc <lynxlynxlynx AT sourcemage.org>
+ * INSTALL: use TRACK_ROOT when linking #9163
+
+2006-06-28 Eric Sandall <eric AT sandall.us>
+ * DETAILS: Removed BUILD_API=2, set grimoire-wide
+
2006-05-26 Andra?? "ruskie" Levstik <ruskie AT mages.ath.cx>
* PROVIDES: added X11-UTILS and removed extra "provides"

diff --git a/x11-libs/xfree86/INSTALL b/x11-libs/xfree86/INSTALL
index eb1bf5b..045631a 100755
--- a/x11-libs/xfree86/INSTALL
+++ b/x11-libs/xfree86/INSTALL
@@ -13,7 +13,7 @@ install_drm() {
# the following is needed for pkgconfig to find the .pc files
#
mkdir -p /usr/X11R6/lib &&
-ln -sf /usr/lib/pkgconfig /usr/X11R6/lib &&
+ln -sf $TRACK_ROOT/usr/lib/pkgconfig /usr/X11R6/lib &&
make install &&
make install.man &&
install_drm &&
@@ -27,7 +27,7 @@ if [ ! -e /etc/s
fi &&

if [ ! -e /usr/bin/X11 ]; then
- ln -sf /usr/X11R6/bin /usr/bin/X11
+ ln -sf $TRACK_ROOT/usr/X11R6/bin /usr/bin/X11
fi &&

if [ ! -e /usr/X11 ]; then
diff --git a/x11-libs/xfree86/PRE_BUILD b/x11-libs/xfree86/PRE_BUILD
index d14d9e6..3fedc10 100755
--- a/x11-libs/xfree86/PRE_BUILD
+++ b/x11-libs/xfree86/PRE_BUILD
@@ -7,6 +7,9 @@ unpack_file 5 &&
unpack_file 6 &&
unpack_file 7 &&

-mk_source_dir $SOURCE_DIRECTORY.bld &&
-patch -d xc -p0 < $SCRIPT_DIRECTORY/xfree86-xft-releasefile-crash.patch &&
-patch -d xc -p0 < $SCRIPT_DIRECTORY/CAN-2005-2495.patch
+mk_source_dir $SOURCE_DIRECTORY.bld &&
+cd $SOURCE_DIRECTORY &&
+patch -p0 < $SCRIPT_DIRECTORY/ftfuncs.patch &&
+patch -p0 < $SCRIPT_DIRECTORY/ftfuncs.h.patch &&
+patch -p0 < $SCRIPT_DIRECTORY/ftsystem.patch &&
+patch -p0 < $SCRIPT_DIRECTORY/util.c.patch
diff --git a/x11-libs/xfree86/ftfuncs.h.patch
b/x11-libs/xfree86/ftfuncs.h.patch
new file mode 100644
index 0000000..cd0fa05
--- /dev/null
+++ b/x11-libs/xfree86/ftfuncs.h.patch
@@ -0,0 +1,10 @@
+--- lib/font/FreeType/ftfuncs.h.orig 2006-11-16 19:24:26.000000000 +0400
++++ lib/font/FreeType/ftfuncs.h 2006-11-16 19:25:10.000000000 +0400
+@@ -46,6 +46,7 @@
+ typedef struct _FTFace {
+ char *filename;
+ FT_Face face;
++ FT_UInt num_hmetrics;
+ int bitmap;
+ struct _FTInstance *instances;
+ struct _FTInstance *active_instance;
diff --git a/x11-libs/xfree86/ftfuncs.patch b/x11-libs/xfree86/ftfuncs.patch
new file mode 100644
index 0000000..0025d1e
--- /dev/null
+++ b/x11-libs/xfree86/ftfuncs.patch
@@ -0,0 +1,241 @@
+--- lib/font/FreeType/ftfuncs.c.orig 2006-11-14 22:06:39.000000000 +0400
++++ lib/font/FreeType/ftfuncs.c 2006-11-15 06:39:43.000000000 +0400
+@@ -50,10 +50,7 @@
+ #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.
+@@ -118,6 +115,45 @@
+ "CHARSET_ENCODING",
+ };
+
++/* 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)))
++
++
++#if 0
++static FT_ULong
++sfnt_get_ulong( FT_Face face,
++ FT_ULong table_tag,
++ FT_ULong table_offset )
++{
++ FT_Byte buff[4];
++ FT_ULong len = sizeof(buff);
++ FT_UShort result = 0;
++
++ if ( !FT_Load_Sfnt_Table( face, table_tag, table_offset, buff, &len );
++ result = ((FT_ULong)buff[0] << 24) | ((FT_ULong)buff[1] << 16) |
++ ((FT_ULong)buff[2] << 8) | (FT_ULong)buff[3];
++
++ return result;
++}
++#endif
++
++
++
+
+ static int ftypeInitP = 0; /* is the engine initialised? */
+ static FT_Library ftypeLibrary;
+@@ -207,6 +243,10 @@
+ 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,6 +498,29 @@
+ }
+
+ if( FT_IS_SFNT( face->face ) ) {
++#if 1
++ FT_F26Dot6 tt_char_width, tt_char_height, tt_dim_x, tt_dim_y;
++ FT_UInt nn;
++
++ instance->strike_index=0xFFFFU;
++
++ tt_char_width = (int)(trans->scale*(1<<6) + 0.5);
++ tt_char_height = (int)(trans->scale*(1<<6) + 0.5);
++
++ 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;
++
++ for ( nn = 0; nn < face->face->num_fixed_sizes; nn++ )
++ {
++ FT_Bitmap_Size* sz = &face->face->available_sizes[nn];
++
++ if ( tt_dim_x == sz->x_ppem && tt_dim_y == sz->y_ppem )
++ {
++ instance->strike_index = nn;
++ break;
++ }
++ }
++#else
+ /* See Set_Char_Sizes() in ttdriver.c */
+ FT_Error err;
+ TT_Face tt_face;
+@@ -482,6 +545,7 @@
+ 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;
++#endif
+ }
+
+ /* maintain a linked list of instances */
+@@ -799,31 +863,35 @@
+ * 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;
+
+- if ( k == 0 ) {
+- *bearing = *advance = 0;
+- return;
++ if ( count == 0 )
++ {
++ *advance = 0;
++ *bearing = 0;
+ }
+-
+- if ( idx < (FT_UInt)k ) {
+- longs_m = (TT_LongMetrics )header->long_metrics + idx;
+- *bearing = longs_m->bearing;
+- *advance = longs_m->advance;
++ else if ( idx < count )
++ {
++ FT_ULong offset = idx*4;
++ *advance = sfnt_get_ushort( face, TTAG_hmtx, offset );
++ *bearing = sfnt_get_short ( face, TTAG_hmtx, offset+2 );
+ }
+- else {
+- *bearing = ((TT_ShortMetrics*)header->short_metrics)[idx - k];
+- *advance = ((TT_LongMetrics )header->long_metrics)[k - 1].advance;
++ else
++ {
++ *advance = sfnt_get_ushort( face, TTAG_hmtx, (count-1)*4 );
++ *bearing = sfnt_get_short ( face, TTAG_hmtx, (count+idx)*2 );
+ }
+ }
+
+@@ -831,6 +899,7 @@
+ 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,14 +907,13 @@
+ 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,
++ tt_get_metrics( face, num_hmetrics, index,
+ &leftBearing, &advance);
+
+ #if 0
+@@ -905,6 +973,27 @@
+ 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 )
+ {
++#if 1
++ if ( strike_index != 0xFFFFU && ft_face->available_sizes != 0)
++ {
++ 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;
++#elif (FREETYPE_VERSION >= 2001008)
+ SFNT_Service sfnt;
+ TT_Face face;
+ FT_Error error;
+@@ -968,6 +1057,7 @@
+
+ Exit:
+ return error;
++#endif
+ }
+
+ int
+@@ -1022,7 +1112,8 @@
+ }
+ if( bitmap_metrics == NULL ) {
+ if ( instance->ttcap.flags & TTCAP_IS_VERY_LAZY ) {
+- if( ft_get_very_lazy_bbox( idx, face->face,
instance->size,
++ 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,
+@@ -1196,7 +1287,8 @@
+ if( (instance->ttcap.flags & TTCAP_MONO_CENTER) && hasMetrics ) {
+ if( is_outline == 1 ){
+ if( correct ){
+- if( ft_get_very_lazy_bbox( idx, face->face, instance->size,
++ 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 --git a/x11-libs/xfree86/ftsystem.patch b/x11-libs/xfree86/ftsystem.patch
new file mode 100644
index 0000000..f5b625e
--- /dev/null
+++ b/x11-libs/xfree86/ftsystem.patch
@@ -0,0 +1,13 @@
+--- lib/font/FreeType/ftsystem.c.orig 2006-11-16 19:17:34.000000000 +0400
++++ lib/font/FreeType/ftsystem.c 2006-11-16 19:20:53.000000000 +0400
+@@ -32,7 +32,9 @@
+
+ #include <ft2build.h>
+ #include FT_CONFIG_CONFIG_H
+-#include FT_INTERNAL_DEBUG_H
++#define FT_TRACE( level, varformat ) do ; while ( 0 ) /* nothing */
++#define FT_TRACE1( varformat ) FT_TRACE( 1, varformat )
++#define FT_ERROR( varformat ) do ; while ( 0 ) /* nothing */
+ #include FT_SYSTEM_H
+ #include FT_ERRORS_H
+ #include FT_TYPES_H
diff --git a/x11-libs/xfree86/util.c.patch b/x11-libs/xfree86/util.c.patch
new file mode 100644
index 0000000..d33cc97
--- /dev/null
+++ b/x11-libs/xfree86/util.c.patch
@@ -0,0 +1,10 @@
+--- programs/fonttosfnt/util.c.orig 2006-11-15 07:23:20.000000000 +0400
++++ programs/fonttosfnt/util.c 2006-11-15 07:23:37.000000000 +0400
+@@ -34,7 +34,6 @@
+
+ #include <ft2build.h>
+ #include FT_FREETYPE_H
+-#include FT_INTERNAL_OBJECTS_H
+ #include FT_BDF_H
+ #include "X11/Xos.h"
+ #include "fonttosfnt.h"
diff --git a/x11-libs/xfree86/xfree86-xft-releasefile-crash.patch
b/x11-libs/xfree86/xfree86-xft-releasefile-crash.patch
deleted file mode 100644
index 212bc32..0000000
--- a/x11-libs/xfree86/xfree86-xft-releasefile-crash.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- lib/Xft/xftfreetype.c~ 2005-08-20 15:12:16.000000000 +0200
-+++ lib/Xft/xftfreetype.c 2005-08-20 15:14:40.000000000 +0200
-@@ -231,7 +231,7 @@
- if (f->face)
- FT_Done_Face (f->face);
- }
-- XftMemFree (XFT_MEM_FILE, sizeof (XftFtFile) + strlen (f->file) + 1);
-+ XftMemFree (XFT_MEM_FILE, sizeof (XftFtFile) + (f->file ? strlen
(f->file) + 1 : 0 ));
- free (f);
- }
-



  • [SM-Commit] GIT changes to devel grimoire by George Sherwood (fb19e1f9eb9197008901c834b1edaa7c69555409), George Sherwood, 11/16/2006

Archive powered by MHonArc 2.6.24.

Top of Page