TODO 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. Stuff that needs to be done and wishlist:
  2. These are in no particular order.
  3. Some might be dupes, some might be done already.
  4. UNICODE:
  5. - BeOS: uses UTF-8 internally in the OS, so that's already done.
  6. - PocketPC: uses UCS-2 internally in the OS, and we're currently converting to
  7. and from ASCII. Need to change this out.
  8. - Windows: Can use Unicode, but might only allow "codepages" ... Use
  9. GetProcAddress() to find Unicode entry points on WinNT-based
  10. systems, otherwise try to use a sane codepage.
  11. - Mac Classic: apparently supports _something_, but I might just write it off
  12. as a loss.
  13. - OS/2: Codepages. No full Unicode in the filesystem, but we can probably make
  14. a conversion effort.
  15. - Linux: uses UTF-8 internally, so that's already done.
  16. - Mac OS X: uses UTF-8 in the Unix layer, and is smart enough to convert
  17. internally when needed.
  18. - DIR: just pass UTF-8 strings through to platform layer.
  19. - GRP: No Unicode (only 12 bytes for filename, 8.3 format). Legacy format.
  20. - HOG: No Unicode (only 12 bytes for filename, 8.3 format). Legacy format.
  21. - LZMA: Uses UTF-8 internally, so we're good to go.
  22. - MIX: only stores filename HASHES...this driver is going away.
  23. - MVL: No Unicode (only 12 bytes for filename, 8.3 format). Legacy format.
  24. - QPAK: Only has 56 bytes for a path, but we can just treat these as
  25. UTF-8 and be done with it.
  26. - WAD: No Unicode (only 8 bytes for filename). Legacy format.
  27. - ZIP: Uses UTF-8 internally, so it's good to go.
  28. Stuff:
  29. - Other archivers: perhaps tar(.gz|.bz2), RPM, ARJ, etc. These are less
  30. important, since streaming archives aren't of much value to games (which
  31. is why zipfiles are king: random access), but it could have uses for, say,
  32. an installer/updater.
  33. - Stack allocate in stripAppleBundle() (platform/unix.c) instead of calloc().
  34. - Reduce malloc() pressure all over the place. We fragment memory like mad.
  35. - macclassic.c :
  36. "/* (Hmm. Default behaviour is broken in the base library. :) ) */"
  37. - Platforms to port to: Amiga (needs platform driver), DOS4GW (platform driver).
  38. - profile string list interpolation.
  39. - We have two different ways to find dir entries in zip.c.
  40. - Do symlinks in zip archiver work when they point to dirs?
  41. - Enable more warnings?
  42. - Use __cdecl in physfs.h?
  43. - Look for FIXMEs (many marked with "!!!" in comments).
  44. - Probably other stuff. Requests and recommendations are welcome.
  45. - Cygwin should use unix/posix and not win32 platform code.
  46. - Expose the archiver registration mechanism to the outside world.
  47. - Find some way to relax or remove the security model for external tools.
  48. - Non-blocking I/O
  49. - mmap() in posix.c
  50. - OSX shouldn't use ~/.app for userdir.
  51. - fscanf and fprintf support in extras dir.
  52. - Why do we call it openArchive and dirClose?
  53. - Sanity check byte order at runtime.
  54. - Memory locking?
  55. - Find a better name than dvoid and fvoid.
  56. - Can win32.c and pocketpc.c get merged?
  57. - There's so much cut-and-paste between archivers...can this be reduced?
  58. - General code audit.
  59. - Multiple write dirs with mount points?
  60. - Deprecate PHYSFS_setSaneConfig and move it to extras?
  61. - Why is physfsrwops.c cut-and-pasted into the ruby bindings?
  62. - Replace code from SDL...
  63. - MIX grabs all archives that no other archivers claim.
  64. - MIX enumerates files as hash values.
  65. - Should file enumeration return an error or set error state?
  66. - Ryanify pocketpc.c ...
  67. - Update internal zlib?
  68. - Need "getmountpoint" command in test_physfs.c ...
  69. - Look for calloc() calls that aren't going through the allocation hooks.
  70. - maybe other stuff.
  71. - Is -Wall enabled?
  72. - Make mutexes recursive, so callbacks can call into the API.
  73. - Archivers need abstracted i/o to read from memory or files (archives in archives?)
  74. // end of TODO ...