Commit graph

64 commits

Author SHA1 Message Date
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
3388f98c00 vector: Add width to struct zint_vector_circle & use for MaxiCode bullseye
**Incompatible change**
2021-08-22 13:59:01 +01:00
gitlost
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
gitlost
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
gitlost
943ba79866 AZTEC: fix bit-stuffing; AZTECRUNE: fix >= 128; DATAMATRIX: eod shift -> 0 pad; Qt6 2020-10-26 12:21:43 +00:00
gitlost
36c19053d7 vector.c: string halign; POSTNET/PLANET: 1 module space; ZBarcode_Cap(); GUI settings 2020-09-30 12:19:12 +01:00
Robin Stuart
20f767c4b6 Force white squares (not same as bgcolour) in Ultracode 2020-08-12 12:19:26 +01:00
Robin Stuart
79aaa5304d Allow image rotation for SVG and EPS files 2020-08-05 21:23:11 +01:00
gitlost
736bc76f66 command line: allow data/input args anywhere on line; frontend tests 2020-08-04 22:22:26 +01:00
Harald Oehlmann
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
Robin Stuart
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
Robin Stuart
0d26948baa Merge branch Ultra 2020-04-06 17:05:22 +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
Robin Stuart
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
gitlost
fed7378675 Handle UNICODE_MODE ECI conversion for reduced charset barcodes and QRCODE/MICROQR 2019-11-27 16:16:14 +00:00
Harald Oehlmann
23ec0d48fc Make compile with ms-vc6 (zint, tcl) and VS2015 (qzint) 2019-11-17 19:30:55 +01:00
Robin Stuart
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
Robin Stuart
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
Robin Stuart
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
Harald Oehlmann
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
Harald Oehlmann
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
Robin Stuart
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
Robin Stuart
78d85bd72e Add font size option for SVG and EPS 2018-02-11 09:55:28 +00:00
Boris Zentner
31cc0ae78a Remove spaces before EOL 2017-10-25 17:23:57 +01:00
Rodrigo Torres
4963a772db Refactor 2017-09-11 19:21:33 +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
eef59d150e Prevent control characters from corrupting SVG
Bug fix by Maikel Houthuijzen
2017-05-11 20:15:10 +01:00
Robin Stuart
d1e406b7d2 Add enhanced metafile format (EMF) support 2016-12-23 16:48:03 +00:00
Robin Stuart
5992bbf6e5 Malloc declaration needed for Visual Studio 2016-11-05 16:46:24 +00:00
Boris Zentner
b13645fd16 Remove non standard #include <malloc.h> 2016-10-30 20:00:09 +00:00
Robin Stuart
4561a66067 Add identifiers to error messages
To ease the debug process
2016-10-28 22:40:40 +01:00
Robin Stuart
54c0a858ea Don't include empty strings in output SVG 2016-10-27 13:47:32 +01:00
Robin Stuart
9eff5cc63a Allow adjustment of dot size when in dotty mode 2016-09-18 14:09:58 +01:00
Robin Stuart
16511da26d Improved rendering of seperator bars for Codablock-F 2016-09-12 21:47: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
a7bcef4ef7 Fix various memory leaks
Bugfixes thanks to Alex Haley <ahaley42@users.sf.net>
2016-09-03 18:45:09 +01:00
Robin Stuart
3cf8a142b8 Bugfix: Ouput binding in raster images
Also: tidy up use of output_options
2016-08-26 15:13:40 +01:00
Robin Stuart
e39d2ff915 Add dot mode (experimental)
First step towards solution for ticket #29
2016-07-12 15:00:25 +01:00
Robin Stuart
caa4bb913f Don't add descriptor to EPS and SVG if text is supressed 2016-06-19 14:29:39 +01:00
Robin Stuart
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
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
Robin Stuart
660d8148bd Code format and audit, part 3
Update copyright info, remove unused code, etc.
2016-02-20 11:29:19 +00:00
Robin Stuart
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
oxygenic
1a7863520b license changed with permission of original copyright holders (see mailing list for details) 2013-05-16 19:26:38 +02:00
openapc
bf2dbe7494 code reworked 2012-12-29 19:37:03 +01:00
Robin Stuart
7da2041cfd More code cleanup
Patch 7 of 7 from "Ismael Luceno" <ismael.luceno@gmail.com>
2010-09-14 11:36:00 +01:00
Robin Stuart
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
Robin Stuart
e32561cb34 Removal of some ghosts
Removal of some more old Codablock-F code and some depreciated functions from the API.
2010-06-17 21:34:58 +01:00