From 789ed089c903922d0d66fcc2849dd24fbcaf2495 Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Thu, 12 Oct 2017 14:42:12 +0000 Subject: Add fl_open_ext() to control whether the file is opened in binary/text mode. This new function allows to write Fl_SVG_Image::fl_gzopen() in a completely platform-independent way. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12489 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx') diff --git a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx index efbe65d01..aa1ff7e50 100644 --- a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx +++ b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx @@ -42,6 +42,7 @@ typedef RPC_STATUS (WINAPI* uuid_func)(UUID __RPC_FAR *Uuid); #include #include #include +#include // Apparently Borland C++ defines DIRECTORY in , which // interfers with the Fl_File_Icon enumeration of the same name. # ifdef DIRECTORY @@ -136,6 +137,12 @@ int Fl_WinAPI_System_Driver::open(const char* f, int oflags, int pmode) { else return _wopen(wbuf, oflags, pmode); } +int Fl_WinAPI_System_Driver::open_ext(const char* f, int translation, int oflags, int pmode) { + if (oflags == 0) oflags = _O_RDONLY; + oflags |= (translation ? _O_TEXT : _O_BINARY); + return this->open(f, oflags, pmode); +} + FILE *Fl_WinAPI_System_Driver::fopen(const char* f, const char *mode) { size_t l = strlen(f); unsigned wn = fl_utf8toUtf16(f, (unsigned) l, NULL, 0) + 1; // Query length -- cgit v1.2.3