Commit Graph

156 Commits

Author SHA1 Message Date
Ryan C. Gordon 3b0e1d7471 Various archiver swap and compare functions now check if they are
swapping/comparing an item against itself, for efficiency and to prevent
 overlapping memcpy() calls.
2008-02-20 12:24:10 +00:00
Ryan C. Gordon ac277daac4 Date: Sat, 2 Feb 2008 14:28:02 +1300
From: eH
To: physfs@icculus.org
Subject: [physfs] lzma.c msvc, etc. patch

I came across a few bugs compiling PhysFS with msvc9 - I've created a patch which seems to fix them:
SzFileReadImp / SzFileSeekImp:
Problem: Can't preform arithmatic on 'void *'
Fix:        Cast 'object' to unsigned long

LZMA_enumerateFiles:
Problem: There is no error handling if the directory 'dname' doesn't exist
Fix:         Check the return value of 'lzma_find_file()' before using it

LZMA_isDirectory:
Problem: return (file->item->IsDirectory) is illegal if 'file' doesn't exist
Fix:         Make sure 'file' isn't null before returning
2008-02-02 02:32:48 +00:00
Ryan C. Gordon 66631578f8 Many improvements to lzma.c (thanks, Dennis!). 2008-01-23 04:57:47 +00:00
Ryan C. Gordon d1d0ea025f FIXME removal: Replaced a strncpy() with a memcpy(). 2007-05-27 14:34:28 +00:00
Ryan C. Gordon 05e44324c8 Fixed zip archiver: could do bogus seek if a small, non-zip file got put
through isArchive().
2007-05-05 05:52:43 +00:00
Ryan C. Gordon 35dcb89748 Minor const correctness tweak in zip archiver. 2007-04-29 08:16:30 +00:00
Ryan C. Gordon 1e6550292d Logic bug in MVL/HOG/GRP archivers: these archives never contain subdirs...but they
only enumerated their files when looking in a directory other than the root,
 instead of enumerating only for the root. Thanks to Chris Taylor for the
 catch.
