Commit Graph

70 Commits

Author SHA1 Message Date
gitlost
fb3b3001aa - GS1: fix square brackets treated as FNC1 in GS1PARENS_MODE by
changing internal FNC1 marker '[' -> '\x1D' (GS), ticket #319,
  props Moli Sojet;
  also fix non-AI square brackets -> round brackets in GS1_128 HRT
- BWIPP: update to latest
2024-07-11 00:35:13 +01:00
gitlost
7246d67175 gs1/gs1_lint: update to latest gs1-syntax-dictionary, removing
`iso3166list` linter and adjusting all others to allow for
  multiple optional linters (by checking `data_len` vs `offset`)
library: change invalid `input_mode` reset to return warning;
  split func table into 2 - func declarations without prototype
  will be error in C23;
  make invalid symbology check a separate function using a table
  and call near beginning of `ZBarcode_Encode_Segs()`;
  in `ZBarcode_BarcodeName()` save some bytes by simplifying
  name table and removing "BARCODE_" prefix from entries
output: fix pack logic to use pragma by default (actually more
  portable than `__attribute__`)
common.h: remove C99 detection which was artifice of specifying
  "-std=", and rejig layout to be more logical
BWIPP: update to latest version
general: change `ZINT_VERSION_BUILD` tests to `#if`s
general: further fiddling with some tables to save a few bytes
CLI: change function arg `optarg` -> `arg` so doesn't shadow
  global
