Date: Tue, 15 Aug 2000 08:52:58 +0200 From: "Eli Zaretskii" Sender: halo1 AT zahav DOT net DOT il To: zastai AT hotmail DOT com Message-Id: <8011-Tue15Aug2000085258+0300-eliz@is.elta.co.il> X-Mailer: Emacs 20.6 (via feedmail 8.2.emacs20_6 I) and Blat ver 1.8.5b CC: djgpp AT delorie DOT com In-reply-to: (zastai AT hotmail DOT com) Subject: Re: crt0 globbing with crt0_preserve_case: broken or intended behaviour? References: Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > From: "Tim 'Zastai' Van Holder" > Newsgroups: comp.os.msdos.djgpp > Date: Mon, 14 Aug 2000 18:54:23 GMT > > I just noticed something odd when trying to run > rm -v /*._dd > to remove the FILE*._DD files created by Norton Disk Doctor. > rm refused, saying that '/*._dd' did not exist. > > I use a patched version of fileutils-4.0, that sets the crt0 flags to > include > _CRT0_FLAG_PRESERVE_FILENAME_CASE, mostly for the benefit of > ls (I use ls, not ls-lisp, in emacs, so I get correct file names (ie README, > NEWS, etc). However, it seems that if that crt0 flag is set, the crt0 > globber will not expand arguments correctly (ie it needs *._DD to match > the files, not *._dd). Since setting opendir_flags instead solved the > problem (correct globbing and correct case), this isn't really a big issue, > but I would like to know whether this behavious is intended or broken. It is the intended behavior. Using _CRT0_FLAG_PRESERVE_FILENAME_CASE, or the equivalent command "set FNCASE=y" in the environment, means that you want true case-sensitivity in directory-searching and globbing functions, like on Unix. If you try the above command on Unix, the shell will say "No match". This indeed surprises many Windows users, especially since files moved from DOS are all-uppercase, that's why case-sensitivity isn't the default. In general, letter-case in file names is a mess in Windows, and it is very hard to get it right. We are trying to do our best in DJGPP, and the experience shows that the defaults work reasonably well. But we aren't completely off the hook. For example, I needed a dirty trick in Groff 1.16 to get it to build, because there are files with names like CI, PB, etc. that the Makefiles insist on finding in upper case, and Make will say they aren't there unless you set FNCASE=y.