backend/tests/fuzz: update "fuzz.h" to take `option_3` min/max;
update `INPUT_MODE_MASK` & `OUTPUT_OPTIONS_MASK`;
set `height`, `border_width` & `output_options` from input
(removing `Z_FUZZ_SET_OUTPUT_OPTIONS` conditional) and call
`ZBarcode_Encode_and_Print()` instead of `ZBarcode_Encode()`;
support standalone builds of "fuzz_data" & "fuzz_gs1" with
`Z_FUZZ_MAIN_READ_ARGV_1` macro;
update "fuzz_gs1" & "fuzz_gs1.dict" to better test caret/raw
modes;
gen_corpora: add `output_options`, `height` & `border_width` &
find (3rd) from fuzz_data of BIND_TOP | BIND_BOX bug
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()`
creating "zint.dll" compatible with Windows XP (see ticket #339)
win32: rename README and HOWTO files to uppercase and update
"win32\README.txt"
general: suppress some VC6 warnings
README.bsd: update
GUI: fix chkGS1Strict enabling on startup regression from previous
commit; update CLI equivalence with --gs1strict & adjust for
implied --gs1; add tests
CMake: allow lpng/zlib and gs1encoders to take paths (for Windows)
win32/README: simplify locating lpng/zlib/gs1encoders for cmake
using above; add note on 64-bit build
manual/man page: adjust for various above changes
`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_`
DBAR_OMN/LTD/EXP: add helpers `dbar_xxx_group()` to calc groups;
`dbar_widths()` -> dbar_getWidths()` & make `noNarrow` boolean;
new helper `dbar_widths()` interleaves;
various other refactorings, fiddlings etc.
DBAR_EXP: `dbar_date()` -> `dbar_exp_date()`
upcean: make `cc_rows` const
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
When binaries, libs and development files like include or cmake files
are installed to different target directories then those where before
relatively installed to the binary and not in the correct directory
where other development related files where installed.
Tested inside of nixpkgs with zxing using the system library of zint.