author Ryan C. Gordon <>
Sun, 26 Sep 2004 13:00:59 +0000
changeset 650 298b8bb26775
parent 649 85aeb90378bc
child 652 97b803df5a76
permissions -rw-r--r--
Did the same thing to FileHandles than I did to DirHandles, but this triggered massive tweaking in physfs.c. A lot of code got little cleanups, which was nice. Less malloc pressure, too, since opening a file used to allocate a ton of crap and mush it it's basically down to one structure and the instance data in whatever archiver.

Stuff that needs to be done and wishlist:

These are in no particular order.
Some might be dupes, some might be done already.

- Other archivers: perhaps tar(.gz|.bz2), RPM, ARJ, 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.
- Stack allocate in stripAppleBundle() (platform/unix.c) instead of calloc().
- Reduce malloc() pressure all over the place. We fragment memory like mad.
- macclassic.c :
  "/* (Hmm. Default behaviour is broken in the base library.  :)  )  */"
- Platforms to port to: Amiga (needs platform driver), DOS4GW (platform driver).
- profile string list interpolation.
- We have two different ways to find dir entries in zip.c.
- Do symlinks in zip archiver work when they point to dirs?
- Enable more warnings?
- Use __cdecl in physfs.h?
- Look for FIXMEs (many marked with "!!!" in comments).
- Probably other stuff. Requests and recommendations are welcome.
- Cygwin should use unix/posix and not win32 platform code.
- Add "mount points"
- Expose the archiver registration mechanism to the outside world.
- Set up a mechanism for file enumeration that employs a callback.
- Allow the application to provide allocation services.
- Find some way to relax or remove the security model for external tools.
- Non-blocking I/O
- mmap() in posix.c
- OSX shouldn't use ~/.app for userdir.
- fscanf and fprintf support in extras dir.
- Why do we call it openArchive and dirClose?
- Sanity check byte order at runtime.
- Every DIR_* function requires a malloc/free!
- Merge DirHandle and PhysDirInfo.
- Memory locking?
- Clean up file code to match DirHandle cleanups.
- Find a better name than dvoid and fvoid.
- Use something other than void * for platform file handlers.
- Can win32.c and pocketpc.c get merged?
- There's so much cut-and-paste between archivers...can this be reduced?
- General code audit.
- Just make PHYSFS_file * a void * typedef so we don't have to allocate?
- Multiple write dirs with mount points?
- Deprecate PHYSFS_setSaneConfig and move it to extras?
- PHYSFS_file should really be PHYSFS_File for consistency.
- (Re)move the profiling code in physfs.c.
- maybe other stuff.

// end of TODO ...