#include <algorithm>
#include <chrono>
#include <fstream>
#include <memory>
#include <string>
#include <vector>
#include <memory.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include "zlib.h"
void error_exit(const char* error, int code) { … }
inline char* string_data(std::string* s) { … }
struct Data { … };
Data read_file_data_or_exit(const char* name) { … }
enum zlib_wrapper { … };
inline int zlib_stream_wrapper_type(zlib_wrapper type) { … }
const char* zlib_wrapper_name(zlib_wrapper type) { … }
static int zlib_strategy = …;
const char* zlib_level_strategy_name(int compression_level) { … }
static int zlib_compression_level = …;
void zlib_compress(
const zlib_wrapper type,
const char* input,
const size_t input_size,
std::string* output,
bool resize_output = false)
{ … }
void zlib_uncompress(
const zlib_wrapper type,
const std::string& input,
const size_t output_size,
std::string* output)
{ … }
void verify_equal(const char* input, size_t size, std::string* output) { … }
void check_file(const Data& file, zlib_wrapper type, int mode) { … }
void zlib_file(const char* name,
zlib_wrapper type,
int width,
int check,
bool output_csv_format) { … }
static int argn = …;
char* get_option(int argc, char* argv[], const char* option) { … }
bool get_compression(int argc, char* argv[], int& value) { … }
void get_field_width(int argc, char* argv[], int& value) { … }
void usage_exit(const char* program) { … }
int main(int argc, char* argv[]) { … }