Ver Fonte

Patched to compile with OpenWatcom.

Ryan C. Gordon há 8 anos atrás
pai
commit
062bdc2c5b
2 ficheiros alterados com 16 adições e 10 exclusões
  1. 15 9
      src/archiver_iso9660.c
  2. 1 1
      src/physfs.c

+ 15 - 9
src/archiver_iso9660.c

@@ -256,7 +256,8 @@ static int iso_atoi4(char *text)
 } /* iso_atoi4 */
 } /* iso_atoi4 */
 
 
 static PHYSFS_sint64 iso_volume_mktime(ISO9660VolumeTimestamp *timestamp)
 static PHYSFS_sint64 iso_volume_mktime(ISO9660VolumeTimestamp *timestamp)
-{
+{
+    PHYSFS_sint64 value;
     struct tm tm;
     struct tm tm;
     tm.tm_year = iso_atoi4(timestamp->year);
     tm.tm_year = iso_atoi4(timestamp->year);
     tm.tm_mon = iso_atoi2(timestamp->month) - 1;
     tm.tm_mon = iso_atoi2(timestamp->month) - 1;
@@ -265,7 +266,7 @@ static PHYSFS_sint64 iso_volume_mktime(ISO9660VolumeTimestamp *timestamp)
     tm.tm_min = iso_atoi2(timestamp->minute);
     tm.tm_min = iso_atoi2(timestamp->minute);
     tm.tm_sec = iso_atoi2(timestamp->second);
     tm.tm_sec = iso_atoi2(timestamp->second);
     /* this allows values outside the range of a unix timestamp... sanitize them */
     /* this allows values outside the range of a unix timestamp... sanitize them */
-    PHYSFS_sint64 value = mktime(&tm);
+    value = mktime(&tm);     
     return value == -1 ? 0 : value;
     return value == -1 ? 0 : value;
 } /* iso_volume_mktime */
 } /* iso_volume_mktime */
 
 
