From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2179 invoked by alias); 28 May 2011 07:51:21 -0000 Received: (qmail 2077 invoked by uid 22791); 28 May 2011 07:50:59 -0000 X-Spam-Check-By: sourceware.org Received: from aquarius.hirmke.de (HELO calimero.vinschen.de) (217.91.18.234) by sourceware.org (qpsmtpd/0.83/v0.83-20-g38e4449) with ESMTP; Sat, 28 May 2011 07:50:25 +0000 Received: by calimero.vinschen.de (Postfix, from userid 500) id C1E912CB9E4; Sat, 28 May 2011 09:50:22 +0200 (CEST) Date: Sat, 28 May 2011 07:51:00 -0000 From: Corinna Vinschen To: cygwin@cygwin.com Subject: Re: File Name Case Sensitivity & Globbing! Was: file system name case insensitivity issue: Possible inclusion for the FAQ or User Manual? Message-ID: <20110528075022.GA19027@calimero.vinschen.de> Reply-To: cygwin@cygwin.com Mail-Followup-To: cygwin@cygwin.com References: <4DDE9BE5.90105@veritech.com> <20110526193553.GB6015@ednor.casa.cgf.cx> <4DDEB0BA.9030903@veritech.com> <20110527052926.GE28752@calimero.vinschen.de> <4DDFC8EC.8060507@veritech.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com X-SW-Source: 2011-05/txt/msg00434.txt.bz2 On May 27 16:36, Edward McGuire wrote: > This note: > > http://cygwin.com/cygwin-ug-net/using-specialnames.html#pathnames-casesensitive > > warns that you cannot have two filenames in the same directory that > differ only by case, because of NTFS semantics. No, it does not. *sigh* I'm not a native English speaker, but it's still frustrating how my words are misunderstood. Read again, now with comment: "In the Win32 subsystem filenames are only case-preserved, but not case-sensitive." Not NTFS. The Win32 subsystem. The underlying native NT calls allow to specify if the object name is treated case-sensitive or case-insensitive. The Win32 calls are usually calling their underlying NT pendants with case-insensitivity switched on. Therefore you only get a case-insensitive behaviour on the Win32 surface. "You can't access two files in the same directory which only differ by case, [...]" That's just an example. "While NTFS (and some remote filesystems) support case-sensitivity, [...]" Yes, they do. The NTFS driver is case-sensitive. This is obviously used by the POSIX subsystem (Interix/SFU/SUA). There is *no* reason to forgo case-sensitivity with NTFS other than: "[...] the NT kernel starting with Windows XP does not support it by default. Rather, you have to tweak a registry setting and reboot." That's the only problem. This registry settings, if set, lets the NT kernel ignore all requests for case-sensitive behaviour. It translates all calls into case-insensitive calls. Unless... "For that reason, case-sensitivity can not be supported by Cygwin, unless you change that registry value." That's it. Just change a registry value and suddenly case-sensitivity is enabled in the kernel. Now you can call native NT functions, request case-sensitive behaviour, and actually get it. Now, suddenly you can have three files called "abc", "Abc and "ABC" in the same directory. On NTFS: $ uname -a CYGWIN_NT-6.1 vmbert7 1.7.10(0.241/5/3) 2011-05-27 21:05 i686 Cygwin $ echo abc > abc $ echo Abc > Abc $ echo ABC > ABC $ cat abc abc $ cat Abc Abc $ cat ABC ABC > It could be improved to warn that because of NTFS semantics there > are also filenames which exist but which Cygwin's readdir() does not > return, and which therefore are truly hidden -- will never show up > in directory listings or globs. This wouldn't be true. The problem is not Cygwin's readdir, nor the underlying OS functions scanning directories. The only problem is that non-Cygwin apps, which open one of the above three files, will always open the same one, regardless whether you specify "abc", "Abc", or "ABC" as filename. Because, whatever Cygwin does, or the NT kernel, the native Win32 applications are *still* case-insensitive. Did I make myself clear now? Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple