[feaLib] Reject duplicate languagesystem declarations
This commit is contained in:
parent
b0bbce88b1
commit
683a8f5dbc
@ -145,6 +145,10 @@ class Builder(object):
|
||||
raise FeatureLibError(
|
||||
'If "languagesystem DFLT dflt" is present, it must be '
|
||||
'the first of the languagesystem statements', location)
|
||||
if (script, language) in self.default_language_systems_:
|
||||
raise FeatureLibError(
|
||||
'"languagesystem %s %s" has already been specified' %
|
||||
(script.strip(), language.strip()), location)
|
||||
self.default_language_systems_.add((script, language))
|
||||
|
||||
def get_default_language_systems_(self):
|
||||
|
@ -124,6 +124,12 @@ class BuilderTest(unittest.TestCase):
|
||||
self.assertEqual(builder.language_systems,
|
||||
{('latn', 'FRA'), ('cyrl', 'RUS')})
|
||||
|
||||
def test_languagesystem_duplicate(self):
|
||||
self.assertRaisesRegex(
|
||||
FeatureLibError,
|
||||
'"languagesystem cyrl RUS" has already been specified',
|
||||
self.build, "languagesystem cyrl RUS; languagesystem cyrl RUS;")
|
||||
|
||||
def test_languagesystem_none_specified(self):
|
||||
builder = Builder(None, TTFont())
|
||||
builder.start_feature(location=None, name='test')
|
||||
|
Loading…
x
Reference in New Issue
Block a user