ChangeLog 51 KB

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