diff --git a/Lib/fontTools/voltLib/parser.py b/Lib/fontTools/voltLib/parser.py index b85ace2e8..63f491a33 100644 --- a/Lib/fontTools/voltLib/parser.py +++ b/Lib/fontTools/voltLib/parser.py @@ -242,7 +242,7 @@ class Parser(object): comments = None if self.next_token_ == "COMMENTS": self.expect_keyword_("COMMENTS") - comments = self.expect_string_() + comments = self.expect_string_().replace(r'\n', '\n') context = [] while self.next_token_ in ("EXCEPT_CONTEXT", "IN_CONTEXT"): context = self.parse_context_() diff --git a/Tests/voltLib/parser_test.py b/Tests/voltLib/parser_test.py index dd3ce907c..e407ddd6a 100644 --- a/Tests/voltLib/parser_test.py +++ b/Tests/voltLib/parser_test.py @@ -473,6 +473,21 @@ class ParserTest(unittest.TestCase): 'END_SUBSTITUTION\n' ).statements + def test_lookup_comments(self): + [lookup] = self.parse( + 'DEF_LOOKUP "test" PROCESS_BASE PROCESS_MARKS ALL DIRECTION LTR\n' + 'COMMENTS "Hello\\nWorld"\n' + 'IN_CONTEXT\n' + 'END_CONTEXT\n' + 'AS_SUBSTITUTION\n' + 'SUB GLYPH "a"\n' + 'WITH GLYPH "b"\n' + 'END_SUB\n' + 'END_SUBSTITUTION' + ).statements + self.assertEqual(lookup.name, "test") + self.assertEqual(lookup.comments, "Hello\nWorld") + def test_substitution_empty(self): with self.assertRaisesRegex( VoltLibError,