this bug's URL: http://intevation.de/rt/webrt?serial_num=1797
-------------------------------------------------------------------------
Subject: g.gisenv
g.gisenv lets you set a variable to nonexistant values without a check, and
the only way to go on is to exit GRASS and delete/edit the .grassrc5 file.
e.g., (user1 exists, usr1 doesn't)
GRASS:~ > g.gisenv MAPSET
user1
GRASS:~ > g.gisenv set="MAPSET=usr1"
GRASS:~ >
GRASS:~ > g.gisenv
ERROR: MAPSET usr1 not found
GRASS:~ >
GRASS:~ > g.gisenv set="MAPSET=user1"
ERROR: MAPSET usr1 not found
GRASS:~ > exit
I had a try using G_getenv to make a backup copy of the old value before
attempting to G_setenv, and then test G_getenv for success, but as G_getenv
fails with an exit, I can't set it back to the original if it fails..
When you try to fix it later with another set= to a real value, it fails (and
G_fatal_error's) again before it can set the new value.
any ideas?
Hamish
-------------------------------------------- Managed by Request Tracker
Request Tracker wrote:
Subject: g.gisenv
g.gisenv lets you set a variable to nonexistant values without a check, and
the only way to go on is to exit GRASS and delete/edit the .grassrc5 file.
e.g., (user1 exists, usr1 doesn't)
GRASS:~ > g.gisenv MAPSET
user1
GRASS:~ > g.gisenv set="MAPSET=usr1"
GRASS:~ >
GRASS:~ > g.gisenv
ERROR: MAPSET usr1 not found
GRASS:~ >
GRASS:~ > g.gisenv set="MAPSET=user1"
ERROR: MAPSET usr1 not found
GRASS:~ > exit
I had a try using G_getenv to make a backup copy of the old value before
attempting to G_setenv, and then test G_getenv for success, but as G_getenv
fails with an exit, I can't set it back to the original if it fails..
When you try to fix it later with another set= to a real value, it fails (and
G_fatal_error's) again before it can set the new value.
any ideas?
g.gisenv calls G_gisinit(), which generates a fatal error if the
mapset directory doesn't exist or has incorrect permissions (i.e.
ownership).
Using:
G_set_program_name(argv[0]);
G_no_gisinit();
should work.
--
Glynn Clements <glynn.clements@virgin.net>