From 7c471e0d306c3f887df779b01bcb58f2e64c0829 Mon Sep 17 00:00:00 2001 From: "axel%pike.org" Date: Tue, 15 Aug 2006 17:10:00 +0000 Subject: [PATCH] bug 348554, adding postprocessing to parsers so that unicode values get right, needed for search assets git-svn-id: svn://10.0.0.236/trunk@207464 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/testing/tests/l10n/lib/Mozilla/Parser.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/mozilla/testing/tests/l10n/lib/Mozilla/Parser.py b/mozilla/testing/tests/l10n/lib/Mozilla/Parser.py index 40363791eb8..5d9f0d05bea 100755 --- a/mozilla/testing/tests/l10n/lib/Mozilla/Parser.py +++ b/mozilla/testing/tests/l10n/lib/Mozilla/Parser.py @@ -54,6 +54,8 @@ class Parser: return m def compareEntries(self, en, l10n): return None + def postProcessValue(self, val): + return val def __iter__(self): self.offset = 0 return self @@ -67,7 +69,7 @@ class Parser: self.offset = cm.end() return self.next() self.offset = m.end() - return (m.group(1), m.group(2)) + return (unicode(m.group(1)), self.postProcessValue(m.group(2))) def getParser(path): ext = path.rsplit('.',1)[1] @@ -88,8 +90,19 @@ class PropertiesParser(Parser): def __init__(self): self.key = re.compile('^\s*([^#!\s\r\n][^=:\r\n]*?)\s*[:=][ \t]*(.*?)[ \t]*$',re.M) self.comment = re.compile('^\s*[#!].*$',re.M) + self._post = re.compile('\\\\u([0-9a-f]+)') Parser.__init__(self) _arg_re = re.compile('%(?:(?P[0-9]+)\$)?(?P[0-9]+)?(?:.(?P[0-9]+))?(?P[hL]|(?:ll?))?(?P[dciouxXefgpCSsn])') + def postProcessValue(self, val): + m = self._post.search(val) + if not m: + return val + val = unicode(val) + while m: + uChar = unichr(int(m.group(1), 16)) + val = val.replace(m.group(), uChar) + m = self._post.search(val) + return val class DefinesParser(Parser): def __init__(self):