2 * Public domain stdio wrapper for libz, written by Johan Danielsson.
9 FILE *zopen(const char *fname
, const char *mode
);
10 FILE *zdopen(int fd
, const char *mode
);
12 /* convert arguments */
14 xgzread(void *cookie
, char *data
, int size
)
16 return gzread(cookie
, data
, size
);
20 xgzwrite(void *cookie
, const char *data
, int size
)
22 return gzwrite(cookie
, (void*)data
, size
);
26 xgzclose(void *cookie
)
28 return gzclose(cookie
);
32 xgzseek(void *cookie
, fpos_t offset
, int whence
)
34 return gzseek(cookie
, (z_off_t
)offset
, whence
);
38 zopen(const char *fname
, const char *mode
)
40 gzFile gz
= gzopen(fname
, mode
);
45 return (funopen(gz
, xgzread
, NULL
, xgzseek
, xgzclose
));
47 return (funopen(gz
, NULL
, xgzwrite
, xgzseek
, xgzclose
));
51 zdopen(int fd
, const char *mode
)
55 gz
= gzdopen(fd
, mode
);
60 return (funopen(gz
, xgzread
, NULL
, xgzseek
, xgzclose
));
62 return (funopen(gz
, NULL
, xgzwrite
, xgzseek
, xgzclose
));