This commit is contained in:
Werner Lemberg 2013-12-27 19:18:49 +01:00
parent e2d2b1544f
commit 00a7b51fab
3 changed files with 20 additions and 18 deletions

View File

@ -3,21 +3,21 @@
[ftrfork] Fix the face order difference between POSIX and Carbon.
The fragmented resources in Suitcase and .dfont should be reordered
when post resource for Type1 is being restored, but reordering of
when `POST' resource for Type1 is being restored, but reordering of
sfnt resources induces the different face order. Now the ordering
is restricted to post resource only, to prevent the different order
issue (e.g. the face index in the fontconfig cache generated with
Carbon framework is incompatible with that by FreeType2 without
Carbon framework.) Found by Khaled Hosny and Hin-Tak Leung.
is restricted to `POST' resource only, to prevent the different
order issue (e.g. the face index in the fontconfig cache generated
with Carbon framework is incompatible with that by FreeType 2
without Carbon framework.) Found by Khaled Hosny and Hin-Tak Leung.
http://lists.gnu.org/archive/html/freetype-devel/2013-02/msg00035.html
http://lists.gnu.org/archive/html/freetype-devel/2013-12/msg00027.html
* src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Add a switch
`sort_by_res_id' to control the fragmented resource ordering.
* include/internal/ftrfork.h: Daclare new switch.
* src/base/ftobjs.c (IsMacResource): Enable the soring for post
resource, and disable the sorting for sfnt resource.
* include/internal/ftrfork.h: Declare new switch.
* src/base/ftobjs.c (IsMacResource): Enable the sorting for `POST'
resource, and disable the sorting for `sfnt' resource.
2013-12-25 Werner Lemberg <wl@gnu.org>

View File

@ -225,11 +225,11 @@ FT_BEGIN_HEADER
/* The resource tag. */
/* */
/* sort_by_res_id :: */
/* A Boolean to order the fragmented resource by their ids. */
/* The fragmented resources for POST resource should be sorted */
/* to restore Type1 font properly. For snft resource, sorting */
/* may induce the different order of the faces in comparison with */
/* that by QuickDraw API. */
/* A Boolean to sort the fragmented resource by their ids. */
/* The fragmented resources for `POST' resource should be sorted */
/* to restore Type1 font properly. For `snft' resources, sorting */
/* may induce a different order of the faces in comparison to that */
/* by QuickDraw API. */
/* */
/* <Output> */
/* offsets :: */

View File

@ -212,8 +212,9 @@
goto Exit;
ref[j].offset = temp & 0xFFFFFFL;
FT_TRACE3(( " [%d]: resouce_id=0x%04x, offset=0x%08x\n",
j, ref[j].res_id, ref[j].offset ));
FT_TRACE3(( " [%d]:"
" resource_id=0x%04x, offset=0x%08x\n",
j, ref[j].res_id, ref[j].offset ));
}
if (sort_by_res_id)
@ -224,8 +225,9 @@
FT_TRACE3(( " -- sort resources by their ids --\n" ));
for ( j = 0; j < *count; ++ j ) {
FT_TRACE3(( " [%d]: resouce_id=0x%04x, offset=0x%08x\n",
j, ref[j].res_id, ref[j].offset ));
FT_TRACE3(( " [%d]:"
" resource_id=0x%04x, offset=0x%08x\n",
j, ref[j].res_id, ref[j].offset ));
}
}