Ryan C. Gordon
0278c30776
zip: Don't allocate a 256k buffer on the stack for zip64 parsing.
2016-02-24 11:15:00 -05:00
Ryan C. Gordon
ce85702893
Added a minor comment.
2016-02-24 11:14:10 -05:00
Ryan C. Gordon
57bbcc3eb3
Fixed compiler warning about unused variable because assert() is awful.
2015-07-02 23:36:33 -04:00
Ryan C. Gordon
1ab2afda15
Removed a few tabstops to test something on the Mercurial server.
2015-06-18 00:12:15 -04:00
Ryan C. Gordon
fb31167e11
Fixed incorrect logic ("!x != 5" instead of "x != 5").
...
Thanks to Xian Nox for pointing this out!
2015-06-16 10:46:56 -04:00
Ryan C. Gordon
6cafcc4bc7
Added some FIXMEs.
2015-04-19 23:28:14 -04:00
Ryan C. Gordon
3d38708088
dos2unix'd platform_winrt.cpp
2015-04-19 23:26:02 -04:00
Ryan C. Gordon
e13803c101
Removed some tabs and an extra semicolon.
2015-04-19 23:25:29 -04:00
Martin Ahrnbom
9d55f3f099
Added support for WinRT 8.1 Universal Apps.
...
Hopefully this will work on Win10 as well... Only time will tell!
Here's what's changed:
1. Added a platform_winrt.cpp file. It's based on platform_windows.c but has some WinRT-specific changes.
2. Changed physfs_platforms.h to define PHYSFS_PLATFORM_WINRT when running on WinRT. PHYSFS_PLATFORM_WINDOWS should also be defined, as WinRT behaves a lot like "normal" Windows and this flag is tested against in multiple parts of the PhysFS source code.
3. Changed platform_windows.c to not be used when PHYSFS_PLATFORM_WINRT is defined.
4. In order to work on Windows ARM devices, I had to change in physfs_internal.h, to include _M_ARM as a flag for running on ARM as "ARM" and "__arm__" aren't defined when running on a Windows ARM device.
What I've tested:
* Setting up a "sane folder configuration"
* Reading and writing files
* Mounting zip files
* Using seek & tell
* Checking file length
All of these work fine. I couldn't get the actual test software to run on WinRT, but it seems like eveyrthing's working. I've tested these things on my Windows 8.1 computer, as well as my Lumia 920 which is currently running Windows 8.1.
2015-03-29 07:03:30 +02:00
Ryan C. Gordon
f6a62ecad1
Make sure read buffers get reinitialized before refilling (thanks, Michael!).
2014-09-11 00:07:23 -04:00
Ryan C. Gordon
c9f40346bc
Make static analysis happy.
2014-08-19 10:55:56 -04:00
Ryan C. Gordon
53ef674270
Fixed resource leak when failing to mount a file that isn't an archive.
2014-08-19 02:28:13 -04:00
Ryan C. Gordon
4b906c1e5f
Short circuit case-insensitive compare of two equal Unicode codepoints.
2014-08-14 21:33:24 -04:00
Ryan C. Gordon
628b88f112
PHYSFS_enumerateFiles() actually promises sorting order, and always has.
2014-08-14 21:17:04 -04:00
Willi Schinmeyer
9df22f4bf5
Fix NULL flush() in PHYSFS_Io crash
2014-07-20 13:36:56 +02:00
Ryan C. Gordon
2091eccad3
This returns -1 on error, not zero. :/
2014-02-07 16:23:12 -05:00
Ryan C. Gordon
016394067c
PHYSFS_stat() returns zero on error, not -1.
2014-02-07 16:22:43 -05:00
Ryan C. Gordon
8e065c08f7
We always use miniz now.
2014-02-07 16:22:54 -05:00
Ryan C. Gordon
44fb6d5e2d
Renamed a function to make Clang static analysis happy.
...
"Object leaked: allocated object is returned from a function whose
name ('cfallocDesc') does not contain 'Copy' or 'Create'. This violates
the naming convention rules given in the Memory Management Guide for
Core Foundation"
(it doesn't actually leak, but okay, it's a reasonable naming convention.)
2014-02-07 16:17:48 -05:00
Ryan C. Gordon
5aa0dae5e2
Added a FIXME.
2014-01-16 07:03:42 -08:00
Ryan C. Gordon
5dd2cfce35
Fixed a single-line comment.
2014-01-16 07:03:34 -08:00
Ryan C. Gordon
4046759f61
Better basedir detection for various Unix platforms.
2013-08-23 23:41:35 -04:00
Ryan C. Gordon
09baf99aa4
Don't fsync() read-only filehandles (thanks, Andreas!).
...
This sounds harmless, but it actually forces a write of the inode's atime,
which means a lot of painful and unnecessary disk i/o on some filesystems.
Should be a good speedup on games that read a lot of small files on Unix.
2013-08-21 23:30:33 -04:00
Ryan C. Gordon
26f5eb481e
Fixed memory leak.
2013-08-20 13:36:34 -04:00
Ryan C. Gordon
7a42f7dd41
Fixed off-by-one error in findBinaryInPath() (thanks, Dmitry!).
...
This bug is new to the development branch, and doesn't exist in either the
stable-1.0 or stable-2.0 branches.
2013-07-16 12:51:54 -04:00
Ryan C. Gordon
4eafb44817
Get rid of array of static archivers.
2012-11-30 14:37:37 -05:00
Ryan C. Gordon
2dd99ccbb2
Rearranged PHYSFS_Archiver struct.
2012-11-30 14:09:56 -05:00
Ryan C. Gordon
f5c746967f
Removed comments added by Captain Obvious.
2012-11-30 14:06:21 -05:00
Ryan C. Gordon
36b542ee7f
Cleaned out "exists" nonsense in openRead() API.
2012-11-30 13:00:08 -05:00
Ryan C. Gordon
697c31e81b
Remove __PHYSFS_setError(), use the new public API instead.
2012-11-30 12:49:25 -05:00
Ryan C. Gordon
7824a093fb
Cleaned out the "exists" nonsense in the stat() API.
2012-11-30 12:43:56 -05:00
Ryan C. Gordon
ada24e9c5d
Moved supportsSymlinks into PHYSFS_ArchiveInfo.
2012-11-30 00:04:52 -05:00
Ryan C. Gordon
1ed8bc07c0
Comment tweaks (FIXME additions, typo corrections, etc).
2012-11-29 11:48:48 -05:00
Ryan C. Gordon
16ee8355db
Centralize responsibility for filtering symlinks during enumeration.
2012-11-29 11:47:16 -05:00
Ryan C. Gordon
259399124a
POSIX version of __PHYSFS_platformStat() now reports symlinks correctly.
2012-11-29 11:45:01 -05:00
Ryan C. Gordon
e40d80b00f
Allow application-supplied archivers.
...
This lets an application supply its own archivers, where they will work like
any built-in archiver. This allows abstract directory interfaces the same
way that PHYSFS_Io allows stream implementations.
This is a work in progress still. The API is still changing, and will remain
at version 0 until it is finalized (a theoretical future version 1 will be
for when the final public interface changes, not when we evolve the initial
API design).
2012-11-28 01:36:13 -05:00
Ryan C. Gordon
123313c3cd
Make __PHYSFS_utf8stricmp() work like you'd expect.
2012-11-28 01:30:29 -05:00
Ryan C. Gordon
9826c8b073
Cleaned up some simple comments.
2012-11-27 00:12:39 -05:00
Ryan C. Gordon
e61ade0062
Perhaps the note about Quake 3 is getting a little dated.
2012-11-26 14:11:19 -05:00
Aleksi Nurmi
fd137cba42
SLB archiver
2012-11-12 23:40:29 +02:00
Ryan C. Gordon
7bd05972c7
Turn off CD-ROM support on Android.
2012-11-02 00:47:50 -04:00
Sam Lantinga
724b71a657
Fixed warning on iOS
2012-09-04 23:25:37 -07:00
Ryan C. Gordon
13855849e6
Fixed infinite loop (thanks, Sam!)
2012-09-08 22:18:52 -04:00
Ryan C. Gordon
e38b5e9cb7
An attempt to make this more Unix-friendly.
2012-08-02 03:03:06 -04:00
Ryan C. Gordon
e70c6847a9
Turns out the CoreFoundation API is way simpler.
...
Fixed assertion, too.
2012-06-25 15:50:20 -04:00
Ryan C. Gordon
c59105bd03
Patched to compile on Mac OS X.
2012-06-25 15:25:55 -04:00
Ryan C. Gordon
bbbbb17258
For iOS, build the Mac OS X platform code, not the generic Unix code.
...
Also removed some Carbon calls; use CoreFoundation instead. These functions
exist in all versions of Mac OS X and iOS, and replace the Mac OS Classic
APIs we were previously depending upon.
2012-06-25 14:40:03 -04:00
Ryan C. Gordon
2a4d891ac5
Fixed logic bug (thanks, Sam!).
2012-06-20 20:16:11 -04:00
Ryan C. Gordon
9159717a27
Fixed non-Zip64 .zip files.
2012-06-07 10:42:19 -04:00
Ryan C. Gordon
5c18db7fe9
Don't sort if there's nothing to do (prevents array underflow, too).
2012-06-07 10:21:43 -04:00
Ryan C. Gordon
4d9f2534f2
Fixed var that should be 64 bits instead of 32 now.
2012-06-01 06:07:12 -04:00
Ryan C. Gordon
2b39e47fda
Removed a '//' comment.
2012-06-01 05:59:12 -04:00
Ryan C. Gordon
a865b14bec
Added Zip64 support to the .zip archiver.
...
Now we can handle .zip files > 4 gigabytes, etc.
2012-06-01 05:44:50 -04:00
Ryan C. Gordon
758e5beedb
Moved PHYSFS_ArchiveInfo into PHYSFS_Archiver.
2012-03-25 17:17:56 -04:00
Ryan C. Gordon
6222a4a92d
Add binary compatibility to PHYSFS_Io.
2012-03-25 17:18:24 -04:00
Ryan C. Gordon
a7383c295f
Moved some functions around.
...
We want the #undef malloc, etc, lines as close to the end of the file as
possible, and __PHYSFS_readAll() not in the middle of the allocator code.
2012-03-25 16:15:10 -04:00
Ryan C. Gordon
107f07da97
Better cleanup if PHYSFS_init() fails halfway through.
2012-03-25 16:13:23 -04:00
Ryan C. Gordon
4cfd7277f3
Made archiver list dynamic, in preparation for external archivers.
2012-03-25 15:59:29 -04:00
Ryan C. Gordon
b3fbba7af0
Removed "dvoid" typedef.
2012-03-25 14:52:24 -04:00
Ryan C. Gordon
716ea0522f
Fixed Doxygen typo.
2012-03-24 15:06:28 -04:00
Ryan C. Gordon
de54065b31
Updated docs on PHYSFS_setSaneConfig().
2012-03-24 15:02:18 -04:00
Ryan C. Gordon
af4bf8419f
Changed enum typedef to make this Doxygen-friendly.
2012-03-24 14:57:30 -04:00
Ryan C. Gordon
d4a99cc204
Fixed comment.
2012-03-24 14:55:32 -04:00
Ryan C. Gordon
0de337eb75
Renamed PHYSFS_Archiver::dirClose() to PHYSFS_Archiver::closeArchive().
2012-03-24 10:36:11 -04:00
Ryan C. Gordon
24aef83ead
More FIXME cleanup.
2012-03-24 00:49:34 -04:00
Ryan C. Gordon
b2e6882f52
Another FIXME.
2012-03-24 00:32:22 -04:00
Ryan C. Gordon
14d723c316
FIXME cleanup.
2012-03-24 00:29:47 -04:00
Ryan C. Gordon
dda627412c
More FIXME cleanup.
2012-03-24 00:26:04 -04:00
Ryan C. Gordon
2392ca1aa3
Favor /proc/self/exe over argv[0] on Linux, to match other platforms.
...
We don't favor searching the $PATH, though, since that relies on argv[0] too.
2012-03-23 04:54:20 -04:00
Ryan C. Gordon
9d01a645ed
Make sure base dir always has a dirsep at the end of it.
...
Now the higher level doesn't have to check for this and realloc the string.
2012-03-23 04:14:01 -04:00
Ryan C. Gordon
0360899357
Moved QPAK support into archiver_unpacked.c
...
More dupe code removal, and more functional generic backend code!
2012-03-23 02:45:38 -04:00
Ryan C. Gordon
a688d5c686
Minor tweak.
2012-03-23 02:43:22 -04:00
Ryan C. Gordon
320b154a11
Removed archive description macros, moved those strings inline.
2012-03-23 00:55:56 -04:00
Ryan C. Gordon
0584117f85
Changed so that this builds a reasonable default with no command line #defines.
...
That is, it now builds .zip and native dir support, and that's it.
2012-03-23 00:52:32 -04:00
Ryan C. Gordon
cd5362cc57
Removed a bogus FIXME.
2012-03-22 03:15:50 -04:00
Ryan C. Gordon
66fbf41bc0
Allow Windows to read/write more than 4 gigs to a file in one shot.
...
Removes a FIXME, but the fix probably won't ever get used. :)
2012-03-22 03:11:54 -04:00
Ryan C. Gordon
53fe6d360a
Renamed __PHYSFS_utf8strcasecmp() to __PHYSFS_utf8stricmp().
...
This matches style of other function names we use.
2012-03-22 03:02:50 -04:00
Ryan C. Gordon
4aec77e618
Fixed a typo in the docs.
2012-03-22 03:00:16 -04:00
Ryan C. Gordon
76fdd9cab6
Removed a FIXME: actually, the code DOES set an error, as far as I can tell.
2012-03-22 02:58:45 -04:00
Ryan C. Gordon
b7f3e5bd1e
Removed a FIXME.
...
I assume that Win95 didn't allow large files, so this concern probably wasn't
ever valid in any case. Still, Win95 support has been dropped, so it doesn't
matter.
2012-03-22 02:38:10 -04:00
Ryan C. Gordon
46125c95b3
Removed a FIXME.
2012-03-22 02:57:29 -04:00
Ryan C. Gordon
0d8bf3a129
Windows: Use cross-thread Critical Sections instead of cross-process Mutexes.
2012-03-22 00:41:39 -04:00
Ryan C. Gordon
a0af6bbb71
Removed fallback for systems that have no userdir.
...
This would try to build something under the basedir for Windows 95, OS/2, etc,
but those targets are gone now. Modern systems provide this. If a given
system can't in the future, they can pull this code out of revision control
and use it in their implementation of __PHYSFS_platformCalcUserDir().
This change let me remove __PHYSFS_platformGetUserName(), too.
2012-03-22 00:27:46 -04:00
Ryan C. Gordon
b1d4afcbd3
Cleaned up some FIXMEs.
2012-03-22 00:21:28 -04:00
Ryan C. Gordon
59c6310e92
Removed a FIXME: use correct error code for writing to read-only archives.
2012-03-22 00:05:10 -04:00
Ryan C. Gordon
60aa0e460c
Make sure the prefdir has a final dirsep on it.
...
This matches the behaviour of PHYSFS_getBaseDir() and PHYSFS_getUserDir().
2012-03-21 23:59:43 -04:00
Ryan C. Gordon
43367c0c29
Fixed some brainfarts in the Windows version of PHYSFS_getPrefDir().
2012-03-21 23:52:44 -04:00
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