Don't use off64_t/_wfopen on MinGW32 in C++11 mode
Unfortunately, standard headers on MinGW32 insist on undefining off64_t
and _wfopen extensions if __STRICT_ANSI__ is true (e.g. C++11 mode). This
leads to compilation errors since b7a1fec
started to use _wfopen in strict
mode. That change erroneously checked GCC version - however, the version
itself is irrelevant; the actual criteria is whether mingw64 runtime is
used.
off64_t is not useful on MinGW32 since we only need it to open large files
on 64-bit platforms; unfortunately, the lack of _wfopen means we won't be
able to support wide-char paths on Windows for MinGW32.
Fixes #24.
This commit is contained in:
parent
10c9206de2
commit
ff16dbdd4c
2 changed files with 3 additions and 3 deletions
|
@ -3995,7 +3995,7 @@ PUGI__NS_BEGIN
|
|||
_fseeki64(file, 0, SEEK_END);
|
||||
length_type length = _ftelli64(file);
|
||||
_fseeki64(file, 0, SEEK_SET);
|
||||
#elif defined(__MINGW32__) && !defined(__NO_MINGW_LFS) && !(defined(__STRICT_ANSI__) && __GNUC__ * 100 + __GNUC_MINOR__ <= 405)
|
||||
#elif defined(__MINGW32__) && !defined(__NO_MINGW_LFS) && (!defined(__STRICT_ANSI__) || defined(__MINGW64_VERSION_MAJOR))
|
||||
// there are 64-bit versions of fseek/ftell, let's use them
|
||||
typedef off64_t length_type;
|
||||
|
||||
|
@ -4240,7 +4240,7 @@ PUGI__NS_BEGIN
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(PUGI__MSVC_CRT_VERSION) || defined(__BORLANDC__) || (defined(__MINGW32__) && !(defined(__STRICT_ANSI__) && __GNUC__ * 100 + __GNUC_MINOR__ <= 405))
|
||||
#if defined(PUGI__MSVC_CRT_VERSION) || defined(__BORLANDC__) || (defined(__MINGW32__) && (!defined(__STRICT_ANSI__) || defined(__MINGW64_VERSION_MAJOR)))
|
||||
PUGI__FN FILE* open_file_wide(const wchar_t* path, const wchar_t* mode)
|
||||
{
|
||||
return _wfopen(path, mode);
|
||||
|
|
|
@ -323,7 +323,7 @@ TEST(document_load_file_wide_ascii)
|
|||
CHECK_NODE(doc, STR("<node />"));
|
||||
}
|
||||
|
||||
#if !defined(__DMC__) && !defined(__MWERKS__) && !(defined(__MINGW32__) && defined(__STRICT_ANSI__) && __GNUC__ * 100 + __GNUC_MINOR__ <= 405)
|
||||
#if !defined(__DMC__) && !defined(__MWERKS__) && !(defined(__MINGW32__) && defined(__STRICT_ANSI__) && !defined(__MINGW64_VERSION_MAJOR))
|
||||
TEST(document_load_file_wide_unicode)
|
||||
{
|
||||
pugi::xml_document doc;
|
||||
|
|
Loading…
Add table
Reference in a new issue