Commit Graph

451 Commits

Author SHA1 Message Date
Ryan C. Gordon 629614838a Patched to compile on Windows. 2012-03-21 23:51:11 -04:00
Ryan C. Gordon 3a5a780988 PHYSFS_setSaneConfig() now uses PHYSFS_getPrefDir(). 2012-03-21 23:31:21 -04:00
Ryan C. Gordon 24d6a925d1 Added PHYSFS_getPrefDir(). 2012-03-21 23:30:50 -04:00
Ryan C. Gordon 584119a4a0 Removed a FIXME. 2012-03-20 15:44:10 -04:00
Ryan C. Gordon ba676b23e5 Reworked the error reporting API. Now we use error codes instead of strings.
This is based on work originally done by Christoph Nelles.
2012-03-20 15:38:12 -04:00
Ryan C. Gordon 8d7cf56651 Fixed mutex misuse. 2012-03-20 15:28:19 -04:00
Ryan C. Gordon f5923f5cea Check for mutex bugs. 2012-03-20 15:24:50 -04:00
Ryan C. Gordon e34e67ff68 Use UTF-16 on Windows, not UCS-2. 2012-03-19 21:01:51 -04:00
Ryan C. Gordon 803730884a Try to make a sane default for CD detection path by platform.
This is so this can work even when dropping PhysicsFS into another project
 without CMake doing header tests and filling in the defines.
2012-03-19 20:42:41 -04:00
Ryan C. Gordon 2486105f4f Make physfs_platforms.h define with a 1, so "#if X" works.
Added a few other pertinent platforms.
2012-03-19 20:41:14 -04:00
Ryan C. Gordon d67e2c9207 Use our platform test macro for Solaris. 2012-03-19 20:40:22 -04:00
Ryan C. Gordon f49c122784 Added Linux and Solaris tests. 2012-03-19 20:31:50 -04:00
Ryan C. Gordon bb6c5e468c Let's gamble that everything has assert.h.
(and we'll mask out specific platforms if we find one that doesn't.)
2012-03-19 20:27:28 -04:00
Ryan C. Gordon e5fa9ab9fc Minor code style cleanup in platform_beos.cpp ... 2012-03-19 02:58:41 -04:00
Ryan C. Gordon 52267fe380 Removed some unused code. 2012-03-19 02:46:38 -04:00
Ryan C. Gordon 82a6ce0abf Use physfs_platforms.h in physfs_internal.h, to avoid repeated macro tests. 2012-03-19 02:04:27 -04:00
Ryan C. Gordon 1030e5d5ec Removed llseek().
Use Linux's off64_t support instead.
2012-03-18 12:31:29 -04:00
Ryan C. Gordon 391f94681c Fixed a comment. Cut and paste error, I guess? 2012-03-18 12:23:30 -04:00
Ryan C. Gordon be4ae4d401 Removed __PHYSFS_platformCvtToDependent().
It's only used by archive_dir.c, and it's trivial to make it into
 platform-independent code for that one module.

Bonus: less malloc() pressure...now every access to the native filesystem
 doesn't require a temporary heap allocation.
2012-03-15 01:58:39 -04:00
Ryan C. Gordon 03dbc3f758 Make __PHYSFS_platformDirSeparator into a single char.
This multichar thing was always stupid. Pull it out of revision control if
 you ever need it.
2012-03-15 01:54:57 -04:00
Ryan C. Gordon aaf8868c8d Removed __PHYSFS_convertToDependent(), as dead code. 2012-03-15 00:40:00 -04:00
Ryan C. Gordon 466f538926 Reworked BeOS CD detection code.
Cleaned up, removed a malloc(), removed unnecessary BAIL macros.
2012-03-14 21:24:32 -04:00
Ryan C. Gordon 624d7f3a42 Fixed PHYSFS_read() and PHYSFS_write() in the dev branch.
PHYSFS_read() and PHYSFS_write() should return number of objects written,
 not object size.

