Mail Archives: djgpp/2000/08/15/01:50:37
> From: "Tim 'Zastai' Van Holder" <zastai AT hotmail DOT com>
> 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.
- Raw text -