freetype-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ft-cvs] freetype2 ./ChangeLog src/sfnt/ttcmap.c src/sfn...


From: Chia-I Wu
Subject: [ft-cvs] freetype2 ./ChangeLog src/sfnt/ttcmap.c src/sfn...
Date: Tue, 29 Nov 2005 06:32:53 -0500

CVSROOT:        /cvsroot/freetype
Module name:    freetype2
Branch:         
Changes by:     Chia-I Wu <address@hidden>      05/11/29 11:32:53

Modified files:
        .              : ChangeLog 
        src/sfnt       : ttcmap.c ttcmap.h 

Log message:
        Major update to distinguish between unsorted and overlapped segments
        for cmap format 4.  For overlapped but sorted segments, which is
        previously considered unsorted, we still use binary search.
        
        * src/sfnt/ttcmap.h (struct  TT_CMapRec_): Replace `unsorted' by
        `flags'.
        (TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros.
        
        * src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined.
        (struct TT_CMap4Rec_): Remove `old_charcode' and `table_length'.
        (tt_cmap4_reset): Removed.
        (tt_cmap4_init): Updated accordingly.
        (tt_cmap4_next): Updated accordingly.
        Take care of overlapped segments.
        (tt_cmap4_validate): Make sure the subtable is large enough.
        Do not check glyph_ids because some fonts set the length wrongly.
        Also, when all segments have offset 0, glyph_ids is always invalid. It
        does not cause any problem so far only because the check misses
        equality.
        Distinguish between unsorted and overlapped segments.
        (tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions to
        do "charcode => glyph index" by linear/binary search.
        (tt_cmap4_char_index, tt_cmap4_char_next): Use
        tt_cmap4_char_map_linear and tt_cmap4_char_map_binary.
        (tt_face_build_cmaps): Treat the return value of validator as flags
        for cmap.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/ChangeLog.diff?tr1=1.1143&tr2=1.1144&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/src/sfnt/ttcmap.c.diff?tr1=1.57&tr2=1.58&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/src/sfnt/ttcmap.h.diff?tr1=1.17&tr2=1.18&r1=text&r2=text





reply via email to

[Prev in Thread] Current Thread [Next in Thread]