Thanks to Evgeny Podjachev for the fix!
2012-03-14 05:47:15 -04:00
Ryan C. Gordon 519046db72 Removed check that .zip files are less than 4 gigabytes.
This would become a bogus check with zip64 support anyhow, but even here, if
 you have a .zip that's close to 4 gigabytes, and a self-extracting program
 prepended to it that pushes it over that limit, this test fails
 incorrectly.
2012-03-13 08:21:02 -04:00
Ryan C. Gordon a42ada1380 Fixed dereference of free()'d memory.
Thanks to Evgeny Podjachev for the fix!
2012-03-13 07:49:59 -04:00
Ryan C. Gordon c57bd94f84 Apparently, __PHYSFS_platformCurrentDir() is dead code. 2012-03-13 04:25:05 -04:00
Ryan C. Gordon 0ae446d970 Move Windows CD-ROM detection to another thread that uses device notifications.
Fixes blocking when a disc is spinning up, except on initial call.
2012-03-12 04:05:31 -04:00
Ryan C. Gordon 5ad70036b2 Fixed stack smashing in newly-aligned __PHYSFS_smallAlloc(). 2012-03-12 01:33:16 -04:00
Ryan C. Gordon 1d41608a64 More doc tweaks. 2012-03-11 05:05:02 -04:00
Ryan C. Gordon 611aeec61b Removed __PHYSFS_platformRealPath().
It was an ugly piece of code, didn't work on The Hurd (apparently), likely
 dangerous in its incomplete understanding of Windows paths, and only
 used in places that should have given us normalized, absolute
 paths in the first place anyhow.
2012-03-11 04:19:36 -04:00
Ryan C. Gordon 2aa0c5a278 Replace C++/C99 single-line comments in miniz with C98 /* comments */ ... 2012-03-11 03:56:24 -04:00
Ryan C. Gordon c94d70ec0a Moved __PHYSFS_platformCurrentDir() from Unix to POSIX sources.
getcwd() is part of POSIX, after all.
2012-03-11 03:43:07 -04:00
Ryan C. Gordon b7e0ec7391 Change how Unix version of __PHYSFS_platformCurrentDir() allocates memory. 2012-03-11 03:39:57 -04:00
Ryan C. Gordon 7a8e3de103 Minor updates to the docs. 2012-03-11 03:09:07 -04:00
Ryan C. Gordon df3c281014 Fixed some compiler warnings. 2012-03-10 03:18:33 -05:00
Ryan C. Gordon 700d94e577 Replaced zlib with a hacked up copy of miniz: http://code.google.com/p/miniz/ 2012-03-10 02:31:58 -05:00
Ryan C. Gordon c8fc8cf957 Merge with pocketpc removal. 2012-03-10 01:13:03 -05:00
Ryan C. Gordon 6e4279e76a Bump the smallAlloc threshold up to 256 bytes. 2012-03-09 22:27:36 -05:00
Ryan C. Gordon 9dceda3d9f Align smallAllocs to the native pointer size. 2012-03-09 22:27:51 -05:00
Ryan C. Gordon a0b21c9ae9 Cleaned up all the readAll() cut and paste. 2012-03-09 04:50:27 -05:00
Ryan C. Gordon 25224b0e7a We never use calloc() internally. 2012-03-09 03:55:23 -05:00
Ryan C. Gordon 54cc53349d Cleaned up some __PHYSFS_platformStat() details. 2012-03-09 03:32:26 -05:00
Ryan C. Gordon de27c2a422 Removed the non-Unicode fallbacks from platform_windows.c, other cleanups.
This brings the minimum required OS up to Windows XP, which is around 11
 years old at this point.
