Commit Graph

65 Commits

Author SHA1 Message Date
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
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
3388f98c00 vector: Add width to struct zint_vector_circle & use for MaxiCode bullseye
**Incompatible change**
2021-08-22 13:59:01 +01:00
3f33ed3eb9 CMakeLists.txt: cmake min required 3.13 -> 3.5 using CMAKE_REQUIRED_LIBRARIES; add ZINT_COVERAGE option
bmp/emf/ps.c: allow for foreground colour in ULTRA
bmp/gif/pcx.c: allow for BARCODE_STDOUT (fflush/fclose)
emf.c: hexagon rotation field not used; dont't use float index in font loop; Windows stdout binary mode
png.c: remove unused 8-bit; simplify libpng error handling and fclose outfile on error
ps.c: fix buffer overflow on colour_to_pscolor() CMYK
tif.c: fix BLACKISZERO indexes
CODE39: simplify check digit setting
reedsol.c: rs_uint_init_gf() log/alog tables must be zeroed
ZBarcode_Encode: debug: fix access out-of-bounds on non-NUL-terminated source if length < 10
manual.txt/zint.h: document NUL-terminated strings
tests: cover further cases for output (bmp/emf/etc), eci/gb18030/gb2312/sjis, reedsol, AZTEC, CODE39
2021-07-26 15:29:05 +01:00
4a8cac2a5a CODEONE/DATAMATRIX/MAILMARK/PLESSEY: fix some 32-bit/portability bugs
PLESSEY: add options NCR weighted mod-10, hide check digit(s) in HRT
test suite: now runnable under MSVC 2019, 2017, 2015, MinGW/MSYS
win32/README: update with MSVC 2019 and CMake instructions
2021-06-10 11:15:39 +01:00
943ba79866 AZTEC: fix bit-stuffing; AZTECRUNE: fix >= 128; DATAMATRIX: eod shift -> 0 pad; Qt6 2020-10-26 12:21:43 +00:00
36c19053d7 vector.c: string halign; POSTNET/PLANET: 1 module space; ZBarcode_Cap(); GUI settings 2020-09-30 12:19:12 +01:00
20f767c4b6 Force white squares (not same as bgcolour) in Ultracode 2020-08-12 12:19:26 +01:00
79aaa5304d Allow image rotation for SVG and EPS files 2020-08-05 21:23:11 +01:00
736bc76f66 command line: allow data/input args anywhere on line; frontend tests 2020-08-04 22:22:26 +01:00
b78fa8cf2f - Compile-able with MS-VC6
- Compile-able with MS-VC2015+QT5.18
- transbarency in TCL backend
- correct TCL demo
- README changes
2020-08-04 15:49:25 +02:00
47cac63e7f Add alpha channel support and --nobackground option
Alpha channel for PNG and SVG and option to remove background from EMF
2020-08-02 22:26:39 +01:00
0d26948baa Merge branch Ultra 2020-04-06 17:05:22 +01:00
5d60d67a84 emf free malloc bufs; tif don't free alloca bufs (Win); -Wextra; tests 2020-04-04 16:53:29 +01:00
bca82ecc0d libzint.so: suppress exporting INTERNAL functions to the shared library; ZINT_TEST 2019-12-19 00:37:55 +00:00
d370f3c0c7 Ultra: Correct clock pattern generation, add work around to avoid negative UCC and output to colour SVG 2019-12-18 18:33:18 +00:00
fed7378675 Handle UNICODE_MODE ECI conversion for reduced charset barcodes and QRCODE/MICROQR 2019-11-27 16:16:14 +00:00
23ec0d48fc Make compile with ms-vc6 (zint, tcl) and VS2015 (qzint) 2019-11-17 19:30:55 +01:00
fac9b94f1b Further refinement to SVG
More research revealed frasl entity should not be implemented, but apos should
Thanks to Ian Jeffray
2019-11-03 11:51:12 +00:00
0fe9051324 Improved HTML entity handling
Now handles quot and frasl as suggested by Ian Jeffray and also allocates memory properly, preventing SIGSEGV for Code 128 full of ampersands.
2019-10-30 08:40:26 +00:00
b1113db942 Make text elements compatable with HTML in SVG
Correctly encodes less-than, greater-than and ampersand.
Fixes #167 reported by Ian Jeffray
2019-10-16 18:42:22 +01:00
2fbbbeec12 2019-09-11 HaO Document svg_plot vector= null crash has ticket number #164
Start Version release notes.
2019-09-11 10:14:42 +02:00
4dfc090416 2019-09-11 HaO E-Mail Christian Schmitz 2019-09-10: svg_plot: check for null symbol->vector.
Reason is unknown.
2019-09-11 09:51:05 +02:00
30fcd7986c Plot vector graphics using linked list structure
Simplifies the implementation of individual vector graphic file formats
2018-06-10 09:16:18 +01:00
78d85bd72e Add font size option for SVG and EPS 2018-02-11 09:55:28 +00:00
31cc0ae78a Remove spaces before EOL 2017-10-25 17:23:57 +01:00
4963a772db Refactor 2017-09-11 19:21:33 +01:00
608b4b9134 Audit of error codes 2017-07-27 16:01:53 +01:00
19ba8a34c4 Update to version 2.6.0 and update copyright to 2017 2017-05-11 21:14:38 +01:00
eef59d150e Prevent control characters from corrupting SVG
Bug fix by Maikel Houthuijzen
2017-05-11 20:15:10 +01:00
d1e406b7d2 Add enhanced metafile format (EMF) support 2016-12-23 16:48:03 +00:00
5992bbf6e5 Malloc declaration needed for Visual Studio 2016-11-05 16:46:24 +00:00
b13645fd16 Remove non standard #include <malloc.h> 2016-10-30 20:00:09 +00:00
4561a66067 Add identifiers to error messages
To ease the debug process
2016-10-28 22:40:40 +01:00
54c0a858ea Don't include empty strings in output SVG 2016-10-27 13:47:32 +01:00
9eff5cc63a Allow adjustment of dot size when in dotty mode 2016-09-18 14:09:58 +01:00
16511da26d Improved rendering of seperator bars for Codablock-F 2016-09-12 21:47:40 +01:00
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
a7bcef4ef7 Fix various memory leaks
Bugfixes thanks to Alex Haley <ahaley42@users.sf.net>
2016-09-03 18:45:09 +01:00
3cf8a142b8 Bugfix: Ouput binding in raster images
Also: tidy up use of output_options
2016-08-26 15:13:40 +01:00
e39d2ff915 Add dot mode (experimental)
First step towards solution for ticket #29
2016-07-12 15:00:25 +01:00
caa4bb913f Don't add descriptor to EPS and SVG if text is supressed 2016-06-19 14:29:39 +01:00
d2774af120 Correctly format EAN and UPC without text
EAN and UPC should have a standard compliant format even without text
Fixes #27
2016-06-19 11:59:09 +01:00
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
660d8148bd Code format and audit, part 3
Update copyright info, remove unused code, etc.
2016-02-20 11:29:19 +00:00
2e59058615 Avoid possible confusion with Windows error code
Bugfix by Oxy Genic
Ref: https://sourceforge.net/p/zint/mailman/message/34857131/
2016-02-17 10:37:20 +00:00
1a7863520b license changed with permission of original copyright holders (see mailing list for details) 2013-05-16 19:26:38 +02:00
bf2dbe7494 code reworked 2012-12-29 19:37:03 +01:00
7da2041cfd More code cleanup
Patch 7 of 7 from "Ismael Luceno" <ismael.luceno@gmail.com>
2010-09-14 11:36:00 +01:00
e072a0723e Correct HRT error
Correct an error which prevented human readable text being saved in SVG images.
2010-07-01 22:18:53 +01:00