1 #include <grass/gis.h>
2 #include <grass/raster.h>
3 #include <unistd.h>
4 #include "Gwater.h"
5 
bseg_read_cell(BSEG * bseg,char * map_name,char * mapset)6 int bseg_read_cell(BSEG * bseg, char *map_name, char *mapset)
7 {
8     int row, rows;
9     int col, cols;
10     int map_fd;
11     CELL *buffer;
12     char cbuf;
13 
14     bseg->name = NULL;
15     bseg->mapset = NULL;
16 
17     map_fd = Rast_open_old(map_name, mapset);
18     rows = Rast_window_rows();
19     cols = Rast_window_cols();
20     buffer = Rast_allocate_c_buf();
21     for (row = 0; row < rows; row++) {
22 	Rast_get_c_row(map_fd, buffer, row);
23 	for (col = cols; col >= 0; col--) {
24 	    cbuf = (char)buffer[col];
25 	    bseg_put(bseg, &cbuf, row, col);
26 	}
27     }
28 
29     Rast_close(map_fd);
30     G_free(buffer);
31 
32     bseg->name = G_store(map_name);
33     bseg->mapset = G_store(mapset);
34 
35     return 0;
36 }
37