94 #define G_COMPRESSED_NO (unsigned char)'0'
95 #define G_COMPRESSED_YES (unsigned char)'1'
120 if (number < 0 || number >= n_compressors)
142 if (number < 0 || number >= n_compressors) {
143 G_warning(
_(
"Request for unsupported compressor"));
204 if (number < 0 || number >= n_compressors) {
221 if (number < 0 || number >= n_compressors) {
236 if (number < 0 || number >= n_compressors) {
247 int bsize, nread,
err;
250 if (
dst ==
NULL || nbytes <= 0) {
252 G_warning(
_(
"No destination buffer allocated"));
254 G_warning(
_(
"Invalid destination buffer size %d"), nbytes);
266 if (
NULL == (
b = (
unsigned char *)
G_calloc(bsize,
sizeof(
unsigned char))))
272 err =
read(fd,
b + nread, bsize - nread);
275 }
while (
err > 0 && nread < bsize);
279 G_warning(
_(
"Unable to read %d bytes: end of file"), rbytes);
281 G_warning(
_(
"Unable to read %d bytes: %s"), rbytes,
287 if (nread < rbytes) {
289 G_warning(
"Unable to read %d bytes, got %d bytes", rbytes, nread);
305 G_warning(
"Read error: We're not at the start of a row");
325 unsigned char *
dst, compressed;
328 if (
src ==
NULL || nbytes < 0) {
332 G_warning(
_(
"Invalid source buffer size %d"), nbytes);
339 (
dst = (
unsigned char *)
G_calloc(dst_sz,
sizeof(
unsigned char))))
350 if (
err > 0 &&
err < nbytes) {
354 if (
write(fd, &compressed, 1) != 1) {
356 G_warning(
_(
"Unable to write compression flag"));
360 err =
write(fd,
dst + nwritten, dst_sz - nwritten);
363 }
while (
err > 0 && nwritten < (
size_t)dst_sz);
366 G_warning(
_(
"Unable to write %d bytes: nothing written"),
369 G_warning(
_(
"Unable to write %d bytes: %s"), dst_sz,
378 if (
write(fd, &compressed, 1) != 1) {
380 G_warning(
_(
"Unable to write compression flag"));
384 err =
write(fd,
src + nwritten, nbytes - nwritten);
387 }
while (
err > 0 && nwritten < (
size_t)nbytes);
390 G_warning(
_(
"Unable to write %d bytes: nothing written"),
393 G_warning(
_(
"Unable to write %d bytes: %s"), nbytes,
407 return (
int)nwritten;
418 if (
write(fd, &compressed, 1) != 1) {
419 G_warning(
_(
"Unable to write compression flag"));
428 err =
write(fd,
src + nwritten, nbytes - nwritten);
431 }
while (
err > 0 && nwritten < (
size_t)nbytes);
434 G_warning(
_(
"Unable to write %d bytes: nothing written"), nbytes);
436 G_warning(
_(
"Unable to write %d bytes: %s"), nbytes,
440 if (
err < 0 || nwritten != (
size_t)nbytes)
447 return (
int)nwritten;
int G_compress(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz, int number)
int G_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz, int number)
int G_write_compressed(int fd, unsigned char *src, int nbytes, int number)
int G_default_compressor(void)
int G_write_uncompressed(int fd, const unsigned char *src, int nbytes)
int G_read_compressed(int fd, int rbytes, unsigned char *dst, int nbytes, int number)
int G_no_compress(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
int G_compressor_number(char *name)
char * G_compressor_name(int number)
int G_check_compressor(int number)
int G_no_compress_bound(int src_sz)
int G_no_expand(unsigned char *src, int src_sz, unsigned char *dst, int dst_sz)
int G_compress_bound(int src_sz, int number)
struct compressor_list compressor[]
void G_free(void *)
Free allocated memory.
void void void void G_fatal_error(const char *,...) __attribute__((format(printf
void G_warning(const char *,...) __attribute__((format(printf
int int G_strcasecmp(const char *, const char *)
String compare ignoring case (upper or lower)
SYMBOL * err(FILE *fp, SYMBOL *s, char *msg)