1
0
mirror of https://git.code.sf.net/p/zint/code synced 2026-06-10 07:33:43 +00:00
(see gs1-syntax-engine PR #15, props Viktor Szépe)
This commit is contained in:
gitlost
2025-09-07 17:40:43 +01:00
parent 9b4d097516
commit ad95d8f2b0
26 changed files with 64 additions and 63 deletions
+5 -5
View File
@@ -1,4 +1,4 @@
Version 2.15.0.9 (dev) not released yet (2025-09-05) Version 2.15.0.9 (dev) not released yet (2025-09-07)
==================================================== ====================================================
**Incompatible changes** **Incompatible changes**
@@ -650,7 +650,7 @@ Changes
sanitizer flag detection, and many other improvements, props Alonso Schaich sanitizer flag detection, and many other improvements, props Alonso Schaich
- PLESSEY: add options NCR weighted mod-10, hide check digit(s) in HRT - PLESSEY: add options NCR weighted mod-10, hide check digit(s) in HRT
- Fuller error messages; more comments zint.h - Fuller error messages; more comments zint.h
- CMake: simplication and modernization, Qt5/6 version, props Null Void (atom) - CMake: simplification and modernization, Qt5/6 version, props Null Void (atom)
- POSTNET/PLANET: allow up to 38 chars (ZINT_WARN_NONCOMPLIANT) (see [d7ac9c]) - POSTNET/PLANET: allow up to 38 chars (ZINT_WARN_NONCOMPLIANT) (see [d7ac9c])
- RMQR: update to new draft ISO/IEC JTC1/SC31N000 (Draft 2019-6-24) - RMQR: update to new draft ISO/IEC JTC1/SC31N000 (Draft 2019-6-24)
- ULTRA: update max size and min cols based on BWIPP 2021-07-14 update - ULTRA: update max size and min cols based on BWIPP 2021-07-14 update
@@ -806,7 +806,7 @@ Bugs
- Code128 routines for Codablock&Code16K - Code128 routines for Codablock&Code16K
- output.c has common routines from raster.c and symbologies. - output.c has common routines from raster.c and symbologies.
- HIBC_39: restrict max length to 68 otherwise to avoid overrun - HIBC_39: restrict max length to 68 otherwise to avoid overrun
- Code One: protect agains overrun - Code One: protect against overrun
- Telepen: allow DEL - Telepen: allow DEL
- GS1 Databar/ GS1-128 Composite: - GS1 Databar/ GS1-128 Composite:
- Separator bar corrections - Separator bar corrections
@@ -830,7 +830,7 @@ Changes
upcean, all output formats upcean, all output formats
- QR, Han Xin, Grid Matrix: the multi byte compaction schemes (ex: Kanji) - QR, Han Xin, Grid Matrix: the multi byte compaction schemes (ex: Kanji)
are used by some decoders as codepage information (Ex: GB2312) and output are used by some decoders as codepage information (Ex: GB2312) and output
may be translated to UTF-8. This may destroy the data in a not controlable may be translated to UTF-8. This may destroy the data in a not controllable
manner. manner.
In consequence, multibyte compaction schemes are disabled by default. In consequence, multibyte compaction schemes are disabled by default.
The new option --fullmultibyte (option_3 = ZINT_FULL_MULTIBYTE) enables this The new option --fullmultibyte (option_3 = ZINT_FULL_MULTIBYTE) enables this
@@ -960,7 +960,7 @@ Fixed bugs: EMF output, maxicode plot/content
Datamatrix DMRE updated to the ISO/IEC29158 version. This is incompatible in the Datamatrix DMRE updated to the ISO/IEC29158 version. This is incompatible in the
way that the old -vers numbers for DMRE are re-assigned. way that the old -vers numbers for DMRE are re-assigned.
The separator of GS1-datamatrix may be switched from FNC1 to GS. The separator of GS1-datamatrix may be switched from FNC1 to GS.
GS1 field length check AI 8009 and 7230 to 7239 currected. GS1 field length check AI 8009 and 7230 to 7239 corrected.
Version 2.6.3 2018-02-15 Version 2.6.3 2018-02-15
+1 -1
View File
@@ -1514,7 +1514,7 @@ INTERNAL int zint_codeone(struct zint_symbol *symbol, struct zint_seg segs[], co
c1_block_copy(symbol, datagrid, 0, 0, 10, 16, 0, 0); c1_block_copy(symbol, datagrid, 0, 0, 10, 16, 0, 0);
c1_block_copy(symbol, datagrid, 0, 16, 10, 16, 0, 1); c1_block_copy(symbol, datagrid, 0, 16, 10, 16, 0, 1);
break; break;
case 3: /* Verion T-48 */ case 3: /* Version T-48 */
z_set_module(symbol, 0, 24); z_set_module(symbol, 0, 24);
z_set_module(symbol, 10, 24); z_set_module(symbol, 10, 24);
z_set_module(symbol, 12, 24); z_set_module(symbol, 12, 24);
+1 -1
View File
@@ -264,7 +264,7 @@ INTERNAL int zint_upu_s10(struct zint_symbol *symbol, unsigned char source[], in
if (!z_isupper(local_source[0]) || !z_isupper(local_source[1])) { if (!z_isupper(local_source[0]) || !z_isupper(local_source[1])) {
return z_errtxt(ZINT_ERROR_INVALID_DATA, symbol, 835, return z_errtxt(ZINT_ERROR_INVALID_DATA, symbol, 835,
"Invalid character in Service Indictor (first 2 characters) (alphabetic only)"); "Invalid character in Service Indicator (first 2 characters) (alphabetic only)");
} }
if (z_not_sane(NEON_F, local_source + 2, 12 - 4) || (have_check_digit && !z_isdigit(have_check_digit))) { if (z_not_sane(NEON_F, local_source + 2, 12 - 4) || (have_check_digit && !z_isdigit(have_check_digit))) {
return z_errtxtf(ZINT_ERROR_INVALID_DATA, symbol, 836, return z_errtxtf(ZINT_ERROR_INVALID_DATA, symbol, 836,
+1 -1
View File
@@ -387,7 +387,7 @@ INTERNAL int z_errtxtf(const int error_number, struct zint_symbol *symbol, const
if (arg == -1) { if (arg == -1) {
if (!(symbol->debug & ZINT_DEBUG_TEST)) assert(0); if (!(symbol->debug & ZINT_DEBUG_TEST)) assert(0);
return z_errtxt(ZINT_ERROR_ENCODING_PROBLEM, symbol, 0, return z_errtxt(ZINT_ERROR_ENCODING_PROBLEM, symbol, 0,
"Internal error: invalid numbered format specifer"); "Internal error: invalid numbered format specifier");
} }
if (i >= 9) { if (i >= 9) {
if (!(symbol->debug & ZINT_DEBUG_TEST)) assert(0); if (!(symbol->debug & ZINT_DEBUG_TEST)) assert(0);
+1 -1
View File
@@ -141,7 +141,7 @@ static int dc_score_array(const char Dots[], const int Hgt, const int Wid) {
int x, y, worstedge, first, last, sum; int x, y, worstedge, first, last, sum;
int penalty; int penalty;
/* First, guard against "pathelogical" gaps in the array /* First, guard against "pathological" gaps in the array
subtract a penalty score for empty rows/columns from total code score for each mask, subtract a penalty score for empty rows/columns from total code score for each mask,
where the penalty is Sum(N ^ n), where N is the number of positions in a column/row, where the penalty is Sum(N ^ n), where N is the number of positions in a column/row,
and n is the number of consecutive empty rows/columns */ and n is the number of consecutive empty rows/columns */
+2 -2
View File
@@ -480,7 +480,7 @@ INTERNAL int zint_emf_plot(struct zint_symbol *symbol, int rotate_angle) {
while (circ) { while (circ) {
/* Note using circle width the proper way, with a non-null pen of specified width and a null brush for fill, /* Note using circle width the proper way, with a non-null pen of specified width and a null brush for fill,
causes various different rendering issues for LibreOffice Draw and Inkscape, so using following hack */ causes various different rendering issues for LibreOffice Draw and Inkscape, so using following hack */
if (previous_diameter != circ->diameter + circ->width) { /* Drawing MaxiCode bullseye using overlayed discs */ if (previous_diameter != circ->diameter + circ->width) { /* Drawing MaxiCode bullseye using overlaid discs */
previous_diameter = circ->diameter + circ->width; previous_diameter = circ->diameter + circ->width;
radius = emf_mul3dpf(0.5f, previous_diameter); radius = emf_mul3dpf(0.5f, previous_diameter);
} }
@@ -494,7 +494,7 @@ INTERNAL int zint_emf_plot(struct zint_symbol *symbol, int rotate_angle) {
bytecount += 24; bytecount += 24;
recordcount++; recordcount++;
if (symbol->symbology == BARCODE_MAXICODE) { /* Drawing MaxiCode bullseye using overlayed discs */ if (symbol->symbology == BARCODE_MAXICODE) { /* Drawing MaxiCode bullseye using overlaid discs */
float inner_radius = radius - circ->width; float inner_radius = radius - circ->width;
zint_out_le_u32(circle[this_circle].type, 0x0000002a); /* EMR_ELLIPSE */ zint_out_le_u32(circle[this_circle].type, 0x0000002a); /* EMR_ELLIPSE */
zint_out_le_u32(circle[this_circle].size, 24); zint_out_le_u32(circle[this_circle].size, 24);
+4 -3
View File
@@ -1198,7 +1198,8 @@ int ZBarcode_Encode_Segs(struct zint_symbol *symbol, const struct zint_seg segs[
if (symbol->eci) { if (symbol->eci) {
/* Check that ECI is at least CSET82 (an ASCII Invariant subset) compatible */ /* Check that ECI is at least CSET82 (an ASCII Invariant subset) compatible */
if (symbol->eci == 25 || (symbol->eci >= 33 && symbol->eci <= 35)) { /* UTF-16/32 BE/LE */ if (symbol->eci == 25 || (symbol->eci >= 33 && symbol->eci <= 35)) { /* UTF-16/32 BE/LE */
return error_tag(ZINT_ERROR_INVALID_OPTION, symbol, 856, "In GS1 mode ECI must be ASCII compatible"); return error_tag(ZINT_ERROR_INVALID_OPTION, symbol, 856,
"In GS1 mode ECI must be ASCII compatible");
} }
/* Note not warning here that ECI is not supported in GS1 mode, leaving it up to individual /* Note not warning here that ECI is not supported in GS1 mode, leaving it up to individual
symbologies, as standards are inconsistent in mentioning it */ symbologies, as standards are inconsistent in mentioning it */
@@ -2019,8 +2020,8 @@ float ZBarcode_Default_Xdim(int symbol_id) {
case BARCODE_HIBC_PDF: case BARCODE_HIBC_PDF:
case BARCODE_MICROPDF417: case BARCODE_MICROPDF417:
case BARCODE_HIBC_MICPDF: case BARCODE_HIBC_MICPDF:
/* Fairly arbitrarily using ISO/IEC 15416:2016 Section 5.3.1 Table 1, aperature diameters 0.125 & 0.250 /* Fairly arbitrarily using ISO/IEC 15416:2016 Section 5.3.1 Table 1, aperture diameters 0.125 & 0.250
(also fits in 0.25 <= X < 0.5 range for aperature 0.2 from ISO/IEC 15415:2011 Annex D Table D.1) */ (also fits in 0.25 <= X < 0.5 range for aperture 0.2 from ISO/IEC 15415:2011 Annex D Table D.1) */
x_dim_mm = 0.33f; x_dim_mm = 0.33f;
break; break;
+1 -1
View File
@@ -31,7 +31,7 @@
/* SPDX-License-Identifier: BSD-3-Clause */ /* SPDX-License-Identifier: BSD-3-Clause */
/* /*
* Developed in accordance with "Royal Mail Mailmark barcode C encoding and deconding instructions" * Developed in accordance with "Royal Mail Mailmark barcode C encoding and decoding instructions"
* (https://www.royalmail.com/sites/default/files/ * (https://www.royalmail.com/sites/default/files/
* Mailmark-4-state-barcode-C-encoding-and-decoding-instructions-Sept-2015.pdf) * Mailmark-4-state-barcode-C-encoding-and-decoding-instructions-Sept-2015.pdf)
* and "Royal Mail Mailmark barcode L encoding and decoding" * and "Royal Mail Mailmark barcode L encoding and decoding"
+1 -1
View File
@@ -83,7 +83,7 @@ static void wpng_flush(png_structp png_ptr) {
(void) zint_fm_flush(fmp); (void) zint_fm_flush(fmp);
} }
/* Guestimate best compression strategy */ /* Guesstimate best compression strategy */
static int wpng_guess_compression_strategy(struct zint_symbol *symbol, const unsigned char *pixelbuf) { static int wpng_guess_compression_strategy(struct zint_symbol *symbol, const unsigned char *pixelbuf) {
(void)pixelbuf; (void)pixelbuf;
+2 -2
View File
@@ -1794,7 +1794,7 @@ INTERNAL int zint_qrcode(struct zint_symbol *symbol, struct zint_seg segs[], con
} }
} }
/* Ensure maxium error correction capacity unless user-specified */ /* Ensure maximum error correction capacity unless user-specified */
if (symbol->option_1 == -1 || symbol->option_1 - 1 != ecc_level) { if (symbol->option_1 == -1 || symbol->option_1 - 1 != ecc_level) {
if (est_binlen <= qr_data_codewords[QR_LEVEL_H][version - 1] * 8) { if (est_binlen <= qr_data_codewords[QR_LEVEL_H][version - 1] * 8) {
ecc_level = QR_LEVEL_H; ecc_level = QR_LEVEL_H;
@@ -2530,7 +2530,7 @@ static void rmqr_setup_grid(unsigned char *grid, const int h_size, const int v_s
grid[(h_size * 2) - 2] = 0x10; grid[(h_size * 2) - 2] = 0x10;
grid[(h_size * 2) - 1] = 0x11; grid[(h_size * 2) - 1] = 0x11;
/* Add seperator */ /* Add separator */
for (i = 0; i < 7; i++) { for (i = 0; i < 7; i++) {
grid[(i * h_size) + 7] = 0x20; grid[(i * h_size) + 7] = 0x20;
} }
+2 -2
View File
@@ -420,14 +420,14 @@ static void test_input(const testCtx *const p_ctx) {
/* 18*/ { BARCODE_CODABLOCKF, UNICODE_MODE, -1, -1, "\037\037\037ß", -1, 0, 2, 101, 1, 1, "67 62 40 5F 5F 5F 63 03 6A 67 64 0B 64 3F 0E 34 1A 6A", "CodeA US (3) / CodeB FNC4 ß fully on next line" }, /* 18*/ { BARCODE_CODABLOCKF, UNICODE_MODE, -1, -1, "\037\037\037ß", -1, 0, 2, 101, 1, 1, "67 62 40 5F 5F 5F 63 03 6A 67 64 0B 64 3F 0E 34 1A 6A", "CodeA US (3) / CodeB FNC4 ß fully on next line" },
/* 19*/ { BARCODE_CODABLOCKF, UNICODE_MODE, -1, -1, "", -1, 0, 2, 101, 1, 1, "67 64 40 41 64 40 63 59 6A 67 64 0B 63 64 5D 1E 16 6A", "CodeB a FNC4 à fits 1st line" }, /* 19*/ { BARCODE_CODABLOCKF, UNICODE_MODE, -1, -1, "", -1, 0, 2, 101, 1, 1, "67 64 40 41 64 40 63 59 6A 67 64 0B 63 64 5D 1E 16 6A", "CodeB a FNC4 à fits 1st line" },
/* 20*/ { BARCODE_CODABLOCKF, UNICODE_MODE, -1, -1, "\037à", -1, 0, 2, 101, 0, 1, "67 62 40 5F 65 62 40 26 6A 67 64 0B 63 64 1B 1E 01 6A", "CodeA US FNC4 Shift à fits 1st line; BWIPP different encodation (CodeB instead of Shift)" }, /* 20*/ { BARCODE_CODABLOCKF, UNICODE_MODE, -1, -1, "\037à", -1, 0, 2, 101, 0, 1, "67 62 40 5F 65 62 40 26 6A 67 64 0B 63 64 1B 1E 01 6A", "CodeA US FNC4 Shift à fits 1st line; BWIPP different encodation (CodeB instead of Shift)" },
/* 21*/ { BARCODE_CODABLOCKF, UNICODE_MODE, -1, -1, "\037àa", -1, 0, 2, 101, 0, 1, "67 62 40 5F 64 64 40 2C 6A 67 64 0B 41 63 52 4A 16 6A", "CodeA US LatchB FNC4 à fits 1st line / Code B a; BWIPP diffent encodation (as above)" }, /* 21*/ { BARCODE_CODABLOCKF, UNICODE_MODE, -1, -1, "\037àa", -1, 0, 2, 101, 0, 1, "67 62 40 5F 64 64 40 2C 6A 67 64 0B 41 63 52 4A 16 6A", "CodeA US LatchB FNC4 à fits 1st line / Code B a; BWIPP different encodation (as above)" },
/* 22*/ { BARCODE_CODABLOCKF, UNICODE_MODE, -1, -1, "aaà", -1, 0, 2, 101, 1, 1, "67 64 40 41 41 64 40 16 6A 67 64 0B 63 64 51 5D 1F 6A", "CodeB a a FNC4 à fits 1st line" }, /* 22*/ { BARCODE_CODABLOCKF, UNICODE_MODE, -1, -1, "aaà", -1, 0, 2, 101, 1, 1, "67 64 40 41 41 64 40 16 6A 67 64 0B 63 64 51 5D 1F 6A", "CodeB a a FNC4 à fits 1st line" },
/* 23*/ { BARCODE_CODABLOCKF, UNICODE_MODE, -1, -1, "\037\037à", -1, 0, 2, 101, 1, 1, "67 62 40 5F 5F 63 64 1D 6A 67 64 0B 64 40 37 1B 55 6A", "CodeA US US / Code B FNC4 à fully on next line" }, /* 23*/ { BARCODE_CODABLOCKF, UNICODE_MODE, -1, -1, "\037\037à", -1, 0, 2, 101, 1, 1, "67 62 40 5F 5F 63 64 1D 6A 67 64 0B 64 40 37 1B 55 6A", "CodeA US US / Code B FNC4 à fully on next line" },
/* 24*/ { BARCODE_CODABLOCKF, UNICODE_MODE, -1, -1, "aaaà", -1, 0, 2, 101, 1, 1, "67 64 40 41 41 41 63 39 6A 67 64 0B 64 40 50 51 13 6A", "CodeB a (3) / Code B FNC4 à fully on next line" }, /* 24*/ { BARCODE_CODABLOCKF, UNICODE_MODE, -1, -1, "aaaà", -1, 0, 2, 101, 1, 1, "67 64 40 41 41 41 63 39 6A 67 64 0B 64 40 50 51 13 6A", "CodeB a (3) / Code B FNC4 à fully on next line" },
/* 25*/ { BARCODE_CODABLOCKF, UNICODE_MODE, -1, -1, "\037\037\037à", -1, 0, 2, 101, 1, 1, "67 62 40 5F 5F 5F 63 03 6A 67 64 0B 64 40 1C 37 0F 6A", "CodeA US (3) / CodeB FNC4 à fully on next line" }, /* 25*/ { BARCODE_CODABLOCKF, UNICODE_MODE, -1, -1, "\037\037\037à", -1, 0, 2, 101, 1, 1, "67 62 40 5F 5F 5F 63 03 6A 67 64 0B 64 40 1C 37 0F 6A", "CodeA US (3) / CodeB FNC4 à fully on next line" },
/* 26*/ { BARCODE_CODABLOCKF, DATA_MODE, -1, -1, "\037\200", -1, 0, 2, 101, 1, 899, "67 62 40 5F 65 40 63 4E 6A 67 64 0B 63 64 5D 0A 05 6A", "CodeA US FNC4 PAD fits 1st line" }, /* 26*/ { BARCODE_CODABLOCKF, DATA_MODE, -1, -1, "\037\200", -1, 0, 2, 101, 1, 899, "67 62 40 5F 65 40 63 4E 6A 67 64 0B 63 64 5D 0A 05 6A", "CodeA US FNC4 PAD fits 1st line" },
/* 27*/ { BARCODE_CODABLOCKF, DATA_MODE, -1, -1, "\141\200", -1, 0, 2, 101, 0, 899, "67 64 40 41 64 62 40 31 6A 67 64 0B 63 64 49 0A 08 6A", "CodeB a FNC4 Shift PAD fits 1st line; BWIPP different encodation (CodeA instead of Shift)" }, /* 27*/ { BARCODE_CODABLOCKF, DATA_MODE, -1, -1, "\141\200", -1, 0, 2, 101, 0, 899, "67 64 40 41 64 62 40 31 6A 67 64 0B 63 64 49 0A 08 6A", "CodeB a FNC4 Shift PAD fits 1st line; BWIPP different encodation (CodeA instead of Shift)" },
/* 28*/ { BARCODE_CODABLOCKF, DATA_MODE, -1, -1, "\141\200\037", -1, 0, 2, 101, 0, 899, "67 64 40 41 65 65 40 44 6A 67 62 0B 5F 63 10 12 3E 6A", "CodeB a LatchA FNC4 PAD fits 1st line / CodeA US; BWIPP diffent encodation (as above)" }, /* 28*/ { BARCODE_CODABLOCKF, DATA_MODE, -1, -1, "\141\200\037", -1, 0, 2, 101, 0, 899, "67 64 40 41 65 65 40 44 6A 67 62 0B 5F 63 10 12 3E 6A", "CodeB a LatchA FNC4 PAD fits 1st line / CodeA US; BWIPP different encodation (as above)" },
/* 29*/ { BARCODE_CODABLOCKF, DATA_MODE, -1, -1, "\037\037\200", -1, 0, 2, 101, 1, 899, "67 62 40 5F 5F 65 40 1D 6A 67 64 0B 63 64 0F 5D 0A 6A", "CodeA US US FNC4 PAD fits 1st line" }, /* 29*/ { BARCODE_CODABLOCKF, DATA_MODE, -1, -1, "\037\037\200", -1, 0, 2, 101, 1, 899, "67 62 40 5F 5F 65 40 1D 6A 67 64 0B 63 64 0F 5D 0A 6A", "CodeA US US FNC4 PAD fits 1st line" },
/* 30*/ { BARCODE_CODABLOCKF, DATA_MODE, -1, -1, "\141\141\200", -1, 0, 2, 101, 1, 899, "67 64 40 41 41 63 64 1B 6A 67 62 0B 65 40 33 49 21 6A", "CodeB a a / CodeA FNC4 PAD fully on next line" }, /* 30*/ { BARCODE_CODABLOCKF, DATA_MODE, -1, -1, "\141\141\200", -1, 0, 2, 101, 1, 899, "67 64 40 41 41 63 64 1B 6A 67 62 0B 65 40 33 49 21 6A", "CodeB a a / CodeA FNC4 PAD fully on next line" },
/* 31*/ { BARCODE_CODABLOCKF, DATA_MODE, -1, -1, "\037\037\037\200", -1, 0, 2, 101, 1, 899, "67 62 40 5F 5F 5F 63 03 6A 67 62 0B 65 40 4A 0F 06 6A", "CodeA US (3) / CodeA FNC4 PAD fully on next line" }, /* 31*/ { BARCODE_CODABLOCKF, DATA_MODE, -1, -1, "\037\037\037\200", -1, 0, 2, 101, 1, 899, "67 62 40 5F 5F 5F 63 03 6A 67 62 0B 65 40 4A 0F 06 6A", "CodeA US (3) / CodeA FNC4 PAD fully on next line" },
+1 -1
View File
@@ -3277,7 +3277,7 @@ static void test_encode_segs(const testCtx *const p_ctx) {
"0000110101011010101000" "0000110101011010101000"
"0110000110100100110110" "0110000110100100110110"
}, },
/* 10*/ { UNICODE_MODE, 9, { 0, 0, "" }, { { TU("A"), -1, 3 }, { TU("B"), -1, 4 }, { TU("C"), -1, 5 } }, ZINT_ERROR_INVALID_OPTION, 0, 0, 1, "Multiple segments not suppoted for Version S", /* 10*/ { UNICODE_MODE, 9, { 0, 0, "" }, { { TU("A"), -1, 3 }, { TU("B"), -1, 4 }, { TU("C"), -1, 5 } }, ZINT_ERROR_INVALID_OPTION, 0, 0, 1, "Multiple segments not supported for Version S",
"" ""
}, },
}; };
+4 -4
View File
@@ -1301,10 +1301,10 @@ static void test_upu_s10_input(const testCtx *const p_ctx) {
static const struct item data[] = { static const struct item data[] = {
/* 0*/ { "AB123456789ABC", ZINT_ERROR_TOO_LONG, 0, "Error 834: Input length 14 wrong (12 or 13 characters required)", "" }, /* 0*/ { "AB123456789ABC", ZINT_ERROR_TOO_LONG, 0, "Error 834: Input length 14 wrong (12 or 13 characters required)", "" },
/* 1*/ { "AB1234567AB", ZINT_ERROR_TOO_LONG, 0, "Error 834: Input length 11 wrong (12 or 13 characters required)", "" }, /* 1*/ { "AB1234567AB", ZINT_ERROR_TOO_LONG, 0, "Error 834: Input length 11 wrong (12 or 13 characters required)", "" },
/* 2*/ { "1B123456789AB", ZINT_ERROR_INVALID_DATA, 0, "Error 835: Invalid character in Service Indictor (first 2 characters) (alphabetic only)", "" }, /* 2*/ { "1B123456789AB", ZINT_ERROR_INVALID_DATA, 0, "Error 835: Invalid character in Service Indicator (first 2 characters) (alphabetic only)", "" },
/* 3*/ { "1B12345678AB", ZINT_ERROR_INVALID_DATA, 0, "Error 835: Invalid character in Service Indictor (first 2 characters) (alphabetic only)", "" }, /* 3*/ { "1B12345678AB", ZINT_ERROR_INVALID_DATA, 0, "Error 835: Invalid character in Service Indicator (first 2 characters) (alphabetic only)", "" },
/* 4*/ { "A2123456789AB", ZINT_ERROR_INVALID_DATA, 0, "Error 835: Invalid character in Service Indictor (first 2 characters) (alphabetic only)", "" }, /* 4*/ { "A2123456789AB", ZINT_ERROR_INVALID_DATA, 0, "Error 835: Invalid character in Service Indicator (first 2 characters) (alphabetic only)", "" },
/* 5*/ { "A212345678AB", ZINT_ERROR_INVALID_DATA, 0, "Error 835: Invalid character in Service Indictor (first 2 characters) (alphabetic only)", "" }, /* 5*/ { "A212345678AB", ZINT_ERROR_INVALID_DATA, 0, "Error 835: Invalid character in Service Indicator (first 2 characters) (alphabetic only)", "" },
/* 6*/ { "ABX23456789AB", ZINT_ERROR_INVALID_DATA, 0, "Error 836: Invalid character in Serial Number (middle 9 characters) (digits only)", "" }, /* 6*/ { "ABX23456789AB", ZINT_ERROR_INVALID_DATA, 0, "Error 836: Invalid character in Serial Number (middle 9 characters) (digits only)", "" },
/* 7*/ { "AB12345678XAB", ZINT_ERROR_INVALID_DATA, 0, "Error 836: Invalid character in Serial Number (middle 9 characters) (digits only)", "" }, /* 7*/ { "AB12345678XAB", ZINT_ERROR_INVALID_DATA, 0, "Error 836: Invalid character in Serial Number (middle 9 characters) (digits only)", "" },
/* 8*/ { "ABX2345678AB", ZINT_ERROR_INVALID_DATA, 0, "Error 836: Invalid character in Serial Number (middle 8 characters) (digits only)", "" }, /* 8*/ { "ABX2345678AB", ZINT_ERROR_INVALID_DATA, 0, "Error 836: Invalid character in Serial Number (middle 8 characters) (digits only)", "" },
+8 -8
View File
@@ -433,14 +433,14 @@ static void test_errtxtf(const testCtx *const p_ctx) {
}; };
/* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */
static const struct item data[] = { static const struct item data[] = {
/* 0*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%0$d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid numbered format specifer" }, /* 0*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%0$d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid numbered format specifier" },
/* 1*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%1d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid numbered format specifer" }, /* 1*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%1d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid numbered format specifier" },
/* 2*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%10$d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid numbered format specifer" }, /* 2*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%10$d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid numbered format specifier" },
/* 3*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%10d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid numbered format specifer" }, /* 3*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%10d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid numbered format specifier" },
/* 4*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%00d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid numbered format specifer" }, /* 4*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%00d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid numbered format specifier" },
/* 5*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%000d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid numbered format specifer" }, /* 5*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%000d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid numbered format specifier" },
/* 6*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%001d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid numbered format specifer" }, /* 6*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%001d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid numbered format specifier" },
/* 7*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%0111d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid numbered format specifer" }, /* 7*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%0111d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid numbered format specifier" },
/* 8*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%x", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: unknown format specifier ('%c','%d','%f','%g','%s' only)" }, /* 8*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%x", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: unknown format specifier ('%c','%d','%f','%g','%s' only)" },
/* 9*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%1$10d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: unknown format specifier ('%c','%d','%f','%g','%s' only)" }, /* 9*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%1$10d", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: unknown format specifier ('%c','%d','%f','%g','%s' only)" },
/* 10*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%.0s", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid length precision" }, /* 10*/ { 1, ZINT_ERROR_TOO_LONG, 123, "%.0s", 0, 0, NULL, 0, ZINT_ERROR_ENCODING_PROBLEM, "000: Internal error: invalid length precision" },
+1 -1
View File
@@ -432,7 +432,7 @@ static void test_encode(const testCtx *const p_ctx) {
"78878361115516163138317" "78878361115516163138317"
"77777777777777777777777" "77777777777777777777777"
}, },
/* 4*/ { UNICODE_MODE, 10, -1, -1, ULTRA_COMPRESSION, { 0, 0, "" }, "אולטרה-קוד1234", 0, 13, 19, 1, "AIMD/TSC15032-43 Figure G.3 Same except DCC correct whereas DCC in Figure G.3 is incorrent", /* 4*/ { UNICODE_MODE, 10, -1, -1, ULTRA_COMPRESSION, { 0, 0, "" }, "אולטרה-קוד1234", 0, 13, 19, 1, "AIMD/TSC15032-43 Figure G.3 Same except DCC correct whereas DCC in Figure G.3 is incorrect",
"7777777777777777777" "7777777777777777777"
"7857865565566616657" "7857865565566616657"
"7737853333613351517" "7737853333613351517"
+1 -1
View File
@@ -79,7 +79,7 @@ static struct zint_vector_circle *find_circle(struct zint_symbol *symbol, float
y = rnd3dpf(y); y = rnd3dpf(y);
diameter = rnd3dpf(diameter); diameter = rnd3dpf(diameter);
for (circle = symbol->vector->circles; circle != NULL; circle = circle->next) { for (circle = symbol->vector->circles; circle != NULL; circle = circle->next) {
/* printf("x %.9g, y %.9g, diamter %.9g\n", circle->x, circle->y, circle->diameter); */ /* printf("x %.9g, y %.9g, diameter %.9g\n", circle->x, circle->y, circle->diameter); */
if (rnd3dpf(circle->x) == x && rnd3dpf(circle->y) == y) { if (rnd3dpf(circle->x) == x && rnd3dpf(circle->y) == y) {
if (diameter) { if (diameter) {
if (rnd3dpf(circle->diameter) == diameter) { if (rnd3dpf(circle->diameter) == diameter) {
+3 -3
View File
@@ -2,7 +2,7 @@
/* Generate ECI multibyte tables from unicode.org mapping files */ /* Generate ECI multibyte tables from unicode.org mapping files */
/* /*
libzint - the open source barcode library libzint - the open source barcode library
Copyright (C) 2022-2023 Robin Stuart <rstuart114@gmail.com> Copyright (C) 2022-2025 Robin Stuart <rstuart114@gmail.com>
*/ */
/* SPDX-License-Identifier: BSD-3-Clause */ /* SPDX-License-Identifier: BSD-3-Clause */
/* /*
@@ -357,7 +357,7 @@ foreach ($lines as $line) {
continue; continue;
} }
$u = hexdec($matches[2]); $u = hexdec($matches[2]);
// PUA characters (user-defined range), dealt with programatically by `u_sjis()` // PUA characters (user-defined range), dealt with programmatically by `u_sjis()`
// See CJKV Information Processing by Ken Lunde, 2nd ed., Table 4-86, p.286 // See CJKV Information Processing by Ken Lunde, 2nd ed., Table 4-86, p.286
// https://file.allitebooks.com/20160708/CJKV%20Information%20Processing.pdf // https://file.allitebooks.com/20160708/CJKV%20Information%20Processing.pdf
if ($u >= 0xE000 && $u <= 0xE757) { if ($u >= 0xE000 && $u <= 0xE757) {
@@ -621,7 +621,7 @@ foreach ($lines as $line) {
if (isset($in_gbk[$u])) { if (isset($in_gbk[$u])) {
continue; continue;
} }
// User-defined, dealt with programatically by `u_gb18030()` // User-defined, dealt with programmatically by `u_gb18030()`
if ($u >= 0xE000 && $u <= 0xE765) { if ($u >= 0xE000 && $u <= 0xE765) {
continue; continue;
} }
+1 -1
View File
@@ -851,7 +851,7 @@ static int ult_generate_codewords_segs(struct zint_symbol *symbol, struct zint_s
/* ECI indicates use of character set within ISO/IEC 8859 */ /* ECI indicates use of character set within ISO/IEC 8859 */
codewords[0] = 257 + (eci - 3); codewords[0] = 257 + (eci - 3);
if (codewords[0] > 267) { if (codewords[0] > 267) {
/* Avoids ECI 14 for non-existant ISO/IEC 8859-12 */ /* Avoids ECI 14 for non-existent ISO/IEC 8859-12 */
codewords[0]--; codewords[0]--;
} }
} else if (eci > 18 && eci <= 898) { } else if (eci > 18 && eci <= 898) {
+1 -1
View File
@@ -65,7 +65,7 @@ public:
int inputMode() const; // `symbol->input_mode` int inputMode() const; // `symbol->input_mode`
void setInputMode(int input_mode); void setInputMode(int input_mode);
/* Note text/eci and segs are mutally exclusive */ /* Note text/eci and segs are mutually exclusive */
/* Input data (segment 0 text) */ /* Input data (segment 0 text) */
QString text() const; QString text() const;
+7 -7
View File
@@ -1162,7 +1162,7 @@ class="btn" alt="eye" /> buttons which invoke a colour picker.</p>
alt="The colour picker tool" /> alt="The colour picker tool" />
<figcaption aria-hidden="true">The colour picker tool</figcaption> <figcaption aria-hidden="true">The colour picker tool</figcaption>
</figure> </figure>
<p>(Note that to change the colours visually, the luminence slider, the <p>(Note that to change the colours visually, the luminance slider, the
long narrow column on the right, must be adjusted.) The color picker long narrow column on the right, must be adjusted.) The color picker
only deals in RGB(A), and will overwrite any CMYK values with RGB(A) only deals in RGB(A), and will overwrite any CMYK values with RGB(A)
values once <code>"OK"</code> is selected.</p> values once <code>"OK"</code> is selected.</p>
@@ -2307,8 +2307,8 @@ output, text will not be printed for scales less than 1.</p>
X-dimension of 0.2 (or for MaxiCode EMF output, 4). The maximum scale X-dimension of 0.2 (or for MaxiCode EMF output, 4). The maximum scale
for both raster and vector is 200.</p> for both raster and vector is 200.</p>
<p>To summarize the more intricate details:</p> <p>To summarize the more intricate details:</p>
<div id="tbl:scaling_multiplers" class="tablenos"> <div id="tbl:scaling_multipliers" class="tablenos">
<table id="tbl:scaling_multiplers" style="width:92%;" <table id="tbl:scaling_multipliers" style="width:92%;"
data-tag=": Scaling Multipliers and Minima"> data-tag=": Scaling Multipliers and Minima">
<caption><span>Table : Scaling Multipliers and Minima</span> </caption> <caption><span>Table : Scaling Multipliers and Minima</span> </caption>
<colgroup> <colgroup>
@@ -5178,7 +5178,7 @@ alphanumeric, and is of the form:</p>
Country Code, or the last 10 characters of the Tracking Number are Country Code, or the last 10 characters of the Tracking Number are
non-numeric.</p> non-numeric.</p>
<p>Zint formats the Human Readable Text as specified by DPD, leaving out <p>Zint formats the Human Readable Text as specified by DPD, leaving out
the identication tag, and adds a modulo-36 check character to the text the identification tag, and adds a modulo-36 check character to the text
(not to the barcode itself), thus:</p> (not to the barcode itself), thus:</p>
<p><code>PPPP PPP TTTT TTTT TTTT TT SSS CCC D</code></p> <p><code>PPPP PPP TTTT TTTT TTTT TT SSS CCC D</code></p>
<p>By default a top boundary bar is added, with default width 3X. The <p>By default a top boundary bar is added, with default width 3X. The
@@ -8328,7 +8328,7 @@ other countries.</p>
<p>Mac and macOS are trademarks of Apple Inc., registered in the U.S. <p>Mac and macOS are trademarks of Apple Inc., registered in the U.S.
and other countries.</p> and other countries.</p>
<p>The Zint logo is derived from “SF Planetary Orbiter” font by <p>The Zint logo is derived from “SF Planetary Orbiter” font by
ShyFoundary.</p> ShyFoundry.</p>
<p>Zint.org.uk website design and hosting provided by Robert <p>Zint.org.uk website design and hosting provided by Robert
Elliott.</p> Elliott.</p>
<h2 id="patent-issues">7.2 Patent Issues</h2> <h2 id="patent-issues">7.2 Patent Issues</h2>
@@ -8938,7 +8938,7 @@ class="sourceCode bash"><code class="sourceCode bash"><span id="cb125-1"><a href
<div class="sourceCode" id="cb126"><pre <div class="sourceCode" id="cb126"><pre
class="sourceCode bash"><code class="sourceCode bash"><span id="cb126-1"><a href="#cb126-1" aria-hidden="true" tabindex="-1"></a><span class="ex">package</span> require zint</span> class="sourceCode bash"><code class="sourceCode bash"><span id="cb126-1"><a href="#cb126-1" aria-hidden="true" tabindex="-1"></a><span class="ex">package</span> require zint</span>
<span id="cb126-2"><a href="#cb126-2" aria-hidden="true" tabindex="-1"></a><span class="ex">zint</span> help</span></code></pre></div> <span id="cb126-2"><a href="#cb126-2" aria-hidden="true" tabindex="-1"></a><span class="ex">zint</span> help</span></code></pre></div>
<p>which will show the usage message, with options very similiar to the <p>which will show the usage message, with options very similar to the
Zint CLI. (One notable difference is that boolean options such as Zint CLI. (One notable difference is that boolean options such as
<code>-bold</code> take a <code>1</code> or <code>0</code> as an <code>-bold</code> take a <code>1</code> or <code>0</code> as an
argument.)</p> argument.)</p>
@@ -9676,7 +9676,7 @@ class="sourceCode bash"><code class="sourceCode bash"><span id="cb138-1"><a href
<p>Please send bug reports to <p>Please send bug reports to
https://sourceforge.net/p/zint/tickets/.</p> https://sourceforge.net/p/zint/tickets/.</p>
<h2 id="see-also">SEE ALSO</h2> <h2 id="see-also">SEE ALSO</h2>
<p>Full documention for <code>zint</code> (and the API <p>Full documentation for <code>zint</code> (and the API
<code>libzint</code> and the GUI <code>zint-qt</code>) is available <code>libzint</code> and the GUI <code>zint-qt</code>) is available
from</p> from</p>
<pre><code> https://zint.org.uk/manual/</code></pre> <pre><code> https://zint.org.uk/manual/</code></pre>
+5 -5
View File
@@ -386,7 +386,7 @@ colour picker.
![The colour picker tool](images/gui_colour.png){.pop} ![The colour picker tool](images/gui_colour.png){.pop}
(Note that to change the colours visually, the luminence slider, the long narrow (Note that to change the colours visually, the luminance slider, the long narrow
column on the right, must be adjusted.) The color picker only deals in RGB(A), column on the right, must be adjusted.) The color picker only deals in RGB(A),
and will overwrite any CMYK values with RGB(A) values once `"OK"` is selected. and will overwrite any CMYK values with RGB(A) values once `"OK"` is selected.
@@ -1122,7 +1122,7 @@ Yes Vector (non-EMF) 2 0.1 N/A
Yes EMF 40 0.1 N/A Yes EMF 40 0.1 N/A
----------------------------------------------------------------- -----------------------------------------------------------------
Table: {#tbl:scaling_multiplers tag=": Scaling Multipliers and Minima"} Table: {#tbl:scaling_multipliers tag=": Scaling Multipliers and Minima"}
### 4.9.1 Scaling by X-dimension and Resolution ### 4.9.1 Scaling by X-dimension and Resolution
@@ -3412,7 +3412,7 @@ A warning will be generated if the Service Code, the Destination Country Code,
or the last 10 characters of the Tracking Number are non-numeric. or the last 10 characters of the Tracking Number are non-numeric.
Zint formats the Human Readable Text as specified by DPD, leaving out the Zint formats the Human Readable Text as specified by DPD, leaving out the
identication tag, and adds a modulo-36 check character to the text (not to the identification tag, and adds a modulo-36 check character to the text (not to the
barcode itself), thus: barcode itself), thus:
`PPPP PPP TTTT TTTT TTTT TT SSS CCC D` `PPPP PPP TTTT TTTT TTTT TT SSS CCC D`
@@ -4957,7 +4957,7 @@ countries.
Mac and macOS are trademarks of Apple Inc., registered in the U.S. and other Mac and macOS are trademarks of Apple Inc., registered in the U.S. and other
countries. countries.
The Zint logo is derived from "SF Planetary Orbiter" font by ShyFoundary. The Zint logo is derived from "SF Planetary Orbiter" font by ShyFoundry.
Zint.org.uk website design and hosting provided by Robert Elliott. Zint.org.uk website design and hosting provided by Robert Elliott.
@@ -5225,7 +5225,7 @@ package require zint
zint help zint help
``` ```
which will show the usage message, with options very similiar to the Zint CLI. which will show the usage message, with options very similar to the Zint CLI.
(One notable difference is that boolean options such as `-bold` take a `1` or (One notable difference is that boolean options such as `-bold` take a `1` or
`0` as an argument.) `0` as an argument.)
+6 -6
View File
@@ -552,7 +552,7 @@ which invoke a colour picker.
[The colour picker tool] [The colour picker tool]
(Note that to change the colours visually, the luminence slider, the long narrow (Note that to change the colours visually, the luminance slider, the long narrow
column on the right, must be adjusted.) The color picker only deals in RGB(A), column on the right, must be adjusted.) The color picker only deals in RGB(A),
and will overwrite any CMYK values with RGB(A) values once "OK" is selected. and will overwrite any CMYK values with RGB(A) values once "OK" is selected.
@@ -3282,7 +3282,7 @@ A warning will be generated if the Service Code, the Destination Country Code,
or the last 10 characters of the Tracking Number are non-numeric. or the last 10 characters of the Tracking Number are non-numeric.
Zint formats the Human Readable Text as specified by DPD, leaving out the Zint formats the Human Readable Text as specified by DPD, leaving out the
identication tag, and adds a modulo-36 check character to the text (not to the identification tag, and adds a modulo-36 check character to the text (not to the
barcode itself), thus: barcode itself), thus:
PPPP PPP TTTT TTTT TTTT TT SSS CCC D PPPP PPP TTTT TTTT TTTT TT SSS CCC D
@@ -4749,7 +4749,7 @@ countries.
Mac and macOS are trademarks of Apple Inc., registered in the U.S. and other Mac and macOS are trademarks of Apple Inc., registered in the U.S. and other
countries. countries.
The Zint logo is derived from “SF Planetary Orbiter” font by ShyFoundary. The Zint logo is derived from “SF Planetary Orbiter” font by ShyFoundry.
Zint.org.uk website design and hosting provided by Robert Elliott. Zint.org.uk website design and hosting provided by Robert Elliott.
@@ -5000,7 +5000,7 @@ and ignoring the Tk window click back to the command prompt "%" and type:
package require zint package require zint
zint help zint help
which will show the usage message, with options very similiar to the Zint CLI. which will show the usage message, with options very similar to the Zint CLI.
(One notable difference is that boolean options such as -bold take a 1 or 0 as (One notable difference is that boolean options such as -bold take a 1 or 0 as
an argument.) an argument.)
@@ -5701,8 +5701,8 @@ Please send bug reports to https://sourceforge.net/p/zint/tickets/.
SEE ALSO SEE ALSO
Full documention for zint (and the API libzint and the GUI zint-qt) is available Full documentation for zint (and the API libzint and the GUI zint-qt) is
from available from
https://zint.org.uk/manual/ https://zint.org.uk/manual/
+2 -2
View File
@@ -713,8 +713,8 @@ zint \-b EAN13 \-\-batch \-i \(aqean13nos.txt\(aq \-o \(aqean\(ti\(ti\(ti.gif\(a
.SH BUGS .SH BUGS
Please send bug reports to https://sourceforge.net/p/zint/tickets/. Please send bug reports to https://sourceforge.net/p/zint/tickets/.
.SH SEE ALSO .SH SEE ALSO
Full documention for \f[CR]zint\f[R] (and the API \f[CR]libzint\f[R] and Full documentation for \f[CR]zint\f[R] (and the API \f[CR]libzint\f[R]
the GUI \f[CR]zint\-qt\f[R]) is available from and the GUI \f[CR]zint\-qt\f[R]) is available from
.IP .IP
.EX .EX
https://zint.org.uk/manual/ https://zint.org.uk/manual/
+1 -1
View File
@@ -640,7 +640,7 @@ Please send bug reports to https://sourceforge.net/p/zint/tickets/.
# SEE ALSO # SEE ALSO
Full documention for `zint` (and the API `libzint` and the GUI `zint-qt`) is available from Full documentation for `zint` (and the API `libzint` and the GUI `zint-qt`) is available from
https://zint.org.uk/manual/ https://zint.org.uk/manual/
+1 -1
View File
@@ -31,7 +31,7 @@ def isolate_tag(tag):
else: else:
stage += tag stage += tag
# Add the right amount of indendation (indentation X 4 spaces) # Add the right amount of indentation (indentation X 4 spaces)
def add_indent(): def add_indent():
global indentation global indentation
retval = "" retval = ""
+1 -1
View File
@@ -319,7 +319,7 @@ static int validate_float(const char source[], const int allow_neg, float *p_val
int_len = dot ? (int) (dot - source) : (int) strlen(source); int_len = dot ? (int) (dot - source) : (int) strlen(source);
if (int_len > 9) { if (int_len > 9) {
cpy_str(errbuf, 64, "integer part must be 7 digits maximum"); /* Say 7 not 9 to "manage expections" */ cpy_str(errbuf, 64, "integer part must be 7 digits maximum"); /* Say 7 not 9 to "manage expectations" */
return 0; return 0;
} }
if (int_len) { if (int_len) {