On Wed, Mar 26, 2008 at 6:17 PM, Scott Ritchie scott@open-vote.org wrote:
Alexandre Julliard wrote:
Marc Andre Tanner mat@brain-dump.org writes:
Yes that's true the case information is lost but is it really needed? If you create the files with the original mixed case you will have to scan the whole directory in order to match it to a given filename. And if i am not mistaken this is exactly what wine does.
Yes, and that's precisely because Wine wants to preserve case, so that tools that look at the filesystem directly see the right thing. If you are going to store everything lowercase in the filesystem, then we could just as well do that inside Wine, without a FUSE module.
It seems like we have a few goals:
- Prevent having to read the whole directory when looking for a
case-insensitive file
- Allow non-Wine programs to work with the cased filenames
- Prevent the creation of conflicting files
We could do this for the drive_c directory but what about /? you cannot enforce that there. Maybe this part project should be divided into two different problems. 1. How to achieve that for drive_c, and 2. how to mount a proxy filesystem for / and apply some rules when conflicting files exist, as keep the newest conflicting file with the original name and rename other files like it was proposed on another thread on this list.
The last one is important, as we need to have a 1:1 correspondence between cased and uncased files in the .wine folder to prevent breakages when someone, say, installs a patch with different casing from a zip file.
I don't see any reason why it would be bad to have the FUSE module mounted at login rather than when Wine starts. This would make your Wine folder no different to other apps than, say, a vfat disk mounted there. I should be able to extract a zip with file-roller containing "foo.txt" and have it overwrite "Foo.txt" even if Wine isn't running.
Thanks, Scott Ritchie