[GRASS-dev] Non ASCII in GISBASE, LOCATION, MAPSET, MAP
Glynn Clements
glynn at gclements.plus.com
Tue Apr 20 10:12:34 EDT 2010
Radim Blazek wrote:
> > The main restriction is G_legal_filename(), in lib/gis/legal_name.c.
> > This prohibits all characters >=127 and <=32 as well as the specific
> > characters:
>
> G_legal_filename is used in lib/init/set_data.c to check MAPSET and
> LOCATION_NAME. Does it mean that there are no restrictions for
> GISBASE?
Correct. At least, there *shouldn't* be any restrictions for GISDBASE
(or GISBASE).
[On Windows, they must be be accessible via the codepage-based API,
i.e. they can't contain characters outside of the current codepage.
This isn't something which can easily be worked around.]
> > As you know, vector map names are further restricted to valid SQL
> > identifiers. Personally, I'd like to see that restriction removed.
> > There's no fundamental reason why a map's attribute table must have
> > *exactly* the same name as the map; an approximation (e.g. with
> > invalid characters replaced by underscores) would suffice, IMHO.
>
> Just simple replacement results in duplicate names, does not?
It's possible that could occur, but it seems unlikely in practice. In
the worst case, the code could add a unique suffix (_1, _2, etc) in
the event of a conflict.
--
Glynn Clements <glynn at gclements.plus.com>
More information about the grass-dev
mailing list