diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2016-03-01 01:42:13 +0000 |
|---|---|---|
| committer | jabiertxof <info@marker.es> | 2016-03-01 01:42:13 +0000 |
| commit | 145f815859ba21f45e67d315e52f360f029355c7 (patch) | |
| tree | 54448bc60a94415f63f7b6f46296c8d5e2ac58a6 /src/extension/internal/cdr-input.cpp | |
| parent | Improve fill rule and add mass option (diff) | |
| parent | type in commit r14664 (diff) | |
| download | inkscape-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.cpp | 8 |
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) { |
