1239 Commits

Author SHA1 Message Date
Behdad Esfahbod
9f23ee4cc8 Change cmap-based duplicate-name resolution from n^2 to linear time
Similar to 85be2e0a9773acec3c6d14c345b1fd94ab3aa5c3, though much
harder to hit.
2014-06-02 18:09:47 -04:00
Behdad Esfahbod
4ff0d4b192 Fix post table glyph name dedup logic for edge case
This is a followup fix to 85be2e0a9773acec3c6d14c345b1fd94ab3aa5c3
Before this change, if some glyph names had a "#-number" suffix in
the post table, we could generate duplicate glyph names.  Fix that,
even though "#" is NOT a valid character in PS glyph names.
2014-06-02 18:03:35 -04:00
Behdad Esfahbod
62dd7b2a0e Refactor getSearchRange() 2014-05-27 16:01:47 -04:00
Behdad Esfahbod
9fed95216a Fix rangeShift calculations for count=0 in sfnt, cmap, and kern 2014-05-27 15:54:04 -04:00
Behdad Esfahbod
ec5f5150e2 Simplify cmap subtable format 4 idDelta code 2014-05-21 19:14:22 -04:00
Behdad Esfahbod
e7fb216ad8 Fix cmap subtable format 4 compiling
Was failing all these years, if a idDelta value happened to be
exactly -0x8000...

Test case: roundtripping MTLmr3m.ttf.
2014-05-21 19:14:03 -04:00
Behdad Esfahbod
4c777d3465 Typo 2014-05-21 17:57:14 -04:00
Behdad Esfahbod
3012076942 Minor 2014-05-19 12:43:37 -06:00
Behdad Esfahbod
ebde5454e5 Merge pull request #103 from olivierberten/post4
'post' format 4.0 support
2014-05-15 15:36:03 -06:00
Behdad Esfahbod
487b15fd94 Add a few __delitem__ implementations 2014-05-14 13:51:10 -06:00
Behdad Esfahbod
37b7bad5b1 Micro-optimize hmtx/vmtx loading 2014-05-14 00:30:02 -04:00
Behdad Esfahbod
d56eebfa96 Use .extend() syntax instead of += for sets 2014-05-14 00:22:14 -04:00
Behdad Esfahbod
470d610eb2 Further micro-optimize cmap subtable format 4 loading 2014-05-14 00:12:03 -04:00
Behdad Esfahbod
2db5eca0df Micro-optimize cmap subtable format 4 loading 2014-05-14 00:08:15 -04:00
Behdad Esfahbod
0d182bfb80 Speed up cmap format 4 loading
From quadratic to linear.  Sigh.
2014-05-14 00:00:47 -04:00
Behdad Esfahbod
3e19354bf5 [subset] Unbreak after e898881ed12d7ce96948f2905d725847c76bc9e8 2014-05-13 21:08:51 -04:00
Behdad Esfahbod
11631b4917 [subset] Fix PairPos subsetting
Ouch!

Fixes https://github.com/behdad/fonttools/pull/118
2014-05-13 14:31:42 -04:00
Behdad Esfahbod
e898881ed1 [subset] Implement format14 variation selectors 2014-05-09 17:48:02 -04:00
Behdad Esfahbod
da223b8fa8 Minor optimization 2014-05-09 17:05:32 -04:00
Behdad Esfahbod
f09164a0de [subset] Don't recalculate "modified" timestamp
To recalculate (which was the default before), use --recalc-timestamp

