diff options
Diffstat (limited to 'scripts/lib/fontbuild/generateGlyph.py')
-rw-r--r-- | scripts/lib/fontbuild/generateGlyph.py | 49 |
1 files changed, 43 insertions, 6 deletions
diff --git a/scripts/lib/fontbuild/generateGlyph.py b/scripts/lib/fontbuild/generateGlyph.py index c674c38..d7e49d8 100644 --- a/scripts/lib/fontbuild/generateGlyph.py +++ b/scripts/lib/fontbuild/generateGlyph.py @@ -15,7 +15,7 @@ import re from anchors import alignComponentsToAnchors - +from string import find def parseComposite(composite): c = composite.split("=") @@ -33,6 +33,7 @@ def parseComposite(composite): def copyMarkAnchors(f, g, srcname, width): + unicode_range = range(0x0030, 0x02B0) + range(0x1E00, 0x1EFF) anchors = f[srcname].anchors for anchor in anchors: if "top_dd" == anchor.name: @@ -43,19 +44,55 @@ def copyMarkAnchors(f, g, srcname, width): g.appendAnchor(anchor.name, (anchor.x + width, anchor.y)) if "top" == anchor.name: if g.unicode == None: - continue - if g.unicode > 0x02B0: - continue + if -1 == find(g.name, ".ccmp"): + continue + if False == (g.unicode in unicode_range): + if -1 == find(g.name, ".ccmp"): + continue + #if g.unicode > 0x02B0: + # continue parenttop_present = 0 for anc in g.anchors: if anc.name == "parent_top": parenttop_present = 1 - if parenttop_present: + if 0 == parenttop_present: + g.appendAnchor("parent_top", anchor.position) + + if "bottom" == anchor.name: + if g.unicode == None: continue - g.appendAnchor("parent_top", anchor.position) + if False == (g.unicode in unicode_range): + continue + #if g.unicode > 0x02B0: + # continue + bottom_present = 0 + for anc in g.anchors: + if anc.name == "bottom": + bottom_present = 1 + if 0 == bottom_present: + g.appendAnchor("bottom", anchor.position) + +# g.appendAnchor("top", anchor.position) + # if "rhotichook" == anchor.name: # g.appendAnchor(anchor.name, (anchor.x + width, anchor.y)) + + #print g.anchors + for anchor in g.anchors: + if "top" == anchor.name: + #print g.name, g.anchors + return + + anchor_parent_top = None + + for anchor in g.anchors: + if "parent_top" == anchor.name: + anchor_parent_top = anchor + break + + if anchor_parent_top: + g.appendAnchor("top", anchor_parent_top.position) def generateGlyph(f,gname,glyphList={}): |