template, props Dmitry Smirnov (ticket #147, props John Crisp);
TODO: enable building with the GS1 Syntax Engine;
this involved auditing copyrights which prompted the next item
re "tif.c" and will prompt the next next item "pdf417.c"
tif.c: replaced LZW compression with tree-based one due to
"tif_lzw.h"'s original BSD-TAHOE license which has the equivalent
of the "advertising clause", new implementation (which is much
faster anyway) props Harald Kuhr and Bob Montgomery
pdf417.c: TODO: Replace all code adapted from "pdf417.frm" as it
was released under GPL v2.0 or later
pdf417.h: replace unnecessary "pdf417.frm" references with ISO/IEC
standard as 1st step re above, some expanded comments
general: Codablock-F -> Codablock F (i.e. lose hyphen)
cmake: frontend/frontend_qt: go back to only setting RPATH on macOS
as not Debian compatible and it seems it's not a good idea on
Linux anyway; TODO: check BSD + other Unixes
CLI/GUI: make "--verbose" option official and document
tools/gen_eci_sb_h.php/gen_eci_mb_h.php: add SPDX Unicode-3.0;
update haible.de/bruno tarball info - "GB18030.TXT" no longer in
"jdk-1.4.2/" so mention "libiconv-1.11/" version instead (same)
general: add various SPDXs and normalize some Copyrights
reedsol.c: malloced `logt`/`alog` tables int -> short (slight
performance improvement)
aztec.c: add copyrights, some code fiddling
BWIPP: update to latest
(ticket #347), props Frank Yellin and Rustam Abdullaev;
also improve performance of `FAST_MODE`
DATAMATRIX: assert max size on `edges` will fit in unsigned short;
use MASK for DMRE/SQUARE `option_3` setting
PDF417: assert max size on `edges` will fit in unsigned short
GUI: fix setting AZTEC size and ECC combos if not previously set
manual: fix not mentioning AZTEC re `FAST_MODE`;
gs1 mode footnote: mention 3940's length; pandoc -> 3.9
test suite: DOTCODE: account for new BWIPP input length guard
"Unbracketed AI" (caret) options for specifying GS1 input
(ticket #350, props Mario Verbruggen)
DBAR_EXP_CC/DBAR_EXPSTK_CC: fix separator over finder patterns
when linear part is greater than 4 codeblocks
general: left-over raw_text -> content_segs in comments;
update & expand some GS1 General Specs refs;
some minor code fiddling
test suite: suppress some additional ZINT_SANITIZEM false positives
(& add new ZINT_TESTUTIL_SANITIZEM_INIT helpers)
available via "--fast" (input_mode |= FAST_MODE) (ticket #347);
add new option "--azfull" (option_3 = ZINT_AZTEC_FULL) to only
consider Full symbols (not Compact ones) on automatic sizing
GUI: adjust Aztec tab to show feedback by selecting combos and
shorten message to just actual ECC;
grpCodabar min width
library: debug source input dump 200 -> 2000
common: some code fiddling (c -> ch, flg -> flag)
backend_tcl: add "-azfull" option & make capitalization of
help more consistent
general: remove some trailing whitespace
manual: make Aztec ECCs more precise, i.e. ">=" rather than ">"
(similarly in GUI)
CLI: code fiddling c -> opt
just 2 digits
cmake: set `rpath` of CLI frontend on macOS install (ticket #346,
props Hagen Röwer)
cmake: make uninstall: update to use `-E rm` if available, warn
rather than fatal error if fail to remove, note if leaving
"/zint" directory unremoved (i.e. "lib/cmake/zint")
library: de-duplicate errtxt no.
test suite: update BWIPP to latest
test suite: test_bwipp: enable & fix dotcode random test
test suite: fuzz: gen_corpora fuzz_data 1st -> 2nd
switching mode or any FNC1 after manual C mode selected and no
other non-C data - found by fuzz test "fuzz_data" - 2nd ever
trophy!
qr.h: fix typo (props https://github.com/crate-ci/typos)
(was dividing instead of multiplying doh);
make "--scalexdimdp" units check error messages better;
add more "--test" tests & have `validate_units()` etc take
`errbuf` arg to make them more test-friendly
GUI: `copy_to_clipboard()` unshadow `data` -> `fdata`
test suite: make `utf8_to_wide()` same as "backend/output.c" & fix
return vals;
add `QZint::save_to_memfile()` test
`BARCODE_MEMORY_FILE` and use in GUI for pasting to clipboard
instead of creating temporary file
CLI: allow fully case-insensitive "tiff" as filetype (saved as
".tif"), processing up to 4-letter extensions and hopefully
making filetype handling more expected;
simplify `validate_float()` (unneeded 2nd fractional max test);
add some more internal "--test" tests
BWIPP: update to latest (change from ctx to global VM) - zint tests
work as-is, no change
`BARCODE_CONTENT_SEGS`, `z_rt_XXX()` -> `z_ct_XXX()`;
move `encoded_data`/`row_height` to end of `zint_symbol`
(see ZXing-C++ issue #883)
manual: update re `content_segs`; `my_symbol` -> `symbol`;
improve MicroPDF417 description
some code fiddling on affected files
manual: use new lua filter "lua-crossrefs.lua" hacked from
https://github.com/rnwst/pandoc-lua-crossrefs as replacement for
tablenos which broke with pandoc 2.8.2 (get nicer output anyway);
fix "excode39.svg" data $ -> # to avoid shell processing;
document `ZBarcode_HaveGS1SyntaxEngine()`
`DATA_MODE`); allows ZXing-C++ to be built in writer-only mode
without needing "libzueci"
library: in GS1 mode check that ECI if any is ASCII compatible
general: some code fiddling, `mode` -> `modes`
filemem: remove NOLINTS (clang-tidy-20 bug fixed)
QRCODE: eliminate NOLINTs using some more asserts (clang-tidy-20);
some "de-branching" of loops
general: various code fiddlings, in particular lessen no. of
redundant parenthesized expressions, especially in conditionals,
which reduce rather than aid readibility IMNSHO
manual: mention "--dump" option
those in "backend/common.h", which are prefixed by `z_` - makes
symbol clashes more unlikely when zint is statically linked
(ticket #337, props Ulrich Becker)
DOTCODE: fix padding allowance (10 -> 52 - probable max 35) to
cover cases with large no. of columns requested and little data,
to prevent `codeword_array` buffer overflow
AZTEC/CODEONE: some code fiddling
general_field: prefix defines with `GF_`, shorten static funcs
prefix `general_field_` -> `gf_`
in `ESCAPE_MODE`
composite: empty primary now returns `ZINT_ERROR_INVALID_DATA`
rather than `ZINT_ERROR_INVALID_OPTION`;
check that primary NUL-terminated
library: check that `outfile` NUL-terminated
gs1: preface all routines and linters with "gs1_"
general: some code fiddling
`BARCODE_EAN_5ADDON`, `BARCODE_EAN13`, `BARCODE_EAN8_CC` and
`BARCODE_EAN13_CC` as replacements for `BARCODE_EANX`,
`BARCODE_EANX_CHK` and `BARCODE_EANX_CC` and use in CLI/GUI
(`BARCODE_EANX` etc. marked as legacy)
- For EAN/UPC accept space as alternative add-on separator to '+',
and accept GTIN-13 format with & without 2-digit or 5-digit
add-on (no separator)
- Buffer length of member `errtxt` in `zint_symbol` extended 100
-> 160 (will be sufficient for eventual translation and
gs1-syntax-dictionary errors hopefully)
- UPC-E: warn if first digit of 7 (or 8 if check digit given) not
'0' or '1'
- manual: update for new EAN symbologies and mention EANX now
legacy but still supported
and place any add-on data directly after (no separator)
EAN-8 + add-on: warn as non-compliant (see ZXing-C++ issue #883,
https://github.com/zxing-cpp/zxing-cpp/issues/883)
test suite: BWIPP: use new EAN-8 + add-on option "permitaddon";
fix dumps of RAW_TEXT `memcmp()`s fails; various re-formatting
bwipp_dump.ps: update to latest BWIPP
followed by digit (ignore 2nd byte of FNC4 when categorizing
Code C characters)
- New `ZBarcode_Cap()` flag `ZINT_CAP_BINDABLE`, differentiated
from `ZINT_CAP_STACKABLE`, and new Qt Backend method
`isBindable()`
- CLI: fix `separator` check to use new `ZINT_CAP_BINDABLE` instead
of `ZINT_CAP_STACKABLE`
- ZBarcode_Cap: add missing symbologies to `ZINT_CAP_BINDABLE` (was
`ZINT_CAP_STACKABLE`)
- DOTCODE: pad rows if given number of columns instead of failing
if rows below min (5)
- DBAR/composites: ensure stacked symbologies and composites are
not stacked (set `symbol->rows` to 0)
- test suite: move `test_perf` routines into single test
"test_perf";
new "test_random" (based on "test_bwipp") to test various
symbologies with random binary - discovered CODABLOCKF bug;
expand "test_bwipp"
manual: Feeback: mention AZTEC -1 meaning min & MICROPDF417:
doc new `ZINT_CAP_BINDABLE`
general: various code fiddlings and re-formattings
fields `raw_segs` and `raw_seg_count` instead of `text`, and to
do so for all symbologies, using new common funcs `rt_cpy()` etc.
MICROPDF417: return ECC percentage in top byte of `option_1`
DBAR_EXP_STK: return `option_2`/`option_3` feedback
CLI: change warning text "ignoring" -> "**IGNORED**"
GUI: show feedback for DBAR_EXP_STK, MICROPDF417, UPNQR
ctest: fix recent inability to run tests via "ctest" on Windows
(MSVC) by using cmake 3.22 feature `ENVIRONMENT_MODIFICATION`
manual: document feedback and RAW_TEXT in new "Feedback" section;
rephrase some symbology descriptions
test suite: new general-use arg "-a"; add `func_name` to context;
new "test_bwipp" test for testing BWIPP against ZXing-C++
("Feedback options"), and for composites use in GUI to give
feedback on CC type automatically selected
- composite: warn if CC type upped from requested
- set_height: give up on giving minimal height in warning for now
as too messy to calc and just report too small