summaryrefslogtreecommitdiff
path: root/scripts/lib/fontbuild/kerning.py
blob: cdece4070ab186038cea0f6deff23c58494fbde7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import re
from FL import *

def markKernClassesLR(f):
    for i in range(len(f.classes)):
        classname = f.classes[i].split(':', 1).pop(0).strip()
        if classname.startswith('_'):
            l = 0
            r = 0
            if classname.endswith('_L'):
                l = 1
            elif classname.endswith('_R'):
                r = 1
            elif classname.endswith('_LR'):
                l = 1
                r = 1
            f.SetClassFlags(i, l, r)
    fl.UpdateFont()

def generateFLKernClassesFromOTString(f,classString):
    classString.replace("\r","\n")
    rx = re.compile(r"@(_[\w]+)\s*=\s*\[\s*(\w+?)\s+(.*?)\]\s*;")
    classes = ["%s : %s' %s" %(m[0],m[1],m[2]) for m in rx.findall(classString)]
    f.classes = classes    
    markKernClassesLR(f)