@@ -343,9 +344,9 @@ static int iso_extractfilename(ISO9660Handle *handle,
 
 
 static int iso_readimage(ISO9660Handle *handle, PHYSFS_uint64 where,
 static int iso_readimage(ISO9660Handle *handle, PHYSFS_uint64 where,
                          void *buffer, PHYSFS_uint64 len)
                          void *buffer, PHYSFS_uint64 len)
-{
+{
+    int rc = -1;
     BAIL_IF_MACRO(!__PHYSFS_platformGrabMutex(handle->mutex), ERRPASS, -1);
     BAIL_IF_MACRO(!__PHYSFS_platformGrabMutex(handle->mutex), ERRPASS, -1);
-    int rc = -1;
     if (where != handle->currpos)
     if (where != handle->currpos)
         GOTO_IF_MACRO(!handle->io->seek(handle->io,where), ERRPASS, unlockme);
         GOTO_IF_MACRO(!handle->io->seek(handle->io,where), ERRPASS, unlockme);
     rc = handle->io->read(handle->io, buffer, len);
     rc = handle->io->read(handle->io, buffer, len);
@@ -689,12 +690,14 @@ static void iso_file_close_mem(ISO9660FileHandle *fhandle)
 static PHYSFS_uint32 iso_file_read_foreign(ISO9660FileHandle *filehandle,
 static PHYSFS_uint32 iso_file_read_foreign(ISO9660FileHandle *filehandle,
                                            void *buffer, PHYSFS_uint64 len)
                                            void *buffer, PHYSFS_uint64 len)
 {
 {
+    PHYSFS_sint64 rc;
+
     /* check remaining bytes & max obj which can be fetched */
     /* check remaining bytes & max obj which can be fetched */
     const PHYSFS_sint64 bytesleft = filehandle->filesize - filehandle->currpos;
     const PHYSFS_sint64 bytesleft = filehandle->filesize - filehandle->currpos;
     if (bytesleft < len)
     if (bytesleft < len)
         len = bytesleft;
         len = bytesleft;
 
 
-    const PHYSFS_sint64 rc = filehandle->io->read(filehandle->io, buffer, len);
+    rc = filehandle->io->read(filehandle->io, buffer, len);
     BAIL_IF_MACRO(rc == -1, ERRPASS, -1);
     BAIL_IF_MACRO(rc == -1, ERRPASS, -1);
 
 
     filehandle->currpos += rc; /* i trust my internal book keeping */
     filehandle->currpos += rc; /* i trust my internal book keeping */
@@ -705,11 +708,13 @@ static PHYSFS_uint32 iso_file_read_foreign(ISO9660FileHandle *filehandle,
 
 
 static int iso_file_seek_foreign(ISO9660FileHandle *fhandle,
 static int iso_file_seek_foreign(ISO9660FileHandle *fhandle,
                                  PHYSFS_sint64 offset)
                                  PHYSFS_sint64 offset)
-{
+{
+    PHYSFS_sint64 pos;
+
     BAIL_IF_MACRO(offset < 0, PHYSFS_ERR_INVALID_ARGUMENT, 0);
     BAIL_IF_MACRO(offset < 0, PHYSFS_ERR_INVALID_ARGUMENT, 0);
     BAIL_IF_MACRO(offset >= fhandle->filesize, PHYSFS_ERR_PAST_EOF, 0);
     BAIL_IF_MACRO(offset >= fhandle->filesize, PHYSFS_ERR_PAST_EOF, 0);
 
 
-    PHYSFS_sint64 pos = fhandle->startblock * 2048 + offset;
+    pos = fhandle->startblock * 2048 + offset;
     BAIL_IF_MACRO(!fhandle->io->seek(fhandle->io, pos), ERRPASS, -1);
     BAIL_IF_MACRO(!fhandle->io->seek(fhandle->io, pos), ERRPASS, -1);
 
 
     fhandle->currpos = offset;
     fhandle->currpos = offset;
@@ -725,10 +730,11 @@ static void iso_file_close_foreign(ISO9660FileHandle *fhandle)
 
 
 
 
 static int iso_file_open_mem(ISO9660Handle *handle, ISO9660FileHandle *fhandle)
 static int iso_file_open_mem(ISO9660Handle *handle, ISO9660FileHandle *fhandle)
-{
+{
+    int rc;
     fhandle->cacheddata = allocator.Malloc(fhandle->filesize);
     fhandle->cacheddata = allocator.Malloc(fhandle->filesize);
     BAIL_IF_MACRO(!fhandle->cacheddata, PHYSFS_ERR_OUT_OF_MEMORY, -1);
     BAIL_IF_MACRO(!fhandle->cacheddata, PHYSFS_ERR_OUT_OF_MEMORY, -1);
-    int rc = iso_readimage(handle, fhandle->startblock * 2048,
+    rc = iso_readimage(handle, fhandle->startblock * 2048,
                            fhandle->cacheddata, fhandle->filesize);
                            fhandle->cacheddata, fhandle->filesize);
     GOTO_IF_MACRO(rc < 0, ERRPASS, freemem);
     GOTO_IF_MACRO(rc < 0, ERRPASS, freemem);
     GOTO_IF_MACRO(rc == 0, PHYSFS_ERR_CORRUPT, freemem);
     GOTO_IF_MACRO(rc == 0, PHYSFS_ERR_CORRUPT, freemem);

+ 1 - 1
src/physfs.c

@@ -2768,7 +2768,7 @@ int PHYSFS_setBuffer(PHYSFS_File *handle, PHYSFS_uint64 _bufsize)
 
 
     /* !!! FIXME: actually, why use 32 bits here? */
     /* !!! FIXME: actually, why use 32 bits here? */
     /*BAIL_IF_MACRO(_bufsize > 0xFFFFFFFF, "buffer must fit in 32-bits", 0);*/
     /*BAIL_IF_MACRO(_bufsize > 0xFFFFFFFF, "buffer must fit in 32-bits", 0);*/
-    BAIL_IF_MACRO(_bufsize > 0xFFFFFFFF, PHYSFS_ERR_INVALID_ARGUMENT, 0);
+    BAIL_IF_MACRO(_bufsize > __PHYSFS_UI64(0xFFFFFFFF), PHYSFS_ERR_INVALID_ARGUMENT, 0);
     bufsize = (PHYSFS_uint32) _bufsize;
     bufsize = (PHYSFS_uint32) _bufsize;
 
 
     BAIL_IF_MACRO(!PHYSFS_flush(handle), ERRPASS, 0);
     BAIL_IF_MACRO(!PHYSFS_flush(handle), ERRPASS, 0);