[GRASS-dev] [GRASS GIS] #3155: inconsistent newlines handling on Windows
GRASS GIS
trac at osgeo.org
Wed Sep 14 09:12:34 PDT 2016
#3155: inconsistent newlines handling on Windows
-------------------------+-------------------------
Reporter: annakrat | Owner: grass-dev@…
Type: defect | Status: new
Priority: normal | Milestone: 7.2.0
Component: LibVector | Version: svn-trunk
Keywords: newline | CPU: Unspecified
Platform: MSWindows 8 |
-------------------------+-------------------------
Function [https://grass.osgeo.org/programming7/ascii_8c_source.html#l00336
Vect_write_ascii] uses:
{{{
fprintf(ascii, "%s", HOST_NEWLINE);
}}}
where HOST_NEWLINE is defined as '\r\n' on Windows.
Other modules like v.info use:
{{{
fprintf(stdout, "north=%s\n", tmp1);
}}}
This is problem when you process the output in Python:
{{{
>>> output_points = grass.read_command("v.out.ascii", input='hospitals',
format="point", separator=",").strip()
>>> repr(output_points)
'697237.5638615,182012.65540056,1\r\r\n704563.1878615,183568.90640056,2\r\r\n371094.1568615,274897.21940056,3\r\r\n640607.6248615,224673.12440056,4\r\r\n640952.4998615,224309.56340056,5\r\r\n670385.0618615,229717.53040056,6\r\r\n643879.5628615,230462.43740056,7\r\r\n636274.0638615,229165.37540056,8\r\r\n627390.7508615,202760.56240056,9\r\r\n646823.5628615,226063.35940056,10\r\r\n206065.7348615,195917.60840056,11\r\r\n444744.4678615,280199.56340056,12\r\r\n501025.1878615,179551.84440056,13\r\r\n566335.3748615,111190.14840056,14\r\r\n566327.6258615,111195.04740056,15\r\r\n671357.9988615,139627.76540056,16...
}}}
but:
{{{
x= grass.read_command('v.info', map='hospitals', flags='g')
repr(x)
'north=308097.937400562\r\nsouth=20235.5644005626\r\neast=914347.8748615\r\nwest=156998.1718615\r\ntop=0.000000\r\nbottom=0.000000\r\n'
}}}
so you have '\r\r\n' instead of '\r\n' which results in problems:
{{{
>>> output_points.splitlines()
['640607.6248615,224673.12440056,4', '',
'640952.4998615,224309.56340056,5', ' ', ...]
}}}
Should we stop using 'HOST_NEWLINE' then?
--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3155>
GRASS GIS <https://grass.osgeo.org>
More information about the grass-dev
mailing list