[Libreoffice-commits] core.git: Branch 'libreoffice-4-0' - starmath/source

Luboš Luňák l.lunak at suse.cz
Tue Mar 26 10:30:59 PDT 2013


 starmath/source/ooxmlimport.cxx |   22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

New commits:
commit fb2875a26a1a842c6a7e44f85a1655e6f9092e7b
Author: Luboš Luňák <l.lunak at suse.cz>
Date:   Tue Mar 26 16:07:52 2013 +0100

    m:nor and m:lit math docx tags lead to quoting
    
    The meaning should not be exactly the same, but it looks like there's
    no better way to express this (or rather quoting means both).
    
    Change-Id: I024ce6c89667a69f685bb84d768095100b0090b1
    Reviewed-on: https://gerrit.libreoffice.org/3060
    Reviewed-by: Fridrich Strba <fridrich at documentfoundation.org>
    Tested-by: Fridrich Strba <fridrich at documentfoundation.org>

diff --git a/starmath/source/ooxmlimport.cxx b/starmath/source/ooxmlimport.cxx
index e3a48ca..648f808 100644
--- a/starmath/source/ooxmlimport.cxx
+++ b/starmath/source/ooxmlimport.cxx
@@ -570,11 +570,21 @@ OUString SmOoxmlImport::handleNary()
 OUString SmOoxmlImport::handleR()
 {
     stream.ensureOpeningTag( M_TOKEN( r ));
-    if( XmlStream::Tag rPr = stream.checkOpeningTag( OOX_TOKEN( doc, rPr )))
-    { // TODO
-//        stream.checkOpeningTag( OOX_TOKEN( doc, rFonts ));
-//        stream.ensureClosingTag( OOX_TOKEN( doc, rFonts ));
-        stream.ensureClosingTag( OOX_TOKEN( doc, rPr ));
+    bool normal = false;
+    bool literal = false;
+    if( XmlStream::Tag rPr = stream.checkOpeningTag( M_TOKEN( rPr )))
+    {
+        if( XmlStream::Tag litTag = stream.checkOpeningTag( M_TOKEN( lit )))
+        {
+            literal = litTag.attribute( M_TOKEN( val ), true );
+            stream.ensureClosingTag( M_TOKEN( lit ));
+        }
+        if( XmlStream::Tag norTag = stream.checkOpeningTag( M_TOKEN( nor )))
+        {
+            normal = norTag.attribute( M_TOKEN( val ), true );
+            stream.ensureClosingTag( M_TOKEN( nor ));
+        }
+        stream.ensureClosingTag( M_TOKEN( rPr ));
     }
     OUString text;
     while( !stream.atEnd() && stream.currentToken() != CLOSING( stream.currentToken()))
@@ -597,6 +607,8 @@ OUString SmOoxmlImport::handleR()
         }
     }
     stream.ensureClosingTag( M_TOKEN( r ));
+    if( normal || literal )
+        text = "\"" + text + "\"";
     return text.replaceAll("{", "\\{").replaceAll("}", "\\}");
 }
 


More information about the Libreoffice-commits mailing list