delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2003/01/30/11:00:16

From: "Gary Hubbard" <me AT sandia DOT gov>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Command line wildcard expansion under Win2K
Date: Thu, 30 Jan 2003 07:50:58 -0800
Organization: Sandia National Laboratories, Albuquerque, NM USA
Lines: 35
Message-ID: <b1bhk0$q4g$1@sass2141.sandia.gov>
References: <Pine DOT SUN DOT 3 DOT 91 DOT 1030130095126 DOT 2797A-100000 AT is>
NNTP-Posting-Host: hubbardpc.ran.sandia.gov
X-Trace: sass2141.sandia.gov 1043941824 26768 134.252.7.230 (30 Jan 2003 15:50:24 GMT)
X-Complaints-To: usenet AT sass2141 DOT sandia DOT gov
NNTP-Posting-Date: Thu, 30 Jan 2003 15:50:24 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

It is obvious I am not really making mysef clear here.  I will read the
doc's for glob() more carefully and examine the code as well, but if I read
these posts correctly there are problems.

I originally found out about this when a program, written by someone else,
created a set of files on a NTFS 5 partition of Win2K.  These are long
filenames and are entirely a mixture of upper case letters and numbers.  My
program's users were trying to access these files, using wildcards, with
lower case letters.  Presumably this was simply to avoid using the shift
key.  Of course, that would work for any native Microsoft provided program,
such as dir.  The wildcard pattern matched no files at all.  Changing to
upper case worked around that problem.

It is possible that something else is going on here, like Microsoft
attempting to provide 8.3 versions of the names as well when
findfirst/findnext is executed.  I will have to experiment.

On my suggestion of a different algorithm.  What I meant (simpilified to one
dictory level) was the equivalent of
        pattern = lowercase(pattern)
        while (filename = getdirectoryentry())  {
           if match(pattern,lowercase(filename))
                do something with filename (still in its original case)
        }
This should work for 8.3 filesystems.

You guys are doing wonderful work.  If the behaviour I am looking for is
wrong for you for any reason, I will simply replace glob() by one of my own
choosing.  For my development system, I really don't care much about this
but it is simply too hard to explain this to everyone else, most of which
have never seen a case sensitive operating system in the first place.

Gary


- Raw text -


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