Re: [gui-dev] LimeWire 4.2.3 international font display patch

"Philippe Verdy" <[email protected]> Sat, 27 Nov 2004 21:54:16 +0100
Newsgroups gmane.network.gnutella.limewire.gui.devel
Message-ID <[email protected]>
----- Original Message ----- 
From: "Sam Berlin" <[email protected]>
To: <[email protected]>
Sent: Saturday, November 27, 2004 5:10 PM
Subject: RE: [gui-dev] LimeWire 4.2.3 international font display patch


> Hi heavy,
>
> Do you recall if you saw this problem with earlier LimeWire versions?
> Nothing has changed with normalization that should have affected this, so
> we're hesitant to make a change for the 4.2 series.  Your two suggestions
> are indeed the correct places to add the normalization.  We're just 
> hesitant
> to add it to all incoming search results because it may be a very
> time-consuming process.

No Sam, you just need to add normalized composition when reading directories 
on Mac filesystems (which are not consistant, depending on the filesystem 
type and version effectively used on MacOSX).
MacOS or MacOSX will accept to create files with precomposed filenames in 
NFC form, but the HFS+ filesystem driver will remap these names to the 
Apple-specific decomposed form (a variant of NFD, based on preliminary 
versions of Unicode canonical decompositions, but which is incomplete and 
not fully conforming to the normalized NFD). However you can be sure that 
the Apple-decompositions created by HFS+ are canonically equivalent to a NFC 
form, and that all filenames given to HFS+ that are canonically equivalent 
to the Apple decomposition will be stored on HFS+ with the same 
Apple-decomposition.

What this means is that it is always safe on MacOS filesystems to force the 
recomposition to NFC, when reading directory entries. I just wonder why the 
java.io.* packages ported on MacOS or MacOSX do not perform that normalized 
composition by default, so that Java programs would not have to worry about 
these details, and could safely create files with names in NFC forms, and 
then parsing directories to find the same names.

The FAT32 or NTFS filesystems on Windows, or Linux filesystems do not 
perform such forced composition or decompositions, so an application that 
creates a file using any valid form will be able to retreive the same form 
when reading directory entries.

On all these filesystems however, whever the FS driver performs some 
normalization or not, you can create a file with any form, and then open 
that file for reading using the same form, even if the file was created with 
a different form (it only affects the case where we read directory entries).

So the correct place to do that normalization is only when parsing shared 
directory contents...

_______________________________________________
gui-dev mailing list
[email protected]
http://www.limewire.org/mailman/listinfo/gui-dev