Fixed bug in ttf generator.
authorMatthias Kramm <kramm@quiss.org>
Wed, 17 Mar 2010 04:51:17 +0000 (21:51 -0700)
committerMatthias Kramm <kramm@quiss.org>
Wed, 17 Mar 2010 04:52:29 +0000 (21:52 -0700)
(I can't believe Mac OS X actually uses the ttf's stoneage entry select and range shift values)

lib/ttf.c

index 93629f3..69cd3f1 100644 (file)
--- a/lib/ttf.c
+++ b/lib/ttf.c
@@ -1418,11 +1418,12 @@ void cmap_write(ttf_t* ttf, ttf_table_t*w)
     w->data[num_segments_pos++]=(search_range*2);
     /* backpatch entry selector */
     int entry_selector = 0;
+    tmp = search_range;
     while(tmp>1) {tmp>>=1;entry_selector++;}
     w->data[num_segments_pos++]=entry_selector>>8;
     w->data[num_segments_pos++]=entry_selector;
     /* backpatch range shift */
-    int range_shift = num_segments*2 - search_range;
+    int range_shift = num_segments*2 - search_range*2;
     w->data[num_segments_pos++]=range_shift>>8;
     w->data[num_segments_pos++]=range_shift;