Re: File Name Case Sensitivity Globbing! Was: file system name case insensitivity issue: Possible inclusion for the FAQ or User Manual?
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
Re: File Name Case Sensitivity Globbing! Was: file system name case insensitivity issue: Possible inclusion for the FAQ or User Manual?
On Sat, May 28, 2011 at 09:50:22AM +0200, Corinna Vinschen wrote: Did I make myself clear now? Yep. Perfectly. I think the discussion prior to your explication brings new meaning to the term case insensitivity. cgf -- 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
File Name Case Sensitivity Globbing! Was: file system name case insensitivity issue: Possible inclusion for the FAQ or User Manual?
You got that wrong. The CYGWIN=glob:... option only affects how globbing is performed on the command line arguments if the Cygwin process has been started from a native Windows process. Full stop. I acknowledged *my* MISTAKE. I do so again. Now, actual filename case sensitivity is an entirely different issue. This is handled by a registry setting, the ability of the underlying filesystems to handle filenames case sesitive, and the settings of the Cygwin mount point: http://cygwin.com/cygwin-ug-net/using-specialnames.html#pathnames-casesensitive http://cygwin.com/cygwin-ug-net/using.html#mount-table I acknowledged this point as well in my initial post, and why I reject it. The point remains: Globbing is case sensitive while full command name invocation/full filename use is not. And, you may never have been confused by that, but I maintain it's very confusing. I'm not asking that it be fixed, I'm asking that it be carefully documented, and I'm not asking anyone but me to do it. If it is so documented, I missed it. And, I read and reread that part of the manual before posting both times. I offered an example session transcript that made that perfectly clear, and I am willing to write that up however you want it. Thus far, you've made clear you don't want it. No further replies will be required if my last read is correct. -- 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
Re: File Name Case Sensitivity Globbing! Was: file system name case insensitivity issue: Possible inclusion for the FAQ or User Manual?
On May 27 11:53, Lee D. Rothstein wrote: You got that wrong. The CYGWIN=glob:... option only affects how globbing is performed on the command line arguments if the Cygwin process has been started from a native Windows process. Full stop. I acknowledged *my* MISTAKE. I do so again. So actually I got it wrong. The point remains: Globbing is case sensitive while full command name invocation/full filename use is not. And, you may never have been confused by that, but I maintain it's very confusing. I'm not asking that it be fixed, I'm asking that it be carefully documented, and I'm not asking anyone but me to do it. If it is so documented, I missed it. And, I read and reread that part of the manual before posting both times. If anybody says our documentation is lacking, I'm the last to deny it. If you feel up to the task, patches to the documentation are more than welcome. 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
Re: File Name Case Sensitivity Globbing! Was: file system name case insensitivity issue: Possible inclusion for the FAQ or User Manual?
* Lee D. Rothstein (Fri, 27 May 2011 11:53:16 -0400) Globbing is case sensitive while full command name invocation/full filename use is not. And, you may never have been confused by that, but I maintain it's very confusing. This has nothing to do with Cygwin. You are (still[1]) confusing Cygwin and your shell. You would hugely benefit from gaining some basic knowledge about the tools you've been using since 1979. Your transcript was done in a shell called bash. Globbing in bash is - by default - case sensitive. If you want to change that, read the man page and then set option nocaseglob (shopt -s nocaseglob). Thorsten [1] http://www.cygwin.com/ml/cygwin/2003-02/msg01005.html -- 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
Re: File Name Case Sensitivity Globbing! Was: file system name case insensitivity issue: Possible inclusion for the FAQ or User Manual?
On Fri, May 27, 2011 at 12:38, Thorsten Kampe thors...@thorstenkampe.de wrote: This has nothing to do with Cygwin. You are (still[1]) confusing Cygwin and your shell. You would hugely benefit from gaining some basic knowledge about the tools you've been using since 1979. Your transcript was done in a shell called bash. Globbing in bash is - by default - case sensitive. If you want to change that, read the man page and then set option nocaseglob (shopt -s nocaseglob). The globbing is not where the confusion lies. This globbing: $ ls xwin* ls: cannot access xwin*: No such file or directory works as expected and did not confuse anybody. Here's what confused the OP: $ ls xwin xwin $ ls xwIN xwIN This is unquestionably a normal, Cygwin specific condition, caused by the semantics of the underlying NTFS, but very confusing to someone whose experience is with UNIX. 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. 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. I think this is what the OP was volunteering to do. Cheers, MetaEd -- 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
Re: File Name Case Sensitivity Globbing! Was: file system name case insensitivity issue: Possible inclusion for the FAQ or User Manual?
* Edward McGuire (Fri, 27 May 2011 16:36:06 -0500) The globbing is not where the confusion lies. This globbing: $ ls xwin* ls: cannot access xwin*: No such file or directory works as expected and did not confuse anybody. Lee begs to differ: Globbing is case sensitive [while ...]. And, you may never have been confused by that, but I maintain it's very confusing. Here's what confused the OP: $ ls xwin xwin $ ls xwIN xwIN Interesting that you know that this is what confused Lee - although he doesn't mention it all in his transcript (http://permalink.gmane.org/gmane.os.cygwin/126959). Thorsten -- 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