mirror of
https://github.com/zint/zint
synced 2024-11-16 20:57:25 +13:00
This commit is contained in:
parent
737ffd4ce0
commit
194a30e6c5
@ -249,7 +249,7 @@ static int aztec_text_process(const unsigned char source[], const size_t src_len
|
||||
// Reduce two letter combinations to one codeword marked as [abcd] in Punct mode
|
||||
i = 0;
|
||||
j = 0;
|
||||
do {
|
||||
while (i < (int) src_len) {
|
||||
if ((source[i] == 13) && (source[i + 1] == 10)) { // CR LF
|
||||
reduced_source[j] = 'a';
|
||||
reduced_encode_mode[j] = encode_mode[i];
|
||||
@ -272,7 +272,7 @@ static int aztec_text_process(const unsigned char source[], const size_t src_len
|
||||
i++;
|
||||
}
|
||||
j++;
|
||||
} while (i < (int) src_len);
|
||||
}
|
||||
|
||||
reduced_length = j;
|
||||
|
||||
@ -449,7 +449,7 @@ static int aztec_text_process(const unsigned char source[], const size_t src_len
|
||||
|
||||
if (reduced_encode_mode[i] != current_mode) {
|
||||
|
||||
for (count = 0; ((i + count) <= reduced_length) && (reduced_encode_mode[i + count] == reduced_encode_mode[i]); count++);
|
||||
for (count = 0; ((i + count) < reduced_length) && (reduced_encode_mode[i + count] == reduced_encode_mode[i]); count++);
|
||||
next_mode = get_next_mode(reduced_encode_mode, reduced_length, i);
|
||||
|
||||
if (reduced_encode_mode[i] == 'P') {
|
||||
@ -1125,30 +1125,31 @@ INTERNAL int aztec(struct zint_symbol *symbol, unsigned char source[], const siz
|
||||
j = 0;
|
||||
count = 0;
|
||||
for (i = 0; i < data_length; i++) {
|
||||
adjusted_string[j] = binary_string[i];
|
||||
j++;
|
||||
|
||||
if (binary_string[i] == '1') {
|
||||
count++;
|
||||
}
|
||||
|
||||
|
||||
if ((j + 1) % codeword_size == 0) {
|
||||
// Last bit of codeword
|
||||
/* 7.3.1.2 "whenever the first B-1 bits ... are all “0”s, then a dummy “1” is inserted..."
|
||||
* "Similarly a message codeword that starts with B-1 “1”s has a dummy “0” inserted..." */
|
||||
|
||||
if (count == (codeword_size - 1)) {
|
||||
// Codeword of all '1's
|
||||
// Codeword of B-1 '1's
|
||||
adjusted_string[j] = '0';
|
||||
j++;
|
||||
}
|
||||
|
||||
|
||||
if (count == 0) {
|
||||
// Codeword of all '0's
|
||||
// Codeword of B-1 '0's
|
||||
adjusted_string[j] = '1';
|
||||
j++;
|
||||
}
|
||||
|
||||
|
||||
count = 0;
|
||||
} else if (binary_string[i] == '1') { /* Skip B so only counting B-1 */
|
||||
count++;
|
||||
}
|
||||
|
||||
adjusted_string[j] = binary_string[i];
|
||||
j++;
|
||||
}
|
||||
adjusted_string[j] = '\0';
|
||||
adjusted_length = j;
|
||||
@ -1177,17 +1178,16 @@ INTERNAL int aztec(struct zint_symbol *symbol, unsigned char source[], const siz
|
||||
adjusted_string[adjusted_length - 1] = '0';
|
||||
}
|
||||
|
||||
/*
|
||||
if (debug) {
|
||||
printf("Codewords:\n");
|
||||
for (i = 0; i < (adjusted_length / codeword_size); i++) {
|
||||
for (j = 0; j < codeword_size; j++) {
|
||||
printf("%c", adjusted_string[(i * codeword_size) + j]);
|
||||
}
|
||||
printf("\n");
|
||||
printf(" ");
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
*/
|
||||
|
||||
} while (adjusted_length > data_maxsize);
|
||||
/* This loop will only repeat on the rare occasions when the rule about not having all 1s or all 0s
|
||||
@ -1228,34 +1228,32 @@ INTERNAL int aztec(struct zint_symbol *symbol, unsigned char source[], const siz
|
||||
j = 0;
|
||||
count = 0;
|
||||
for (i = 0; i < data_length; i++) {
|
||||
adjusted_string[j] = binary_string[i];
|
||||
j++;
|
||||
|
||||
if (binary_string[i] == '1') {
|
||||
count++;
|
||||
}
|
||||
|
||||
|
||||
if ((j + 1) % codeword_size == 0) {
|
||||
// Last bit of codeword
|
||||
|
||||
if (count == (codeword_size - 1)) {
|
||||
// Codeword of all '1's
|
||||
// Codeword of B-1 '1's
|
||||
adjusted_string[j] = '0';
|
||||
j++;
|
||||
}
|
||||
|
||||
|
||||
if (count == 0) {
|
||||
// Codeword of all '0's
|
||||
// Codeword of B-1 '0's
|
||||
adjusted_string[j] = '1';
|
||||
j++;
|
||||
}
|
||||
|
||||
|
||||
count = 0;
|
||||
} else if (binary_string[i] == '1') { /* Skip B so only counting B-1 */
|
||||
count++;
|
||||
}
|
||||
|
||||
adjusted_string[j] = binary_string[i];
|
||||
j++;
|
||||
}
|
||||
adjusted_string[j] = '\0';
|
||||
adjusted_length = j;
|
||||
adjustment_size = adjusted_length - data_length;
|
||||
|
||||
remainder = adjusted_length % codeword_size;
|
||||
|
||||
@ -1297,8 +1295,9 @@ INTERNAL int aztec(struct zint_symbol *symbol, unsigned char source[], const siz
|
||||
for (j = 0; j < codeword_size; j++) {
|
||||
printf("%c", adjusted_string[(i * codeword_size) + j]);
|
||||
}
|
||||
printf("\n");
|
||||
printf(" ");
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -129,7 +129,24 @@ static void test_encode(void)
|
||||
"011000011011010"
|
||||
"111001101100000"
|
||||
},
|
||||
/* 3*/ { BARCODE_AZTEC, UNICODE_MODE, -1, -1, "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", 0, 53, 53, "**NOT SAME** ISO/IEC 24778:2008 Figure I.1 (left) TODO: investigate",
|
||||
/* 3*/ { BARCODE_AZTEC, UNICODE_MODE, -1, 1, "Code 2D!", 0, 15, 15, "ISO/IEC 24778:2008 Figure G.2; specify size",
|
||||
"000110001100000"
|
||||
"000000110000010"
|
||||
"101100001000101"
|
||||
"011111111111100"
|
||||
"111100000001101"
|
||||
"000101111101100"
|
||||
"100101000101111"
|
||||
"001101010101001"
|
||||
"001101000101010"
|
||||
"010101111101001"
|
||||
"100100000001011"
|
||||
"100111111111101"
|
||||
"010001100010010"
|
||||
"011000011011010"
|
||||
"111001101100000"
|
||||
},
|
||||
/* 4*/ { BARCODE_AZTEC, UNICODE_MODE, -1, -1, "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", 0, 53, 53, "**NOT SAME** ISO/IEC 24778:2008 Figure I.1 (left) TODO: investigate",
|
||||
"00010101011010101010101010110101010101010110101010101"
|
||||
"00101010100101010101010101001010101010101001010101010"
|
||||
"11100101011010101010101010110101010101010110101010110"
|
||||
@ -184,7 +201,7 @@ static void test_encode(void)
|
||||
"01010101010010101010101010010101010101010100101010110"
|
||||
"10101010101101010101010101101010101010101011010101001"
|
||||
},
|
||||
/* 4*/ { BARCODE_AZTEC, UNICODE_MODE, -1, -1, "3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333", 0, 53, 53, "**NOT SAME** ISO/IEC 24778:2008 Figure I.1 (right) TODO: investigate",
|
||||
/* 5*/ { BARCODE_AZTEC, UNICODE_MODE, -1, -1, "3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333", 0, 53, 53, "**NOT SAME** ISO/IEC 24778:2008 Figure I.1 (right) TODO: investigate",
|
||||
"00111111111111111111111111111111111111111111111111111"
|
||||
"00000000000000000000000000000000000000000000000000000"
|
||||
"11101111111111111111111111111111111111111111111111101"
|
||||
@ -239,7 +256,7 @@ static void test_encode(void)
|
||||
"00000000000000000000000000000000000000000000000000001"
|
||||
"11111111111111111111111111111111111111111111111111101"
|
||||
},
|
||||
/* 5*/ { BARCODE_AZTEC, GS1_MODE, -1, -1, "[01]03453120000011[17]120508[10]ABCD1234[410]9501101020917", 0, 23, 23, "#189 Follow embedded FLG(n) with FLG(0)",
|
||||
/* 6*/ { BARCODE_AZTEC, GS1_MODE, -1, -1, "[01]03453120000011[17]120508[10]ABCD1234[410]9501101020917", 0, 23, 23, "#189 Follow embedded FLG(n) with FLG(0)",
|
||||
"00100000101111000100100"
|
||||
"00011101100110001010000"
|
||||
"00000111000111101011011"
|
||||
@ -264,7 +281,7 @@ static void test_encode(void)
|
||||
"00010001010101010101011"
|
||||
"11101100000000000010110"
|
||||
},
|
||||
/* 6*/ { BARCODE_AZTEC, GS1_MODE, -1, -1, "[01]95012345678903[3103]000123", 0, 19, 19, "#189 Follow embedded FLG(n) with FLG(0)",
|
||||
/* 7*/ { BARCODE_AZTEC, GS1_MODE, -1, -1, "[01]95012345678903[3103]000123", 0, 19, 19, "#189 Follow embedded FLG(n) with FLG(0)",
|
||||
"0000000100001010101"
|
||||
"0001101111011000000"
|
||||
"0111100100010110100"
|
||||
@ -285,7 +302,7 @@ static void test_encode(void)
|
||||
"1000110111011000101"
|
||||
"1010100000101101001"
|
||||
},
|
||||
/* 7*/ { BARCODE_AZTEC, GS1_MODE, -1, -1, "[01]04610044273252[21]LRFX)k<C7ApWJ[91]003A[92]K8rNAqdvjmdxsmCVuj3FhaoNzQuq7Uff0sHXfz1TT/doiMaGQqNF+VPwMvwVbm1fxjzuDt6jxLCcc8o/tqbEDA==", 0, 45, 45, "#189 Follow embedded FLG(n) with FLG(0)",
|
||||
/* 8*/ { BARCODE_AZTEC, GS1_MODE, -1, -1, "[01]04610044273252[21]LRFX)k<C7ApWJ[91]003A[92]K8rNAqdvjmdxsmCVuj3FhaoNzQuq7Uff0sHXfz1TT/doiMaGQqNF+VPwMvwVbm1fxjzuDt6jxLCcc8o/tqbEDA==", 0, 45, 45, "#189 Follow embedded FLG(n) with FLG(0)",
|
||||
"000000101110011010101010010110011000001010111"
|
||||
"000110001111011100111101101110110000000000011"
|
||||
"001000101100101011000011111111101110111010101"
|
||||
@ -332,7 +349,7 @@ static void test_encode(void)
|
||||
"000011010110101110000101110100000111000011010"
|
||||
"101001110101010110100011010010001111001101101"
|
||||
},
|
||||
/* 8*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, "0", 0, 11, 11, "ISO/IEC 24778:2008 Figure A.1 (1st)",
|
||||
/* 9*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, "0", 0, 11, 11, "ISO/IEC 24778:2008 Figure A.1 (1st)",
|
||||
"11101010101"
|
||||
"11111111111"
|
||||
"01000000010"
|
||||
@ -345,7 +362,7 @@ static void test_encode(void)
|
||||
"01111111111"
|
||||
"00101010100"
|
||||
},
|
||||
/* 9*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, "25", 0, 11, 11, "ISO/IEC 24778:2008 Figure A.1 (2nd)",
|
||||
/* 10*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, "25", 0, 11, 11, "ISO/IEC 24778:2008 Figure A.1 (2nd)",
|
||||
"11101100101"
|
||||
"11111111111"
|
||||
"01000000011"
|
||||
@ -358,7 +375,7 @@ static void test_encode(void)
|
||||
"01111111111"
|
||||
"00100100000"
|
||||
},
|
||||
/* 10*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, "125", 0, 11, 11, "ISO/IEC 24778:2008 Figure A.1 (3rd)",
|
||||
/* 11*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, "125", 0, 11, 11, "ISO/IEC 24778:2008 Figure A.1 (3rd)",
|
||||
"11110101101"
|
||||
"11111111111"
|
||||
"11000000011"
|
||||
@ -371,7 +388,7 @@ static void test_encode(void)
|
||||
"01111111111"
|
||||
"00111101000"
|
||||
},
|
||||
/* 11*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, "255", 0, 11, 11, "ISO/IEC 24778:2008 Figure A.1 (4th)",
|
||||
/* 12*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, "255", 0, 11, 11, "ISO/IEC 24778:2008 Figure A.1 (4th)",
|
||||
"11110101001"
|
||||
"11111111111"
|
||||
"01000000011"
|
||||
|
Loading…
Reference in New Issue
Block a user