static int program_bidder_init(struct archive_read_filter *self) { struct program_bidder *bidder_state; bidder_state = (struct program_bidder *)self->bidder->data; return (__archive_read_program(self, bidder_state->cmd)); }
/* * If we don't have the library on this system, we can't do the * decompression directly. We can, however, try to run "zstd -d" * in case that's available. */ static int zstd_bidder_init(struct archive_read_filter *self) { int r; r = __archive_read_program(self, "zstd -d -qq"); /* Note: We set the format here even if __archive_read_program() * above fails. We do, after all, know what the format is * even if we weren't able to read it. */ self->code = ARCHIVE_FILTER_ZSTD; self->name = "zstd"; return (r); }
/* * If we don't have the library on this system, we can't actually do the * decompression. We can, however, still detect compressed archives * and emit a useful message. */ static int bzip2_reader_init(struct archive_read_filter *self) { int r; r = __archive_read_program(self, "bunzip2"); /* Note: We set the format here even if __archive_read_program() * above fails. We do, after all, know what the format is * even if we weren't able to read it. */ self->code = ARCHIVE_COMPRESSION_BZIP2; self->name = "bzip2"; return (r); }