Skip to content

Commit

Permalink
Merge pull request #1987 from khaledhosny/voltlib-options
Browse files Browse the repository at this point in the history
[voltLib] Accept DO_NOT_TOUCH_CMAP keyword
  • Loading branch information
khaledhosny committed Jun 8, 2020
2 parents 775dc60 + d216723 commit df1b499
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 5 deletions.
11 changes: 6 additions & 5 deletions Lib/fontTools/voltLib/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,10 @@
"GRID_PPEM": "parse_ppem_",
"PRESENTATION_PPEM": "parse_ppem_",
"PPOSITIONING_PPEM": "parse_ppem_",
"COMPILER_USEEXTENSIONLOOKUPS": "parse_compiler_flag_",
"COMPILER_USEPAIRPOSFORMAT2": "parse_compiler_flag_",
"COMPILER_USEEXTENSIONLOOKUPS": "parse_noarg_option_",
"COMPILER_USEPAIRPOSFORMAT2": "parse_noarg_option_",
"CMAP_FORMAT": "parse_cmap_format",
"DO_NOT_TOUCH_CMAP": "parse_noarg_option_",
}


Expand Down Expand Up @@ -549,11 +550,11 @@ def parse_ppem_(self):
setting = ast.SettingDefinition(ppem_name, value, location=location)
return setting

def parse_compiler_flag_(self):
def parse_noarg_option_(self):
location = self.cur_token_location_
flag_name = self.cur_token_
name = self.cur_token_
value = True
setting = ast.SettingDefinition(flag_name, value, location=location)
setting = ast.SettingDefinition(name, value, location=location)
return setting

def parse_cmap_format(self):
Expand Down
18 changes: 18 additions & 0 deletions Tests/voltLib/parser_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -1193,6 +1193,24 @@ def test_cmap(self):
("CMAP_FORMAT", (3, 1, 4)))
)

def test_do_not_touch_cmap(self):
[option1, option2, option3, option4] = self.parse(
'DO_NOT_TOUCH_CMAP\n'
'CMAP_FORMAT 0 3 4\n'
'CMAP_FORMAT 1 0 6\n'
'CMAP_FORMAT 3 1 4'
).statements
self.assertEqual(
((option1.name, option1.value),
(option2.name, option2.value),
(option3.name, option3.value),
(option4.name, option4.value)),
(("DO_NOT_TOUCH_CMAP", True),
("CMAP_FORMAT", (0, 3, 4)),
("CMAP_FORMAT", (1, 0, 6)),
("CMAP_FORMAT", (3, 1, 4)))
)

def test_stop_at_end(self):
doc = self.parse_(
'DEF_GLYPH ".notdef" ID 0 TYPE BASE END_GLYPH END\0\0\0\0'
Expand Down

0 comments on commit df1b499

Please sign in to comment.