X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/ba5978d2987cce2545e10696a6ca14c6d54fdc92..HEAD:/VtoyTool/vtoydump.c diff --git a/VtoyTool/vtoydump.c b/VtoyTool/vtoydump.c index c090b7e..25c288b 100644 --- a/VtoyTool/vtoydump.c +++ b/VtoyTool/vtoydump.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -444,6 +445,29 @@ static int vtoy_vlnk_printf(ventoy_os_param *param, char *diskname) return 1; } +static int vtoy_check_iso_path_alpnum(ventoy_os_param *param) +{ + char c; + int i = 0; + + while (param->vtoy_img_path[i]) + { + c = param->vtoy_img_path[i]; + + if (isalnum(c) || c == '_' || c == '-') + { + + } + else + { + return 1; + } + i++; + } + + return 0; +} + static int vtoy_check_device(ventoy_os_param *param, const char *device) { unsigned long long size; @@ -560,6 +584,7 @@ int vtoydump_main(int argc, char **argv) int rc; int ch; int print_path = 0; + int check_ascii = 0; int print_fs = 0; int vlnk_print = 0; char filename[256] = {0}; @@ -567,7 +592,7 @@ int vtoydump_main(int argc, char **argv) char device[64] = {0}; ventoy_os_param *param = NULL; - while ((ch = getopt(argc, argv, "c:f:p:t:s:v::")) != -1) + while ((ch = getopt(argc, argv, "a:c:f:p:t:s:v::")) != -1) { if (ch == 'f') { @@ -586,6 +611,11 @@ int vtoydump_main(int argc, char **argv) print_path = 1; strncpy(filename, optarg, sizeof(filename) - 1); } + else if (ch == 'a') + { + check_ascii = 1; + strncpy(filename, optarg, sizeof(filename) - 1); + } else if (ch == 't') { vlnk_print = 1; @@ -660,6 +690,10 @@ int vtoydump_main(int argc, char **argv) { rc = vtoy_check_device(param, device); } + else if (check_ascii) + { + rc = vtoy_check_iso_path_alpnum(param); + } else { // print os param, you can change the output format in the function