Apparently Win9x has the Unicode entry points, they just don't work, so
only do a real lookup on NT-based platforms, and just force the
fallbacks on 95/98/ME systems.
versions of the OS, and fallback to "ANSI" versions for 95/98/ME,
tapdancing around the system codepage if it has to. Other minor Windows
cleanups and corrections.
which will stack allocate small (128 or less bytes) blocks and Malloc the
rest...naturally these now have to be paired with __PHYSFS_smallFree() calls,
so you can't be as lazy as a basic alloca() would let you be. The benefit is
both less malloc pressure for those temporary allocations and better stack
overflow safety (so if some jerk tries to push a 78 megabyte string through
the library as a filename, we won't try to strcpy it to the stack).
malloc/realloc/free allocator, I moved it into physfs.c as a default, which
is used if the platform layer doesn't offer a platform-specific default
allocator, which none do at this point, but will soon.
platform-specific stricmp implementations, changed appropriate calls to an
ASCII-only stricmp that ignores locale. Fixed case on UTF-8 API entry points.
#ifdefs...this will make it easier to "embed" this library in other projects
or use a different build system: just push everything through the compiler
with preprocessor defines for the parts you want/need...platform modules are
determined automatically without the build system needing to intervene, so
you just have to #define the archivers, etc that you want.