[GRASS-dev] location invalid if PERMANENT contains no WIND file ?

Glynn Clements glynn at gclements.plus.com
Sat Dec 8 07:51:49 EST 2007


Moritz Lennert wrote:

> >> In gis_set.tcl there is a check for a valid location which reads:
> >>
> >> # All good locations have valid PERMANENT mapset.
> >>     if {[file exists "$dir/PERMANENT/WIND"] != 0} {
> >>        set found 1
> >>
> >> Shouldn't this check for DEFAULT_WIND instead of WIND ?
> > 
> > I can see some sense in that. The only time that PERMANENT/WIND will
> > actually be used is if PERMANENT is used as the current mapset, which
> > may never happen. OTOH, PERMANENT/DEFAULT_WIND must exist in order to
> > create new mapsets.
> > 
> 
> In this particular case, I could not enter the location via the GUI 
> startup, but had no problem using it via the text startup.
> 
> There is the same kind of test for mapsets (lines 499ff and 650ff):
> 
>                if {[file exists "$database/$location/$mapset/WIND"] == 0} {
>                      DialogGen .wrnDlg [G_msg "WARNING: invalid mapset"] 
> warning \
>                      [format [G_msg "Warning: <%s> is not a valid 
> mapset"] $mapset] \
>                      0 OK;
>                  }
> if { $mapset != "" && [file exists "$database/$location/$mapset/WIND"] 
> != 0} {
>                      puts stdout "GISDBASE='$database';"
>                      puts stdout "LOCATION_NAME='$location';"
>                      puts stdout "MAPSET='$mapset';"
>                      putGRASSRC $gisrc_name
>                      exit 0
>                  }
>              }
> 
> Again, should a missing WIND file be a reason to fail entering a mapset 
> ? I think gis_set.tcl should just silently copy PERMANENT/DEFAULT_WIND 
> to $mapset/WIND ?

AFAIK, the idea is to prevent the user from selecting some random
subdirectory of the location as the current mapset. This allows the
location directory to have subdirectories which aren't mapsets and
which won't be mistaken for mapsets.

The convention is that $dir is a valid location if $dir/PERMANENT/WIND
exists, and that $dir is a valid mapset if $dir/WIND exists.

The former could reasonably be changed to look for
$dir/PERMANENT/DEFAULT_WIND instead of $dir/PERMANENT/WIND. I don't
think that the latter should be changed.

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-dev mailing list