comparison mupdf-source/thirdparty/zint/ChangeLog @ 2:b50eed0cc0ef upstream

ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4. The directory name has changed: no version number in the expanded directory now.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:43:07 +0200
parents
children
comparison
equal deleted inserted replaced
1:1d09e1dec1d9 2:b50eed0cc0ef
1 Version 2.13.0.9 (dev) not released yet (2024-12-23)
2 ====================================================
3
4 **Incompatible changes**
5 ------------------------
6 - New `memfile` & `memfile_size` fields in `symbol` for use with new output
7 option `BARCODE_MEMORY_FILE`
8 - Buffer length of member `text` (HRT) in `zint_symbol` extended 200 -> 256
9 (client buffers may need checking/extending)
10 - Invalid `input_mode` now returns warning
11 - Aztec Code symbols that due to input length & user-requested version have less
12 than recommended 5% error correction codewords now return warning
13 - New CODE128-only special extra escapes beginning `\^`
14 - Add-ons for UPC-A and UPC-E now descend to be level with the main symbol guard
15 bars, and the righthand outside digit is now placed 1X less from main symbol
16 to avoid touching any add-on
17 - GS1-128 symbols now warn if READER_INIT option used
18
19 Changes
20 -------
21 - BMP: lessen heap memory usage by only `malloc()`ing a row
22 - GIF: lessen heap memory usage by paging; use standard colour char map
23 - Add `BARCODE_MEMORY_FILE` to `symbol->output_options` to allow outputting to
24 in-memory buffer `symbol->memfile` instead of to file `symbol->outfile`,
25 ticket #301
26 - CODE16K (was for CODE128): improve encodation on A/B shifting, props Daniel
27 Gredler (Okapi)
28 - CODE128: add new extra escape `\^1` for manual insertion of FNC1s, ticket
29 #324, props Jim Shank;
30 new extra escapes `\^A`, `\^B`, `\^C` and `\^@` for manual switching of
31 Code Sets;
32 add minimal encodation algorithm, props Alex Geller (ZXing) and Bue Jensen
33 (BWIPP);
34 - library: return warning on invalid `input_mode` reset
35 - library/CLI: expanded error messages
36 - GS1: new AIs 7250-7259 (GSCN 22-246);
37 iso4217: new ISO 4217 currency code 924;
38 new AIs 7041 (GSCN 23-272) (packagetype) and 716 (GSCN-24-157)
39 - AZTEC: workaround MSVC 2022 optimizer bug in `az_populate_map()` loops,
40 ticket #317, props Andre Maute;
41 return warning if ECC < 5% (due to bit-stuffing when version given)
42 - MAXICODE: zero-pad US postcodes that lack "+4" (Annex B.1.4a), from
43 OkapiBarcode, props Daniel Gredler;
44 add minimal encodation algorithm, props Bue Jensen (BWIPP)
45 - GUI: use X11 (xcb) as platform instead of Wayland on Linux to avoid various
46 weird behaviours;
47 in "grpDATF.ui" use "PlainText" rather than "RichText" for tracker ratio
48 examples as height of text messing up sometimes
49 - UPCA/UPCE: descend add-ons to same level as guards and adjust righthand
50 outside digit to be 4X/2X instead of 5X/3X away from main symbol so as not to
51 touch add-on TODO: revisit when standard clarified
52 - manual: make explicit that AI "(00)" and "(01)" prefixes added by Zint are
53 HRT-only; clarify Codablock-F length maximum & add examples
54 - add DXFILMEDGE (MR #159, props Antoine Mérino)
55
56 Bugs
57 ----
58 - raster/BMP/GIF/PCX/TIF: fix dealing with very large data (use `size_t`)
59 - raster: add `raster_malloc()` to fail > 1GB (avoids very large output files;
60 also lessens to some degree chances of being victim of OOM killer on Linux)
61 - GUI: printing scale dialog: set maxima on X-dim and resolution to keep scale
62 <= 200
63 - BMP/EMF/PCX/TIF: fix endianness on big-endian machines (note TIF now always
64 written as little-endian - simplifies testing)
65 - ITF14/DPLEIT/DPIDENT: ignore `option_2` (check digit options)
66 - GUI: scalewindow: fix cropping of initial resolution and bound X-dim <= 10
67 - GUI: factory reset: reset preview background colour also
68 - GUI: cliwindow: `#if _WIN32` -> `#ifdef _WIN32`
69 - QZint: fix legacy width and security level getters/setters, MR #158, props
70 Philip Ye
71 - CODE128: fix extended char latching when exactly 3 extended chars at end
72 - library: need to check for valid UTF-8 after de-escaping
73 - MAXICODE: maintain current set between segments
74
75
76 Version 2.13.0 (2023-12-18)
77 ===========================
78
79 **Incompatible changes**
80 ------------------------
81 - Buffer lengths of members `fgcolour` and `bgcolour` in `zint_symbol` extended
82 10 -> 16 to allow for "C,M,Y,K" comma-separated decimal percentage strings
83 - CMYK values for EPS (slightly) and TIF (significantly) have changed - now use
84 the same RGB -> CMYK formula
85 - Text (HRT) placement for vector (EMF/EPS/SVG) output changed - for EAN/UPC
86 slightly further away from barcode, for all others slightly nearer. Some
87 horizontal alignments of EAN/UPC vector text also tweaked
88 - Text (HRT) for standalone EAN-2 and EAN-5 now at top of symbol
89 (was at bottom)
90 - Text height (font size) for SMALL_TEXT vector output reduced
91 - For Windows, filenames are now assumed to be UTF-8 encoded. Affects `outfile`
92 in `zint_symbol` and all API filename arguments
93 - Never-used `fontsize` member removed from `zint_symbol`
94 - Buffer length of member `text` (HRT) in `zint_symbol` extended 128 -> 200
95 (client buffers may need checking/extending)
96 - Font of text of SVG vector output now "OCRB, monospace" (EAN/UPC) or
97 "Arimo, Arial, sans-serif" (all others)
98 (was "Helvetica, sans-serif" for both)
99 - Unintended excess horizontal whitespace of Composite symbols removed, and
100 quiet zone settings respected exactly, and centring of HRT (if any) now
101 relative to linear part of symbol only rather than whole symbol
102 - Unlikely-to-be-used `bitmap_byte_length` member removed from `zint_symbol`
103 (was only set on BMP output to length of BMP pixel array)
104 - EXCODE39 now defaults to displaying check digit in Human Readable Text (HRT)
105 - GS1_128 now warns if data > 48 (GS1 General Specifications max)
106
107 Changes
108 -------
109 - BMP/EMF/EPS/GIF/PCX/PNG/SVG/TIF/TXT: check for errors on writing to output
110 file (ticket #275)
111 - manual/man page: document octal escape; Code 128 subset/mode -> Code Set
112 - Add special symbology-specific escape sequences (Code 128 only) for manual
113 Code Set switching via `input_mode` flag `EXTRA_ESCAPE_MODE` (CLI --extraesc)
114 (ticket #204)
115 - GUI: disable "Reset" colour if default; add "Unset" to Printing Scale dialog
116 (allows unsetting of X-dim/resolution settings without having to zap)
117 - API/CLI/GUI: allow foreground/background colours to be specified as
118 comma-separated decimal percentage strings "C,M,Y,K" where "C", "M" etc. are
119 0-100 (ticket #281, 3rd point)
120 - PCX: add alpha support
121 - GUI: rearrange some Appearance tab inputs (Border Type <-> Width, Show Text
122 <-> Font, Text/Font <-> Printing Scale/Size) to flow more naturally;
123 save button "Save As..." -> "Save..." and add icon
124 - Add `text_gap` option to allow adjustment of vertical gap between barcode and
125 text (HRT)
126 - DAFT: up max to 250 chars
127 - CLI: use own (Wine) version of `CommandLineToArgvW()` to avoid loading
128 "shell32.dll"
129 - EAN/UPC: add quiet zone indicators option (API `output_options`
130 `EANUPC_GUARD_WHITESPACE`, CLI `--guardwhitespace`) (ticket #287)
131 - EAN-2/EAN-5: HRT now at top instead of at bottom for standalones, following
132 BWIPP
133 - EPS/SVG: use new `out_putsf()` func to output floats, avoiding trailing zeroes
134 & locale dependency
135 - EPS: simplify "TR" formula
136 - SVG: change font from "Helvetica, sans-serif" to "OCRB, monospace" for EAN/UPC
137 and "Arimo, Arial, sans-serif" for all others;
138 use single "<path>" instead of multiple "<rect>"s to draw boxes (reduces file
139 size)
140 - Add `EMBED_VECTOR_FONT` to `output_options` (CLI `--embedfont`) to enable
141 embedding of font in vector output - currently only for SVG output
142 - GUI: use "OCRB" font for EAN/UPC and "Arimo" for all others (was "Helvetica"
143 for both); add preview background colour option (default light grey) so as
144 whitespace will show up in contrast (access via preview context menu)
145 - CODE128/common: add `ZINT_WARN_HRT_TRUNCATED` warning
146 - QRCODE: better assert(), removing a NOLINT (2 left)
147 - CLI: add some more barcode synonyms for DBAR
148 - CMake: don't include png.c unless ZINT_USE_PNG (avoids clang warning)
149 - vector: reduce SMALL_TEXT font height 6 -> 5 to be more like raster;
150 reduce antialiasing allowance for `textoffset`;
151 adjust text to baseline using values for Arimo rather than percentage
152 - manual: expand size/alpha details in Section "5.4 Buffering Symbols in Memory
153 (raster)" (cf ticket #291); add BSD info
154 - EXCODE39: change to display check digit in HRT by default
155 - CODE39/EXCODE39/LOGMARS: new hidden check digit option
156 - GUI: move some symbology-specific options into Data Tab so separate tab
157 unnecessary
158 - DATAMATRIX: add `DM_ISO_144` (--dmiso144) option for ISO placement of ECC
159 codewords instead of default "de facto"
160 - manual: add annexes on Qt and Tcl backends
161 - CODE128: increase no. symbol chars max 60 -> 99
162 - frontend: truncate overlong `--primary` instead of ignoring
163 - man page: list size detail for matrix symbols (`--vers`)
164 - CODE11/C25XXX/CODE39/EXCODE39/HIBC_39/CODE93/CODABAR/PLESSEY/MSI_PLESSEY/FLAT/
165 DAFT/TELEPEN/TELEPEN_NUM: increase allowed lengths
166 - API: add `ZBarcode_Reset()` to fully restore `zint_symbol` to default state
167
168 Bugs
169 ----
170 - CEPNET: fix no HRT (library: `has_hrt()`)
171 - man page: fix Code 11 check digit info
172 - CMake: allow ctest to be run without having to install zint or manually set
173 LD_LIBRARY_PATH and PATH (ticket #279, props Alexey Dokuchaev)
174 - GUI: fg/bgcolor text edit: fix right-click context menu not working properly
175 by checking for it on FocusOut
176 - GUI: fix fg/bgcolor icon background not being reset on zap
177 - EMF/EPS/SVG/GUI: ignore BOLD_TEXT for EAN/UPC
178 - EMF/EPS/SVG: fix addon bars placement/length when text hidden
179 - For Windows, assume `outfile` & API filename args are in UTF-8,
180 & use xxxW() APIs accordingly, ticket #288, props Marcel
181 **Backwards-incompatible change**
182 - GUI: fix `save_to_file()` `filename.toLatin1()` -> `toUtf8()`
183 - CLI: batch mode: don't close input if stdin
184 - EAN/UPC: fix excess 1X to right of add-ons
185 - Composites: fix excess whitespace; fix quiet zone calcs to allow for linear
186 shifting
187 - GUI: fix not enabling font combo "Small Bold (vector only)" by default
188 - CODEONE: fix S/T quiet zone 1X bottom (props BWIPP issue #245 doc)
189 - EAN-2/EAN-5: fix `BARCODE_BIND_TOP/BIND/BOX` output
190 - library: fix 21-bit Unicode conversion in `escape_char_process()`; fix
191 restricting escaped data length by using de-escaped length to check
192 - AZTEC: fix out-of-bounds crash when user-specified size given, ticket #300,
193 props Andre Maute; fix 4-layer compact block max (76 -> 64); fix encoding of
194 byte-blocks > 11-bit limit
195 - CODABLOCKF: fix crash due to `columns` overflow, ticket #300, props Andre
196 Maute
197 - CODEONE: fix out-of-bounds crash in `c1_c40text_cnt()` and looping on latch
198 crash in `c1_encode()` and too small buffer for Version T, ticket #300, props
199 Andre Maute
200 - EANX_CC/UPCA_CC: fix crash in `dbar_date()` on not checking length and crash
201 in `gs1_verify()` on not checking length, ticket #300, props Andre Maute
202 - GS1_128_CC: fix divide-by-zero crash in `calc_padding_ccc()`, ticket #300,
203 props Andre Maute
204 - HANXIN: fix incorrect numeric costings (out-by-1) in `hx_in_numeric()`, ticket
205 #300 (#16), props Andre Maure
206 - PDF417: fix out-of-bounds crash in `pdf_text_submode_length()` and
207 out-of-bounds crash on overrunning string and codeword buffers, ticket #300,
208 props Andre Maute
209 - QRCODE: fix out-of-bounds crash due to incorrect mode costings for GS1
210 percents in `qr_in_alpha()`; fix incorrect numeric costings (out-by-1) in
211 `qr_in_numeric()`; ticket #300 (#14, #15; #16), props Andre Maute
212 - GS1: fix square brackets treated as FNC1 in GS1PARENS_MODE by changing
213 internal FNC1 marker '[' -> '\x1D' (GS), ticket #319, props Moli Sojet;
214 also fix non-AI square brackets -> round brackets in GS1_128 HRT
215
216
217 Version 2.12.0 (2022-12-12)
218 ===========================
219
220 **Incompatible changes**
221 ------------------------
222 - DOTCODE, QRCODE, RMQR: now return warning if ECI or Structured Append used in
223 GS1 mode
224 - CLI now returns an error if unknown option given or if option is missing its
225 argument
226 NOTE: previously printed error messages but continued without returning an
227 error
228 - DPD now adds top boundary bar by default and returns warnings if input is not
229 compliant
230 - Legacy and never-used output option BARCODE_NO_ASCII removed (value now used
231 by new output option BARCODE_BIND_TOP)
232 - Symbology BARCODE_CODE128B (Suppress subset C) renamed to BARCODE_CODE128AB
233 to more accurately reflect its behaviour (old name still recognised, except in
234 Tcl backend)
235 - Symbology BARCODE_MAILMARK renamed to BARCODE_MAILMARK_4S due to introduction
236 of BARCODE_MAILMARK_2D (old name still recognised, except in Tcl backend)
237 - CLI now expects floating point arguments to be in simple decimal point
238 notation (i.e. not scientific notation) with a maximum of 7 significant digits
239
240 Changes
241 -------
242 - bwipp_dump.ps: convert patch file to cat file as BWIPP now honours `dontdraw`
243 for composite symbologies
244 - DOTCODE, QRCODE, RMQR: return warning if ECI or Structured Append used in GS1
245 mode, ticket #271
246 - CLI: improve `getopt_long_only()` processing, printing own message if bad arg
247 and returning error if so rather than continuing to process
248 - manual: MSE typo -> MSI; adjust SVG scaling for PDF manual; pandoc 2.19.2
249 - manual/man page/GUI: Code 16k -> Code 16K
250 - PDF417/MICROPDF417: add optimized encoding, FAST_MODE for previous; formatting
251 changes
252 - common.c/h: add `cnt_digits()`; comments in include; minor fiddling
253 - API/CLI/Tcl/GUI: new output option BARCODE_BIND_TOP / `--bindtop` / "Bind Top"
254 - DPD: add top boundary (width 3X) by default, using new BARCODE_BIND_TOP;
255 "relabel" option; some compliance checks
256 - manual: fuller DPD doc; some spelling typos, formatting
257 - cmake: fixes for static build and install directories, props koprok
258 - cmake: remove zintconfig.h.in for now as incompatible with MSVC project builds
259 (will add back in future if go fully CMake)
260 - NO_PNG -> ZINT_NO_PNG and new API function `Zint_NoPng()` to determine if no
261 PNG support in libzint; replace use in GUI with backend_qt method `noPng()`
262 - API: add new zint_symbol `dpmm` field for output resolution (BMP/EMF/PCX/PNG/
263 TIF only, i.e. excluding EPS, GIF & SVG)
264 - Add support for specifying scale by X-dimension and resolution with new option
265 `--scalexdimdp` for CLI/Tcl & new API function `ZBarcode_Scale_From_XdimDp()`
266 (plus `ZBarcode_XdimDp_From_Scale()` and `ZBarcode_Default_Xdim()`) and new
267 GUI popup; manual: document
268 - BMP/EMF/PCX/PNG/TIF: use new `dpmm` resolution field (for EMF following
269 Inkscape)
270 - backend_qt: add `dpmm()`, `vectorWidth()`, `vectorHeight()`, `noPng()`,
271 `getVersion()`, `takesGS1AIData()`, & `XdimDp` stuff incl. new `QZintXdimDp`
272 struct for passing around scale vars & use in `getAsCLI()`; add comments
273 - Raise `scale` limit to 200 (from 100) to allow for large dpmm
274 - output: create directories & subdirectories as necessary for output path using
275 new function `out_fopen()` and use in BMP/EMF/EPS/GIF/PCX/PNG/SVG/TIF
276 - DPLEIT/DPIDENT: format HRT according to (incomplete) documentation, and set
277 default height to 72X (from 50X)
278 - CODE128B renamed to CODE128AB as can use subsets A and/or B
279 - MAILMARK: better error message if input < 14 characters
280 - GUI: add "Default" button for DAFT tracker ratio & enable/disable various
281 default buttons; use new `takesGS1AIData()` to enable/disable GS1-specific
282 checkboxes
283 - CLI: use new `validate_float()` to parse float options (7 significant digits
284 allowed only, no scientific notation)
285 - CLI: mirror: use -o directory if any (ticket #193)
286 - QRCODE/UPNQR: add FAST_MODE (try 4 not 8 masks automatically)
287 - GS1: add new AI 7011 (GSCN 22-163)
288 - Add new symbology BARCODE_MAILMARK_2D (Royal Mail 2D Mailmark), renaming
289 previous BARCODE_MAILMARK (Royal Mail 4-State Mailmark) to BARCODE_MAILMARK_4S
290 - Add new symbology BARCODE_UPU_S10
291 - PZN: allow check digit to be given; add space after hyphen in HRT; PZN7 option
292 - backend_tcl: update TEA
293 - DATAMATRIX/GRIDMATRIX/PDF417/QR/ULTRA: micro-optimize structapp ID parse
294 - library/CLI: fiddle with static asserts (make CHAR_BIT sensitive, supposedly)
295 - win32/README: update building libpng (assembly removed)
296 - README.linux: document incompatibility of Qt6 >= 6.3
297 - manual: expand Barcode Studio waffle
298 - test suite: change range separator to hyphen and allow multiple excludes
299
300 Bugs
301 ----
302 - test suite: fix `test_library` test to allow for running from root;
303 fix `test_args` test to allow for re-running (remove junk) (tickets #268,
304 #269)
305 - common.h: define ZINT_IS_C89 as __STDC_VERSION__ not defined by MSVC, and use
306 when checking whether to include <alloca.h> (MR #152)
307 - common.c: ensure `stripf()` not inlined to prevent optimizer undoing effect
308 (ticket #269)
309 - GUI: fix "Border Width" ampersand shortcut
310 - CODE128: allow for extended latching (double FNC4) spanning intermediate
311 CodeC sequence by setting `f_state` only if in CodeA/B & checking before
312 adding extended mode switch (cf OkapiBarcode commit [9ce6dcc], props Daniel
313 Gredler)
314 - DATAMATRIX: in FAST_MODE re-process any buffered X12 characters when mode
315 changes from X12 (cf OkapiBarcode commit [fb7981e], props Daniel Gredler)
316 - CODABLOCKF: allow for FNC4 when estimating no. of rows required
317 - CODE16K: make sure row calculation accurate by dispensing with glyph estimate
318 & using actual codeword count
319 - CODE16K: ensure initial mode selection allows for extended characters
320 - vector.c: add `z_alloca()` cast for `first_row_rects` (ticket #272)
321 - MSVC project files: remove incorrect "CompileAsCpp" setting from libzint
322 project files (ticket #272)
323 - bwipp_dump.ps: fix 2/4-track processing; update to latest BWIPP
324 - PDF417/MICROPDF417: use latch not ps shift for padding when spanning
325 Text segments to avoid affecting 1st char of 2nd segment
326 - GUI: only skip encoded/errored signal processing if active modal ExportDialog
327 (wasn't clearing/setting error text bar correctly)
328 - CODABAR: fix minimum height calc
329 - EMF: fix indexing of handles (zero-based not 1-based)
330 - GUI: fix symbology zap (previous technique of clearing and re-loading settings
331 without doing a sync no longer works); fix UPCEAN guard descent enable
332
333
334 Version 2.11.1 (2022-08-22)
335 ===========================
336
337 **Incompatible changes**
338 ------------------------
339 - None
340
341 Changes
342 -------
343 - GUI: sequence export dialog: add Postfix field for filename (#252)
344 - eci.c: replace libiconv-adapted code with own implementations so
345 as to fully comply with libzint's BSD license
346 - GUI: CODE39/EXCODE39: show/hide HIBC check digit option
347 - RMQR: update to ISO/IEC 23941:2022 - R13x77 numeric cclens change 8 -> 7
348 - QRCODE: use stricter interpretation of ZINT_FULL_MULTIBYTE, excluding
349 certain trailing bytes
350 - GUI: foreground/background colours -> text boxes and icon buttons, add swap
351 button, independently movable picker (NULL parent), preview colour changes,
352 preview Data Window changes, add clear data (del) buttons, add zap button
353 and Factory Reset menu option, various other fixes
354 - GUI: make acceptable for macOS; add iconset for macOS, install
355 - manual: update macOS Homebrew install info; add README.macos
356 - GUI: export window: add no. of sequences to results label
357 - frontend: batch: for @ use + instead of * on Windows as * not allowed
358 in filenames
359 - Add new symbology BC412 (SEMI T1-95)
360 - backend: use alloca() (z_alloca()) for both Unix and Windows
361 - GS1: new AI 4309 with latlong checker, new currency code 925
362 - GUI: add automatic info feedback to "Automatic" combo item of size/row/height
363 comboboxes
364 - PDF417: encodation now simpler and closer to ISO/IEC 15438:2015 Annex N
365 algorithm, props Jeff Skaistis
366 - Add new symbology CEPNet
367
368 Bugs
369 ----
370 - frontend/test_args.c: don't use WIFEXITED(), WEXITSTATUS() on Windows
371 - libzint: fix some confusing error messages introduced by segment stuff
372 - GUI: remove unnecessary tabMain min size (better layout rendering on
373 Windows/Fedora)
374 - library: check symbol->primary for escape sequences also
375 - GUI: error message GS1_MODE -> GS1 mode
376 - GUI: sequence window: fix initial clear button status
377 - GUI: NO_PNG: allow for Qt not parsing #if's in slots
378 - frontend: batch mode: fix default "~~~~~" output (github issue #65)
379 - vector: ensure separators don't overlap with other rectangles so that
380 they render correctly when have RGBA alpha channel
381 - GUI: update_preview() after Data Dialog return to ensure preview in sync
382 - PDF417: fix invalid numeric -> byte shift transitions, MR #151, props Jeff
383 Skaistis
384 - PDF417: fix extraneous text latch after a byte shift, MR #151, props Jeff
385 Skaistis
386
387
388 Version 2.11.0 (2022-05-24)
389 ===========================
390
391 **Incompatible changes**
392 ------------------------
393 - Add width to struct zint_vector_circle
394 NOTE: backward incompatible drawing of MaxiCode finder (bullseye)
395 - Check that scale/height/whitespace/border are reasonable values
396 NOTE: will return error if values outside ranges
397 - raster.c: Bug fix for heap-buffer-overflow (#204 ARM-Cortex)
398 NOTE: may cause single-pixel changes to height depending on height/scale used
399 - JAPANPOST: return error if input data would be truncated
400 NOTE: previously was silently truncated
401 - PDF417: return warning if specified cols increased
402 NOTE: previously no warning was returned
403 - Matrix symbols: horizontal boundary bars appear outside any vertical
404 whitespace
405 NOTE: previously appeared inside vertical whitespace
406 - ECI 29 now GB 2312 only; GB 18030 is new ECI 32
407 NOTE: previously ECI 29 was GB 18030 for HANXIN, GB 2312 otherwise
408 - HANXIN, QRCODE/RMQR now warn when convert to GB 18030, Shift JIS resp.
409 and no ECI given
410 - GRIDMATRIX no longer attempts Latin-1 conversion when no ECI given
411 - CLI now returns ZINT_ERROR_INVALID_OPTION (8) on its failed option checks
412 and ZINT_WARN_INVALID_OPTION (2) on ignored options
413 NOTE: previously returned 1 and 0 respectively
414
415 Changes
416 -------
417 - RMQR: add ECI support
418 - CODE93: don't display check characters in HRT (as per standard Figure B1)
419 unless option_2 = 1 or vers=1
420 - GUI: separate out MAXICODE Structured Carrier Message fields
421 - library.c: Check that scale/height/whitespace/border are reasonable values:
422 scale (0.01-100), height (0-2000), whitespace_width/height (0-100),
423 border_width (0-100)
424 - CLI: allow both e.g. '-height' and '--height' (getopt_long_only())
425 - UPC/EAN: add guard_descent
426 - Add output_options BARCODE_QUIET_ZONES and BARCODE_NO_QUIET_ZONES
427 - Allow dummy AI "[]" if GS1NOCHECK_MODE and has data (#204)
428 - raster.c: improve non-half-integer interpolation performance
429 - Add Structured Append support for AZTEC, CODEONE, DATAMATRIX, DOTCODE,
430 GRIDMATRIX, MAXICODE, MICROPDF417, PDF417, QRCODE, ULTRA
431 - ULTRA: add revision 2 support (based on BWIPP 2021-09-28 update)
432 - Add compliant height
433 - GUI: add Menu, copy to clipboard EMF/GIF/PNG/TIF, errtxt bar and status bar,
434 icons (feathericons)
435 - CODABAR: add show check digit option
436 - DAFT: max chars 50 -> 100
437 - CMake: separate no-optimize from ZINT_DEBUG into new ZINT_NOOPT option
438 - PDF417: add specify rows option
439 - Add HEIGHTPERROW_MODE input mode flag
440 - DBAR_EXPSTK: add max rows option
441 - CODE16K/CODE49: add min rows option
442 - GUI: add CLI equivalent dialog (#163)
443 - Add ZBarcode_BarcodeName()
444 - GUI: data dialog: convert Line Feeds if escaping on input, escape on output
445 - DATAMATRIX: new algorithm for (near-)optimal encoding, props Alex Geller
446 - CLI/GUI/Tcl: add --fast option to select faster but less optimal DATAMATRIX
447 algorithm (previous default)
448 - Matrix symbols: change horizontal boundary bars to appear outside any
449 vertical whitespace, as they're decorative rather than functional (#247)
450 - FIM: Add support for FIM E
451 - Updated ECIs to AIM ITS/04-023:2022 (ECI Part 3: Register)
452 - HANXIN: removed alternating filler in function information
453 - GRIDMATRIX/HANXIN/QRCODE/RMQR: warn if auto-conversion (i.e. no ECI given)
454 occurs to resp. specialized char sets (GB 2312/GB 18030/Shift JIS)
455 - Add multiple segments support for AZTEC, CODEONE, DATAMATRIX, DOTCODE,
456 GRIDMATRIX, HANXIN, MAXICODE, MICROPDF417, PDF417, QRCODE, RMQR, ULTRA
457 - MICROQR: check versions M1 and M2 for allowed characters so as to give better
458 error messages
459 - UPNQR: allow mask to be manually specified
460 - GUI: use non-native QColorDialog on Unix also; no noEXE for CLI equivalent;
461 add shortcuts for copy-to-clipboard and CLI equivalent
462 - CLI: new --version option to print Zint version
463 - manual: one true source now manual.pmd from which manual.txt is generated
464 - CLI: man page moved from frontend/zint.1.gz to docs/zint.1.gz, now
465 generated from docs/zint.1.pmd
466 - add README.linux to root dir
467 - CLI: return ZINT_ERROR_INVALID_OPTION instead of 1 on bad option and
468 ZINT_WARN_INVALID_OPTION instead of 0 on ignored option
469
470 Bugs
471 ----
472 - GUI/CLI: fix dev version test
473 - library.c: error_tag(): check error_number < ZINT_ERROR on WARN_FAIL_ALL
474 - vector.c: enforce minimum scale >= 0.1 and allow in GUI
475 - Suppress some pedantic warnings, props codemonkey82 (#204)
476 - gs1.c: Allow 0-length AI data if GS1NOCHECK_MODE, props codemonkey82 (#204)
477 - raster.c: avoid distributive multiplication with floats to lessen chances of
478 platform variation (#204 ARM-Cortex crash)
479 - common/emf/output/raster/vector.c: use new stripf() func to workaround
480 float variations
481 - raster.c: Don't add height offset for text if scale < 1.0 (as won't print)
482 - ISBNX: fix not returning error number (warning) correctly
483 - *.rc: fix VER_FILEVERSION_STR format (, -> .), props Jeff Skaistis
484 - PDF417: fix cols/rows calculation to require multiple <= 928 codewords
485 - raster.c: fix possible blank rows appearing in CODE16K, CODE49, PHARMA_TWO,
486 PDF417 & CODABLOCKF due to height/scale rounding, props codemonkey82 (#204)
487 - library.c: check for stacking symbols >= 200
488 - DATAMATRIX: fix mis-encoding of non-encodables in X12 and EDIFACT modes,
489 props Alex Geller
490 - DATAMATRIX: fix mis-encoding of FNC1/GS in EDIFACT in GS1 mode
491 - Allow for dot overspill in height of vertical box sides (dotty mode)
492 - HANXIN: fix gate-posts on codeword limits
493 - GUI: cater for HiDPI display, props bitaround (#257)
494 - RMQR: fix ECI encoding (wrong bit length for indicator)
495 - CLI/tcl: fix version check (need <= 999 for DAFT permille)
496 - UPNQR: fix required binary mode using mode_preset
497 - GRIDMATRIX: default char set is GB 2312 only, not Latin-1 with GB 2312 alt
498 - HANXIN/QRCODE: use Hanzi/Kanji modes when compatible ECIs given
499
500
501 Version 2.10.0 2021-08-14
502 =========================
503
504 **Incompatible changes**
505 ------------------------
506 - Add halign (horizontal align) to struct zint_vector_string
507 NOTE: backward incompatible text drawing for UPC/EAN
508 - Change height and row_height array to floats
509 NOTE: may cause changes in heights
510
511 Changes
512 -------
513 - Move project history/version from manual.txt and backend/README into this file
514 - Command line switches -d or -i for code data may now be at any position.
515 - Add rotation for vector formats
516 - Change double to float for performance in many internal places
517 - Ticket 197: optimize raster scaling for 0.5 substeps;
518 ignore raster scaling < 0.5 as pixels lost.
519 - Ticket 197: add output option to bypass time-intensive buffer_plot()
520 (OUT_BUFFER_INTERMEDIATE)
521 - Reduce BMP size by using 1 bit per pixel (except Ultracode)
522 - New warn_level field, WARN_FAIL_ALL
523 - Add GS1NOCHECK_MODE to input_mode (note was ZPL compatibility mode
524 WARN_ZPL_COMPAT to warn_level)
525 - Remove version info from zint.h and put in zintconfig.h via zintconfig.h.in
526 - Add ZBarcode_Cap()
527 - Add GUI symbology filter, separate settings for each symbology
528 - Require cmake 3.5, use PNG::PNG and add Qt6 build option
529 - Make library fully stack-based so reentrant apart from file operations
530 - Performance improvements (large data) for AZTEC/HANXIN/GRIDMATRIX/PDF417/QR
531 - Option scmvv for MaxiCode #212; postcode needn't be space-filled
532 - eci: Add support for all ECIs (Big5, Korean, UCS-2BE)
533 - CLI: Handle UTF-8 args on Windows; -b <barcode name>
534 - DATAMATRIX: make EOD encodation strictly ISO 16022 compliant
535 - png.c: Use palette for file size savings
536 - tif.c: Use palette/bilevel/LZW to reduce file size, alpha/CMYK support
537 - Option gs1parens (GS1PARENS_MODE)
538 - MAXICODE: Rejig raster output to more closely match ISO 16023:2000
539 - C25STANDARD/C25INTER/C25IATA/C25LOGIC/C25IND: add check digit option (#216)
540 - Use zint-64.svg for smoother icons, props frhun
541 - Add whitespace_height to zint_symbol (vertical whitespace)
542 - AZTEC: optimize populate_map (good for small data) - avoids MSVC bug also
543 - Various workarounds for other MSVC bugs
544 - CMake: Windows compatible, backend/tests & frontend/tests now subprojects
545 using new zint_add_test.cmake file, static build, new ZINT_USE_PNG and
546 ZINT_USE_QT options, getopt moved to subproject and getopt detection,
547 sanitizer flag detection, and many other improvements, props Alonso Schaich
548 - PLESSEY: add options NCR weighted mod-10, hide check digit(s) in HRT
549 - Fuller error messages; more comments zint.h
550 - CMake: simplication and modernization, Qt5/6 version, props Null Void (atom)
551 - POSTNET/PLANET: allow up to 38 chars (ZINT_WARN_NONCOMPLIANT) (see [d7ac9c])
552 - RMQR: update to new draft ISO/IEC JTC1/SC31N000 (Draft 2019-6-24)
553 - ULTRA: update max size and min cols based on BWIPP 2021-07-14 update
554
555 Bugs
556 ----
557 - Code16k selects GS1 mode by default in GUI
558 - Ultracode: use white pixels instead background for white modules.
559 - EMF: fix Ultracode colours.
560 - Ultracode: fix count of codewords when using reader init mode
561 - Databar Limited: add 5 right guard spaces (ISO/IEC 24723:2010 6.2 (e))
562 - Data Matrix: avoid unnecessary latch in X12 mode at end of data, #208
563 - Data Matrix: fix eod shift -> 0 pad
564 - POSTNET/PLANET: remove extra 1 module space
565 - Aztec: fix bit-stuffing (again!) and Aztec Rune: fix for data >= 128
566 - EAN composite: allow for check digit + buffer overflow for too long add-on
567 - Han Xin fix 0xFFE terminator
568 - GUI: Use UTF-8 for QSettings (non-ASCII was getting garbled on restore)
569 - DOTCODE: Fix best_mask -> high_score prime test
570 - CODEONE: various fixes, ECI support
571 - #218 Prevent buffer overflow in ean_leading_zeroes by checking max lengths
572 - MAXICODE: fix mask typos for ECI 3/4 bytes
573 - Fix UPCEAN small font ignored/disabled (introduced [1adba1])
574 - get_best_eci: check UTF-8 before returning 26
575 - MAXICODE: fix shifting from sets C/D/E to A/B (only latch available)
576 - EAN14, NVE18: fix checksum calc for zero-filled input
577 - png: ULTRA: allow for fgcolour if bind/box (MR #111)
578 - DOTCODE: allow for max 200 cols in CLI, GUI, Tcl
579 - CODEONE/DATAMATRIX/MAILMARK/PLESSEY: fix some 32-bit/portability bugs
580 - CODABAR: fix CALCIUM define address use, props Alonso Schaich
581 - DATAMATRIX/CODEONE: Use LCM in look ahead tests to avoid floats (#228)
582 - raster/output: use new isfintf() to test floats integral (CodeQL)
583 - ZBarcode_Encode: don't reinit symbol->outfile, props Alonso Schaich
584 - CODEONE: is_last_single_ascii() out-of-bounds, #232 CI-Fuzz, props Jan Schrewe
585 - library: compat symbology 39 fix; ISBN: "X" check
586 - backend/CMakeLists.txt: output dir for zintconfig.h, props Andre Maute (#238)
587 - UPCE/UPCE_CC: allow check digit (same as UPCA/UPCA_CC) so selecting composite
588 doesn't give error
589 - bmp/emf/ps.c: allow for foreground colour in ULTRA
590 - bmp/gif/pcx.c: allow for BARCODE_STDOUT (fflush/fclose)
591 - ps.c: fix buffer overflow on colour_to_pscolor() CMYK
592 - composite: fix buffer overflow for large linear and small composite
593 - composite: clear errtxt when bumping from CC-A -> CC-B -> CC-C
594 - CODABLOCKF: prevent cols > 62; fix pTestList buffer overflow
595 - RMQR: allow for righthand vertical timing pattern in populate_grid()
596
597
598 Version 2.9.1 2020-08-04
599 ========================
600
601 Changes
602 -------
603 - Ticket 122: Implement transparency support
604 - Ticket 129: -nobackground option added
605 - -fg and -bg may contain an alpha channel
606 - structure zint_symbol may now contain an alpha channel as output
607 - Added DPD Symbology
608 - Add support for Unicode escape characters
609
610 Bugs
611 ----
612 - EMF text colour does not change
613 - Fix QPainterPath dependency for Visual Studio
614
615
616 Version 2.9.0 2020-07-31
617 ========================
618
619 Changes
620 -------
621 - Dotcode: adapt to AIM DOC Revision 4
622 - New option "-separator=" for zint to specify the separator height of stacked
623 symbologies.
624 - make internal routines invisible by a static function definition.
625 - CODE11: make adding check digits an option, selectable to 2 (default as now),
626 1 or none
627 - LOGMARS restrict max length to 30 per MIL-STD-1189 Rev. B; make check digit
628 optional
629 - CODE39/EXCODE39: max length now 85
630 - VIN code extended to international licence plates
631 - CODABAR: 3 data characters minimum (plus start/stop), check digit option added
632 - Channel Code: performance improvement
633 - QT GUI:
634 - GRIDMATRIX/HX/MQR/QRCODE/RMQR: allow separate selection of size/ECC
635 - add DAFT and VIN Symbologies
636 - Separarator option for DATAMATRIX
637 - Ticket 162: parse escape sequences
638 - gui element reassigments
639 - UPC/EAN/ITF-14 Composite: Ticket 72: new option --addongap (default:9) to set
640 the gap between code and composite.
641 - TCL Backend: The following symbology names were renamed:
642 - Matrix2of5 -> Standard2of5
643 - PDF417Trunc -> PDF417Compact
644 - RSS14Stacked -> GS1DataBarStacked
645 - RSS14Stacked -> GS1DataBarStacked
646 - RSS14StackedOmni -> GS1DataBarSstackedOmni
647 - RSS14ExpandedStacked -> GS1DataBarExpandedStacked
648 - OneCode -> USPSIntelligentMail
649 - EAN128-CC -> GS1-128-CC
650 - RSS14-CC -> GS1DataBarOmni-CC
651 - RSSLimited-CC -> GS1DataBarLimited-CC
652 - RSSExpandedStacked-CC -> GS1DataBarExpanded-CC
653 - RSSEXPanded-CC -> GS1DataBarExpanded-CC
654 - RSS14Stacked-CC -> GS1DataBarStacked-CC
655 - RSS14Omni-CC -> GS1DataBarStackedOmni-CC
656 - RSSExpandedStacked-CC -> GS1DataBarExpandedStacked-CC
657 ** Potential incompatibility **
658 - API Symbol names changed but old names preserved in zint.h
659 - BARCODE_C25MATRIX -> BARCODE_C25STANDARD
660 - BARCODE_EAB128_CC -> BARCODE_GS1_128
661 - BARCODE_RSS14 -> BARCODE_DBAR_OMN
662 - BARCODE_RSS_LTD -> BARCODE_DBAR_LTD
663 - BARCODE_RSS_EXP -> BARCODE_DBAR_EXP
664 - BARCODE_PDF417TRUNC -> BARCODE_PDF417COMP
665 - BARCODE_RSS14STACK -> BARCODE_DBAR_STK
666 - BARCODE_RSS14STACK_OMNI -> BARCODE_DBAR_OMNSTK
667 - BARCODE_RSS_EXPSTACK -> BARCODE_DBAR_EXPSTK
668 - BARCODE_ONECODE -> BARCODE_USPS_IMAIL
669 - BARCODE_EAN128_CC -> BARCODE_GS1_128_CC
670 - BARCODE_RSS14_CC -> BARCODE_DBAR_OMN_CC
671 - BARCODE_RSS_LTD_CC -> BARCODE_DBAR_LTD_CC
672 - BARCODE_RSS_EXP_CC -> BARCODE_DBAR_EXP_CC
673 - BARCODE_RSS14STACK_CC -> BARCODE_DBAR_STK_CC
674 - BARCODE_RSS_EXPSTACK_CC -> BARCODE_DBAR_EXPSTK_CC
675
676 Bugs
677 ----
678 - Ticket 185 EMF export corrections
679 - fine scaling by the use of float arithmetic
680 - full header (extension1&2) with correct size field
681 - Ticket 190: Aztec buffer overrun fixed
682 - Ticket 191 suppress clang-tidy warnings: raster.c, composite.c, qr.c
683 - Ultracode internal encoding bugs, ECI 899
684 - GS1 data: exclude DEL character
685 - Ticket 192: missing malloc.h include for Windows compilers.
686 - Correct GS1 AI 253 & 255 length from 14 to 13
687 - Codablock F changes:
688 - FNC4 may not be split over rows.
689 - Use Code128 routine for one line Codablock FIM
690 - Correct column range to 9 ... 62
691 - allow new options: row count and column count, border_width and HIBC mode
692 - pad correctly empty and last row
693 - separator length correction
694 - Code128 changes:
695 - Correctly encode CodeA charset with control-character only data
696 - Improve coding of Extended ASCII (FNC4)
697 - Checksum calculation overflow protection
698 - EAN128 may reduce length
699 - Check for incomplete escape sequences on data specification: "\" without
700 following character.
701 - Code16K fixes: remove extended ASCII latch, pad character
702 - Restructuring to have common code centralized:
703 - Code128 routines for Codablock&Code16K
704 - output.c has common routines from raster.c and symbologies.
705 - HIBC_39: restrict max length to 68 otherwise to avoid overrun
706 - Code One: protect agains overrun
707 - Telepen: allow DEL
708 - GS1 Databar/ GS1-128 Composite:
709 - Separator bar corrections
710 - Ticket 200: spurious additional row
711 - Correct names in GUI
712 - Compact PDF417:
713 - Add missing stop pattern.
714 - Rename in GUI: "PDF417 Truncated" to "Compact PDF417".
715 - PDF417: Optimize text compaction mode switch.
716 - Human readable representation: Code128, Code39, Code93 special characters
717 are shown by a blank.
718 - ITF14: Ticket 201: allow bind option
719
720
721 Version 2.8.0 2020-04-10
722 ========================
723
724 Changes
725 -------
726 (New) Tests for auspost, codablock, composite, dotcode, general, telepen,
727 upcean, all output formats
728 - QR, Han Xin, Grid Matrix: the multi byte compaction schemes (ex: Kanji)
729 are used by some decoders as codepage information (Ex: GB2312) and output
730 may be translated to UTF-8. This may destroy the data in a not controlable
731 manner.
732 In consequence, multibyte compaction schemes are disabled by default.
733 The new option --fullmultibyte (option_3 = ZINT_FULL_MULTIBYTE) enables this
734 optimisation.
735 - Add new symbology "Ultra Code" with the ability to output colour codes.
736
737 Bugs
738 ----
739 - Ticket 181 penetration test found many bugs:
740 - Auspost: null bytes in content caused segfault
741 - Codablock: data 0x1a..0x1f caused segfault
742 - Dotcode: overrun in binary mode, overrun in codeword_array buffer
743 Correct encoding of HT/FS/GS/RS when shifting to code set B
744 - empty or unreadable input file
745 - telepen: buffer overflow
746 - EANUCC: buffer overflow on multiple + (multiple extension bars)
747 - Maxicode: index overrun on numeric compaction
748 - CodeOne: Simple i indexing not sp + i in C1_ASCII numeric latch loop.
749 - Aztec: free memory
750 - Ticket 183: Databar stacked separator correction
751 - Ticket 182: Output bitmap type was char, where some targets assigned 0
752 if pixel colour >127 (e.g. negative). API change to use unsigned char.
753 - HanXin: wrong codepage, gb2312 instead gb18030.
754 - PDF417: corrected alloced sizes to max characters
755 - Ticket 189: FNC1 encodation fixed (FLG(0) missing after FLG(n))
756 - PCX format: added missing bytes_per_line if bitmap width is odd.
757
758
759 Version 2.7.1 2020-02-01
760 ========================
761
762 Changes
763 -------
764 - QR encoding optimized to get smaller code matrix results
765 - PDF417: remove obsolete codeword number option in qzint.
766 Option removed in qtzint.
767 - Removed annex B (3 digit country codes) and annex C (GS1 General
768 Specification) from the manual. This material may be found elsewhere.
769 - MAC homebrew remark added to the documentation
770 - Correct cmake file to match BSD-3-clause licence
771
772 Bugs
773 ----
774 - Correct uninitialized warning in gridmatrix.call
775 - do not export internal functions
776 - raster painting of UPC-A bound check
777 - pdf417 documentation corrected: change flag -security to -secure
778 - Dot Code encoding ECI number corrected
779 - Corrected postscript plotting error
780 - Datamatrix: corrected possible buffer overrun in 3 characters to 2 byte
781 encodings.
782 - In 2.7.0 removed interface "ZBarcode_Render" still declared
783 - vc6 make was missing (trivial) resource.h
784
785
786 Version 2.7.0 2019-12-05
787 ========================
788
789 Changes
790 -------
791 - Automatic height option added to qzint
792 - DotCode in line with new specification
793 - New GS1 AIs 7240, 235, 417, 7040, 8026, updated checks for 7007, 8008
794 - New Symbology rMQR
795 - QR and Qridmatrix optimisation for GB2312
796 - removed depreciated interface for gLabels program. Please use current
797 interface.
798
799 Fixed bugs
800 ----------
801 - Many improvements in composite codes
802 - SVG output corrected for messages containing "<" and "&".
803 - GS1-128 and RSS may only be used with GS1 contents
804 - Han Xin chinese character handling
805
806
807 Version 2.6.7 2019-10-07
808 ========================
809
810 Changes
811 -------
812 Ticket 127: Allow to code ECI 3 if explicitly given for debug purposes.
813 **Incompatible change**
814 "--eci 3" now leads to included ECI information.
815 "--eci 0" may now be used to not include any ECI information.
816 The default of the parameter changed from 3 to 0.
817
818 Fixed bugs
819 ----------
820 Ticket 146, 165: fix wrong encoding of RSS composite codes
821
822
823 Version 2.6.6 2019-09-18
824 ========================
825
826 Fixed bugs
827 ----------
828 Ticket 161: PDF row size may be set
829 Ticket 155: PDF numeric compaction
830 Ticket 164: crash due to call of svg_plot withnull vector
831 Ticket 119: Crash on bullseye raster drawing
832 qtzint: Micro-QR version option choice corrected (+1 missing).
833 Datamatrix: code corruption when ECI was encoded and base256 encoding was
834 automatically chosen.
835
836
837 Version 2.6.5 2019-09-02
838 ========================
839
840 Fixed bugs
841 ----------
842 backend/main.c was missing
843 Maxicode bullseye rastering for scale = 0.5
844 Crash in utf to eci.
845 eci ISO 8859-16 table missing data line
846 upce check for 7 digit input (causes crash) and BARCODE_UPCE_CHK -> BARCODE_UPCE
847 mapping removed
848 US imail check for invalid barcode identifier and allow 0/5/9/11 length zip
849 maxicode code set correction
850 cmake flags for debugging and sanitize options
851 unit tests for the changes, with a simple test suite based on qrencode/tests
852
853
854 Version 2.6.4 2019-08-30
855 ========================
856 Fixed bugs: EMF output, maxicode plot/content
857 Datamatrix DMRE updated to the ISO/IEC29158 version. This is incompatible in the
858 way that the old -vers numbers for DMRE are re-assigned.
859 The separator of GS1-datamatrix may be switched from FNC1 to GS.
860 GS1 field length check AI 8009 and 7230 to 7239 currected.
861
862
863 Version 2.6.3 2018-02-15
864 ========================
865 New symbology Royal Mail 4-state Mailmark. Added North America VIN verification.
866 Bugfixes for TIF and EMF output and escape character handling.
867
868
869 Version 2.6.2 2017-10-22
870 ========================
871 Further bugfixes in Aztec and DotCode. Expand escape sequence support
872 to API and GUI. Handle UTF BOM. Bugfix raster images of Maxicode.
873
874
875 Version 2.6.1 2017-08-27
876 ========================
877 Library bugfixes: EDIFACT unlatch in Data Matrix, Add UPNQR, Improved Aztec
878 data compression, Detect Code 128 data too long, Make error codes consistent.
879 GUI improvements: Additional clipboard options, remove border width bug,
880 remove changing background colour bug, remember more settings and make GUI
881 more consistent with user expectations. All windows now resizable and more
882 information given when batch processing.
883
884
885 Version 2.6.0 2017-05-12
886 ========================
887 Update front end to Qt5. Output to EMF and TIF. Copy to clipboard. Update
888 to latest draft of DMRE. Usual bugfixes.
889
890
891 Version 2.5.1 2017-04-03
892 ========================
893 Numerous bugfixes, especially with Data Matrix thanks to extensive testing
894 by brunt@SF
895
896
897 Version 2.5 2016-11-13
898 ======================
899 Support for DotCode and Han Xin code. ECI code processing. Output to BMP, GIF
900 and PCX. Added bold and small text options. Reintroduction of Codablock-F.
901 Many minor fixes and improvements.
902
903
904 Version 2.4.3 2011-05-16
905 ========================
906 Includes minor bugfixes
907
908
909 Version 2.4.1 2011-04-19 & 2.4.2 2011-05-04
910 ===========================================
911 A whole host of bugfixes including correction of ECC routines
912 for Code-1 and addition of batch processing at the command line.
913
914
915 Version 2.4 2010-09-13
916 ======================
917 Built extensions to the API for integrating with glabels with thanks to
918 Sam Lown and Jim Evins. Added code optimisation and input from stdin thanks to
919 Ismael Luceno. Reinstated escape character input. Simplification of Barcode
920 Studio.
921
922
923 Version 2.3.2 2010-05-29
924 ========================
925 Corrected many bugs in GS1 DataBar Extended thanks to the careful
926 study of the code by Pablo Orduña at the PIRAmIDE project. Similarly corrected
927 some bugs in Maxicode thanks to Monica Swanson at Source Technologies. Also
928 minor bugfixes for ISBN and Aztec Code, and added some small features like a
929 --square option in the CLI.
930
931
932 Version 2.3.1 2010-04-07
933 ========================
934 Removed Codablock-F. Redesigned scale function so that human readable
935 text and Maxicode symbols can be scaled consistently. Corrected encoding bugs
936 with Code 128/Code 16k and Data Matrix ECC200 ECC 050. Added --notext option to
937 CLI.
938
939
940 Version 2.3 2009-11-23
941 ======================
942 Fixed problems with Micro QR Code and rebuilt QR Code support removing
943 dependence on libqrencode. Improved Kanji character support for QR Code and
944 Micro QR Code which now auto-detects and automatically converts to Shift-JIS.
945 Added Grid Matrix symbology with Kanji character support and automatic
946 conversion to GB 2312. Removed no_qr compile option. Advanced Barcode Studio
947 version number to match library version number.
948
949
950 Version 2.2.2 2009-09-29
951 ========================
952 A beta release previewing the new API structure. Better NULL character
953 support with "nullchar" value removed. Added loading from file and sequence
954 dialogs in Barcode Studio.
955
956
957 Version 2.2.1 2009-08-06
958 ========================
959 Data encoding bugfixes for Aztec Code, Data Matrix ECC200, USPS One
960 Code and PDF417. Symbol plotting bugfixes for MicroPDF417 and 2D components of
961 composite symbols. Text formatting bugfix for Qt renderer and a couple of
962 compiler fixes for MSVC PNG image output.
963
964
965 Version 2.2 2009-07-18
966 ======================
967 Added Code One and GS1 support in Code 49. Changed GUI binary name to
968 zint-qt and brought GUI up to version 1.0. Made some minor bugfixes to Code 39,
969 ITF-14, Aztec Code, Code 128 and Code 16K. Added 'rest' button to GUI. Included
970 .spec file from Radist.
971
972
973 Version 2.1.4 2009-06-19
974 ========================
975 Many stability improvements including removal of buffer overruns in
976 Code 39, LOGMARS, PZN, Aztec Code and Composite CC-A. Addition of files for
977 compiling on MS Windows platform - tested successfully on XP and Vista.
978
979
980 Version 2.1.3 2009-05-19
981 ========================
982 Many improvements to the QZint GUI which is now renamed "Zint Barcode
983 Studio 0.2". Added Japanese Postal Barcode, Code 49 and Channel Code and made
984 corrections to Data Matrix ECC200 (Binary mode data compression terminates too
985 soon), Aztec Code (Bug when automatically resizing after removing "all 0" and
986 "all 1" codewords) and Code 128 (Extended ASCII characters become corrupt).
987
988
989 Version 2.1.2 2009-03-01
990 ========================
991 Added SVG output option. Improved Japanese character support including
992 Unicode > Shift-JIS capability. Bugfixes for Data Matrix ECC200 (missing
993 characters at end of string) and Codablock-F (K1/K2 check digit and row
994 indicators above row 6).
995
996
997 Version 2.1.1 2009-02-10
998 ========================
999 Minor Data Matrix ECC200 bugfix and added HIBC options.
1000
1001
1002 Version 2.1 2009-01-31
1003 ======================
1004 Reinstated Korea Post barcodes, harmonised bind and box options, moved
1005 Unicode handling into backend and added input_mode option, added size options
1006 to Data Matrix ECC200, added NULL character handling for Codablock-F, Code 128,
1007 Code 16k, Extended Code 39, Code 93, Telepen, Maxicode, Data Matrix ECC200 ECC
1008 200, PDF417 and MicroPDF417. Added GS1 support for Code 16k, Codablock-F and
1009 Aztec Code. Added scale and direct to stdout options. Rebult Data Matrix ECC200
1010 ECC 200 encoding algorithms to support NULL encoding and GS1 data encoding.
1011
1012
1013 Version 2.0 2008-11-18
1014 ======================
1015 Made corrections to Aztec Code and tested output with bcTester. Added
1016 Aztec Runes, Micro QR Code and Data Matrix ECC200 ECC 000-140. Updated e-mail
1017 information.
1018
1019
1020 Version 2.0 beta r2 2008-10-19
1021 ==============================
1022 Many corrections and bugfixes. (Code 11, Code 128, EAN-128,
1023 Aztec Code, Codablock-F, Code 16k, POSTNET, PLANET, NVE-18, PZN, Data Matrix
1024 ECC200, Maxicode and QR Code)
1025
1026
1027 Version 2.0 beta 2008-09-29
1028 ===========================
1029 Added support for Aztec Code, Codablock-F, Code 32, EAN-14 and DAFT
1030 Code. Rearranged symbology numbers to match Tbarcode v8. Corrected a never
1031 ending loop bug in EAN-128.
1032
1033
1034 Version 1.6.2 2008-07-28
1035 ========================
1036 Added KIX Code support and PNG image rotation. Corrected a bug
1037 affecting extended ASCII support in Code 128 and Code 16k.
1038
1039
1040 Version 1.6.1 2008-07-08
1041 ========================
1042 Major restructuring of PNG generating code: Now draws UPCA and EAN
1043 symbols properly and puts human readable text into the image. Also corrected
1044 some nasty 'never ending loop' bugs in Code 128 and check digit bugs in PostNet
1045 and Planet.
1046
1047
1048 Version 1.6 2008-04-22
1049 ======================
1050 Data Matrix ECC200, Maxicode and Australia Post now use common
1051 Reed-Solomon functions – this also fixes a bug in Maxicode error correction and
1052 replaces the last of the Lien code. Added PNG output for Maxicode symbols.
1053 Removed some useless code. Updated QR support for libqrencode v2.0.0.
1054
1055
1056 Version 1.5.5 2008-03-09
1057 ========================
1058 Added composite symbology support. Corrected errors with GS1-128 and
1059 PDF417/MicroPDF417 byte processing. Transferred licence to GPL version 3.
1060
1061
1062 Version 1.5.4 2007-11-26
1063 ========================
1064 Added GS1 DataBar (Reduced Space Symbology) support.
1065
1066
1067 Version 1.5.3 2007-10-10
1068 ========================
1069 Made huge corrections to Maxicode support by removing and re-writing
1070 much of John's code. Maxicode now supports extended ASCII and modes 4, 5 and 6.
1071
1072
1073 Version 1.5.2 2007-09-26
1074 ========================
1075 Added extended ASCII support to Code 16k. Corrected Code 128 error.
1076 Added Maxicode support by integrating code by John Lien.
1077
1078
1079 Version 1.5.1 2007-09-03
1080 ========================
1081 Added formatting code to EPS output of EAN and UPC symbols according
1082 to EN 797:1996. Checked against and, where appropriate, altered or corrected to
1083 comply with ISO 16388 and ISO 15417 including Latin-1 support. Altered default
1084 image settings, added automatic ITF border. Corrected error with USPS OneCode.
1085 Tidied up Code 39 quite a bit, added Mod 43 options.
1086
1087
1088 Version 1.5 2007-08-12
1089 ======================
1090 Pulled everything together to make an API. Corrected errors with EAN-13,
1091 PDF417 and LOGMARS. Added EPS output. Added QR Code support using libqrencode.
1092 Corrected ISBN verification error. Re-compiled documentation in HTML form. Put
1093 in place proper error handling routines. --font option removed. Encoding is now
1094 done with a restructured zint_symbol structure. Added make install option and
1095 optional QR Code support to Makefile. Corrected minor problem with 4-State
1096 Codes. Restructured code into fewer source code files. Added MicroPDF417
1097 support.
1098
1099
1100 Version 1.4 2007-06-20
1101 ======================
1102 Added NVE-18 support. Corrected some problems with compilation and input
1103 verification. Command line option handling now uses getopt(), and all the
1104 switches have changed. Added –font option.
1105
1106
1107 Version 1.3 2007-06-13
1108 ======================
1109 Supports USPS OneCode and LOGMARS. Brought all usage information into
1110 one User Manual document.
1111
1112
1113 Version 1.2 2007-05-28
1114 ======================
1115 Supports Data Matrix ECC200 (by absorption of IEC16022 code by Stefan
1116 Schmidt et al). Added reverse colours, FIM, MSI/Plessey Modulo 11 and Modulo
1117 11/10. Corrected Code 16k check digit calculation.
1118
1119
1120 Version 1.1 2007-04-26
1121 ======================
1122 Added more derivatives (Code 2 of 5 Matrix, IATA and Data Logic,
1123 Truncated PDF417, Deutsche Post Leitcode and Identcode, Pharmazentralnummer,
1124 Planet) and Flattermarken. Tidied up 2 of 5 code.
1125
1126
1127 Version 1.0 2007-04-20
1128 ======================
1129 Corrected problem with escape character codes. Supports PDF417. This
1130 completes the list of features I originally wanted (plus a few more), hence
1131 skip to version 1.0.
1132
1133
1134 Version 0.6 2007-04-01
1135 ======================
1136 Added Plessey and some derivative codes (EAN-128, Code 128 subset B,
1137 Auspost Reply, Auspost Routing, Auspost Redirect, ITF-14). Tidied up code
1138 again: separated symbologies into more files and put all lookup tables into
1139 arrays (much reducing the amount of code, especially for Code 39e and Code 93).
1140 Errors now output to stderr. Added proper input verification. Distribution now
1141 packs with HTML pages instead of separate README. Outputs to PNG. Outputs
1142 colour. User variable whitespace and border width. Box option. Fixed EAN add-on
1143 bug. Added whitespace and height options. Project name changed to Zint to avoid
1144 conflict with extant trade name. Added escape character input.
1145
1146
1147 Version 0.5 2007-02-28
1148 ======================
1149 Added Australia Post 4-State Barcodes and Pharmacode (1 and 2 track).
1150 4-state codes now draw with correct height/width ratio.
1151
1152
1153 Version 0.4 2007-01-15
1154 ======================
1155 Added barcode stacking (now stacks up to 16 barcodes) and Code16k (stub).
1156
1157
1158 Version 0.3 2006-12-30
1159 ======================
1160 Added MSI/Plessey Mod 10 check and 2 x Mod 10 check options, Telepen
1161 ASCII and Telepen numeric, Postnet, RM4SCC. Code has been tidied up quite a
1162 bit. Bind option added.
1163
1164
1165 Version 0.2 2006-12-12
1166 ======================
1167 Added Code 128 (which is now the default), Code 11, Code 2 of 5, Add-on
1168 codes EAN-2 and EAN-5 parity and MSI/Plessey without check digit.
1169
1170
1171 Version 0.1 (as Zebar) 2006-11-13
1172 =================================
1173 Draws UPC-A. UPC-E, EAN-8, EAN-13, Interlaced 2 of 5,
1174 Codabar, Code 39, Extended Code 39 and Code 93 barcodes and Add-on codes EAN-2
1175 and EAN-5 without parity.
1176
1177 # vim: syntax=off :