Make it possible to seek within a gzip stream.

This commit is contained in:
Xin LI 2013-10-16 17:16:40 +00:00
parent ec7935bfef
commit 86ccd3e00f

View File

@ -29,6 +29,12 @@ xgzclose(void *cookie)
return gzclose(cookie);
}
static fpos_t
xgzseek(void *cookie, fpos_t offset, int whence)
{
return gzseek(cookie, (z_off_t)offset, whence);
}
FILE *
zopen(const char *fname, const char *mode)
{
@ -37,7 +43,7 @@ zopen(const char *fname, const char *mode)
return NULL;
if(*mode == 'r')
return (funopen(gz, xgzread, NULL, NULL, xgzclose));
return (funopen(gz, xgzread, NULL, xgzseek, xgzclose));
else
return (funopen(gz, NULL, xgzwrite, NULL, xgzclose));
return (funopen(gz, NULL, xgzwrite, xgzseek, xgzclose));
}