61 #include <grass/config.h> 63 #include <grass/gis.h> 64 #include <grass/glocale.h> 96 for (i = 1; i < src_sz; i++) {
97 if (prev_b != src[i] || cnt == 255) {
100 if (nbytes >= dst_sz)
102 dst[nbytes++] = prev_b;
106 if (nbytes >= dst_sz - 2)
108 dst[nbytes++] = prev_b;
109 dst[nbytes++] = prev_b;
110 dst[nbytes++] = (
unsigned char) cnt;
119 if (nbytes >= dst_sz)
121 dst[nbytes++] = prev_b;
124 if (nbytes >= dst_sz - 2)
126 dst[nbytes++] = prev_b;
127 dst[nbytes++] = prev_b;
128 dst[nbytes++] = (
unsigned char) cnt;
138 int i, j, nbytes, cnt;
139 unsigned char prev_b;
161 if (nbytes + cnt > dst_sz)
163 for (j = 0; j < cnt; j++) {
164 dst[nbytes++] = prev_b;
172 if (prev_b != src[i]) {
173 if (nbytes + cnt > dst_sz)
175 dst[nbytes++] = prev_b;
183 if (nbytes >= dst_sz)
186 dst[nbytes++] = prev_b;
int G_rle_compress(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
int G_rle_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)