[GRASS-dev] Right way to use G_getl2

Markus Metz markus.metz.giswork at gmail.com
Sat Sep 14 00:41:08 PDT 2013


Glynn Clements wrote:
>
> FWIW, I suggest changing the existing behaviour [of G_getl2()] so that it always
> reads an entire line, even if it can't store it all. IOW, read until
> EOL or EOF, stop storing characters once the buffer is full.
+1

>
> Unlike with fgets(), which stores the line terminator in the buffer,
> there is no way for the caller of G_getl2() to determine that an
> incomplete line was read. If the buffer is too small, you lose either
> way; discarding the trailing characters is likely to be more robust
> than returning them as if they were a subsequent line (the current
> behaviour).

The caller could know if a line was only partially read if G_getl2()
would return -1 (anything but 0, 1) in case the buffer is too small.

Markus M


More information about the grass-dev mailing list