1
0
mirror of https://github.com/fumiama/base16384.git synced 2026-06-09 12:40:27 +08:00

feat(checksum): add flag BASE16384_FLAG_DO_SUM_CHECK_FORCELY

This commit is contained in:
源文雨
2024-04-05 14:30:05 +09:00
parent e5f8c0fc46
commit cd15e63c86
7 changed files with 45 additions and 21 deletions

View File

@@ -52,6 +52,7 @@ static base16384_err_t print_usage() {
fputs(" -t\t\tshow spend time\n", stderr);
fputs(" -n\t\tdon't write utf16be file header (0xFEFF)\n", stderr);
fputs(" -c\t\tembed or validate checksum in remainder\n", stderr);
fputs(" -C\t\tdo -c forcely\n", stderr);
fputs(" inputfile\tpass - to read from stdin\n", stderr);
fputs(" outputfile\tpass - to write to stdout\n", stderr);
return base16384_err_invalid_commandline_parameter;
@@ -91,6 +92,9 @@ int main(int argc, char** argv) {
case 'c':
if(set_or_test_flag(use_checksum, 1)) return print_usage();
break;
case 'C':
if(set_or_test_flag(use_checksum, 2)) return print_usage();
break;
default:
return print_usage();
break;
@@ -111,7 +115,9 @@ int main(int argc, char** argv) {
#define do_coding(method) base16384_##method##_file_detailed( \
argv[2], argv[3], encbuf, decbuf, \
(no_header?BASE16384_FLAG_NOHEADER:0) | (use_checksum?BASE16384_FLAG_SUM_CHECK_ON_REMAIN:0) \
(no_header?BASE16384_FLAG_NOHEADER:0) \
| ((use_checksum&1)?BASE16384_FLAG_SUM_CHECK_ON_REMAIN:0) \
| ((use_checksum&2)?BASE16384_FLAG_DO_SUM_CHECK_FORCELY:0) \
)
exitstat = is_encode?do_coding(encode):do_coding(decode);
#undef do_coding