Re: File Name Case Sensitivity Globbing! Was: file system name case insensitivity issue: Possible inclusion for the FAQ or User Manual?

2011-05-28 Thread Corinna Vinschen
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?

2011-05-28 Thread Christopher Faylor
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?

2011-05-27 Thread Lee D. Rothstein

 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?

2011-05-27 Thread Corinna Vinschen
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?

2011-05-27 Thread Thorsten Kampe
* 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?

2011-05-27 Thread Edward McGuire
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?

2011-05-27 Thread Thorsten Kampe
* 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