Mailing-List: contact cygwin-developers-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT cygwin DOT com Delivered-To: mailing list cygwin-developers AT cygwin DOT com From: "Gerald S. Williams" To: Subject: RE: True case-sensitive filenames Date: Wed, 22 Jan 2003 12:20:57 -0500 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Importance: Normal In-Reply-To: <20030121205913.GH17699@redhat.com> Christopher Faylor wrote: > I don't know if the requirements for getting case sensitivity > working on NT could be abstractable into something that would > allow for future expansion into, oh, I don't know, nfs or > something but I think it is worthwhile to consider not just > adding a bunch of "ifs" to the code but going for something > that could be "plugged in" somehow. I'm not sure exactly how far you're talking about going. It sounds like you're suggesting something that I would have thought goes against the grain of what Cygwin generally does. Are you talking about ways to add case-sensitivity to a truly case-insensitive file system? I've seen NFS clients that did this. They used reversible mapping tricks such as replacing "My_file" with "_my__file" (I'd prefer "%4Dy_file" myself). If you want a truly generic approach for Win95-like clients, you may have to do something similar. E.g., if you have two conflicting files/directories, you rename both according to a similar trick (possibly moving them into a subdirectory of that name if you want to make the situation more obvious to Windows clients). Short of accessing the underlying file system directly, some trick like that is needed to support case-sensitive directory naming and/or to avoid using copy-delete to rename files on those platforms. I wasn't planning to go that far (and was willing to forgo Win95 support entirely for the sake of having a robust solution). If you're willing to constrain this feature to NT/XP clients, you can always drop into the Native API. You could then argue that it's really the responsibility of the NFS driver to support case-sensitivity for NT. However far you intend to go, it probably makes sense to encapsulate these operations into a small set of case-sensitive functions. That would allow you to extend case-sensitivity to other platforms if you were so inclined. -Jerry