[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: glob on Windows systems
From: |
John W. Eaton |
Subject: |
Re: glob on Windows systems |
Date: |
Wed, 13 Jan 2010 04:20:11 -0500 |
On 9-Jan-2010, Bruno Haible wrote:
| Hi John,
|
| John W. Eaton wrote:
| > Looking at lib/glob.c in the gnulib sources, there is some
| > Windows-specific code, so it looks like it is intended to work on
| > Windows systems
|
| > Is glob.c expected to work on Windows systems?
|
| At least it passes its unit test on mingw.
|
| > but there are some things that don't look quite
| > right. For example, it does not seem to uniformly use backslash as a
| > directory separator
|
| Probably this is because backslash is used as an escape character, if
| GLOB_NOESCAPE is not specified among the flags.
|
| > Should it accept \, /, or both as the directory separator? I suppose if
| > it allows \ as the directory separator, then GLOB_NOESCAPE would
| > always have to be set.
|
| You say it.
I think my Windows users would be happy to live without GLOB_NOESCAPE
if they could use \ as the directory separator in the character
strings they send to glob and if they could also expect to get
character strings back from glob that use \ as the directory
separator.
But OK, it looks like it would be somewhat painful to "fix" this in
the glob function itself. I suppose instead the best thing is to
write a wrapper to use on Windows systems that first transforms all \
characters to /, calls glob, then converts them back in the resulting
strings...
| > and if WINDOWS32 is defined, it looks for
| > HOMEDRIVE and HOMEPATH instead of calling some Windows API function
|
| That's the old Windows95 way of doing it, but it works also on Windows XP.
| On Windows XP, you can also do getenv("USERPROFILE").
|
| > (maybe GetUserProfileDirectory?).
|
| This would work as well. But why call a function that requires linking
| with userenv.dll [1], when you can get the same information with getenv?
OK.
Thanks,
jwe