Fixes https://github.com/behdad/fonttools/issues/115
2014-05-01 15:16:14 -07:00
Behdad Esfahbod
497863a190 Allow disabling 'head' table modified-timestamp recalculation
Part of:
https://github.com/behdad/fonttools/issues/115
https://github.com/behdad/fonttools/issues/46
2014-05-01 15:13:22 -07:00
Behdad Esfahbod
14f13a993e [merge] Remove Python 2.7 dict comprehension syntax
Hopefully 2.6-happy again.
2014-04-02 18:54:53 -07:00
Behdad Esfahbod
8fec68796d [merge] Map duplicate glyphs using synthesized GSUB 'locl' tables 2014-03-28 17:41:01 -07:00
Behdad Esfahbod
d0903e3bb3 . 2014-03-28 16:39:49 -07:00
Behdad Esfahbod
2772d8496e [merge] Minor 2014-03-28 15:37:18 -07:00
Behdad Esfahbod
4bb028e44f Fix identifierToTag for Python 3 2014-03-28 15:18:14 -07:00
Behdad Esfahbod
59a2c05137 [merge] Minor 2014-03-28 15:13:10 -07:00
Behdad Esfahbod
0884507c0e [merge] Minor 2014-03-28 15:02:40 -07:00
Behdad Esfahbod
201a681821 [merge] Minor 2014-03-28 14:58:12 -07:00
Behdad Esfahbod
0e235becc5 [merge] Comment 2014-03-28 14:56:27 -07:00
Behdad Esfahbod
7765421ab7 [merge] Allow merging OS/2 tables of different versions 2014-03-28 14:48:09 -07:00
Behdad Esfahbod
82c54638e3 [merge] Install merged dict on object 2014-03-28 14:41:53 -07:00
Behdad Esfahbod
0d5fcf498c [merge] Rename 2014-03-28 14:39:31 -07:00
Behdad Esfahbod
50d6c7298a Minor 2014-03-28 14:32:24 -07:00
Behdad Esfahbod
5a5d0affff [merge] Support missing GSUB/GPOS/etc
This is a hack for now.  Will clean up in upcoming commits.
2014-03-28 14:11:38 -07:00
Behdad Esfahbod
d0a31f5a43 Make tag parameter to table constructor optional
If not provided, extract from class name.
2014-03-28 14:04:01 -07:00
Behdad Esfahbod
b8039e2653 [merge] Rename 2014-03-28 13:54:37 -07:00
Behdad Esfahbod
477dad1ee8 [merge] Improve assert 2014-03-28 13:52:48 -07:00
Behdad Esfahbod
11580c55bb Minor 2014-03-13 17:34:35 -07:00
Behdad Esfahbod
9f6ccad666 [subset] Correctly handle subsetting non-Unicode cmap subtables 2014-03-12 12:35:35 -07:00
Behdad Esfahbod
a08b1b1d20 [subset] Use NameRecord.isUnicode() 2014-03-12 12:33:40 -07:00
Behdad Esfahbod
77ccf45eb0 Add NameRecord.isUnicode() 2014-03-12 12:32:27 -07:00
Behdad Esfahbod
2007a491e3 [subset] Use CmapSubtable.isUnicode()/isSymbol()
Fixes https://github.com/behdad/fonttools/issues/111
2014-03-12 12:27:11 -07:00
Behdad Esfahbod
f480c7cf21 [merge] Use CmapSubtable.isUnicode() 2014-03-12 12:18:47 -07:00
Behdad Esfahbod
0f74e80d59 Add isUnicode() and isSymbol() to cmap subtables 2014-03-12 12:17:33 -07:00
Behdad Esfahbod
319643ade2 Fix up regression in promoting lookups to extensions
Was broken by 6ed2eb409231a7fe3e0c2a135f9a89796206f639

Fixes https://github.com/behdad/fonttools/issues/110
2014-02-20 16:31:15 -05:00
Behdad Esfahbod
5080331251 [merge] Map recursive lookups
Fixes https://github.com/behdad/fonttools/issues/109
2014-02-10 18:14:37 -05:00
Behdad Esfahbod
e3d7d71b7a Allow setting 'raw' attrs on XML for tables to be loaded from hex
Previously one had to set the 'ERROR' attribute.  Accept raw also.
So, for example one can say:

  <cmap raw="1">
    <!-- Hand-coded format13 table mapping all Unicode
         characters to .notdef glyph. -->
    <hexdata>
      0000 0001 <!-- version numTables -->
        0000 0006 <!-- platformID encodingID -->
        0000000C  <!-- offset -->
          000D 0000 <!-- format reserved -->
          0000001C  <!-- length -->
          00000000  <!-- language -->
          00000001  <!-- nGroups -->
            00000001  <!-- startCharCode -->
            0010FFFE  <!-- endCharCode -->
            00000001  <!-- glyphID -->
    </hexdata>
  </cmap>
2014-01-31 18:06:24 -05:00
Behdad Esfahbod
6338375bd8 Allow loading zero-length tables
Fixes https://github.com/behdad/fonttools/issues/106
2014-01-30 16:48:11 -05:00
Olivier Berten
ec8dccb731 More array instead of pack 2014-01-28 23:45:39 +01:00