summaryrefslogtreecommitdiffstats
path: root/src/extension/internal/cdr-input.cpp
diff options
context:
space:
mode:
authorShlomi Fish <shlomif@shlomifish.org>2017-01-28 11:44:56 +0000
committerShlomi Fish <shlomif@shlomifish.org>2017-01-28 11:44:56 +0000
commita11b9b0b60b4559cd9ffea150c7171fac7bec978 (patch)
treec79f0b3b79479ca4a22fecd442c857032543c25b /src/extension/internal/cdr-input.cpp
parentMerged. (diff)
parentrevert 15420 because of severe regression (diff)
downloadinkscape-a11b9b0b60b4559cd9ffea150c7171fac7bec978.tar.gz
inkscape-a11b9b0b60b4559cd9ffea150c7171fac7bec978.zip
Merged.
(bzr r15369.1.17)
Diffstat (limited to 'src/extension/internal/cdr-input.cpp')
-rw-r--r--src/extension/internal/cdr-input.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/extension/internal/cdr-input.cpp b/src/extension/internal/cdr-input.cpp
index 92a11a6ac..0435f1396 100644
--- a/src/extension/internal/cdr-input.cpp
+++ b/src/extension/internal/cdr-input.cpp
@@ -214,6 +214,13 @@ void CdrImportDialog::_setPreviewPage()
SPDocument *CdrInput::open(Inkscape::Extension::Input * /*mod*/, const gchar * uri)
{
+ #ifdef WIN32
+ // RVNGFileStream uses fopen() internally which unfortunately only uses ANSI encoding on Windows
+ // therefore attempt to convert uri to the system codepage
+ // even if this is not possible the alternate short (8.3) file name will be used if available
+ uri = g_win32_locale_filename_from_utf8(uri);
+ #endif
+
RVNGFileStream input(uri);
if (!libcdr::CDRDocument::isSupported(&input)) {