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

Armin Le Grand alg at apache.org
Mon Oct 13 09:26:40 PDT 2014


 svgio/source/svgreader/svgdocumenthandler.cxx |   18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

New commits:
commit 4c31a0be1d8048bf3340acbb59248185e4b93041
Author: Armin Le Grand <alg at apache.org>
Date:   Fri Oct 10 12:50:29 2014 +0000

    Resolves: #i125326# accept CssStyles with missing type attribute
    
    (cherry picked from commit bb72d5b3ecbe6a03d3d3dfe101ad67ff4650a9f9)
    
    Conflicts:
    	svgio/source/svgreader/svgdocumenthandler.cxx
    
    Change-Id: I5395c2cada92d5abcde9f6cc18bc237a58e77992

diff --git a/svgio/source/svgreader/svgdocumenthandler.cxx b/svgio/source/svgreader/svgdocumenthandler.cxx
index d052e46..1cb1a54 100644
--- a/svgio/source/svgreader/svgdocumenthandler.cxx
+++ b/svgio/source/svgreader/svgdocumenthandler.cxx
@@ -323,10 +323,26 @@ namespace svgio
                     {
                         SvgStyleNode* pNew = new SvgStyleNode(maDocument, mpTarget);
                         mpTarget = pNew;
-                        mpTarget->parseAttributes(xAttribs);
+                        const sal_uInt32 nAttributes(xAttribs->getLength());
+
+                        if(0 == nAttributes)
+                        {
+                            // #i125326# no attributes, thus also no type="text/css". This is allowed to be missing,
+                            // thus do mark this style as CssStyle. This is required to read the contained
+                            // text (which defines the css style)
+                            pNew->setTextCss(true);
+                        }
+                        else
+                        {
+                            // #i125326# there are attributes, read them. This will set isTextCss to true if
+                            // a type="text/css" is contained as exact match, else not
+                            mpTarget->parseAttributes(xAttribs);
+                        }
 
                         if(pNew->isTextCss())
                         {
+                            // if it is a Css style, allow reading text between the start and end tag (see
+                            // SvgDocHdl::characters for details)
                             maCssContents.push_back(OUString());
                         }
                         break;


More information about the Libreoffice-commits mailing list