Ryan C. Gordon
0d1a73fce4
zip: add some zip_resolve() calls, deal with DirTree-inserted parent dirs.
2017-08-14 16:24:19 -04:00
Ryan C. Gordon
395ea71990
This appears to have been fixed at some point.
2017-08-14 14:06:43 -04:00
Ryan C. Gordon
660171f79f
Don't fail enumeration if a directory isn't available in a given archive.
...
That shouldn't be a fatal error, that's a normal case.
2017-08-14 14:05:06 -04:00
Ryan C. Gordon
f425f051db
Little tweaks to __PHYSFS_initSmallAlloc().
2017-08-14 13:57:57 -04:00
Ryan C. Gordon
8db27a1236
Fix symlink filtering for enumeration under a virtual mount point.
2017-08-14 11:43:18 -04:00
Ryan C. Gordon
cfe3f0180b
Make PHYSFS_exists() work with mounts from PHYSFS_mountIo(io, NULL, ...)
...
(Actually, from any mount function that accepts a bogus/NULL filename.)
2017-08-14 03:06:42 -04:00
Ryan C. Gordon
3b7ee3974c
Don't set readonly if PHYSFS_stat()'ing something not in the write dir.
...
This API is meant to report what the archivers think about an item and not
actually tell you if a PHYSFS_openWrite() will succeed on it.
2017-08-14 02:46:07 -04:00
Ryan C. Gordon
63277e500c
Turns out we were doing this for a (maybe not good, but reasonable) reason.
2017-08-14 02:42:13 -04:00
Ryan C. Gordon
3078acd1eb
Archivers can now specify whether an archive definitely was intended for them.
...
So if a zip file goes to the zip archiver but is corrupted, the system can now
know not to bother trying other archivers once the zip archiver has had a shot
at it, and just as important: it can report the real error from that archiver
instead of a generic "unsupported."
2017-08-14 02:28:00 -04:00
Ryan C. Gordon
2a6215394b
Reduced some FIXME-3.0 tags to normal FIXME. They can wait.
2017-08-14 01:35:10 -04:00
Ryan C. Gordon
88e7f3eb0f
Sanity check archivers that should only have low-ASCII filename.
2017-08-14 01:29:45 -04:00
Ryan C. Gordon
9c9325c2c5
Filled in more documentation.
2017-08-14 01:28:30 -04:00
Ryan C. Gordon
dd68246737
7z: do global initialization once without risking a race condition.
2017-08-13 22:53:38 -04:00
Ryan C. Gordon
1364f6a915
PHYSFS_setSaneConfig uses enum callbacks now.
2017-08-13 19:45:31 -04:00
Ryan C. Gordon
0d61295781
Improved some documentation.
2017-08-13 17:11:14 -04:00
Ryan C. Gordon
cc3ac9539e
Patched to compile on various platforms and compilers.
2017-08-12 03:10:19 -04:00
Ryan C. Gordon
7fcddfb741
Don't mark the PHYSFS_EnumFilesCallback _typedef_ as deprecated.
...
It upsets several compilers when building PhysicsFS itself.
2017-08-12 03:06:06 -04:00
Ryan C. Gordon
6da5bea804
Updated docs to use PHYSFS_getLastErrorCode() instead of PHYSFS_getLastError().
...
(a few other documentation fixes probably slipped in here, too.)
2017-08-12 02:39:24 -04:00
Ryan C. Gordon
f6a8533ba2
FIXME removal: document enumerateFiles() sorting promises.
2017-08-12 02:24:38 -04:00
Ryan C. Gordon
db2201e4e1
Added some FIXMEs and deprecated PHYSFS_getLastError().
2017-08-12 02:21:11 -04:00
Ryan C. Gordon
ee9687bca9
Reworked enumeration to be more powerful.
...
Now callbacks can stop further enumeration and report errors, if they had a
catastrophic issue or just found what they needed and don't need to process
any more items.
Also, the actual enumerators can report errors instead of silently dropping
items. This led to several other fixes as all these implementations got
audited and reworked.
The original, non-callback enumerator now returns NULL if it can't produce a
complete list instead of dropping items and returning a partial list.
2017-08-12 02:19:22 -04:00
Ryan C. Gordon
b082bc3432
Removed __PHYSFS_stricmpASCII functions.
...
Nothing was using them, except one OS/2 thing that could live with stricmp.
2017-08-11 01:45:29 -04:00
Ryan C. Gordon
78c1a985ec
Made physfs_lzmasdk.h's include-once blockers match other files' formatting.
2017-08-11 01:29:38 -04:00
Ryan C. Gordon
15048fbb1d
ignorecase.c: use PHYSFS_utf8stricmp() now.
2017-08-11 01:39:58 -04:00
Ryan C. Gordon
d1f2637ca8
utf8: big improvements to case-insensitive UTF-8 string compare.
...
- Dramatically reduce RAM usage: uses between 8 and 11 kilobytes less static
memory for its internal case-folding tables.
- Actually works now. It would fail unconditionally if a codepoint folded
into multiple codepoints, even if the compared string contained those exact
codepoints.
- Now a public API!
- Removed __PHYSFS_utf8strnicmp(): nothing was using it, it was incorrect
anyhow, and what does 'n' represent when either string might case-fold to
something larger in-flight, anyhow?
2017-08-11 01:39:22 -04:00
Ryan C. Gordon
587ec88a0d
FIXME removal: this code is fine, I guess.
2017-08-10 12:31:41 -04:00
Ryan C. Gordon
1efdb62a8f
haiku: CD-ROM detection should report any mounted volume on a B_CD device.
...
Most discs only use the "raw" device, but it turns out the Haiku installation
"anyboot" images don't, and those would fail to detect here. If there's
some multi-partition disc thing and the OS mounted each separately, we should
report each of them.
2017-08-10 12:31:06 -04:00
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
961c0604dc
apple: Patched to compile on XCode versions < 7.
2017-08-08 11:57:44 -04:00
Ryan C. Gordon
c52be25d1e
windows: minor cleanup.
2017-08-08 03:37:09 -04:00
Ryan C. Gordon
982411ec8a
apple: Start using some Cocoa APIs, clean up a few related things.
2017-08-08 03:36:56 -04:00
Ryan C. Gordon
0a730433ae
Rename physfs_platform_macos.c to physfs_platform_apple.m
...
It's not really "macOS," it's all of Apple's platforms (iOS, watchOS,
tvOS...AppleCarOS? heh), and second...we're about to need access to Cocoa
APIs, so we need it to be Objective-C. I fought as long as I could. :/
2017-08-08 02:34:25 -04:00
Ryan C. Gordon
ca4d5be5f8
cmake: Pacify warning about Policy CMP0042 not being set.
2017-08-08 02:27:47 -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
1d6c519c5e
windows: Patched to compile! (...?)
2017-08-06 12:27:18 -04:00
Ryan C. Gordon
2176364a16
windows: (maybe) patched to compile on Visual Studio.
2017-08-06 12:19:33 -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
114bfd1b21
windows: PHYSFS_FILETYPE_OTHER files now report real filesize in PHYSFS_stat().
...
I don't know if it's _meaningful_, but if the OS reports it, so do we.
2017-08-06 09:25:05 -04:00
Ryan C. Gordon
a7ce178eec
Add basic atomic operations for refcounting, etc.
2017-08-06 09:21:38 -04:00
Ryan C. Gordon
121ee38fde
physfshttpd: deal with write errors on the socket.
2017-08-06 01:34:18 -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
248167af40
windows: Removed (what I think is) a copy/paste error.
2017-08-05 01:26:07 -04:00
Ryan C. Gordon
be9bf023d0
windows: Use a real synchronization primitive for CD detection thread init.
...
Before we were waiting on a volatile int in a tight loop with a Sleep(50).
2017-08-05 01:24:53 -04:00
Ryan C. Gordon
befc894b1f
More FIXME cleanups.
2017-08-04 22:35:49 -04:00
Ryan C. Gordon
b6e139fc22
Make compile-time asserts more readable.
2017-08-04 22:32:57 -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