summaryrefslogtreecommitdiff
path: root/src/Fl_SVG_Image.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Fl_SVG_Image.cxx')
-rw-r--r--src/Fl_SVG_Image.cxx16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/Fl_SVG_Image.cxx b/src/Fl_SVG_Image.cxx
index 313693fbd..12f6839a6 100644
--- a/src/Fl_SVG_Image.cxx
+++ b/src/Fl_SVG_Image.cxx
@@ -28,6 +28,9 @@
#include <stdlib.h>
#if defined(HAVE_LIBZ)
#include <zlib.h>
+# ifdef _WIN32
+# include <fcntl.h>
+# endif
#endif
#if !defined(HAVE_LONG_LONG)
@@ -79,18 +82,13 @@ float Fl_SVG_Image::svg_scaling_(int W, int H) {
/** Opens for reading a potentially gzip'ed file identified by a UTF-8 encoded filename. */
void* Fl_SVG_Image::fl_gzopen(const char *fname) {
#if defined(HAVE_LIBZ)
+ int flags = 0;
# ifdef _WIN32
- unsigned wl = fl_utf8towc(fname, strlen(fname), NULL, 0) + 1;
- wchar_t *wc = new wchar_t[wl];
- fl_utf8towc(fname, strlen(fname), wc, wl);
- gzFile gzf = gzopen_w(wc, "r");
- delete[] wc;
- return gzf;
-# else
- int fd = fl_open(fname, 0);
+ flags = _O_BINARY;
+# endif
+ int fd = fl_open(fname, flags);
if (fd < 0) return NULL;
return gzdopen(fd, "r");
-# endif
#else
return NULL;
#endif // HAVE_LIBZ