DOSFS_FindUnixName and "unix" filesystem (was: Re: (HELP) ...)

Andreas Mohr andi at rhlx01.fht-esslingen.de
Wed Aug 28 13:41:25 CDT 2002


On Wed, Aug 28, 2002 at 06:35:08PM +0200, Martin Wilck wrote:
> I wrote on 2002-06-27:
> 
> > > $ make test
> > > /home/martin/Software/Wine/TMP/wine/miscemu/wine: cannot find 'tests/kernel32_test.exe.so'
> > > make: *** [tests/alloc.ok] Fehler 1
> > 
> > Am I the only one with this problem? Or is it so trivial that I should
> > have figured it out?
> 
> I have finally figured this out. It has to do with some (intentional?)
> DOSFS_FindUnixName() weirdness.
> 
> My wine sources are in a directory /home/martin/Software/Wine/CVS/wine.
> /home/martin is my Windows drive Y:
> 
> Now in /home/martin/Software, I have subdirectories "Wine" and "wine".
> DOSFS_FindUnixName() uses "wine" because 
> a) DOSFS_ReadDir returns it first,
> b) The DOS short names match (the Unix names obviously don't).
> 
> Since "wine" is the wrong path, the search fails shortly after.
> This happens even if I set the Filesystem type of drive Y: to "unix".
> 
> I guess this is the right thing to do on Windows-style file systems,
> but should it be this way on a "unix" file system, too?
> 
> The patch below does what I'd consider "sane" behaviour on Unix. 
> Alternatively, on a "unix" filesystem, one could search the whole
> directory for exact matches, and try short names only if that fails.
Well, if your patch makes sure that on a "unix" mapping (as opposed to
"win95" !) we only lookup the *exact* case sensitive name instead of
iterating through all sorts of case cases (heh ! :), then I guess
your patch is right.

I guess nobody really cared about having correct behaviour of the "unix"
mapping mode.
(since everybody should use "win95" for normal use anyway)

-- 
The Declaration of Software Freedom:
http://freedevelopers.net/freedomdec/index.php



More information about the wine-devel mailing list