size_t BZ2DecompressToFile(const char *dst_path, const void *src, size_t src_len) { Buffer dst; if (!BZ2Decompress(dst, src, src_len)) { return 0; } FILE *fout = fopen(dst_path, "wb"); if (fout == nullptr) { return false; } fwrite(&dst[0], 1, dst.size(), fout); fclose(fout); return dst.size(); }
String BZ2Decompress(Stream& strm, Gate2<int, int> progress) { StringStream out; BZ2Decompress(out, strm, progress); return out; }