diff options
| author | Manolo Gouy <Manolo> | 2017-10-06 12:13:41 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2017-10-06 12:13:41 +0000 |
| commit | 784ff3b52df1663da92ac3b151b3d576d2b34872 (patch) | |
| tree | ec4108fceb62eda579074b896d6ae7e00f3494bd /src/Fl_SVG_Image.cxx | |
| parent | 63420dd95686abbacc30e4ec1a2082235ca05728 (diff) | |
Fl_SVG_Image::fl_gzopen(): write it more platform-independently (still not completely though)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12480 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_SVG_Image.cxx')
| -rw-r--r-- | src/Fl_SVG_Image.cxx | 16 |
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 |
