Martin Landa wrote: > I realized a strange behaviour of r.buffer, e.g. > > $ r.buffer in=e out=e d=1 > > No error, input and output is the same...
r.buffer uses opt2 = G_define_standard_option(G_OPT_R_OUTPUT); which defines Opt->gisprompt = "new,cell,raster"; the parser does check that the given name doesn't already exist. Have you set the --overwrite enviro variable to be always on? For the above example I get: ERROR: option <output>: <e> exists. Presumably if you abuse --overwrite you get what you asked for. > $ r.buffer in=e [EMAIL PROTECTED] d=1 > Illegal filename. Character <@> not allowed. > ERROR: <[EMAIL PROTECTED]> is an illegal file name > > Why so restrictive? The current mapset is 'user1'. output maps can only be written to the current mapset*. Allowing '@' is redundant, requires code (ie additional habitat for bugs) to check that what's after the '@' matches G_mapset(), and might put ideas in people's heads that '[EMAIL PROTECTED]' isn't banned. [*] i.rectify is the exception, it writes to the target mapset which was set with i.target I agree that the error message could be better. If it were me, I'd keep it simple with something like if ( G_legal_filename(output) == -1 ) { if(strchr(output, '@')) G_fatal_error(_("Output map name should not include a mapset")); ... Hamish _______________________________________________ grass-dev mailing list grass-dev@grass.itc.it http://grass.itc.it/mailman/listinfo/grass-dev