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: List-Subscribe: List-Archive: List-Post: List-Help: , 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 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 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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