Ryan C. Gordon
0e778b0b16
FIXME removal: it's okay for the PHYSFS_Io to be NULL here.
...
We use this technique in several other places, too.
2017-08-08 15:27:32 -04:00
Ryan C. Gordon
eb46d82500
Fixed compiler warnings on GCC.
2017-08-06 15:59:46 -04:00
Ryan C. Gordon
af555317b9
Fixed compiler warnings on Visual Studio.
2017-08-06 15:58:39 -04:00
Ryan C. Gordon
f0eb5c0db9
Marked a bunch of things as "FIXME-3.0" that I want resolved before 3.0 ships.
2017-08-06 15:54:44 -04:00
Ryan C. Gordon
0287160f3c
Removed some FIXMEs that aren't valid.
2017-08-06 13:56:45 -04:00
Ryan C. Gordon
36c51d40d1
PHYSFS_File buffering now uses size_t.
...
This lets you have the full address space but not take up unnecessary space
on 32-bit platforms...not to mention removes a bunch of typecasting.
2017-08-06 10:33:21 -04:00
Ryan C. Gordon
a7ce178eec
Add basic atomic operations for refcounting, etc.
2017-08-06 09:21:38 -04:00
Ryan C. Gordon
61bdee4d78
__PHYSFS_platformDeinit() should return void.
...
What are you going to do if this fails, anyhow?
2017-08-06 01:30:58 -04:00
Ryan C. Gordon
0d249cae36
FIXME removal: This is an appropriate error code already.
2017-08-04 22:32:34 -04:00
Ryan C. Gordon
cc2c29b207
Removed FIXME: this was already fixed at some point.
2017-08-04 22:31:56 -04:00
Ryan C. Gordon
6d91dde273
Rename __PHYSFS_Archiver_SZIP to __PHYSFS_Archiver_7Z.
2017-07-22 13:50:03 -04:00
Ryan C. Gordon
d3ac612b61
DirTrees and unpacked archives shouldn't demand a count of entries for init.
2017-07-21 13:54:42 -04:00
Ryan C. Gordon
c375504463
Removed unused variable.
2017-07-17 12:39:43 -04:00
Ryan C. Gordon
a5d3dd498e
Rewrote the 7zip archiver.
...
This also updates the LZMA SDK to something more modern, which is now public
domain code, and squashed it into a single header for easier building.
2017-07-17 12:26:50 -04:00
Ryan C. Gordon
ffa1836335
Moved ZIP tree management up to a higher level, to be reused elsewhere.
2017-07-15 15:59:55 -04:00
Ryan C. Gordon
bf9999af2d
Fixed compiler warnings on Visual Studio about const qualifiers.
2017-07-12 23:54:45 -04:00
Ryan C. Gordon
19b15d34a1
Cleaned up what symbols are exported from the library.
2017-07-12 15:41:12 -04:00
Ryan C. Gordon
c2c1c7ac30
Removed __PHYSFS_platformSetDefaultAllocator(); nothing uses it now.
...
We can pull it back from revision control if something needs it later.
2017-07-11 23:52:13 -04:00
Ryan C. Gordon
f5c6383b4b
Patched to compile on Visual Studio.
2017-07-09 18:17:33 -04:00
Ryan C. Gordon
cf11d2ec99
Workaround snprintf() deficiencies on Visual Studio.
2017-07-09 17:46:53 -04:00
Ryan C. Gordon
f8ed5c6f7e
Replaced sprintf() calls with snprintf().
2017-07-09 17:06:37 -04:00
Ryan C. Gordon
32da097a55
Cleanup BAIL_* and GOTO_* macros to be less cluttered.
...
This also fixes really aggressive compiler warnings about the "if (!ERRPASS)"
construct producing unreachable code.
2017-07-06 11:51:41 -04:00
Ryan C. Gordon
062bdc2c5b
Patched to compile with OpenWatcom.
2017-07-05 23:49:10 -04:00
Francesco Bertolaccini
e4206408e5
Add support for VDF
2017-06-20 13:22:41 -04:00
Ryan C. Gordon
66b7767cec
Added support for password-protected .zip files.
...
To use: mount a .zip file as usual, open a file as usual, but append '$' plus
the password to the end of the path, like so:
PHYSFS_File *f = PHYSFS_openRead("/path/to/my/file.txt$MyPassword");
Note that this is the "traditional" PKWARE crypto, like you might get from
PkZip 2.04g or Info-ZIP. They have more advanced cryptography in the modern
.zip spec, but that's not implemented here. If you've ever tried to unzip
an archive and were prompted for a password, you probably saw the traditional
crypto at work.
Note that this is NOT a secure thing: if you ship an app that contains a
password, someone with a debugger can retrieve it. Note also that this
password could be available to any code registered as a PHYSFS_Archiver, and
that due to how archives combine into a single file tree, the wrong archiver
can get the password, at a minimum causing it to fail because passwords don't
match.
In short: make sure you know what you're doing before you use this!
2016-09-12 15:38:30 -04:00
Ryan C. Gordon
ab7eb81a4a
Platform deinit should happen last, since other deinit bits might depend on it.
2016-09-07 21:21:59 -04:00
Ryan C. Gordon
32d4f4541e
HTTPS all the things.
2016-02-25 02:51:28 -05:00
Ryan C. Gordon
b479c57bcb
zip: Reworked how we organize ZIP entries.
...
We now use a hashtable for lookups of specific paths, and organize the
entries into a directory tree. The end result is fast lookup and fast
enumeration without having to search a sorted array or tapdance with
substrings...which means the rare, mysterious bug where we failed
to find an existing file should be gone now, too.
2016-02-25 02:20:52 -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
f6a62ecad1
Make sure read buffers get reinitialized before refilling (thanks, Michael!).
2014-09-11 00:07:23 -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
Willi Schinmeyer
9df22f4bf5
Fix NULL flush() in PHYSFS_Io crash
2014-07-20 13:36:56 +02:00
Ryan C. Gordon
016394067c
PHYSFS_stat() returns zero on error, not -1.
2014-02-07 16:22:43 -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
4eafb44817
Get rid of array of static archivers.
2012-11-30 14:37:37 -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
16ee8355db
Centralize responsibility for filtering symlinks during enumeration.
2012-11-29 11:47:16 -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
Aleksi Nurmi
fd137cba42
SLB archiver
2012-11-12 23:40:29 +02: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
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