3 |
* docs/CHANGES: Document ftdump's `-v' option. |
* docs/CHANGES: Document ftdump's `-v' option. |
4 |
Document latest charmap code changes. |
Document latest charmap code changes. |
5 |
|
|
6 |
|
* src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: |
7 |
|
s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/. |
8 |
|
|
9 |
2005-11-30 Chia-I Wu <b90201047@ntu.edu.tw> |
2005-11-30 Chia-I Wu <b90201047@ntu.edu.tw> |
10 |
|
|
11 |
* src/sfnt/ttcmap.c (tt_cmap4_char_map_binary, |
* src/sfnt/ttcmap.c (tt_cmap4_char_map_binary, |
13 |
|
|
14 |
2005-11-29 Chia-I Wu <b90201047@ntu.edu.tw> |
2005-11-29 Chia-I Wu <b90201047@ntu.edu.tw> |
15 |
|
|
16 |
Major update to distinguish between unsorted and overlapped segments |
Major update to distinguish between unsorted and overlapping |
17 |
for cmap format 4. For overlapped but sorted segments, which is |
segments for cmap format 4. For overlapping but sorted segments, |
18 |
previously considered unsorted, we still use binary search. |
which is previously considered unsorted, we still use binary search. |
19 |
|
|
20 |
* src/sfnt/ttcmap.h (struct TT_CMapRec_): Replace `unsorted' by |
* src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'. |
|
`flags'. |
|
21 |
(TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros. |
(TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros. |
22 |
|
|
23 |
* src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined. |
* src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined. |
24 |
(struct TT_CMap4Rec_): Remove `old_charcode' and `table_length'. |
(TT_CMap4Rec_): Remove `old_charcode' and `table_length'. |
25 |
(tt_cmap4_reset): Removed. |
(tt_cmap4_reset): Removed. |
26 |
(tt_cmap4_init): Updated accordingly. |
(tt_cmap4_init): Updated accordingly. |
27 |
(tt_cmap4_next): Updated accordingly. |
(tt_cmap4_next): Updated accordingly. |
28 |
Take care of overlapped segments. |
Take care of overlapping segments. |
29 |
(tt_cmap4_validate): Make sure the subtable is large enough. |
(tt_cmap4_validate): Make sure the subtable is large enough. |
30 |
Do not check glyph_ids because some fonts set the length wrongly. |
Do not check glyph_ids because some fonts set the length wrongly. |
31 |
Also, when all segments have offset 0, glyph_ids is always invalid. It |
Also, when all segments have offset 0, glyph_ids is always invalid. |
32 |
does not cause any problem so far only because the check misses |
It does not cause any problem so far only because the check misses |
33 |
equality. |
equality. |
34 |
Distinguish between unsorted and overlapped segments. |
Distinguish between unsorted and overlapping segments. |
35 |
(tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions to |
(tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions |
36 |
do "charcode => glyph index" by linear/binary search. |
to do `charcode => glyph index' by linear/binary search. |
37 |
(tt_cmap4_char_index, tt_cmap4_char_next): Use |
(tt_cmap4_char_index, tt_cmap4_char_next): Use |
38 |
tt_cmap4_char_map_linear and tt_cmap4_char_map_binary. |
tt_cmap4_char_map_linear and tt_cmap4_char_map_binary. |
39 |
(tt_face_build_cmaps): Treat the return value of validator as flags |
(tt_face_build_cmaps): Treat the return value of validator as flags |
41 |
|
|
42 |
2005-11-29 Chia-I Wu <b90201047@ntu.edu.tw> |
2005-11-29 Chia-I Wu <b90201047@ntu.edu.tw> |
43 |
|
|
44 |
* src/sfnt/ttcmap.c (struct TT_CMap12Rec_, tt_cmap12_init, |
* src/sfnt/ttcmap.c (TT_CMap12Rec_, tt_cmap12_init, tt_cmap12_next): |
45 |
tt_cmap12_next): New struct/function for fast "next char". |
New structures and functions for fast `next char'. |
46 |
(tt_cmap12_char_map_binary): New function to do "charcode => glyph |
(tt_cmap12_char_map_binary): New function to do `charcode => glyph |
47 |
index" by binary search. |
index' by binary search. |
48 |
(tt_cmap12_char_index, tt_cmap12_char_next): Use |
(tt_cmap12_char_index, tt_cmap12_char_next): Use |
49 |
tt_cmap12_char_map_binary. |
tt_cmap12_char_map_binary. |
50 |
(tt_face_build_cmaps): Check table and offset correctly (equality is |
(tt_face_build_cmaps): Check table and offset correctly (equality is |