[GRASS-dev] GISDBASE directory name with spaces

Moritz Lennert mlennert at club.worldonline.be
Wed Oct 18 09:55:11 EDT 2006

Glynn Clements wrote:
> Moritz Lennert wrote:
>> Trying to help some colleagues working with wingrass, I noticed that if 
>> the GISDBASE variable in .grassrc6 containes spaces (ex: GISDBASE: 
>> /home/mlennert/GRASS/TEST DATA), the gui startup screen does not 
>> recognize the directory and gives a warning: "Invalid database. Finding 
>> first valid directory in parent tree". However, I can manually navigate 
>> to the directory and GRASS starts normally.
>> As many MS Windows users have spaces in their directory names, I 
>> personally think that the startup screen code should be fixed to allow 
>> spaces in the GISDBASE variable.
> Agreed. AFAIK, it's generally accepted that failure to handle spaces
> in file/directory names is considered a bug rather than an accepted
> limitation.
>> I imagine it probably is a "simple" 
>> issue of quoting in line 64 of lib/init/gis_set.tcl:
>> 63: if { [scan $thisline "GISDBASE: %s" env_database] } {
>> 64:       set database $env_database
> No, it isn't quoting; it's the way that the %s conversion works:
>        s         The input field consists of all the characters up to the next
>                  white-space character; the characters are copied to the vari-
>                  able.
> The above should be changed to use "regexp" instead, e.g. (untested):
> 	if { [regexp -- {^GISDBASE: *(.*)$} $thisline dummy env_database] } {
> 		set database $env_database
> This will treat everything from the first non-whitespace character to
> the end of the line as the pathname.

Yes, this works. Thanks.

Should this also be applied to location names ? mapsets ?

I do get the following in the terminal window (with GISDBASE = TEST DATA):

bash: test: /home/mlennert/GRASS/TEST: binary operator expected
bash: test: /home/mlennert/GRASS/TEST: binary operator expected
bash: test: /home/mlennert/GRASS/TEST: binary operator expected


More information about the grass-dev mailing list