diff options
Diffstat (limited to 'src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx')
| -rw-r--r-- | src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx index efbe65d01..b0a4c52e1 100644 --- a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx +++ b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx @@ -50,6 +50,9 @@ typedef RPC_STATUS (WINAPI* uuid_func)(UUID __RPC_FAR *Uuid); #ifdef __CYGWIN__ # include <mntent.h> #endif +#if defined(HAVE_LIBZ) +# include <zlib.h> +#endif inline int isdirsep(char c) { return c == '/' || c == '\\'; } @@ -908,6 +911,19 @@ void Fl_WinAPI_System_Driver::gettime(time_t *sec, int *usec) { *usec = t.millitm * 1000; } +void* Fl_WinAPI_System_Driver::gzopen(const char *fname, const char *mode) { +#if defined(HAVE_LIBZ) + 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, mode); + delete[] wc; + return gzf; +#else + return NULL; +#endif +} + // // End of "$Id$". // |
