lzfile
LZFILE *lzfile;
lzfile = calloc(1, sizeof(*lzfile));
if (!lzfile)
lzfile->file = fp;
lzfile->encoding = encoding;
lzfile->eof = 0;
lzfile->strm = stream_init;
ret = lzma_easy_encoder(&lzfile->strm, level, LZMA_CHECK_SHA256);
ret = setup_alone_encoder(&lzfile->strm, level);
ret = lzma_auto_decoder(&lzfile->strm, 100 << 20, 0);
free(lzfile);
return lzfile;
LZFILE *lzfile = cookie;
if (!lzfile)
if (lzfile->encoding)
lzfile->strm.avail_out = sizeof(lzfile->buf);
lzfile->strm.next_out = lzfile->buf;
ret = lzma_code(&lzfile->strm, LZMA_FINISH);
n = sizeof(lzfile->buf) - lzfile->strm.avail_out;
if (n && fwrite(lzfile->buf, 1, n, lzfile->file) != n)
lzma_end(&lzfile->strm);
rc = fclose(lzfile->file);
free(lzfile);
LZFILE *lzfile = cookie;
if (!lzfile || lzfile->encoding)
if (lzfile->eof)
lzfile->strm.next_out = (unsigned char *)buf;
lzfile->strm.avail_out = len;
if (!lzfile->strm.avail_in)
lzfile->strm.next_in = lzfile->buf;
lzfile->strm.avail_in = fread(lzfile->buf, 1, sizeof(lzfile->buf), lzfile->file);
if (!lzfile->strm.avail_in)
ret = lzma_code(&lzfile->strm, LZMA_RUN);
lzfile->eof = 1;
return len - lzfile->strm.avail_out;
if (!lzfile->strm.avail_out)
LZFILE *lzfile = cookie;
if (!lzfile || !lzfile->encoding)
lzfile->strm.next_in = (unsigned char *)buf;
lzfile->strm.avail_in = len;
lzfile->strm.next_out = lzfile->buf;
lzfile->strm.avail_out = sizeof(lzfile->buf);
ret = lzma_code(&lzfile->strm, LZMA_RUN);
n = sizeof(lzfile->buf) - lzfile->strm.avail_out;
if (n && fwrite(lzfile->buf, 1, n, lzfile->file) != n)
if (!lzfile->strm.avail_in)