From: rale66 AT earthlink DOT net Subject: Mixed case filenames patch for ntfs 10 Mar 1998 20:46:42 -0800 Message-ID: <3505925D.D0FE9369.cygnus.gnu-win32@earthlink.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------C82A0920D513B882F8151B85" To: gnu-win32 AT cygnus DOT com This is a multi-part message in MIME format. --------------C82A0920D513B882F8151B85 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi, I've been working on a way to allow mixed-case filenames. So far, I've come up with using FILE_FLAG_POSIX_SEMANTICS. >From msdn under CreateFile: " FILE_FLAG_POSIX_SEMANTICS Indicates that the file is to be accessed according to POSIX rules. This includes allowing multiple files with names, differing only in case, for file systems that support such naming. Use care when using this option because files created with this flag may not be accessible by applications written for MS-DOS or Windows. " Ive had some sucess by adding this option to all the CreateFile calls. Now, here is what happens under the normal b19. " Administrator@~/test# echo "This file is named TEST" > TEST Administrator@~/test# echo "This file is named test" > test Administrator@~/test# ls -l total 1 -rw-rw-rw- 1 root None 24 Mar 9 14:32 TEST Administrator@~/test# cat TEST This file is named test Administrator@~/test# " Heres what happens with my patch. " Administrator@~/test# echo "This file is named TEST" > TEST Administrator@~/test# echo "This file is named test" > test Administrator@~/test# ls -l total 2 -rw-rw-rw- 1 root None 24 Mar 9 14:34 TEST -rw-rw-rw- 1 root None 24 Mar 9 14:34 test Administrator@~/test# cat TEST This file is named TEST Administrator@~/test# cat test This file is named test Administrator@~/test# " As you can see, basic file access works fine. It does not work with directories, this is a limitation of windows as far as i can tell. I havent realy tested everything yet. tar files containing two files with the same name/different case work right, now. Under win95, or a FAT fs in NT, the setting is ignored, so things work exactly like they did before. The real problem is when working with these files under normal windows apps. If you delete TEST in explorer, test is also removed. Ive added an option to the CYGWIN32 env. var. to control the behavior, CYGWIN32=[no]mixed, and it defaults to nomixed. Also, I changed the /dev/null handler to use "NUL", because "nul" doesnt work with the posix semantics option. If ive made any mistakes, or missed anything, please let me know. Included is a gzip'd diff with my changes. Also, im about to u/l a compiled cygwinb19.dll to ftp.deninc.com, with all of Sergey's patches, the console color patch, and the spawnfix patch. - Paul. --------------C82A0920D513B882F8151B85 Content-Type: model/vrml; name="mixedcase.diff.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="mixedcase.diff.gz" H4sICBeLBTUAA21peGVkY2FzZS5kaWZmAN1ae3PaSBL/2/kUs76qLGDZ1guM8GW3iC0nVGxw Ab4kt7WnEtIA2hISJY1ie7P+7tczeo1AwhA7G9+pUjFqzbRm+vHrx8h2plN0aAXo1vHCaHmM vS9O4HtHlpVQjhbOHbY5+qtGo7E+eu/K99AFniCphaSTjqx21CaSNK396vDwsIrV3jjC6MoM kCQiSekoYkdV40mN4sXeKWmiIGlNxAiUa0xoIfh9+Aqh4wa6NoMQo7PP7z72+oqM/CVxfC9E jWN4DP9CYhLHQv2BcTa4/ozeDgaXCN8t/YAYISbE8WYheoMuupcj/fTVQfw8CrHB1p0/4XlZ c1h+A+6X9NVG+sZaTJ9E03rFXk4EWVTivSC4HI8gR0BOSIIInzJSzGIZ3xReF+AFXkxwYBCH uFjgCDDdWcZkY2mSOf+MkHvh1U9oD7Erp08cb+Hbq2xMq0CZuf4kXgn2ogVKxfUqZvY1+YvQ H1FI4KGQKKgNu2ymCvrf2GXpbGYBO+2/TOuyIguycpJbsKyogqyKuYAYs33Yw76Avt510OvF fYjd6eEvy8C3cBgaVEL4QaALmDhEQK8LG0dfRQFd986Nm5E+Hn9+eBA4rokEKGeng6LDX6b0 1liSAPil6+YYZhKjTAfG216/O1xhGUuQcpxGntVB8b3heA55oGqmVJ5lKvGvYQftizCP/pX2 KdODjCmTNeU5gf1n7le+RvYIhjLPFNB4eKMDM5QvsX9zeSkg8SGhPDDvtVdAbzo3PdvFwRrq cQ942OPIKxCmqp2mXIF71bNEsdNUNgCfCjDHwR7YTGYy/3A8y41sjPaTd833S7HOAlQizP/O 3t/0Pxij3r91QDRJlNVTipw3ISDc1A+QFbhTOvoLDsIUPA8AJQkOvBVETJAwcmyDwN8ZJsbU AZf0bz0cpBBIKZ65wOU4qLRlQWlzHqG0FUHRsu3FqGAeTXreHAcOec9ECAunmo79kb3SJAAJ k4hgBuC9S93ojsfD3tubsW70B8Or7uUpszBnimrZ+uuJ0a1y+CthcXHZfWdcD0a9T8ZIv+r2 x72zUfxOymbqmhAuXoNnnPeGg2u9X09sbCO7t92zDzfXRX4VEUKlam+KaYxIzceYmBDjChQb fzG8yHU7HX+JPZA8U3Ysf4EpnS1WQMzhCftDV/sVoA6hAJMIdFvgn3LaB7bgitz0Ol3xQ6ya L75jJ0CvntDFKqnefsxiwdkfWeyq5y+c0Frz+oTIe3xCKvF2pcLby2eIcqe5IcWRRUHmEhx6 e8K5QoWzV7rnAZ2UPNs/o2NBvPC/FWCTFCUfh9GCyEsX2IQI1uQjWBPQqJX5q+vP/Iikvu86 XqK6NPiHkUXDGDipmDgk1XfRYWIXe9/tn1/qKAJMSYGGJllkblBworJWZBb8Uc247o7fGzfj q2vQd+mqW1SQUp5todySxNM0NKQvYa+EFZ5RKeELWByq5a87ojDHblGtTmPh3t7eO72vD3tn xlDvnqO/UHr7cdgb68kQhgCj992hno7iKPxAFrDinxRUDP1TbzTu9d+xtCThs4pt3NR6DlDx Pn56g3r9f3UvISmIRWrAzY2egtXXWIstBQR0UsxDSgV08IMQ90UrZWU7T1LHKkJ5BJtrCJUQ eYRKSDsgVPkMsdVpShtykSZNPvJcBG7ltVzknyGxXWdyNP9lhRpAzhxTHwGtY+qnF4G/QB8d z/ZvQ9Qfo/PzD52qcNk+EbQ27+AUWLA59SPPjtEmJl/HdgaqMfSu0etfUFMd9wZ9GEyzavO0 MD90/sQZ+iA0p4Y38qPAwiu2SE1AiM2HmhIwZ1awnYWlV5ysHh9DxsNR1ywuvaqzilWm3C2z SKa7tiZIfHH2vDI7yChr8H6AKmCgAkhSqVUkUMmbynBmd6R5UYouA5aNai0P2S2I0Ce5b5x/ HAzP0YjAphYj0JXA2TmK3XEyiuP0m6zjsdkKMsltJTcmjlRwe3uZKW+DxOvSS4hluPy4k3Ac 69kmqCkVNlKF2XnobOdu9F3EuyFV2iUkb+FJzxSvX5AhbLrKI/cTTKLMA5UTqGnbajH9TPJb julp9mxrwIW8yAudmQe1+1qs2qSD/EEJlO2SGO2tqaA0Qdp71Av3ivLe2Q1BvoIqrnTSvpeM 0+CyObo9b3yrjHDfHONelIGUO+JTrGI1kWZ1wmoinRD5RDoh7ZBIl88QtY66oamntSD7kvJM mt1nqfRegkKJkZHAdKCYnhmha4ZzY5mKpLTJx2pvHFrmEhvs9xv0839+Pn2ki3fcQMO44PN8 7/BPHPhU1HRrIQrnfuTaaILpYnCwhMoQvMEM0bUfOnfxoKNYQwMyx8GtE+K0fGScavF5zDBy cVg/Ki8slFZTkJQTvrhQWi1K4qSSyKOB77CVdxYa4f3CfbSnwEVn+pQ+hDnvMKHW1M2GdlGN boir3PLRb1CNMaijQ6niYAdASJBUiWs2hOaRuxxhKwoccn8OigmcJfGDPMMu62+K2YpTECt4 aLLILF7xxW5GXHHSjP46NFmLnN2U502b2gwIiVxgBFkHDNoOpdOkPS3KVAJcN+EJEvgR/YaD HyP46qsqS6nUwyr2hUvzdv1MN6Xy6JfSdoC/iimS3FG1DY2EE9o5yH0dbtXNhxo5NQacbZqf gGpd20ZHgBeI+Oh6OHhHLcTzCTJdUKp9jwDNQgzSA7uDsI/pYzI3oZC9c0KSwlqPzRFSUGN8 avEpCYXCKe1ULBkYwlviRlRAwY69DNNc3wzu6wmz8ZyiYxi5BDkhrOPWvA/R25uLCmBsAy5q PCy2aa9dyd0rbrZa/vKeqzEC6zQzDDOYWY9D41wHUGXn3DTqVtaTiiQJSqq6b/Zu/ig9dzXP XnU2+O0mZ7x5bl7qdDvWDtQXt6weK3Ew9cAkK6Gr36bbqkgqSFB7Ij7mEnwBGPniFFdd2O2s sjUwvYfcynXDdTzNHxQgNSfvgqqVs2QRsHXDGZIkyC3ugAZu2089QwIYHZsTl2HowlxmTVkc BPTI2LfBXuCRHgSej76YboTDIxR/dgNTL3qfrvQOOvchgwVsZZ/ZwJ8QAfAxBESuQwhwD13/ Fub1yM8wIHC+OKZL2QK+eTMc64PNAxTzYdbEmSGLni+yjyIWFMR5uAVOl3hKaJ4Kc+jZtkfZ w6rKxNYEmG3yMNsEmG1qK2ciDGon0fS3q+4nduz0e6E4KXR3nr1O/DGlINdkZD5trhy2lApT k0F27WLHYxs/B3MpEM/1S32sN46f0CUXt2qGNzVNaBW74X/7ip+l3dtWWkJb5QrLtqoAQSvu bARo1+9e6fRDIWRalkHul1xzhH6fZREo7MLw1qZoEAiosbyl3wqtDZoFfrSM/4dBs4AOQo/Y Pmd4gA9JHkXRgb6KZWIxV8em/k8/H0k+4kt4gvnX4uWAsYI5Lm8jGFqD/+p1CuisbVAqHg3K M00SVy0zO+2k2XNOfOB+8ytm3xtApct2xqCF5pL8Epk/bXleWQyLqLCstWu3g4aSKzbGXbqk uzettlhC/XTzGFTW89ncA9TEtqDlx5H59bhuX3TH7uD/3fbizGwD+lWwemYbKq2+RBmqLVFR 1hHjewgoS283XjsdcTy/++4ufP7a0plB5vR8Wl0LydV7/AGCT9u0q7b7iCN9dwmu1izEgRC6 VrCkVL5aSWk7lCoVUySYIn5jA8jGU8fDUOOejQdDVBPvJM2eSDa2mwo2TySRhvd8WH90rQ9H +hm8OL5YrvRITZP0ztlngVBXwB6gcDGIz75hpbeolhBRg/6ID0LGvSsdNfyIVGdgCiS/isZ/ 06rRsykp3Vz+NVzcsEtr/DidSt9JFsvf5N83dG2SqADbvgH7/px7+AjSzKxt4F1ib0ZoD5Me XflgOaFZz55WdB3i/k/Z3lSxKagSVyWpogaEdumXY3m83fXTsb/nnDqRIMTUq9F5H4XRbIZD EoKl0FS0egEs6JqsxoOB6a5pSGaegEDKthNgC4TpsEI4KYBvaVvRnNAPJKGA1pq//vprGrar es0sTm9RcKmSzNSQBKmyLvSmrgrfUyliHNp4IvBoFFlrU1Po2gz8qiwKqtziTsKeeytlYL3j Qv8LEg9deDc1AAA= --------------C82A0920D513B882F8151B85-- - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".