2012-03-10 03:07:30 -05:00
Ryan C. Gordon 9e2acfd8a6 Removed OS/2 support. 2012-03-09 01:24:40 -05:00
Ryan C. Gordon 4d46d42f73 Removed PocketPC support. It was old and crusty and targeted a dead platform. 2012-03-09 00:44:59 -05:00
Ryan C. Gordon 9d11b991bc Fixed up some bugs that clang's static analysis reported. 2011-10-18 15:55:29 -04:00
Ryan C. Gordon bbd356a27b Patched to compile. 2011-10-06 03:24:53 -04:00
Ryan C. Gordon 6d4d91414a Check _M_X64 (Visual Studio, Windows/x86-64) in littleendian test.
Thanks to Norfanin for the tip!
2011-10-05 03:58:52 -04:00
Ryan C. Gordon 28007c9bae Fixed a typo in the docs. 2011-09-22 04:45:04 -04:00
Ryan C. Gordon 025a02f4c0 Corrected __PHYSFS_platformTell()'s return value to be correct. 2011-08-01 17:56:30 -04:00
Ryan C. Gordon 8258274a90 Removed __PHYSFS_platformEOF(). It's not used anymore. 2011-08-01 17:32:56 -04:00
Ryan C. Gordon 65497160f7 Removed deprecated Mac OS X APIs. 2011-07-25 11:29:44 -07:00
Ryan C. Gordon f94d227945 Fixed basedir calculation on Mac OS X. 2011-07-09 23:11:17 -07:00
Ryan C. Gordon b8c4942413 POSIX version of __PHYSFS_platformStat() forgot to set *exists properly.
Thanks to Frank Becker for the fix.
2011-06-22 15:56:10 -04:00
Ryan C. Gordon 6a1aca5db5 Make sure utf8codepoint() advances the pointer even on bogus input.
This patch was from Francois Gouget, who found this bug in MojoSetup's copy
 of this function.
2011-06-01 03:10:08 -04:00
Ryan C. Gordon c6ca60eb20 Fixed infinite loop in zip_expand_symlink_path().
This patch was from Francois Gouget, who found this bug in MojoSetup's copy
 of the zip archiver code.
