Thanks. I'll try that this weekend. I didn't want to jump to the conclusion that it was an isDirectory bug because for all I know you might have needed it to work the way it did.
Please be aware that if you have the real directory in bar/ and a link in foo/, it seems that when you open one of these symbolically linked directories, the system accepts foo/linkname/whateverfile, but foo/linkname/.. incongruously gives you the bar/ directory, not foo/. Going down in the structure is ok, but trying to hop up out of the link directory doesn't give you the directory holding the link, it gives you the directory the link was really in. This is a problem for build scripts because you often have to refer to ../../someheader.h.
--- In
iolanguage@..., Steve Dekorte <steve@...> wrote:
>
>
> On 2009-06-18, at 8:00 PM, dennisf486 wrote:
>
> > I tried putting a symbolic link to the foldering into the io/addons,
> > but that doesn't work because Io's Directory object categorizes the
> > link as a file
>
> Ok, let's fix that. Can you try changing the isDirectory function in
> IoDirectory.c to this:
>
> int isDirectory(struct dirent *dp, char *path)
> {
> #ifdef DT_UNKNOWN
> if (dp->d_type == DT_UNKNOWN) return 0;
> #endif
> {
> struct stat st;
> /*fstat( dp->d_fd, &st );*/
> stat(path, &st);
> return ( (st.st_mode & S_IFMT) == S_IFDIR );
> }
> }
>
> and see if that works?
>