diff options
Diffstat (limited to 'mkfs')
-rw-r--r-- | mkfs/mkfs.h | 2 | ||||
-rw-r--r-- | mkfs/options.c | 36 |
2 files changed, 8 insertions, 30 deletions
diff --git a/mkfs/mkfs.h b/mkfs/mkfs.h index cea9ebc..4a39eb5 100644 --- a/mkfs/mkfs.h +++ b/mkfs/mkfs.h @@ -28,8 +28,8 @@ typedef struct { unsigned int def_gid; unsigned int def_mode; unsigned int def_mtime; + E_SQFS_COMPRESSOR compressor; int outmode; - int compressor; int blksz; int devblksz; bool quiet; diff --git a/mkfs/options.c b/mkfs/options.c index a746ba4..e298a6c 100644 --- a/mkfs/options.c +++ b/mkfs/options.c @@ -61,7 +61,6 @@ static const char *help_string = "\n" " --compressor, -c <name> Select the compressor to use.\n" " A list of available compressors is below.\n" -" Defaults to '%s'.\n" " --comp-extra, -X <options> A comma seperated list of extra options for\n" " the selected compressor. Specify 'help' to\n" " get a list of available options.\n" @@ -126,15 +125,6 @@ static const char *help_string = " file /bin/bash 0755 0 0" "\n\n"; -static const char *compressors[] = { - [SQFS_COMP_GZIP] = "gzip", - [SQFS_COMP_LZMA] = "lzma", - [SQFS_COMP_LZO] = "lzo", - [SQFS_COMP_XZ] = "xz", - [SQFS_COMP_LZ4] = "lz4", - [SQFS_COMP_ZSTD] = "zstd", -}; - static long read_number(const char *name, const char *str, long min, long max) { long result = strtol(str, NULL, 0); @@ -217,17 +207,13 @@ void process_command_line(options_t *opt, int argc, char **argv) switch (i) { case 'c': - have_compressor = false; + have_compressor = true; - for (i = SQFS_COMP_MIN; i <= SQFS_COMP_MAX; ++i) { - if (strcmp(compressors[i], optarg) == 0) { - if (compressor_exists(i)) { - have_compressor = true; - opt->compressor = i; - break; - } - } - } + if (compressor_id_from_name(optarg, &opt->compressor)) + have_compressor = false; + + if (!compressor_exists(opt->compressor)) + have_compressor = false; if (!have_compressor) { fprintf(stderr, "Unsupported compressor '%s'\n", @@ -268,16 +254,8 @@ void process_command_line(options_t *opt, int argc, char **argv) #endif case 'h': printf(help_string, __progname, - compressors[compressor_get_default()], SQFS_DEFAULT_BLOCK_SIZE, SQFS_DEVBLK_SIZE); - - fputs("Available compressors:\n", stdout); - - for (i = SQFS_COMP_MIN; i <= SQFS_COMP_MAX; ++i) { - if (compressor_exists(i)) - printf("\t%s\n", compressors[i]); - } - + compressor_print_available(); exit(EXIT_SUCCESS); case 'V': print_version(); |