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