From 0b05c7a8c58367252bf1acc86abf1e1e1d20fc88 Mon Sep 17 00:00:00 2001 From: gitlost Date: Tue, 19 May 2026 18:56:45 +0100 Subject: [PATCH] AZTEC: fix not allowing for lowercase AIM id (FNC1 2nd position) --- backend/aztec.c | 10 +- backend/tests/test_aztec.c | 581 ++++++++++++++++++++++++++++++++++--- 2 files changed, 545 insertions(+), 46 deletions(-) diff --git a/backend/aztec.c b/backend/aztec.c index 70266746..874dd898 100644 --- a/backend/aztec.c +++ b/backend/aztec.c @@ -1166,7 +1166,7 @@ static int az_text_process(unsigned char *source, const int length, int bp, char char current_mode = p_current_mode ? *p_current_mode : AZ_U; const char initial_mode = current_mode; const int initial_bp = bp; - const int all_byte_only_or_uld = az_all_byte_only_or_uld(source, length); /* -1 if not */ + const int all_byte_only_or_uld = length > 1 ? az_all_byte_only_or_uld(source, length) : -1; /* -1 if not */ const int debug_print = debug & ZINT_DEBUG_PRINT; #ifdef ZINT_TEST const int debug_skip_all = debug & 2048; /* ZINT_DEBUG_TEST_AZTEC_SKIP_ALL - skip using `all_byte_only_or_uld` */ @@ -1351,7 +1351,11 @@ static int az_text_process_segs(struct zint_symbol *symbol, struct zint_seg segs const int length = segs[0].length; if (position_fnc1) { if (position_fnc1 == 4) { - bp = z_bin_append_posn(AztecChar[AZ_U][source[0]], 5, binary_string, bp); + if (z_islower(source[0])) { + current_mode = AZ_L; + bp = z_bin_append_posn(28, 5, binary_string, bp); /* L/L */ + } + bp = z_bin_append_posn(AztecChar[(int) current_mode][source[0]], 5, binary_string, bp); } else if (position_fnc1 == 5) { current_mode = AZ_D; bp = z_bin_append_posn(30, 5, binary_string, bp); /* D/L */ @@ -1361,7 +1365,7 @@ static int az_text_process_segs(struct zint_symbol *symbol, struct zint_seg segs have_extra_escapes = 1; } if (gs1 || (position_fnc1 <= 4 && length > position_fnc1 && z_isdigit(source[position_fnc1]))) { - assert(current_mode == AZ_U); + assert(current_mode == AZ_U || current_mode == AZ_L); /* Latch to D/L to save a bit */ current_mode = AZ_D; bp = z_bin_append_posn(30, 5, binary_string, bp); /* D/L */ diff --git a/backend/tests/test_aztec.c b/backend/tests/test_aztec.c index f36aea58..4ade8c30 100644 --- a/backend/tests/test_aztec.c +++ b/backend/tests/test_aztec.c @@ -6826,7 +6826,279 @@ static void test_encode(const testCtx *const p_ctx) { "000010001001111" "101110000000011" }, - /*200*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "A\\^1\\^^\\^1", -1, 0, 15, 15, 0, 3, "BWIPP: different encodation, same no. of codewords (does ML before FNC1 in 2nd position)", + /*200*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "A\\^1B", -1, 0, 15, 15, 1, 3, "", + "000101010011000" + "000000010110101" + "011100000100111" + "001111111111101" + "000100000001000" + "000101111101111" + "011101000101000" + "000101010101101" + "000101000101000" + "010101111101001" + "000100000001000" + "000111111111111" + "010011101110000" + "110111101110101" + "111111001000100" + }, + /*201*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "A\\^1B", -1, 0, 15, 15, 1, 3, "", + "000101010011000" + "000000010110101" + "011100000100111" + "001111111111101" + "000100000001000" + "000101111101111" + "011101000101000" + "000101010101101" + "000101000101000" + "010101111101001" + "000100000001000" + "000111111111111" + "010011101110000" + "110111101110101" + "111111001000100" + }, + /*202*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "a\\^1B", -1, 0, 15, 15, 1, 3, "", + "001011000011111" + "111101100001111" + "101100000100110" + "001111111111101" + "001100000001111" + "100101111101000" + "001101000101011" + "000101010101001" + "000101000101111" + "011101111101000" + "000100000001111" + "000111111111110" + "010011011110001" + "110011101011000" + "010001110101101" + }, + /*203*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "a\\^1B", -1, 0, 15, 15, 1, 3, "", + "001011000011111" + "111101100001111" + "101100000100110" + "001111111111101" + "001100000001111" + "100101111101000" + "001101000101011" + "000101010101001" + "000101000101111" + "011101111101000" + "000100000001111" + "000111111111110" + "010011011110001" + "110011101011000" + "010001110101101" + }, + /*204*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "A\\^1@", -1, 0, 15, 15, 0, 3, "BWIPP: different encodation, same no. of codewords (does ML before FNC1 in 2nd position)", + "001010010000000" + "001101011111000" + "011100000100101" + "001111111111100" + "000100000001011" + "000101111101100" + "011101000101011" + "000101010101100" + "000101000101010" + "010101111101010" + "000100000001011" + "110111111111101" + "100011101110000" + "110101110010111" + "100110011001111" + }, + /*205*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "A\\^1@", -1, 0, 15, 15, 0, 3, "BWIPP: see above", + "001010010000000" + "001101011111000" + "011100000100101" + "001111111111100" + "000100000001011" + "000101111101100" + "011101000101011" + "000101010101100" + "000101000101010" + "010101111101010" + "000100000001011" + "110111111111101" + "100011101110000" + "110101110010111" + "100110011001111" + }, + /*206*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "a\\^1@", -1, 0, 15, 15, 0, 3, "BWIPP: see above", + "000011011111101" + "111010001110011" + "101100000100111" + "001111111111110" + "001100000001100" + "100101111101011" + "001101000101000" + "000101010101011" + "000101000101110" + "011101111101010" + "000100000001110" + "000111111111101" + "010011011110001" + "111001111001011" + "010110011111000" + }, + /*207*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "a\\^1@", -1, 0, 15, 15, 0, 3, "BWIPP: see above", + "000011011111101" + "111010001110011" + "101100000100111" + "001111111111110" + "001100000001100" + "100101111101011" + "001101000101000" + "000101010101011" + "000101000101110" + "011101111101010" + "000100000001110" + "000111111111101" + "010011011110001" + "111001111001011" + "010110011111000" + }, + /*208*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "A\\^1+", -1, 0, 15, 15, 1, 3, "", + "000010100100101" + "001101110110001" + "011100000100100" + "001111111111110" + "001100000001101" + "000101111101011" + "011101000101010" + "000101010101011" + "000101000101101" + "011101111101000" + "000100000001101" + "000111111111110" + "010011011110000" + "000111011011001" + "010011000011101" + }, + /*209*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "A\\^1+", -1, 0, 15, 15, 1, 3, "", + "000010100100101" + "001101110110001" + "011100000100100" + "001111111111110" + "001100000001101" + "000101111101011" + "011101000101010" + "000101010101011" + "000101000101101" + "011101111101000" + "000100000001101" + "000111111111110" + "010011011110000" + "000111011011001" + "010011000011101" + }, + /*210*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "a\\^1+", -1, 0, 15, 15, 1, 3, "", + "001101010011111" + "111010111101101" + "101100000100111" + "001111111111111" + "001100000001111" + "100101111101000" + "001101000101010" + "000101010101010" + "000101000101110" + "011101111101011" + "000100000001110" + "000111111111110" + "010011011110000" + "001100011001001" + "000000011000010" + }, + /*211*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "a\\^1+", -1, 0, 15, 15, 1, 3, "", + "001101010011111" + "111010111101101" + "101100000100111" + "001111111111111" + "001100000001111" + "100101111101000" + "001101000101010" + "000101010101010" + "000101000101110" + "011101111101011" + "000100000001110" + "000111111111110" + "010011011110000" + "001100011001001" + "000000011000010" + }, + /*212*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "A\\^10", -1, 0, 15, 15, 1, 3, "", + "000101010011110" + "001101000010001" + "011100000100111" + "011111111111100" + "110100000001010" + "100101111101110" + "001101000101011" + "000101010101101" + "000101000101010" + "010101111101001" + "000100000001011" + "000111111111111" + "010011101110000" + "001001100111001" + "011001000110000" + }, + /*213*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "A\\^10", -1, 0, 15, 15, 1, 3, "", + "000101010011110" + "001101000010001" + "011100000100111" + "011111111111100" + "110100000001010" + "100101111101110" + "001101000101011" + "000101010101101" + "000101000101010" + "010101111101001" + "000100000001011" + "000111111111111" + "010011101110000" + "001001100111001" + "011001000110000" + }, + /*214*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "a\\^10", -1, 0, 15, 15, 1, 3, "", + "001101110011111" + "110010100011001" + "101100000100110" + "001111111111111" + "001100000001100" + "100101111101001" + "111101000101011" + "110101010101001" + "000101000101111" + "001101111101011" + "000100000001110" + "000111111111101" + "010011011110001" + "001111000010111" + "000001001000000" + }, + /*215*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "a\\^10", -1, 0, 15, 15, 1, 3, "", + "001101110011111" + "110010100011001" + "101100000100110" + "001111111111111" + "001100000001100" + "100101111101001" + "111101000101011" + "110101010101001" + "000101000101111" + "001101111101011" + "000100000001110" + "000111111111101" + "010011011110001" + "001111000010111" + "000001001000000" + }, + /*216*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "A\\^1\\^^\\^1", -1, 0, 15, 15, 0, 3, "BWIPP: different encodation, same no. of codewords (does ML before FNC1 in 2nd position)", "001110100001001" "001000110000000" "011100001000100" @@ -6843,7 +7115,7 @@ static void test_encode(const testCtx *const p_ctx) { "111011100001111" "100110110000011" }, - /*201*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "A\\^1\\^^\\^1", -1, 0, 15, 15, 0, 3, "BWIPP: see above", + /*217*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "A\\^1\\^^\\^1", -1, 0, 15, 15, 0, 3, "BWIPP: see above", "000000011101000" "001101101100100" "011100001000100" @@ -6860,7 +7132,41 @@ static void test_encode(const testCtx *const p_ctx) { "111010001001011" "100110000000011" }, - /*202*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "A\\^112\\^134", -1, 0, 15, 15, 1, 3, "", + /*218*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "a\\^1\\^^\\^1", -1, 0, 15, 15, 0, 3, "BWIPP: see above", + "000001010000101" + "110011110111110" + "101100001000101" + "001111111111110" + "000100000001001" + "100101111101001" + "000101000101110" + "001101010101101" + "001101000101110" + "011101111101010" + "000100000001100" + "000111111111110" + "010001010010000" + "111001101100010" + "010111011100000" + }, + /*219*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "a\\^1\\^^\\^1", -1, 0, 15, 15, 0, 3, "BWIPP: see above", + "000000001101000" + "110110001101011" + "101100001000101" + "001111111111101" + "001100000001101" + "100101111101111" + "000101000101101" + "001101010101011" + "001101000101010" + "010101111101000" + "000100000001011" + "000111111111111" + "010001100010010" + "111001100001010" + "010111010000000" + }, + /*220*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "A\\^112\\^134", -1, 0, 15, 15, 1, 3, "", "001011000011101" "000001000001011" "011100001000111" @@ -6877,7 +7183,7 @@ static void test_encode(const testCtx *const p_ctx) { "011001001001011" "010000000000101" }, - /*203*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "A\\^112\\^134", -1, 0, 15, 15, 1, 3, "", + /*221*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "A\\^112\\^134", -1, 0, 15, 15, 1, 3, "", "001011000011101" "000001000001011" "011100001000111" @@ -6894,7 +7200,41 @@ static void test_encode(const testCtx *const p_ctx) { "011001001001011" "010000000000101" }, - /*204*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "12\\^112", -1, 0, 15, 15, 1, 3, "", + /*222*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "a\\^112\\^134", -1, 0, 15, 15, 1, 3, "", + "000101111010100" + "110111011000010" + "101100001000111" + "001111111111101" + "001100000001100" + "100101111101110" + "110101000101100" + "111101010101010" + "001101000101010" + "000101111101001" + "000100000001010" + "000111111111111" + "010001100010001" + "001100001001001" + "000011000000000" + }, + /*223*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "a\\^112\\^134", -1, 0, 15, 15, 1, 3, "", + "000101111010100" + "110111011000010" + "101100001000111" + "001111111111101" + "001100000001100" + "100101111101110" + "110101000101100" + "111101010101010" + "001101000101010" + "000101111101001" + "000100000001010" + "000111111111111" + "010001100010001" + "001100001001001" + "000011000000000" + }, + /*224*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "12\\^112", -1, 0, 15, 15, 1, 3, "", "001011011111110" "110010001011001" "111100000100101" @@ -6911,7 +7251,7 @@ static void test_encode(const testCtx *const p_ctx) { "001110101010101" "000100101111000" }, - /*205*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "12\\^112", -1, 0, 15, 15, 1, 3, "", + /*225*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "12\\^112", -1, 0, 15, 15, 1, 3, "", "001011011111110" "110010001011001" "111100000100101" @@ -6928,7 +7268,7 @@ static void test_encode(const testCtx *const p_ctx) { "001110101010101" "000100101111000" }, - /*206*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "1\\^112", -1, 0, 15, 15, 1, 3, "", + /*226*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "1\\^112", -1, 0, 15, 15, 1, 3, "", "000100100101100" "111010110101101" "111100000100100" @@ -6945,7 +7285,7 @@ static void test_encode(const testCtx *const p_ctx) { "100111001101111" "011011101011110" }, - /*207*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "1\\^112", -1, 0, 15, 15, 1, 3, "", + /*227*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "1\\^112", -1, 0, 15, 15, 1, 3, "", "000100100101100" "111010110101101" "111100000100100" @@ -6962,7 +7302,7 @@ static void test_encode(const testCtx *const p_ctx) { "100111001101111" "011011101011110" }, - /*208*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 6, -1, { 0, 0, "" }, "?\\^1123456ABC\\^1\\^^DEXY\\^11234\\^^\\^1", -1, 0, 23, 23, 0, 3, "BWIPP: different encodation, same no. of codewords", + /*228*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 6, -1, { 0, 0, "" }, "?\\^1123456ABC\\^1\\^^DEXY\\^11234\\^^\\^1", -1, 0, 23, 23, 0, 3, "BWIPP: different encodation, same no. of codewords", "11111011000000000011111" "11100000101100100011001" "00010100111001011100000" @@ -6987,7 +7327,7 @@ static void test_encode(const testCtx *const p_ctx) { "10110010010101000001010" "01011011000001010000000" }, - /*209*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 6, -1, { 0, 0, "" }, "?\\^1123456ABC\\^1\\^^DEXY\\^11234\\^^\\^1", -1, 0, 23, 23, 0, 3, "BWIPP: different encodation, 1 less codeword", + /*229*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 6, -1, { 0, 0, "" }, "?\\^1123456ABC\\^1\\^^DEXY\\^11234\\^^\\^1", -1, 0, 23, 23, 0, 3, "BWIPP: different encodation, 1 less codeword", "00000101100000000011101" "00101100111100100000101" "01011010100011111010001" @@ -7012,7 +7352,7 @@ static void test_encode(const testCtx *const p_ctx) { "00101101100100101001010" "11101100100010010000000" }, - /*210*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 3, -1, -1, 6, -1, { 0, 0, "" }, "\\^1\241\\^1\\^1\241\241\\^1\241\\^1", -1, 0, 23, 23, 1, 3, "", + /*230*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 3, -1, -1, 6, -1, { 0, 0, "" }, "\\^1\241\\^1\\^1\241\241\\^1\241\\^1", -1, 0, 23, 23, 1, 3, "", "00000000010000100111000" "00101000000101100011100" "01110111101010010110110" @@ -7037,7 +7377,7 @@ static void test_encode(const testCtx *const p_ctx) { "00110000010101001001010" "00100010000000000000000" }, - /*211*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 3, -1, -1, 6, -1, { 0, 0, "" }, "\\^1\241\\^1\\^1\241\241\\^1\241\\^1", -1, 0, 23, 23, 1, 3, "", + /*231*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 3, -1, -1, 6, -1, { 0, 0, "" }, "\\^1\241\\^1\\^1\241\241\\^1\241\\^1", -1, 0, 23, 23, 1, 3, "", "00000000010000100111000" "00101000000101100011100" "01110111101010010110110" @@ -7062,7 +7402,7 @@ static void test_encode(const testCtx *const p_ctx) { "00110000010101001001010" "00100010000000000000000" }, - /*212*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 4, -1, -1, 6, -1, { 0, 0, "" }, "A\\^1123456\\^1\\^^\241\\^1", -1, 0, 23, 23, 0, 4, "BWIPP: different encodation (final PS instead of PL) - see below", + /*232*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 4, -1, -1, 6, -1, { 0, 0, "" }, "A\\^1123456\\^1\\^^\241\\^1", -1, 0, 23, 23, 0, 4, "BWIPP: different encodation (final PS instead of PL) - see below", "00100010011010011100001" "01000010101111101100000" "01111010101010000110011" @@ -7087,7 +7427,7 @@ static void test_encode(const testCtx *const p_ctx) { "00110111011100001001001" "10100000101010000000011" }, - /*213*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 4, -1, -1, 6, -1, { 0, 0, "" }, "A\\^1123456\\^1\\^^\241\\^1", -1, 0, 23, 23, 1, 4, "", + /*233*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 4, -1, -1, 6, -1, { 0, 0, "" }, "A\\^1123456\\^1\\^^\241\\^1", -1, 0, 23, 23, 1, 4, "", "00000110100010001000000" "01000001001100010100100" "01101111010000001101000" @@ -7112,7 +7452,57 @@ static void test_encode(const testCtx *const p_ctx) { "00110111011100001001001" "10100000101010000000011" }, - /*214*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 5, -1, -1, 2, -1, { 0, 0, "" }, "12\\^1ABCD\\^1\\^^\\^1\241\\^1", -1, 0, 19, 19, 0, 5, "BWIPP: different encodation", + /*234*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 4, -1, -1, 6, -1, { 0, 0, "" }, "a\\^1123456\\^1\\^^\241\\^1", -1, 0, 23, 23, 0, 4, "BWIPP: different encodation (final PS instead of PL) - see below", + "11000110001010100000110" + "10000110011100100100111" + "00010110011000000001000" + "00110101100101010100101" + "10101100001000000010001" + "11001111111111111110010" + "11010100000000000101100" + "00010101111111110110101" + "00110101000000010101011" + "00110101011111010110111" + "00111101010001010110101" + "01010101010101010101010" + "01011101010001010100010" + "00001101011111010110011" + "00001101000000010110001" + "01101101111111110101001" + "00111100000000000111110" + "00110111111111111110111" + "01100001000001011001110" + "00100010000101000100111" + "00100111100010010111110" + "10101000001101100001010" + "01100110111001100000000" + }, + /*235*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 4, -1, -1, 6, -1, { 0, 0, "" }, "a\\^1123456\\^1\\^^\241\\^1", -1, 0, 23, 23, 1, 4, "", + "11101100110010100000000" + "10000100011110100100001" + "00011100011000100100100" + "00111111011110101111001" + "10101100001000000011001" + "11101111111111111111110" + "11000100000000000100100" + "00110101111111110110001" + "00100101000000010101111" + "00010101011111010111011" + "00101101010001010110001" + "01010101010101010101010" + "01101101010001010100110" + "00101101011111010111111" + "00111101000000010110101" + "01011101111111110101001" + "00001100000000000110010" + "00010111111111111110011" + "01010001000001011001110" + "00000111100111111111111" + "00011101100010100111110" + "10101000001101100001010" + "01100110111001100000000" + }, + /*236*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 5, -1, -1, 2, -1, { 0, 0, "" }, "12\\^1ABCD\\^1\\^^\\^1\241\\^1", -1, 0, 19, 19, 0, 5, "BWIPP: different encodation", "1111000100110000000" "1111001100111100100" "0010101111110110000" @@ -7133,7 +7523,7 @@ static void test_encode(const testCtx *const p_ctx) { "1000110001001000100" "0001111100001010010" }, - /*215*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 5, -1, -1, 2, -1, { 0, 0, "" }, "12\\^1ABCD\\^1\\^^\\^1\241\\^1", -1, 0, 19, 19, 0, 5, "BWIPP: different encodation", + /*237*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 5, -1, -1, 2, -1, { 0, 0, "" }, "12\\^1ABCD\\^1\\^^\\^1\241\\^1", -1, 0, 19, 19, 0, 5, "BWIPP: different encodation", "1101000100110000000" "1100001100111100100" "0000001000010100000" @@ -7154,7 +7544,7 @@ static void test_encode(const testCtx *const p_ctx) { "1000110001001000100" "0001111100001010010" }, - /*216*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 3, -1, -1, -1, -1, { 1, 2, "" }, "\\^112\\^134", -1, 0, 19, 19, 1, 3, "", + /*238*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 3, -1, -1, -1, -1, { 1, 2, "" }, "\\^112\\^134", -1, 0, 19, 19, 1, 3, "", "1101101101001111011" "1001010000110010001" "1110001110010110101" @@ -7175,7 +7565,7 @@ static void test_encode(const testCtx *const p_ctx) { "1001001000001000010" "0000000001110110000" }, - /*217*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 3, -1, -1, -1, -1, { 1, 2, "" }, "\\^112\\^134", -1, 0, 19, 19, 1, 3, "", + /*239*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 3, -1, -1, -1, -1, { 1, 2, "" }, "\\^112\\^134", -1, 0, 19, 19, 1, 3, "", "1101101101001111011" "1001010000110010001" "1110001110010110101" @@ -7196,7 +7586,7 @@ static void test_encode(const testCtx *const p_ctx) { "1001001000001000010" "0000000001110110000" }, - /*218*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 3, -1, -1, -1, -1, { 1, 2, "" }, "A\\^112\\^134", -1, 0, 19, 19, 1, 3, "", + /*240*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 3, -1, -1, -1, -1, { 1, 2, "" }, "A\\^112\\^134", -1, 0, 19, 19, 1, 3, "", "1100111111000011101" "1010110010100001110" "1101110111111000111" @@ -7217,7 +7607,7 @@ static void test_encode(const testCtx *const p_ctx) { "1001001001011101100" "0000000000000001000" }, - /*219*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 3, -1, -1, -1, -1, { 1, 2, "" }, "A\\^112\\^134", -1, 0, 19, 19, 1, 3, "", + /*241*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 3, -1, -1, -1, -1, { 1, 2, "" }, "A\\^112\\^134", -1, 0, 19, 19, 1, 3, "", "1100111111000011101" "1010110010100001110" "1101110111111000111" @@ -7238,7 +7628,49 @@ static void test_encode(const testCtx *const p_ctx) { "1001001001011101100" "0000000000000001000" }, - /*220*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "\\^1", -1, 0, 15, 15, 1, 3, "", + /*242*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 3, -1, -1, -1, -1, { 1, 2, "" }, "a\\^112\\^134", -1, 0, 19, 19, 1, 3, "", + "1111000000000010011" + "1001000001000001100" + "1100100011000001011" + "1100110011011001010" + "0111110101000011011" + "0001111111111110001" + "0101110000000101101" + "0000010111110111000" + "0001010100010111010" + "1111010101010101100" + "1101110100010100000" + "1011110111110110010" + "0001110000000101000" + "0001011111111111000" + "0110000001110001000" + "1011111100000010001" + "1111011111000011101" + "1001001001001000010" + "1000000000000001101" + }, + /*243*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 3, -1, -1, -1, -1, { 1, 2, "" }, "a\\^112\\^134", -1, 0, 19, 19, 1, 3, "", + "1111000000000010011" + "1001000001000001100" + "1100100011000001011" + "1100110011011001010" + "0111110101000011011" + "0001111111111110001" + "0101110000000101101" + "0000010111110111000" + "0001010100010111010" + "1111010101010101100" + "1101110100010100000" + "1011110111110110010" + "0001110000000101000" + "0001011111111111000" + "0110000001110001000" + "1011111100000010001" + "1111011111000011101" + "1001001001001000010" + "1000000000000001101" + }, + /*244*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "\\^1", -1, 0, 15, 15, 1, 3, "", "000110111000001" "000110001100100" "001100000010110" @@ -7255,7 +7687,7 @@ static void test_encode(const testCtx *const p_ctx) { "001010011100100" "100111010100000" }, - /*221*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "\\^1", -1, 0, 15, 15, 1, 3, "", + /*245*/ { BARCODE_AZTEC, FAST_MODE | EXTRA_ESCAPE_MODE, 0, -1, -1, 1, -1, { 0, 0, "" }, "\\^1", -1, 0, 15, 15, 1, 3, "", "000110111000001" "000110001100100" "001100000010110" @@ -7272,7 +7704,7 @@ static void test_encode(const testCtx *const p_ctx) { "001010011100100" "100111010100000" }, - /*222*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 2, -1, { 0, 0, "" }, "A\\^1[", -1, 0, 19, 19, 1, 3, "", + /*246*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 2, -1, { 0, 0, "" }, "A\\^1[", -1, 0, 19, 19, 1, 3, "", "0010011011101010000" "0100000111101011001" "0001011011100010010" @@ -7293,7 +7725,28 @@ static void test_encode(const testCtx *const p_ctx) { "0010011010011101111" "1001101101110011101" }, - /*223*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 2, -1, { 0, 0, "" }, "A\\^1[!", -1, 0, 19, 19, 1, 3, "", + /*247*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 2, -1, { 0, 0, "" }, "a\\^1[", -1, 0, 19, 19, 1, 3, "", + "1110010010110000111" + "1011010101110011010" + "0000111011110010101" + "0011100001100111010" + "1010110100010011001" + "0010111111111110111" + "0010110000000110100" + "0000110111110101110" + "0100110100010100001" + "0011110101010100100" + "0001110100010100100" + "0111010111110101101" + "0010010000000101011" + "0000011111111111000" + "0111001001101001100" + "0110110100011100111" + "1010101011001101111" + "1011001001011110001" + "1111111111000011110" + }, + /*248*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 2, -1, { 0, 0, "" }, "A\\^1[!", -1, 0, 19, 19, 1, 3, "", "0001010011111110000" "0100000111110011001" "0101011011110001101" @@ -7314,7 +7767,28 @@ static void test_encode(const testCtx *const p_ctx) { "1111000000010101001" "1010111101111100001" }, - /*224*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 3, -1, -1, 2, -1, { 0, 0, "" }, "A\\^1[", -1, 0, 19, 19, 1, 3, "", + /*249*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 0, -1, -1, 2, -1, { 0, 0, "" }, "a\\^1[!", -1, 0, 19, 19, 1, 3, "", + "1110100000101010100" + "1001000101010000011" + "0000000100101010010" + "0000101110100001000" + "1010110100011011010" + "1101111111111111010" + "1001010000000100110" + "1110010111110110001" + "1100110100010111110" + "1000110101010111001" + "0010110100010100111" + "0011110111110110101" + "0011110000000111010" + "0001011111111110100" + "1101001011001000100" + "0110101000010001100" + "1010001001110111011" + "1011001011010001111" + "0111000111000000001" + }, + /*250*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 3, -1, -1, 2, -1, { 0, 0, "" }, "A\\^1[", -1, 0, 19, 19, 1, 3, "", "0000101101110101100" "0101011010010110111" "0111100110100101101" @@ -7335,7 +7809,28 @@ static void test_encode(const testCtx *const p_ctx) { "0101011110011001111" "1111001110010011000" }, - /*225*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 3, -1, -1, 2, -1, { 0, 0, "" }, "12\\^1[", -1, 0, 19, 19, 0, 3, "BWIPP: different encodation, same no. of codewords (uses PS instead of PL)", + /*251*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 3, -1, -1, 2, -1, { 0, 0, "" }, "a\\^1[", -1, 0, 19, 19, 1, 3, "", + "1100111110110011001" + "1000001010111010100" + "0011010110001010001" + "0010001110011110110" + "1010110100011010100" + "1110111111111110111" + "1010110000000111000" + "1110010111110101100" + "1111110100010111000" + "1011110101010101110" + "0010110100010111010" + "0011010111110111000" + "0011110000000100000" + "0011011111111111100" + "0110001000001001111" + "0000011001100001001" + "0001010110001100011" + "1111111001111010111" + "0000101100100100011" + }, + /*252*/ { BARCODE_AZTEC, EXTRA_ESCAPE_MODE, 3, -1, -1, 2, -1, { 0, 0, "" }, "12\\^1[", -1, 0, 19, 19, 0, 3, "BWIPP: different encodation, same no. of codewords (uses PS instead of PL)", "1100100011110010111" "1111001011101100001" "0000101010011001010" @@ -7356,7 +7851,7 @@ static void test_encode(const testCtx *const p_ctx) { "1001000101001010011" "0000011111100011011" }, - /*226*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "0", -1, 0, 11, 11, 1, 1, "ISO/IEC 24778:2008 Figure A.1 (1st)", + /*253*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "0", -1, 0, 11, 11, 1, 1, "ISO/IEC 24778:2008 Figure A.1 (1st)", "11101010101" "11111111111" "01000000010" @@ -7369,7 +7864,7 @@ static void test_encode(const testCtx *const p_ctx) { "01111111111" "00101010100" }, - /*227*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "25", -1, 0, 11, 11, 1, 1, "ISO/IEC 24778:2008 Figure A.1 (2nd)", + /*254*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "25", -1, 0, 11, 11, 1, 1, "ISO/IEC 24778:2008 Figure A.1 (2nd)", "11101100101" "11111111111" "01000000011" @@ -7382,7 +7877,7 @@ static void test_encode(const testCtx *const p_ctx) { "01111111111" "00100100000" }, - /*228*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "125", -1, 0, 11, 11, 1, 1, "ISO/IEC 24778:2008 Figure A.1 (3rd)", + /*255*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "125", -1, 0, 11, 11, 1, 1, "ISO/IEC 24778:2008 Figure A.1 (3rd)", "11110101101" "11111111111" "11000000011" @@ -7395,7 +7890,7 @@ static void test_encode(const testCtx *const p_ctx) { "01111111111" "00111101000" }, - /*229*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "255", -1, 0, 11, 11, 1, 1, "ISO/IEC 24778:2008 Figure A.1 (4th)", + /*256*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "255", -1, 0, 11, 11, 1, 1, "ISO/IEC 24778:2008 Figure A.1 (4th)", "11010101001" "11111111111" "01000000011" @@ -7408,7 +7903,7 @@ static void test_encode(const testCtx *const p_ctx) { "01111111111" "00110011100" }, - /*230*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "1", -1, 0, 11, 11, 1, 1, "", + /*257*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "1", -1, 0, 11, 11, 1, 1, "", "11101010101" "11111111111" "11000000011" @@ -7421,7 +7916,7 @@ static void test_encode(const testCtx *const p_ctx) { "01111111111" "00100110100" }, - /*231*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "15", -1, 0, 11, 11, 1, 1, "", + /*258*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "15", -1, 0, 11, 11, 1, 1, "", "11101001001" "11111111111" "11000000011" @@ -7434,7 +7929,7 @@ static void test_encode(const testCtx *const p_ctx) { "01111111111" "00001111100" }, - /*232*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "16", -1, 0, 11, 11, 1, 1, "", + /*259*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "16", -1, 0, 11, 11, 1, 1, "", "11101110101" "11111111111" "11000000010" @@ -7447,7 +7942,7 @@ static void test_encode(const testCtx *const p_ctx) { "01111111111" "00111100100" }, - /*233*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "63", -1, 0, 11, 11, 1, 1, "", + /*260*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "63", -1, 0, 11, 11, 1, 1, "", "11100101001" "11111111111" "11000000011" @@ -7460,7 +7955,7 @@ static void test_encode(const testCtx *const p_ctx) { "01111111111" "00101010000" }, - /*234*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "64", -1, 0, 11, 11, 1, 1, "", + /*261*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "64", -1, 0, 11, 11, 1, 1, "", "11111010101" "11111111111" "01000000010" @@ -7473,7 +7968,7 @@ static void test_encode(const testCtx *const p_ctx) { "01111111111" "00111011100" }, - /*235*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "65", -1, 0, 11, 11, 1, 1, "", + /*262*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "65", -1, 0, 11, 11, 1, 1, "", "11111010101" "11111111111" "11000000011" @@ -7486,7 +7981,7 @@ static void test_encode(const testCtx *const p_ctx) { "01111111111" "00110111100" }, - /*236*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "126", -1, 0, 11, 11, 1, 1, "", + /*263*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "126", -1, 0, 11, 11, 1, 1, "", "11110101001" "11111111111" "01000000010" @@ -7499,7 +7994,7 @@ static void test_encode(const testCtx *const p_ctx) { "01111111111" "00110111000" }, - /*237*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "127", -1, 0, 11, 11, 1, 1, "", + /*264*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "127", -1, 0, 11, 11, 1, 1, "", "11110101001" "11111111111" "11000000011" @@ -7512,7 +8007,7 @@ static void test_encode(const testCtx *const p_ctx) { "01111111111" "00111011000" }, - /*238*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "128", -1, 0, 11, 11, 1, 1, "", + /*265*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "128", -1, 0, 11, 11, 1, 1, "", "11001010101" "11111111111" "11000000010" @@ -7525,7 +8020,7 @@ static void test_encode(const testCtx *const p_ctx) { "01111111111" "00100010000" }, - /*239*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "191", -1, 0, 11, 11, 1, 1, "", + /*266*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "191", -1, 0, 11, 11, 1, 1, "", "11000101001" "11111111111" "01000000011" @@ -7538,7 +8033,7 @@ static void test_encode(const testCtx *const p_ctx) { "01111111111" "00100010100" }, - /*240*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "192", -1, 0, 11, 11, 1, 1, "", + /*267*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "192", -1, 0, 11, 11, 1, 1, "", "11011010101" "11111111111" "11000000010" @@ -7551,7 +8046,7 @@ static void test_encode(const testCtx *const p_ctx) { "01111111111" "00110011000" }, - /*241*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "225", -1, 0, 11, 11, 1, 1, "", + /*268*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "225", -1, 0, 11, 11, 1, 1, "", "11010010101" "11111111111" "11000000011" @@ -7564,7 +8059,7 @@ static void test_encode(const testCtx *const p_ctx) { "01111111111" "00001100100" }, - /*242*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "254", -1, 0, 11, 11, 1, 1, "", + /*269*/ { BARCODE_AZRUNE, UNICODE_MODE, -1, -1, -1, -1, -1, { 0, 0, "" }, "254", -1, 0, 11, 11, 1, 1, "", "11010101001" "11111111111" "11000000010"