[GRASS-dev] No longer able to open a mapset by symbolic link
Glynn Clements
glynn at gclements.plus.com
Tue Apr 3 01:29:31 EDT 2007
Joel Pitt wrote:
> > > I'll submit a bug request, but wasn't sure whether this behaviour has
> > > been discussed and decided as intended. I hope not, because I use it
> > > to separate out simulation results (huge and stored on an external
> > > server/HDD) and input data for the simulations (stored locally).
> >
> > AFAIK, having symlinks to mapset directories has never been
> > intentionally supported; it just happened to work.
>
> I've worked out a simple solution. In lib/gis/paths.c :
>
> int G_lstat(const char *file_name, struct stat *buf)
> {
> #ifdef __MINGW32__
> return stat(file_name, buf);
> #else
> return lstat(file_name, buf);
> #endif
> }
>
> lstat(...) stats the link itself. Is there any reason why stat(...),
> which follows a link instead, can't be used for both platforms?
Some of the uses of G_lstat() require the use of lstat(); e.g.
G_remove() uses it for directory traversal, which should treat
symlinks as leaf nodes (i.e. shouldn't traverse symlinks to
directories as if they were directories).
It may be worth having a separate G_stat() function, but G_lstat()
cannot be changed.
--
Glynn Clements <glynn at gclements.plus.com>
More information about the grass-dev
mailing list