summaryrefslogtreecommitdiffstats
path: root/src/extension/internal/cdr-input.cpp
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2016-03-01 01:42:13 +0000
committerjabiertxof <info@marker.es>2016-03-01 01:42:13 +0000
commit145f815859ba21f45e67d315e52f360f029355c7 (patch)
tree54448bc60a94415f63f7b6f46296c8d5e2ac58a6 /src/extension/internal/cdr-input.cpp
parentImprove fill rule and add mass option (diff)
parenttype in commit r14664 (diff)
downloadinkscape-145f815859ba21f45e67d315e52f360f029355c7.tar.gz
inkscape-145f815859ba21f45e67d315e52f360f029355c7.zip
update to trunk
(bzr r14648.1.3)
Diffstat (limited to 'src/extension/internal/cdr-input.cpp')
-rw-r--r--src/extension/internal/cdr-input.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/extension/internal/cdr-input.cpp b/src/extension/internal/cdr-input.cpp
index f4789a08f..a4e26e224 100644
--- a/src/extension/internal/cdr-input.cpp
+++ b/src/extension/internal/cdr-input.cpp
@@ -22,6 +22,7 @@
#include <string>
#include <cstring>
+#include <glibmm/regex.h>
#include <libcdr/libcdr.h>
@@ -281,7 +282,12 @@ SPDocument *CdrInput::open(Inkscape::Extension::Input * /*mod*/, const gchar * u
}
}
- 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<Glib::Regex> regex = Glib::Regex::create("(Z(?:\\s+Z)+)(?=[^<]+\")");
+ 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) {