From 2a55f1513500e2152b8e4244703f8a8129fce023 Mon Sep 17 00:00:00 2001 From: gitlost Date: Thu, 21 Jul 2022 12:29:53 +0100 Subject: [PATCH] BC412: height calc, table typo fix, tests, manual --- ChangeLog | 2 +- backend/bc412.c | 18 +- backend/library.c | 1 - backend/output.c | 5 +- backend/tests/test_bc412.c | 68 +++- backend/tests/test_library.c | 79 ++-- backend/tests/test_raster.c | 354 +++++++++--------- backend/tests/test_vector.c | 203 +++++----- backend/tests/testcommon.c | 12 +- .../tests/tools/bwipp_dump-barcode.ps.diff | 64 ++-- backend/tests/tools/bwipp_dump.ps.tar.xz | Bin 127580 -> 127864 bytes backend/tests/tools/run_bwipp_tests.sh | 1 + backend/zint.h | 2 +- docs/Makefile | 1 + docs/manual.pmd | 16 + docs/manual.txt | 25 +- docs/zint.1 | 16 +- docs/zint.1.pmd | 7 +- docs/zint_images.sh | 1 + frontend_qt/mainwindow.cpp | 2 +- 20 files changed, 501 insertions(+), 376 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0b819b75..5a835e02 100644 --- a/ChangeLog +++ b/ChangeLog @@ -19,7 +19,7 @@ Changes - GUI: export window: add no. of sequences to results label - frontend: batch: for @ use + instead of * on Windows as * not allowed in filenames -- Add symbology BC412 (beta) +- Add new symbology BC412 (SEMI T1-95) - backend: use alloca() (z_alloca()) for both Unix and Windows - GS1: new AI 4309 with latlong checker, new currency code 925 diff --git a/backend/bc412.c b/backend/bc412.c index 220afaf5..e61203b2 100644 --- a/backend/bc412.c +++ b/backend/bc412.c @@ -52,7 +52,7 @@ static const char BC412Table[35][8] = { {'1','1','1','2','1','4','1','1'}, {'1','1','1','5','1','1','1','1'}, {'1','5','1','1','1','1','1','1'}, {'1','1','1','1','1','5','1','1'}, {'1','2','1','3','1','2','1','1'}, {'1','3','1','2','1','1','1','2'}, - {'1','3','1','1','1','2','1','2'}, {'1','1','1','1','1','2','1','4'}, + {'1','3','1','1','1','3','1','1'}, {'1','1','1','1','1','2','1','4'}, {'1','2','1','2','1','1','1','3'}, {'1','1','1','1','1','3','1','3'}, {'1','3','1','1','1','1','1','3'}, {'1','1','1','2','1','2','1','3'}, {'1','1','1','4','1','1','1','2'}, {'1','1','1','2','1','3','1','2'}, @@ -66,7 +66,7 @@ static const char BC412Table[35][8] = { }; INTERNAL int bc412(struct zint_symbol *symbol, unsigned char source[], int length) { /* IBM BC412 */ - unsigned char padded_source[19]; + unsigned char padded_source[20]; int posns[35]; int i, counter_odd = 0, counter_even = 0, check_sum = 0; char dest[293]; /* 2 + (36 * 8) + 3 */ @@ -74,7 +74,7 @@ INTERNAL int bc412(struct zint_symbol *symbol, unsigned char source[], int lengt int error_number = 0; if ((length < 7) || (length > 18)) { - strcpy(symbol->errtxt, "nan: Input wrong length (should be between 7 and 18 characters)"); + strcpy(symbol->errtxt, "790: Input wrong length (should be between 7 and 18 characters)"); return ZINT_ERROR_TOO_LONG; } to_upper(source, length); @@ -88,7 +88,7 @@ INTERNAL int bc412(struct zint_symbol *symbol, unsigned char source[], int lengt padded_source[length + 1] = 0; if (!is_sane_lookup(BROMINE, 35, padded_source, length + 1, posns)) { - strcpy(symbol->errtxt, "nan: Invalid character in data"); + strcpy(symbol->errtxt, "791: Invalid character in data (alphanumerics only, excluding the letter \"O\")"); return ZINT_ERROR_INVALID_DATA; } @@ -131,7 +131,15 @@ INTERNAL int bc412(struct zint_symbol *symbol, unsigned char source[], int lengt expand(symbol, dest, d - dest); ustrcpy(symbol->text, padded_source); - /* TODO: exact dimensions / whitespace required */ + if (symbol->output_options & COMPLIANT_HEIGHT) { + /* SEMI T1-95 Table 1 "Module" (Character) Height 2mm ± 0.025mm, using Module Spacing 0.12mm ± 0.025mm as + X-dimension */ + error_number = set_height(symbol, stripf(1.975f / 0.145f), stripf(2.0f / 0.12f), stripf(2.025f / 0.095f), + 0 /*no_errtxt*/); + } else { + /* Using compliant height as default as no backwards compatibility to consider */ + (void) set_height(symbol, 0.0f, stripf(2.0f / 0.12f), 0.0f, 1 /*no_errtxt*/); + } return error_number; } diff --git a/backend/library.c b/backend/library.c index 9723d60d..a60618dd 100644 --- a/backend/library.c +++ b/backend/library.c @@ -1846,7 +1846,6 @@ unsigned int ZBarcode_Cap(int symbol_id, unsigned int cap_flag) { case BARCODE_HIBC_128: /* See CODE128 */ case BARCODE_HIBC_PDF: /* See PDF417 */ case BARCODE_HIBC_MICPDF: /* See PDF417 */ - case BARCODE_BC412: /* TODO: Find doc */ break; default: result |= ZINT_CAP_COMPLIANT_HEIGHT; diff --git a/backend/output.c b/backend/output.c index a58a096d..016bc711 100644 --- a/backend/output.c +++ b/backend/output.c @@ -465,9 +465,12 @@ static int out_quiet_zones(const struct zint_symbol *symbol, const int hide_text /* AIMD/TSC15032-43 (v 0.99c) Section 9.2 */ *left = *right = *top = *bottom = 1.0f; done = 1; + break; case BARCODE_BC412: - /* TODO: Find doc */ + /* SEMI T1-95 Table 4 */ + *left = *right = 10.0f; + done = 1; break; } diff --git a/backend/tests/test_bc412.c b/backend/tests/test_bc412.c index 3192081d..f46ecf13 100644 --- a/backend/tests/test_bc412.c +++ b/backend/tests/test_bc412.c @@ -31,7 +31,7 @@ #include "testcommon.h" -static void test_input(int index, int generate, int debug) { +static void test_input(int index, int debug) { struct item { int input_mode; @@ -45,14 +45,39 @@ static void test_input(int index, int generate, int debug) { char *expected; char *comment; }; + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { - /* 0*/ { UNICODE_MODE, -1, -1, "123456", -1, ZINT_ERROR_TOO_LONG, 0, 0, "Error nan: Input wrong length (should be between 7 and 18 characters)", "" }, + /* 0*/ { UNICODE_MODE, -1, -1, "123456", -1, ZINT_ERROR_TOO_LONG, -1, -1, "Error 790: Input wrong length (should be between 7 and 18 characters)", "" }, + /* 1*/ { UNICODE_MODE, -1, -1, "1234567890123456789", -1, ZINT_ERROR_TOO_LONG, -1, -1, "Error 790: Input wrong length (should be between 7 and 18 characters)", "" }, + /* 2*/ { UNICODE_MODE, -1, -1, "1234567", -1, 0, 1, 102, "1U234567", "" }, + /* 3*/ { UNICODE_MODE, -1, -1, "1234567 ", -1, ZINT_ERROR_INVALID_DATA, -1, -1, "Error 791: Invalid character in data (alphanumerics only, excluding the letter \"O\")", "" }, + /* 4*/ { UNICODE_MODE, -1, -1, "ABCDEFGHIJKLMNOPQR", -1, ZINT_ERROR_INVALID_DATA, -1, -1, "Error 791: Invalid character in data (alphanumerics only, excluding the letter \"O\")", "" }, + /* 5*/ { UNICODE_MODE, -1, -1, "ABCDEFGHIJKLMNPQRS", -1, 0, 1, 234, "AQBCDEFGHIJKLMNPQRS", "" }, + /* 6*/ { UNICODE_MODE, -1, -1, "STUVWXYZ1234567890", -1, 0, 1, 234, "SCTUVWXYZ1234567890", "" }, + /* 7*/ { UNICODE_MODE, -1, -1, "abcdefghijklmnpqrs", -1, 0, 1, 234, "AQBCDEFGHIJKLMNPQRS", "" }, + /* 8*/ { UNICODE_MODE, -1, -1, "123456789012345678", -1, 0, 1, 234, "1223456789012345678", "" }, + /* 9*/ { UNICODE_MODE, -1, -1, "MMMMMMMMMMMMMMMMMM", -1, 0, 1, 234, "MTMMMMMMMMMMMMMMMMM", "" }, + /* 10*/ { UNICODE_MODE, -1, -1, "00000000", -1, 0, 1, 114, "000000000", "" }, + /* 11*/ { UNICODE_MODE, -1, -1, "000000000", -1, 0, 1, 126, "0000000000", "" }, + /* 12*/ { UNICODE_MODE, -1, -1, "000S0S000S", -1, 0, 1, 138, "0S00S0S000S", "" }, + /* 13*/ { UNICODE_MODE, -1, -1, "ZYXWVUTSRQP", -1, 0, 1, 150, "Z0YXWVUTSRQP", "" }, + /* 14*/ { UNICODE_MODE, -1, -1, "0R9GLVHA8EZ4", -1, 0, 1, 162, "0DR9GLVHA8EZ4", "" }, + /* 15*/ { UNICODE_MODE, -1, -1, "NTS1J2Q6C7DYK", -1, 0, 1, 174, "NRTS1J2Q6C7DYK", "" }, + /* 16*/ { UNICODE_MODE, -1, -1, "TS1J2Q6C7DYKBU", -1, 0, 1, 186, "TWS1J2Q6C7DYKBU", "" }, + /* 17*/ { UNICODE_MODE, -1, -1, "IX3FWP5M0R9GLVH", -1, 0, 1, 198, "IBX3FWP5M0R9GLVH", "" }, + /* 18*/ { UNICODE_MODE, -1, -1, "R9GLVHA8EZ4NTS1J", -1, 0, 1, 210, "RY9GLVHA8EZ4NTS1J", "" }, + /* 19*/ { UNICODE_MODE, -1, -1, "M5PWF3XIUBKYD7C6Q", -1, 0, 1, 222, "M35PWF3XIUBKYD7C6Q", "" }, + /* 20*/ { UNICODE_MODE, -1, -1, "2J1STN4ZE8AHVLG90R", -1, 0, 1, 234, "2PJ1STN4ZE8AHVLG90R", "" }, + /* 21*/ { UNICODE_MODE, -1, -1, "JJJJJJJJJJJJJJJJJJ", -1, 0, 1, 234, "J9JJJJJJJJJJJJJJJJJ", "" }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; struct zint_symbol *symbol; - char escaped[1024]; + char bwipp_buf[8192]; + char bwipp_msg[1024]; + + int do_bwipp = (debug & ZINT_DEBUG_TEST_BWIPP) && testUtilHaveGhostscript(); /* Only do BWIPP test if asked, too slow otherwise */ testStart("test_input"); @@ -63,24 +88,28 @@ static void test_input(int index, int generate, int debug) { symbol = ZBarcode_Create(); assert_nonnull(symbol, "Symbol not created\n"); - //symbol->debug = ZINT_DEBUG_TEST; // Needed to get codeword dump in errtxt - length = testUtilSetSymbol(symbol, BARCODE_BC412, data[i].input_mode, -1 /*eci*/, data[i].option_1, data[i].option_2, -1, -1 /*output_options*/, data[i].data, data[i].length, debug); ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length); assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt); - if (generate) { - printf(" /*%3d*/ { %s, %d, %d, \"%s\", %d, %s, %d, %d, \"%s\", \"%s\" },\n", - i, testUtilInputModeName(data[i].input_mode), data[i].option_1, data[i].option_2, - testUtilEscape(data[i].data, length, escaped, sizeof(escaped)), data[i].length, - testUtilErrorName(data[i].ret), symbol->rows, symbol->width, symbol->errtxt, data[i].comment); - } else { - if (ret < ZINT_ERROR) { - assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d (%s)\n", i, symbol->rows, data[i].expected_rows, data[i].data); - assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d (%s)\n", i, symbol->width, data[i].expected_width, data[i].data); - assert_zero(strcmp((char *) symbol->errtxt, data[i].expected), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected); + if (ret < ZINT_ERROR) { + assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d (%s)\n", i, symbol->rows, data[i].expected_rows, data[i].data); + assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d (%s)\n", i, symbol->width, data[i].expected_width, data[i].data); + assert_zero(strcmp((char *) symbol->text, data[i].expected), "i:%d strcmp(%s, %s) != 0\n", i, symbol->text, data[i].expected); + + if (do_bwipp && testUtilCanBwipp(i, symbol, data[i].option_1, -1, -1, debug)) { + char modules_dump[8192 + 1]; + assert_notequal(testUtilModulesDump(symbol, modules_dump, sizeof(modules_dump)), -1, "i:%d testUtilModulesDump == -1\n", i); + ret = testUtilBwipp(i, symbol, data[i].option_1, -1, -1, data[i].data, length, NULL, bwipp_buf, sizeof(bwipp_buf), NULL); + assert_zero(ret, "i:%d %s testUtilBwipp ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret); + + ret = testUtilBwippCmp(symbol, bwipp_msg, bwipp_buf, modules_dump); + assert_zero(ret, "i:%d %s testUtilBwippCmp %d != 0 %s\n actual: %s\nexpected: %s\n", + i, testUtilBarcodeName(symbol->symbology), ret, bwipp_msg, bwipp_buf, modules_dump); } + } else { + assert_zero(strcmp(symbol->errtxt, data[i].expected), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected); } ZBarcode_Delete(symbol); @@ -105,9 +134,12 @@ static void test_encode(int index, int generate, int debug) { char *expected; }; struct item data[] = { - /* 0*/ { UNICODE_MODE, -1, -1, "AQ45670", 0, 1, 102, 0, "SEMI T1-95 SPECIFICATION FOR BACK SURFACE BAR CODE; BWIPP TODO", + /* 0*/ { UNICODE_MODE, -1, -1, "AQ45670", 0, 1, 102, 1, "SEMI T1-95 Figure 2, same", "100101000100100100010101000100010101000101010000010101001010000101001001000101001000100101010100000101" }, + /* 1*/ { UNICODE_MODE, -1, -1, "A6BC1234", 0, 1, 114, 1, "https://www.grapecity.co.jp, same", + "100101000100100100100010100101001001000101000100010101000010100101010010000101010001000101010000100101010000010101" + }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -117,7 +149,7 @@ static void test_encode(int index, int generate, int debug) { char bwipp_buf[8192]; char bwipp_msg[1024]; - int do_bwipp = (debug & ZINT_DEBUG_TEST_BWIPP) && testUtilHaveGhostscript(); // Only do BWIPP test if asked, too slow otherwise + int do_bwipp = (debug & ZINT_DEBUG_TEST_BWIPP) && testUtilHaveGhostscript(); /* Only do BWIPP test if asked, too slow otherwise */ testStart("test_encode"); @@ -174,7 +206,7 @@ static void test_encode(int index, int generate, int debug) { int main(int argc, char *argv[]) { testFunction funcs[] = { /* name, func, has_index, has_generate, has_debug */ - { "test_input", test_input, 1, 1, 1 }, + { "test_input", test_input, 1, 0, 1 }, { "test_encode", test_encode, 1, 1, 1 }, }; diff --git a/backend/tests/test_library.c b/backend/tests/test_library.c index 18db0985..caa9d6f5 100644 --- a/backend/tests/test_library.c +++ b/backend/tests/test_library.c @@ -56,7 +56,7 @@ static void test_checks(int index, int debug) { char *expected; int expected_symbology; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_CODE128, -1, "1234", -1, -1, 3, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 217: Symbology does not support ECI switching", -1 }, /* 1*/ { BARCODE_CODE128, -1, "1234", -1, -1, 0, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", -1 }, @@ -83,11 +83,11 @@ static void test_checks(int index, int debug) { /* 22*/ { BARCODE_GS1_128, -1, "[21]1234", -1, GS1_MODE, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", -1 }, /* 23*/ { 0, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 206: Symbology out of range", BARCODE_CODE128 }, /* 24*/ { 0, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 206: Symbology out of range", -1 }, - /* 25*/ { 0, -1, "1", -1, -1, 1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 217: Symbology does not support ECI switching", BARCODE_CODE128 }, // Not supporting beats invalid ECI + /* 25*/ { 0, -1, "1", -1, -1, 1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 217: Symbology does not support ECI switching", BARCODE_CODE128 }, /* Not supporting beats invalid ECI */ /* 26*/ { 0, -1, "1", -1, -1, 1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 206: Symbology out of range", -1 }, /* 27*/ { 0, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, 0.009, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 221: Dot size out of range (0.01 to 20)", BARCODE_CODE128 }, /* 28*/ { 0, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, 0.009, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 206: Symbology out of range", -1 }, - /* 29*/ { 0, -1, "1", -1, -1, 1, 0, 0, 0, 0, -1, 0.009, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 217: Symbology does not support ECI switching", BARCODE_CODE128 }, // Invalid dot size no longer beats invalid ECI + /* 29*/ { 0, -1, "1", -1, -1, 1, 0, 0, 0, 0, -1, 0.009, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 217: Symbology does not support ECI switching", BARCODE_CODE128 }, /* Invalid dot size no longer beats invalid ECI */ /* 30*/ { 0, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, 0.009, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 206: Symbology out of range", -1 }, /* 31*/ { 5, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_C25STANDARD }, /* 32*/ { 5, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_C25STANDARD }, @@ -204,15 +204,15 @@ static void test_checks(int index, int debug) { /*143*/ { BARCODE_QRCODE, -1, "ก", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_USES_ECI, "Error 222: Encoded data includes ECI 13", -1 }, /*144*/ { BARCODE_CODEONE, -1, "[01]12345678901231", -1, GS1_MODE, 3, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 512: ECI ignored for GS1 mode", -1 }, /*145*/ { BARCODE_CODEONE, -1, "[01]12345678901231", -1, GS1_MODE, 3, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 512: ECI ignored for GS1 mode", -1 }, - /*146*/ { BARCODE_CODEONE, -1, "[01]12345678901234", -1, GS1_MODE, 3, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 512: ECI ignored for GS1 mode", -1 }, // Warning in encoder overrides library warnings - /*147*/ { BARCODE_CODEONE, -1, "[01]12345678901234", -1, GS1_MODE, 3, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_NONCOMPLIANT, "Error 261: AI (01) position 14: Bad checksum '4', expected '1'", -1 }, // But not errors + /*146*/ { BARCODE_CODEONE, -1, "[01]12345678901234", -1, GS1_MODE, 3, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 512: ECI ignored for GS1 mode", -1 }, /* Warning in encoder overrides library warnings */ + /*147*/ { BARCODE_CODEONE, -1, "[01]12345678901234", -1, GS1_MODE, 3, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_NONCOMPLIANT, "Error 261: AI (01) position 14: Bad checksum '4', expected '1'", -1 }, /* But not errors */ /*148*/ { BARCODE_AZTEC, -1, "ก", -1, UNICODE_MODE, 13, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", -1 }, /*149*/ { BARCODE_AZTEC, -1, "ก", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_USES_ECI, "Warning 222: Encoded data includes ECI 13", -1 }, /*150*/ { BARCODE_AZTEC, -1, "ก", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_USES_ECI, "Error 222: Encoded data includes ECI 13", -1 }, /*151*/ { BARCODE_AZTEC, 6, "ก", -1, UNICODE_MODE, 13, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 503: Invalid error correction level - using default instead", -1 }, /*152*/ { BARCODE_AZTEC, 6, "ก", -1, UNICODE_MODE, 13, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 503: Invalid error correction level - using default instead", -1 }, - /*153*/ { BARCODE_AZTEC, 6, "ก", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_USES_ECI, "Warning 222: Encoded data includes ECI 13", -1 }, // ECI warning trumps all other warnings - /*154*/ { BARCODE_AZTEC, 6, "ก", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 503: Invalid error correction level - using default instead", -1 }, // But not errors + /*153*/ { BARCODE_AZTEC, 6, "ก", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_USES_ECI, "Warning 222: Encoded data includes ECI 13", -1 }, /* ECI warning trumps all other warnings */ + /*154*/ { BARCODE_AZTEC, 6, "ก", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 503: Invalid error correction level - using default instead", -1 }, /* But not errors */ }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -285,7 +285,7 @@ static void test_checks_segs(int index, int debug) { char *expected; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_CODE128, -1, { { NULL, 0, 0 }, { NULL, 0, 0 } }, 0, -1, -1, -1, ZINT_ERROR_INVALID_DATA, "Error 205: No input data" }, /* 1*/ { BARCODE_CODE128, -1, { { NULL, 0, 0 }, { NULL, 0, 0 } }, 257, -1, -1, -1, ZINT_ERROR_INVALID_DATA, "Error 771: Too many input segments (max 256)" }, @@ -345,7 +345,7 @@ static void test_input_data(int index, int debug) { char *expected; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_CODE128, -1, "1234", -1, "", 0, "" }, /* 1*/ { BARCODE_GS1_128, -1, "[01]12345678901231", -1, "", 0, "" }, @@ -414,7 +414,7 @@ static void test_input_mode(int index, int debug) { int expected_input_mode; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { "1234", DATA_MODE, 0, DATA_MODE }, /* 1*/ { "1234", DATA_MODE | ESCAPE_MODE, 0, DATA_MODE | ESCAPE_MODE }, @@ -422,9 +422,9 @@ static void test_input_mode(int index, int debug) { /* 3*/ { "1234", UNICODE_MODE | ESCAPE_MODE, 0, UNICODE_MODE | ESCAPE_MODE }, /* 4*/ { "[01]12345678901231", GS1_MODE, 0, GS1_MODE }, /* 5*/ { "[01]12345678901231", GS1_MODE | ESCAPE_MODE, 0, GS1_MODE | ESCAPE_MODE }, - /* 6*/ { "1234", 4 | ESCAPE_MODE, 0, DATA_MODE }, // Unknown mode reset to bare DATA_MODE + /* 6*/ { "1234", 4 | ESCAPE_MODE, 0, DATA_MODE }, /* Unknown mode reset to bare DATA_MODE */ /* 7*/ { "1234", -1, 0, DATA_MODE }, - /* 8*/ { "1234", DATA_MODE | 0x10, 0, DATA_MODE | 0x10 }, // Unknown flags kept (but ignored) + /* 8*/ { "1234", DATA_MODE | 0x10, 0, DATA_MODE | 0x10 }, /* Unknown flags kept (but ignored) */ /* 9*/ { "1234", UNICODE_MODE | 0x10, 0, UNICODE_MODE | 0x10 }, /* 10*/ { "[01]12345678901231", GS1_MODE | 0x20, 0, GS1_MODE | 0x20 }, }; @@ -574,7 +574,7 @@ static void test_escape_char_process(int index, int generate, int debug) { text = data[i].data; } - debug |= ZINT_DEBUG_TEST; // Needed to get codeword dump in errtxt + debug |= ZINT_DEBUG_TEST; /* Needed to get codeword dump in errtxt */ length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode | ESCAPE_MODE, data[i].eci, -1 /*option_1*/, -1, -1, -1 /*output_options*/, text, -1, debug); @@ -600,7 +600,7 @@ static void test_escape_char_process(int index, int generate, int debug) { memcpy(&previous_symbol, symbol, sizeof(previous_symbol)); if (ret < ZINT_ERROR && !data[i].composite[0]) { - // Test from input file + /* Test from input file */ FILE *fp; struct zint_symbol *symbol2; @@ -612,7 +612,7 @@ static void test_escape_char_process(int index, int generate, int debug) { symbol2 = ZBarcode_Create(); assert_nonnull(symbol, "Symbol2 not created\n"); - symbol2->debug = ZINT_DEBUG_TEST; // Needed to get codeword dump in errtxt + symbol2->debug = ZINT_DEBUG_TEST; /* Needed to get codeword dump in errtxt */ (void) testUtilSetSymbol(symbol2, data[i].symbology, data[i].input_mode | ESCAPE_MODE, data[i].eci, -1 /*option_1*/, -1, -1, -1 /*output_options*/, data[i].data, -1, debug); @@ -642,7 +642,7 @@ static void test_cap(int index) { unsigned cap_flag; unsigned int expected; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%2d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_CODE128, ZINT_CAP_HRT, ZINT_CAP_HRT }, /* 1*/ { BARCODE_CODE128, ZINT_CAP_HRT | ZINT_CAP_STACKABLE | ZINT_CAP_GS1, ZINT_CAP_HRT | ZINT_CAP_STACKABLE }, @@ -749,6 +749,7 @@ static void test_cap_compliant_height(void) { case BARCODE_DBAR_OMNSTK_CC: case BARCODE_DBAR_EXPSTK_CC: case BARCODE_CHANNEL: + case BARCODE_BC412: assert_equal(ret, ZINT_CAP_COMPLIANT_HEIGHT, "symbol_id %d (%s) ret 0x%X != ZINT_CAP_COMPLIANT_HEIGHT\n", symbol_id, testUtilBarcodeName(symbol_id), ret); break; default: @@ -771,7 +772,7 @@ static void test_encode_file_empty(void) { symbol = ZBarcode_Create(); assert_nonnull(symbol, "Symbol not created\n"); - (void) remove(filename); // In case junk hanging around + (void) remove(filename); /* In case junk hanging around */ fstream = fopen(filename, "w+"); assert_nonnull(fstream, "fopen(%s) failed (%d)\n", filename, ferror(fstream)); @@ -801,7 +802,7 @@ static void test_encode_file_too_large(void) { symbol = ZBarcode_Create(); assert_nonnull(symbol, "Symbol not created\n"); - (void) remove(filename); // In case junk hanging around + (void) remove(filename); /* In case junk hanging around */ fstream = fopen(filename, "w+"); assert_nonnull(fstream, "fopen(%s) failed (%d)\n", filename, ferror(fstream)); @@ -821,7 +822,7 @@ static void test_encode_file_too_large(void) { testFinish(); } -// #181 Nico Gunkel OSS-Fuzz +/* #181 Nico Gunkel OSS-Fuzz */ static void test_encode_file_unreadable(void) { #ifndef _WIN32 int ret; @@ -841,7 +842,7 @@ static void test_encode_file_unreadable(void) { symbol = ZBarcode_Create(); assert_nonnull(symbol, "Symbol not created\n"); - // Unreadable file + /* Unreadable file */ fd = creat(filename, S_IWUSR); assert_notequal(fd, -1, "Unreadable input file (%s) not created == -1 (%d: %s)\n", filename, errno, strerror(errno)); ret = write(fd, buf, 1); @@ -861,7 +862,7 @@ static void test_encode_file_unreadable(void) { #endif /* _WIN32 */ } -// #181 Nico Gunkel OSS-Fuzz (buffer not freed on fread() error) Note: unable to reproduce fread() error using this method +/* #181 Nico Gunkel OSS-Fuzz (buffer not freed on fread() error) Note: unable to reproduce fread() error using this method */ static void test_encode_file_directory(void) { int ret; struct zint_symbol *symbol; @@ -872,7 +873,7 @@ static void test_encode_file_directory(void) { symbol = ZBarcode_Create(); assert_nonnull(symbol, "Symbol not created\n"); - (void) testUtilRmDir(dirname); // In case junk hanging around + (void) testUtilRmDir(dirname); /* In case junk hanging around */ ret = testUtilMkDir(dirname); assert_zero(ret, "testUtilMkDir(%s) %d != 0 (%d: %s)\n", dirname, ret, errno, strerror(errno)); @@ -897,8 +898,8 @@ static void test_encode_file(void) { testStart("test_encode_file"); - (void) remove(filename); // In case junk hanging around - (void) remove(outfile); // In case junk hanging around + (void) remove(filename); /* In case junk hanging around */ + (void) remove(outfile); /* In case junk hanging around */ fp = fopen(filename, "w+"); assert_nonnull(fp, "fopen(%s) failed (%d)\n", filename, ferror(fp)); @@ -960,7 +961,7 @@ static void test_encode_print_outfile_directory(void) { symbol = ZBarcode_Create(); assert_nonnull(symbol, "Symbol not created\n"); - (void) testUtilRmDir(dirname); // In case junk hanging around + (void) testUtilRmDir(dirname); /* In case junk hanging around */ ret = testUtilMkDir(dirname); assert_zero(ret, "testUtilMkDir(%s) %d != 0 (%d: %s)\n", dirname, ret, errno, strerror(errno)); @@ -988,7 +989,7 @@ static void test_bad_args(void) { testStart("test_bad_args"); - // These just return, no error + /* These just return, no error */ ZBarcode_Clear(NULL); ZBarcode_Delete(NULL); @@ -996,14 +997,14 @@ static void test_bad_args(void) { assert_nonzero(ret >= 20901, "ZBarcode_Version() %d <= 20901\n", ret); assert_zero(ZBarcode_ValidID(0), "ZBarcode_ValidID(0) non-zero\n"); - assert_zero(ZBarcode_ValidID(10), "ZBarcode_ValidID(10) non-zero\n"); // Note 10 remapped to BARCODE_EANX in ZBarcode_Encode() for tbarcode compat but not counted as valid + assert_zero(ZBarcode_ValidID(10), "ZBarcode_ValidID(10) non-zero\n"); /* Note 10 remapped to BARCODE_EANX in ZBarcode_Encode() for tbarcode compat but not counted as valid */ ret = ZBarcode_Cap(0, ~0); assert_zero(ret, "ZBarcode_Cap(0, ~0) ret 0x%X != 0\n", ret); ret = ZBarcode_Cap(10, ~0); assert_zero(ret, "ZBarcode_Cap(10, ~0) ret 0x%X != 0\n", ret); - // NULL symbol + /* NULL symbol */ assert_equal(ZBarcode_Encode(NULL, TU(data), 1), ZINT_ERROR_INVALID_DATA, "ZBarcode_Encode(NULL, data, 1) != ZINT_ERROR_INVALID_DATA\n"); assert_equal(ZBarcode_Encode_Segs(NULL, &seg, 1), ZINT_ERROR_INVALID_DATA, "ZBarcode_Encode_Segs(NULL, &seg, 1) != ZINT_ERROR_INVALID_DATA\n"); assert_equal(ZBarcode_Print(NULL, 0), ZINT_ERROR_INVALID_DATA, "ZBarcode_Print(NULL, 0) != ZINT_ERROR_INVALID_DATA\n"); @@ -1022,7 +1023,7 @@ static void test_bad_args(void) { symbol = ZBarcode_Create(); assert_nonnull(symbol, "Symbol not created\n"); - // NULL data/segs/filename + /* NULL data/segs/filename */ symbol->errtxt[0] = '\0'; assert_equal(ZBarcode_Encode(symbol, NULL, 1), ZINT_ERROR_INVALID_DATA, "ZBarcode_Encode(symbol, NULL, 1) != ZINT_ERROR_INVALID_DATA\n"); assert_nonzero(strlen(symbol->errtxt), "ZBarcode_Encode(symbol, NULL, 1) no errtxt\n"); @@ -1057,7 +1058,7 @@ static void test_bad_args(void) { assert_equal(ZBarcode_Encode_File_and_Buffer_Vector(symbol, NULL, 0), ZINT_ERROR_INVALID_DATA, "ZBarcode_Encode_File_and_Buffer_Vector(symbol, NULL, 0) != ZINT_ERROR_INVALID_DATA\n"); assert_nonzero(strlen(symbol->errtxt), "ZBarcode_Encode_File_and_Buffer_Vector(symbol, NULL, 0) no errtxt\n"); - // Empty data/segs/filename + /* Empty data/segs/filename */ symbol->errtxt[0] = '\0'; assert_equal(ZBarcode_Encode(symbol, TU(empty), 0), ZINT_ERROR_INVALID_DATA, "ZBarcode_Encode(symbol, empty, 0) != ZINT_ERROR_INVALID_DATA\n"); assert_nonzero(strlen(symbol->errtxt), "ZBarcode_Encode(symbol, empty, 0) no errtxt\n"); @@ -1092,7 +1093,7 @@ static void test_bad_args(void) { assert_equal(ZBarcode_Encode_File_and_Buffer_Vector(symbol, empty, 0), ZINT_ERROR_INVALID_DATA, "ZBarcode_Encode_File_and_Buffer_Vector(symbol, empty, 0) != ZINT_ERROR_INVALID_DATA\n"); assert_nonzero(strlen(symbol->errtxt), "ZBarcode_Encode_File_and_Buffer_Vector(symbol, empty, 0) no errtxt\n"); - // Bad seg_count + /* Bad seg_count */ symbol->errtxt[0] = '\0'; assert_equal(ZBarcode_Encode_Segs(symbol, &seg_empty, ZINT_MAX_SEG_COUNT + 1), ZINT_ERROR_INVALID_DATA, "ZBarcode_Encode_Segs(symbol, &seg_empty, ZINT_MAX_SEG_COUNT + 1) != ZINT_ERROR_INVALID_DATA\n"); assert_nonzero((int) strlen(symbol->errtxt), "ZBarcode_Encode_Segs(symbol, &seg_empty, ZINT_MAX_SEG_COUNT + 1) no errtxt\n"); @@ -1103,7 +1104,7 @@ static void test_bad_args(void) { assert_equal(ZBarcode_Encode_Segs(symbol, &seg_empty, -1), ZINT_ERROR_INVALID_DATA, "ZBarcode_Encode_Segs(symbol, &seg_empty, -1) != ZINT_ERROR_INVALID_DATA\n"); assert_nonzero((int) strlen(symbol->errtxt), "ZBarcode_Encode_Segs(symbol, &seg_empty, -1) no errtxt\n"); - // Data/seg too big + /* Data/seg too big */ symbol->errtxt[0] = '\0'; assert_equal(ZBarcode_Encode(symbol, TU(empty), ZINT_MAX_DATA_LEN + 1), ZINT_ERROR_TOO_LONG, "ZBarcode_Encode(symbol, empty, ZINT_MAX_DATA_LEN + 1) != ZINT_ERROR_TOO_LONG\n"); assert_nonzero((int) strlen(symbol->errtxt), "ZBarcode_Encode(symbol, empty, ZINT_MAX_DATA_LEN + 1) no errtxt\n"); @@ -1151,7 +1152,7 @@ static void test_error_tag(int index) { int ret; char *expected; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { ZINT_WARN_INVALID_OPTION, -1, "", ZINT_WARN_INVALID_OPTION, "Warning " }, /* 1*/ { ZINT_WARN_INVALID_OPTION, WARN_FAIL_ALL, "", ZINT_ERROR_INVALID_OPTION, "Error " }, @@ -1201,8 +1202,8 @@ INTERNAL void strip_bom_test(unsigned char *source, int *input_length); static void test_strip_bom(void) { int length, ret; - char data[] = "\357\273\277A"; // U+FEFF BOM, with "A" - char bom_only[] = "\357\273\277"; // U+FEFF BOM only + char data[] = "\357\273\277A"; /* U+FEFF BOM, with "A" */ + char bom_only[] = "\357\273\277"; /* U+FEFF BOM only */ char buf[6]; testStart("test_strip_bom"); @@ -1213,7 +1214,7 @@ static void test_strip_bom(void) { assert_equal(length, 1, "length %d != 1\n", length); assert_zero(buf[1], "buf[1] %d != 0\n", buf[1]); - // BOM not stripped if only data + /* BOM not stripped if only data */ strcpy(buf, bom_only); length = (int) strlen(buf); @@ -1275,7 +1276,7 @@ static void test_clear(void) { strcpy(symbol->fgcolour, "000000AA"); strcpy(symbol->bgcolour, "FFFFFFAA"); - // Raster + /* Raster */ ret = ZBarcode_Encode(symbol, TU(data), 0); assert_zero(ret, "ZBarcode_Encode() ret %d != 0 (%s)\n", ret, symbol->errtxt); @@ -1308,7 +1309,7 @@ static void test_clear(void) { assert_zero(symbol->bitmap_byte_length, "ZBarcode_Buffer() bitmap_byte_length %d != 0\n", (int) symbol->bitmap_byte_length); assert_null(symbol->vector, "ZBarcode_Buffer() vector != NULL\n"); - // Vector + /* Vector */ ret = ZBarcode_Encode(symbol, TU(data), 0); assert_zero(ret, "ZBarcode_Encode() ret %d != 0 (%s)\n", ret, symbol->errtxt); @@ -1322,7 +1323,7 @@ static void test_clear(void) { assert_nonnull(symbol->vector, "ZBarcode_Buffer_Vector() vector NULL\n"); assert_nonnull(symbol->vector->rectangles, "ZBarcode_Buffer_Vector() vector->rectangles NULL\n"); assert_nonnull(symbol->vector->hexagons, "ZBarcode_Buffer_Vector() vector->hexagons NULL\n"); - assert_null(symbol->vector->strings, "ZBarcode_Buffer_Vector() vector->strings != NULL\n"); // MAXICODE no text + assert_null(symbol->vector->strings, "ZBarcode_Buffer_Vector() vector->strings != NULL\n"); /* MAXICODE no text */ assert_nonnull(symbol->vector->circles, "ZBarcode_Buffer_Vector() vector->circles NULL\n"); assert_nonzero(symbol->rows, "ZBarcode_Buffer_Vector() rows 0\n"); diff --git a/backend/tests/test_raster.c b/backend/tests/test_raster.c index 3ecc4498..a2f0bde0 100644 --- a/backend/tests/test_raster.c +++ b/backend/tests/test_raster.c @@ -1,6 +1,6 @@ /* libzint - the open source barcode library - Copyright (C) 2019 - 2021 Robin Stuart + Copyright (C) 2019-2022 Robin Stuart Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -27,7 +27,7 @@ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* vim: set ts=4 sw=4 et : */ +/* SPDX-License-Identifier: BSD-3-Clause */ #include "testcommon.h" @@ -35,10 +35,10 @@ static int is_row_column_black(struct zint_symbol *symbol, int row, int column) int i; if (symbol->output_options & OUT_BUFFER_INTERMEDIATE) { i = row * symbol->bitmap_width + column; - return symbol->bitmap[i] == '1'; // Black + return symbol->bitmap[i] == '1'; /* Black */ } i = (row * symbol->bitmap_width + column) * 3; - return symbol->bitmap[i] == 0 && symbol->bitmap[i + 1] == 0 && symbol->bitmap[i + 2] == 0; // Black + return symbol->bitmap[i] == 0 && symbol->bitmap[i + 1] == 0 && symbol->bitmap[i + 2] == 0; /* Black */ } static void test_options(int index, int debug) { @@ -55,7 +55,7 @@ static void test_options(int index, int debug) { int expected_bitmap_width; int expected_bitmap_height; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_CODE128, "123456", "7890AB", 0, "A", 0, 1, 46, 92, 116 }, /* 1*/ { BARCODE_CODE128, "123456", "7890ab", 90, "A", 0, 1, 46, 116, 92 }, @@ -376,6 +376,8 @@ static void test_buffer(int index, int generate, int debug) { /*253*/ { BARCODE_ULTRA, COMPLIANT_HEIGHT, "1234567890", "", 13, 13, 18, 36, 26 }, /*254*/ { BARCODE_RMQR, -1, "12345", "", 11, 11, 27, 54, 22 }, /*255*/ { BARCODE_RMQR, COMPLIANT_HEIGHT, "12345", "", 11, 11, 27, 54, 22 }, + /*256*/ { BARCODE_BC412, -1, "1234567", "", 16.5, 1, 102, 204, 49 }, + /*257*/ { BARCODE_BC412, COMPLIANT_HEIGHT, "1234567", "", 16.5, 1, 102, 204, 49 }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -388,7 +390,7 @@ static void test_buffer(int index, int generate, int debug) { for (i = 0; i < data_size; i++) { if (index != -1 && i != index) continue; - if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d\n", i); // ZINT_DEBUG_TEST_PRINT 16 + if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d\n", i); /* ZINT_DEBUG_TEST_PRINT 16 */ symbol = ZBarcode_Create(); assert_nonnull(symbol, "Symbol not created\n"); @@ -408,7 +410,7 @@ static void test_buffer(int index, int generate, int debug) { assert_zero(ret, "i:%d ZBarcode_Buffer(%s) ret %d != 0 (%s)\n", i, testUtilBarcodeName(data[i].symbology), ret, symbol->errtxt); assert_nonnull(symbol->bitmap, "i:%d ZBarcode_Buffer(%s) bitmap NULL\n", i, testUtilBarcodeName(data[i].symbology)); - if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); // ZINT_DEBUG_TEST_PRINT 16 + if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); /* ZINT_DEBUG_TEST_PRINT 16 */ if (generate) { printf(" /*%3d*/ { %s, %s, \"%s\", \"%s\", %.8g, %d, %d, %d, %d },\n", @@ -451,28 +453,28 @@ static void test_upcean_hrt(int index, int debug) { int expected_addon_text_col; int expected_addon_text_len; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { - /* 0*/ { BARCODE_EANX, -1, "123456789012", 0, 50, 1, 95, 226, 116, 102 /*text_row*/, 0, 20, -1, -1, -1 }, // EAN-13 - /* 1*/ { BARCODE_EANX, 0, "123456789012", 0, 50, 1, 95, 226, 110, 102 /*text_row*/, 0, 20, -1, -1, -1 }, // EAN-13 - /* 2*/ { BARCODE_EANX_CHK, -1, "1234567890128", 0, 50, 1, 95, 226, 116, 102 /*text_row*/, 0, 20, -1, -1, -1 }, // EAN-13 - /* 3*/ { BARCODE_EANX_CHK, 0, "1234567890128", 0, 50, 1, 95, 226, 110, 102 /*text_row*/, 0, 20, -1, -1, -1 }, // EAN-13 - /* 4*/ { BARCODE_EANX_CHK, -1, "1234567890128+12", 0, 50, 1, 122, 276, 116, 102 /*text_row*/, 0, 20, 5, 212, 64 }, // EAN-13 + EAN-2 - /* 5*/ { BARCODE_EANX_CHK, 0, "1234567890128+12", 0, 50, 1, 122, 276, 110, 102 /*text_row*/, 0, 20, 5, 212, 64 }, // EAN-13 + EAN-2 - /* 6*/ { BARCODE_EANX, -1, "1234567890128+12345", 0, 50, 1, 149, 330, 116, 102 /*text_row*/, 0, 20, 5, 212, 118 }, // EAN-13 + EAN-5 - /* 7*/ { BARCODE_EANX, 0, "1234567890128+12345", 0, 50, 1, 149, 330, 110, 102 /*text_row*/, 0, 20, 5, 212, 118 }, // EAN-13 + EAN-5 - /* 8*/ { BARCODE_ISBNX, -1, "9784567890120+12345", 0, 50, 1, 149, 330, 116, 102 /*text_row*/, 0, 20, 5, 212, 118 }, // ISBNX + EAN-5 - /* 9*/ { BARCODE_ISBNX, 0, "9784567890120+12345", 0, 50, 1, 149, 330, 110, 102 /*text_row*/, 0, 20, 5, 212, 118 }, // ISBNX + EAN-5 - /* 10*/ { BARCODE_EANX, -1, "123456", 0, 50, 1, 67, 162, 116, 102 /*text_row*/, 20, 58, -1, -1, -1 }, // EAN-8 - /* 11*/ { BARCODE_EANX, 0, "123456", 0, 50, 1, 67, 162, 110, 102 /*text_row*/, 20, 58, -1, -1, -1 }, // EAN-8 - /* 12*/ { BARCODE_EANX, -1, "123456+12", 0, 50, 1, 94, 216, 116, 102 /*text_row*/, 20, 58, 5, 148, 68 }, // EAN-8 + EAN-2 - /* 13*/ { BARCODE_EANX, 0, "123456+12", 0, 50, 1, 94, 216, 110, 102 /*text_row*/, 20, 58, 5, 148, 68 }, // EAN-8 + EAN-2 - /* 14*/ { BARCODE_EANX, -1, "123456+12345", 0, 50, 1, 121, 270, 116, 102 /*text_row*/, 20, 58, 5, 148, 122 }, // EAN-8 + EAN-5 - /* 15*/ { BARCODE_EANX, 0, "123456+12345", 0, 50, 1, 121, 270, 110, 102 /*text_row*/, 20, 58, 5, 148, 122 }, // EAN-8 + EAN-5 - /* 16*/ { BARCODE_EANX, -1, "1234", 0, 50, 1, 47, 118, 116, 102 /*text_row*/, 40, 36, -1, -1, -1 }, // EAN-5 - /* 17*/ { BARCODE_EANX, 0, "1234", 0, 50, 1, 47, 118, 100, -1 /*text_row*/, -1, -1, -1, -1, -1 }, // EAN-5 - /* 18*/ { BARCODE_EANX, -1, "12", 0, 50, 1, 20, 64, 116, 102 /*text_row*/, 20, 20, -1, -1, -1 }, // EAN-2 - /* 19*/ { BARCODE_EANX, 0, "12", 0, 50, 1, 20, 64, 100, -1 /*text_row*/, -1, -1, -1, -1, -1 }, // EAN-2 + /* 0*/ { BARCODE_EANX, -1, "123456789012", 0, 50, 1, 95, 226, 116, 102 /*text_row*/, 0, 20, -1, -1, -1 }, /* EAN-13 */ + /* 1*/ { BARCODE_EANX, 0, "123456789012", 0, 50, 1, 95, 226, 110, 102 /*text_row*/, 0, 20, -1, -1, -1 }, /* EAN-13 */ + /* 2*/ { BARCODE_EANX_CHK, -1, "1234567890128", 0, 50, 1, 95, 226, 116, 102 /*text_row*/, 0, 20, -1, -1, -1 }, /* EAN-13 */ + /* 3*/ { BARCODE_EANX_CHK, 0, "1234567890128", 0, 50, 1, 95, 226, 110, 102 /*text_row*/, 0, 20, -1, -1, -1 }, /* EAN-13 */ + /* 4*/ { BARCODE_EANX_CHK, -1, "1234567890128+12", 0, 50, 1, 122, 276, 116, 102 /*text_row*/, 0, 20, 5, 212, 64 }, /* EAN-13 + EAN-2 */ + /* 5*/ { BARCODE_EANX_CHK, 0, "1234567890128+12", 0, 50, 1, 122, 276, 110, 102 /*text_row*/, 0, 20, 5, 212, 64 }, /* EAN-13 + EAN-2 */ + /* 6*/ { BARCODE_EANX, -1, "1234567890128+12345", 0, 50, 1, 149, 330, 116, 102 /*text_row*/, 0, 20, 5, 212, 118 }, /* EAN-13 + EAN-5 */ + /* 7*/ { BARCODE_EANX, 0, "1234567890128+12345", 0, 50, 1, 149, 330, 110, 102 /*text_row*/, 0, 20, 5, 212, 118 }, /* EAN-13 + EAN-5 */ + /* 8*/ { BARCODE_ISBNX, -1, "9784567890120+12345", 0, 50, 1, 149, 330, 116, 102 /*text_row*/, 0, 20, 5, 212, 118 }, /* ISBNX + EAN-5 */ + /* 9*/ { BARCODE_ISBNX, 0, "9784567890120+12345", 0, 50, 1, 149, 330, 110, 102 /*text_row*/, 0, 20, 5, 212, 118 }, /* ISBNX + EAN-5 */ + /* 10*/ { BARCODE_EANX, -1, "123456", 0, 50, 1, 67, 162, 116, 102 /*text_row*/, 20, 58, -1, -1, -1 }, /* EAN-8 */ + /* 11*/ { BARCODE_EANX, 0, "123456", 0, 50, 1, 67, 162, 110, 102 /*text_row*/, 20, 58, -1, -1, -1 }, /* EAN-8 */ + /* 12*/ { BARCODE_EANX, -1, "123456+12", 0, 50, 1, 94, 216, 116, 102 /*text_row*/, 20, 58, 5, 148, 68 }, /* EAN-8 + EAN-2 */ + /* 13*/ { BARCODE_EANX, 0, "123456+12", 0, 50, 1, 94, 216, 110, 102 /*text_row*/, 20, 58, 5, 148, 68 }, /* EAN-8 + EAN-2 */ + /* 14*/ { BARCODE_EANX, -1, "123456+12345", 0, 50, 1, 121, 270, 116, 102 /*text_row*/, 20, 58, 5, 148, 122 }, /* EAN-8 + EAN-5 */ + /* 15*/ { BARCODE_EANX, 0, "123456+12345", 0, 50, 1, 121, 270, 110, 102 /*text_row*/, 20, 58, 5, 148, 122 }, /* EAN-8 + EAN-5 */ + /* 16*/ { BARCODE_EANX, -1, "1234", 0, 50, 1, 47, 118, 116, 102 /*text_row*/, 40, 36, -1, -1, -1 }, /* EAN-5 */ + /* 17*/ { BARCODE_EANX, 0, "1234", 0, 50, 1, 47, 118, 100, -1 /*text_row*/, -1, -1, -1, -1, -1 }, /* EAN-5 */ + /* 18*/ { BARCODE_EANX, -1, "12", 0, 50, 1, 20, 64, 116, 102 /*text_row*/, 20, 20, -1, -1, -1 }, /* EAN-2 */ + /* 19*/ { BARCODE_EANX, 0, "12", 0, 50, 1, 20, 64, 100, -1 /*text_row*/, -1, -1, -1, -1, -1 }, /* EAN-2 */ /* 20*/ { BARCODE_UPCA, -1, "123456789012", 0, 50, 1, 95, 226, 116, 104 /*text_row*/, 0, 18, -1, -1, -1 }, /* 21*/ { BARCODE_UPCA, 0, "123456789012", 0, 50, 1, 95, 226, 110, 104 /*text_row*/, 0, 18, -1, -1, -1 }, /* 22*/ { BARCODE_UPCA, -1, "123456789012+12", 0, 50, 1, 124, 276, 116, 104 /*text_row*/, 0, 18, 5, 208, 68 }, @@ -495,7 +497,7 @@ static void test_upcean_hrt(int index, int debug) { for (i = 0; i < data_size; i++) { if (index != -1 && i != index) continue; - if ((debug & ZINT_DEBUG_TEST_PRINT) && !(debug & ZINT_DEBUG_TEST_LESS_NOISY)) printf("i:%d\n", i); // ZINT_DEBUG_TEST_PRINT 16 + if ((debug & ZINT_DEBUG_TEST_PRINT) && !(debug & ZINT_DEBUG_TEST_LESS_NOISY)) printf("i:%d\n", i); /* ZINT_DEBUG_TEST_PRINT 16 */ symbol = ZBarcode_Create(); assert_nonnull(symbol, "Symbol not created\n"); @@ -512,7 +514,7 @@ static void test_upcean_hrt(int index, int debug) { assert_equal(ret, data[i].ret, "i:%d ret %d != %d\n", i, ret, data[i].ret); assert_nonnull(symbol->bitmap, "i:%d (%d) symbol->bitmap NULL\n", i, data[i].symbology); - if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); // ZINT_DEBUG_TEST_PRINT 16 + if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); /* ZINT_DEBUG_TEST_PRINT 16 */ assert_equal(symbol->height, data[i].expected_height, "i:%d (%s) symbol->height %.8g != %.8g\n", i, testUtilBarcodeName(data[i].symbology), symbol->height, data[i].expected_height); assert_equal(symbol->rows, data[i].expected_rows, "i:%d (%s) symbol->rows %d != %d\n", i, testUtilBarcodeName(data[i].symbology), symbol->rows, data[i].expected_rows); @@ -588,17 +590,17 @@ static void test_row_separator(int index, int debug) { int expected_separator_col; int expected_separator_height; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_CODABLOCKF, -1, -1, -1, "A", 0, 20, 2, 101, 242, 44, 21, 42, 2 }, - /* 1*/ { BARCODE_CODABLOCKF, -1, -1, 0, "A", 0, 20, 2, 101, 242, 44, 21, 42, 2 }, // Same as default - /* 2*/ { BARCODE_CODABLOCKF, -1, -1, 1, "A", 0, 20, 2, 101, 242, 44, 21, 42, 2 }, // Same as default + /* 1*/ { BARCODE_CODABLOCKF, -1, -1, 0, "A", 0, 20, 2, 101, 242, 44, 21, 42, 2 }, /* Same as default */ + /* 2*/ { BARCODE_CODABLOCKF, -1, -1, 1, "A", 0, 20, 2, 101, 242, 44, 21, 42, 2 }, /* Same as default */ /* 3*/ { BARCODE_CODABLOCKF, -1, -1, 2, "A", 0, 20, 2, 101, 242, 44, 20, 42, 4 }, /* 4*/ { BARCODE_CODABLOCKF, -1, -1, 3, "A", 0, 20, 2, 101, 242, 44, 19, 42, 6 }, /* 5*/ { BARCODE_CODABLOCKF, -1, -1, 4, "A", 0, 20, 2, 101, 242, 44, 18, 42, 8 }, - /* 6*/ { BARCODE_CODABLOCKF, -1, -1, 5, "A", 0, 20, 2, 101, 242, 44, 21, 42, 2 }, // > 4 ignored, same as default - /* 7*/ { BARCODE_CODABLOCKF, -1, 1, -1, "A", 0, 5, 1, 46, 132, 14, 0, 20 + 2, 2 }, // CODE128 top separator, add 2 to skip over end of start char; note no longer includes HRT - /* 8*/ { BARCODE_CODABLOCKF, 0, -1, -1, "A", 0, 20, 2, 101, 242, 44, 21, 42, 2 }, // Border width zero, same as default + /* 6*/ { BARCODE_CODABLOCKF, -1, -1, 5, "A", 0, 20, 2, 101, 242, 44, 21, 42, 2 }, /* > 4 ignored, same as default */ + /* 7*/ { BARCODE_CODABLOCKF, -1, 1, -1, "A", 0, 5, 1, 46, 132, 14, 0, 20 + 2, 2 }, /* CODE128 top separator, add 2 to skip over end of start char; note no longer includes HRT */ + /* 8*/ { BARCODE_CODABLOCKF, 0, -1, -1, "A", 0, 20, 2, 101, 242, 44, 21, 42, 2 }, /* Border width zero, same as default */ }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -632,7 +634,7 @@ static void test_row_separator(int index, int debug) { assert_equal(symbol->bitmap_height, data[i].expected_bitmap_height, "i:%d (%s) symbol->bitmap_height %d != %d\n", i, testUtilBarcodeName(data[i].symbology), symbol->bitmap_height, data[i].expected_bitmap_height); - if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); // ZINT_DEBUG_TEST_PRINT 16 + if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); /* ZINT_DEBUG_TEST_PRINT 16 */ for (j = data[i].expected_separator_row; j < data[i].expected_separator_row + data[i].expected_separator_height; j++) { separator_bits_set = is_row_column_black(symbol, j, data[i].expected_separator_col); @@ -641,12 +643,12 @@ static void test_row_separator(int index, int debug) { if (symbol->rows > 1) { j = data[i].expected_separator_row - 1; - separator_bits_set = is_row_column_black(symbol, j, data[i].expected_separator_col + 2); // Need to add 2 to skip to 1st blank of start row character + separator_bits_set = is_row_column_black(symbol, j, data[i].expected_separator_col + 2); /* Need to add 2 to skip to 1st blank of start row character */ assert_zero(separator_bits_set, "i:%d (%s) separator_bits_set (%d, %d) before non-zero\n", i, testUtilBarcodeName(data[i].symbology), j, data[i].expected_separator_col); } j = data[i].expected_separator_row + data[i].expected_separator_height; - separator_bits_set = is_row_column_black(symbol, j, data[i].expected_separator_col + 2); // Need to add 2 to skip to 1st blank of start row character + separator_bits_set = is_row_column_black(symbol, j, data[i].expected_separator_col + 2); /* Need to add 2 to skip to 1st blank of start row character */ assert_zero(separator_bits_set, "i:%d (%s) separator_bits_set (%d, %d) after non-zero\n", i, testUtilBarcodeName(data[i].symbology), j, data[i].expected_separator_col); ZBarcode_Delete(symbol); @@ -674,7 +676,7 @@ static void test_stacking(int index, int debug) { int expected_separator_col; int expected_separator_height; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_CODE128, -1, -1, -1, "A", "B", 50, 2, 46, 92, 116, -1, -1, -1 }, /* 1*/ { BARCODE_CODE128, BARCODE_BIND, -1, -1, "A", "B", 50, 2, 46, 92, 116, 49, 4, 2 }, @@ -714,7 +716,7 @@ static void test_stacking(int index, int debug) { assert_equal(symbol->bitmap_width, data[i].expected_bitmap_width, "i:%d (%d) symbol->bitmap_width %d != %d\n", i, data[i].symbology, symbol->bitmap_width, data[i].expected_bitmap_width); assert_equal(symbol->bitmap_height, data[i].expected_bitmap_height, "i:%d (%d) symbol->bitmap_height %d != %d\n", i, data[i].symbology, symbol->bitmap_height, data[i].expected_bitmap_height); - if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); // ZINT_DEBUG_TEST_PRINT 16 + if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); /* ZINT_DEBUG_TEST_PRINT 16 */ if (data[i].expected_separator_row != -1) { for (j = data[i].expected_separator_row; j < data[i].expected_separator_row + data[i].expected_separator_height; j++) { @@ -791,7 +793,7 @@ static void test_output_options(int index, int debug) { int expected_set_row; int expected_set_col; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_CODE128, -1, -1, -1, -1, 0, 0, "A123", 0, 50, 1, 79, 158, 116, 0, 0, 4 }, /* 1*/ { BARCODE_CODE128, -1, -1, -1, -1, 180, 0, "A123", 0, 50, 1, 79, 158, 116, 0, 115, 4 }, @@ -832,7 +834,7 @@ static void test_output_options(int index, int debug) { /* 36*/ { BARCODE_QRCODE, 5, -1, 6, BARCODE_BIND | BARCODE_QUIET_ZONES, 0, 0, "A123", 0, 21, 21, 21, 78, 82, 1, 20, 19 }, /* 37*/ { BARCODE_QRCODE, 5, -1, 6, BARCODE_BOX | BARCODE_QUIET_ZONES, 0, 0, "A123", 0, 21, 21, 21, 102, 82, 0, 20, 19 }, /* 38*/ { BARCODE_QRCODE, -1, -1, -1, BARCODE_DOTTY_MODE, 0, 0, "A123", 0, 21, 21, 21, 43, 43, 1, 1, 1 }, - /* 39*/ { BARCODE_QRCODE, -1, -1, -1, BARCODE_DOTTY_MODE, 0, 0.5, "A123", 0, 21, 21, 21, 43, 43, 1, 1, 1 }, // Scale 0.5 -> 1 + /* 39*/ { BARCODE_QRCODE, -1, -1, -1, BARCODE_DOTTY_MODE, 0, 0.5, "A123", 0, 21, 21, 21, 43, 43, 1, 1, 1 }, /* Scale 0.5 -> 1 */ /* 40*/ { BARCODE_QRCODE, -1, -1, -1, BARCODE_DOTTY_MODE, 0, 0, "A123", 0, 21, 21, 21, 43, 43, 0, 2, 2 }, /* 41*/ { BARCODE_QRCODE, -1, -1, -1, BARCODE_DOTTY_MODE, 0, 0, "A123", 0, 21, 21, 21, 43, 43, 1, 41, 1 }, /* 42*/ { BARCODE_QRCODE, -1, -1, -1, BARCODE_DOTTY_MODE, 0, 0, "A123", 0, 21, 21, 21, 43, 43, 0, 40, 2 }, @@ -920,7 +922,7 @@ static void test_output_options(int index, int debug) { if (ret < 5) { assert_nonnull(symbol->bitmap, "i:%d (%s) symbol->bitmap NULL\n", i, testUtilBarcodeName(data[i].symbology)); - if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); // ZINT_DEBUG_TEST_PRINT 16 + if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); /* ZINT_DEBUG_TEST_PRINT 16 */ assert_equal(symbol->height, data[i].expected_height, "i:%d (%s) symbol->height %.8g != %.8g\n", i, testUtilBarcodeName(data[i].symbology), symbol->height, data[i].expected_height); assert_equal(symbol->rows, data[i].expected_rows, "i:%d (%s) symbol->rows %d != %d\n", i, testUtilBarcodeName(data[i].symbology), symbol->rows, data[i].expected_rows); @@ -964,7 +966,7 @@ static void test_draw_string_wrap(int index, int debug) { int expected_no_text_row; int expected_no_text_col; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_CODE128, -1, "12", " E", 50, 1, 46, 92, 116, 104, 0 }, /* 1*/ { BARCODE_CODE128, BOLD_TEXT, "12", " E", 50, 1, 46, 92, 116, 104, 0 }, @@ -989,7 +991,7 @@ static void test_draw_string_wrap(int index, int debug) { ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length); assert_zero(ret, "i:%d ZBarcode_Encode(%d) ret %d != 0 (%s)\n", i, data[i].symbology, ret, symbol->errtxt); - // Cheat by overwriting text + /* Cheat by overwriting text */ strcpy((char *) symbol->text, data[i].text); ret = ZBarcode_Buffer(symbol, 0); @@ -1002,7 +1004,7 @@ static void test_draw_string_wrap(int index, int debug) { assert_equal(symbol->bitmap_width, data[i].expected_bitmap_width, "i:%d (%d) symbol->bitmap_width %d != %d\n", i, data[i].symbology, symbol->bitmap_width, data[i].expected_bitmap_width); assert_equal(symbol->bitmap_height, data[i].expected_bitmap_height, "i:%d (%d) symbol->bitmap_height %d != %d\n", i, data[i].symbology, symbol->bitmap_height, data[i].expected_bitmap_height); - if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); // ZINT_DEBUG_TEST_PRINT 16 + if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); /* ZINT_DEBUG_TEST_PRINT 16 */ ret = ZBarcode_Print(symbol, 0); assert_zero(ret, "i:%d ZBarcode_Print(%d) ret %d != 0\n", i, data[i].symbology, ret); @@ -1038,7 +1040,7 @@ static void test_code128_utf8(int index, int debug) { int expected_text_col; int expected_text_len; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { "é", 50, 1, 57, 114, 116, 110, 53, 6 }, }; @@ -1071,7 +1073,7 @@ static void test_code128_utf8(int index, int debug) { assert_equal(symbol->bitmap_width, data[i].expected_bitmap_width, "i:%d (%d) symbol->bitmap_width %d != %d\n", i, BARCODE_CODE128, symbol->bitmap_width, data[i].expected_bitmap_width); assert_equal(symbol->bitmap_height, data[i].expected_bitmap_height, "i:%d (%d) symbol->bitmap_height %d != %d\n", i, BARCODE_CODE128, symbol->bitmap_height, data[i].expected_bitmap_height); - if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); // ZINT_DEBUG_TEST_PRINT 16 + if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); /* ZINT_DEBUG_TEST_PRINT 16 */ ret = ZBarcode_Print(symbol, 0); assert_zero(ret, "i:%d ZBarcode_Print(%d) ret %d != 0\n", i, BARCODE_CODE128, ret); @@ -1115,94 +1117,94 @@ static void test_scale(int index, int debug) { int expected_set_col; int expected_set_len; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { - /* 0*/ { BARCODE_CODE16K, -1, -1, -1, 0, 0, "1234567890123456789012345678901234567890", "", 0, 50, 5, 70, 162, 104, 0 /*set_row*/, 43, 30, 2 }, // With no scaling + /* 0*/ { BARCODE_CODE16K, -1, -1, -1, 0, 0, "1234567890123456789012345678901234567890", "", 0, 50, 5, 70, 162, 104, 0 /*set_row*/, 43, 30, 2 }, /* With no scaling */ /* 1*/ { BARCODE_CODE16K, -1, -1, -1, 0, 0.5, "1234567890123456789012345678901234567890", "", 0, 50, 5, 70, 162 * 0.5, 104 * 0.5, 0 /*set_row*/, (43 * 0.5) + 1, 30 * 0.5, 2 * 0.5 }, - /* 2*/ { BARCODE_CODE16K, -1, -1, -1, 37, 0.5, "1234567890123456789012345678901234567890", "", 0, 35, 5, 70, 162 * 0.5, 37, 0 /*set_row*/, 16, 30 * 0.5, 2 * 0.5 }, // Height specified - /* 3*/ { BARCODE_CODE49, -1, -1, -1, 0, 0, "A1234567890B", "", 0, 30, 3, 70, 162, 64, 0 /*set_row*/, 43, 134, 2 }, // With no scaling + /* 2*/ { BARCODE_CODE16K, -1, -1, -1, 37, 0.5, "1234567890123456789012345678901234567890", "", 0, 35, 5, 70, 162 * 0.5, 37, 0 /*set_row*/, 16, 30 * 0.5, 2 * 0.5 }, /* Height specified */ + /* 3*/ { BARCODE_CODE49, -1, -1, -1, 0, 0, "A1234567890B", "", 0, 30, 3, 70, 162, 64, 0 /*set_row*/, 43, 134, 2 }, /* With no scaling */ /* 4*/ { BARCODE_CODE49, -1, -1, -1, 0, 1.5, "A1234567890B", "", 0, 30, 3, 70, 162 * 1.5, 64 * 1.5, 0 /*set_row*/, 43 * 1.5 + 1, 134 * 1.5, 2 * 1.5 }, - /* 5*/ { BARCODE_CODE49, -1, -1, -1, 16, 1.5, "A1234567890B", "", 0, 16, 3, 70, 162 * 1.5, 54, 0 /*set_row*/, 37, 134 * 1.5, 2 * 1.5 }, // Height specified - /* 6*/ { BARCODE_PHARMA_TWO, -1, -1, -1, 0, 0, "1234", "", 0, 10, 2, 13, 26, 20, 0 /*set_row*/, 20, 20, 2 }, // With no scaling + /* 5*/ { BARCODE_CODE49, -1, -1, -1, 16, 1.5, "A1234567890B", "", 0, 16, 3, 70, 162 * 1.5, 54, 0 /*set_row*/, 37, 134 * 1.5, 2 * 1.5 }, /* Height specified */ + /* 6*/ { BARCODE_PHARMA_TWO, -1, -1, -1, 0, 0, "1234", "", 0, 10, 2, 13, 26, 20, 0 /*set_row*/, 20, 20, 2 }, /* With no scaling */ /* 7*/ { BARCODE_PHARMA_TWO, -1, -1, -1, 0, 3, "1234", "", 0, 10, 2, 13, 26 * 3, 20 * 3, 0 /*set_row*/, 20 * 3, 20 * 3, 2 * 3 }, - /* 8*/ { BARCODE_PHARMA_TWO, -1, -1, -1, 13, 3, "1234", "", 0, 13, 2, 13, 26 * 3, 78, 0 /*set_row*/, 78, 20 * 3, 2 * 3 }, // Height specified - /* 9*/ { BARCODE_PDF417, -1, -1, -1, 0, 0, "1", "", 0, 18, 6, 103, 206, 36, 0 /*set_row*/, 36, 170, 14 }, // With no scaling - /* 10*/ { BARCODE_PDF417, -1, -1, -1, 0, 0.6, "1", "", 0, 18, 6, 103, 206 * 0.6, 36 * 0.6, 0 /*set_row*/, 36 * 0.6, 170 * 0.6 + 1, 14 * 0.6 }, // +1 set_col due to some scaling inversion difference - /* 11*/ { BARCODE_PDF417, -1, -1, -1, 0, 1.2, "1", "", 0, 18, 6, 103, 206 * 1.2, 36 * 1.2, 0 /*set_row*/, 36 * 1.2, 170 * 1.2 + 1, 14 * 1.2 }, // +1 set_col due to some scaling inversion difference + /* 8*/ { BARCODE_PHARMA_TWO, -1, -1, -1, 13, 3, "1234", "", 0, 13, 2, 13, 26 * 3, 78, 0 /*set_row*/, 78, 20 * 3, 2 * 3 }, /* Height specified */ + /* 9*/ { BARCODE_PDF417, -1, -1, -1, 0, 0, "1", "", 0, 18, 6, 103, 206, 36, 0 /*set_row*/, 36, 170, 14 }, /* With no scaling */ + /* 10*/ { BARCODE_PDF417, -1, -1, -1, 0, 0.6, "1", "", 0, 18, 6, 103, 206 * 0.6, 36 * 0.6, 0 /*set_row*/, 36 * 0.6, 170 * 0.6 + 1, 14 * 0.6 }, /* +1 set_col due to some scaling inversion difference */ + /* 11*/ { BARCODE_PDF417, -1, -1, -1, 0, 1.2, "1", "", 0, 18, 6, 103, 206 * 1.2, 36 * 1.2, 0 /*set_row*/, 36 * 1.2, 170 * 1.2 + 1, 14 * 1.2 }, /* +1 set_col due to some scaling inversion difference */ /* 12*/ { BARCODE_PDF417, -1, -1, -1, 0, 0.5, "1", "", 0, 18, 6, 103, 206 * 0.5, 36 * 0.5, 0 /*set_row*/, 36 * 0.5, 170 * 0.5, 14 * 0.5 }, /* 13*/ { BARCODE_PDF417, -1, -1, -1, 0, 1.0, "1", "", 0, 18, 6, 103, 206 * 1.0, 36 * 1.0, 0 /*set_row*/, 36 * 1.0, 170 * 1.0, 14 * 1.0 }, /* 14*/ { BARCODE_PDF417, -1, -1, -1, 0, 1.5, "1", "", 0, 18, 6, 103, 206 * 1.5, 36 * 1.5, 0 /*set_row*/, 36 * 1.5, 170 * 1.5, 14 * 1.5 }, /* 15*/ { BARCODE_PDF417, -1, -1, -1, 0, 2.0, "1", "", 0, 18, 6, 103, 206 * 2.0, 36 * 2.0, 0 /*set_row*/, 36 * 2.0, 170 * 2.0, 14 * 2.0 }, /* 16*/ { BARCODE_PDF417, -1, -1, -1, 0, 2.5, "1", "", 0, 18, 6, 103, 206 * 2.5, 36 * 2.5, 0 /*set_row*/, 36 * 2.5, 170 * 2.5, 14 * 2.5 }, /* 17*/ { BARCODE_PDF417, -1, -1, -1, 0, 3.0, "1", "", 0, 18, 6, 103, 206 * 3.0, 36 * 3.0, 0 /*set_row*/, 36 * 3.0, 170 * 3.0, 14 * 3.0 }, - /* 18*/ { BARCODE_PDF417, -1, 3, BARCODE_BOX, 0, 0, "1", "", 0, 18, 6, 103, 218, 48, 0 /*set_row*/, 48, 176, 14 }, // With no scaling - /* 19*/ { BARCODE_PDF417, -1, 3, BARCODE_BOX, 0, 0.6, "1", "", 0, 18, 6, 103, 218 * 0.6, 48 * 0.6, 0 /*set_row*/, 48 * 0.6, 176 * 0.6 + 1, 14 * 0.6 }, // +1 set_col due to some scaling inversion difference - /* 20*/ { BARCODE_PDF417, -1, 3, BARCODE_BOX, 0, 1.6, "1", "", 0, 18, 6, 103, 218 * 1.6, 48 * 1.6, 0 /*set_row*/, 48 * 1.6, 176 * 1.6 + 1, 14 * 1.6 }, // +1 set_col due to some scaling inversion difference + /* 18*/ { BARCODE_PDF417, -1, 3, BARCODE_BOX, 0, 0, "1", "", 0, 18, 6, 103, 218, 48, 0 /*set_row*/, 48, 176, 14 }, /* With no scaling */ + /* 19*/ { BARCODE_PDF417, -1, 3, BARCODE_BOX, 0, 0.6, "1", "", 0, 18, 6, 103, 218 * 0.6, 48 * 0.6, 0 /*set_row*/, 48 * 0.6, 176 * 0.6 + 1, 14 * 0.6 }, /* +1 set_col due to some scaling inversion difference */ + /* 20*/ { BARCODE_PDF417, -1, 3, BARCODE_BOX, 0, 1.6, "1", "", 0, 18, 6, 103, 218 * 1.6, 48 * 1.6, 0 /*set_row*/, 48 * 1.6, 176 * 1.6 + 1, 14 * 1.6 }, /* +1 set_col due to some scaling inversion difference */ /* 21*/ { BARCODE_PDF417, -1, 3, BARCODE_BOX, 0, 1.5, "1", "", 0, 18, 6, 103, 218 * 1.5, 48 * 1.5, 0 /*set_row*/, 48 * 1.5, 176 * 1.5, 14 * 1.5 }, /* 22*/ { BARCODE_PDF417, -1, 3, BARCODE_BOX, 0, 2.5, "1", "", 0, 18, 6, 103, 218 * 2.5, 48 * 2.5, 0 /*set_row*/, 48 * 2.5, 176 * 2.5, 14 * 2.5 }, /* 23*/ { BARCODE_PDF417, -1, 3, OUT_BUFFER_INTERMEDIATE, 0, 1.3, "1", "", 0, 18, 6, 103, 206 * 1.3, 36 * 1.3, 0 /*set_row*/, 36 * 1.3, 170 * 1.3, 14 * 1.3 }, /* 24*/ { BARCODE_PDF417, -1, -1, -1, 0, 0.5, "1", "", 0, 18, 6, 103, 206 * 0.5, 36 * 0.5, 0 /*set_row*/, 36 * 0.5, 170 * 0.5, 14 * 0.5 }, - /* 25*/ { BARCODE_PDF417, -1, -1, -1, 1, 0.5, "1", "", 0, 6, 6, 103, 206 * 0.5, 6, 0 /*set_row*/, 6, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 26*/ { BARCODE_PDF417, -1, -1, -1, 5, 0.5, "1", "", 0, 6, 6, 103, 206 * 0.5, 6, 0 /*set_row*/, 6, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 27*/ { BARCODE_PDF417, -1, -1, -1, 6, 0.5, "1", "", 0, 6, 6, 103, 206 * 0.5, 6, 0 /*set_row*/, 6, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 28*/ { BARCODE_PDF417, -1, -1, -1, 7, 0.5, "1", "", 0, 6, 6, 103, 206 * 0.5, 6, 0 /*set_row*/, 6, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 29*/ { BARCODE_PDF417, -1, -1, -1, 8, 0.5, "1", "", 0, 6, 6, 103, 206 * 0.5, 6, 0 /*set_row*/, 6, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 30*/ { BARCODE_PDF417, -1, -1, -1, 9, 0.5, "1", "", 0, 12, 6, 103, 206 * 0.5, 12, 0 /*set_row*/, 12, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 31*/ { BARCODE_PDF417, -1, -1, -1, 10, 0.5, "1", "", 0, 12, 6, 103, 206 * 0.5, 12, 0 /*set_row*/, 12, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 32*/ { BARCODE_PDF417, -1, -1, -1, 11, 0.5, "1", "", 0, 12, 6, 103, 206 * 0.5, 12, 0 /*set_row*/, 12, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 33*/ { BARCODE_PDF417, -1, -1, -1, 12, 0.5, "1", "", 0, 12, 6, 103, 206 * 0.5, 12, 0 /*set_row*/, 12, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 34*/ { BARCODE_PDF417, -1, -1, -1, 13, 0.5, "1", "", 0, 12, 6, 103, 206 * 0.5, 12, 0 /*set_row*/, 12, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 35*/ { BARCODE_PDF417, -1, -1, -1, 14, 0.5, "1", "", 0, 12, 6, 103, 206 * 0.5, 12, 0 /*set_row*/, 12, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 36*/ { BARCODE_PDF417, -1, -1, -1, 15, 0.5, "1", "", 0, 18, 6, 103, 206 * 0.5, 18, 0 /*set_row*/, 18, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 37*/ { BARCODE_PDF417, -1, -1, -1, 16, 0.5, "1", "", 0, 18, 6, 103, 206 * 0.5, 18, 0 /*set_row*/, 18, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 38*/ { BARCODE_PDF417, -1, -1, -1, 17, 0.5, "1", "", 0, 18, 6, 103, 206 * 0.5, 18, 0 /*set_row*/, 18, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 39*/ { BARCODE_PDF417, -1, -1, -1, 18, 0.5, "1", "", 0, 18, 6, 103, 206 * 0.5, 18, 0 /*set_row*/, 18, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 40*/ { BARCODE_PDF417, -1, -1, -1, 19, 0.5, "1", "", 0, 18, 6, 103, 206 * 0.5, 18, 0 /*set_row*/, 18, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 41*/ { BARCODE_PDF417, -1, -1, -1, 20, 0.5, "1", "", 0, 18, 6, 103, 206 * 0.5, 18, 0 /*set_row*/, 18, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 42*/ { BARCODE_PDF417, -1, -1, -1, 21, 0.5, "1", "", 0, 24, 6, 103, 206 * 0.5, 24, 0 /*set_row*/, 24, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 43*/ { BARCODE_PDF417, -1, -1, -1, 38, 0.5, "1", "", 0, 36, 6, 103, 206 * 0.5, 36, 0 /*set_row*/, 36, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 44*/ { BARCODE_PDF417, -1, -1, -1, 39, 0.5, "1", "", 0, 42, 6, 103, 206 * 0.5, 42, 0 /*set_row*/, 42, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 45*/ { BARCODE_PDF417, -1, -1, -1, 40, 0.5, "1", "", 0, 42, 6, 103, 206 * 0.5, 42, 0 /*set_row*/, 42, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 46*/ { BARCODE_PDF417, -1, -1, -1, 41, 0.5, "1", "", 0, 42, 6, 103, 206 * 0.5, 42, 0 /*set_row*/, 42, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 47*/ { BARCODE_PDF417, -1, -1, -1, 42, 0.5, "1", "", 0, 42, 6, 103, 206 * 0.5, 42, 0 /*set_row*/, 42, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 48*/ { BARCODE_PDF417, -1, -1, -1, 43, 0.5, "1", "", 0, 42, 6, 103, 206 * 0.5, 42, 0 /*set_row*/, 42, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 49*/ { BARCODE_PDF417, -1, -1, -1, 44, 0.5, "1", "", 0, 42, 6, 103, 206 * 0.5, 42, 0 /*set_row*/, 42, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 50*/ { BARCODE_PDF417, -1, -1, -1, 45, 0.5, "1", "", 0, 48, 6, 103, 206 * 0.5, 48, 0 /*set_row*/, 48, 170 * 0.5, 14 * 0.5 }, // Height specified - /* 51*/ { BARCODE_DBAR_LTD, -1, -1, BOLD_TEXT, 0, 0, "123456789012", "", 0, 50, 1, 79, 158, 116, 104 /*set_row*/, 114, 20, 2 }, // With no scaling + /* 25*/ { BARCODE_PDF417, -1, -1, -1, 1, 0.5, "1", "", 0, 6, 6, 103, 206 * 0.5, 6, 0 /*set_row*/, 6, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 26*/ { BARCODE_PDF417, -1, -1, -1, 5, 0.5, "1", "", 0, 6, 6, 103, 206 * 0.5, 6, 0 /*set_row*/, 6, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 27*/ { BARCODE_PDF417, -1, -1, -1, 6, 0.5, "1", "", 0, 6, 6, 103, 206 * 0.5, 6, 0 /*set_row*/, 6, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 28*/ { BARCODE_PDF417, -1, -1, -1, 7, 0.5, "1", "", 0, 6, 6, 103, 206 * 0.5, 6, 0 /*set_row*/, 6, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 29*/ { BARCODE_PDF417, -1, -1, -1, 8, 0.5, "1", "", 0, 6, 6, 103, 206 * 0.5, 6, 0 /*set_row*/, 6, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 30*/ { BARCODE_PDF417, -1, -1, -1, 9, 0.5, "1", "", 0, 12, 6, 103, 206 * 0.5, 12, 0 /*set_row*/, 12, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 31*/ { BARCODE_PDF417, -1, -1, -1, 10, 0.5, "1", "", 0, 12, 6, 103, 206 * 0.5, 12, 0 /*set_row*/, 12, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 32*/ { BARCODE_PDF417, -1, -1, -1, 11, 0.5, "1", "", 0, 12, 6, 103, 206 * 0.5, 12, 0 /*set_row*/, 12, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 33*/ { BARCODE_PDF417, -1, -1, -1, 12, 0.5, "1", "", 0, 12, 6, 103, 206 * 0.5, 12, 0 /*set_row*/, 12, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 34*/ { BARCODE_PDF417, -1, -1, -1, 13, 0.5, "1", "", 0, 12, 6, 103, 206 * 0.5, 12, 0 /*set_row*/, 12, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 35*/ { BARCODE_PDF417, -1, -1, -1, 14, 0.5, "1", "", 0, 12, 6, 103, 206 * 0.5, 12, 0 /*set_row*/, 12, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 36*/ { BARCODE_PDF417, -1, -1, -1, 15, 0.5, "1", "", 0, 18, 6, 103, 206 * 0.5, 18, 0 /*set_row*/, 18, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 37*/ { BARCODE_PDF417, -1, -1, -1, 16, 0.5, "1", "", 0, 18, 6, 103, 206 * 0.5, 18, 0 /*set_row*/, 18, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 38*/ { BARCODE_PDF417, -1, -1, -1, 17, 0.5, "1", "", 0, 18, 6, 103, 206 * 0.5, 18, 0 /*set_row*/, 18, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 39*/ { BARCODE_PDF417, -1, -1, -1, 18, 0.5, "1", "", 0, 18, 6, 103, 206 * 0.5, 18, 0 /*set_row*/, 18, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 40*/ { BARCODE_PDF417, -1, -1, -1, 19, 0.5, "1", "", 0, 18, 6, 103, 206 * 0.5, 18, 0 /*set_row*/, 18, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 41*/ { BARCODE_PDF417, -1, -1, -1, 20, 0.5, "1", "", 0, 18, 6, 103, 206 * 0.5, 18, 0 /*set_row*/, 18, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 42*/ { BARCODE_PDF417, -1, -1, -1, 21, 0.5, "1", "", 0, 24, 6, 103, 206 * 0.5, 24, 0 /*set_row*/, 24, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 43*/ { BARCODE_PDF417, -1, -1, -1, 38, 0.5, "1", "", 0, 36, 6, 103, 206 * 0.5, 36, 0 /*set_row*/, 36, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 44*/ { BARCODE_PDF417, -1, -1, -1, 39, 0.5, "1", "", 0, 42, 6, 103, 206 * 0.5, 42, 0 /*set_row*/, 42, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 45*/ { BARCODE_PDF417, -1, -1, -1, 40, 0.5, "1", "", 0, 42, 6, 103, 206 * 0.5, 42, 0 /*set_row*/, 42, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 46*/ { BARCODE_PDF417, -1, -1, -1, 41, 0.5, "1", "", 0, 42, 6, 103, 206 * 0.5, 42, 0 /*set_row*/, 42, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 47*/ { BARCODE_PDF417, -1, -1, -1, 42, 0.5, "1", "", 0, 42, 6, 103, 206 * 0.5, 42, 0 /*set_row*/, 42, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 48*/ { BARCODE_PDF417, -1, -1, -1, 43, 0.5, "1", "", 0, 42, 6, 103, 206 * 0.5, 42, 0 /*set_row*/, 42, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 49*/ { BARCODE_PDF417, -1, -1, -1, 44, 0.5, "1", "", 0, 42, 6, 103, 206 * 0.5, 42, 0 /*set_row*/, 42, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 50*/ { BARCODE_PDF417, -1, -1, -1, 45, 0.5, "1", "", 0, 48, 6, 103, 206 * 0.5, 48, 0 /*set_row*/, 48, 170 * 0.5, 14 * 0.5 }, /* Height specified */ + /* 51*/ { BARCODE_DBAR_LTD, -1, -1, BOLD_TEXT, 0, 0, "123456789012", "", 0, 50, 1, 79, 158, 116, 104 /*set_row*/, 114, 20, 2 }, /* With no scaling */ /* 52*/ { BARCODE_DBAR_LTD, -1, -1, BOLD_TEXT, 0, 1.5, "123456789012", "", 0, 50, 1, 79, 158 * 1.5, 116 * 1.5, 104 * 1.5 /*set_row*/, 114 * 1.5, 20 * 1.5, 1 * 1.5 }, /* 53*/ { BARCODE_DBAR_LTD, -1, -1, BOLD_TEXT, 0, 2.0, "123456789012", "", 0, 50, 1, 79, 158 * 2.0, 116 * 2.0, 104 * 2.0 /*set_row*/, 114 * 2.0, 20 * 2.0, 1 * 2.0 }, /* 54*/ { BARCODE_DBAR_LTD, -1, -1, BOLD_TEXT, 0, 3.5, "123456789012", "", 0, 50, 1, 79, 158 * 3.5, 116 * 3.5, 104 * 3.5 /*set_row*/, 114 * 3.5, 20 * 3.5, 1 * 3.5 }, - /* 55*/ { BARCODE_UPCA, -1, -1, -1, 0, 0, "12345678904", "", 0, 50, 1, 95, 226, 116, 104 /*set_row*/, 114, 5, 2 }, // With no scaling + /* 55*/ { BARCODE_UPCA, -1, -1, -1, 0, 0, "12345678904", "", 0, 50, 1, 95, 226, 116, 104 /*set_row*/, 114, 5, 2 }, /* With no scaling */ /* 56*/ { BARCODE_UPCA, -1, -1, -1, 0, 2.5, "12345678904", "", 0, 50, 1, 95, 226 * 2.5, 116 * 2.5, 104 * 2.5 /*set_row*/, 114 * 2.5, 5 * 2.5, 2 * 2.5 }, /* 57*/ { BARCODE_UPCA, -1, -1, -1, 0, 4.5, "12345678904", "", 0, 50, 1, 95, 226 * 4.5, 116 * 4.5, 104 * 4.5 /*set_row*/, 114 * 4.5, 5 * 4.5, 2 * 4.5 }, - /* 58*/ { BARCODE_CODABLOCKF, -1, -1, -1, 0, 0, "1234567890123456", "", 0, 30, 3, 101, 242, 64, 0 /*set_row*/, 64, 42, 2 }, // With no scaling + /* 58*/ { BARCODE_CODABLOCKF, -1, -1, -1, 0, 0, "1234567890123456", "", 0, 30, 3, 101, 242, 64, 0 /*set_row*/, 64, 42, 2 }, /* With no scaling */ /* 59*/ { BARCODE_CODABLOCKF, -1, -1, -1, 0, 0.5, "1234567890123456", "", 0, 30, 3, 101, 242 * 0.5, 64 * 0.5, 0 /*set_row*/, 64 * 0.5, 42 * 0.5, 2 * 0.5 }, - /* 60*/ { BARCODE_CODABLOCKF, -1, -1, -1, 34, 0.5, "1234567890123456", "", 0, 33, 3, 101, 242 * 0.5, 35, 0 /*set_row*/, 35, 42 * 0.5, 2 * 0.5 }, // Height specified - /* 61*/ { BARCODE_CODABLOCKF, -1, -1, -1, 47, 0.5, "1234567890123456", "", 0, 48, 3, 101, 242 * 0.5, 50, 0 /*set_row*/, 50, 42 * 0.5, 2 * 0.5 }, // Height specified - /* 62*/ { BARCODE_DBAR_OMNSTK, -1, -1, 0, 0, 0, "1", "", 0, 69, 5, 50, 100, 138, 0 /*set_row*/, 66, 16, 2 }, // With no scaling + /* 60*/ { BARCODE_CODABLOCKF, -1, -1, -1, 34, 0.5, "1234567890123456", "", 0, 33, 3, 101, 242 * 0.5, 35, 0 /*set_row*/, 35, 42 * 0.5, 2 * 0.5 }, /* Height specified */ + /* 61*/ { BARCODE_CODABLOCKF, -1, -1, -1, 47, 0.5, "1234567890123456", "", 0, 48, 3, 101, 242 * 0.5, 50, 0 /*set_row*/, 50, 42 * 0.5, 2 * 0.5 }, /* Height specified */ + /* 62*/ { BARCODE_DBAR_OMNSTK, -1, -1, 0, 0, 0, "1", "", 0, 69, 5, 50, 100, 138, 0 /*set_row*/, 66, 16, 2 }, /* With no scaling */ /* 63*/ { BARCODE_DBAR_OMNSTK, -1, -1, 0, 0, 0.5, "1", "", 0, 69, 5, 50, 100 * 0.5, 138 * 0.5, 0 /*set_row*/, 66 * 0.5, 16 * 0.5, 2 * 0.5 }, - /* 64*/ { BARCODE_DBAR_OMNSTK, -1, -1, 0, 18, 0.5, "1", "", 0, 19, 5, 50, 100 * 0.5, 19, 0 /*set_row*/, 8, 16 * 0.5, 2 * 0.5 }, // Height specified - /* 65*/ { BARCODE_DBAR_EXPSTK, 1, -1, 0, 0, 0, "[01]12345678901231", "", 0, 108, 9, 53, 106, 216, 0 /*set_row*/, 68, 36, 2 }, // With no scaling + /* 64*/ { BARCODE_DBAR_OMNSTK, -1, -1, 0, 18, 0.5, "1", "", 0, 19, 5, 50, 100 * 0.5, 19, 0 /*set_row*/, 8, 16 * 0.5, 2 * 0.5 }, /* Height specified */ + /* 65*/ { BARCODE_DBAR_EXPSTK, 1, -1, 0, 0, 0, "[01]12345678901231", "", 0, 108, 9, 53, 106, 216, 0 /*set_row*/, 68, 36, 2 }, /* With no scaling */ /* 66*/ { BARCODE_DBAR_EXPSTK, 1, -1, 0, 0, 0.5, "[01]12345678901231", "", 0, 108, 9, 53, 106 * 0.5, 216 * 0.5, 0 /*set_row*/, 68 * 0.5, 36 * 0.5, 2 * 0.5 }, - /* 67*/ { BARCODE_DBAR_EXPSTK, 1, -1, 0, 10, 0.5, "[01]12345678901231", "", 0, 9, 9, 53, 106 * 0.5, 9, 0 /*set_row*/, 1, 36 * 0.5, 2 * 0.5 }, // Height specified - /* 68*/ { BARCODE_DBAR_EXPSTK, 1, -1, 0, 99, 0.5, "[01]12345678901231", "", 0, 99, 9, 53, 106 * 0.5, 99, 0 /*set_row*/, 31, 36 * 0.5, 2 * 0.5 }, // Height specified - /* 69*/ { BARCODE_DBAR_EXPSTK, 1, -1, 0, 100, 0.5, "[01]12345678901231", "", 0, 99, 9, 53, 106 * 0.5, 99, 0 /*set_row*/, 31, 36 * 0.5, 2 * 0.5 }, // Height specified - /* 70*/ { BARCODE_DBAR_EXPSTK, 1, -1, 0, 101, 0.5, "[01]12345678901231", "", 0, 102, 9, 53, 106 * 0.5, 102, 0 /*set_row*/, 32, 36 * 0.5, 2 * 0.5 }, // Height specified - /* 71*/ { BARCODE_DBAR_EXPSTK, 1, -1, 0, 102, 0.5, "[01]12345678901231", "", 0, 102, 9, 53, 106 * 0.5, 102, 0 /*set_row*/, 32, 36 * 0.5, 2 * 0.5 }, // Height specified - /* 72*/ { BARCODE_DBAR_EXPSTK, 1, -1, 0, 103, 0.5, "[01]12345678901231", "", 0, 102, 9, 53, 106 * 0.5, 102, 0 /*set_row*/, 32, 36 * 0.5, 2 * 0.5 }, // Height specified - /* 73*/ { BARCODE_UPCE_CC, -1, -1, -1, 0, 0, "1234567", "[17]010615[10]A123456\"", 0, 50, 10, 55, 142, 116, 104 /*set_row*/, 115, 11, 2 }, // With no scaling + /* 67*/ { BARCODE_DBAR_EXPSTK, 1, -1, 0, 10, 0.5, "[01]12345678901231", "", 0, 9, 9, 53, 106 * 0.5, 9, 0 /*set_row*/, 1, 36 * 0.5, 2 * 0.5 }, /* Height specified */ + /* 68*/ { BARCODE_DBAR_EXPSTK, 1, -1, 0, 99, 0.5, "[01]12345678901231", "", 0, 99, 9, 53, 106 * 0.5, 99, 0 /*set_row*/, 31, 36 * 0.5, 2 * 0.5 }, /* Height specified */ + /* 69*/ { BARCODE_DBAR_EXPSTK, 1, -1, 0, 100, 0.5, "[01]12345678901231", "", 0, 99, 9, 53, 106 * 0.5, 99, 0 /*set_row*/, 31, 36 * 0.5, 2 * 0.5 }, /* Height specified */ + /* 70*/ { BARCODE_DBAR_EXPSTK, 1, -1, 0, 101, 0.5, "[01]12345678901231", "", 0, 102, 9, 53, 106 * 0.5, 102, 0 /*set_row*/, 32, 36 * 0.5, 2 * 0.5 }, /* Height specified */ + /* 71*/ { BARCODE_DBAR_EXPSTK, 1, -1, 0, 102, 0.5, "[01]12345678901231", "", 0, 102, 9, 53, 106 * 0.5, 102, 0 /*set_row*/, 32, 36 * 0.5, 2 * 0.5 }, /* Height specified */ + /* 72*/ { BARCODE_DBAR_EXPSTK, 1, -1, 0, 103, 0.5, "[01]12345678901231", "", 0, 102, 9, 53, 106 * 0.5, 102, 0 /*set_row*/, 32, 36 * 0.5, 2 * 0.5 }, /* Height specified */ + /* 73*/ { BARCODE_UPCE_CC, -1, -1, -1, 0, 0, "1234567", "[17]010615[10]A123456\"", 0, 50, 10, 55, 142, 116, 104 /*set_row*/, 115, 11, 2 }, /* With no scaling */ /* 74*/ { BARCODE_UPCE_CC, -1, -1, -1, 0, 0.5, "1234567", "[17]010615[10]A123456\"", 0, 50, 10, 55, 142 * 0.5, 55, 18 /*set_row*/, 55, 62, 2 * 0.5 }, - /* 75*/ { BARCODE_UPCE_CC, -1, -1, -1, 0, 2.0, "1234567", "[17]010615[10]A123456\"", 0, 50, 10, 55, 142 * 2, 116 * 2, 104 * 2 + 1 /*set_row*/, 115 * 2, 11 * 2, 2 * 2 }, // +1 set_row - /* 76*/ { BARCODE_UPCE_CC, -1, -1, -1, 2, 0.5, "1234567", "[17]010615[10]A123456\"", 0, 19, 10, 55, 142 * 0.5, 24, 16 /*set_row*/, 23, 62, 2 * 0.5 }, // Height specified - /* 77*/ { BARCODE_MAXICODE, -1, -1, -1, 0, 0, "1234567890", "", 0, 165, 33, 30, 299, 298, 3 /*set_row*/, 7, 10, 9 }, // With no scaling + /* 75*/ { BARCODE_UPCE_CC, -1, -1, -1, 0, 2.0, "1234567", "[17]010615[10]A123456\"", 0, 50, 10, 55, 142 * 2, 116 * 2, 104 * 2 + 1 /*set_row*/, 115 * 2, 11 * 2, 2 * 2 }, /* +1 set_row */ + /* 76*/ { BARCODE_UPCE_CC, -1, -1, -1, 2, 0.5, "1234567", "[17]010615[10]A123456\"", 0, 19, 10, 55, 142 * 0.5, 24, 16 /*set_row*/, 23, 62, 2 * 0.5 }, /* Height specified */ + /* 77*/ { BARCODE_MAXICODE, -1, -1, -1, 0, 0, "1234567890", "", 0, 165, 33, 30, 299, 298, 3 /*set_row*/, 7, 10, 9 }, /* With no scaling */ /* 78*/ { BARCODE_MAXICODE, -1, -1, -1, 0, 0.1, "1234567890", "", ZINT_WARN_NONCOMPLIANT, 165, 33, 30, 60, 65, 0 /*set_row*/, 1, 3, 1 }, - /* 79*/ { BARCODE_POSTNET, -1, -1, BARCODE_QUIET_ZONES, 0, 0, "12345", "", 0, 12, 2, 63, 146, 30, 3 /*set_row*/, 27, 10, 2 }, // With no scaling - /* 80*/ { BARCODE_POSTNET, -1, -1, BARCODE_QUIET_ZONES, 0, 0.1, "12345", "", 0, 12, 2, 63, 146 * 0.5, 30 * 0.5 - 1, 3 * 0.5 /*set_row*/, 27 * 0.5, 10 * 0.5, 2 * 0.5 }, // -1 height due to yoffset/boffset flooring - /* 81*/ { BARCODE_POSTNET, -1, -1, BARCODE_QUIET_ZONES, 0, 0.9, "12345", "", 0, 12, 2, 63, 146 * 0.9, 30 * 0.9, 3 * 0.9 + 1 /*set_row*/, 27 * 0.9, 10 * 0.9, 2 * 0.9 + 1 }, // +1's due to interpolation - /* 82*/ { BARCODE_POSTNET, -1, -1, BARCODE_QUIET_ZONES, 0, 2.3, "12345", "", 0, 12, 2, 63, 146 * 2.3, 30 * 2.3, 3 * 2.3 + 1 /*set_row*/, 27 * 2.3 - 1, 10 * 2.3, 2 * 2.3 + 1 }, // -1/+1's due to interpolation - /* 83*/ { BARCODE_POSTNET, -1, -1, BARCODE_QUIET_ZONES, 0, 3.1, "12345", "", 0, 12, 2, 63, 146 * 3.1, 30 * 3.1, 3 * 3.1 + 1 /*set_row*/, 27 * 3.1, 10 * 3.1, 2 * 3.2 + 1 }, // +1's due to interpolation - /* 84*/ { BARCODE_ITF14, -1, 4, BARCODE_BIND, 61.8, 0, "12345", "", 0, 62, 1, 135, 310, 156, 8 /*set_row*/, 132, 20, 2 }, // With no scaling - /* 85*/ { BARCODE_ITF14, -1, 4, BARCODE_BIND, 61.8, 2, "12345", "", 0, 61.75, 1, 135, 310 * 2, 156 * 2 - 1, 8 * 2 /*set_row*/, 132 * 2 - 1, 20 * 2, 2 * 2 }, // -1's due to height rounding + /* 79*/ { BARCODE_POSTNET, -1, -1, BARCODE_QUIET_ZONES, 0, 0, "12345", "", 0, 12, 2, 63, 146, 30, 3 /*set_row*/, 27, 10, 2 }, /* With no scaling */ + /* 80*/ { BARCODE_POSTNET, -1, -1, BARCODE_QUIET_ZONES, 0, 0.1, "12345", "", 0, 12, 2, 63, 146 * 0.5, 30 * 0.5 - 1, 3 * 0.5 /*set_row*/, 27 * 0.5, 10 * 0.5, 2 * 0.5 }, /* -1 height due to yoffset/boffset flooring */ + /* 81*/ { BARCODE_POSTNET, -1, -1, BARCODE_QUIET_ZONES, 0, 0.9, "12345", "", 0, 12, 2, 63, 146 * 0.9, 30 * 0.9, 3 * 0.9 + 1 /*set_row*/, 27 * 0.9, 10 * 0.9, 2 * 0.9 + 1 }, /* +1's due to interpolation */ + /* 82*/ { BARCODE_POSTNET, -1, -1, BARCODE_QUIET_ZONES, 0, 2.3, "12345", "", 0, 12, 2, 63, 146 * 2.3, 30 * 2.3, 3 * 2.3 + 1 /*set_row*/, 27 * 2.3 - 1, 10 * 2.3, 2 * 2.3 + 1 }, /* -1/+1's due to interpolation */ + /* 83*/ { BARCODE_POSTNET, -1, -1, BARCODE_QUIET_ZONES, 0, 3.1, "12345", "", 0, 12, 2, 63, 146 * 3.1, 30 * 3.1, 3 * 3.1 + 1 /*set_row*/, 27 * 3.1, 10 * 3.1, 2 * 3.2 + 1 }, /* +1's due to interpolation */ + /* 84*/ { BARCODE_ITF14, -1, 4, BARCODE_BIND, 61.8, 0, "12345", "", 0, 62, 1, 135, 310, 156, 8 /*set_row*/, 132, 20, 2 }, /* With no scaling */ + /* 85*/ { BARCODE_ITF14, -1, 4, BARCODE_BIND, 61.8, 2, "12345", "", 0, 61.75, 1, 135, 310 * 2, 156 * 2 - 1, 8 * 2 /*set_row*/, 132 * 2 - 1, 20 * 2, 2 * 2 }, /* -1's due to height rounding */ /* 86*/ { BARCODE_ITF14, -1, 4, BARCODE_BIND, 61.8, 2.1, "12345", "", 0, 62, 1, 135, 310 * 2.1, 156 * 2.1, 8 * 2.1 /*set_row*/, 132 * 2.1, 20 * 2.1, 2 * 2.1 }, }; int data_size = ARRAY_SIZE(data); @@ -1246,7 +1248,7 @@ static void test_scale(int index, int debug) { assert_equal(ret, data[i].ret_raster, "i:%d ZBarcode_Buffer(%d) ret %d != %d (%s)\n", i, data[i].symbology, ret, data[i].ret_raster, symbol->errtxt); assert_nonnull(symbol->bitmap, "i:%d (%d) symbol->bitmap NULL\n", i, data[i].symbology); - if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); // ZINT_DEBUG_TEST_PRINT 16 + if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); /* ZINT_DEBUG_TEST_PRINT 16 */ assert_equal(symbol->height, data[i].expected_height, "i:%d (%d) symbol->height %.8g != %.8g\n", i, data[i].symbology, symbol->height, data[i].expected_height); assert_equal(symbol->rows, data[i].expected_rows, "i:%d (%d) symbol->rows %d != %d\n", i, data[i].symbology, symbol->rows, data[i].expected_rows); @@ -1297,7 +1299,7 @@ static void test_guard_descent(int index, int debug) { int expected_set_col; int expected_set_len; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_UPCE, -1, "1234567", 0, 50, 1, 51, 134, 116, 1 /*set*/, 100 /*set_row*/, 100 + 10, 18, 2 }, /* 1*/ { BARCODE_UPCE, -1, "1234567", 0, 50, 1, 51, 134, 116, 0 /*set*/, 100 + 10 /*set_row*/, 100 + 16, 18, 2 }, @@ -1357,7 +1359,7 @@ static void test_guard_descent(int index, int debug) { assert_equal(ret, data[i].ret_raster, "i:%d ZBarcode_Buffer(%d) ret %d != %d (%s)\n", i, data[i].symbology, ret, data[i].ret_raster, symbol->errtxt); assert_nonnull(symbol->bitmap, "i:%d (%d) symbol->bitmap NULL\n", i, data[i].symbology); - if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); // ZINT_DEBUG_TEST_PRINT 16 + if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); /* ZINT_DEBUG_TEST_PRINT 16 */ assert_equal(symbol->height, data[i].expected_height, "i:%d (%d) symbol->height %.8g != %.8g\n", i, data[i].symbology, symbol->height, data[i].expected_height); assert_equal(symbol->rows, data[i].expected_rows, "i:%d (%d) symbol->rows %d != %d\n", i, data[i].symbology, symbol->rows, data[i].expected_rows); @@ -1414,11 +1416,11 @@ static void test_quiet_zones(int index, int debug) { int expected_set_col; int expected_set_len; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_CODE11, -1, -1, -1, "1234", 0, 50, 1, 62, 124, 116, 1 /*set*/, 0, 100, 0, 2 }, /* 1*/ { BARCODE_CODE11, BARCODE_QUIET_ZONES, -1, -1, "1234", 0, 50, 1, 62, 164, 116, 0 /*set*/, 0, 100, 0, 20 }, - /* 2*/ { BARCODE_CODE11, BARCODE_QUIET_ZONES | BARCODE_NO_QUIET_ZONES, -1, -1, "1234", 0, 50, 1, 62, 124, 116, 1 /*set*/, 0, 100, 0, 2 }, // BARCODE_NO_QUIET_ZONES trumps BARCODE_QUIET_ZONES + /* 2*/ { BARCODE_CODE11, BARCODE_QUIET_ZONES | BARCODE_NO_QUIET_ZONES, -1, -1, "1234", 0, 50, 1, 62, 124, 116, 1 /*set*/, 0, 100, 0, 2 }, /* BARCODE_NO_QUIET_ZONES trumps BARCODE_QUIET_ZONES */ /* 3*/ { BARCODE_C25STANDARD, -1, -1, -1, "1234", 0, 50, 1, 57, 114, 116, 1 /*set*/, 0, 100, 0, 8 }, /* 4*/ { BARCODE_C25STANDARD, BARCODE_QUIET_ZONES, -1, -1, "1234", 0, 50, 1, 57, 154, 116, 0 /*set*/, 0, 100, 0, 20 }, /* 5*/ { BARCODE_C25INTER, -1, -1, -1, "1234", 0, 50, 1, 45, 90, 116, 1 /*set*/, 0, 100, 0, 2 }, @@ -1433,30 +1435,30 @@ static void test_quiet_zones(int index, int debug) { /* 14*/ { BARCODE_CODE39, BARCODE_QUIET_ZONES, -1, -1, "1234", 0, 50, 1, 77, 194, 116, 0 /*set*/, 0, 100, 0, 20 }, /* 15*/ { BARCODE_EXCODE39, -1, -1, -1, "1234", 0, 50, 1, 77, 154, 116, 1 /*set*/, 0, 100, 0, 2 }, /* 16*/ { BARCODE_EXCODE39, BARCODE_QUIET_ZONES, -1, -1, "1234", 0, 50, 1, 77, 194, 116, 0 /*set*/, 0, 100, 0, 20 }, - /* 17*/ { BARCODE_EANX, -1, -1, -1, "023456789012", 0, 50, 1, 95, 226, 116, 0 /*set*/, 0, 110, 212, 14 }, // EAN-13 + /* 17*/ { BARCODE_EANX, -1, -1, -1, "023456789012", 0, 50, 1, 95, 226, 116, 0 /*set*/, 0, 110, 212, 14 }, /* EAN-13 */ /* 18*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, -1, "023456789012", 0, 50, 1, 95, 226, 116, 0 /*set*/, 0, 110, 212, 14 }, /* 19*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, -1, "023456789012", 0, 50, 1, 95, 212, 116, 1 /*set*/, 0, 110, 210, 2 }, - /* 20*/ { BARCODE_EANX, -1, -1, 0, "023456789012", 0, 50, 1, 95, 226, 110, 0 /*set*/, 0, 110, 212, 14 }, // Hide text - /* 21*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, 0, "023456789012", 0, 50, 1, 95, 226, 110, 0 /*set*/, 0, 110, 212, 14 }, // Hide text - /* 22*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, 0, "023456789012", 0, 50, 1, 95, 190, 110, 1 /*set*/, 0, 110, 188, 2 }, // Hide text + /* 20*/ { BARCODE_EANX, -1, -1, 0, "023456789012", 0, 50, 1, 95, 226, 110, 0 /*set*/, 0, 110, 212, 14 }, /* Hide text */ + /* 21*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, 0, "023456789012", 0, 50, 1, 95, 226, 110, 0 /*set*/, 0, 110, 212, 14 }, /* Hide text */ + /* 22*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, 0, "023456789012", 0, 50, 1, 95, 190, 110, 1 /*set*/, 0, 110, 188, 2 }, /* Hide text */ /* 23*/ { BARCODE_EANX, -1, -1, -1, "023456789012+12", 0, 50, 1, 122, 276, 116, 0 /*set*/, 16, 110, 266, 10 }, /* 24*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, -1, "023456789012+12", 0, 50, 1, 122, 276, 116, 0 /*set*/, 16, 110, 266, 10 }, /* 25*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, -1, "023456789012+12", 0, 50, 1, 122, 266, 116, 1 /*set*/, 16, 110, 262, 4 }, - /* 26*/ { BARCODE_EANX, -1, -1, 0, "023456789012+12", 0, 50, 1, 122, 276, 110, 0 /*set*/, 16, 110, 266, 10 }, // Hide text - /* 27*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, 0, "023456789012+12", 0, 50, 1, 122, 276, 110, 0 /*set*/, 16, 110, 266, 10 }, // Hide text - /* 28*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, 0, "023456789012+12", 0, 50, 1, 122, 244, 110, 1 /*set*/, 16, 110, 240, 4 }, // Hide text + /* 26*/ { BARCODE_EANX, -1, -1, 0, "023456789012+12", 0, 50, 1, 122, 276, 110, 0 /*set*/, 16, 110, 266, 10 }, /* Hide text */ + /* 27*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, 0, "023456789012+12", 0, 50, 1, 122, 276, 110, 0 /*set*/, 16, 110, 266, 10 }, /* Hide text */ + /* 28*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, 0, "023456789012+12", 0, 50, 1, 122, 244, 110, 1 /*set*/, 16, 110, 240, 4 }, /* Hide text */ /* 29*/ { BARCODE_EANX_CHK, -1, -1, -1, "0234567890129+12345", 0, 50, 1, 149, 330, 116, 0 /*set*/, 16, 110, 320, 10 }, /* 30*/ { BARCODE_EANX_CHK, BARCODE_QUIET_ZONES, -1, -1, "0234567890129+12345", 0, 50, 1, 149, 330, 116, 0 /*set*/, 16, 110, 320, 10 }, /* 31*/ { BARCODE_EANX_CHK, BARCODE_NO_QUIET_ZONES, -1, -1, "0234567890129+12345", 0, 50, 1, 149, 320, 116, 1 /*set*/, 16, 110, 318, 2 }, - /* 32*/ { BARCODE_EANX, -1, -1, -1, "0234567", 0, 50, 1, 67, 162, 116, 0 /*set*/, 0, 100, 0, 14 }, // EAN-8 - /* 33*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, -1, "0234567", 0, 50, 1, 67, 162, 116, 0 /*set*/, 0, 100, 0, 14 }, // EAN-8 - /* 34*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, -1, "0234567", 0, 50, 1, 67, 134, 116, 1 /*set*/, 0, 100, 0, 2 }, // EAN-8 - /* 35*/ { BARCODE_EANX, -1, -1, -1, "02345", 0, 50, 1, 47, 118, 116, 0 /*set*/, 0, 100, 0, 14 }, // EAN-5 - /* 36*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, -1, "02345", 0, 50, 1, 47, 118, 116, 0 /*set*/, 0, 100, 0, 14 }, // EAN-5 - /* 37*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, -1, "02345", 0, 50, 1, 47, 94, 116, 1 /*set*/, 0, 100, 0, 2 }, // EAN-5 - /* 38*/ { BARCODE_EANX, -1, -1, -1, "02", 0, 50, 1, 20, 64, 116, 0 /*set*/, 0, 100, 0, 14 }, // EAN-2 - /* 39*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, -1, "02", 0, 50, 1, 20, 64, 116, 0 /*set*/, 0, 100, 0, 14 }, // EAN-2 - /* 40*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, -1, "02", 0, 50, 1, 20, 40, 116, 1 /*set*/, 0, 100, 0, 2 }, // EAN-2 + /* 32*/ { BARCODE_EANX, -1, -1, -1, "0234567", 0, 50, 1, 67, 162, 116, 0 /*set*/, 0, 100, 0, 14 }, /* EAN-8 */ + /* 33*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, -1, "0234567", 0, 50, 1, 67, 162, 116, 0 /*set*/, 0, 100, 0, 14 }, /* EAN-8 */ + /* 34*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, -1, "0234567", 0, 50, 1, 67, 134, 116, 1 /*set*/, 0, 100, 0, 2 }, /* EAN-8 */ + /* 35*/ { BARCODE_EANX, -1, -1, -1, "02345", 0, 50, 1, 47, 118, 116, 0 /*set*/, 0, 100, 0, 14 }, /* EAN-5 */ + /* 36*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, -1, "02345", 0, 50, 1, 47, 118, 116, 0 /*set*/, 0, 100, 0, 14 }, /* EAN-5 */ + /* 37*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, -1, "02345", 0, 50, 1, 47, 94, 116, 1 /*set*/, 0, 100, 0, 2 }, /* EAN-5 */ + /* 38*/ { BARCODE_EANX, -1, -1, -1, "02", 0, 50, 1, 20, 64, 116, 0 /*set*/, 0, 100, 0, 14 }, /* EAN-2 */ + /* 39*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, -1, "02", 0, 50, 1, 20, 64, 116, 0 /*set*/, 0, 100, 0, 14 }, /* EAN-2 */ + /* 40*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, -1, "02", 0, 50, 1, 20, 40, 116, 1 /*set*/, 0, 100, 0, 2 }, /* EAN-2 */ /* 41*/ { BARCODE_GS1_128, -1, -1, -1, "[20]02", 0, 50, 1, 68, 136, 116, 1 /*set*/, 0, 100, 0, 4 }, /* 42*/ { BARCODE_GS1_128, BARCODE_QUIET_ZONES, -1, -1, "[20]02", 0, 50, 1, 68, 176, 116, 0 /*set*/, 0, 100, 0, 20 }, /* 43*/ { BARCODE_CODABAR, -1, -1, -1, "A0B", 0, 50, 1, 32, 64, 116, 1 /*set*/, 0, 100, 0, 2 }, @@ -1492,39 +1494,39 @@ static void test_quiet_zones(int index, int debug) { /* 73*/ { BARCODE_UPCA, -1, -1, -1, "01457137763", 0, 50, 1, 95, 226, 116, 0 /*set*/, 0, 100, 0, 18 }, /* 74*/ { BARCODE_UPCA, BARCODE_QUIET_ZONES, -1, -1, "01457137763", 0, 50, 1, 95, 226, 116, 0 /*set*/, 0, 100, 0, 18 }, /* 75*/ { BARCODE_UPCA, BARCODE_NO_QUIET_ZONES, -1, -1, "01457137763", 0, 50, 1, 95, 226, 116, 0 /*set*/, 0, 100, 0, 18 }, - /* 76*/ { BARCODE_UPCA, -1, -1, 0, "01457137763", 0, 50, 1, 95, 226, 110, 0 /*set*/, 0, 110, 0, 18 }, // Hide text - /* 77*/ { BARCODE_UPCA, BARCODE_QUIET_ZONES, -1, 0, "01457137763", 0, 50, 1, 95, 226, 110, 0 /*set*/, 0, 110, 0, 18 }, // Hide text - /* 78*/ { BARCODE_UPCA, BARCODE_NO_QUIET_ZONES, -1, 0, "01457137763", 0, 50, 1, 95, 190, 110, 1 /*set*/, 0, 110, 0, 2 }, // Hide text + /* 76*/ { BARCODE_UPCA, -1, -1, 0, "01457137763", 0, 50, 1, 95, 226, 110, 0 /*set*/, 0, 110, 0, 18 }, /* Hide text */ + /* 77*/ { BARCODE_UPCA, BARCODE_QUIET_ZONES, -1, 0, "01457137763", 0, 50, 1, 95, 226, 110, 0 /*set*/, 0, 110, 0, 18 }, /* Hide text */ + /* 78*/ { BARCODE_UPCA, BARCODE_NO_QUIET_ZONES, -1, 0, "01457137763", 0, 50, 1, 95, 190, 110, 1 /*set*/, 0, 110, 0, 2 }, /* Hide text */ /* 79*/ { BARCODE_UPCA, -1, -1, -1, "01457137763+12", 0, 50, 1, 124, 276, 116, 0 /*set*/, 16, 100, 266, 10 }, /* 80*/ { BARCODE_UPCA, BARCODE_QUIET_ZONES, -1, -1, "01457137763+12", 0, 50, 1, 124, 276, 116, 0 /*set*/, 16, 100, 266, 10 }, /* 81*/ { BARCODE_UPCA, BARCODE_NO_QUIET_ZONES, -1, -1, "01457137763+12", 0, 50, 1, 124, 266, 116, 1 /*set*/, 16, 100, 262, 4 }, - /* 82*/ { BARCODE_UPCA, -1, -1, 0, "01457137763+12", 0, 50, 1, 124, 276, 110, 0 /*set*/, 16, 110, 266, 10 }, // Hide text - /* 83*/ { BARCODE_UPCA, BARCODE_QUIET_ZONES, -1, 0, "01457137763+12", 0, 50, 1, 124, 276, 110, 0 /*set*/, 16, 110, 266, 10 }, // Hide text - /* 84*/ { BARCODE_UPCA, BARCODE_NO_QUIET_ZONES, -1, 0, "01457137763+12", 0, 50, 1, 124, 248, 110, 1 /*set*/, 16, 100, 244, 4 }, // Hide text + /* 82*/ { BARCODE_UPCA, -1, -1, 0, "01457137763+12", 0, 50, 1, 124, 276, 110, 0 /*set*/, 16, 110, 266, 10 }, /* Hide text */ + /* 83*/ { BARCODE_UPCA, BARCODE_QUIET_ZONES, -1, 0, "01457137763+12", 0, 50, 1, 124, 276, 110, 0 /*set*/, 16, 110, 266, 10 }, /* Hide text */ + /* 84*/ { BARCODE_UPCA, BARCODE_NO_QUIET_ZONES, -1, 0, "01457137763+12", 0, 50, 1, 124, 248, 110, 1 /*set*/, 16, 100, 244, 4 }, /* Hide text */ /* 85*/ { BARCODE_UPCA_CHK, -1, -1, -1, "014571377638+12345", 0, 50, 1, 151, 330, 116, 0 /*set*/, 16, 100, 320, 10 }, /* 86*/ { BARCODE_UPCA_CHK, BARCODE_QUIET_ZONES, -1, -1, "014571377638+12345", 0, 50, 1, 151, 330, 116, 0 /*set*/, 16, 100, 320, 10 }, /* 87*/ { BARCODE_UPCA_CHK, BARCODE_NO_QUIET_ZONES, -1, -1, "014571377638+12345", 0, 50, 1, 151, 320, 116, 1 /*set*/, 16, 100, 318, 2 }, - /* 88*/ { BARCODE_UPCA_CHK, -1, -1, 0, "014571377638+12345", 0, 50, 1, 151, 330, 110, 0 /*set*/, 16, 110, 320, 10 }, // Hide text - /* 89*/ { BARCODE_UPCA_CHK, BARCODE_QUIET_ZONES, -1, 0, "014571377638+12345", 0, 50, 1, 151, 330, 110, 0 /*set*/, 16, 110, 320, 10 }, // Hide text - /* 90*/ { BARCODE_UPCA_CHK, BARCODE_NO_QUIET_ZONES, -1, 0, "014571377638+12345", 0, 50, 1, 151, 302, 110, 1 /*set*/, 16, 100, 300, 2 }, // Hide text + /* 88*/ { BARCODE_UPCA_CHK, -1, -1, 0, "014571377638+12345", 0, 50, 1, 151, 330, 110, 0 /*set*/, 16, 110, 320, 10 }, /* Hide text */ + /* 89*/ { BARCODE_UPCA_CHK, BARCODE_QUIET_ZONES, -1, 0, "014571377638+12345", 0, 50, 1, 151, 330, 110, 0 /*set*/, 16, 110, 320, 10 }, /* Hide text */ + /* 90*/ { BARCODE_UPCA_CHK, BARCODE_NO_QUIET_ZONES, -1, 0, "014571377638+12345", 0, 50, 1, 151, 302, 110, 1 /*set*/, 16, 100, 300, 2 }, /* Hide text */ /* 91*/ { BARCODE_UPCE, -1, -1, -1, "8145713", 0, 50, 1, 51, 134, 116, 0 /*set*/, 0, 100, 120, 18 }, /* 92*/ { BARCODE_UPCE, BARCODE_QUIET_ZONES, -1, -1, "8145713", 0, 50, 1, 51, 134, 116, 0 /*set*/, 0, 100, 120, 18 }, /* 93*/ { BARCODE_UPCE, BARCODE_NO_QUIET_ZONES, -1, -1, "8145713", 0, 50, 1, 51, 134, 116, 0 /*set*/, 0, 100, 120, 18 }, - /* 94*/ { BARCODE_UPCE, -1, -1, 0, "8145713", 0, 50, 1, 51, 134, 110, 0 /*set*/, 0, 100, 120, 18 }, // Hide text - /* 95*/ { BARCODE_UPCE, BARCODE_QUIET_ZONES, -1, 0, "8145713", 0, 50, 1, 51, 134, 110, 0 /*set*/, 0, 100, 120, 18 }, // Hide text - /* 96*/ { BARCODE_UPCE, BARCODE_NO_QUIET_ZONES, -1, 0, "8145713", 0, 50, 1, 51, 102, 110, 1 /*set*/, 0, 110, 100, 2 }, // Hide text + /* 94*/ { BARCODE_UPCE, -1, -1, 0, "8145713", 0, 50, 1, 51, 134, 110, 0 /*set*/, 0, 100, 120, 18 }, /* Hide text */ + /* 95*/ { BARCODE_UPCE, BARCODE_QUIET_ZONES, -1, 0, "8145713", 0, 50, 1, 51, 134, 110, 0 /*set*/, 0, 100, 120, 18 }, /* Hide text */ + /* 96*/ { BARCODE_UPCE, BARCODE_NO_QUIET_ZONES, -1, 0, "8145713", 0, 50, 1, 51, 102, 110, 1 /*set*/, 0, 110, 100, 2 }, /* Hide text */ /* 97*/ { BARCODE_UPCE_CHK, -1, -1, -1, "81457132+12", 0, 50, 1, 78, 184, 116, 0 /*set*/, 16, 100, 174, 10 }, /* 98*/ { BARCODE_UPCE_CHK, BARCODE_QUIET_ZONES, -1, -1, "81457132+12", 0, 50, 1, 78, 184, 116, 0 /*set*/, 16, 100, 174, 10 }, /* 99*/ { BARCODE_UPCE_CHK, BARCODE_NO_QUIET_ZONES, -1, -1, "81457132+12", 0, 50, 1, 78, 174, 116, 1 /*set*/, 16, 100, 170, 4 }, - /*100*/ { BARCODE_UPCE_CHK, -1, -1, 0, "81457132+12", 0, 50, 1, 78, 184, 110, 0 /*set*/, 16, 110, 174, 10 }, // Hide text - /*101*/ { BARCODE_UPCE_CHK, BARCODE_QUIET_ZONES, -1, 0, "81457132+12", 0, 50, 1, 78, 184, 110, 0 /*set*/, 16, 110, 174, 10 }, // Hide text - /*102*/ { BARCODE_UPCE_CHK, BARCODE_NO_QUIET_ZONES, -1, 0, "81457132+12", 0, 50, 1, 78, 156, 110, 1 /*set*/, 16, 100, 152, 4 }, // Hide text + /*100*/ { BARCODE_UPCE_CHK, -1, -1, 0, "81457132+12", 0, 50, 1, 78, 184, 110, 0 /*set*/, 16, 110, 174, 10 }, /* Hide text */ + /*101*/ { BARCODE_UPCE_CHK, BARCODE_QUIET_ZONES, -1, 0, "81457132+12", 0, 50, 1, 78, 184, 110, 0 /*set*/, 16, 110, 174, 10 }, /* Hide text */ + /*102*/ { BARCODE_UPCE_CHK, BARCODE_NO_QUIET_ZONES, -1, 0, "81457132+12", 0, 50, 1, 78, 156, 110, 1 /*set*/, 16, 100, 152, 4 }, /* Hide text */ /*103*/ { BARCODE_UPCE, -1, -1, -1, "8145713+12345", 0, 50, 1, 105, 238, 116, 0 /*set*/, 16, 100, 228, 10 }, /*104*/ { BARCODE_UPCE, BARCODE_QUIET_ZONES, -1, -1, "8145713+12345", 0, 50, 1, 105, 238, 116, 0 /*set*/, 16, 100, 228, 10 }, /*105*/ { BARCODE_UPCE, BARCODE_NO_QUIET_ZONES, -1, -1, "8145713+12345", 0, 50, 1, 105, 228, 116, 1 /*set*/, 16, 100, 216, 2 }, - /*106*/ { BARCODE_UPCE, -1, -1, 0, "8145713+12345", 0, 50, 1, 105, 238, 110, 0 /*set*/, 16, 110, 228, 10 }, // Hide text - /*107*/ { BARCODE_UPCE, BARCODE_QUIET_ZONES, -1, 0, "8145713+12345", 0, 50, 1, 105, 238, 110, 0 /*set*/, 16, 110, 228, 10 }, // Hide text - /*108*/ { BARCODE_UPCE, BARCODE_NO_QUIET_ZONES, -1, 0, "8145713+12345", 0, 50, 1, 105, 210, 110, 1 /*set*/, 16, 100, 208, 2 }, // Hide text + /*106*/ { BARCODE_UPCE, -1, -1, 0, "8145713+12345", 0, 50, 1, 105, 238, 110, 0 /*set*/, 16, 110, 228, 10 }, /* Hide text */ + /*107*/ { BARCODE_UPCE, BARCODE_QUIET_ZONES, -1, 0, "8145713+12345", 0, 50, 1, 105, 238, 110, 0 /*set*/, 16, 110, 228, 10 }, /* Hide text */ + /*108*/ { BARCODE_UPCE, BARCODE_NO_QUIET_ZONES, -1, 0, "8145713+12345", 0, 50, 1, 105, 210, 110, 1 /*set*/, 16, 100, 208, 2 }, /* Hide text */ /*109*/ { BARCODE_POSTNET, -1, -1, -1, "12345", 0, 12, 2, 63, 126, 24, 1 /*set*/, 0, 24, 0, 2 }, /*110*/ { BARCODE_POSTNET, BARCODE_QUIET_ZONES, -1, -1, "12345", 0, 12, 2, 63, 146, 30, 0 /*set*/, 0, 30, 0, 10 }, /*111*/ { BARCODE_MSI_PLESSEY, -1, -1, -1, "1234", 0, 50, 1, 55, 110, 116, 1 /*set*/, 0, 100, 0, 4 }, @@ -1644,9 +1646,9 @@ static void test_quiet_zones(int index, int debug) { /*225*/ { BARCODE_EANX_CC, -1, -1, -1, "023456789012", 0, 50, 7, 99, 234, 116, 0 /*set*/, 24, 110, 218, 16 }, /*226*/ { BARCODE_EANX_CC, BARCODE_QUIET_ZONES, -1, -1, "023456789012", 0, 50, 7, 99, 234, 116, 0 /*set*/, 24, 110, 218, 16 }, /*227*/ { BARCODE_EANX_CC, BARCODE_NO_QUIET_ZONES, -1, -1, "023456789012", 0, 50, 7, 99, 220, 116, 0 /*set*/, 24, 110, 218, 2 }, - /*228*/ { BARCODE_EANX_CC, -1, -1, 0, "023456789012", 0, 50, 7, 99, 234, 110, 0 /*set*/, 24, 110, 0, 28 }, // Hide text - /*229*/ { BARCODE_EANX_CC, BARCODE_QUIET_ZONES, -1, 0, "023456789012", 0, 50, 7, 99, 234, 110, 0 /*set*/, 24, 110, 0, 28 }, // Hide text - /*230*/ { BARCODE_EANX_CC, BARCODE_NO_QUIET_ZONES, -1, 0, "023456789012", 0, 50, 7, 99, 198, 110, 1 /*set*/, 24, 110, 6, 2 }, // Hide text + /*228*/ { BARCODE_EANX_CC, -1, -1, 0, "023456789012", 0, 50, 7, 99, 234, 110, 0 /*set*/, 24, 110, 0, 28 }, /* Hide text */ + /*229*/ { BARCODE_EANX_CC, BARCODE_QUIET_ZONES, -1, 0, "023456789012", 0, 50, 7, 99, 234, 110, 0 /*set*/, 24, 110, 0, 28 }, /* Hide text */ + /*230*/ { BARCODE_EANX_CC, BARCODE_NO_QUIET_ZONES, -1, 0, "023456789012", 0, 50, 7, 99, 198, 110, 1 /*set*/, 24, 110, 6, 2 }, /* Hide text */ /*231*/ { BARCODE_GS1_128_CC, -1, -1, -1, "[20]02", 0, 50, 5, 99, 198, 116, 1 /*set*/, 14, 100, 24, 4 }, /*232*/ { BARCODE_GS1_128_CC, BARCODE_QUIET_ZONES, -1, -1, "[20]02", 0, 50, 5, 99, 238, 116, 0 /*set*/, 14, 100, 24, 20 }, /*233*/ { BARCODE_DBAR_OMN_CC, -1, -1, -1, "1234", 0, 21, 5, 100, 200, 58, 1 /*set*/, 14, 42, 10, 2 }, @@ -1658,15 +1660,15 @@ static void test_quiet_zones(int index, int debug) { /*239*/ { BARCODE_UPCA_CC, -1, -1, -1, "01457137763", 0, 50, 7, 99, 234, 116, 1 /*set*/, 24, 100, 212, 2 }, /*240*/ { BARCODE_UPCA_CC, BARCODE_QUIET_ZONES, -1, -1, "01457137763", 0, 50, 7, 99, 234, 116, 1 /*set*/, 24, 100, 212, 2 }, /*241*/ { BARCODE_UPCA_CC, BARCODE_NO_QUIET_ZONES, -1, -1, "01457137763", 0, 50, 7, 99, 234, 116, 1 /*set*/, 24, 100, 212, 2 }, - /*242*/ { BARCODE_UPCA_CC, -1, -1, 0, "01457137763", 0, 50, 7, 99, 234, 110, 0 /*set*/, 24, 110, 0, 24 }, // Hide text - /*243*/ { BARCODE_UPCA_CC, BARCODE_QUIET_ZONES, -1, 0, "01457137763", 0, 50, 7, 99, 234, 110, 0 /*set*/, 24, 110, 0, 24 }, // Hide text - /*244*/ { BARCODE_UPCA_CC, BARCODE_NO_QUIET_ZONES, -1, 0, "01457137763", 0, 50, 7, 99, 198, 110, 1 /*set*/, 24, 110, 6, 2 }, // Hide text + /*242*/ { BARCODE_UPCA_CC, -1, -1, 0, "01457137763", 0, 50, 7, 99, 234, 110, 0 /*set*/, 24, 110, 0, 24 }, /* Hide text */ + /*243*/ { BARCODE_UPCA_CC, BARCODE_QUIET_ZONES, -1, 0, "01457137763", 0, 50, 7, 99, 234, 110, 0 /*set*/, 24, 110, 0, 24 }, /* Hide text */ + /*244*/ { BARCODE_UPCA_CC, BARCODE_NO_QUIET_ZONES, -1, 0, "01457137763", 0, 50, 7, 99, 198, 110, 1 /*set*/, 24, 110, 6, 2 }, /* Hide text */ /*245*/ { BARCODE_UPCE_CC, -1, -1, -1, "8145713", 0, 50, 9, 55, 142, 116, 1 /*set*/, 32, 100, 124, 2 }, /*246*/ { BARCODE_UPCE_CC, BARCODE_QUIET_ZONES, -1, -1, "8145713", 0, 50, 9, 55, 142, 116, 1 /*set*/, 32, 100, 124, 2 }, /*247*/ { BARCODE_UPCE_CC, BARCODE_NO_QUIET_ZONES, -1, -1, "8145713", 0, 50, 9, 55, 142, 116, 1 /*set*/, 32, 100, 124, 2 }, - /*248*/ { BARCODE_UPCE_CC, -1, -1, 0, "8145713", 0, 50, 9, 55, 142, 110, 0 /*set*/, 32, 110, 0, 24 }, // Hide text - /*249*/ { BARCODE_UPCE_CC, BARCODE_QUIET_ZONES, -1, 0, "8145713", 0, 50, 9, 55, 142, 110, 0 /*set*/, 32, 110, 0, 24 }, // Hide text - /*250*/ { BARCODE_UPCE_CC, BARCODE_NO_QUIET_ZONES, -1, 0, "8145713", 0, 50, 9, 55, 110, 110, 1 /*set*/, 32, 110, 6, 2 }, // Hide text + /*248*/ { BARCODE_UPCE_CC, -1, -1, 0, "8145713", 0, 50, 9, 55, 142, 110, 0 /*set*/, 32, 110, 0, 24 }, /* Hide text */ + /*249*/ { BARCODE_UPCE_CC, BARCODE_QUIET_ZONES, -1, 0, "8145713", 0, 50, 9, 55, 142, 110, 0 /*set*/, 32, 110, 0, 24 }, /* Hide text */ + /*250*/ { BARCODE_UPCE_CC, BARCODE_NO_QUIET_ZONES, -1, 0, "8145713", 0, 50, 9, 55, 110, 110, 1 /*set*/, 32, 110, 6, 2 }, /* Hide text */ /*251*/ { BARCODE_DBAR_STK_CC, -1, -1, -1, "1234", 0, 24, 9, 56, 112, 48, 1 /*set*/, 34, 48, 0, 2 }, /*252*/ { BARCODE_DBAR_STK_CC, BARCODE_QUIET_ZONES, -1, -1, "1234", 0, 24, 9, 56, 116, 48, 0 /*set*/, 34, 48, 0, 2 }, /*253*/ { BARCODE_DBAR_OMNSTK_CC, -1, -1, -1, "1234", 0, 80, 11, 56, 112, 160, 1 /*set*/, 94, 160, 0, 2 }, @@ -1675,10 +1677,10 @@ static void test_quiet_zones(int index, int debug) { /*256*/ { BARCODE_DBAR_EXPSTK_CC, BARCODE_QUIET_ZONES, -1, -1, "[20]12", 0, 41, 5, 102, 208, 82, 0 /*set*/, 14, 82, 2, 2 }, /*257*/ { BARCODE_CHANNEL, -1, -1, -1, "1234", 0, 50, 1, 27, 54, 116, 1 /*set*/, 0, 100, 0, 2 }, /*258*/ { BARCODE_CHANNEL, BARCODE_QUIET_ZONES, -1, -1, "1234", 0, 50, 1, 27, 60, 116, 0 /*set*/, 0, 100, 0, 2 }, - /*259*/ { BARCODE_CODEONE, -1, -1, -1, "1234", 0, 16, 16, 18, 36, 32, 1 /*set*/, 0, 6, 0, 2 }, // Versions A to H - no quiet zone + /*259*/ { BARCODE_CODEONE, -1, -1, -1, "1234", 0, 16, 16, 18, 36, 32, 1 /*set*/, 0, 6, 0, 2 }, /* Versions A to H - no quiet zone */ /*260*/ { BARCODE_CODEONE, BARCODE_QUIET_ZONES, -1, -1, "1234", 0, 16, 16, 18, 36, 32, 1 /*set*/, 0, 6, 0, 2 }, /*261*/ { BARCODE_CODEONE, BARCODE_NO_QUIET_ZONES, -1, -1, "1234", 0, 16, 16, 18, 36, 32, 1 /*set*/, 0, 6, 0, 2 }, - /*262*/ { BARCODE_CODEONE, -1, 9, -1, "1234", 0, 8, 8, 11, 22, 16, 1 /*set*/, 10, 16, 0, 2 }, // Version S (& T) have quiet zones + /*262*/ { BARCODE_CODEONE, -1, 9, -1, "1234", 0, 8, 8, 11, 22, 16, 1 /*set*/, 10, 16, 0, 2 }, /* Version S (& T) have quiet zones */ /*263*/ { BARCODE_CODEONE, BARCODE_QUIET_ZONES, 9, -1, "1234", 0, 8, 8, 11, 26, 16, 0 /*set*/, 0, 16, 0, 2 }, /*264*/ { BARCODE_GRIDMATRIX, -1, -1, -1, "1234", 0, 18, 18, 18, 36, 36, 1 /*set*/, 0, 2, 0, 12 }, /*265*/ { BARCODE_GRIDMATRIX, BARCODE_QUIET_ZONES, -1, -1, "1234", 0, 18, 18, 18, 60, 60, 0 /*set*/, 0, 60, 0, 12 }, @@ -1688,6 +1690,8 @@ static void test_quiet_zones(int index, int debug) { /*269*/ { BARCODE_ULTRA, BARCODE_QUIET_ZONES, -1, -1, "1234", 0, 13, 13, 15, 34, 30, 0 /*set*/, 0, 2, 0, 34 }, /*270*/ { BARCODE_RMQR, -1, -1, -1, "1234", 0, 11, 11, 27, 54, 22, 1 /*set*/, 0, 14, 0, 2 }, /*271*/ { BARCODE_RMQR, BARCODE_QUIET_ZONES, -1, -1, "1234", 0, 11, 11, 27, 62, 30, 0 /*set*/, 0, 30, 0, 4 }, + /*272*/ { BARCODE_BC412, -1, -1, -1, "1234567", 0, 16.5, 1, 102, 204, 49, 1 /*set*/, 0, 32, 0, 2 }, + /*273*/ { BARCODE_BC412, BARCODE_QUIET_ZONES, -1, -1, "1234567", 0, 16.5, 1, 102, 244, 49, 0 /*set*/, 0, 32, 0, 2 }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -1727,7 +1731,7 @@ static void test_quiet_zones(int index, int debug) { assert_equal(ret, data[i].ret_raster, "i:%d ZBarcode_Buffer(%d) ret %d != %d (%s)\n", i, data[i].symbology, ret, data[i].ret_raster, symbol->errtxt); assert_nonnull(symbol->bitmap, "i:%d (%d) symbol->bitmap NULL\n", i, data[i].symbology); - if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); // ZINT_DEBUG_TEST_PRINT 16 + if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); /* ZINT_DEBUG_TEST_PRINT 16 */ assert_equal(symbol->height, data[i].expected_height, "i:%d (%d) symbol->height %.8g != %.8g\n", i, data[i].symbology, symbol->height, data[i].expected_height); assert_equal(symbol->rows, data[i].expected_rows, "i:%d (%d) symbol->rows %d != %d\n", i, data[i].symbology, symbol->rows, data[i].expected_rows); @@ -1885,7 +1889,7 @@ static void test_buffer_plot(int index, int generate, int debug) { for (i = 0; i < data_size; i++) { if (index != -1 && i != index) continue; - if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d\n", i); // ZINT_DEBUG_TEST_PRINT 16 + if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d\n", i); /* ZINT_DEBUG_TEST_PRINT 16 */ symbol = ZBarcode_Create(); assert_nonnull(symbol, "Symbol not created\n"); @@ -1914,7 +1918,7 @@ static void test_buffer_plot(int index, int generate, int debug) { assert_zero(ret, "i:%d ZBarcode_Buffer(%s) ret %d != 0 (%s)\n", i, testUtilBarcodeName(data[i].symbology), ret, symbol->errtxt); assert_nonnull(symbol->bitmap, "i:%d ZBarcode_Buffer(%s) bitmap NULL\n", i, testUtilBarcodeName(data[i].symbology)); - if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); // ZINT_DEBUG_TEST_PRINT 16 + if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); /* ZINT_DEBUG_TEST_PRINT 16 */ if (generate) { printf(" /*%3d*/ { %s, %d, %d, %d, %s, %g, \"%s\", \"%s\", \"%s\", %s, %g, %d, %d, %d, %d,\n", @@ -1939,7 +1943,7 @@ static void test_buffer_plot(int index, int generate, int debug) { bg_len = (int) strlen(data[i].bgcolour); if (fg_len > 6 || bg_len > 6) { assert_nonnull(symbol->alphamap, "i:%d ZBarcode_Buffer(%s) alphamap NULL\n", i, testUtilBarcodeName(data[i].symbology)); - // TODO: check alphamap + /* TODO: check alphamap */ } else { assert_null(symbol->alphamap, "i:%d ZBarcode_Buffer(%s) alphamap not NULL\n", i, testUtilBarcodeName(data[i].symbology)); } @@ -2563,6 +2567,12 @@ static void test_height(int index, int generate, int debug) { /*590*/ { BARCODE_UPNQR, -1, 1, "1234567890AB", "", 0, 77, 77, 77, 154, 154, "Fixed width-to-height ratio, symbol->height ignored" }, /*591*/ { BARCODE_ULTRA, -1, 1, "1234567890", "", 0, 13, 13, 18, 36, 26, "Fixed width-to-height ratio, symbol->height ignored" }, /*592*/ { BARCODE_RMQR, -1, 1, "12345", "", 0, 11, 11, 27, 54, 22, "Fixed width-to-height ratio, symbol->height ignored" }, + /*593*/ { BARCODE_BC412, -1, 1, "1234567", "", 0, 1, 1, 102, 204, 2, "" }, + /*594*/ { BARCODE_BC412, -1, 13.6, "1234567", "", 0, 13.5, 1, 102, 204, 27, "" }, + /*595*/ { BARCODE_BC412, COMPLIANT_HEIGHT, 13.6, "1234567", "", ZINT_WARN_NONCOMPLIANT, 13.5, 1, 102, 204, 27, "" }, + /*596*/ { BARCODE_BC412, COMPLIANT_HEIGHT, 13.65, "1234567", "", 0, 13.5, 1, 102, 204, 27, "" }, + /*597*/ { BARCODE_BC412, COMPLIANT_HEIGHT, 21.3, "1234567", "", 0, 21.5, 1, 102, 204, 43, "" }, + /*598*/ { BARCODE_BC412, COMPLIANT_HEIGHT, 21.35, "1234567", "", ZINT_WARN_NONCOMPLIANT, 21.5, 1, 102, 204, 43, "" }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -2588,7 +2598,7 @@ static void test_height(int index, int generate, int debug) { symbol->height = data[i].height; } symbol->input_mode = UNICODE_MODE; - symbol->show_hrt = 0; // Note: disabling HRT + symbol->show_hrt = 0; /* Note: disabling HRT */ symbol->debug |= debug; if (strlen(data[i].composite)) { @@ -2751,7 +2761,7 @@ static void test_height_per_row(int index, int generate, int debug) { if (data[i].scale != -1) { symbol->scale = data[i].scale; } - symbol->show_hrt = 0; // Note: disabling HRT + symbol->show_hrt = 0; /* Note: disabling HRT */ if (strlen(data[i].composite)) { text = data[i].composite; @@ -2798,7 +2808,7 @@ static void test_height_per_row(int index, int generate, int debug) { #define TEST_PERF_ITERATIONS (TEST_PERF_ITER_MILLES * 1000) #define TEST_PERF_TIME(arg) (((arg) * 1000.0) / CLOCKS_PER_SEC) -// Not a real test, just performance indicator for scaling +/* Not a real test, just performance indicator for scaling */ static void test_perf_scale(int index, int debug) { struct item { @@ -2885,7 +2895,7 @@ static void test_perf_scale(int index, int debug) { ret = ZBarcode_Buffer(symbol, 0 /*rotate_angle*/); diff_buf_inter += clock() - start; assert_zero(ret, "i:%d ZBarcode_Buffer OUT_BUFFER_INTERMEDIATE ret %d != 0 (%s)\n", i, ret, symbol->errtxt); - symbol->output_options &= ~OUT_BUFFER_INTERMEDIATE; // Undo + symbol->output_options &= ~OUT_BUFFER_INTERMEDIATE; /* Undo */ start = clock(); ret = ZBarcode_Print(symbol, 0 /*rotate_angle*/); @@ -2938,3 +2948,5 @@ int main(int argc, char *argv[]) { return 0; } + +/* vim: set ts=4 sw=4 et : */ diff --git a/backend/tests/test_vector.c b/backend/tests/test_vector.c index ab283458..46346bf4 100644 --- a/backend/tests/test_vector.c +++ b/backend/tests/test_vector.c @@ -1,6 +1,6 @@ /* libzint - the open source barcode library - Copyright (C) 2019 - 2021 Robin Stuart + Copyright (C) 2019-2022 Robin Stuart Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -27,7 +27,7 @@ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* vim: set ts=4 sw=4 et : */ +/* SPDX-License-Identifier: BSD-3-Clause */ #include "testcommon.h" @@ -97,7 +97,7 @@ static void test_options(int index, int debug) { float expected_vector_width; float expected_vector_height; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_CODE128, "123456", "7890ab", 0, "A", 0, 1, 46, 92, 118.9 }, /* 1*/ { BARCODE_CODE128, "12345", NULL, 0, "A", ZINT_ERROR_INVALID_OPTION, -1, -1, -1, -1 }, @@ -287,6 +287,7 @@ static void test_buffer_vector(int index, int generate, int debug) { /*125*/ { BARCODE_UPNQR, "1234567890AB", "", 77, 77, 77, 154, 154 }, /*126*/ { BARCODE_ULTRA, "1234567890", "", 13, 13, 18, 36, 26 }, /*127*/ { BARCODE_RMQR, "12345", "", 11, 11, 27, 54, 22 }, + /*128*/ { BARCODE_BC412, "1234567", "", 16.666668, 1, 102, 204, 52.233337 }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -358,20 +359,20 @@ static void test_upcean_hrt(int index, int debug) { float expected_string_x; float expected_addon_string_x; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { - /* 0*/ { BARCODE_EANX, -1, "123456789012", 0, 50, 1, 95, 226, 116.4, 12, -1 }, // EAN-13 - /* 1*/ { BARCODE_EANX, 0, "123456789012", 0, 50, 1, 95, 226, 110, -1, -1 }, // EAN-13 - /* 2*/ { BARCODE_EANX_CHK, -1, "1234567890128", 0, 50, 1, 95, 226, 116.4, 12, -1 }, // EAN-13 - /* 3*/ { BARCODE_EANX_CHK, 0, "1234567890128", 0, 50, 1, 95, 226, 110, -1, -1 }, // EAN-13 + /* 0*/ { BARCODE_EANX, -1, "123456789012", 0, 50, 1, 95, 226, 116.4, 12, -1 }, /* EAN-13 */ + /* 1*/ { BARCODE_EANX, 0, "123456789012", 0, 50, 1, 95, 226, 110, -1, -1 }, /* EAN-13 */ + /* 2*/ { BARCODE_EANX_CHK, -1, "1234567890128", 0, 50, 1, 95, 226, 116.4, 12, -1 }, /* EAN-13 */ + /* 3*/ { BARCODE_EANX_CHK, 0, "1234567890128", 0, 50, 1, 95, 226, 110, -1, -1 }, /* EAN-13 */ /* 4*/ { BARCODE_ISBNX, -1, "9784567890120", 0, 50, 1, 95, 226, 116.4, 12, -1 }, /* 5*/ { BARCODE_ISBNX, 0, "9784567890120", 0, 50, 1, 95, 226, 110, -1, -1 }, - /* 6*/ { BARCODE_EANX, -1, "1234567", 0, 50, 1, 67, 162, 116.4, 48, -1 }, // EAN-8 - /* 7*/ { BARCODE_EANX, 0, "1234567", 0, 50, 1, 67, 162, 110, -1, -1 }, // EAN-8 - /* 8*/ { BARCODE_EANX, -1, "1234", 0, 50, 1, 47, 118, 116.4, 61, -1 }, // EAN-5 - /* 9*/ { BARCODE_EANX, 0, "1234", 0, 50, 1, 47, 118, 100, -1, -1 }, // EAN-5 - /* 10*/ { BARCODE_EANX, -1, "12", 0, 50, 1, 20, 64, 116.4, 34, -1 }, // EAN-2 - /* 11*/ { BARCODE_EANX, 0, "12", 0, 50, 1, 20, 64, 100, -1, -1 }, // EAN-2 + /* 6*/ { BARCODE_EANX, -1, "1234567", 0, 50, 1, 67, 162, 116.4, 48, -1 }, /* EAN-8 */ + /* 7*/ { BARCODE_EANX, 0, "1234567", 0, 50, 1, 67, 162, 110, -1, -1 }, /* EAN-8 */ + /* 8*/ { BARCODE_EANX, -1, "1234", 0, 50, 1, 47, 118, 116.4, 61, -1 }, /* EAN-5 */ + /* 9*/ { BARCODE_EANX, 0, "1234", 0, 50, 1, 47, 118, 100, -1, -1 }, /* EAN-5 */ + /* 10*/ { BARCODE_EANX, -1, "12", 0, 50, 1, 20, 64, 116.4, 34, -1 }, /* EAN-2 */ + /* 11*/ { BARCODE_EANX, 0, "12", 0, 50, 1, 20, 64, 100, -1, -1 }, /* EAN-2 */ /* 12*/ { BARCODE_UPCA, -1, "12345678901", 0, 50, 1, 95, 226, 116.4, 8, -1 }, /* 13*/ { BARCODE_UPCA, 0, "12345678901", 0, 50, 1, 95, 226, 110, -1, -1 }, /* 14*/ { BARCODE_UPCA_CHK, -1, "123456789012", 0, 50, 1, 95, 226, 116.4, 8, -1 }, @@ -380,18 +381,18 @@ static void test_upcean_hrt(int index, int debug) { /* 17*/ { BARCODE_UPCE, 0, "1234567", 0, 50, 1, 51, 134, 110, -1, -1 }, /* 18*/ { BARCODE_UPCE_CHK, -1, "12345670", 0, 50, 1, 51, 134, 116.4, 8, -1 }, /* 19*/ { BARCODE_UPCE_CHK, 0, "12345670", 0, 50, 1, 51, 134, 110, -1, -1 }, - /* 20*/ { BARCODE_EANX, -1, "123456789012+12", 0, 50, 1, 122, 276.0, 116.4, 12, 70 }, // EAN-13 + EAN-2 - /* 21*/ { BARCODE_EANX, 0, "123456789012+12", 0, 50, 1, 122, 276.0, 110, -1, -1 }, // EAN-13 + EAN-2 - /* 22*/ { BARCODE_ISBNX, -1, "9784567890120+12", 0, 50, 1, 122, 276.0, 116.4, 12, 70 }, // ISBN + EAN-2 - /* 23*/ { BARCODE_ISBNX, 0, "9784567890120+12", 0, 50, 1, 122, 276.0, 110, -1, -1 }, // ISBN + EAN-2 - /* 24*/ { BARCODE_EANX, -1, "123456789012+12345", 0, 50, 1, 149, 330.0, 116.4, 12, 70 }, // EAN-13 + EAN-5 - /* 25*/ { BARCODE_EANX, 0, "123456789012+12345", 0, 50, 1, 149, 330.0, 110, -1, -1 }, // EAN-13 + EAN-5 - /* 26*/ { BARCODE_ISBNX, -1, "9784567890120+12345", 0, 50, 1, 149, 330.0, 116.4, 12, 70 }, // ISBN + EAN-5 - /* 27*/ { BARCODE_ISBNX, 0, "9784567890120+12345", 0, 50, 1, 149, 330.0, 110, -1, -1 }, // ISBN + EAN-5 - /* 28*/ { BARCODE_EANX, -1, "1234567+12", 0, 50, 1, 94, 216.0, 116.4, 48, 114 }, // EAN-8 + EAN-2 - /* 29*/ { BARCODE_EANX, 0, "1234567+12", 0, 50, 1, 94, 216.0, 110, -1, -1 }, // EAN-8 + EAN-2 - /* 30*/ { BARCODE_EANX, -1, "1234567+12345", 0, 50, 1, 121, 270.0, 116.4, 48, 114 }, // EAN-8 + EAN-5 - /* 31*/ { BARCODE_EANX, 0, "1234567+12345", 0, 50, 1, 121, 270.0, 110, -1, -1 }, // EAN-8 + EAN-5 + /* 20*/ { BARCODE_EANX, -1, "123456789012+12", 0, 50, 1, 122, 276.0, 116.4, 12, 70 }, /* EAN-13 + EAN-2 */ + /* 21*/ { BARCODE_EANX, 0, "123456789012+12", 0, 50, 1, 122, 276.0, 110, -1, -1 }, /* EAN-13 + EAN-2 */ + /* 22*/ { BARCODE_ISBNX, -1, "9784567890120+12", 0, 50, 1, 122, 276.0, 116.4, 12, 70 }, /* ISBN + EAN-2 */ + /* 23*/ { BARCODE_ISBNX, 0, "9784567890120+12", 0, 50, 1, 122, 276.0, 110, -1, -1 }, /* ISBN + EAN-2 */ + /* 24*/ { BARCODE_EANX, -1, "123456789012+12345", 0, 50, 1, 149, 330.0, 116.4, 12, 70 }, /* EAN-13 + EAN-5 */ + /* 25*/ { BARCODE_EANX, 0, "123456789012+12345", 0, 50, 1, 149, 330.0, 110, -1, -1 }, /* EAN-13 + EAN-5 */ + /* 26*/ { BARCODE_ISBNX, -1, "9784567890120+12345", 0, 50, 1, 149, 330.0, 116.4, 12, 70 }, /* ISBN + EAN-5 */ + /* 27*/ { BARCODE_ISBNX, 0, "9784567890120+12345", 0, 50, 1, 149, 330.0, 110, -1, -1 }, /* ISBN + EAN-5 */ + /* 28*/ { BARCODE_EANX, -1, "1234567+12", 0, 50, 1, 94, 216.0, 116.4, 48, 114 }, /* EAN-8 + EAN-2 */ + /* 29*/ { BARCODE_EANX, 0, "1234567+12", 0, 50, 1, 94, 216.0, 110, -1, -1 }, /* EAN-8 + EAN-2 */ + /* 30*/ { BARCODE_EANX, -1, "1234567+12345", 0, 50, 1, 121, 270.0, 116.4, 48, 114 }, /* EAN-8 + EAN-5 */ + /* 31*/ { BARCODE_EANX, 0, "1234567+12345", 0, 50, 1, 121, 270.0, 110, -1, -1 }, /* EAN-8 + EAN-5 */ /* 32*/ { BARCODE_UPCA, -1, "12345678901+12", 0, 50, 1, 124, 276, 116.4, 8, 72 }, /* 33*/ { BARCODE_UPCA, 0, "12345678901+12", 0, 50, 1, 124, 276, 110, -1, -1 }, /* 34*/ { BARCODE_UPCA, -1, "12345678901+12345", 0, 50, 1, 151, 330, 116.4, 8, 72 }, @@ -480,17 +481,17 @@ static void test_row_separator(int index, int debug) { int expected_separator_y; int expected_separator_height; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_CODABLOCKF, -1, -1, -1, "A", 0, 20, 2, 101, 42, 21, 2 }, - /* 1*/ { BARCODE_CODABLOCKF, -1, -1, 0, "A", 0, 20, 2, 101, 42, 21, 2 }, // Same as default - /* 2*/ { BARCODE_CODABLOCKF, -1, -1, 1, "A", 0, 20, 2, 101, 42, 21, 2 }, // Same as default + /* 1*/ { BARCODE_CODABLOCKF, -1, -1, 0, "A", 0, 20, 2, 101, 42, 21, 2 }, /* Same as default */ + /* 2*/ { BARCODE_CODABLOCKF, -1, -1, 1, "A", 0, 20, 2, 101, 42, 21, 2 }, /* Same as default */ /* 3*/ { BARCODE_CODABLOCKF, -1, -1, 2, "A", 0, 20, 2, 101, 42, 20, 4 }, /* 4*/ { BARCODE_CODABLOCKF, -1, -1, 3, "A", 0, 20, 2, 101, 42, 19, 6 }, /* 5*/ { BARCODE_CODABLOCKF, -1, -1, 4, "A", 0, 20, 2, 101, 42, 18, 8 }, - /* 6*/ { BARCODE_CODABLOCKF, -1, -1, 5, "A", 0, 20, 2, 101, 42, 21, 2 }, // > 4 ignored, same as default - /* 7*/ { BARCODE_CODABLOCKF, -1, 1, -1, "A", 0, 5, 1, 46, 20, 0, 2 }, // CODE128 top separator - /* 8*/ { BARCODE_CODABLOCKF, 0, -1, -1, "A", 0, 20, 2, 101, 42, 21, 2 }, // Border width zero, same as default + /* 6*/ { BARCODE_CODABLOCKF, -1, -1, 5, "A", 0, 20, 2, 101, 42, 21, 2 }, /* > 4 ignored, same as default */ + /* 7*/ { BARCODE_CODABLOCKF, -1, 1, -1, "A", 0, 5, 1, 46, 20, 0, 2 }, /* CODE128 top separator */ + /* 8*/ { BARCODE_CODABLOCKF, 0, -1, -1, "A", 0, 20, 2, 101, 42, 21, 2 }, /* Border width zero, same as default */ }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -551,7 +552,7 @@ static void test_stacking(int index, int debug) { int expected_separator_y; int expected_separator_height; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_CODE128, -1, -1, -1, "A", "B", 50, 2, 46, 92, 116, -1, -1, -1 }, /* 1*/ { BARCODE_CODE128, BARCODE_BIND, -1, -1, "A", "B", 50, 2, 46, 92, 116, 0, 49, 2 }, @@ -633,7 +634,7 @@ static void test_output_options(int index, int debug) { float expected_set_x; float expected_set_y; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_CODE128, -1, -1, -1, -1, "A123", 0, 50, 1, 79, 158, 118.9, 0, 0, 4 }, /* 1*/ { BARCODE_CODE128, -1, -1, 2, -1, "A123", 0, 50, 1, 79, 158, 118.9, 0, 0, 4 }, @@ -685,7 +686,7 @@ static void test_output_options(int index, int debug) { /* 47*/ { BARCODE_MAXICODE, -1, -1, -1, BARCODE_DOTTY_MODE, "A123", ZINT_ERROR_INVALID_OPTION, -1, -1, -1, -1, -1, -1, -1, -1 }, /* 48*/ { BARCODE_ITF14, -1, -1, -1, -1, "123", 0, 50, 1, 135, 330, 138.89999, 1, 320, 10 }, /* 49*/ { BARCODE_ITF14, -1, -1, 0, -1, "123", 0, 50, 1, 135, 330, 138.89999, 1, 320, 10 }, - /* 50*/ { BARCODE_ITF14, -1, -1, 0, BARCODE_BOX, "123", 0, 50, 1, 135, 310, 118.9, 0, 300, 0 }, // No zero-width/height rectangles + /* 50*/ { BARCODE_ITF14, -1, -1, 0, BARCODE_BOX, "123", 0, 50, 1, 135, 310, 118.9, 0, 300, 0 }, /* No zero-width/height rectangles */ }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -752,7 +753,7 @@ static void test_output_options(int index, int debug) { testFinish(); } -// Checks that symbol lead-in (composite offset) isn't used to calc string position for non-composite barcodes +/* Checks that symbol lead-in (composite offset) isn't used to calc string position for non-composite barcodes */ static void test_noncomposite_string_x(int index, int debug) { struct item { @@ -762,7 +763,7 @@ static void test_noncomposite_string_x(int index, int debug) { int expected_width; float expected_string_x; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%2d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_DBAR_OMN, "1234567890123", 96, 96 }, /* 1*/ { BARCODE_DBAR_LTD, "1234567890123", 79, 79 }, @@ -805,7 +806,7 @@ static void test_noncomposite_string_x(int index, int debug) { testFinish(); } -// Checks UPCA/UPCE main_symbol_width_x (used for addon formatting) set whether whitespace width set or not +/* Checks UPCA/UPCE main_symbol_width_x (used for addon formatting) set whether whitespace width set or not */ static void test_upcean_whitespace_width(int index, int debug) { struct item { @@ -818,12 +819,12 @@ static void test_upcean_whitespace_width(int index, int debug) { int expected_string_cnt; float expected_string_y; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%2d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_UPCA, "12345678904+12345", 0, 151, 330.0, 5, 15.0 }, /* 1*/ { BARCODE_UPCA, "12345678904+12345", 11, 151, 330.0 + 4 * 11, 5, 15.0 }, /* 2*/ { BARCODE_UPCE, "1234567+12", 0, 78, 184.0, 4, 15.0 }, - /* 3*/ { BARCODE_UPCE, "1234567+12", 8, 78, 184.0 + 4 * 8, 4, 15.0 }, // Note: change from previous behaviour where if whitespace < 10 then set to 10 + /* 3*/ { BARCODE_UPCE, "1234567+12", 8, 78, 184.0 + 4 * 8, 4, 15.0 }, /* Note: change from previous behaviour where if whitespace < 10 then set to 10 */ }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -865,7 +866,7 @@ static void test_upcean_whitespace_width(int index, int debug) { i, testUtilBarcodeName(data[i].symbology), symbol->vector->width, data[i].expected_vector_width); assert_nonnull(symbol->vector->strings, "i:%d ZBarcode_Buffer_Vector(%d) vector->strings NULL\n", i, data[i].symbology); - // Get add-on string (last) + /* Get add-on string (last) */ for (string = symbol->vector->strings, string_cnt = 1; string->next; string_cnt++) { string = string->next; } @@ -902,15 +903,15 @@ static void test_scale(int index, int debug) { float expected_set_width; float expected_set_height; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { - /* 0*/ { BARCODE_PDF417, -1, -1, -1, 0, 0, "1", "", 0, 18, 6, 103, 206, 36, 1, 52, 0, 8, 6 }, // With no scaling + /* 0*/ { BARCODE_PDF417, -1, -1, -1, 0, 0, "1", "", 0, 18, 6, 103, 206, 36, 1, 52, 0, 8, 6 }, /* With no scaling */ /* 1*/ { BARCODE_PDF417, -1, -1, -1, 0, 0.1, "1", "", 0, 18, 6, 103, 206 * 0.1, 3.6000001, 1, 5.2000003, 0, 8 * 0.1, 6 * 0.1 }, /* 2*/ { BARCODE_PDF417, -1, -1, -1, 0, 0.3, "1", "", 0, 18, 6, 103, 61.8000031, 36 * 0.3, 1, 52 * 0.3, 0, 2.4000001, 1.8000001 }, /* 3*/ { BARCODE_PDF417, -1, -1, -1, 0, 0.6, "1", "", 0, 18, 6, 103, 123.600006, 36 * 0.6, 1, 52 * 0.6, 0, 4.8000002, 3.6000001 }, - /* 4*/ { BARCODE_UPCE_CC, -1, -1, -1, 0, 0, "1234567", "[17]010615[10]A123456\"", 0, 50, 10, 55, 142, 116.400002, 1, 34, 36, 2, 64 }, // With no scaling + /* 4*/ { BARCODE_UPCE_CC, -1, -1, -1, 0, 0, "1234567", "[17]010615[10]A123456\"", 0, 50, 10, 55, 142, 116.400002, 1, 34, 36, 2, 64 }, /* With no scaling */ /* 5*/ { BARCODE_UPCE_CC, -1, -1, -1, 0, 0.1, "1234567", "[17]010615[10]A123456\"", 0, 50, 10, 55, 142 * 0.1, 11.6400003, 1, 34 * 0.1, 3.6000001, 2 * 0.1, 64 * 0.1 }, - /* 6*/ { BARCODE_UPCE_CC, -1, -1, -1, 0.1, 0.1, "1234567", "[17]010615[10]A123456\"", 0, 18.5, 10, 55, 142 * 0.1, 5.34000015, 1, 34 * 0.1, 3.6000001, 2 * 0.1, 0.1 }, // Height specified + /* 6*/ { BARCODE_UPCE_CC, -1, -1, -1, 0.1, 0.1, "1234567", "[17]010615[10]A123456\"", 0, 18.5, 10, 55, 142 * 0.1, 5.34000015, 1, 34 * 0.1, 3.6000001, 2 * 0.1, 0.1 }, /* Height specified */ }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -1002,7 +1003,7 @@ static void test_guard_descent(int index, int debug) { float expected_set_width; float expected_set_height; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_UPCE, -1, "1234567", 0, 50, 1, 51, 134, 116.4, 18, 0, 2, 110 }, /* 1*/ { BARCODE_UPCE, 0, "1234567", 0, 50, 1, 51, 134, 116.4, 18, 0, 2, 100 }, @@ -1068,7 +1069,7 @@ static void test_guard_descent(int index, int debug) { if (ret < ZINT_ERROR) { assert_nonnull(symbol->vector, "i:%d ZBarcode_Buffer_Vector(%d) vector NULL\n", i, data[i].symbology); - if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) { // ZINT_DEBUG_TEST_PRINT 16 + if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) { /* ZINT_DEBUG_TEST_PRINT 16 */ sprintf(symbol->outfile, "test_guard_descent_%d.svg", i); ZBarcode_Print(symbol, 0); } @@ -1113,11 +1114,11 @@ static void test_quiet_zones(int index, int debug) { float expected_set_width; float expected_set_height; }; - // s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<")) + /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */ struct item data[] = { /* 0*/ { BARCODE_CODE11, -1, -1, -1, "1234", 0, 50, 1, 62, 124, 118.9, 0, 0, 2, 100 }, /* 1*/ { BARCODE_CODE11, BARCODE_QUIET_ZONES, -1, -1, "1234", 0, 50, 1, 62, 164, 118.9, 20, 0, 2, 100 }, - /* 2*/ { BARCODE_CODE11, BARCODE_QUIET_ZONES | BARCODE_NO_QUIET_ZONES, -1, -1, "1234", 0, 50, 1, 62, 124, 118.9, 0, 0, 2, 100 }, // BARCODE_NO_QUIET_ZONES trumps BARCODE_QUIET_ZONES + /* 2*/ { BARCODE_CODE11, BARCODE_QUIET_ZONES | BARCODE_NO_QUIET_ZONES, -1, -1, "1234", 0, 50, 1, 62, 124, 118.9, 0, 0, 2, 100 }, /* BARCODE_NO_QUIET_ZONES trumps BARCODE_QUIET_ZONES */ /* 3*/ { BARCODE_C25STANDARD, -1, -1, -1, "1234", 0, 50, 1, 57, 114, 118.9, 0, 0, 8, 100 }, /* 4*/ { BARCODE_C25STANDARD, BARCODE_QUIET_ZONES, -1, -1, "1234", 0, 50, 1, 57, 154, 118.9, 20, 0, 8, 100 }, /* 5*/ { BARCODE_C25INTER, -1, -1, -1, "1234", 0, 50, 1, 45, 90, 118.9, 0, 0, 2, 100 }, @@ -1135,27 +1136,27 @@ static void test_quiet_zones(int index, int debug) { /* 17*/ { BARCODE_EANX, -1, -1, -1, "023456789012", 0, 50, 1, 95, 226, 116.4, 22, 0, 2, 110 }, /* 18*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, -1, "023456789012", 0, 50, 1, 95, 226, 116.4, 22, 0, 2, 110 }, /* 19*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, -1, "023456789012", 0, 50, 1, 95, 212, 116.4, 22, 0, 2, 110 }, - /* 20*/ { BARCODE_EANX, -1, -1, 0, "023456789012", 0, 50, 1, 95, 226, 110, 22, 0, 2, 110 }, // Hide text - /* 21*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, 0, "023456789012", 0, 50, 1, 95, 226, 110, 22, 0, 2, 110 }, // Hide text - /* 22*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, 0, "023456789012", 0, 50, 1, 95, 190, 110, 0, 0, 2, 110 }, // Hide text + /* 20*/ { BARCODE_EANX, -1, -1, 0, "023456789012", 0, 50, 1, 95, 226, 110, 22, 0, 2, 110 }, /* Hide text */ + /* 21*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, 0, "023456789012", 0, 50, 1, 95, 226, 110, 22, 0, 2, 110 }, /* Hide text */ + /* 22*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, 0, "023456789012", 0, 50, 1, 95, 190, 110, 0, 0, 2, 110 }, /* Hide text */ /* 23*/ { BARCODE_EANX, -1, -1, -1, "023456789012+12", 0, 50, 1, 122, 276, 116.4, 262, 19, 4, 91 }, /* 24*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, -1, "023456789012+12", 0, 50, 1, 122, 276, 116.4, 262, 19, 4, 91 }, /* 25*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, -1, "023456789012+12", 0, 50, 1, 122, 266, 116.4, 262, 19, 4, 91 }, - /* 26*/ { BARCODE_EANX, -1, -1, 0, "023456789012+12", 0, 50, 1, 122, 276, 110, 262, 19, 4, 91 }, // Hide text - /* 27*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, 0, "023456789012+12", 0, 50, 1, 122, 276, 110, 262, 19, 4, 91 }, // Hide text - /* 28*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, 0, "023456789012+12", 0, 50, 1, 122, 244, 110, 240, 19, 4, 91 }, // Hide text + /* 26*/ { BARCODE_EANX, -1, -1, 0, "023456789012+12", 0, 50, 1, 122, 276, 110, 262, 19, 4, 91 }, /* Hide text */ + /* 27*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, 0, "023456789012+12", 0, 50, 1, 122, 276, 110, 262, 19, 4, 91 }, /* Hide text */ + /* 28*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, 0, "023456789012+12", 0, 50, 1, 122, 244, 110, 240, 19, 4, 91 }, /* Hide text */ /* 29*/ { BARCODE_EANX_CHK, -1, -1, -1, "0234567890129+12345", 0, 50, 1, 149, 330, 116.4, 318, 19, 2, 91 }, /* 30*/ { BARCODE_EANX_CHK, BARCODE_QUIET_ZONES, -1, -1, "0234567890129+12345", 0, 50, 1, 149, 330, 116.4, 318, 19, 2, 91 }, /* 31*/ { BARCODE_EANX_CHK, BARCODE_NO_QUIET_ZONES, -1, -1, "0234567890129+12345", 0, 50, 1, 149, 320, 116.4, 318, 19, 2, 91 }, - /* 32*/ { BARCODE_EANX, -1, -1, -1, "0234567", 0, 50, 1, 67, 162, 116.4, 14, 0, 2, 110 }, // EAN-8 - /* 33*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, -1, "0234567", 0, 50, 1, 67, 162, 116.4, 14, 0, 2, 110 }, // EAN-8 - /* 34*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, -1, "0234567", 0, 50, 1, 67, 134, 116.4, 0, 0, 2, 110 }, // EAN-8 - /* 35*/ { BARCODE_EANX, -1, -1, -1, "02345", 0, 50, 1, 47, 118, 116.4, 14, 0, 2, 100 }, // EAN-5 - /* 36*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, -1, "02345", 0, 50, 1, 47, 118, 116.4, 14, 0, 2, 100 }, // EAN-5 - /* 37*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, -1, "02345", 0, 50, 1, 47, 94, 116.4, 0, 0, 2, 100 }, // EAN-5 - /* 38*/ { BARCODE_EANX, -1, -1, -1, "02", 0, 50, 1, 20, 64, 116.4, 14, 0, 2, 100 }, // EAN-2 - /* 39*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, -1, "02", 0, 50, 1, 20, 64, 116.4, 14, 0, 2, 100 }, // EAN-2 - /* 40*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, -1, "02", 0, 50, 1, 20, 40, 116.4, 0, 0, 2, 100 }, // EAN-2 + /* 32*/ { BARCODE_EANX, -1, -1, -1, "0234567", 0, 50, 1, 67, 162, 116.4, 14, 0, 2, 110 }, /* EAN-8 */ + /* 33*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, -1, "0234567", 0, 50, 1, 67, 162, 116.4, 14, 0, 2, 110 }, /* EAN-8 */ + /* 34*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, -1, "0234567", 0, 50, 1, 67, 134, 116.4, 0, 0, 2, 110 }, /* EAN-8 */ + /* 35*/ { BARCODE_EANX, -1, -1, -1, "02345", 0, 50, 1, 47, 118, 116.4, 14, 0, 2, 100 }, /* EAN-5 */ + /* 36*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, -1, "02345", 0, 50, 1, 47, 118, 116.4, 14, 0, 2, 100 }, /* EAN-5 */ + /* 37*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, -1, "02345", 0, 50, 1, 47, 94, 116.4, 0, 0, 2, 100 }, /* EAN-5 */ + /* 38*/ { BARCODE_EANX, -1, -1, -1, "02", 0, 50, 1, 20, 64, 116.4, 14, 0, 2, 100 }, /* EAN-2 */ + /* 39*/ { BARCODE_EANX, BARCODE_QUIET_ZONES, -1, -1, "02", 0, 50, 1, 20, 64, 116.4, 14, 0, 2, 100 }, /* EAN-2 */ + /* 40*/ { BARCODE_EANX, BARCODE_NO_QUIET_ZONES, -1, -1, "02", 0, 50, 1, 20, 40, 116.4, 0, 0, 2, 100 }, /* EAN-2 */ /* 41*/ { BARCODE_GS1_128, -1, -1, -1, "[20]02", 0, 50, 1, 68, 136, 118.9, 0, 0, 4, 100 }, /* 42*/ { BARCODE_GS1_128, BARCODE_QUIET_ZONES, -1, -1, "[20]02", 0, 50, 1, 68, 176, 118.9, 20, 0, 4, 100 }, /* 43*/ { BARCODE_CODABAR, -1, -1, -1, "A0B", 0, 50, 1, 32, 64, 118.9, 0, 0, 2, 100 }, @@ -1191,39 +1192,39 @@ static void test_quiet_zones(int index, int debug) { /* 73*/ { BARCODE_UPCA, -1, -1, -1, "01457137763", 0, 50, 1, 95, 226, 116.4, 18, 0, 2, 110 }, /* 74*/ { BARCODE_UPCA, BARCODE_QUIET_ZONES, -1, -1, "01457137763", 0, 50, 1, 95, 226, 116.4, 18, 0, 2, 110 }, /* 75*/ { BARCODE_UPCA, BARCODE_NO_QUIET_ZONES, -1, -1, "01457137763", 0, 50, 1, 95, 226, 116.4, 18, 0, 2, 110 }, - /* 76*/ { BARCODE_UPCA, -1, -1, 0, "01457137763", 0, 50, 1, 95, 226, 110, 18, 0, 2, 110 }, // Hide text - /* 77*/ { BARCODE_UPCA, BARCODE_QUIET_ZONES, -1, 0, "01457137763", 0, 50, 1, 95, 226, 110, 18, 0, 2, 110 }, // Hide text - /* 78*/ { BARCODE_UPCA, BARCODE_NO_QUIET_ZONES, -1, 0, "01457137763", 0, 50, 1, 95, 190, 110, 0, 0, 2, 110 }, // Hide text + /* 76*/ { BARCODE_UPCA, -1, -1, 0, "01457137763", 0, 50, 1, 95, 226, 110, 18, 0, 2, 110 }, /* Hide text */ + /* 77*/ { BARCODE_UPCA, BARCODE_QUIET_ZONES, -1, 0, "01457137763", 0, 50, 1, 95, 226, 110, 18, 0, 2, 110 }, /* Hide text */ + /* 78*/ { BARCODE_UPCA, BARCODE_NO_QUIET_ZONES, -1, 0, "01457137763", 0, 50, 1, 95, 190, 110, 0, 0, 2, 110 }, /* Hide text */ /* 79*/ { BARCODE_UPCA, -1, -1, -1, "01457137763+12", 0, 50, 1, 124, 276, 116.4, 18, 0, 2, 110 }, /* 80*/ { BARCODE_UPCA, BARCODE_QUIET_ZONES, -1, -1, "01457137763+12", 0, 50, 1, 124, 276, 116.4, 18, 0, 2, 110 }, /* 81*/ { BARCODE_UPCA, BARCODE_NO_QUIET_ZONES, -1, -1, "01457137763+12", 0, 50, 1, 124, 266, 116.4, 18, 0, 2, 110 }, - /* 82*/ { BARCODE_UPCA, -1, -1, 0, "01457137763+12", 0, 50, 1, 124, 276, 110, 18, 0, 2, 110 }, // Hide text - /* 83*/ { BARCODE_UPCA, BARCODE_QUIET_ZONES, -1, 0, "01457137763+12", 0, 50, 1, 124, 276, 110, 18, 0, 2, 110 }, // Hide text - /* 84*/ { BARCODE_UPCA, BARCODE_NO_QUIET_ZONES, -1, 0, "01457137763+12", 0, 50, 1, 124, 248, 110, 0, 0, 2, 110 }, // Hide text + /* 82*/ { BARCODE_UPCA, -1, -1, 0, "01457137763+12", 0, 50, 1, 124, 276, 110, 18, 0, 2, 110 }, /* Hide text */ + /* 83*/ { BARCODE_UPCA, BARCODE_QUIET_ZONES, -1, 0, "01457137763+12", 0, 50, 1, 124, 276, 110, 18, 0, 2, 110 }, /* Hide text */ + /* 84*/ { BARCODE_UPCA, BARCODE_NO_QUIET_ZONES, -1, 0, "01457137763+12", 0, 50, 1, 124, 248, 110, 0, 0, 2, 110 }, /* Hide text */ /* 85*/ { BARCODE_UPCA_CHK, -1, -1, -1, "014571377638+12345", 0, 50, 1, 151, 330, 116.4, 18, 0, 2, 110 }, /* 86*/ { BARCODE_UPCA_CHK, BARCODE_QUIET_ZONES, -1, -1, "014571377638+12345", 0, 50, 1, 151, 330, 116.4, 18, 0, 2, 110 }, /* 87*/ { BARCODE_UPCA_CHK, BARCODE_NO_QUIET_ZONES, -1, -1, "014571377638+12345", 0, 50, 1, 151, 320, 116.4, 18, 0, 2, 110 }, - /* 88*/ { BARCODE_UPCA_CHK, -1, -1, 0, "014571377638+12345", 0, 50, 1, 151, 330, 110, 18, 0, 2, 110 }, // Hide text - /* 89*/ { BARCODE_UPCA_CHK, BARCODE_QUIET_ZONES, -1, 0, "014571377638+12345", 0, 50, 1, 151, 330, 110, 18, 0, 2, 110 }, // Hide text - /* 90*/ { BARCODE_UPCA_CHK, BARCODE_NO_QUIET_ZONES, -1, 0, "014571377638+12345", 0, 50, 1, 151, 302, 110, 0, 0, 2, 110 }, // Hide text + /* 88*/ { BARCODE_UPCA_CHK, -1, -1, 0, "014571377638+12345", 0, 50, 1, 151, 330, 110, 18, 0, 2, 110 }, /* Hide text */ + /* 89*/ { BARCODE_UPCA_CHK, BARCODE_QUIET_ZONES, -1, 0, "014571377638+12345", 0, 50, 1, 151, 330, 110, 18, 0, 2, 110 }, /* Hide text */ + /* 90*/ { BARCODE_UPCA_CHK, BARCODE_NO_QUIET_ZONES, -1, 0, "014571377638+12345", 0, 50, 1, 151, 302, 110, 0, 0, 2, 110 }, /* Hide text */ /* 91*/ { BARCODE_UPCE, -1, -1, -1, "8145713", 0, 50, 1, 51, 134, 116.4, 18, 0, 2, 110 }, /* 92*/ { BARCODE_UPCE, BARCODE_QUIET_ZONES, -1, -1, "8145713", 0, 50, 1, 51, 134, 116.4, 18, 0, 2, 110 }, /* 93*/ { BARCODE_UPCE, BARCODE_NO_QUIET_ZONES, -1, -1, "8145713", 0, 50, 1, 51, 134, 116.4, 18, 0, 2, 110 }, - /* 94*/ { BARCODE_UPCE, -1, -1, 0, "8145713", 0, 50, 1, 51, 134, 110, 18, 0, 2, 110 }, // Hide text - /* 95*/ { BARCODE_UPCE, BARCODE_QUIET_ZONES, -1, 0, "8145713", 0, 50, 1, 51, 134, 110, 18, 0, 2, 110 }, // Hide text - /* 96*/ { BARCODE_UPCE, BARCODE_NO_QUIET_ZONES, -1, 0, "8145713", 0, 50, 1, 51, 102, 110, 0, 0, 2, 110 }, // Hide text + /* 94*/ { BARCODE_UPCE, -1, -1, 0, "8145713", 0, 50, 1, 51, 134, 110, 18, 0, 2, 110 }, /* Hide text */ + /* 95*/ { BARCODE_UPCE, BARCODE_QUIET_ZONES, -1, 0, "8145713", 0, 50, 1, 51, 134, 110, 18, 0, 2, 110 }, /* Hide text */ + /* 96*/ { BARCODE_UPCE, BARCODE_NO_QUIET_ZONES, -1, 0, "8145713", 0, 50, 1, 51, 102, 110, 0, 0, 2, 110 }, /* Hide text */ /* 97*/ { BARCODE_UPCE_CHK, -1, -1, -1, "81457132+12", 0, 50, 1, 78, 184, 116.4, 170, 19, 4, 81 }, /* 98*/ { BARCODE_UPCE_CHK, BARCODE_QUIET_ZONES, -1, -1, "81457132+12", 0, 50, 1, 78, 184, 116.4, 170, 19, 4, 81 }, /* 99*/ { BARCODE_UPCE_CHK, BARCODE_NO_QUIET_ZONES, -1, -1, "81457132+12", 0, 50, 1, 78, 174, 116.4, 170, 19, 4, 81 }, - /*100*/ { BARCODE_UPCE_CHK, -1, -1, 0, "81457132+12", 0, 50, 1, 78, 184, 110, 170, 19, 4, 81 }, // Hide text - /*101*/ { BARCODE_UPCE_CHK, BARCODE_QUIET_ZONES, -1, 0, "81457132+12", 0, 50, 1, 78, 184, 110, 170, 19, 4, 81 }, // Hide text - /*102*/ { BARCODE_UPCE_CHK, BARCODE_NO_QUIET_ZONES, -1, 0, "81457132+12", 0, 50, 1, 78, 156, 110, 152, 19, 4, 81 }, // Hide text + /*100*/ { BARCODE_UPCE_CHK, -1, -1, 0, "81457132+12", 0, 50, 1, 78, 184, 110, 170, 19, 4, 81 }, /* Hide text */ + /*101*/ { BARCODE_UPCE_CHK, BARCODE_QUIET_ZONES, -1, 0, "81457132+12", 0, 50, 1, 78, 184, 110, 170, 19, 4, 81 }, /* Hide text */ + /*102*/ { BARCODE_UPCE_CHK, BARCODE_NO_QUIET_ZONES, -1, 0, "81457132+12", 0, 50, 1, 78, 156, 110, 152, 19, 4, 81 }, /* Hide text */ /*103*/ { BARCODE_UPCE, -1, -1, -1, "8145713+12345", 0, 50, 1, 105, 238, 116.4, 226, 19, 2, 81 }, /*104*/ { BARCODE_UPCE, BARCODE_QUIET_ZONES, -1, -1, "8145713+12345", 0, 50, 1, 105, 238, 116.4, 226, 19, 2, 81 }, /*105*/ { BARCODE_UPCE, BARCODE_NO_QUIET_ZONES, -1, -1, "8145713+12345", 0, 50, 1, 105, 228, 116.4, 226, 19, 2, 81 }, - /*106*/ { BARCODE_UPCE, -1, -1, 0, "8145713+12345", 0, 50, 1, 105, 238, 110, 226, 19, 2, 81 }, // Hide text - /*107*/ { BARCODE_UPCE, BARCODE_QUIET_ZONES, -1, 0, "8145713+12345", 0, 50, 1, 105, 238, 110, 226, 19, 2, 81 }, // Hide text - /*108*/ { BARCODE_UPCE, BARCODE_NO_QUIET_ZONES, -1, 0, "8145713+12345", 0, 50, 1, 105, 210, 110, 208, 19, 2, 81 }, // Hide text + /*106*/ { BARCODE_UPCE, -1, -1, 0, "8145713+12345", 0, 50, 1, 105, 238, 110, 226, 19, 2, 81 }, /* Hide text */ + /*107*/ { BARCODE_UPCE, BARCODE_QUIET_ZONES, -1, 0, "8145713+12345", 0, 50, 1, 105, 238, 110, 226, 19, 2, 81 }, /* Hide text */ + /*108*/ { BARCODE_UPCE, BARCODE_NO_QUIET_ZONES, -1, 0, "8145713+12345", 0, 50, 1, 105, 210, 110, 208, 19, 2, 81 }, /* Hide text */ /*109*/ { BARCODE_POSTNET, -1, -1, -1, "12345", 0, 12, 2, 63, 126, 24, 0, 0, 2, 24 }, /*110*/ { BARCODE_POSTNET, BARCODE_QUIET_ZONES, -1, -1, "12345", 0, 12, 2, 63, 146, 30.4, 10, 3.2, 2, 24 }, /*111*/ { BARCODE_MSI_PLESSEY, -1, -1, -1, "1234", 0, 50, 1, 55, 110, 118.9, 0, 0, 4, 100 }, @@ -1342,9 +1343,9 @@ static void test_quiet_zones(int index, int debug) { /*224*/ { BARCODE_EANX_CC, -1, -1, -1, "023456789012", 0, 50, 7, 99, 234, 116.4, 32, 24, 2, 86 }, /*225*/ { BARCODE_EANX_CC, BARCODE_QUIET_ZONES, -1, -1, "023456789012", 0, 50, 7, 99, 234, 116.4, 32, 24, 2, 86 }, /*226*/ { BARCODE_EANX_CC, BARCODE_NO_QUIET_ZONES, -1, -1, "023456789012", 0, 50, 7, 99, 220, 116.4, 32, 24, 2, 86 }, - /*227*/ { BARCODE_EANX_CC, -1, -1, 0, "023456789012", 0, 50, 7, 99, 234, 110, 32, 24, 2, 86 }, // Hide text - /*228*/ { BARCODE_EANX_CC, BARCODE_QUIET_ZONES, -1, 0, "023456789012", 0, 50, 7, 99, 234, 110, 32, 24, 2, 86 }, // Hide text - /*229*/ { BARCODE_EANX_CC, BARCODE_NO_QUIET_ZONES, -1, 0, "023456789012", 0, 50, 7, 99, 198, 110, 10, 24, 2, 86 }, // Hide text + /*227*/ { BARCODE_EANX_CC, -1, -1, 0, "023456789012", 0, 50, 7, 99, 234, 110, 32, 24, 2, 86 }, /* Hide text */ + /*228*/ { BARCODE_EANX_CC, BARCODE_QUIET_ZONES, -1, 0, "023456789012", 0, 50, 7, 99, 234, 110, 32, 24, 2, 86 }, /* Hide text */ + /*229*/ { BARCODE_EANX_CC, BARCODE_NO_QUIET_ZONES, -1, 0, "023456789012", 0, 50, 7, 99, 198, 110, 10, 24, 2, 86 }, /* Hide text */ /*230*/ { BARCODE_GS1_128_CC, -1, -1, -1, "[20]02", 0, 50, 5, 99, 198, 118.9, 24, 14, 4, 86 }, /*231*/ { BARCODE_GS1_128_CC, BARCODE_QUIET_ZONES, -1, -1, "[20]02", 0, 50, 5, 99, 238, 118.9, 44, 14, 4, 86 }, /*232*/ { BARCODE_DBAR_OMN_CC, -1, -1, -1, "1234", 0, 21, 5, 100, 200, 60.900002, 10, 14, 2, 28 }, @@ -1356,15 +1357,15 @@ static void test_quiet_zones(int index, int debug) { /*238*/ { BARCODE_UPCA_CC, -1, -1, -1, "01457137763", 0, 50, 7, 99, 234, 116.4, 24, 20, 2, 90 }, /*239*/ { BARCODE_UPCA_CC, BARCODE_QUIET_ZONES, -1, -1, "01457137763", 0, 50, 7, 99, 234, 116.4, 24, 20, 2, 90 }, /*240*/ { BARCODE_UPCA_CC, BARCODE_NO_QUIET_ZONES, -1, -1, "01457137763", 0, 50, 7, 99, 234, 116.4, 24, 20, 2, 90 }, - /*241*/ { BARCODE_UPCA_CC, -1, -1, 0, "01457137763", 0, 50, 7, 99, 234, 110, 24, 20, 2, 90 }, // Hide text - /*242*/ { BARCODE_UPCA_CC, BARCODE_QUIET_ZONES, -1, 0, "01457137763", 0, 50, 7, 99, 234, 110, 24, 20, 2, 90 }, // Hide text - /*243*/ { BARCODE_UPCA_CC, BARCODE_NO_QUIET_ZONES, -1, 0, "01457137763", 0, 50, 7, 99, 198, 110, 6, 20, 2, 90 }, // Hide text + /*241*/ { BARCODE_UPCA_CC, -1, -1, 0, "01457137763", 0, 50, 7, 99, 234, 110, 24, 20, 2, 90 }, /* Hide text */ + /*242*/ { BARCODE_UPCA_CC, BARCODE_QUIET_ZONES, -1, 0, "01457137763", 0, 50, 7, 99, 234, 110, 24, 20, 2, 90 }, /* Hide text */ + /*243*/ { BARCODE_UPCA_CC, BARCODE_NO_QUIET_ZONES, -1, 0, "01457137763", 0, 50, 7, 99, 198, 110, 6, 20, 2, 90 }, /* Hide text */ /*244*/ { BARCODE_UPCE_CC, -1, -1, -1, "8145713", 0, 50, 9, 55, 142, 116.4, 24, 28, 2, 82 }, /*245*/ { BARCODE_UPCE_CC, BARCODE_QUIET_ZONES, -1, -1, "8145713", 0, 50, 9, 55, 142, 116.4, 24, 28, 2, 82 }, /*246*/ { BARCODE_UPCE_CC, BARCODE_NO_QUIET_ZONES, -1, -1, "8145713", 0, 50, 9, 55, 142, 116.4, 24, 28, 2, 82 }, - /*247*/ { BARCODE_UPCE_CC, -1, -1, 0, "8145713", 0, 50, 9, 55, 142, 110, 24, 28, 2, 82 }, // Hide text - /*248*/ { BARCODE_UPCE_CC, BARCODE_QUIET_ZONES, -1, 0, "8145713", 0, 50, 9, 55, 142, 110, 24, 28, 2, 82 }, // Hide text - /*249*/ { BARCODE_UPCE_CC, BARCODE_NO_QUIET_ZONES, -1, 0, "8145713", 0, 50, 9, 55, 110, 110, 6, 28, 2, 82 }, // Hide text + /*247*/ { BARCODE_UPCE_CC, -1, -1, 0, "8145713", 0, 50, 9, 55, 142, 110, 24, 28, 2, 82 }, /* Hide text */ + /*248*/ { BARCODE_UPCE_CC, BARCODE_QUIET_ZONES, -1, 0, "8145713", 0, 50, 9, 55, 142, 110, 24, 28, 2, 82 }, /* Hide text */ + /*249*/ { BARCODE_UPCE_CC, BARCODE_NO_QUIET_ZONES, -1, 0, "8145713", 0, 50, 9, 55, 110, 110, 6, 28, 2, 82 }, /* Hide text */ /*250*/ { BARCODE_DBAR_STK_CC, -1, -1, -1, "1234", 0, 24, 9, 56, 112, 48, 0, 34, 2, 14 }, /*251*/ { BARCODE_DBAR_STK_CC, BARCODE_QUIET_ZONES, -1, -1, "1234", 0, 24, 9, 56, 116, 48, 2, 34, 2, 14 }, /*252*/ { BARCODE_DBAR_OMNSTK_CC, -1, -1, -1, "1234", 0, 80, 11, 56, 112, 160, 0, 94, 2, 66 }, @@ -1373,10 +1374,10 @@ static void test_quiet_zones(int index, int debug) { /*255*/ { BARCODE_DBAR_EXPSTK_CC, BARCODE_QUIET_ZONES, -1, -1, "[20]12", 0, 41, 5, 102, 208, 82, 4, 14, 2, 68 }, /*256*/ { BARCODE_CHANNEL, -1, -1, -1, "1234", 0, 50, 1, 27, 54, 118.9, 0, 0, 2, 100 }, /*257*/ { BARCODE_CHANNEL, BARCODE_QUIET_ZONES, -1, -1, "1234", 0, 50, 1, 27, 60, 118.9, 2, 0, 2, 100 }, - /*258*/ { BARCODE_CODEONE, -1, -1, -1, "1234", 0, 16, 16, 18, 36, 32, 0, 0, 2, 2 }, // Versions A to H - no quiet zone + /*258*/ { BARCODE_CODEONE, -1, -1, -1, "1234", 0, 16, 16, 18, 36, 32, 0, 0, 2, 2 }, /* Versions A to H - no quiet zone */ /*259*/ { BARCODE_CODEONE, BARCODE_QUIET_ZONES, -1, -1, "1234", 0, 16, 16, 18, 36, 32, 0, 0, 2, 2 }, /*260*/ { BARCODE_CODEONE, BARCODE_NO_QUIET_ZONES, -1, -1, "1234", 0, 16, 16, 18, 36, 32, 0, 0, 2, 2 }, - /*261*/ { BARCODE_CODEONE, -1, 9, -1, "1234", 0, 8, 8, 11, 22, 16, 10, 0, 2, 2 }, // Version S (& T) have quiet zones + /*261*/ { BARCODE_CODEONE, -1, 9, -1, "1234", 0, 8, 8, 11, 22, 16, 10, 0, 2, 2 }, /* Version S (& T) have quiet zones */ /*262*/ { BARCODE_CODEONE, BARCODE_QUIET_ZONES, 9, -1, "1234", 0, 8, 8, 11, 26, 16, 12, 0, 2, 2 }, /*263*/ { BARCODE_GRIDMATRIX, -1, -1, -1, "123", 0, 18, 18, 18, 36, 36, 0, 0, 12, 2 }, /*264*/ { BARCODE_GRIDMATRIX, BARCODE_QUIET_ZONES, -1, -1, "123", 0, 18, 18, 18, 60, 60, 12, 12, 12, 2 }, @@ -1386,6 +1387,8 @@ static void test_quiet_zones(int index, int debug) { /*268*/ { BARCODE_ULTRA, BARCODE_QUIET_ZONES, -1, -1, "1234", 0, 13, 13, 15, 34, 30, 2, 2, 30, 2 }, /*269*/ { BARCODE_RMQR, -1, -1, -1, "1234", 0, 11, 11, 27, 54, 22, 0, 0, 14, 2 }, /*270*/ { BARCODE_RMQR, BARCODE_QUIET_ZONES, -1, -1, "1234", 0, 11, 11, 27, 62, 30, 4, 4, 14, 2 }, + /*271*/ { BARCODE_BC412, -1, -1, -1, "1234567", 0, 16.666668, 1, 102, 204, 52.233337, 0, 0, 2, 33.333336 }, + /*272*/ { BARCODE_BC412, BARCODE_QUIET_ZONES, -1, -1, "1234567", 0, 16.666668, 1, 102, 244, 52.233337, 20, 0, 2, 33.333336 }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -1429,7 +1432,7 @@ static void test_quiet_zones(int index, int debug) { if (ret < ZINT_ERROR) { assert_nonnull(symbol->vector, "i:%d ZBarcode_Buffer_Vector(%d) vector NULL\n", i, data[i].symbology); - if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) { // ZINT_DEBUG_TEST_PRINT 16 + if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) { /* ZINT_DEBUG_TEST_PRINT 16 */ sprintf(symbol->outfile, "test_quiet_zones_%d.svg", i); ZBarcode_Print(symbol, 0); } @@ -2072,6 +2075,12 @@ static void test_height(int index, int generate, int debug) { /*590*/ { BARCODE_UPNQR, -1, 1, "1234567890AB", "", 0, 77, 77, 77, 154, 154, "Fixed width-to-height ratio, symbol->height ignored" }, /*591*/ { BARCODE_ULTRA, -1, 1, "1234567890", "", 0, 13, 13, 18, 36, 26, "Fixed width-to-height ratio, symbol->height ignored" }, /*592*/ { BARCODE_RMQR, -1, 1, "12345", "", 0, 11, 11, 27, 54, 22, "Fixed width-to-height ratio, symbol->height ignored" }, + /*593*/ { BARCODE_BC412, -1, 1, "1234567", "", 0, 1, 1, 102, 204, 2, "" }, + /*594*/ { BARCODE_BC412, -1, 13.6, "1234567", "", 0, 13.6, 1, 102, 204, 27.200001, "" }, + /*595*/ { BARCODE_BC412, COMPLIANT_HEIGHT, 13.6, "1234567", "", ZINT_WARN_NONCOMPLIANT, 13.6, 1, 102, 204, 27.200001, "" }, + /*596*/ { BARCODE_BC412, COMPLIANT_HEIGHT, 13.65, "1234567", "", 0, 13.65, 1, 102, 204, 27.299999, "" }, + /*597*/ { BARCODE_BC412, COMPLIANT_HEIGHT, 21.3, "1234567", "", 0, 21.3, 1, 102, 204, 42.599998, "" }, + /*598*/ { BARCODE_BC412, COMPLIANT_HEIGHT, 21.35, "1234567", "", ZINT_WARN_NONCOMPLIANT, 21.35, 1, 102, 204, 42.700001, "" }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -2097,7 +2106,7 @@ static void test_height(int index, int generate, int debug) { symbol->height = data[i].height; } symbol->input_mode = UNICODE_MODE; - symbol->show_hrt = 0; // Note: disabling HRT + symbol->show_hrt = 0; /* Note: disabling HRT */ symbol->debug |= debug; if (strlen(data[i].composite)) { @@ -2258,7 +2267,7 @@ static void test_height_per_row(int index, int generate, int debug) { if (data[i].scale != -1) { symbol->scale = data[i].scale; } - symbol->show_hrt = 0; // Note: disabling HRT + symbol->show_hrt = 0; /* Note: disabling HRT */ if (strlen(data[i].composite)) { text = data[i].composite; @@ -2321,3 +2330,5 @@ int main(int argc, char *argv[]) { return 0; } + +/* vim: set ts=4 sw=4 et : */ diff --git a/backend/tests/testcommon.c b/backend/tests/testcommon.c index 1f33b922..1bb69d31 100644 --- a/backend/tests/testcommon.c +++ b/backend/tests/testcommon.c @@ -2379,7 +2379,7 @@ int testUtilBwipp(int index, const struct zint_symbol *symbol, int option_1, int strcat(bwipp_data, data); testUtilBwippCvtGS1Data(bwipp_data, upcean, &addon_posn); - /* Always set dontlint */ + /* Always set dontlint for now (until support for exclusive AIs check) */ sprintf(bwipp_opts_buf + strlen(bwipp_opts_buf), "%sdontlint", strlen(bwipp_opts_buf) ? " " : ""); bwipp_opts = bwipp_opts_buf; @@ -2404,7 +2404,7 @@ int testUtilBwipp(int index, const struct zint_symbol *symbol, int option_1, int } if (symbol->input_mode & GS1NOCHECK_MODE) { - sprintf(bwipp_opts_buf + strlen(bwipp_opts_buf), "%sdontlint", strlen(bwipp_opts_buf) ? " " : ""); + /* sprintf(bwipp_opts_buf + strlen(bwipp_opts_buf), "%sdontlint", strlen(bwipp_opts_buf) ? " " : ""); */ } } else { if (gs1_cvt) { @@ -2414,7 +2414,7 @@ int testUtilBwipp(int index, const struct zint_symbol *symbol, int option_1, int strcat(bwipp_data, data); testUtilBwippCvtGS1Data(bwipp_data, upcean, &addon_posn); - /* Always set dontlint */ + /* Always set dontlint for now (until support for exclusive AIs check) */ sprintf(bwipp_opts_buf + strlen(bwipp_opts_buf), "%sdontlint", strlen(bwipp_opts_buf) ? " " : ""); bwipp_opts = bwipp_opts_buf; @@ -2440,7 +2440,7 @@ int testUtilBwipp(int index, const struct zint_symbol *symbol, int option_1, int } if (symbol->input_mode & GS1NOCHECK_MODE) { - sprintf(bwipp_opts_buf + strlen(bwipp_opts_buf), "%sdontlint", strlen(bwipp_opts_buf) ? " " : ""); + /* sprintf(bwipp_opts_buf + strlen(bwipp_opts_buf), "%sdontlint", strlen(bwipp_opts_buf) ? " " : ""); */ } } else { if (testUtilBwippEscape(bwipp_data, bwipp_data_size, data, data_len, symbol->input_mode & ESCAPE_MODE, @@ -2759,7 +2759,9 @@ int testUtilBwipp(int index, const struct zint_symbol *symbol, int option_1, int bwipp_opts = bwipp_opts_buf; } } else if (symbology == BARCODE_BC412) { - /* TODO: */ + to_upper((unsigned char *) bwipp_data, (int) strlen(bwipp_data)); + sprintf(bwipp_opts_buf + strlen(bwipp_opts_buf), "%ssemi", strlen(bwipp_opts_buf) ? " " : ""); + bwipp_opts = bwipp_opts_buf; } } diff --git a/backend/tests/tools/bwipp_dump-barcode.ps.diff b/backend/tests/tools/bwipp_dump-barcode.ps.diff index 8934e796..f10a891d 100644 --- a/backend/tests/tools/bwipp_dump-barcode.ps.diff +++ b/backend/tests/tools/bwipp_dump-barcode.ps.diff @@ -1,6 +1,6 @@ ---- /home/mburke/code/bwipp/postscriptbarcode/build/monolithic/barcode.ps 2022-07-17 22:17:15.871836524 +0100 -+++ backend/tests/tools/bwipp_dump.ps 2022-07-18 19:22:47.833744410 +0100 -@@ -16698,8 +16698,8 @@ +--- /home/mburke/code/gitlost/postscriptbarcode/build/monolithic/barcode.ps 2022-07-21 12:19:39.099718825 +0100 ++++ backend/tests/tools/bwipp_dump.ps 2022-07-21 12:23:00.300971510 +0100 +@@ -16745,8 +16745,8 @@ } bind /fime { /sbs [2.25 6.75 2.25 15.75 2.25 6.75 2.25] def @@ -11,7 +11,7 @@ } bind >> def -@@ -28190,7 +28190,7 @@ +@@ -28239,7 +28239,7 @@ pop } ifelse @@ -20,7 +20,7 @@ options (lintype) (ean13) put options (inkspread) (0) put -@@ -28230,27 +28230,73 @@ +@@ -28279,27 +28279,73 @@ } if % Plot the linear part @@ -112,7 +112,7 @@ end -@@ -28314,7 +28360,7 @@ +@@ -28364,7 +28410,7 @@ pop } ifelse @@ -121,7 +121,7 @@ % Get the result of encoding with ean8 and gs1-cc options (lintype) (ean8) put -@@ -28355,29 +28401,75 @@ +@@ -28405,29 +28451,75 @@ } if % Plot the linear part @@ -217,7 +217,7 @@ end -@@ -28441,7 +28533,7 @@ +@@ -28492,7 +28584,7 @@ pop } ifelse @@ -226,7 +226,7 @@ options (lintype) (ean13) put options (inkspread) (0) put -@@ -28481,27 +28573,73 @@ +@@ -28532,27 +28624,73 @@ } if % Plot the linear part @@ -318,7 +318,7 @@ end -@@ -28580,7 +28718,7 @@ +@@ -28632,7 +28770,7 @@ /opt options >> def @@ -327,7 +327,7 @@ options (lintype) (upce) put options (inkspread) (0) put -@@ -28620,27 +28758,73 @@ +@@ -28672,27 +28810,73 @@ } if % Plot the linear part @@ -419,7 +419,7 @@ end -@@ -28704,7 +28888,7 @@ +@@ -28757,7 +28941,7 @@ pop } ifelse @@ -428,7 +428,7 @@ options (lintype) (databaromni) put options (linkage) true put -@@ -28748,7 +28932,7 @@ +@@ -28801,7 +28985,7 @@ linear options //databaromni exec dup (sbs) get /linsbs exch def dup (bhs) get 0 get 72 mul /linheight exch def @@ -437,7 +437,7 @@ % Plot the separator /sepfinder { -@@ -28779,20 +28963,66 @@ +@@ -28832,20 +29016,66 @@ sep 0 [0 0 0] putinterval sep sep length 4 sub [0 0 0 0] putinterval 18 sepfinder 64 sepfinder @@ -516,7 +516,7 @@ end -@@ -28855,7 +29085,7 @@ +@@ -28909,7 +29139,7 @@ pop } ifelse @@ -525,7 +525,7 @@ options (lintype) (databarstacked) put options (linkage) true put -@@ -28899,7 +29129,7 @@ +@@ -28953,7 +29183,7 @@ linear options //databarstacked exec dup (pixs) get 0 2 index (pixx) get getinterval /bot exch def dup (pixy) get /linheight exch def @@ -534,7 +534,7 @@ % Plot the separator /sepfinder { -@@ -28927,20 +29157,52 @@ +@@ -28981,20 +29211,52 @@ sep 0 [ 0 0 0 0 ] putinterval sep sep length 4 sub [ 0 0 0 0 ] putinterval 18 sepfinder @@ -599,7 +599,7 @@ end -@@ -29003,7 +29265,7 @@ +@@ -29058,7 +29320,7 @@ pop } ifelse @@ -608,7 +608,7 @@ options (lintype) (databarstackedomni) put options (linkage) true put -@@ -29047,7 +29309,7 @@ +@@ -29102,7 +29364,7 @@ linear options //databarstackedomni exec dup (pixs) get 0 2 index (pixx) get getinterval /bot exch def dup (pixy) get /linheight exch def @@ -617,7 +617,7 @@ % Plot the separator /sepfinder { -@@ -29075,20 +29337,52 @@ +@@ -29130,20 +29392,52 @@ sep 0 [ 0 0 0 0 ] putinterval sep sep length 4 sub [ 0 0 0 0 ] putinterval 18 sepfinder @@ -682,7 +682,7 @@ end -@@ -29304,7 +29598,7 @@ +@@ -29361,7 +29655,7 @@ pop } ifelse @@ -691,7 +691,7 @@ options (lintype) (databarlimited) put options (linkage) true put -@@ -29348,7 +29642,7 @@ +@@ -29405,7 +29699,7 @@ linear options //databarlimited exec dup (sbs) get /linsbs exch def dup (bhs) get 0 get 72 mul /linheight exch def @@ -700,7 +700,7 @@ % Plot the separator mark -@@ -29356,22 +29650,68 @@ +@@ -29413,22 +29707,68 @@ counttomark 1 sub array astore /sep exch def pop pop sep 0 [0 0 0] putinterval sep sep length 9 sub [0 0 0 0 0 0 0 0 0] putinterval % 4 + 5 right guard spaces @@ -783,7 +783,7 @@ end -@@ -29435,7 +29775,7 @@ +@@ -29493,7 +29833,7 @@ pop } ifelse @@ -792,7 +792,7 @@ options (lintype) (databarexpanded) put options (linkage) true put -@@ -29479,7 +29819,7 @@ +@@ -29537,7 +29877,7 @@ linear options //databarexpanded exec dup (sbs) get /linsbs exch def dup (bhs) get 0 get 72 mul /linheight exch def @@ -801,7 +801,7 @@ % Plot the separator /sepfinder { -@@ -29508,20 +29848,60 @@ +@@ -29566,20 +29906,60 @@ 18 98 bot length 13 sub {} for 69 98 bot length 13 sub {} for ] {sepfinder} forall @@ -874,7 +874,7 @@ end -@@ -29584,7 +29964,7 @@ +@@ -29643,7 +30023,7 @@ pop } ifelse @@ -883,7 +883,7 @@ options (lintype) (databarexpandedstacked) put options (linkage) true put -@@ -29628,7 +30008,7 @@ +@@ -29687,7 +30067,7 @@ linear options //databarexpandedstacked exec dup (pixs) get 0 2 index (pixx) get getinterval /bot exch def dup (pixy) get /linheight exch def @@ -892,7 +892,7 @@ % Plot the separator /sepfinder { -@@ -29654,21 +30034,49 @@ +@@ -29713,21 +30093,49 @@ 19 98 bot length 13 sub {} for 70 98 bot length 13 sub {} for ] {sepfinder} forall @@ -955,7 +955,7 @@ end -@@ -29732,7 +30140,7 @@ +@@ -29792,7 +30200,7 @@ pop } ifelse @@ -964,7 +964,7 @@ options (inkspread) (0) put options (dontdraw) true put -@@ -29792,35 +30200,87 @@ +@@ -29852,35 +30260,87 @@ linear << options {} forall >> //gs1-128 exec dup (sbs) get /linsbs exch def dup (bhs) get 0 get 72 mul /linheight exch def @@ -1066,7 +1066,7 @@ end -@@ -31370,3 +31830,189 @@ +@@ -31434,3 +31894,189 @@ % --END ENCODER hibcazteccode-- % --END TEMPLATE-- diff --git a/backend/tests/tools/bwipp_dump.ps.tar.xz b/backend/tests/tools/bwipp_dump.ps.tar.xz index 7763aeb6ba095581f394f2d044eca7a5195cdfbb..470171a6392a77c687080ebd8759b222e51b1e40 100644 GIT binary patch literal 127864 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 z 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 literal 127580 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

U9$*Y3b280|xy3!H)n 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 RObW5YXZr#G00004Sz0KvgN*output_options`) */ diff --git a/docs/Makefile b/docs/Makefile index b5560200..2e29d327 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -89,6 +89,7 @@ IMAGES = \ images/dbar_exp.svg \ images/koreapost.svg \ images/channel.svg \ + images/bc412.svg \ images/code128_stacked.svg \ images/code128_stacked_sep2.svg \ images/codablockf.svg \ diff --git a/docs/manual.pmd b/docs/manual.pmd index 263fcf63..31a91492 100644 --- a/docs/manual.pmd +++ b/docs/manual.pmd @@ -730,6 +730,8 @@ Value 144 `BARCODE_ULTRA` Ultracode 145 `BARCODE_RMQR` Rectangular Micro QR Code (rMQR) + + 140 `BARCODE_BC412` IBM BC412 (SEMI T1-95) -------------------------------------------------------------------------------- Table: {#tbl:barcode_types tag=": Barcode Types (Symbologies)"} @@ -2803,6 +2805,18 @@ the table below: Table: {#tbl:channel_maxima tag=": Channel Maximum Values"} +### 6.1.14 BC412 (SEMI T1-95) + +![`zint -b BC412 -d "AQ45670" --compliantheight`](images/bc412.svg) + +Designed by IBM for marking silicon wafers, each BC412 character is represented +by 4 bars of a single size, interleaved with 4 spaces of varying sizes that +total 8 (hence 4 bars in 12). Zint implements the SEMI T1-95 standard, where +input must be alphanumeric, excluding the letter `O`, and must be from 7 to 18 +characters in length. A single check character is added by Zint, appearing in +the 2nd character position. Lowercase input is automatically made uppercase. + + \clearpage ## 6.2 Stacked Symbologies @@ -4064,6 +4078,8 @@ international standards: - ISO/IEC 24778:2008 Information technology - Automatic identification and data capture techniques - Aztec Code bar code symbology specification +- SEMI T1-95 Specification for Back Surface Bar Code Marking of Silicon Wafers + (BC412) (1996) - ANSI/AIM BC12-1998 - Uniform Symbology Specification Channel Code - BS EN 798:1996 Bar coding - Symbology specifications - 'Codabar' - AIM Europe ISS-X-24 - Uniform Symbology Specification Codablock-F (1995) diff --git a/docs/manual.txt b/docs/manual.txt index 711d6e78..3f067742 100644 --- a/docs/manual.txt +++ b/docs/manual.txt @@ -117,6 +117,7 @@ July 2022 - 6.1.11.3 GS1 DataBar Expanded - 6.1.12 Korea Post Barcode - 6.1.13 Channel Code + - 6.1.14 BC412 (SEMI T1-95) - 6.2 Stacked Symbologies - 6.2.1 Basic Symbol Stacking - 6.2.2 Codablock-F @@ -866,6 +867,8 @@ underscores are optional. 144 BARCODE_ULTRA Ultracode 145 BARCODE_RMQR Rectangular Micro QR Code (rMQR) + + 140 BARCODE_BC412 IBM BC412 (SEMI T1-95) -------------------------------------------------------------------------------- : Table : Barcode Types (Symbologies): @@ -2765,6 +2768,17 @@ the table below: : Table : Channel Maximum Values: +6.1.14 BC412 (SEMI T1-95) + +[zint -b BC412 -d "AQ45670" --compliantheight] + +Designed by IBM for marking silicon wafers, each BC412 character is represented +by 4 bars of a single size, interleaved with 4 spaces of varying sizes that +total 8 (hence 4 bars in 12). Zint implements the SEMI T1-95 standard, where +input must be alphanumeric, excluding the letter O, and must be from 7 to 18 +characters in length. A single check character is added by Zint, appearing in +the 2nd character position. Lowercase input is automatically made uppercase. + 6.2 Stacked Symbologies 6.2.1 Basic Symbol Stacking @@ -3963,6 +3977,8 @@ international standards: - ISO/IEC 24778:2008 Information technology - Automatic identification and data capture techniques - Aztec Code bar code symbology specification +- SEMI T1-95 Specification for Back Surface Bar Code Marking of Silicon Wafers + (BC412) (1996) - ANSI/AIM BC12-1998 - Uniform Symbology Specification Channel Code - BS EN 798:1996 Bar coding - Symbology specifications - ‘Codabar’ - AIM Europe ISS-X-24 - Uniform Symbology Specification Codablock-F (1995) @@ -4588,8 +4604,13 @@ Please send bug reports to https://sourceforge.net/p/zint/tickets/. SEE ALSO Full documention for zint (and the API libzint and the GUI zint-qt) is available -from http://zint.org.uk/Manual.aspx, and at -https://sourceforge.net/p/zint/docs/manual.txt. +from + + http://zint.org.uk/Manual.aspx + +and at + + https://sourceforge.net/p/zint/docs/manual.txt CONFORMING TO diff --git a/docs/zint.1 b/docs/zint.1 index f9884e0d..b55ce825 100644 --- a/docs/zint.1 +++ b/docs/zint.1 @@ -567,8 +567,20 @@ Please send bug reports to https://sourceforge.net/p/zint/tickets/. .PP Full documention for \f[V]zint\f[R] (and the API \f[V]libzint\f[R] and the GUI \f[V]zint-qt\f[R]) is available from -http://zint.org.uk/Manual.aspx, and at -https://sourceforge.net/p/zint/docs/manual.txt. +.IP +.nf +\f[C] + http://zint.org.uk/Manual.aspx +\f[R] +.fi +.PP +and at +.IP +.nf +\f[C] + https://sourceforge.net/p/zint/docs/manual.txt +\f[R] +.fi .SH CONFORMING TO .PP Zint is designed to be compliant with a number of international diff --git a/docs/zint.1.pmd b/docs/zint.1.pmd index ba7977af..c497217f 100644 --- a/docs/zint.1.pmd +++ b/docs/zint.1.pmd @@ -461,7 +461,12 @@ Please send bug reports to https://sourceforge.net/p/zint/tickets/. # SEE ALSO Full documention for `zint` (and the API `libzint` and the GUI `zint-qt`) is available from -http://zint.org.uk/Manual.aspx, and at https://sourceforge.net/p/zint/docs/manual.txt. + + http://zint.org.uk/Manual.aspx + +and at + + https://sourceforge.net/p/zint/docs/manual.txt # CONFORMING TO diff --git a/docs/zint_images.sh b/docs/zint_images.sh index f44b8f05..eacabdb5 100755 --- a/docs/zint_images.sh +++ b/docs/zint_images.sh @@ -57,6 +57,7 @@ zint -b DBAR_LTD --compliantheight -d "0950110153001" --scale=0.6 -o images/dbar zint -b DBAR_EXP --compliantheight -d "[01]98898765432106[3202]012345[15]991231" --scale=0.6 -o images/dbar_exp.svg zint -b KOREAPOST -d "923457" --scale=0.6 -o images/koreapost.svg zint -b CHANNEL -d "453678" --compliantheight --scale=0.6 -o images/channel.svg +zint -b BC412 -d "AQ45670" --compliantheight --scale=0.6 -o images/bc412.svg zint -d "This" -d "That" --scale=0.6 -o images/code128stacked.svg zint --notext --bind --separator=2 -d "This" -d "That" --scale=0.6 -o images/code128stacked_sep2.svg zint -b CODABLOCKF -d "CODABLOCK F Symbology" --rows=3 --scale=0.6 -o images/codablockf.svg diff --git a/frontend_qt/mainwindow.cpp b/frontend_qt/mainwindow.cpp index f4288412..35638261 100644 --- a/frontend_qt/mainwindow.cpp +++ b/frontend_qt/mainwindow.cpp @@ -72,7 +72,7 @@ static const struct bstyle_item bstyle_items[] = { { QSL("Australia Post Standard Customer"), BARCODE_AUSPOST }, { QSL("Aztec Code (ISO 24778) (and HIBC)"), BARCODE_AZTEC }, { QSL("Aztec Runes (ISO 24778)"), BARCODE_AZRUNE }, - { QSL("BC412 (SEMI TI-95)"), BARCODE_BC412 }, + { QSL("BC412 (SEMI T1-95)"), BARCODE_BC412 }, { QSL("Channel Code"), BARCODE_CHANNEL }, { QSL("Codabar (EN 798)"), BARCODE_CODABAR }, { QSL("Codablock-F (and HIBC)"), BARCODE_CODABLOCKF },