Kaydet (Commit) 63cd667c authored tarafından Miklos Vajna's avatar Miklos Vajna

writerfilter: characters() may be called multiple times for a single token

Change-Id: Icdd3dc7740c5f3d82a45b2553fda65c6010ea4e4
üst 9263b101
...@@ -16,6 +16,7 @@ class ContentHandler(xml.sax.handler.ContentHandler): ...@@ -16,6 +16,7 @@ class ContentHandler(xml.sax.handler.ContentHandler):
def __init__(self): def __init__(self):
self.inFasttoken = False self.inFasttoken = False
self.counter = 0 self.counter = 0
self.chars = []
def startElement(self, name, attrs): def startElement(self, name, attrs):
if name == "fasttoken": if name == "fasttoken":
...@@ -23,12 +24,15 @@ class ContentHandler(xml.sax.handler.ContentHandler): ...@@ -23,12 +24,15 @@ class ContentHandler(xml.sax.handler.ContentHandler):
def endElement(self, name): def endElement(self, name):
if name == "fasttoken": if name == "fasttoken":
chars = "".join(self.chars)
print("const Token_t OOXML_%s = %s;" % (chars.replace('-', '_'), self.counter))
self.chars = []
self.counter += 1
self.inFasttoken = False self.inFasttoken = False
def characters(self, characters): def characters(self, characters):
if self.inFasttoken: if self.inFasttoken:
print("const Token_t OOXML_%s = %s;" % (characters.replace('-', '_'), self.counter)) self.chars.append(characters)
self.counter += 1
print(""" print("""
/* /*
......
...@@ -15,6 +15,7 @@ import sys ...@@ -15,6 +15,7 @@ import sys
class ContentHandler(xml.sax.handler.ContentHandler): class ContentHandler(xml.sax.handler.ContentHandler):
def __init__(self): def __init__(self):
self.inFasttoken = False self.inFasttoken = False
self.chars = []
def startElement(self, name, attrs): def startElement(self, name, attrs):
if name == "fasttoken": if name == "fasttoken":
...@@ -22,12 +23,15 @@ class ContentHandler(xml.sax.handler.ContentHandler): ...@@ -22,12 +23,15 @@ class ContentHandler(xml.sax.handler.ContentHandler):
def endElement(self, name): def endElement(self, name):
if name == "fasttoken": if name == "fasttoken":
chars = "".join(self.chars)
token = chars.replace('-', '_')
print("%s, OOXML_%s" % (token, token))
self.chars = []
self.inFasttoken = False self.inFasttoken = False
def characters(self, characters): def characters(self, characters):
if self.inFasttoken: if self.inFasttoken:
token = characters.replace('-', '_') self.chars.append(characters)
print("%s, OOXML_%s" % (token, token))
print(""" print("""
%{ %{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment