- AZTEC/CHANNEL/CODABLOCKF/CODE16K/CODE49/CODEONE/DATAMATRIX/

DOTCODE/GRIDMATRIX/HANXIN/MICROPDF417/MICROQR/PDF417/QRCODE/
  RMQR/ULTRA: set `option_1/2/3` to values used in encodation
  ("Feedback options"), and add new access methods
  `encodedOption1()` etc. to Qt Backend, and use in GUI to provide
  better feedback on "Automatic" selections
- AZTEC: give more precise warnings in low ECC situations, and
  indicate via `option_1` by setting to -1 (min 3 words), 0
  (<5% + 3 words) (`ecc_ratio`)
- set_height: fix non-compliance false positives by using epsilon
  in checks (prompted by CODABLOCKF non-compliant warning for
  zint-generated compliant height - floating point `rows` mult !=
  `zero_count` div; one test regression for CODE93);
  better warning messages on non-compliant heights (min/max)
- manual/man page: fix DATAMATRIX Sizes tables "28 12x26" ->
  "27 12x26"
- GUI: AZTEC/CODEONE: add Zint versions to comboboxes
- DOTCODE: improve error messages re size too small/large
- ULTRA: better ZINT_TEST codeword dump (ZINT_DEBUG_TEST)
- general: various tabs -> spaces; prettify main .rc files;
  trailing spaces; small amount of code fiddling (CODE16K)
This commit is contained in:
gitlost 2025-03-07 16:51:36 +00:00
parent d0465375bb
commit d222add96d
68 changed files with 1929 additions and 1497 deletions

View file

@ -345,7 +345,7 @@ static int set_symbol(struct zint_symbol *symbol, const int idx, const int chk_s
length--;
}
/* `option_1` */
if (length > si->len_min && si->option_1_min <= si->option_1_max) {
if (length > si->len_min && si->option_1_min <= si->option_1_max) {
unsigned char ch = *input++;
if (ch != 0xFF) { /* Special case 255 as default (-1) */
if (si->option_1_min + 1 == si->option_1_max) { /* Only one in it? */
@ -357,7 +357,7 @@ static int set_symbol(struct zint_symbol *symbol, const int idx, const int chk_s
length--;
}
/* `option_2` */
if (length > si->len_min && si->option_2_min <= si->option_2_max) {
if (length > si->len_min && si->option_2_min <= si->option_2_max) {
if (si->option_2_min + 1 == si->option_2_max) { /* Only one in it? */
symbol->option_2 = (*input++ & 1) ? si->option_2_min : si->option_2_max; /* Odd/even */
} else {

View file

@ -3,16 +3,16 @@
/*
From "backend/tests/fuzz" directory:
rm -rf fuzz_data_corpus fuzz_gs1_corpus
rm -f fuzz_data_seed_corpus.zip fuzz_gs1_seed_corpus.zip
gcc gen_corpora.c -o gen_corpora -lzint -fsanitize=address
./gen_corpora
zip -j fuzz_data_seed_corpus.zip fuzz_data_corpus/*
zip -j fuzz_gs1_seed_corpus.zip fuzz_gs1_corpus/*
rm -rf fuzz_data_corpus fuzz_gs1_corpus
rm -f fuzz_data_seed_corpus.zip fuzz_gs1_seed_corpus.zip
gcc gen_corpora.c -o gen_corpora -lzint -fsanitize=address
./gen_corpora
zip -j fuzz_data_seed_corpus.zip fuzz_data_corpus/*
zip -j fuzz_gs1_seed_corpus.zip fuzz_gs1_corpus/*
*/
/*
libzint - the open source barcode library
Copyright (C) 2024 Robin Stuart <rstuart114@gmail.com>
Copyright (C) 2024-2025 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@ -927,10 +927,10 @@ static void write_corp(const char dirname[], const struct item data[], const int
} else {
write_setting(filename, data[i].input_mode, 0, fp);
}
if (si->option_1_min <= si->option_1_max) {
if (si->option_1_min <= si->option_1_max) {
write_setting(filename, data[i].option_1, 0xFF, fp);
}
if (si->option_2_min <= si->option_2_max) {
if (si->option_2_min <= si->option_2_max) {
write_setting(filename, data[i].option_2, 0, fp);
}
if (!no_eci && (ZBarcode_Cap(data[i].symbology, ZINT_CAP_ECI) & ZINT_CAP_ECI)) {