2007-03-28 17:29:52 +00:00
Ryan C. Gordon 7386320811 Replaced some Malloc and all the alloca() calls with __PHYSFS_smallAlloc(),
which will stack allocate small (128 or less bytes) blocks and Malloc the
 rest...naturally these now have to be paired with __PHYSFS_smallFree() calls,
 so you can't be as lazy as a basic alloca() would let you be. The benefit is
 both less malloc pressure for those temporary allocations and better stack
 overflow safety (so if some jerk tries to push a 78 megabyte string through
 the library as a filename, we won't try to strcpy it to the stack).
2007-03-24 03:54:58 +00:00
Ryan C. Gordon 6fe37fd840 Patched to compile with latest Platform SDK. 2007-03-19 07:44:04 +00:00
Ryan C. Gordon 607d39a1d3 Bunch of work on Unicode...added case-folding stricmp, removed
platform-specific stricmp implementations, changed appropriate calls to an
ASCII-only stricmp that ignores locale. Fixed case on UTF-8 API entry points.
2007-03-15 08:16:23 +00:00
Ryan C. Gordon 1a6f1787fa Fixes for BeOS and gcc2. 2007-03-12 03:41:20 +00:00
Ryan C. Gordon 53bbe35ddd Renamed LICENSE to LICENSE.txt 2007-03-11 10:10:28 +00:00
Ryan C. Gordon ca2489418e Removed config.h references from old autotools build system. 2007-03-11 09:44:21 +00:00
Ryan C. Gordon c6273ae317 Killed MIX archiver. 2007-03-10 06:41:26 +00:00
Ryan C. Gordon 6cdd5b5e57 Moved to CMake! 2007-03-10 06:32:52 +00:00
Ryan C. Gordon 7fc64a99cc Patched to compile. 2007-03-10 06:26:11 +00:00
Ryan C. Gordon d8f69c0e93 Changed PHYSFS_SUPPORTS_LZMA to PHYSFS_SUPPORTS_7Z. 2007-03-09 08:17:56 +00:00
Ryan C. Gordon a9d65e6d59 More 7zip work (thanks, Dennis!) 2006-11-05 10:06:02 +00:00
Ryan C. Gordon 64cb8c260e More corrections to lzma support from Dennis. 2006-09-27 09:21:56 +00:00
Ryan C. Gordon ab32c0313d Rewritten 7zip/lzma support (thanks, Dennis!) 2006-09-27 07:05:03 +00:00
Ryan C. Gordon 1c3d7dcc7c Some minor fixes and cleanups. 2006-04-11 15:01:15 +00:00
Ryan C. Gordon c527092aed 7zip support, written by Dennis Schridde, and heavily Ryanified by me. 2006-04-11 14:33:48 +00:00
Ryan C. Gordon c81367d0ca Changed my email address. 2006-01-01 12:33:19 +00:00
Ryan C. Gordon 361c434180 Patched archivers/wad.c to compile again. 2005-10-12 22:03:56 +00:00
Ryan C. Gordon 6e7e45cdaf API BREAKAGE: Changed PHYSFS_enumerateFilesCallback() to pass the originally
requested directory back to the app.
2005-09-18 21:44:42 +00:00
Ryan C. Gordon 3f6c5e6348 Moved to actual zlib 1.2.3. 2005-07-23 22:02:00 +00:00
Ryan C. Gordon 8f3ab12d22 From: Jorg Walter
To: icculus@clutteredmind.org
Subject: Bug in zip archiver
Date: Sat, 23 Jul 2005 22:19:09 +0200

Hi!

PhysFS has a bug in the ZIP archive module, function zip_find_start_of_dir.
Upon encountering a substring match, rc is set to a wrong value. The fix is
simple: swap both assignments like this:

[patch below  --Ed.]

Some additional info for testing: Symptoms when you encounter this bug: A dir
is reported as empty although it has files in it; prerequisites or
encountering it: two dirs, one a substring of another, like "data/txt" and
"data/txt2", laid out in a way so that variable "middle" points to a file in
txt2 at some point during zip_find_start_of_dir

By the way, if you're interested in where PhysFS is used: I found this bug
while writing a patch for DOSBox (http://dosbox.sourceforge.net) to support
ZIP files. And I'd love to see that enhanced PHYSFS_mount syntax in an
official release soon *hint* ;);)
2005-07-23 21:46:07 +00:00
Ryan C. Gordon ec86fac0bb Updated zlib to 1.2.2. 2005-07-13 15:06:21 +00:00
Ryan C. Gordon 16e00ed962 Added translation for WAD file type. 2005-03-16 11:27:31 +00:00
Ryan C. Gordon d840403c1c All memory management now goes through allocation hooks instead of directly to
C runtime malloc/realloc/free...
2005-03-14 11:49:30 +00:00
Ryan C. Gordon 389a4d826a Cleaned up some minor bloat with my new evil GOTO_*_MACRO macros. 2005-03-13 03:33:11 +00:00
Ryan C. Gordon 5c313d7a93 Fixed filename sorting, to fix lookups that shouldn't fail (thanks, Chris!). 2005-01-05 05:15:12 +00:00
Ryan C. Gordon 0492580bda Removed all the forward declaration cruft from the archivers. 2004-09-29 06:18:04 +00:00
Ryan C. Gordon c2765f8571 Added callback APIs and ripped up the internals everywhere to use them. 2004-09-29 06:09:29 +00:00
Ryan C. Gordon 90031c81f3 Did the same thing to FileHandles than I did to DirHandles, but this
triggered massive tweaking in physfs.c. A lot of code got little
cleanups, which was nice. Less malloc pressure, too, since opening a
file used to allocate a ton of crap and mush it together...now it's
basically down to one structure and the instance data in whatever
archiver.
2004-09-26 13:00:59 +00:00
Ryan C. Gordon 94759513d9 Cleaned up archiver interface to not deal with DirHandles anymore,
which simplifies things, removes some responsibility and code
duplication from the archivers, and trims some malloc pressure.
Also ripped up the allocation hook code a little. We'll try to screw
with memory locking later, since it makes everything ugly and
complex. Oh well.
2004-09-26 00:25:04 +00:00
Ryan C. Gordon 7553af8acf Minor allocation hook corrections. 2004-09-23 23:59:17 +00:00
Ryan C. Gordon c0acfc0118 Initial structure for replacable allocator work. 2004-09-23 06:45:36 +00:00
Ryan C. Gordon 0cc3dea44f Removed more .cvsignore files from Subversion repository. 2004-09-23 03:33:17 +00:00
Ryan C. Gordon 44cd602b46 Westwood MIX archive support. 2004-04-09 06:36:09 +00:00
Ryan C. Gordon d43ca254c1 Last minute changes, fixes, and build system updates for 1.0. 2004-01-08 05:53:28 +00:00
Ryan C. Gordon 24c8651f7f Patches to get this building on Mac Classic again. 2003-12-29 08:50:21 +00:00
Ryan C. Gordon f2ebb00ef9 Says Travis Wells:
"Meh. I just realized the wad archiver isn't considering ExMx or MAPxx entries
correctly, it treats them as files,when it should consider them directories,
and place the next 11 entries in that directory.Right now it's making it
impossible to open maps, since they all have the same names, they all overlap.
So it's not very useful right now.

...

Here's the patch to wad.c, it should now correctly place the map-files into
subdirectories."

Thanks, Travis!
2003-12-18 19:53:20 +00:00
Ryan C. Gordon efdc4ac8a6 Added Doom WAD support. 2003-12-15 04:01:18 +00:00
Ryan C. Gordon 9dcb15fa2c Made QPAK archiver case insensitive again. 2003-11-09 21:06:15 +00:00
bhook b035d272ec removed a warning by adding a cast 2003-08-09 15:07:08 +00:00
bhook 83cdb49cd3 *** empty log message *** 2003-08-09 02:37:21 +00:00
Ryan C. Gordon ccfa99fb61 Reimplemented qpak.c for relicensing. 2003-07-21 00:27:09 +00:00
Ryan C. Gordon f3191d0e85 Off-by-one fix by Dieter Baron...fixes segfault in zip archive searching in
certain cases.
2003-07-20 21:13:25 +00:00
Ryan C. Gordon f4309f51e8 Tabs-to-spaces patch by James Turk. 2003-07-20 21:08:24 +00:00