[GRASS5] Mac OS X Tcl fix and Startup Errors

Jeshua Lacock jeshua at openosx.com
Tue Apr 8 05:40:30 EDT 2003


Greetings,

Mac OS X allows the use of special/reserved characters in file names 
such as the exclamation mark ("!") and the space character (" ").

This was causing gis_set.tcl and other Tcl scripts to choke using the 
native Aqua Tcl/Tk interface when encountering a file with illegal unix 
characters.

It turns out the most elegant solution I could come up with was to 
create a wrapper for the "ls" command to escape the exclamation marks 
and to wrap the filename in quotes to compensate for spaces and other 
special characters.

The wrapper is a shell script using awk and sed, and then I simply 
changed occurrences of "ls -a" with "lsWrap -a" and so on. I can supply 
patches if anyone is interested.

Here's the wrapper:

lsWrap:
     #!/bin/sh

     /bin/ls -1 $* | awk '{print "\"" $0 "\"" }' | sed s/\!/\\\\!/g

I suppose that it could be implemented inline, however I am not 
familiar enough with Tcl/Tk to make the attempt. It also seems that 
it's best to have it in one place.

I am also trying to fix these errors:
     Starting GRASS ...
     : command not foundtc/Init.sh:
     : command not foundtc/Init.sh:
     : command not foundtc/Init.sh:

These errors are being caused by:

     puts stdout "GISDBASE='$database'; export GISDBASE;"
     puts stdout "LOCATION_NAME='$location'; export LOCATION_NAME;"
     puts stdout "MAPSET='$mapset'; export MAPSET;"

If I change stdout to stderr, everything looks normal:

     set GISDBASE='/Users/jeshua'; export GISDBASE;

I don't get any errors when I remove the export part such as:
     puts stdout "GISDBASE='$database'"

If I include the semicolon, I get the error:
     : command not foundtc/Init.sh:

I suppose this is a bug with the Aqua port of Tcl/Tk 8.4.2.

What is the grass tcltk script trying to accomplish here? Just setting 
the environment variables and exporting them?

Also I am getting:

     ERROR: Invalid return code from gis_set.tcl.
     Please advise GRASS developers of this error.
     Welcome to GRASS 5.0.1 (January 2003)

The 'gis_set' result is 127. Everything seems to work fine, do you 
think the error is anything to be concerned about?

I am also trying to fix the "console 1 bug" OS X Aqua Tcl/Tk 8.4.x bug, 
and thought I should get rid of all the errors/warnings first.


Thanks,

Jeshua Lacock __________________________
Programmer/Owner            Phone:   760.935.4736
http://OpenOSX.com           Fax:        760.935.4845
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_




More information about the grass-dev mailing list