Glynn Clements wrote:
Moritz Lennert wrote:
select.tcl uses both the GISDBASE and MAPSET env variables. However,
neither seem to be defined in wingrass (Init.sh sets them, but Init.bat
doesn't).
Init.sh sets them as shell variables; they aren't exported to the
environment.
So I tried the following:
- enter GRASS
- set GISDBASE=c:\GRASSDATA
- run in tclsh
% set location_path "$env(GISDBASE)/$env(LOCATION_NAME)/'
% set dir "user1"
% set element "vector"
% set path "$location_path/$dir/$element/
% glob -nocomplain $path/*
This returns nothing.
When I set GISDBASE=c:/GRASSDATA (forward slash), it returns the list of
complete paths to all elements.
[I missed this part before.]
That makes sense. Tcl uses forward slash internally on all platforms.
It suspect that it requires the use of "file normalize ..." on
Windows.
I can confirm that this seems to be the problem: I had a .grassrc6 file
with c:\grassdata in it. When I change this to c:/grassdata, the select
window works from any working dir. By default (i.e. when there is no
.grassrc6), grass writes the new file in the correct format
(c:/grassdata). Don't know how I ended up with c:\grassdata...maybe I
wrote it manually.
Michael and Javi can you confirm ?
Glynn Clements wrote:
> Ah; the reason it's been working so far is that both lib/gis/gui.tcl
> and gui/tcltk/gis.m/gm.tcl set them, e.g.:
>
> if {[catch {set env(GISDBASE) [exec g.gisenv get=GISDBASE]} error]} {
>
> Any other code which uses select.tcl will need to do likewise.
>
> Use of env() is less than ideal (there's already enough confusion
> between GRASS variables and environment variables), but using separate
> variables would require changing a lot of "global" statements.
Changing above line to
if {[catch {set env(GISDBASE) [exec g.dirseps -g [exec g.gisenv
get=GISDBASE]]} error]} {
in lib/gis/gui.tcl seems to work for me. Can I commit ?
Should I also change this in gui/tcltk/gis.m/gm.tcl ?
Moritz
_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev