fontBuilder: don't add mac names for fvar and STAT if name table hasn't any
This commit is contained in:
parent
d2ce6e075c
commit
b371f23760
@ -918,7 +918,15 @@ class FontBuilder(object):
|
|||||||
"""
|
"""
|
||||||
from .otlLib.builder import buildStatTable
|
from .otlLib.builder import buildStatTable
|
||||||
|
|
||||||
buildStatTable(self.font, axes, locations, elidedFallbackName)
|
assert "name" in self.font, "name must to be set up first"
|
||||||
|
|
||||||
|
buildStatTable(
|
||||||
|
self.font,
|
||||||
|
axes,
|
||||||
|
locations,
|
||||||
|
elidedFallbackName,
|
||||||
|
macNames=any(nr.platformID == 1 for nr in self.font["name"].names),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def buildCmapSubTable(cmapping, format, platformID, platEncID):
|
def buildCmapSubTable(cmapping, format, platformID, platEncID):
|
||||||
@ -938,6 +946,15 @@ def addFvar(font, axes, instances):
|
|||||||
fvar = newTable("fvar")
|
fvar = newTable("fvar")
|
||||||
nameTable = font["name"]
|
nameTable = font["name"]
|
||||||
|
|
||||||
|
# if there are not currently any mac names don't add them here, that's inconsistent
|
||||||
|
# https://github.com/fonttools/fonttools/issues/683
|
||||||
|
macNames = any(nr.platformID == 1 for nr in getattr(nameTable, "names", ()))
|
||||||
|
|
||||||
|
# we have all the best ways to express mac names
|
||||||
|
platforms = ((3, 1, 0x409),)
|
||||||
|
if macNames:
|
||||||
|
platforms = ((1, 0, 0),) + platforms
|
||||||
|
|
||||||
for axis_def in axes:
|
for axis_def in axes:
|
||||||
axis = Axis()
|
axis = Axis()
|
||||||
|
|
||||||
@ -963,7 +980,7 @@ def addFvar(font, axes, instances):
|
|||||||
if isinstance(name, str):
|
if isinstance(name, str):
|
||||||
name = dict(en=name)
|
name = dict(en=name)
|
||||||
|
|
||||||
axis.axisNameID = nameTable.addMultilingualName(name, ttFont=font)
|
axis.axisNameID = nameTable.addMultilingualName(name, ttFont=font, mac=macNames)
|
||||||
fvar.axes.append(axis)
|
fvar.axes.append(axis)
|
||||||
|
|
||||||
for instance in instances:
|
for instance in instances:
|
||||||
@ -980,9 +997,11 @@ def addFvar(font, axes, instances):
|
|||||||
name = dict(en=name)
|
name = dict(en=name)
|
||||||
|
|
||||||
inst = NamedInstance()
|
inst = NamedInstance()
|
||||||
inst.subfamilyNameID = nameTable.addMultilingualName(name, ttFont=font)
|
inst.subfamilyNameID = nameTable.addMultilingualName(
|
||||||
|
name, ttFont=font, mac=macNames
|
||||||
|
)
|
||||||
if psname is not None:
|
if psname is not None:
|
||||||
inst.postscriptNameID = nameTable.addName(psname)
|
inst.postscriptNameID = nameTable.addName(psname, platforms=platforms)
|
||||||
inst.coordinates = coordinates
|
inst.coordinates = coordinates
|
||||||
fvar.instances.append(inst)
|
fvar.instances.append(inst)
|
||||||
|
|
||||||
|
@ -177,39 +177,6 @@
|
|||||||
</glyf>
|
</glyf>
|
||||||
|
|
||||||
<name>
|
<name>
|
||||||
<namerecord nameID="1" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
|
||||||
HelloTestFont
|
|
||||||
</namerecord>
|
|
||||||
<namerecord nameID="2" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
|
||||||
TotallyNormal
|
|
||||||
</namerecord>
|
|
||||||
<namerecord nameID="6" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
|
||||||
HelloTestFont-TotallyNormal
|
|
||||||
</namerecord>
|
|
||||||
<namerecord nameID="256" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
|
||||||
Left
|
|
||||||
</namerecord>
|
|
||||||
<namerecord nameID="257" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
|
||||||
Right
|
|
||||||
</namerecord>
|
|
||||||
<namerecord nameID="258" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
|
||||||
Up
|
|
||||||
</namerecord>
|
|
||||||
<namerecord nameID="259" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
|
||||||
Down
|
|
||||||
</namerecord>
|
|
||||||
<namerecord nameID="260" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
|
||||||
Right Up
|
|
||||||
</namerecord>
|
|
||||||
<namerecord nameID="261" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
|
||||||
Neutral
|
|
||||||
</namerecord>
|
|
||||||
<namerecord nameID="1" platformID="1" platEncID="0" langID="0x4" unicode="True">
|
|
||||||
HalloTestFont
|
|
||||||
</namerecord>
|
|
||||||
<namerecord nameID="2" platformID="1" platEncID="0" langID="0x4" unicode="True">
|
|
||||||
TotaalNormaal
|
|
||||||
</namerecord>
|
|
||||||
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
|
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
|
||||||
HelloTestFont
|
HelloTestFont
|
||||||
</namerecord>
|
</namerecord>
|
||||||
|
@ -236,7 +236,7 @@ def test_build_var(tmpdir):
|
|||||||
fb.setupHorizontalMetrics(metrics)
|
fb.setupHorizontalMetrics(metrics)
|
||||||
|
|
||||||
fb.setupHorizontalHeader(ascent=824, descent=200)
|
fb.setupHorizontalHeader(ascent=824, descent=200)
|
||||||
fb.setupNameTable(nameStrings)
|
fb.setupNameTable(nameStrings, mac=False)
|
||||||
|
|
||||||
axes = [
|
axes = [
|
||||||
("LEFT", 0, 0, 100, "Left"),
|
("LEFT", 0, 0, 100, "Left"),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user