static const char * decompose_alias(const char *suffix) { static const struct suffix_code_t alias[] = { { ".taz", ".tar.gz" }, { ".tgz", ".tar.gz" }, { ".tbz", ".tar.bz2" }, { ".tbz2", ".tar.bz2" }, { ".tz2", ".tar.bz2" }, { ".tlz", ".tar.lzma" }, { ".txz", ".tar.xz" }, { ".tzo", ".tar.lzo" }, { ".taZ", ".tar.Z" }, { ".tZ", ".tar.Z" }, { NULL, NULL } }; return get_suffix_code(alias, suffix); }
static const char * get_format_code(const char *suffix) { /* A pair of suffix and format. */ static const struct suffix_code_t formats[] = { { ".7z", "7zip" }, { ".ar", "arbsd" }, { ".cpio", "cpio" }, { ".iso", "iso9960" }, { ".mtree", "mtree" }, { ".shar", "shar" }, { ".tar", "paxr" }, { ".warc", "warc" }, { ".xar", "xar" }, { ".zip", "zip" }, { NULL, NULL } }; return get_suffix_code(formats, suffix); }
static const char * get_filter_code(const char *suffix) { /* A pair of suffix and compression/filter. */ static const struct suffix_code_t filters[] = { { ".Z", "compress" }, { ".bz2", "bzip2" }, { ".gz", "gzip" }, { ".grz", "grzip" }, { ".lrz", "lrzip" }, { ".lz", "lzip" }, { ".lzo", "lzop" }, { ".lzma", "lzma" }, { ".uu", "uuencode" }, { ".xz", "xz" }, { NULL, NULL } }; return get_suffix_code(filters, suffix); }