mirror of
https://git.code.sf.net/p/zint/code
synced 2025-06-01 07:38:26 -04:00
Bugfix: increase ECC if there is capacity
Bug found by Michael
This commit is contained in:
parent
3893f6f158
commit
94733dd5f5
1 changed files with 14 additions and 16 deletions
|
@ -1448,22 +1448,20 @@ int han_xin(struct zint_symbol *symbol, const unsigned char source[], int length
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If there is spare capacity, increase the level of ECC */
|
/* If there is spare capacity, increase the level of ECC */
|
||||||
switch (ecc_level) {
|
|
||||||
case 1:
|
if ((ecc_level == 1) && (est_codewords < hx_data_codewords_L2[version - 1])) {
|
||||||
if (est_codewords < hx_data_codewords_L2[version - 1]) {
|
ecc_level = 2;
|
||||||
ecc_level = 2;
|
data_codewords = hx_data_codewords_L2[version - 1];
|
||||||
data_codewords = hx_data_codewords_L2[version - 1];
|
}
|
||||||
}
|
|
||||||
case 2:
|
if ((ecc_level == 2) && (est_codewords < hx_data_codewords_L3[version - 1])) {
|
||||||
if (est_codewords < hx_data_codewords_L3[version - 1]) {
|
ecc_level = 3;
|
||||||
ecc_level = 3;
|
data_codewords = hx_data_codewords_L3[version - 1];
|
||||||
data_codewords = hx_data_codewords_L3[version - 1];
|
}
|
||||||
}
|
|
||||||
case 3:
|
if ((ecc_level == 3) && (est_codewords < hx_data_codewords_L4[version - 1])) {
|
||||||
if (est_codewords < hx_data_codewords_L4[version - 1]) {
|
ecc_level = 4;
|
||||||
ecc_level = 4;
|
data_codewords = hx_data_codewords_L4[version - 1];
|
||||||
data_codewords = hx_data_codewords_L4[version - 1];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//printf("Version %d, ECC %d\n", version, ecc_level);
|
//printf("Version %d, ECC %d\n", version, ecc_level);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue