fix 221797 flush mork db file buffers on win98, r=me, sr=mscott, a=asa, initial patch by Christian Franke
git-svn-id: svn://10.0.0.236/trunk@150202 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
5d70e33d9f
commit
9b702bb3ba
@ -94,7 +94,13 @@
|
||||
#define MORK_FILETELL(file) ftell(file)
|
||||
#define MORK_FILESEEK(file, where, how) fseek(file, where, how)
|
||||
#define MORK_FILEREAD(outbuf, insize, file) fread(outbuf, 1, insize, file)
|
||||
#if defined(MORK_WIN)
|
||||
void mork_fileflush(FILE * file);
|
||||
#define MORK_FILEFLUSH(file) mork_fileflush(file)
|
||||
#else
|
||||
#define MORK_FILEFLUSH(file) fflush(file)
|
||||
#endif /*MORK_WIN*/
|
||||
|
||||
#if defined(MORK_OS2)
|
||||
FILE* mork_fileopen(const char* name, const char* mode);
|
||||
#define MORK_FILEOPEN(file, how) mork_fileopen(file, how)
|
||||
|
||||
@ -56,6 +56,11 @@
|
||||
#include "morkFile.h"
|
||||
#endif
|
||||
|
||||
#ifdef MORK_WIN
|
||||
#include "io.h"
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
// #define MORK_CONFIG_USE_ORKINFILE 1
|
||||
|
||||
#ifdef MORK_CONFIG_USE_ORKINFILE
|
||||
@ -920,5 +925,22 @@ morkStdioFile::Steal(nsIMdbEnv* ev, nsIMdbFile* ioThief)
|
||||
}
|
||||
|
||||
|
||||
#if defined(MORK_WIN)
|
||||
|
||||
void mork_fileflush(FILE * file)
|
||||
{
|
||||
fflush(file);
|
||||
OSVERSIONINFOA vi = { sizeof(OSVERSIONINFOA) };
|
||||
if ((GetVersionExA(&vi) && vi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS))
|
||||
{
|
||||
// Win9x/ME
|
||||
int fd = fileno(file);
|
||||
HANDLE fh = (HANDLE)_get_osfhandle(fd);
|
||||
FlushFileBuffers(fh);
|
||||
}
|
||||
}
|
||||
|
||||
#endif /*MORK_WIN*/
|
||||
|
||||
|
||||
//3456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user