diff --git a/contrib/extractor/libmpq/common.h b/contrib/extractor/libmpq/common.h index ad2c0f101..5794c162e 100644 --- a/contrib/extractor/libmpq/common.h +++ b/contrib/extractor/libmpq/common.h @@ -49,6 +49,12 @@ #include #endif +#ifdef O_LARGEFILE + #define MPQ_FILE_OPEN_FLAGS (O_RDONLY | O_BINARY | O_LARGEFILE) +#else + #define MPQ_FILE_OPEN_FLAGS (O_RDONLY | O_BINARY) +#endif + #ifndef min #define min(a, b) ((a < b) ? a : b) #endif diff --git a/contrib/extractor/libmpq/mpq.cpp b/contrib/extractor/libmpq/mpq.cpp index 0761d81ca..9582b72b5 100644 --- a/contrib/extractor/libmpq/mpq.cpp +++ b/contrib/extractor/libmpq/mpq.cpp @@ -59,7 +59,7 @@ int libmpq_archive_open(mpq_archive *mpq_a, unsigned char *mpq_filename) { memset(mpq_a->header, 0, sizeof(mpq_header)); /* Check if file exists and is readable */ - fd = _open((char *)mpq_filename, O_RDONLY | O_BINARY | O_LARGEFILE); + fd = _open((char *)mpq_filename, MPQ_FILE_OPEN_FLAGS); if (fd == LIBMPQ_EFILE) { return LIBMPQ_EFILE; }