From 24540e4b030c67f025c0cfe5530b0b3326172dae Mon Sep 17 00:00:00 2001 From: imbecile Date: Fri, 5 Mar 2010 06:45:59 +0300 Subject: [PATCH] [9521] Let build map extractor at Mac OSX Also restore build at Windows (Win32 not have unistd.h) Win32 ad.exe binary updated but not expected any functional differences. Signed-off-by: VladimirMangos --- contrib/extractor/ad.exe | Bin 165888 -> 165888 bytes contrib/extractor/libmpq/common.cpp | 51 ++++++++++++---------------- contrib/extractor/libmpq/common.h | 2 ++ contrib/extractor/libmpq/mpq.cpp | 10 +++--- src/shared/revision_nr.h | 2 +- 5 files changed, 28 insertions(+), 37 deletions(-) diff --git a/contrib/extractor/ad.exe b/contrib/extractor/ad.exe index a46be68c5df8299d92e93ca9370c2aac7b258567..a98095e3030334aa9791ce51be0eb30472fd7e89 100755 GIT binary patch delta 21896 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 NnWv@3?TaPt{{yDzK_&nI delta 21764 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 diff --git a/contrib/extractor/libmpq/common.cpp b/contrib/extractor/libmpq/common.cpp index 7b9020875..8ce864627 100644 --- a/contrib/extractor/libmpq/common.cpp +++ b/contrib/extractor/libmpq/common.cpp @@ -22,7 +22,11 @@ #define _CRT_SECURE_NO_DEPRECATE //#include #include -//#include + +#ifndef WIN32 +#include +#endif + #include #include #include @@ -30,6 +34,17 @@ #include "common.h" #include +unsigned int libmpq_lseek(mpq_archive* mpq_a, unsigned int pos) +{ +#ifdef WIN32 + return (unsigned int)_lseeki64(mpq_a->fd, pos, SEEK_SET); +#elif defined(__APPLE__) + return (unsigned int)lseek(mpq_a->fd, pos, SEEK_SET); +#else + return (unsigned int)lseek64(mpq_a->fd, pos, SEEK_SET); +#endif +} + /* * This function decrypts a MPQ block. */ @@ -396,11 +411,7 @@ int libmpq_read_hashtable(mpq_archive *mpq_a) { /* Read the hash table into the buffer */ bytes = mpq_a->header->hashtablesize * sizeof(mpq_hash); - #ifdef WIN32 - _lseeki64(mpq_a->fd, mpq_a->header->hashtablepos, SEEK_SET); - #else - lseek64(mpq_a->fd, mpq_a->header->hashtablepos, SEEK_SET); - #endif + libmpq_lseek(mpq_a, mpq_a->header->hashtablepos); rb = _read(mpq_a->fd, mpq_a->hashtable, bytes); if (rb != bytes) { @@ -455,11 +466,7 @@ int libmpq_read_blocktable(mpq_archive *mpq_a) { bytes = mpq_a->header->blocktablesize * sizeof(mpq_block); memset(mpq_a->blocktable, 0, mpq_a->header->blocktablesize * sizeof(mpq_block)); - #ifdef WIN32 - _lseeki64(mpq_a->fd, mpq_a->header->blocktablepos, SEEK_SET); - #else - lseek64(mpq_a->fd, mpq_a->header->blocktablepos, SEEK_SET); - #endif + libmpq_lseek(mpq_a, mpq_a->header->blocktablepos); rb = _read(mpq_a->fd, mpq_a->blocktable, bytes); if (rb != bytes) { @@ -519,12 +526,7 @@ int libmpq_file_read_block(mpq_archive *mpq_a, mpq_file *mpq_f, unsigned int blo unsigned int nread; if (mpq_f->mpq_b->filepos != mpq_a->filepos) { - #ifdef WIN32 - _lseeki64(mpq_a->fd, mpq_f->mpq_b->filepos, SEEK_SET); - #else - lseek64(mpq_a->fd, mpq_f->mpq_b->filepos, SEEK_SET); - - #endif + libmpq_lseek(mpq_a, mpq_f->mpq_b->filepos); } /* Read block positions from begin of file. */ @@ -569,12 +571,7 @@ int libmpq_file_read_block(mpq_archive *mpq_a, mpq_file *mpq_f, unsigned int blo if (mpq_f->blockpos[0] != nread) { /* Try once again to detect file seed and decrypt the blocks */ - - #ifdef WIN32 - _lseeki64(mpq_a->fd, mpq_f->mpq_b->filepos, SEEK_SET); - #else - lseek64(mpq_a->fd, mpq_f->mpq_b->filepos, SEEK_SET); - #endif + libmpq_lseek(mpq_a, mpq_f->mpq_b->filepos); nread = _read(mpq_a->fd, mpq_f->blockpos, (mpq_f->nblocks + 1) * sizeof(int)); mpq_f->seed = libmpq_detect_fileseed(mpq_a, mpq_f->blockpos, nread); @@ -611,13 +608,7 @@ int libmpq_file_read_block(mpq_archive *mpq_a, mpq_file *mpq_f, unsigned int blo /* Set file pointer, if necessary. */ if (mpq_a->filepos != readpos) { - - #ifdef WIN32 - mpq_a->filepos = _lseeki64(mpq_a->fd, readpos, SEEK_SET); - #else - mpq_a->filepos = lseek64(mpq_a->fd, readpos, SEEK_SET); - #endif - + mpq_a->filepos = libmpq_lseek(mpq_a, readpos); } /* 15018F87 - Read all requested blocks. */ diff --git a/contrib/extractor/libmpq/common.h b/contrib/extractor/libmpq/common.h index 5794c162e..57b34e9cd 100644 --- a/contrib/extractor/libmpq/common.h +++ b/contrib/extractor/libmpq/common.h @@ -70,3 +70,5 @@ char *libmpq_conf_delete_char(char *buf, char *chars); int libmpq_conf_get_array(FILE *fp, char *search_value, char ***filelist, int *entries); int libmpq_free_listfile(char **filelist); int libmpq_read_listfile(mpq_archive *mpq_a, FILE *fp); + +unsigned int libmpq_lseek(mpq_archive* mpq_a, unsigned int pos); diff --git a/contrib/extractor/libmpq/mpq.cpp b/contrib/extractor/libmpq/mpq.cpp index e40f15de2..9d60258f0 100644 --- a/contrib/extractor/libmpq/mpq.cpp +++ b/contrib/extractor/libmpq/mpq.cpp @@ -76,12 +76,10 @@ int libmpq_archive_open(mpq_archive *mpq_a, unsigned char *mpq_filename) { while (!ncnt) { mpq_a->header->id = 0; - #ifdef WIN32 - _lseeki64(mpq_a->fd, mpq_a->mpqpos, SEEK_SET); - #else - lseek64(mpq_a->fd, mpq_a->mpqpos, SEEK_SET); - #endif - rb = _read(mpq_a->fd, mpq_a->header, sizeof(mpq_header)); + + libmpq_lseek(mpq_a, mpq_a->mpqpos); + + rb = _read(mpq_a->fd, mpq_a->header, sizeof(mpq_header)); /* if different number of bytes read, break the loop */ if (rb != sizeof(mpq_header)) { diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 3f587c675..e43a1f416 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9520" + #define REVISION_NR "9521" #endif // __REVISION_NR_H__