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
|
||||
|
||||
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):
|
||||
@ -938,6 +946,15 @@ def addFvar(font, axes, instances):
|
||||
fvar = newTable("fvar")
|
||||
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:
|
||||
axis = Axis()
|
||||
|
||||
@ -963,7 +980,7 @@ def addFvar(font, axes, instances):
|
||||
if isinstance(name, str):
|
||||
name = dict(en=name)
|
||||
|
||||
axis.axisNameID = nameTable.addMultilingualName(name, ttFont=font)
|
||||
axis.axisNameID = nameTable.addMultilingualName(name, ttFont=font, mac=macNames)
|
||||
fvar.axes.append(axis)
|
||||
|
||||
for instance in instances:
|
||||
@ -980,9 +997,11 @@ def addFvar(font, axes, instances):
|
||||
name = dict(en=name)
|
||||
|
||||
inst = NamedInstance()
|
||||
inst.subfamilyNameID = nameTable.addMultilingualName(name, ttFont=font)
|
||||
inst.subfamilyNameID = nameTable.addMultilingualName(
|
||||
name, ttFont=font, mac=macNames
|
||||
)
|
||||
if psname is not None:
|
||||
inst.postscriptNameID = nameTable.addName(psname)
|
||||
inst.postscriptNameID = nameTable.addName(psname, platforms=platforms)
|
||||
inst.coordinates = coordinates
|
||||
fvar.instances.append(inst)
|
||||
|
||||
|
@ -177,39 +177,6 @@
|
||||
</glyf>
|
||||
|
||||
<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">
|
||||
HelloTestFont
|
||||
</namerecord>
|
||||
|
@ -236,7 +236,7 @@ def test_build_var(tmpdir):
|
||||
fb.setupHorizontalMetrics(metrics)
|
||||
|
||||
fb.setupHorizontalHeader(ascent=824, descent=200)
|
||||
fb.setupNameTable(nameStrings)
|
||||
fb.setupNameTable(nameStrings, mac=False)
|
||||
|
||||
axes = [
|
||||
("LEFT", 0, 0, 100, "Left"),
|
||||
|
Loading…
x
Reference in New Issue
Block a user