2011-06-01 03:08:53 -04:00
Ryan C. Gordon 4446cfa613 Fixed compiler warning on gcc-4.6. 2011-03-31 11:24:46 -04:00
Ryan C. Gordon 660c7f9823 Fixed bug in directory search for zip and qpak archivers (thanks, Michal!) 2011-02-18 12:38:05 -05:00
Ryan C. Gordon 706f50be0a Fixed logic error in QPAK archiver.
Should haved tested for a failed seek, but was testing for success instead.
2011-02-10 16:54:09 -05:00
Ryan C. Gordon 82b8546bc9 More Windows tests in the byteorder detection code. 2011-01-21 03:07:14 -05:00
Ryan C. Gordon f5e0dbe78b Patched to compile on Windows. 2011-01-21 02:50:20 -05:00
Ryan C. Gordon 5f5775c1ec Haiku fixes, merged from stable-2.0 branch. 2010-12-30 19:50:58 -05:00
Ryan C. Gordon 7d253b13ed Fixed leaking file handle on BeOS during CD-ROM detection. 2010-11-14 00:43:47 -05:00
Ryan C. Gordon 4d567a0d2f Fixed cut-and-paste error in malloc() failure test (thanks, Tolga!). 2010-10-04 01:48:34 -04:00
Ryan C. Gordon f871802f51 Cleaned up some #includes. 2010-09-06 19:35:01 -04:00
Ryan C. Gordon 3f02ce767f Moved most the cut-and-paste between simple archivers to one file. 2010-09-06 02:50:29 -04:00
Ryan C. Gordon 9d900f8814 Added a FIXME. 2010-09-05 02:43:43 -04:00
Ryan C. Gordon 125c170f7d Use lstat() instead of stat() for POSIX __PHYSFS_platformStat(). 2010-09-05 02:42:04 -04:00
Ryan C. Gordon 7f0e7105a7 Removed isDirectory, isSymLink and exists methods from internal code.
Use the PhysFS stat() interface instead.
2010-09-05 02:41:13 -04:00
Ryan C. Gordon 2219123cc5 SWIG bindings update. 2010-08-30 03:09:00 -04:00
Ryan C. Gordon 84c6e2242e Added PHYSFS_mountHandle(). Now you can do archives-in-archives! 2010-08-30 03:02:32 -04:00
Ryan C. Gordon d9e98704f7 PHYSFS_getRealDir() can't report a path for things that aren't real files. 2010-08-29 21:36:38 -04:00
Ryan C. Gordon 5ff1a2a12e Make PHYSFS_addToSearchPath() use doMount(), too. 2010-08-30 02:39:28 -04:00
Ryan C. Gordon bb9f5e5049 Added PHYSFS_mountMemory(). 2010-08-30 02:39:11 -04:00
Ryan C. Gordon 8cd320b858 Added PHYSFS_mountIo(). 2010-08-29 20:56:35 -04:00
Ryan C. Gordon 4bc5ed1725 Abstracted file i/o into PHYSFS_Io interface.
This touched a lot of code, and involved cleaning up a lot of stuff.
2010-08-30 03:01:57 -04:00
Ryan C. Gordon c2e77d7e35 Constification. 2010-08-29 01:55:30 -04:00
Ryan C. Gordon 74f8cb4f91 Fixed incorrect #ifdef. 2010-08-27 14:27:15 -04:00
Ryan C. Gordon b58e5f348c Removed __PHYSFS_platformGetLastModTime(). 2010-08-25 01:28:28 -04:00
Ryan C. Gordon 8def2f8aaf Fixed some single-line comments. 2010-08-24 14:17:07 -04:00
Ryan C. Gordon fc680aa468 Removed PHYSFS_Archiver's isArchive() method.
It was redundant with openArchive().
2010-08-24 10:05:58 -04:00
Ryan C. Gordon c92f3035f9 Made __PHYSFS_ui64FitsAddressSpace's behaviour match its name. 2010-08-24 10:03:25 -04:00
Ryan C. Gordon 2beafa790d Removed getLastModTime() interface from the archivers; it's not used anymore. 2010-08-22 20:20:04 -04:00
Ryan C. Gordon c1969d0595 Added PHYSFS_unmount(), deprecated addToSearchPath and removeFromSearchPath. 2010-08-22 03:43:22 -04:00
Ryan C. Gordon c306d73fdc Patched to compile. 2010-08-22 03:35:55 -04:00
Ryan C. Gordon f99f0ef9e7 Fixed details of PHYSFS_Archiver's stat method. 2010-08-22 00:37:25 -04:00
Ryan C. Gordon 024784efbd Actually, that's FOUR gigabytes. 2010-08-21 20:05:22 -04:00
Ryan C. Gordon f7a8d9292c Fixed PHYSFS_stat()'s return value to match rest of PhysicsFS API. 2010-08-21 19:10:42 -04:00
Ryan C. Gordon b69dfedaf0 Deprecated PHYSFS_getLastModTime()...use PHYSFS_stat() instead, now. 2010-08-21 17:34:00 -04:00
Ryan C. Gordon 8b0988a038 Some minor FIXME tweaks. 2010-08-21 15:07:13 -04:00
Ryan C. Gordon 51a22c576e Updated SWIG bindings. 2010-08-21 14:41:51 -04:00
Ryan C. Gordon 8546c9a202 Replaced cut-and-paste byteswap i/o codepile with macros. 2010-08-21 14:30:52 -04:00
Ryan C. Gordon 3dc77f8a54 Get rid of __inline__, just make sure "inline" is defined sanely instead. 2010-08-21 14:29:40 -04:00
Ryan C. Gordon d797ea7cd8 Added PHYSFS_DEPRECATED. 2010-08-21 14:05:39 -04:00
Ryan C. Gordon 4000b234c0 Moved all the file i/o from stdio-style to POSIX-style.
Instead of trying to deal with a count of objects, just give 'em a stream of
bytes. This is WAY simpler to work with at the implementation level, and
removes confusion about what to do with a partial read.

