Skip to main content.
home | support | download

Back to List Archive

Re: IndexDir using Windows

From: Bill Moseley <moseley(at)not-real.hank.org>
Date: Fri Mar 01 2002 - 15:10:43 GMT
On Thursday 28 February 2002 10:00 pm, David L Norris wrote:

I forgot to ask Klaus-Peter Schulze the obvious question: are you sure you 
are using the correct version?  As I seem to remember that it was WinME and 
Win98SE that had the problems and Win98, Win NT, and Win2K worked.

> > David, I know where the \ is coming from, but I'm not clear which of the
> > Win32 calls is causing the problem past that point.
>
> All functions dealing with directory names are broken in various ways;
> even (especially) the native/proprietary ones.  It's not so much that
> appending a '\' breaks it.  It's that appending a '\' breaks one
> function and failing to append a '\' breaks another function.

It's really a pain.

It would be nice to use the correct path separator for the running OS.  But 
windows uses the back slash which is uses as an escape character.  That makes 
entering path names ugly, and using path names in regular expressins really 
ugly since you need an extra set (level) of backslashes due to the escaping 
done by swish and by the regular expression library.

It's also ugly to end up with paths that have slashes both ways.  When 
recursing through the directory tree swish has to stick a path separator 
between names.  Currently it uses \ for windows and / for everthing else.
But there's no check to see what people used in their IndexDir or -i setting 
so you end up with paths like /home/manual\hardware\video\driver.txt.  It 
would be nice to clean those up.

Still, filters pass the path name, so the filters will probably expect (or 
need) path names with correct path separators.

And also, Windows users would probably like search results to show to correct
path separator.

Dave, are there any system calls (other than popen() ) that require the back 
slash, or will they all work either way?  (Or is that something that's fixed 
up in dirent.c?)

Maybe it would be smart to use the forward slash everywhere internally.  Then 
convert the slash when running a filter or generating output.

Does that make sense to the Windows users?

What happenes with VMS?

> stat() is causing the most obvious errors, though.  stat() fails on a
> directory name with a trailing '\' or '/'.

And it that dependent on the *version* of Windows, too?


--
Bill Moseley
Received on Fri Mar 1 15:11:25 2002