summaryrefslogtreecommitdiff
path: root/starmath
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@suse.cz>2011-11-29 20:25:39 +0100
committerLuboš Luňák <l.lunak@suse.cz>2011-11-29 21:20:28 +0100
commitdff36f4c4c75a94cb6ef61f34d03fa2503def92a (patch)
tree2bd7eca6c264b2ba83a1cca707b46a3d5441f11b /starmath
parent34e2e7dd8441148fa8f05c1e9ca324003058ed11 (diff)
docx m:r can contain multiple m:t
Diffstat (limited to 'starmath')
-rw-r--r--starmath/source/ooxmlimport.cxx27
1 files changed, 20 insertions, 7 deletions
diff --git a/starmath/source/ooxmlimport.cxx b/starmath/source/ooxmlimport.cxx
index 300d81860e77..99ba16ac7e86 100644
--- a/starmath/source/ooxmlimport.cxx
+++ b/starmath/source/ooxmlimport.cxx
@@ -370,13 +370,26 @@ OUString SmOoxmlImport::handleR()
// stream.ensureClosingTag( OOX_TOKEN( doc, rFonts ));
stream.ensureClosingTag( OOX_TOKEN( doc, rPr ));
}
- // TODO can there be more t's ?
- XmlStream::Tag rtag = stream.ensureOpeningTag( M_TOKEN( t ));
- // TODO bail out if failure?
- OUString text = rtag.text;
- if( rtag.attribute( OOX_TOKEN( xml, space )) != STR( "preserve" ))
- text = text.trim();
- stream.ensureClosingTag( M_TOKEN( t ));
+ OUString text;
+ while( stream.currentToken() != CLOSING( stream.currentToken()))
+ {
+ switch( stream.currentToken())
+ {
+ case OPENING( M_TOKEN( t )):
+ {
+ XmlStream::Tag rtag = stream.ensureOpeningTag( M_TOKEN( t ));
+ if( rtag.attribute( OOX_TOKEN( xml, space )) != STR( "preserve" ))
+ text += rtag.text.trim();
+ else
+ text += rtag.text;
+ stream.ensureClosingTag( M_TOKEN( t ));
+ break;
+ }
+ default:
+ stream.handleUnexpectedTag();
+ break;
+ }
+ }
stream.ensureClosingTag( M_TOKEN( r ));
return text;
}