This will be very useful when we expose the i/o interface to applications.
2010-08-21 02:47:58 -04:00
Ryan C. Gordon 68632d3c57 Wrap BAIL_* and GOTO_* macros in do { } while (0) ... 2010-08-21 02:42:23 -04:00
Ryan C. Gordon 11e2306c1c Added a FIXME. 2010-08-21 02:41:23 -04:00
Ryan C. Gordon c88d2c3746 Added UTF-16 support. 2010-08-20 02:38:32 -04:00
Ryan C. Gordon acdfcfca04 Fixed incorrect comments. 2010-08-20 02:49:11 -04:00
Ryan C. Gordon 77d16c2bed Zero-sized destination buffers when converting to UTF-8 shouldn't overflow. 2010-08-20 02:35:01 -04:00
Ryan C. Gordon 9d979b21d0 Added a see-also to the docs. 2010-08-20 01:25:32 -04:00
Ryan C. Gordon f329f4ed0b Added a FIXME. 2010-08-20 01:25:20 -04:00
Ryan C. Gordon 1fe05388ad Patched to compile on Solaris. 2010-04-08 09:56:51 -04:00
Ryan C. Gordon 80713fb40e Fixed documentation issue. 2010-04-05 15:50:02 -04:00
Ryan C. Gordon a9855949f0 Merged changeset 1084:ee3d2e6e1161 from stable-2.0: unitialized array fix. 2010-03-25 16:00:21 -04:00
Ryan C. Gordon a44e9669c1 Forgot to apply build-time thread fix to default branch (thanks, Patrice!). 2010-03-22 16:03:17 -04:00
Ryan C. Gordon e6f331f32d Add some more filesystem types that might be CDs or DVDs. 2010-03-22 11:12:45 -04:00
Ryan C. Gordon ddd82040f4 Back out Doxygen escaping stuff...doesn't actually work. 2010-03-22 11:11:09 -04:00
Ryan C. Gordon efa498fd5d See if $HOME is bogus, and if so, use getpwuid() instead.
Should fully fix http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553174
2010-03-21 12:20:44 -04:00
Ryan C. Gordon 72b232d4f5 If $HOME is invalid, scratch together a different userdir.
Partially fixes http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553174
2010-03-21 12:11:39 -04:00
Ryan C. Gordon 4c7d25aebe Doxygen fixes (thanks, Patrick!) 2010-03-17 21:51:22 -04:00
Ryan C. Gordon ed989aa171 Added some missing file types to the documentation. 2010-03-17 21:37:06 -04:00
Ryan C. Gordon 47c3e8875c Windows: open files for read+write sharing, to match Unix. 2010-03-17 17:04:01 -04:00
Ryan C. Gordon cd3587bbf3 Make ISO9660 archiver optional. 2010-03-17 15:35:29 -04:00
Ryan C. Gordon 39e4da1929 Corrected file extension for ISO9660 archiver. 2010-03-17 15:34:30 -04:00
Ryan C. Gordon 0fa35af2b9 ISO9660 archiver, compliments of Christoph Nelles. 2010-03-17 14:50:54 -04:00
Ryan C. Gordon 8d1cff2bdf Fix for the Hurd, from the debian project. 2010-03-15 09:46:33 -04:00
Ryan C. Gordon 71dd0f7a6c Added a FIXME. 2010-03-01 08:49:04 -08:00
Ryan C. Gordon a4a7f88db0 Patched to compile (thanks, Christoph!). 2010-02-18 09:34:08 -05:00
Ryan C. Gordon f1cd4d8f0d THIS is Christoph's PHYSFS_stat() work.
I've merged some basic ideas from the other patch, which was Indy Sam's work,
 and cleaned up a few things.
2010-02-15 14:02:36 -05:00
Ryan C. Gordon 8e78e4719d Backed out changeset f87b0b7cca8e ... This wasn't Christoph's patch. Sorry! 2010-02-15 09:19:38 -05:00
Ryan C. Gordon 7cc80bebc5 Added first work on PHYSFS_stat() API (thanks, Christoph!). 2010-02-14 23:07:19 -05:00
Ryan C. Gordon 5a98fc83a8 Catch case where we use the Unix code on a non-Unix system that lacks pthreads.
Thanks, Patrice!
2010-02-03 23:14:11 -05:00
Ryan C. Gordon 6d6fec87ad Some targets need string.h here.
Thanks, Patrice!
2010-02-03 22:50:07 -05:00
Ryan C. Gordon 392193ea0c Hooked up Perl bindings, via SWIG. 2010-02-01 03:17:14 -05:00
Ryan C. Gordon a09a54d0f2 Initial SWIG work. 2010-01-29 04:17:44 -05:00
Ryan C. Gordon aa7126619e Added some (disabled!) calling conventions stuff. 2010-01-29 03:18:03 -05:00
Ryan C. Gordon 5629f8b8bc Renamed __EXPORT__ to PHYSFS_DECL. 2010-01-29 03:09:16 -05:00
Ryan C. Gordon c2c1ba9cc5 Fixed some C++-style one-line comments in C code. 2010-01-28 02:35:32 -05:00
Ryan C. Gordon 595ac1da39 Cleaned up returns that look like function calls for my updated coding style. 2010-01-28 02:27:45 -05:00
Ryan C. Gordon cef8847a06 Attempt to clean up the thread ID mess in platform_unix ... 2009-09-06 01:05:27 -04:00
Ryan C. Gordon 5a26df8383 Fixed building with Mac OS X 10.6 SDK.
The SDK defines the TARGET_OS_IPHONE, etc symbols to 0, so you can't check
 "#if defined" for them.
