=== modified file 'src/extension/internal/cdr-input.cpp' --- src/extension/internal/cdr-input.cpp 2014-11-26 19:45:29 +0000 +++ src/extension/internal/cdr-input.cpp 2016-02-06 18:30:45 +0000 @@ -22,6 +22,7 @@ #include #include +#include #include @@ -281,7 +282,12 @@ } } - SPDocument * doc = SPDocument::createNewDocFromMem(tmpSVGOutput[page_num-1].cstr(), strlen(tmpSVGOutput[page_num-1].cstr()), TRUE); + // remove consecutive closepath commands (see bug 1492153) + Glib::RefPtr regex = Glib::Regex::create("(Z(?:\nZ)+)(?=[^<]+\")"); + Glib::ustring outString1 = Glib::ustring(tmpSVGOutput[page_num-1].cstr()); + Glib::ustring outString2 = regex->replace(outString1, 0, "Z", Glib::REGEX_MATCH_NEWLINE_ANY); + + SPDocument * doc = SPDocument::createNewDocFromMem(outString2.c_str(), outString2.bytes(), TRUE); // Set viewBox if it doesn't exist if (doc && !doc->getRoot()->viewBox_set) {