xz: Move the check for --suffix with --format=raw a few lines earlier.

Now it reads from argv[] instead of args->arg_names.
This commit is contained in:
Lasse Collin 2023-11-17 19:35:19 +02:00 committed by Jia Tan
parent ca278eb2b7
commit 659aca0d69
1 changed files with 22 additions and 22 deletions

View File

@ -811,6 +811,28 @@ args_parse(args_info *args, int argc, char **argv)
opt_block_list = NULL;
}
// If raw format is used and a custom suffix is not provided,
// then only stdout mode can be used when compressing or
// decompressing.
if (opt_format == FORMAT_RAW && !suffix_is_set() && !opt_stdout
&& (opt_mode == MODE_COMPRESS
|| opt_mode == MODE_DECOMPRESS)) {
if (args->files_name != NULL)
message_fatal(_("With --format=raw, "
"--suffix=.SUF is required "
"unless writing to stdout"));
// If all of the filenames provided are "-" (more than one
// "-" could be specified) or no filenames are provided,
// then we are only going to be writing to standard out.
for (int i = optind; i < argc; i++) {
if (strcmp(argv[i], "-") != 0)
message_fatal(_("With --format=raw, "
"--suffix=.SUF is required "
"unless writing to stdout"));
}
}
// Compression settings need to be validated (options themselves and
// their memory usage) when compressing to any file format. It has to
// be done also when uncompressing raw data, since for raw decoding
@ -834,28 +856,6 @@ args_parse(args_info *args, int argc, char **argv)
args->arg_count = (unsigned int)(argc - optind);
}
// If raw format is used and a custom suffix is not provided,
// then only stdout mode can be used when compressing or
// decompressing.
if (opt_format == FORMAT_RAW && !suffix_is_set() && !opt_stdout
&& (opt_mode == MODE_COMPRESS
|| opt_mode == MODE_DECOMPRESS)) {
if (args->files_name != NULL)
message_fatal(_("With --format=raw, "
"--suffix=.SUF is required "
"unless writing to stdout"));
// If all of the filenames provided are "-" (more than one
// "-" could be specified) or no filenames are provided,
// then we are only going to be writing to standard out.
for (unsigned int i = 0; i < args->arg_count; i++) {
if (strcmp(args->arg_names[i], "-") != 0)
message_fatal(_("With --format=raw, "
"--suffix=.SUF is required "
"unless writing to stdout"));
}
}
return;
}