mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-10-19 10:31:59 +00:00
Modernize compress and decompress
This commit is contained in:
@@ -2,6 +2,24 @@
|
||||
|
||||
#include "format.h"
|
||||
|
||||
std::map<std::string_view, format_t> name2fmt;
|
||||
Fmt2Name fmt2name;
|
||||
Fmt2Ext fmt2ext;
|
||||
|
||||
class FormatInit {
|
||||
public:
|
||||
FormatInit() {
|
||||
name2fmt["gzip"] = GZIP;
|
||||
name2fmt["xz"] = XZ;
|
||||
name2fmt["lzma"] = LZMA;
|
||||
name2fmt["bzip2"] = BZIP2;
|
||||
name2fmt["lz4"] = LZ4;
|
||||
name2fmt["lz4_legacy"] = LZ4_LEGACY;
|
||||
}
|
||||
};
|
||||
|
||||
static FormatInit init;
|
||||
|
||||
#define MATCH(s) (len >= (sizeof(s) - 1) && memcmp(buf, s, sizeof(s) - 1) == 0)
|
||||
|
||||
format_t check_fmt(const void *buf, size_t len) {
|
||||
@@ -41,44 +59,51 @@ format_t check_fmt(const void *buf, size_t len) {
|
||||
}
|
||||
}
|
||||
|
||||
void get_fmt_name(format_t fmt, char *name) {
|
||||
const char *s;
|
||||
const char *Fmt2Name::operator[](format_t fmt) {
|
||||
switch (fmt) {
|
||||
case CHROMEOS:
|
||||
s = "chromeos";
|
||||
break;
|
||||
return "chromeos";
|
||||
case AOSP:
|
||||
s = "aosp";
|
||||
break;
|
||||
return "aosp";
|
||||
case GZIP:
|
||||
s = "gzip";
|
||||
break;
|
||||
return "gzip";
|
||||
case LZOP:
|
||||
s = "lzop";
|
||||
break;
|
||||
return "lzop";
|
||||
case XZ:
|
||||
s = "xz";
|
||||
break;
|
||||
return "xz";
|
||||
case LZMA:
|
||||
s = "lzma";
|
||||
break;
|
||||
return "lzma";
|
||||
case BZIP2:
|
||||
s = "bzip2";
|
||||
break;
|
||||
return "bzip2";
|
||||
case LZ4:
|
||||
s = "lz4";
|
||||
break;
|
||||
return "lz4";
|
||||
case LZ4_LEGACY:
|
||||
s = "lz4_legacy";
|
||||
break;
|
||||
return "lz4_legacy";
|
||||
case MTK:
|
||||
s = "mtk";
|
||||
break;
|
||||
return "mtk";
|
||||
case DTB:
|
||||
s = "dtb";
|
||||
break;
|
||||
return "dtb";
|
||||
default:
|
||||
s = "raw";
|
||||
return "raw";
|
||||
}
|
||||
}
|
||||
|
||||
const char *Fmt2Ext::operator[](format_t fmt) {
|
||||
switch (fmt) {
|
||||
case GZIP:
|
||||
return ".gz";
|
||||
case LZOP:
|
||||
return ".lzop";
|
||||
case XZ:
|
||||
return ".xz";
|
||||
case LZMA:
|
||||
return ".lzma";
|
||||
case BZIP2:
|
||||
return ".bz2";
|
||||
case LZ4:
|
||||
case LZ4_LEGACY:
|
||||
return ".lz4";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
strcpy(name, s);
|
||||
}
|
||||
|
Reference in New Issue
Block a user