Home | History | Annotate | Download | only in bsdiff

Lines Matching refs:xzf

96 	xzfile *xzf;
100 if (!(xzf = malloc(sizeof(xzfile)))) {
105 xzf->ls = ls;
106 xzf->f = f;
108 xzf->read_out = xzf->out;
109 xzf->read_out_len = 0;
111 xzf->err = LZMA_OK;
112 xzf->eof = 0;
129 xzf->err = lzma_stream_decoder(&xzf->ls, memlimit,
132 if (xzf->err != LZMA_OK) {
133 if (err) *err = xzf->err;
134 free(xzf);
138 if (err) *err = xzf->err;
139 return xzf;
144 static lzma_ret xzclose(xzfile *xzf)
148 lzma_end(&xzf->ls);
149 if (fclose(xzf->f) != 0)
151 free(xzf);
156 /* Reads len uncompressed bytes from xzf into buf. Returns the number of bytes
162 static size_t xzread(xzfile *xzf, u_char *buf, size_t len, lzma_ret *err)
168 while (xzf->err == LZMA_OK && len > 0) {
169 if (xzf->read_out_len == 0) {
172 if (xzf->ls.avail_in == 0 && !xzf->eof) {
174 xzf->ls.next_in = xzf->in;
175 xzf->ls.avail_in = fread(xzf->in, 1, BUFSIZ,
176 xzf->f);
177 if (ferror(xzf->f)) {
179 xzf->err = LZMA_STREAM_END;
180 if (err) *err = xzf->err;
182 } else if (feof(xzf->f)) {
183 xzf->eof = 1;
188 xzf->ls.next_out = xzf->out;
189 xzf->ls.avail_out = BUFSIZ;
192 if (xzf->ls.avail_in == 0) {
193 xzf->err = LZMA_BUF_ERROR;
194 if (err) *err = xzf->err;
200 if (xzf->eof)
204 xzf->err = lzma_code(&xzf->ls, action);
205 if (xzf->err == LZMA_STREAM_END) {
206 xzf->eof = 1;
207 xzf->err = LZMA_OK;
208 } else if (xzf->err != LZMA_OK) {
209 if (err) *err = xzf->err;
215 xzf->read_out = xzf->out;
216 xzf->read_out_len = BUFSIZ - xzf->ls.avail_out;
221 copylen = xzf->read_out_len;
224 memcpy(buf, xzf->read_out, copylen);
228 xzf->read_out += copylen;
229 xzf->read_out_len -= copylen;
232 if (err) *err = xzf->err;