and remove from individual .c files;
rename include dirs "C:\myprograms\tcl9.0" -> "C:\Tcl" and lib
dirs "C:\myprograms\tcl9.0\lib" -> "C:\Tcl\lib";
suppress some warnings
backend_tcl/zint.c: suppress some warnings
tools/update_version.php: update for "backend_tcl/zint_tcl.dsp" ->
".vcxproj"
manual.pmd: backend_tcl: fix "require package" -> "package require"
and explain "C:\Tcl" may need adjusting
general: update copyright years in ".rc" files
library: remove needless `eci` zeroing in `set_symbol_defaults()`
and make `barcode_seg_funcs` initialization consistent (147 now)
to suppress warnings about `errtxtf` operand number "%<n>$" args;
enable some further warnings
test suite: enable -Wpedantic and fix/suppress any warnings
processing on last segment
DXFILMEDGE: error message XXX-XX -> NNN-NN, fix comments
README.bsd: update to latest Free/Open/Net, "Run" section
test suite: CODABLOCKF: extra tests from Okapi
test suite: support DATAMATRIX ^PROG, ZXing++ AZRUNE
manual/man page: CODEONE: fix WxH -> HxW and Version C width
manual: backtick literals
change # 147 -> 127 to use up barcode # holes;
use "common.h" funcs `str_to_uppercase()` -> `to_upper()`,
`count_char_occurrences()` -> `chr_cnt()`;
prefix defines with `DX_` and funcs with `dx_`;
`ZINT_DEBUG_PRINT` -> `symbol->debug & ZINT_DEBUG_PRINT`;
bools to ints; use `posn()` to check for slash (returns length);
restrict line lengths to 118; suppress some clang-tidy warnings;
normalize some error messages;
check for single "A" if any (`sscanf()`);
use compliant height default; some whitespace formatting;
Tcl: add DXFILMEDGE support
docs: document DXFILMEDGE; update to latest pandoc
test suite: ZXingCPP: DXFILMEDGE support
also add min version to all CMakeLists.txt
GUI: add missing accelerator to UPCA/UPCEAN.ui "Guard Whitespace";
add default value to some "Default" buttons;
reformat DAFT examples again; add \^@ to special escs hint
around 20% slower than current but much better;
numerous other fiddlings
reedsol: reverse result in `rs_*encode*()` routines & adjust
clients appropriately (may replace later with something faster)
test suite: cater for MAXICODE SCM better; add assert & dataset
totals
BWIPP: update to latest
gen_gs1_lint.php: restrict line length to 118 for func calls
BWIPP minimal encoding by Bue Jensen (BWIPP PR #278);
new extra escape `\^@` to turn off manual switching
zint.h: increase `symbol->text` size 200 -> 256 (means that for
the moment can no longer generate ZINT_WARN_HRT_TRUNCATED)
GS1_128/GS1_128_CC: warn if READER_INIT option used
CODE16K: move `c16k_set_a/b/c()` routines from "code128.c" and
rename `c16k_` (also `C128_` defines to `C16K_`)
common: make `itoc()` simple macro which adds '0' (>= 10 now ':',
';' etc) and adjust `expand()` accordingly for slight speed-up
general: EXTRA_ESCAPE_MODE now implies ESCAPE_MODE
tests: update BWIPP to latest and enable CODE128AB ("suppressc");
new test args '-n' (exclude func) and '-m' (match func)
encodation;
use code set E for padding as well, saves codeword, props Bue
Jensen (BWIPP PR #279);
add padding after all segments and limit loops to length to make
NS compression work better;
all the above temporary fixes until Bue Jensen's merge request
with the BWIPP PR #279 algorithm
GUI: expand linux "xcb" platform hack for >= Qt 5.1
ISO/IEC 15420:2009 4.3.5 (and BWIPP) and adjust righthand outside
digit to be 4X/2X instead of 5X/3X (ISO/IEC 15420:2009
Annex A.2) away from main symbol so as not to touch add-on
TODO: revisit when standard clarified
encodation in certain cases (and no pessimizations found so far),
props lyngklip (BWIPP);
fix extended char latching when exactly 3 extended chars at end;
count code set C (not digits) in loop deciding when to
shift/latch to extended for better estimate
AZTEC: return warning if ECC < 5% (due to bit-stuffing when version
given); return error if > 22 layers (Zint 26) for Reader
Initialisation symbol requested for better error message
AZTEC/HANXIN/QRCODE: consolidate different ECC data size tables
into one indexed by ECC
DBAR_EXP: check for reduced length <= 77 up front for better error
message
HANXIN: use `malloc()` rather than `z_alloca()` for large binary
array
QRCODE: `ecc_level` now 0-based (not 1-based)
MICROQR: consolidate different version end routines into one
`microqr_end()` and use new `microqr_data` table to simplify code
MICROPDF417: use table for max codewords per column
library: centralize all error messages using new `errtxt()`,
`errtxtf()`, `errtxt_adj()` funcs that protect `symbol->errtxt`
from overflow, & try to make error messages more consistent
thru-out, adding more feedback info to many, & use positional
args "%n$" in prep for l10n (maybe);
`is_sane/is_sane_lookup()` -> `not_sane/not_sane_lookup()`,
returning 1-based position (zero on failure) instead of bool;
`long` ints -> plain `int` (except those dealing with `ftell()`,
`fread()` etc) as depend on int being 32-bits already
GUI: in "grpDATF.ui" use "PlainText" rather than "RichText" for
tracker ratio examples as height of text messing up sometimes
manual: clarify Codablock-F length maximum & add examples
docs: README: pandoc 3.5, Ubuntu 24.04
CMake: use "-Wpedantic" for Clang only as GNU complains about
`errtxtf()` positional args "%n$"
Adapted from OkapiBarcode, with stricter interpretation (only pad
if "+4" totally absent), props Daniel Gredler
gs1: update to latest gs1-syntax-dictionary (linter mm -> mi)
bwipp: update to latest
avoid various weird behaviours
tests: disable GUI-dependent tests (`TestQZint::renderTest()`) if
ZINT_SANITIZE and on Linux for later versions of Qt (5 and 6)
to avoid ASAN "detected memory leaks" errors on exit
CODE49: Better error message on ZINT_ERROR_TOO_LONG
manual: Use floating pt notation for floating pt args on options
backend/tools/data: Remove overlooked "GB2312.TXT" from git
raster: `size2` -> `prev_size`; one line `malloc()`s
C25/CODE128: some code fiddling
tests/PNG: Add some more text examples
from ZXing (props Alex Geller) - about 25-60% slower depending on
data & stack heavy but does improve some outcomes when FNC1s
present (GS1_MODE or manual) although not much else it appears
(the previous algorithm was very good), but has a logical clarity
the other lacked - funcs `c128_dxsmooth()` etc shared with
CODE16K now moved there and renamed as `c16k_`;
also fix extended char latching when exactly 4 extended chars
at end
also manual code set switching now honoured exactly even if
immediate shift required;
manual: make explicit that AI "(00)" and "(01)" prefixes added by
Zint are HRT-only
general: add `extern "C"` wrappers to a few header files
ticket #324, props Jim Shank;
also improve encodation for a few limited cases;
also some code fiddling
BWIPP: update to latest
raster: check for overflow on `size + size2` in `raster_malloc()`
vector: put `malloc()`s on one line for grep ease
docs: pandoc-3.3, clang-tidy-20
`iso3166list` linter and adjusting all others to allow for
multiple optional linters (by checking `data_len` vs `offset`)
library: change invalid `input_mode` reset to return warning;
split func table into 2 - func declarations without prototype
will be error in C23;
make invalid symbology check a separate function using a table
and call near beginning of `ZBarcode_Encode_Segs()`;
in `ZBarcode_BarcodeName()` save some bytes by simplifying
name table and removing "BARCODE_" prefix from entries
output: fix pack logic to use pragma by default (actually more
portable than `__attribute__`)
common.h: remove C99 detection which was artifice of specifying
"-std=", and rejig layout to be more logical
BWIPP: update to latest version
general: change `ZINT_VERSION_BUILD` tests to `#if`s
general: further fiddling with some tables to save a few bytes
CLI: change function arg `optarg` -> `arg` so doesn't shadow
global
general: library now compilable with Comp Cert C (though as it
doesn't support `alloca()` will have multiple memory leaks)
"SetPaths.cmake" (removed) - resolves absolute paths in
"zint-targets.cmake", ticket #318, props John Alexander;
also remove "FindZint.cmake" install as not best practice
(Daniel Pfeifer “Effective CMake"), but retain in tree for now;
also remove APPLE stuff re UNIVERSAL build, obsolete, and
setting of CMAKE_OSX_SYSROOT, seems unnecessary