2009-09-06 01:04:17 -04:00
Ryan C. Gordon 44f6c8306d Try /proc/$PID/exe if /proc/self/exe doesn't work out. 2009-07-08 17:53:48 -04:00
Ryan C. Gordon 43207273dd Try to shrink returned buffer's allocation. 2009-07-08 17:47:05 -04:00
Ryan C. Gordon ff80fc8003 Fixed wrong readlink() usage (lstat() doesn't report dest link size!).
Thanks to Henk Boom for pointing this out.
2009-07-08 17:46:48 -04:00
Ryan C. Gordon 71fc15fd19 Temporary fix for (re)opening files in lzma archives (thanks, Sam!) 2009-06-21 17:37:47 -04:00
Ryan C. Gordon 5323b6a532 Fixed latin1 to UTF-8 conversion (sign conversion was broken). 2009-06-03 18:44:15 -04:00
Ryan C. Gordon 04b6388b68 Merged 0410dc655d45 from the 2.0-stable branch: strict-aliasing fix. 2009-05-03 01:36:18 -07:00
Ryan C. Gordon 94d1b71e49 I think sys/mount.h is only needed in the ucred.h path.
Fixes building on hurd, I think.
2009-05-02 23:25:41 -07:00
Ryan C. Gordon cedcd95541 Corrected __EXPORT__ test for Solaris. 2009-04-20 23:48:16 -04:00
Ryan C. Gordon 57d908dca0 Added the Sun Studio equivalent of -fvisibility=hidden 2009-04-16 22:37:38 -04:00
Ryan C. Gordon 0bc32891ba Added sys/mnttab.h CD-ROM detection. Fixes missing CD-ROM support on Solaris. 2009-04-13 17:59:15 -04:00
Ryan C. Gordon d8d296e8c6 Merge all the Unix __PHYSFS_platformDetectAvailableCDs() funcs into one. 2009-04-13 17:09:36 -04:00
Ryan C. Gordon 07e97a0166 Fixed some Sun Studio warnings about unreachable code. 2009-04-13 03:40:30 -04:00
Ryan C. Gordon 3f0cffcc50 Fixes for compiling on Solaris. 2009-04-13 03:27:53 -04:00
Ryan C. Gordon 544f0f6185 Patches to build on gcc 4.3.3 on OS/2.
This is with the build environment and latest GCC builds available from...

  http://www.smedley.info/os2ports/

...this is apparently what Mozilla uses for Firefox builds on OS/2.
2009-03-29 04:11:38 -04:00
Ryan C. Gordon 778f1987cf Updated some documentation, added a FIXME. 2009-03-28 17:51:10 -04:00
Ryan C. Gordon fb5e8d9cd2 PHYSFS_freeList(NULL) is now a safe no-op. 2009-03-28 17:50:54 -04:00
Ryan C. Gordon b78da18657 Bumped version number (although we're probably far from a real 2.1.0 release). 2009-03-28 16:16:08 -04:00
Ryan C. Gordon d6ce63e912 Added PHYSFS_getAllocator(). 2009-03-28 16:15:03 -04:00
Ryan C. Gordon 2a65060cde Moved directory structure around. 2009-03-27 15:10:42 -04:00