Markus Neteler wrote:

> a colleague has found some strange problems in winQGIS/GRASS, signalled
> to the QGIS team. I wonder if the problem could be GRASS related.
> 
> Hints welcome,

> >  r.median [EMAIL PROTECTED] [EMAIL PROTECTED]
> >  output=aspect_median
> > 
> >  Illegal filename. Character <'> not allowed.

r.median invokes r.stats via system(), using a single quote:

    strcpy (command, "r.stats -a '");
    strcat (command, G_fully_qualified_name (basemap, base_mapset));
    strcat (command, ",");
    strcat (command, G_fully_qualified_name (covermap, cover_mapset));
    strcat (command, "'");

/* strcpy (command,"cat /tmp/t"); */
    stats_fd = popen (command, "r");

    sprintf (command, "r.reclass i='%s' o='%s'",
        G_fully_qualified_name (basemap, base_mapset), outmap);

system() uses the platform's shell: /bin/sh on Unix, cmd.exe on
Windows NT/2K/XP, command.com on 95/98/ME. Single quotes won't work
with the Windows shells.

r.average doesn't quote the map names, and uses double quotes around
the output filename:

    sprintf (command, "%s -anC input=%s,%s fs=space > \"%s\"",
        STATS, basemap->answer, covermap->answer, tempfile1);

Using double quotes should suffice so long as the map name doesn't
contain $ or ` (a double quote would also be problematic, but isn't
legal in map names).

Ultimately, we need a Windows implementation of G_spawn_ex(), so that
we can avoid the shell altogether.

-- 
Glynn Clements <[EMAIL PROTECTED]>

_______________________________________________
grass-dev mailing list
[email protected]
http://grass.itc.it/mailman/listinfo/grass-dev

Reply via email to