general: library now compilable with Comp Cert C (though as it
  doesn't support `alloca()` will have multiple memory leaks)
2024-06-27 23:00:13 +01:00
gitlost
04e8cacb81 gs1: Update to latest version of gs1-syntax-dictionary with new AIs
7250-7259 (GSCN 22-246), new checkers `yyyymmdd()`, `iso5218()`,
  `posinseqslash()`; allow for new "?" flag in "gen_gs1_lint.php"
2024-05-29 22:52:34 +01:00
gitlost
db92c7de57 UPCA_CC/EANX_CC: fix out-of-bounds crash in AI resolve loop in
`gs1_verify()` by checking length before `to_int()`, ticket
  #300 (#11), props Andre Maute
CODEONE: fix out-of-bounds crash for Version T by upping buffer
  size to same as for A to H, ticket #300 (#12), props Andre Maute
GS1_128_CC: fix divide-by-zero crash in `calc_padding_ccc()` by
  allowing for min linear width 68 in `cc_width` calc, ticket #300
  (#13), props Andre Maute
BWIPP: update `bwipp_dump.ps` to latest version, update
  `gen_gs1_lint.php` to accommodate `req` "+"
PDF417: change `liste[]` int -> short to lessen stack usage
Some variable name and code fiddlings
2023-11-28 08:58:56 +00:00
gitlost
b343409fb4 gs1: update to latest gs1-syntax-dictionary (new AIs 4330-4333,
hyphen)
2023-10-27 13:51:32 +01:00
gitlost
6733e76be4 gs1: update to latest gs1-syntax-dictionary (cset64, separate
latitude/longitude, mediatype, new AIs 7241, 7242, 8030)
  TODO: integrate gs1-syntax-engine
BWIPP: update to latest (bwipp_dump.ps)
manual: README: pandoc latest
2023-07-05 21:26:16 +01:00
gitlost
90293ebcda - Add text_gap option to allow adjustment of vertical gap between
barcode and text
- EMF/EPS/SVG/GUI: ignore BOLD_TEXT for EAN/UPC
- DAFT: up max to 250 chars
- EMF/EPS/SVG: fix addon bars placement/length when text hidden
- Qt backend: use `QFontMetrics::horizontalAdvance()` rather than
  `boundingRect()` to calc text width (seems to be more accurate)
- library: make printf/sprintf() format arg always literal string
- output: fix errtxt nos clash;
  use array for `out_upcean_split_text()` text parts
- raster/vector: smallify addon text printing logic
- frontend: warn if output file and direct options both given;
  add TODO note about `CommandLineToArgvW()` loading shell32.dll
- manual: put HRT options in own section
2023-02-10 14:44:10 +00:00
gitlost
ab7da62a3a UPU_S10/GS1: properly expose iso3166_alpha2(); add UPU_S10 to tcl 2022-12-09 15:56:13 +00:00
gitlost
a48434c19c GS1: update for new AI 4309 with latlong validator, plus new GS1
syntax dictionary format (pre-release)
iso4217: new currency code 925
2022-07-14 20:44:48 +01:00
gitlost
930f458979 backend: define z_alloca() and use for both Unix and Windows;
replace double-slash comments with old-skool slash asterisk ones;
  define uint16_t etc for Windows ourselves and remove ms_stdint.h &
  stdint_msvc.h as no longer used;
  (backend (excepting test suite) now C89 compatible)
LICENSE: move from backend to root and move COPYING to frontend, with
  copies in frontend_qt & backend_qt, so in where it applies;
  add LICENSE section from manual to root README
2022-07-14 16:01:30 +01:00
gitlost
0b3fe8db93 GUI: remove sizeConstraint so squashable again (sigh)
- make Sequence Format textbox bigger (on own line)
  - suppress question mark in Windows dialogs
AUSPOST: more standard error messages
backend: add & use z_isdigit/upper/lower() macros
docs: 20-bit Unicode -> 21-bit Unicode
2022-06-24 14:38:48 +01:00
gitlost
4e72a541f7 PDF417: fix cols/rows calculation to require multiple <= 928 codewords;
add specify rows option (option_3) (#204);
  warn if cols increased from specified (back-incompatible);
  move table definitions from "pdf417.h" to new "pdf417_tabs.h" and
  make INTERNAL_DATA and share with composite.c (saves ~10K);
  prefix routines and tables with "pdf_";
  some small performance improvements through if/elses, pdf_textprocess()
  & pdf_numbprocess() loop simplifications
MICROQR: fix debug access crash on printing non-NUL-terminating binary
DATAMATRIX: fix missing ++ from "[tp]" at C40/TEXT EOD processing of GS1
  (though probably never reached); use "[tp++]" throughout
Add const to static tables missing it and also to some variables
Change "debug" -> "debug_print" throughout
2021-10-30 22:00:31 +01:00
gitlost
706f021637 gs1_verify(): fix zero-length AI no data and single-digit AI checks 2021-10-28 12:05:54 +01:00
gitlost
fab7435fac Performance improvements for linear encoding and raster output
- use fixed-length string tables (mostly) instead of (char *) pointer ones
   (saves ~40K)
 - re-use C128Table for CODABLOCKF and CODE16K
   (required removal of Stop character and extra CODE16K-only entry)
 - use pointer to destination and copy (memcpy/strcpy(), bin_append_posn())
   instead of concatenating (strcat()) (mostly)
 - replace last remaining bin_append()s with bin_append_posn();
   bin_append() removed
 - add length arg to toupper() and expand() (avoids strlen())
 - change is_sane() to use table-based flags (avoids an iteration)
 - rename lookup() to is_sane_lookup() and change to check and return posns
   and use in pointer to destination loops (avoids strcat()s)
 - remove special case PHARMA in expand() (dealt with in pharma())
 - make #define SILVER/CALCIUM/TECHNETIUM/KRSET etc static strings
 - replace strchr() -> posn()
 - CODE128: populate destination once in checksum loop; re-use and export
   some more routines (c128_set_a/b/c(), c128_put_in_set()) for sharing;
   prefix defines (SHIFTA -> C128_SHIFTA etc) and existing exported routines
 - use factor XOR toggle trick in checksum calcs (avoids branch)
 - raster.c: fill out single 1-pixel row and copy using new draw_bar_line(),
   copy_bar_line() routines; similarly in buffer_plot compare previous line &
   copy if same (same technique as used to improve non-half-integer scaling,
   significant performance increase, (c) codemonkey82);
   also done for PNG (BMP/GIF/PCX/TIFF not done)
 - raster/vector/output.c: shorten "output_" prefix -> "out_";
   sync vector to other raster changes to try to keep source files similar
 - 2of5.c: prefix "c25_"
JAPANPOST: return error if input data truncated (backward incompatible)
DAFT: max chars 50 -> 100
common.c: istwodigit() -> is_twodigit()
common.c/emf.c/output.c: use some further stripf()s (MSVC6 float variations)
library.c: new check_output_args() helper
zint.h: add BARCODE_LAST marker and use in library.c
QRCODE: remove a NOLINT (requires clang-tidy-13), one remaining
CMake: separate no-optimize from ZINT_DEBUG into new ZINT_NOOPT option
2021-10-20 23:05:30 +01:00
gitlost
eb6e5daa2d raster.c: need ceilf(large_bar_height * si) to avoid zero height rows;
also improve non-half-int interpolation performance
raster/vector.c: use new stripf() func in "common.c" to workaround gcc
  32-bit float calculation variations
gs1.c: allow dummy AI "[]" if GS1NOCHECK_MODE and has data (#204);
  also add note re TPX AI 235 and terminating FNC1
Remove trailing whitespace in various files
2021-09-26 23:55:16 +01:00
gitlost
86c15741d8 gs1.c: Allow 0-length AI data if GS1NOCHECK_MODE, props codemonkey82 (#204) 2021-09-13 17:54:46 +01:00
gitlost
9229634826 Suppress some pedantic warnings, props codemonkey82 (#204) 2021-09-12 23:37:44 +01:00
gitlost
2e84fd5157 Replace WARN_ZPL_COMPAT with GS1NOCHECK_MODE 2021-07-13 17:39:03 +01:00
gitlost
3c1869b032 library: compat symbology 39 fix; ISBN: "X" check
WARN_FAIL_ALL: always return error: ZINT_ERROR_USES_ECI/NON_COMPLIANT
Fuller error messages; more comments zint.h
mainwindow.cpp: replace metaobject ENUM with array
  (suppresses virtual in constructor warning)
2021-07-06 19:53:31 +01:00
gitlost
52c00e59ba C25/DBAR: use new func gs1_check_digit() for common GS1 check digit calc
CODE11/CODE39/EXCODE39/CODE93/PZN/CHANNEL/VIN/DBAR/UPCEAN: fuller error messages
DATAMATRIX: look_ahead_test debug counts
DBAR: consolidate option_2 cols_per_row
CMakeLists.txt: restore -fno-var-tracking-assignments for gcc no DEBUG
overall: suppress various warnings on various configs
testcommon.c: clean-up
2021-06-27 11:47:55 +01:00
gitlost
79d3c1dc7a Add GS1PARENS_MODE (input_mode) to allow inputting GS1 AIs in parentheses 2021-05-15 12:23:46 +01:00
gitlost
b3610d3c43 #209 font.h guard; improve gs1 c82 check, code1 num_digits 2021-02-09 02:51:36 +00:00
gitlost
a91933cbdd gs1_verify: GMN (8013) update (gs1-format-spec.txt), X..25, csumalpha 2021-02-08 02:45:11 +00:00
gitlost
538efd6e52 gs1_verify: 4308 no pcenc (gs1-format-spec.txt); GS1 General Spec 21.0.1 2021-01-28 23:41:54 +00:00
gitlost
f9300cb37e gs1_verify: validate AIs from BWIPP gs1-format-spec.txt 2021-01-18 20:10:52 +00:00
gitlost
7fe930b4dc eci: Add support for all ECIs (Big5, Korean, UCS-2BE) 2021-01-11 18:11:41 +00:00
gitlost
bee5f08f50 #209 rss.c, composite.c; DBAR_EXP encodation methods; symbol NO_PNG out.gif 2020-12-21 19:30:07 +00:00
Robin Stuart
9f5ae4cbb2 First stage at creating ZPL compatability mode
Partly resolves #142 and relates to discussion in #197
2020-08-22 11:09:57 +01:00
Robin Stuart
ea76c82efe Update GS1 fixed-length field note 2020-08-05 06:53:06 +01:00
gitlost
52d08fd9b9 #191 clang-tidy reduce NOLINTs using asserts, remove DeadStores 2020-07-19 10:31:12 +01:00
gitlost
c1fb51ba42 rss.c: some fixes for separators, allow check digit, refactoring; bwipp_dump.ps 2020-07-10 19:39:32 +01:00
gitlost
d7b98d29f6 gs1: #194 Fix 253 & 255 min 14 -> 13 2020-05-15 19:27:37 +01:00
gitlost
3bda3b6213 DOTCODE: score_array Rev 4; initial HT/FS/GS/RS, macro fixes; CR/LF; #191 clang-tidy warnings; gs1 DEL 2020-05-02 00:38:35 +01:00
gitlost
5d60d67a84 emf free malloc bufs; tif don't free alloca bufs (Win); -Wextra; tests 2020-04-04 16:53:29 +01:00
gitlost
bca82ecc0d libzint.so: suppress exporting INTERNAL functions to the shared library; ZINT_TEST 2019-12-19 00:37:55 +00:00
Harald Oehlmann
23ec0d48fc Make compile with ms-vc6 (zint, tcl) and VS2015 (qzint) 2019-11-17 19:30:55 +01:00
gitlost
42587c2d21 gs1_verify: additional AIs 7240, 235, 417, 7040, 8026; updated checks 7007, 8008 2019-11-10 00:27:24 +00:00
gitlost
3b87cd4ec6 EAN128_CC ecc, cc_width, rows and alignment adjustments 2019-11-05 14:16:48 +00:00
gitlost
739793a215 Always parse input as GS1 for EAN128 and RSS_EXP 2019-10-17 10:06:21 +01:00
Roman Schnider
dcf0cbef97 Enhanced data length checks for GS1 data
Brought up to date with revision 19 of the GS1 General Specifications
2019-03-18 17:24:07 +01:00
Robin Stuart
58398bc754 Enforce length of GSRN
Fixes #115 reported by Daniel Gredler
2018-07-05 21:45:11 +01:00
Robin Stuart
c83bea4ae0 Enforce maximum length of document type identifier
Fixes #113 reported by Daniel Gredler
2018-07-05 21:27:26 +01:00
Robin Stuart
951209331a Set max coupon code length to 70
Fixes #112 reported by Daniel Gredler
2018-07-05 21:22:27 +01:00
Robin Stuart
75803e8aa2 Enhanced data length checks for GS1 data
Brought up to date with revision 18 of the GS1 General Specifications
Enhancement suggested by Roman Schnider <r.schnider@cab.de>
2018-03-30 18:46:33 +01:00
Boris Zentner
31cc0ae78a Remove spaces before EOL 2017-10-25 17:23:57 +01:00
Robin Stuart
608b4b9134 Audit of error codes 2017-07-27 16:01:53 +01:00
Robin Stuart
19ba8a34c4 Update to version 2.6.0 and update copyright to 2017 2017-05-11 21:14:38 +01:00
Robin Stuart
4561a66067 Add identifiers to error messages
To ease the debug process
2016-10-28 22:40:40 +01:00
Robin Stuart
2c2200a7cb modifications for VS2015, some
additional static/const's and a few bugfixes for HanXin and DotStream.

Patch by Michael <virtual_worlds@gmx.de>
2016-09-05 22:06:50 +01:00
Robin Stuart
f17f10fa7c Replace local concat() and roundup() with C library defaults
Patch by Oxy (Michael) <virtual_worlds@gmx.de>
Ref: https://sourceforge.net/p/zint/mailman/message/34896811/
2016-03-02 21:12:38 +00:00