delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2013/08/02/02:55:00

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:date:from:mime-version:to:subject
:content-type:content-transfer-encoding; q=dns; s=default; b=A1d
sBsYBlMjJZNPNjACnlUaTRTtBzo25LEw1lhmlpYLslgha9yfwHH8Q7sGK3/Un7Q/
lMVn+HM8lk5SP5Q/HxPJfivbMZOxBf3GupUEPFbhwJyd4HIQv3LNj4sS8geiWtpq
aXHAIyEqee/wvPNpGDg47Xp8TRESKAFiiSuIritA=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:date:from:mime-version:to:subject
:content-type:content-transfer-encoding; s=default; bh=5WQ5Bs4zp
4F2aRE1W5MeScGvZgo=; b=dVaDdOY9PtqBVAtYg837i256klKO3dmgk/c2pbcwi
eRsZ4hW/Sa0jm9Mr186+Gmw3i98w329klQjEoRPwJ6UVZYmZSXgP8eG3DOOiROvq
v2mdUzrvqKBRUVjAc2vsdxtpViwNWP6XHBlBCdEq6sWxx9sIJNwtgMISgaEJh5kt
rA=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
X-Spam-SWARE-Status: No, score=0.1 required=5.0 tests=AWL,BAYES_50,FROM_12LTRDOM,RCVD_IN_HOSTKARMA_NO,RCVD_IN_HOSTKARMA_YE,RCVD_VIA_APNIC,RDNS_NONE autolearn=no version=3.3.1
Message-ID: <51FB56D0.4040609@shaddybaddah.name>
Date: Fri, 02 Aug 2013 16:50:56 +1000
From: Shaddy Baddah <lithium-cygwin AT shaddybaddah DOT name>
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130704 Icedove/17.0.7
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Case sensitive filenames for non-NTFS filesystems
X-Optus-CM-Score: 0
X-Optus-CM-Analysis: v=2.1 cv=Yos2GeoX c=1 sm=1 tr=0 a=RkPObcNqpdaXDoCDBSw5Xw==:117 a=RkPObcNqpdaXDoCDBSw5Xw==:17 a=PO7r1zJSAAAA:8 a=fUdQyOyA9-cA:10 a=jV5JwyHGKuoA:10 a=8nJEP1OIZ-IA:10 a=bsUcx-BPE-kA:10 a=w_pzkKWiAAAA:8 a=v-_s_V6svQ6fPXEYb5gA:9 a=wPNLvfGTeEIA:10 a=zvuQ_vupYScA:10

Hi,

As per:

http://cygwin.com/cygwin-ug-net/using-specialnames.html#pathnames-casesensitive

Cygwin act on filenames on NTFS in with case preservation/sensitivity.

As this was a feature configured in the Windows kernel, the pre-existing
limitation whereby the same case sensitivity was not available for FAT32
was an understandable compromise.

Unfortunately, in providing EXFAT, Microsoft has not seen fit to carry
over the same handling in the kernel as it does in NTFS.

In my opinion, the knock on limitation in Cygwin for FAT32 was easy to
accept as it was quite inferior to NTFS. The limitation with EXFAT is a
little difficult to accept, and this is the motive behind this email.

I don't expect much interest in this suggestion, but make it here to at
least bring awareness to the problem.

Can I suggest that if it is a) feasible b) doable without too much added
degradation in performance/complexity to the file handling code, that
Cygwin add some limited support itself.

I'm not talking about going back to something like the old managed
mounts, but more to its replacement function. That being the same
handling of special characters like :, |, etc that Cygwin employs.

That is, the use of the special Unicode breakout character. It can
be used when a name collision is detected (yes, detection code required.
I don't know how costly that would be). eg.

Hello and HELLO, would end up with something like (posix=0 still
required on mount):

* Hello is created first. No Hello file preexists.
* attempt to create HELLO
* detect file exists as Hello, but filename not equal on case
* detect first case equal character is H.
* Use Unicode breakout on H in HELLO.
* Unfortunately, will need to recurse (expensive) and redo checks above
   (with breakout)

I haven't completely thought this through. And as I typed the above, it
sounds expensive. However, I'd love to hear opinion on this anyway.

Is the trade-off large enough to fall back on the "just use NTFS"
argument?

-- 
Thanks,
Shaddy

--
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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019