[Libreoffice-commits] core.git: writerfilter/source

Miklos Vajna vmiklos at collabora.co.uk
Tue Jul 1 09:04:36 PDT 2014


 writerfilter/source/ooxml/fasttokens.py            |    8 ++++++--
 writerfilter/source/ooxml/gperffasttokenhandler.py |    8 ++++++--
 2 files changed, 12 insertions(+), 4 deletions(-)

New commits:
commit 63cd667ccb35325a973cf4f98c5e1bf9db92b9b4
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Tue Jul 1 17:49:28 2014 +0200

    writerfilter: characters() may be called multiple times for a single token
    
    Change-Id: Icdd3dc7740c5f3d82a45b2553fda65c6010ea4e4

diff --git a/writerfilter/source/ooxml/fasttokens.py b/writerfilter/source/ooxml/fasttokens.py
index a364252..bcd0329 100644
--- a/writerfilter/source/ooxml/fasttokens.py
+++ b/writerfilter/source/ooxml/fasttokens.py
@@ -16,6 +16,7 @@ class ContentHandler(xml.sax.handler.ContentHandler):
     def __init__(self):
         self.inFasttoken = False
         self.counter = 0
+        self.chars = []
 
     def startElement(self, name, attrs):
         if name == "fasttoken":
@@ -23,12 +24,15 @@ class ContentHandler(xml.sax.handler.ContentHandler):
 
     def endElement(self, name):
         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
 
     def characters(self, characters):
         if self.inFasttoken:
-            print("const Token_t OOXML_%s = %s;" % (characters.replace('-', '_'), self.counter))
-            self.counter += 1
+            self.chars.append(characters)
 
 print("""
 /*      
diff --git a/writerfilter/source/ooxml/gperffasttokenhandler.py b/writerfilter/source/ooxml/gperffasttokenhandler.py
index 103a944..4fa34e7 100644
--- a/writerfilter/source/ooxml/gperffasttokenhandler.py
+++ b/writerfilter/source/ooxml/gperffasttokenhandler.py
@@ -15,6 +15,7 @@ import sys
 class ContentHandler(xml.sax.handler.ContentHandler):
     def __init__(self):
         self.inFasttoken = False
+        self.chars = []
 
     def startElement(self, name, attrs):
         if name == "fasttoken":
@@ -22,12 +23,15 @@ class ContentHandler(xml.sax.handler.ContentHandler):
 
     def endElement(self, name):
         if name == "fasttoken":
+            chars = "".join(self.chars)
+            token = chars.replace('-', '_')
+            print("%s, OOXML_%s" % (token, token))
+            self.chars = []
             self.inFasttoken = False
 
     def characters(self, characters):
         if self.inFasttoken:
-            token = characters.replace('-', '_')
-            print("%s, OOXML_%s" % (token, token))
+            self.chars.append(characters)
 
 print("""
 %{


More information about the Libreoffice-commits mailing list