Patched platform_os2.c to compile.
This commit is contained in:
parent
58bca6ae05
commit
9ca88e3794
|
@ -35,7 +35,7 @@ static PHYSFS_ErrorCode errcodeFromAPIRET(const APIRET rc)
|
||||||
case NO_ERROR: return PHYSFS_ERR_OK; /* not an error. */
|
case NO_ERROR: return PHYSFS_ERR_OK; /* not an error. */
|
||||||
case ERROR_INTERRUPT: return PHYSFS_ERR_OK; /* not an error. */
|
case ERROR_INTERRUPT: return PHYSFS_ERR_OK; /* not an error. */
|
||||||
case ERROR_TIMEOUT: return PHYSFS_ERR_OK; /* not an error. */
|
case ERROR_TIMEOUT: return PHYSFS_ERR_OK; /* not an error. */
|
||||||
case ERROR_NOT_ENOUGH_MEMORY: return ERR_OUT_OF_MEMORY;
|
case ERROR_NOT_ENOUGH_MEMORY: return PHYSFS_ERR_OUT_OF_MEMORY;
|
||||||
case ERROR_FILE_NOT_FOUND: return PHYSFS_ERR_NOT_FOUND;
|
case ERROR_FILE_NOT_FOUND: return PHYSFS_ERR_NOT_FOUND;
|
||||||
case ERROR_PATH_NOT_FOUND: return PHYSFS_ERR_NOT_FOUND;
|
case ERROR_PATH_NOT_FOUND: return PHYSFS_ERR_NOT_FOUND;
|
||||||
case ERROR_ACCESS_DENIED: return PHYSFS_ERR_PERMISSION;
|
case ERROR_ACCESS_DENIED: return PHYSFS_ERR_PERMISSION;
|
||||||
|
@ -185,13 +185,16 @@ static int is_cdrom_drive(ULONG drive)
|
||||||
ULONG ul1, ul2;
|
ULONG ul1, ul2;
|
||||||
APIRET rc;
|
APIRET rc;
|
||||||
HFILE hfile = NULLHANDLE;
|
HFILE hfile = NULLHANDLE;
|
||||||
unsigned char drivename[3] = { 'A' + drive, ':', '\0' };
|
unsigned char drivename[3] = { 0, ':', '\0' };
|
||||||
|
|
||||||
|
drivename[0] = 'A' + drive;
|
||||||
|
|
||||||
rc = DosOpen(drivename, &hfile, &ul1, 0, 0,
|
rc = DosOpen(drivename, &hfile, &ul1, 0, 0,
|
||||||
OPEN_ACTION_OPEN_IF_EXISTS | OPEN_ACTION_FAIL_IF_NEW,
|
OPEN_ACTION_OPEN_IF_EXISTS | OPEN_ACTION_FAIL_IF_NEW,
|
||||||
OPEN_FLAGS_DASD | OPEN_FLAGS_FAIL_ON_ERROR |
|
OPEN_FLAGS_DASD | OPEN_FLAGS_FAIL_ON_ERROR |
|
||||||
OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE, NULL);
|
OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE, NULL);
|
||||||
BAIL_IF_MACRO(rc != NO_ERROR, NULL, 0);
|
if (rc != NO_ERROR)
|
||||||
|
return 0;
|
||||||
|
|
||||||
data = 0;
|
data = 0;
|
||||||
param = PHYSFS_swapULE32(CD01);
|
param = PHYSFS_swapULE32(CD01);
|
||||||
|
@ -229,6 +232,8 @@ void __PHYSFS_platformDetectAvailableCDs(PHYSFS_StringCallback cb, void *data)
|
||||||
|
|
||||||
char *__PHYSFS_platformCalcBaseDir(const char *argv0)
|
char *__PHYSFS_platformCalcBaseDir(const char *argv0)
|
||||||
{
|
{
|
||||||
|
char *retval = NULL;
|
||||||
|
|
||||||
if (baseDir == NULL)
|
if (baseDir == NULL)
|
||||||
{
|
{
|
||||||
char buf[CCHMAXPATH];
|
char buf[CCHMAXPATH];
|
||||||
|
@ -258,12 +263,12 @@ char *__PHYSFS_platformCalcBaseDir(const char *argv0)
|
||||||
cvt_path_to_correct_case(buf);
|
cvt_path_to_correct_case(buf);
|
||||||
|
|
||||||
baseDir = (char *) allocator.Malloc(len + 1);
|
baseDir = (char *) allocator.Malloc(len + 1);
|
||||||
BAIL_IF_MACRO(baseDir == NULL, ERR_OUT_OF_MEMORY, 0);
|
BAIL_IF_MACRO(baseDir == NULL, PHYSFS_ERR_OUT_OF_MEMORY, 0);
|
||||||
strcpy(baseDir, buf);
|
strcpy(baseDir, buf);
|
||||||
} /* if */
|
} /* if */
|
||||||
|
|
||||||
char *retval = (char *) allocator.Malloc(strlen(baseDir) + 1);
|
retval = (char *) allocator.Malloc(strlen(baseDir) + 1);
|
||||||
BAIL_IF_MACRO(retval == NULL, ERR_OUT_OF_MEMORY, NULL);
|
BAIL_IF_MACRO(retval == NULL, PHYSFS_ERR_OUT_OF_MEMORY, NULL);
|
||||||
strcpy(retval, baseDir);
|
strcpy(retval, baseDir);
|
||||||
return retval;
|
return retval;
|
||||||
} /* __PHYSFS_platformCalcBaseDir */
|
} /* __PHYSFS_platformCalcBaseDir */
|
||||||
|
@ -292,7 +297,7 @@ char *__PHYSFS_platformCvtToDependent(const char *prepend,
|
||||||
char *retval = allocator.Malloc(len);
|
char *retval = allocator.Malloc(len);
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
BAIL_IF_MACRO(retval == NULL, ERR_OUT_OF_MEMORY, NULL);
|
BAIL_IF_MACRO(retval == NULL, PHYSFS_ERR_OUT_OF_MEMORY, NULL);
|
||||||
|
|
||||||
if (prepend)
|
if (prepend)
|
||||||
strcpy(retval, prepend);
|
strcpy(retval, prepend);
|
||||||
|
@ -312,7 +317,6 @@ char *__PHYSFS_platformCvtToDependent(const char *prepend,
|
||||||
|
|
||||||
|
|
||||||
void __PHYSFS_platformEnumerateFiles(const char *dirname,
|
void __PHYSFS_platformEnumerateFiles(const char *dirname,
|
||||||
int omitSymLinks,
|
|
||||||
PHYSFS_EnumFilesCallback callback,
|
PHYSFS_EnumFilesCallback callback,
|
||||||
const char *origdir,
|
const char *origdir,
|
||||||
void *callbackdata)
|
void *callbackdata)
|
||||||
|
@ -323,11 +327,7 @@ void __PHYSFS_platformEnumerateFiles(const char *dirname,
|
||||||
ULONG count = 1;
|
ULONG count = 1;
|
||||||
APIRET rc;
|
APIRET rc;
|
||||||
|
|
||||||
if (strlen(dirname) > sizeof (spec) - 5)
|
BAIL_IF_MACRO(strlen(dirname) > sizeof (spec) - 5, PHYSFS_ERR_BAD_FILENAME,);
|
||||||
{
|
|
||||||
__PHYSFS_setError(ERR_BAD_FILENAME);
|
|
||||||
return;
|
|
||||||
} /* if */
|
|
||||||
|
|
||||||
strcpy(spec, dirname);
|
strcpy(spec, dirname);
|
||||||
strcat(spec, (spec[strlen(spec) - 1] != '\\') ? "\\*.*" : "*.*");
|
strcat(spec, (spec[strlen(spec) - 1] != '\\') ? "\\*.*" : "*.*");
|
||||||
|
@ -367,7 +367,7 @@ char *__PHYSFS_platformCurrentDir(void)
|
||||||
rc = DosQueryCurrentDir(currentDisk, &byte, &pathSize);
|
rc = DosQueryCurrentDir(currentDisk, &byte, &pathSize);
|
||||||
pathSize++; /* Add space for null terminator. */
|
pathSize++; /* Add space for null terminator. */
|
||||||
retval = (char *) allocator.Malloc(pathSize + 3); /* plus "x:\\" */
|
retval = (char *) allocator.Malloc(pathSize + 3); /* plus "x:\\" */
|
||||||
BAIL_IF_MACRO(retval == NULL, ERR_OUT_OF_MEMORY, NULL);
|
BAIL_IF_MACRO(retval == NULL, PHYSFS_ERR_OUT_OF_MEMORY, NULL);
|
||||||
|
|
||||||
/* Actually get the string this time. */
|
/* Actually get the string this time. */
|
||||||
rc = DosQueryCurrentDir(currentDisk, (PBYTE) (retval + 3), &pathSize);
|
rc = DosQueryCurrentDir(currentDisk, (PBYTE) (retval + 3), &pathSize);
|
||||||
|
@ -392,7 +392,7 @@ char *__PHYSFS_platformRealPath(const char *_path)
|
||||||
APIRET rc = DosQueryPathInfo(path, FIL_QUERYFULLNAME, buf, sizeof (buf));
|
APIRET rc = DosQueryPathInfo(path, FIL_QUERYFULLNAME, buf, sizeof (buf));
|
||||||
BAIL_IF_MACRO(rc != NO_ERROR, errcodeFromAPIRET(rc), NULL);
|
BAIL_IF_MACRO(rc != NO_ERROR, errcodeFromAPIRET(rc), NULL);
|
||||||
retval = (char *) allocator.Malloc(strlen(buf) + 1);
|
retval = (char *) allocator.Malloc(strlen(buf) + 1);
|
||||||
BAIL_IF_MACRO(retval == NULL, ERR_OUT_OF_MEMORY, NULL);
|
BAIL_IF_MACRO(retval == NULL, PHYSFS_ERR_OUT_OF_MEMORY, NULL);
|
||||||
strcpy(retval, buf);
|
strcpy(retval, buf);
|
||||||
return retval;
|
return retval;
|
||||||
} /* __PHYSFS_platformRealPath */
|
} /* __PHYSFS_platformRealPath */
|
||||||
|
@ -483,7 +483,7 @@ PHYSFS_sint64 __PHYSFS_platformRead(void *opaque, void *buf, PHYSFS_uint64 len)
|
||||||
{
|
{
|
||||||
ULONG br = 0;
|
ULONG br = 0;
|
||||||
APIRET rc;
|
APIRET rc;
|
||||||
BAIL_IF_MACRO(!__PHYSFS_ui64FitsAddressSpace(len),ERR_INVALID_ARGUMENT,-1);
|
BAIL_IF_MACRO(!__PHYSFS_ui64FitsAddressSpace(len),PHYSFS_ERR_INVALID_ARGUMENT,-1);
|
||||||
rc = DosRead((HFILE) opaque, buf, (ULONG) len, &br);
|
rc = DosRead((HFILE) opaque, buf, (ULONG) len, &br);
|
||||||
BAIL_IF_MACRO(rc != NO_ERROR, errcodeFromAPIRET(rc), (br > 0) ? ((PHYSFS_sint64) br) : -1);
|
BAIL_IF_MACRO(rc != NO_ERROR, errcodeFromAPIRET(rc), (br > 0) ? ((PHYSFS_sint64) br) : -1);
|
||||||
return (PHYSFS_sint64) br;
|
return (PHYSFS_sint64) br;
|
||||||
|
@ -495,8 +495,8 @@ PHYSFS_sint64 __PHYSFS_platformWrite(void *opaque, const void *buf,
|
||||||
{
|
{
|
||||||
ULONG bw = 0;
|
ULONG bw = 0;
|
||||||
APIRET rc;
|
APIRET rc;
|
||||||
BAIL_IF_MACRO(!__PHYSFS_ui64FitsAddressSpace(len),ERR_INVALID_ARGUMENT,-1);
|
BAIL_IF_MACRO(!__PHYSFS_ui64FitsAddressSpace(len),PHYSFS_ERR_INVALID_ARGUMENT,-1);
|
||||||
rc = DosWrite((HFILE) opaque, buf, (ULONG) len, &bw);
|
rc = DosWrite((HFILE) opaque, (void *) buf, (ULONG) len, &bw);
|
||||||
BAIL_IF_MACRO(rc != NO_ERROR, errcodeFromAPIRET(rc), (bw > 0) ? ((PHYSFS_sint64) bw) : -1);
|
BAIL_IF_MACRO(rc != NO_ERROR, errcodeFromAPIRET(rc), (bw > 0) ? ((PHYSFS_sint64) bw) : -1);
|
||||||
return (PHYSFS_sint64) bw;
|
return (PHYSFS_sint64) bw;
|
||||||
} /* __PHYSFS_platformWrite */
|
} /* __PHYSFS_platformWrite */
|
||||||
|
@ -510,7 +510,7 @@ int __PHYSFS_platformSeek(void *opaque, PHYSFS_uint64 pos)
|
||||||
APIRET rc;
|
APIRET rc;
|
||||||
|
|
||||||
/* hooray for 32-bit filesystem limits! :) */
|
/* hooray for 32-bit filesystem limits! :) */
|
||||||
BAIL_IF_MACRO((PHYSFS_uint64) dist != pos, ERR_SEEK_OUT_OF_RANGE, 0);
|
BAIL_IF_MACRO((PHYSFS_uint64) dist != pos, PHYSFS_ERR_INVALID_ARGUMENT, 0);
|
||||||
rc = DosSetFilePtr(hfile, dist, FILE_BEGIN, &dummy);
|
rc = DosSetFilePtr(hfile, dist, FILE_BEGIN, &dummy);
|
||||||
BAIL_IF_MACRO(rc != NO_ERROR, errcodeFromAPIRET(rc), 0);
|
BAIL_IF_MACRO(rc != NO_ERROR, errcodeFromAPIRET(rc), 0);
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -568,7 +568,7 @@ PHYSFS_sint64 os2TimeToUnixTime(const FDATE *date, const FTIME *time)
|
||||||
{
|
{
|
||||||
struct tm tm;
|
struct tm tm;
|
||||||
|
|
||||||
tm.tm_sec = ((PHYSFS_uint32) time->.twosecs) * 2;
|
tm.tm_sec = ((PHYSFS_uint32) time->twosecs) * 2;
|
||||||
tm.tm_min = time->minutes;
|
tm.tm_min = time->minutes;
|
||||||
tm.tm_hour = time->hours;
|
tm.tm_hour = time->hours;
|
||||||
tm.tm_mday = date->day;
|
tm.tm_mday = date->day;
|
||||||
|
@ -582,11 +582,10 @@ PHYSFS_sint64 os2TimeToUnixTime(const FDATE *date, const FTIME *time)
|
||||||
} /* os2TimeToUnixTime */
|
} /* os2TimeToUnixTime */
|
||||||
|
|
||||||
|
|
||||||
int __PHYSFS_platformStat(const char *filename, PHYSFS_Stat *st)
|
int __PHYSFS_platformStat(const char *filename, PHYSFS_Stat *stat)
|
||||||
{
|
{
|
||||||
struct tm tm;
|
|
||||||
FILESTATUS3 fs;
|
FILESTATUS3 fs;
|
||||||
const unsigned char *fname = (const unsigned char *) _fname;
|
const unsigned char *fname = (const unsigned char *) filename;
|
||||||
const APIRET rc = DosQueryPathInfo(fname, FIL_STANDARD, &fs, sizeof (fs));
|
const APIRET rc = DosQueryPathInfo(fname, FIL_STANDARD, &fs, sizeof (fs));
|
||||||
BAIL_IF_MACRO(rc != NO_ERROR, errcodeFromAPIRET(rc), 0);
|
BAIL_IF_MACRO(rc != NO_ERROR, errcodeFromAPIRET(rc), 0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue