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
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
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
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
Ryan C. Gordon
093dcb555b
os/2: Patched to compile (?).
2017-08-02 16:40:07 -04:00
Ryan C. Gordon
3f9ffddc83
os/2: attempt to get cpuid support on OpenWatcom builds.
2017-08-02 16:34:02 -04:00
Ryan C. Gordon
1e850d32ea
windows: Patched to compile.
2017-08-02 13:06:56 -04:00
Ryan C. Gordon
007c2fc037
windows: Just pass HANDLEs around instead of wrapping in a struct.
...
We don't need the "readonly" field of this struct, because it was only used
to protect flushes on non-writable handles, but PHYSFS_flush() also keeps
track of what's read-only and won't call into the platform layer anyhow.
HANDLEs are typedef'd to be "void *" on Windows, so this is safe (so long as
we check for INVALID_HANDLE_VALUE, which is ((void*)-1), when creating new
handles.
2017-08-02 13:02:43 -04:00
Ryan C. Gordon
bea510def0
windows: Fixed logic bug.
2017-08-02 12:48:40 -04:00
Ryan C. Gordon
02c2c4736e
windows: better test for WinRT vs win32 (...I think...?)
2017-08-02 12:48:31 -04:00
Ryan C. Gordon
5ab8df339d
Updated Unicode case folding support to something 10 years newer. :)
2017-07-31 16:32:47 -04:00
Ryan C. Gordon
32930ef41d
Fixed compiler warning.
2017-07-26 16:08:32 -04:00
Ryan C. Gordon
0e7f3ee6a1
Added an assert for a FIXME that is now handled elsewhere.
2017-07-25 19:55:58 -04:00
Ryan C. Gordon
1e2650b6fc
Serious cleanup and update of Windows RT support.
...
This compiles for WinRT, but isn't otherwise tested at all yet.
2017-07-24 03:29:33 -04:00
Ryan C. Gordon
c74f4cb007
Minor cleanup.
2017-07-24 02:37:22 -04:00
Ryan C. Gordon
a5461ddcd9
Some minor preprocessor nitpicks.
2017-07-24 02:36:58 -04:00
Ryan C. Gordon
8c13bd27d6
unix: getmntinfo() should proabably be set to MNT_NOWAIT to avoid blocking.
2017-07-22 20:05:17 -04:00
Ryan C. Gordon
bc28fb74b4
Minor QNX fix; don't warn about CD-ROM support (for now).
2017-07-22 20:04:38 -04:00
Ryan C. Gordon
e2750bff62
Apple refers to "Mac OS X" as "macOS" now.
2017-07-22 13:50:40 -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
1fa4be6f66
Minor documentation updates.
2017-07-22 13:48:31 -04:00
Ryan C. Gordon
db349bd067
Update filename comments.
2017-07-22 13:19:57 -04:00
Ryan C. Gordon
18c89c1cbc
Renamed all the sources to start with "physfs_"
...
So now you can drop this into your program and not worry about filename
conflicts, or where "platform_unix.c" came from in the debugger, etc.
Also renamed the "beos" sources to "haiku" and "macosx" to "macos" to match
modern platform names.
2017-07-22 12:59:06 -04:00
Ryan C. Gordon
ace324cdc8
Minor code cleanups: whitespace fixes, 80-column overflows, wrong comments.
2017-07-22 12:47:32 -04:00
Ryan C. Gordon
c1defd3ec4
vdf: Migrated to new, improved unpacked archiver infrastructure.
2017-07-22 12:42:34 -04:00
Ryan C. Gordon
eefc757398
Added some TODOs to the ISO9660 code.
2017-07-22 12:16:37 -04:00
Ryan C. Gordon
8ee7f5d351
Fixed compiler warnings.
2017-07-21 22:38:50 -04:00
Ryan C. Gordon
a7616f3960
Removed unused variable.
2017-07-21 22:35:30 -04:00
Ryan C. Gordon
03097332ca
unpacked: let archivers specify create and modified times, hook up to iso9660.
2017-07-21 22:01:51 -04:00
Ryan C. Gordon
3c9351c0ad
unpacked: let archivers "abandon" the archive instead of closing it.
...
This lets you preserve the PHYSFS_Io in case of error during archive opening.
2017-07-21 19:01:41 -04:00
Ryan C. Gordon
91a19982ca
iso9660: rewritten and simplified.
...
This now builds on top of the "unpacked" archiver and reads only the
structures it needs, serializing the parts it cares about. Lots of other
cleanups.
Lost a little bit of functionality, to be restored later.
2017-07-21 13:56:21 -04:00
Ryan C. Gordon
2dd3d7c28a
unpacked: Don't list a position or length for directory entries.
2017-07-21 13:55: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
32ed71db48
slb: be more aggressive about rejecting non-SLB files.
2017-07-20 17:00:21 -04:00
Ryan C. Gordon
7e30657f54
Attempt to fix compilation against the latest Windows SDK.
2017-07-18 09:59:23 -04:00
Ryan C. Gordon
adb7ea4dfc
It's not messy to compile NOW. :)
2017-07-17 16:39:15 -04:00
Ryan C. Gordon
28f32ad240
Removed C++ single-line comments from LZMA SDK.
2017-07-17 16:25:17 -04:00
Ryan C. Gordon
823061758b
Disable unaligned reads in LZMA SDK; it upsets GCC's strict-aliasing rules.
2017-07-17 16:22:29 -04:00
Ryan C. Gordon
0bda50c276
More unused LZMA SDK code.
2017-07-17 15:50:04 -04:00
Ryan C. Gordon
1d616dcaf1
Fixed compiler warning.
2017-07-17 15:43:39 -04:00
Ryan C. Gordon
4557dbf0f7
Another LZMA SDK trim.
2017-07-17 14:57:02 -04:00
Ryan C. Gordon
7ab5cc52ce
Fixed 64-bit ints in LZMA SDK on Watcom C.
2017-07-17 14:56:52 -04:00
Ryan C. Gordon
f6c830968c
Workaround strict-aliasing warnings on some versions of GCC.
2017-07-17 14:46:36 -04:00
Ryan C. Gordon
3765efb652
Still more LZMA SDK trimming.
2017-07-17 14:43:36 -04:00
Ryan C. Gordon
a28a01c124
Patched to compile on Visual Studio.
2017-07-17 14:37:02 -04:00
Ryan C. Gordon
8553113870
Patched to compile on OpenWatcom.
2017-07-17 14:35:47 -04:00
Ryan C. Gordon
7fed370cfd
Chopped more unused pieces out of the LZMA SDK.
2017-07-17 14:35:36 -04:00
Ryan C. Gordon
43f8ffcd2d
Chopped out some unused code from the LZMA SDK.
2017-07-17 14:27:51 -04:00
Ryan C. Gordon
afacf0395e
Static analysis fix.
2017-07-17 14:19:29 -04:00
Ryan C. Gordon
d38c10dea7
Removed unused variables.
2017-07-17 12:42:09 -04:00
Ryan C. Gordon
f83e36a8be
Static analysis fix (maybe?).
2017-07-17 12:41:28 -04:00
Ryan C. Gordon
c375504463
Removed unused variable.
2017-07-17 12:39:43 -04:00
Ryan C. Gordon
8c3501491c
Whoops, forgot to add the file. :)
2017-07-17 12:35:35 -04:00
Ryan C. Gordon
da1561a09f
Removed ancient LZMA SDK.
2017-07-17 12:20:14 -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
63de092cb7
zip: fail with correct error code if opening a directory.
2017-07-17 12:21:26 -04:00
Ryan C. Gordon
e84277a1df
Corrected reported value for unknown PHYSFS_stat() access times.
2017-07-17 12:21:02 -04:00
Ryan C. Gordon
62ad133862
Reworked the "unpacked" archivers to use DirTree.
...
This cleaned up a lot of code and improved things, and also allowed a lot of
the restrictions on unpacked archivers to be removed.
2017-07-16 04:39:14 -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
56bddb0b78
Fixed some comments.
2017-07-16 04:35:46 -04:00
Ryan C. Gordon
5afd9754e2
Reenable QPAK support by default.
2017-07-16 04:34:52 -04:00
Ryan C. Gordon
9cec66be3e
Removed SWIG ifdefs in physfs.h
2017-07-16 04:36:40 -04:00
Ryan C. Gordon
53225ca62c
Fixed more Visual Studio compiler warnings.
2017-07-13 00:21:25 -04:00
Ryan C. Gordon
1bacc6d6af
Fixed some compiler warnings with Visual Studio.
2017-07-13 00:16:24 -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
efd71e08f6
Move headers around to get those MSVC anti-portability nags to go away.
2017-07-12 20:55:58 -04:00
Ryan C. Gordon
a681fe258d
unix: OS-specific paths should also chop filename off base path.
2017-07-12 20:52:51 -04:00
Ryan C. Gordon
187d04ae9e
Debian/kFreeBSD should use the FreeBSD-specific codepaths, not generic Unix.
2017-07-12 20:49:53 -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
2cb1f73737
Cygwin has mntent.h, and no need to check for CMake tests now.
2017-07-12 02:41:28 -04:00
Ryan C. Gordon
4b2180dd17
unix: Don't #error if no CD-ROM support, because we already give a #warning.
2017-07-12 02:33:15 -04:00
Ryan C. Gordon
68ad1fa8c5
Removed BeOS support (Haiku still supported, though!).
...
Since Haiku has pthread support, dropped the BLocker code and use the pthread
code from platform_posix.c instead.
2017-07-12 00:16:57 -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
0be0e3fd33
mac: Removed Carbon header include and custom allocator (just use malloc).
2017-07-11 23:47:48 -04:00
Ryan C. Gordon
73070339a4
Simplify CMakeLists.txt, etc.
...
Try to test things with preprocessor macros instead of CMake, and get rid of
silly options like turning off thread safety.
2017-07-11 23:32:46 -04:00