physfs/TODO

50 lines
2.5 KiB
Plaintext

Stuff that needs to be done and wishlist:
These are in no particular order. A 1.0 release is reliant on doing most of
this stuff. Some might be dupes, some might be done already.
- autoconf support?
- update the Makefile so that Cygwin can generate a DLL. The entire codebase
compiles under Cygwin otherwise.
- Hmm...we can determine the actual CD-ROM drives under Win32, but how do you
decide that there's no disc in the drive?
- Platform-specific functions/macros to handle byte ordering.
- A PHYSFS_readUint32(), _readSint32(), etc API.
- Patch the zlib used on win32 to 1.1.4.
- Switch the CHANGELOG to list newest changes first.
- Write manpages, preferrably generated from some javadoc-style solution
so we can make HTML versions etc from the same data.
- Byte order API; just something simple like:
__EXPORT__ PHYSFS_uint16 PHYSFS_swapBE16(PHYSFS_uint16 val);
__EXPORT__ PHYSFS_uint16 PHYSFS_swapLE16(PHYSFS_uint16 val);
(these can be macros. The hard part is determining the architecture at
compile time, and whether a given platform offers accelerated
conversion macros already. We can probably jack this from SDL, too.)
- Make win32.c respect the more strict filesystem layout enforced by
Win2000 and later.
- Improve ZIP_seek() (archivers/zip.c)
- Make the zipfile parse symlinks with relative paths. See the function
expand_symlink_path() in archivers/zip.c ...
- Make archivers/unzip.c use the new byte order API for a little more
efficiency (it gets 32-bit ints as four 1-byte reads; yuck.)
- Actually, the zipfile driver could use a lot of tweaking. Please look
through it.
- Other archivers: perhaps tar(.gz|.bz2), RPM, etc. These are less
important, since streaming archives aren't of much value to games (which
is why zipfiles are king: random access), but it could have uses for, say,
an installer/updater. I thought it might be neat to have MBOX and Maildir
support so that both "archives" look identical to an application; might be
nice for an email program. That's blue sky, unless someone wants to tackle
it.
- Look for FIXMEs (many marked with "!!!" in comments).
- Port to BeOS (might work already? Will work for sure with autoconf support)
- Port to MacOS Classic (needs a platform driver, byte order fixes mentioned)
- Port to MacOS X (specifically, make Project Builder files; unix.c should
work with it as-is. Might compile as-is with the current Makefile, byte
ordering fixes mentioned).
- Probably other stuff. Requests and recommendations are welcome.
// end of TODO ...