[ttFont] Remove allowVID
Leave the parameter intact for back compat. Part of https://github.com/fonttools/fonttools/pull/2398 Fixes https://github.com/fonttools/fonttools/issues/2334
This commit is contained in:
parent
9988054f3c
commit
322a7b2ead
@ -20,7 +20,7 @@ class TTFont(object):
|
|||||||
|
|
||||||
def __init__(self, file=None, res_name_or_index=None,
|
def __init__(self, file=None, res_name_or_index=None,
|
||||||
sfntVersion="\000\001\000\000", flavor=None, checkChecksums=0,
|
sfntVersion="\000\001\000\000", flavor=None, checkChecksums=0,
|
||||||
verbose=None, recalcBBoxes=True, allowVID=False, ignoreDecompileErrors=False,
|
verbose=None, recalcBBoxes=True, allowVID=NotImplemented, ignoreDecompileErrors=False,
|
||||||
recalcTimestamp=True, fontNumber=-1, lazy=None, quiet=None,
|
recalcTimestamp=True, fontNumber=-1, lazy=None, quiet=None,
|
||||||
_tableCache=None):
|
_tableCache=None):
|
||||||
|
|
||||||
@ -61,16 +61,6 @@ class TTFont(object):
|
|||||||
If the recalcTimestamp argument is false, the modified timestamp in the
|
If the recalcTimestamp argument is false, the modified timestamp in the
|
||||||
'head' table will *not* be recalculated upon save/compile.
|
'head' table will *not* be recalculated upon save/compile.
|
||||||
|
|
||||||
If the allowVID argument is set to true, then virtual GID's are
|
|
||||||
supported. Asking for a glyph ID with a glyph name or GID that is not in
|
|
||||||
the font will return a virtual GID. This is valid for GSUB and cmap
|
|
||||||
tables. For SING glyphlets, the cmap table is used to specify Unicode
|
|
||||||
values for virtual GI's used in GSUB/GPOS rules. If the gid N is requested
|
|
||||||
and does not exist in the font, or the glyphname has the form glyphN
|
|
||||||
and does not exist in the font, then N is used as the virtual GID.
|
|
||||||
Else, the first virtual GID is assigned as 0x1000 -1; for subsequent new
|
|
||||||
virtual GIDs, the next is one less than the previous.
|
|
||||||
|
|
||||||
If ignoreDecompileErrors is set to True, exceptions raised in
|
If ignoreDecompileErrors is set to True, exceptions raised in
|
||||||
individual tables during decompilation will be ignored, falling
|
individual tables during decompilation will be ignored, falling
|
||||||
back to the DefaultTable implementation, which simply keeps the
|
back to the DefaultTable implementation, which simply keeps the
|
||||||
@ -92,12 +82,6 @@ class TTFont(object):
|
|||||||
self.recalcTimestamp = recalcTimestamp
|
self.recalcTimestamp = recalcTimestamp
|
||||||
self.tables = {}
|
self.tables = {}
|
||||||
self.reader = None
|
self.reader = None
|
||||||
|
|
||||||
# Permit the user to reference glyphs that are not int the font.
|
|
||||||
self.last_vid = 0xFFFE # Can't make it be 0xFFFF, as the world is full unsigned short integer counters that get incremented after the last seen GID value.
|
|
||||||
self.reverseVIDDict = {}
|
|
||||||
self.VIDDict = {}
|
|
||||||
self.allowVID = allowVID
|
|
||||||
self.ignoreDecompileErrors = ignoreDecompileErrors
|
self.ignoreDecompileErrors = ignoreDecompileErrors
|
||||||
|
|
||||||
if not file:
|
if not file:
|
||||||
@ -548,20 +532,7 @@ class TTFont(object):
|
|||||||
try:
|
try:
|
||||||
return self.getGlyphOrder()[glyphID]
|
return self.getGlyphOrder()[glyphID]
|
||||||
except IndexError:
|
except IndexError:
|
||||||
if not self.allowVID:
|
|
||||||
# XXX The ??.W8.otf font that ships with OSX uses higher glyphIDs in
|
|
||||||
# the cmap table than there are glyphs. I don't think it's legal...
|
|
||||||
return "glyph%.5d" % glyphID
|
return "glyph%.5d" % glyphID
|
||||||
else:
|
|
||||||
# user intends virtual GID support
|
|
||||||
try:
|
|
||||||
glyphName = self.VIDDict[glyphID]
|
|
||||||
except KeyError:
|
|
||||||
glyphName ="glyph%.5d" % glyphID
|
|
||||||
self.last_vid = min(glyphID, self.last_vid )
|
|
||||||
self.reverseVIDDict[glyphName] = glyphID
|
|
||||||
self.VIDDict[glyphID] = glyphName
|
|
||||||
return glyphName
|
|
||||||
|
|
||||||
def getGlyphID(self, glyphName):
|
def getGlyphID(self, glyphName):
|
||||||
if not hasattr(self, "_reverseGlyphOrderDict"):
|
if not hasattr(self, "_reverseGlyphOrderDict"):
|
||||||
@ -573,30 +544,12 @@ class TTFont(object):
|
|||||||
self._buildReverseGlyphOrderDict()
|
self._buildReverseGlyphOrderDict()
|
||||||
return self.getGlyphID(glyphName)
|
return self.getGlyphID(glyphName)
|
||||||
else:
|
else:
|
||||||
if not self.allowVID:
|
|
||||||
# Handle glyphXXX only
|
# Handle glyphXXX only
|
||||||
if glyphName[:5] == "glyph":
|
if glyphName[:5] == "glyph":
|
||||||
try:
|
try:
|
||||||
return int(glyphName[5:])
|
return int(glyphName[5:])
|
||||||
except (NameError, ValueError):
|
except (NameError, ValueError):
|
||||||
raise KeyError(glyphName)
|
raise KeyError(glyphName)
|
||||||
else:
|
|
||||||
# user intends virtual GID support
|
|
||||||
try:
|
|
||||||
glyphID = self.reverseVIDDict[glyphName]
|
|
||||||
except KeyError:
|
|
||||||
# if name is in glyphXXX format, use the specified name.
|
|
||||||
if glyphName[:5] == "glyph":
|
|
||||||
try:
|
|
||||||
glyphID = int(glyphName[5:])
|
|
||||||
except (NameError, ValueError):
|
|
||||||
glyphID = None
|
|
||||||
if glyphID is None:
|
|
||||||
glyphID = self.last_vid -1
|
|
||||||
self.last_vid = glyphID
|
|
||||||
self.reverseVIDDict[glyphName] = glyphID
|
|
||||||
self.VIDDict[glyphID] = glyphName
|
|
||||||
return glyphID
|
|
||||||
|
|
||||||
glyphID = d[glyphName]
|
glyphID = d[glyphName]
|
||||||
if glyphName != glyphOrder[glyphID]:
|
if glyphName != glyphOrder[glyphID]:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user