mirror of
https://git.code.sf.net/p/zint/code
synced 2025-05-09 13:41:59 -04:00
CODE128: ***2.14.0 regression fix***
set C1 start latch lengths to max (was 0) to prevent C1 being selected initially - was causing StartC to be omitted, e.g. for "12é"
This commit is contained in:
parent
bfcc398c35
commit
174bbf06a8
3 changed files with 27 additions and 4 deletions
|
@ -1,6 +1,11 @@
|
||||||
Version 2.14.0.9 (dev) not released yet (2025-02-20)
|
Version 2.14.0.9 (dev) not released yet (2025-02-23)
|
||||||
====================================================
|
====================================================
|
||||||
|
|
||||||
|
***2.14.0 regression fix***
|
||||||
|
---------------------------
|
||||||
|
- CODE128: start code no longer omitted for data starting with numerics followed
|
||||||
|
by extended ASCII (Latin-1)
|
||||||
|
|
||||||
**Incompatible changes**
|
**Incompatible changes**
|
||||||
------------------------
|
------------------------
|
||||||
- New `text_length` field in `symbol` (useful for new output option
|
- New `text_length` field in `symbol` (useful for new output option
|
||||||
|
@ -16,6 +21,7 @@ Changes
|
||||||
|
|
||||||
Bugs
|
Bugs
|
||||||
----
|
----
|
||||||
|
- CODE128: fix 2.14.0 regression (see above), never start in mode C1
|
||||||
- CODE32: ignore `option_2` (check digit options)
|
- CODE32: ignore `option_2` (check digit options)
|
||||||
- PZN: ignore `option_2` (check digit options) except for indicates PZN7 only
|
- PZN: ignore `option_2` (check digit options) except for indicates PZN7 only
|
||||||
- DPD: exclude DEL from ident tag also
|
- DPD: exclude DEL from ident tag also
|
||||||
|
|
|
@ -122,9 +122,9 @@ static const char c128_start_latch_seq[3][C128_STATES][4] = {
|
||||||
};
|
};
|
||||||
static const char c128_start_latch_len[3][C128_STATES] = { /* Lengths of above */
|
static const char c128_start_latch_len[3][C128_STATES] = { /* Lengths of above */
|
||||||
/* A0 B0 A1 B1 C0 C1 (not used) */
|
/* A0 B0 A1 B1 C0 C1 (not used) */
|
||||||
{ 0, 1, 1, 3, 3, 1 }, /* Normal */
|
{ 0, 1, 1, 3, 3, 1, 64 }, /* Normal */
|
||||||
{ 0, 2, 2, 4, 4, 2 }, /* GS1_MODE */
|
{ 0, 2, 2, 4, 4, 2, 64 }, /* GS1_MODE */
|
||||||
{ 0, 2, 2, 4, 4, 3 }, /* READER_INIT */
|
{ 0, 2, 2, 4, 4, 3, 64 }, /* READER_INIT */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Output cost (length) for Code Sets A/B */
|
/* Output cost (length) for Code Sets A/B */
|
||||||
|
@ -255,6 +255,7 @@ static int c128_set_values(const unsigned char source[], const int length, const
|
||||||
if (cset != prior_cset) {
|
if (cset != prior_cset) {
|
||||||
int j;
|
int j;
|
||||||
if (prior_cset == 0) {
|
if (prior_cset == 0) {
|
||||||
|
assert(cset != C128_C1);
|
||||||
for (j = 0; j < c128_start_latch_len[start_idx][cset]; j++) {
|
for (j = 0; j < c128_start_latch_len[start_idx][cset]; j++) {
|
||||||
values[glyph_count++] = c128_start_latch_seq[start_idx][cset][j];
|
values[glyph_count++] = c128_start_latch_seq[start_idx][cset][j];
|
||||||
}
|
}
|
||||||
|
|
|
@ -559,6 +559,22 @@ static void test_input(const testCtx *const p_ctx) {
|
||||||
/*122*/ { DATA_MODE | EXTRA_ESCAPE_MODE, "\\^A\342\342\\^B\202\202", -1, 0, 156, 0, "(14) 103 101 101 98 66 98 66 100 98 66 98 66 72 106", "StartA FNC4 FNC4 ShB 226(E2) ShB 226(E2) CodeB ShA 130(82) ShA 130(82); BWIPP different encodation" },
|
/*122*/ { DATA_MODE | EXTRA_ESCAPE_MODE, "\\^A\342\342\\^B\202\202", -1, 0, 156, 0, "(14) 103 101 101 98 66 98 66 100 98 66 98 66 72 106", "StartA FNC4 FNC4 ShB 226(E2) ShB 226(E2) CodeB ShA 130(82) ShA 130(82); BWIPP different encodation" },
|
||||||
/*123*/ { DATA_MODE | EXTRA_ESCAPE_MODE, "\\^A\342\342\342\342\342\\^Baaaaa", -1, 0, 255, 0, "(23) 103 101 101 98 66 98 66 98 66 98 66 98 66 100 100 100 65 65 65 65 65 46 106", "BWIPP different encodation" },
|
/*123*/ { DATA_MODE | EXTRA_ESCAPE_MODE, "\\^A\342\342\342\342\342\\^Baaaaa", -1, 0, 255, 0, "(23) 103 101 101 98 66 98 66 98 66 98 66 98 66 100 100 100 65 65 65 65 65 46 106", "BWIPP different encodation" },
|
||||||
/*124*/ { DATA_MODE | EXTRA_ESCAPE_MODE, "\\^A\342\012\342\342\342\\^B\202\342\012\012", -1, 0, 277, 0, "(25) 103 101 98 66 74 101 101 98 66 98 66 98 66 100 98 66 66 100 100 98 74 98 74 41 106", "BWIPP different encodation" },
|
/*124*/ { DATA_MODE | EXTRA_ESCAPE_MODE, "\\^A\342\012\342\342\342\\^B\202\342\012\012", -1, 0, 277, 0, "(25) 103 101 98 66 74 101 101 98 66 98 66 98 66 100 98 66 66 100 100 98 74 98 74 41 106", "BWIPP different encodation" },
|
||||||
|
/*125*/ { UNICODE_MODE, "12é", -1, 0, 79, 0, "(7) 105 12 100 100 73 85 106", "**2.14.0 regression*** StartC 12 CodeB FNC4 é; BWIPP different encodation (StartB)" },
|
||||||
|
/*126*/ { UNICODE_MODE, "123é", -1, 0, 90, 0, "(8) 105 12 100 19 100 73 6 106", "StartC 12 CodeB 3 FNC4 é; BWIPP different encodation (StartB)" },
|
||||||
|
/*127*/ { UNICODE_MODE, "1234é", -1, 0, 90, 1, "(8) 105 12 34 100 100 73 14 106", "StartC 12 34 CodeB FNC4 é" },
|
||||||
|
/*128*/ { UNICODE_MODE, "123456é", -1, 0, 101, 1, "(9) 105 12 34 56 100 100 73 43 106", "StartC 12 34 56 CodeB FNC4 é" },
|
||||||
|
/*129*/ { UNICODE_MODE, "1234567é", -1, 0, 112, 1, "(10) 105 12 34 56 100 23 100 73 22 106", "StartC 12 34 56 CodeB 7 FNC4 é" },
|
||||||
|
/*130*/ { UNICODE_MODE, "1é", -1, 0, 68, 1, "(6) 104 17 100 73 25 106", "StartB 1 FNC4 é" },
|
||||||
|
/*131*/ { UNICODE_MODE | EXTRA_ESCAPE_MODE, "\\^C12é", -1, 0, 79, 0, "(7) 105 12 100 100 73 85 106", "StartC 12 CodeB FNC4 é; BWIPP different encodation (StartB)" },
|
||||||
|
/*132*/ { UNICODE_MODE | EXTRA_ESCAPE_MODE, "\\^C1é", -1, 0, 68, 1, "(6) 104 17 100 73 25 106", "StartB 1 FNC4 é" },
|
||||||
|
/*133*/ { UNICODE_MODE | EXTRA_ESCAPE_MODE, "\\^Cé", -1, 0, 57, 1, "(5) 104 100 73 41 106", "StartB FNC4 é" },
|
||||||
|
/*134*/ { UNICODE_MODE, "12é12", -1, 0, 101, 0, "(9) 105 12 100 100 73 99 12 34 106", "StartC 12 CodeB FNC4 é CodeC 12; BWIPP different encodation (StartB)" },
|
||||||
|
/*135*/ { UNICODE_MODE, "1234é12", -1, 0, 112, 0, "(10) 105 12 34 100 100 73 99 12 74 106", "StartC 12 34 CodeB FNC4 é CodeC 12; BWIPP different encodation (CodeB)" },
|
||||||
|
/*136*/ { UNICODE_MODE, "1234é1234", -1, 0, 123, 1, "(11) 105 12 34 100 100 73 99 12 34 37 106", "StartC 12 34 CodeB FNC4 é CodeC 12 34" },
|
||||||
|
/*137*/ { DATA_MODE, "12\200", -1, 0, 79, 0, "(7) 105 12 101 101 64 54 106", "StartC 12 CodeA FNC4 PAD; BWIPP different encodation (StartA)" },
|
||||||
|
/*138*/ { DATA_MODE, "1234\200", -1, 0, 90, 1, "(8) 105 12 34 101 101 64 79 106", "StartC 12 34 CodeA FNC4 PAD" },
|
||||||
|
/*139*/ { UNICODE_MODE, "12é12é", -1, 0, 123, 0, "(11) 105 12 100 100 73 17 18 100 73 17 106", "StartC 12 CodeB FNC4 é 1 2 FNC4 é; BWIPP different encodation (StartB)" },
|
||||||
|
/*140*/ { UNICODE_MODE, "1234é123456é", -1, 0, 167, 1, "(15) 105 12 34 100 100 73 99 12 34 56 100 100 73 15 106", "StartC 12 34 CodeB FNC4 é CodeC 12 34 56 CodeB FNC4 é" },
|
||||||
};
|
};
|
||||||
const int data_size = ARRAY_SIZE(data);
|
const int data_size = ARRAY_SIZE(data);
|
||||||
int i, length, ret;
|
int i, length, ret;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue