LSEEK
LSEEK(state->fd, 0, SEEK_END); /* so gzoffset() is correct */
state->start = LSEEK(state->fd, 0, SEEK_CUR);
if (LSEEK(state->fd, state->start, SEEK_SET) == -1)
ret = LSEEK(state->fd, offset - (z_off64_t)state->x.have, SEEK_CUR);
offset = LSEEK(state->fd, 0, SEEK_CUR);