From 95059ebdeef1d43b25c647f69d57cc95912716a6 Mon Sep 17 00:00:00 2001 From: moyogo Date: Mon, 21 Sep 2015 19:48:41 +0100 Subject: [PATCH] meta: handle dlng and slng as text --- Lib/fontTools/ttLib/tables/_m_e_t_a.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/Lib/fontTools/ttLib/tables/_m_e_t_a.py b/Lib/fontTools/ttLib/tables/_m_e_t_a.py index 5f11d7a01..9f55f86e7 100644 --- a/Lib/fontTools/ttLib/tables/_m_e_t_a.py +++ b/Lib/fontTools/ttLib/tables/_m_e_t_a.py @@ -80,14 +80,24 @@ class table__m_e_t_a(DefaultTable.DefaultTable): def toXML(self, writer, ttFont, progress=None): for tag in sorted(self.data.keys()): - writer.begintag("hexdata", tag=tag) - writer.newline() - writer.dumphex(self.data[tag]) - writer.endtag("hexdata") - writer.newline() + if tag in ["dlng", "slng"]: + writer.begintag("text", tag=tag) + writer.newline() + writer.write(self.data[tag]) + writer.newline() + writer.endtag("text") + writer.newline() + else: + writer.begintag("hexdata", tag=tag) + writer.newline() + writer.dumphex(self.data[tag]) + writer.endtag("hexdata") + writer.newline() def fromXML(self, name, attrs, content, ttFont): if name == "hexdata": self.data[attrs["tag"]] = readHex(content) + elif name == "text" and attrs["tag"] in ["dlng", "slng"]: + self.data[attrs["tag"]] = strjoin(content).strip() else: raise TTLibError("can't handle '%s' element" % name)