1558 Commits

Author SHA1 Message Date
Behdad Esfahbod
ade1972557 Remove CFF Index.count member
Clean up.  len(index) should be used instead.
2014-06-16 15:35:15 -04:00
Behdad Esfahbod
149a6700a1 [subset] Minor 2014-06-16 15:33:53 -04:00
Behdad Esfahbod
f1d5c85c3f Ignore "reserved" post table format 2.0 indices
Fixes https://github.com/behdad/fonttools/issues/124
2014-06-13 13:18:22 -04:00
Behdad Esfahbod
3c89b298c3 Disallow empty glyph name decoded from post table
But preserve it...

For example, with this font:

https://code.google.com/p/googlefontdirectory/source/browse/ofl/phetsarath/Phetsarath-Regular.ttf

we now get:

    ...
    <GlyphID id="136" name="uni0EDD.am"/>
    <GlyphID id="137" name="uni0EB3.right"/>
    <GlyphID id="138" name="glyph00138"/>
    <GlyphID id="139" name="glyph00139"/>
    <GlyphID id="140" name="glyph00140"/>
    ...
    <GlyphID id="161" name="glyph00161"/>
  </GlyphOrder>

...

  <post>
    <formatType value="2.0"/>
    <italicAngle value="0.0"/>
    <underlinePosition value="-217"/>
    <underlineThickness value="150"/>
    <isFixedPitch value="0"/>
    <minMemType42 value="0"/>
    <maxMemType42 value="0"/>
    <minMemType1 value="0"/>
    <maxMemType1 value="0"/>
    <psNames>
      <!-- This file uses unique glyph names based on the information
           found in the 'post' table. Since these names might not be unique,
           we have to invent artificial names in case of clashes. In order to
           be able to retain the original information, we need a name to
           ps name mapping for those cases where they differ. That's what
           you see below.
            -->
      <psName name="glyph00107" psName=""/>
      <psName name="glyph00138" psName=""/>
      <psName name="glyph00139" psName=""/>
      ...
      <psName name="glyph00161" psName=""/>
    </psNames>

Part of https://github.com/behdad/fonttools/issues/124
2014-06-13 13:10:16 -04:00
Behdad Esfahbod
4d6be6b7d2 Don't use has_key in post table; that's gone in python3
Raised here: https://github.com/behdad/fonttools/issues/124
2014-06-13 12:47:58 -04:00
Behdad Esfahbod
b7367012e4 Add __contains__ to cffLib 2014-06-13 12:47:55 -04:00
Behdad Esfahbod
69ef79b5da Err if post table format 2 indices get to the reserved range 2014-06-13 12:47:50 -04:00
Behdad Esfahbod
5a721d07c0 git-ignore *.pyc 2014-06-06 11:45:44 -04:00
Behdad Esfahbod
cf2f85e4e2 [subset] Add TODO 2014-06-05 20:39:38 -04:00
Behdad Esfahbod
d15afe9231 [subset] Fix pruning of empty rulesets in (Chain)ContextFormat1
Similar to 98b60757ab9bb0aaa3c1f136e5a837a1b73d22ed and the
recent commits for Format2.
2014-06-05 20:19:38 -04:00
Behdad Esfahbod
a7cd151e14 [subset] Actually prune empty subrulesets in (Chain)ContextFormat2 2014-06-05 18:28:21 -04:00
Behdad Esfahbod
26cb08062d [subset] More fixing of (Chain)ContextFormat2
This is follow up to 98b60757ab9bb0aaa3c1f136e5a837a1b73d22ed
Looks like this lookup type is a curse to stay with us.  Sigh...
2014-06-05 18:24:53 -04:00
Behdad Esfahbod
d65b587708 Minor 2014-06-05 17:58:15 -04:00
Behdad Esfahbod
ced737e249 Allow ligatures with one component only 2014-06-05 17:03:31 -04:00
Behdad Esfahbod
a47d226662 Apply fixes from 'hhea' to 'vhea'
Maybe they should be merged...
2014-06-02 18:31:52 -04:00
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