GRIDMATRIX: default char set is GB 2312 only, not Latin-1 with GB 2312 alt

HANXIN/QRCODE: use Hanzi/Kanji modes when compatible ECIs given
manual: one true source now manual.pmd from which manual.txt is generated
CLI: man page moved from frontend/zint.1.gz to docs/zint.1.gz, now
  generated from docs/zint.1.pmd
add README.linux to root dir
This commit is contained in:
gitlost 2022-05-19 10:17:51 +01:00
parent 9aae557cdc
commit 719613d4c3
160 changed files with 18144 additions and 2674 deletions

View file

@ -837,7 +837,7 @@ static void test_barcode_symbology(int index, int debug) {
/* 4*/ { "code12", "1", NULL, 1, "Error 119: Invalid barcode type 'code12'" },
/* 5*/ { "BARCODE_CODE11", "1", NULL, 0, "symbology: 1," },
/* 6*/ { "C25 Standard", "1", NULL, 0, "symbology: 2," },
/* 7*/ { "c25matrix", "1", NULL, 1, "Error 119: Invalid barcode type 'c25matrix'" }, // Legacy not supported
/* 7*/ { "c25matrix", "1", NULL, 0, "symbology: 2," }, // Legacy now supported
/* 8*/ { "C25INTER", "1", NULL, 0, "symbology: 3," },
/* 9*/ { "c25IATA", "1", NULL, 0, "symbology: 4," },
/* 10*/ { "c25 Logic", "1", NULL, 0, "symbology: 6," },
@ -850,107 +850,124 @@ static void test_barcode_symbology(int index, int debug) {
/* 17*/ { "eanxchk", "1", NULL, 0, "symbology: 14," },
/* 18*/ { "eanchk", "1", NULL, 0, "symbology: 14," },
/* 19*/ { "GS1128", "[01]12345678901231", NULL, 0, "symbology: 16," },
/* 20*/ { "coda bar", "A1B", NULL, 0, "symbology: 18," },
/* 21*/ { "DPLEIT", "1", NULL, 0, "symbology: 21," },
/* 22*/ { "DPIDENT", "1", NULL, 0, "symbology: 22," },
/* 23*/ { "code16k", "1", NULL, 0, "symbology: 23," },
/* 24*/ { "CODE49", "1", NULL, 0, "symbology: 24," },
/* 25*/ { "CODE93", "1", NULL, 0, "symbology: 25," },
/* 26*/ { "flat", "1", NULL, 0, "symbology: 28," },
/* 27*/ { "dbar omn", "1", NULL, 0, "symbology: 29," },
/* 28*/ { "dbar ltd", "1", NULL, 0, "symbology: 30," },
/* 29*/ { "dbarexp", "[10]12", NULL, 0, "symbology: 31," },
/* 30*/ { "telepen", "1", NULL, 0, "symbology: 32," },
/* 31*/ { "upc", "1", NULL, 1, "Error 119: Invalid barcode type 'upc'" },
/* 32*/ { "upca", "1", NULL, 0, "symbology: 34," },
/* 33*/ { "upca_chk", "123456789012", NULL, 0, "symbology: 35," },
/* 34*/ { "upce", "1", NULL, 0, "symbology: 37," },
/* 35*/ { "upce chk", "12345670", NULL, 0, "symbology: 38," },
/* 36*/ { "POSTNET ", "12345678901", NULL, 0, "symbology: 40," },
/* 37*/ { "msi", "1", NULL, 0, "symbology: 47," },
/* 38*/ { "MSI Plessey ", "1", NULL, 0, "symbology: 47," },
/* 39*/ { "fim ", "A", NULL, 0, "symbology: 49," },
/* 40*/ { "LOGMARS", "123456", NULL, 0, "symbology: 50," },
/* 41*/ { " pharma", "123456", NULL, 0, "symbology: 51," },
/* 42*/ { " pzn ", "1", NULL, 0, "symbology: 52," },
/* 43*/ { "pharma two", "4", NULL, 0, "symbology: 53," },
/* 44*/ { "BARCODE_PDF417", "1", NULL, 0, "symbology: 55," },
/* 45*/ { "barcodepdf417comp", "1", NULL, 0, "symbology: 56," },
/* 46*/ { "MaxiCode", "1", NULL, 0, "symbology: 57," },
/* 47*/ { "QR CODE", "1", NULL, 0, "symbology: 58," },
/* 48*/ { "qr", "1", NULL, 0, "symbology: 58," }, // Synonym
/* 49*/ { "Code 128 B", "1", NULL, 0, "symbology: 60," },
/* 50*/ { "AUS POST", "12345678901234567890123", NULL, 0, "symbology: 63," },
/* 51*/ { "AusReply", "12345678", NULL, 0, "symbology: 66," },
/* 52*/ { "AUSROUTE", "12345678", NULL, 0, "symbology: 67," },
/* 53*/ { "AUS REDIRECT", "12345678", NULL, 0, "symbology: 68," },
/* 54*/ { "isbnx", "123456789", NULL, 0, "symbology: 69," },
/* 55*/ { "rm4scc", "1", NULL, 0, "symbology: 70," },
/* 56*/ { "DataMatrix", "1", NULL, 0, "symbology: 71," },
/* 57*/ { "EAN14", "1", NULL, 0, "symbology: 72," },
/* 58*/ { "vin", "12345678701234567", NULL, 0, "symbology: 73," },
/* 59*/ { "CodaBlock-F", "1", NULL, 0, "symbology: 74," },
/* 60*/ { "NVE18", "1", NULL, 0, "symbology: 75," },
/* 61*/ { "Japan Post", "1", NULL, 0, "symbology: 76," },
/* 62*/ { "Korea Post", "1", NULL, 0, "symbology: 77," },
/* 63*/ { "DBar Stk", "1", NULL, 0, "symbology: 79," },
/* 64*/ { "DBar Omn Stk", "1", NULL, 0, "symbology: 80," },
/* 65*/ { "DBar Exp Stk", "[20]01", NULL, 0, "symbology: 81," },
/* 66*/ { "planet", "12345678901", NULL, 0, "symbology: 82," },
/* 67*/ { "MicroPDF417", "1", NULL, 0, "symbology: 84," },
/* 68*/ { "USPS IMail", "12345678901234567890", NULL, 0, "symbology: 85," },
/* 69*/ { "plessey", "1", NULL, 0, "symbology: 86," },
/* 70*/ { "telepen num", "1", NULL, 0, "symbology: 87," },
/* 71*/ { "ITF14", "1", NULL, 0, "symbology: 89," },
/* 72*/ { "KIX", "1", NULL, 0, "symbology: 90," },
/* 73*/ { "Aztec", "1", NULL, 0, "symbology: 92," },
/* 74*/ { "daft", "D", NULL, 0, "symbology: 93," },
/* 75*/ { "DPD", "0123456789012345678901234567", NULL, 0, "symbology: 96," },
/* 76*/ { "Micro QR", "1", NULL, 0, "symbology: 97," },
/* 77*/ { "hibc128", "1", NULL, 0, "symbology: 98," },
/* 78*/ { "hibccode128", "1", NULL, 0, "symbology: 98," }, // Synonym
/* 79*/ { "hibc39", "1", NULL, 0, "symbology: 99," },
/* 80*/ { "hibccode39", "1", NULL, 0, "symbology: 99," }, // Synonym
/* 81*/ { "hibcdatamatrix", "1", NULL, 0, "symbology: 102," }, // Synonym
/* 82*/ { "hibcdm", "1", NULL, 0, "symbology: 102," },
/* 83*/ { "HIBC qr", "1", NULL, 0, "symbology: 104," },
/* 84*/ { "HIBC QR Code", "1", NULL, 0, "symbology: 104," }, // Synonym
/* 85*/ { "HIBCPDF", "1", NULL, 0, "symbology: 106," },
/* 86*/ { "HIBCPDF417", "1", NULL, 0, "symbology: 106," }, // Synonym
/* 87*/ { "HIBCMICPDF", "1", NULL, 0, "symbology: 108," },
/* 88*/ { "HIBC Micro PDF", "1", NULL, 0, "symbology: 108," }, // Synonym
/* 89*/ { "HIBC Micro PDF417", "1", NULL, 0, "symbology: 108," }, // Synonym
/* 90*/ { "HIBC BlockF", "1", NULL, 0, "symbology: 110," },
/* 91*/ { "HIBC CodaBlock-F", "1", NULL, 0, "symbology: 110," }, // Synonym
/* 92*/ { "HIBC Aztec", "1", NULL, 0, "symbology: 112," },
/* 93*/ { "DotCode", "1", NULL, 0, "symbology: 115," },
/* 94*/ { "Han Xin", "1", NULL, 0, "symbology: 116," },
/* 95*/ { "Mailmark", "01000000000000000AA00AA0A", NULL, 0, "symbology: 121," },
/* 96*/ { "azrune", "1", NULL, 0, "symbology: 128," },
/* 97*/ { "aztecrune", "1", NULL, 0, "symbology: 128," }, // Synonym
/* 98*/ { "aztecrunes", "1", NULL, 0, "symbology: 128," }, // Synonym
/* 99*/ { "code32", "1", NULL, 0, "symbology: 129," },
/*100*/ { "eanx cc", "[20]01", "1234567890128", 0, "symbology: 130," },
/*101*/ { "eancc", "[20]01", "1234567890128", 0, "symbology: 130," },
/*102*/ { "GS1 128 CC", "[01]12345678901231", "[20]01", 0, "symbology: 131," },
/*103*/ { "dbaromncc", "[20]01", "1234567890123", 0, "symbology: 132," },
/*104*/ { "dbarltdcc", "[20]01", "1234567890123", 0, "symbology: 133," },
/*105*/ { "dbarexpcc", "[20]01", "[01]12345678901231", 0, "symbology: 134," },
/*106*/ { "upcacc", "[20]01", "12345678901", 0, "symbology: 135," },
/*107*/ { "upcecc", "[20]01", "1234567", 0, "symbology: 136," },
/*108*/ { "dbar stk cc", "[20]01", "1234567890123", 0, "symbology: 137," },
/*109*/ { "dbaromnstkcc", "[20]01", "1234567890123", 0, "symbology: 138," },
/*110*/ { "dbarexpstkcc", "[20]01", "[01]12345678901231", 0, "symbology: 139," },
/*111*/ { "Channel", "1", NULL, 0, "symbology: 140," },
/*112*/ { "CodeOne", "1", NULL, 0, "symbology: 141," },
/*113*/ { "Grid Matrix", "1", NULL, 0, "symbology: 142," },
/*114*/ { "UPN QR", "1", NULL, 0, "symbology: 143," },
/*115*/ { "UPN QR Code", "1", NULL, 0, "symbology: 143," }, // Synonym
/*116*/ { "ultra", "1", NULL, 0, "symbology: 144," },
/*117*/ { "ultracode", "1", NULL, 0, "symbology: 144," }, // Synonym
/*118*/ { "rMQR", "1", NULL, 0, "symbology: 145," },
/*119*/ { "x", "1", NULL, 1, "Error 119: Invalid barcode type 'x'" },
/*120*/ { "\177", "1", NULL, 1, "Error 119: Invalid barcode type '\177'" },
/* 20*/ { "ean 128", "[01]12345678901231", NULL, 0, "symbology: 16," },
/* 21*/ { "coda bar", "A1B", NULL, 0, "symbology: 18," },
/* 22*/ { "DPLEIT", "1", NULL, 0, "symbology: 21," },
/* 23*/ { "DPIDENT", "1", NULL, 0, "symbology: 22," },
/* 24*/ { "code16k", "1", NULL, 0, "symbology: 23," },
/* 25*/ { "CODE49", "1", NULL, 0, "symbology: 24," },
/* 26*/ { "CODE93", "1", NULL, 0, "symbology: 25," },
/* 27*/ { "flat", "1", NULL, 0, "symbology: 28," },
/* 28*/ { "dbar omn", "1", NULL, 0, "symbology: 29," },
/* 29*/ { "rss14", "1", NULL, 0, "symbology: 29," },
/* 30*/ { "dbar ltd", "1", NULL, 0, "symbology: 30," },
/* 31*/ { "rss ltd", "1", NULL, 0, "symbology: 30," },
/* 32*/ { "dbarexp", "[10]12", NULL, 0, "symbology: 31," },
/* 33*/ { "rss exp", "[10]12", NULL, 0, "symbology: 31," },
/* 34*/ { "telepen", "1", NULL, 0, "symbology: 32," },
/* 35*/ { "upc", "1", NULL, 1, "Error 119: Invalid barcode type 'upc'" },
/* 36*/ { "upca", "1", NULL, 0, "symbology: 34," },
/* 37*/ { "upca_chk", "123456789012", NULL, 0, "symbology: 35," },
/* 38*/ { "upce", "1", NULL, 0, "symbology: 37," },
/* 39*/ { "upce chk", "12345670", NULL, 0, "symbology: 38," },
/* 40*/ { "POSTNET ", "12345678901", NULL, 0, "symbology: 40," },
/* 41*/ { "msi", "1", NULL, 0, "symbology: 47," },
/* 42*/ { "MSI Plessey ", "1", NULL, 0, "symbology: 47," },
/* 43*/ { "fim ", "A", NULL, 0, "symbology: 49," },
/* 44*/ { "LOGMARS", "123456", NULL, 0, "symbology: 50," },
/* 45*/ { " pharma", "123456", NULL, 0, "symbology: 51," },
/* 46*/ { " pzn ", "1", NULL, 0, "symbology: 52," },
/* 47*/ { "pharma two", "4", NULL, 0, "symbology: 53," },
/* 48*/ { "BARCODE_PDF417", "1", NULL, 0, "symbology: 55," },
/* 49*/ { "pdf", "1", NULL, 1, "Error 119: Invalid barcode type 'pdf'" },
/* 50*/ { "barcodepdf417comp", "1", NULL, 0, "symbology: 56," },
/* 51*/ { "pdf417trunc", "1", NULL, 0, "symbology: 56," },
/* 52*/ { "MaxiCode", "1", NULL, 0, "symbology: 57," },
/* 53*/ { "QR CODE", "1", NULL, 0, "symbology: 58," },
/* 54*/ { "qr", "1", NULL, 0, "symbology: 58," }, // Synonym
/* 55*/ { "Code 128 B", "1", NULL, 0, "symbology: 60," },
/* 56*/ { "AUS POST", "12345678901234567890123", NULL, 0, "symbology: 63," },
/* 57*/ { "AusReply", "12345678", NULL, 0, "symbology: 66," },
/* 58*/ { "AUSROUTE", "12345678", NULL, 0, "symbology: 67," },
/* 59*/ { "AUS REDIRECT", "12345678", NULL, 0, "symbology: 68," },
/* 60*/ { "isbnx", "123456789", NULL, 0, "symbology: 69," },
/* 61*/ { "rm4scc", "1", NULL, 0, "symbology: 70," },
/* 62*/ { "DataMatrix", "1", NULL, 0, "symbology: 71," },
/* 63*/ { "EAN14", "1", NULL, 0, "symbology: 72," },
/* 64*/ { "vin", "12345678701234567", NULL, 0, "symbology: 73," },
/* 65*/ { "CodaBlock-F", "1", NULL, 0, "symbology: 74," },
/* 66*/ { "NVE18", "1", NULL, 0, "symbology: 75," },
/* 67*/ { "Japan Post", "1", NULL, 0, "symbology: 76," },
/* 68*/ { "Korea Post", "1", NULL, 0, "symbology: 77," },
/* 69*/ { "DBar Stk", "1", NULL, 0, "symbology: 79," },
/* 70*/ { "rss14stack", "1", NULL, 0, "symbology: 79," },
/* 71*/ { "DBar Omn Stk", "1", NULL, 0, "symbology: 80," },
/* 72*/ { "RSS14STACK OMNI", "1", NULL, 0, "symbology: 80," },
/* 73*/ { "DBar Exp Stk", "[20]01", NULL, 0, "symbology: 81," },
/* 74*/ { "rss_expstack", "[20]01", NULL, 0, "symbology: 81," },
/* 75*/ { "planet", "12345678901", NULL, 0, "symbology: 82," },
/* 76*/ { "MicroPDF417", "1", NULL, 0, "symbology: 84," },
/* 77*/ { "USPS IMail", "12345678901234567890", NULL, 0, "symbology: 85," },
/* 78*/ { "OneCode", "12345678901234567890", NULL, 0, "symbology: 85," },
/* 79*/ { "plessey", "1", NULL, 0, "symbology: 86," },
/* 80*/ { "telepen num", "1", NULL, 0, "symbology: 87," },
/* 81*/ { "ITF14", "1", NULL, 0, "symbology: 89," },
/* 82*/ { "KIX", "1", NULL, 0, "symbology: 90," },
/* 83*/ { "Aztec", "1", NULL, 0, "symbology: 92," },
/* 84*/ { "daft", "D", NULL, 0, "symbology: 93," },
/* 85*/ { "DPD", "0123456789012345678901234567", NULL, 0, "symbology: 96," },
/* 86*/ { "Micro QR", "1", NULL, 0, "symbology: 97," },
/* 87*/ { "hibc128", "1", NULL, 0, "symbology: 98," },
/* 88*/ { "hibccode128", "1", NULL, 0, "symbology: 98," }, // Synonym
/* 89*/ { "hibc39", "1", NULL, 0, "symbology: 99," },
/* 90*/ { "hibccode39", "1", NULL, 0, "symbology: 99," }, // Synonym
/* 91*/ { "hibcdatamatrix", "1", NULL, 0, "symbology: 102," }, // Synonym
/* 92*/ { "hibcdm", "1", NULL, 0, "symbology: 102," },
/* 93*/ { "HIBC qr", "1", NULL, 0, "symbology: 104," },
/* 94*/ { "HIBC QR Code", "1", NULL, 0, "symbology: 104," }, // Synonym
/* 95*/ { "HIBCPDF", "1", NULL, 0, "symbology: 106," },
/* 96*/ { "HIBCPDF417", "1", NULL, 0, "symbology: 106," }, // Synonym
/* 97*/ { "HIBCMICPDF", "1", NULL, 0, "symbology: 108," },
/* 98*/ { "HIBC Micro PDF", "1", NULL, 0, "symbology: 108," }, // Synonym
/* 99*/ { "HIBC Micro PDF417", "1", NULL, 0, "symbology: 108," }, // Synonym
/*100*/ { "HIBC BlockF", "1", NULL, 0, "symbology: 110," },
/*101*/ { "HIBC CodaBlock-F", "1", NULL, 0, "symbology: 110," }, // Synonym
/*102*/ { "HIBC Aztec", "1", NULL, 0, "symbology: 112," },
/*103*/ { "DotCode", "1", NULL, 0, "symbology: 115," },
/*104*/ { "Han Xin", "1", NULL, 0, "symbology: 116," },
/*105*/ { "Mailmark", "01000000000000000AA00AA0A", NULL, 0, "symbology: 121," },
/*106*/ { "azrune", "1", NULL, 0, "symbology: 128," },
/*107*/ { "aztecrune", "1", NULL, 0, "symbology: 128," }, // Synonym
/*108*/ { "aztecrunes", "1", NULL, 0, "symbology: 128," }, // Synonym
/*109*/ { "code32", "1", NULL, 0, "symbology: 129," },
/*110*/ { "eanx cc", "[20]01", "1234567890128", 0, "symbology: 130," },
/*111*/ { "eancc", "[20]01", "1234567890128", 0, "symbology: 130," },
/*112*/ { "GS1 128 CC", "[01]12345678901231", "[20]01", 0, "symbology: 131," },
/*113*/ { "EAN128 CC", "[01]12345678901231", "[20]01", 0, "symbology: 131," },
/*114*/ { "dbaromncc", "[20]01", "1234567890123", 0, "symbology: 132," },
/*115*/ { "rss14 cc", "[20]01", "1234567890123", 0, "symbology: 132," },
/*116*/ { "dbarltdcc", "[20]01", "1234567890123", 0, "symbology: 133," },
/*117*/ { "rss ltd cc", "[20]01", "1234567890123", 0, "symbology: 133," },
/*118*/ { "dbarexpcc", "[20]01", "[01]12345678901231", 0, "symbology: 134," },
/*119*/ { "rss exp cc", "[20]01", "[01]12345678901231", 0, "symbology: 134," },
/*120*/ { "upcacc", "[20]01", "12345678901", 0, "symbology: 135," },
/*121*/ { "upcecc", "[20]01", "1234567", 0, "symbology: 136," },
/*122*/ { "dbar stk cc", "[20]01", "1234567890123", 0, "symbology: 137," },
/*123*/ { "rss14stackcc", "[20]01", "1234567890123", 0, "symbology: 137," },
/*124*/ { "dbaromnstkcc", "[20]01", "1234567890123", 0, "symbology: 138," },
/*125*/ { "BARCODE_RSS14_OMNI_CC", "[20]01", "1234567890123", 0, "symbology: 138," },
/*126*/ { "dbarexpstkcc", "[20]01", "[01]12345678901231", 0, "symbology: 139," },
/*127*/ { "RSS EXPSTACK CC", "[20]01", "[01]12345678901231", 0, "symbology: 139," },
/*128*/ { "Channel", "1", NULL, 0, "symbology: 140," },
/*129*/ { "CodeOne", "1", NULL, 0, "symbology: 141," },
/*130*/ { "Grid Matrix", "1", NULL, 0, "symbology: 142," },
/*131*/ { "UPN QR", "1", NULL, 0, "symbology: 143," },
/*132*/ { "UPN QR Code", "1", NULL, 0, "symbology: 143," }, // Synonym
/*133*/ { "ultra", "1", NULL, 0, "symbology: 144," },
/*134*/ { "ultracode", "1", NULL, 0, "symbology: 144," }, // Synonym
/*135*/ { "rMQR", "1", NULL, 0, "symbology: 145," },
/*136*/ { "x", "1", NULL, 1, "Error 119: Invalid barcode type 'x'" },
/*137*/ { "\177", "1", NULL, 1, "Error 119: Invalid barcode type '\177'" },
};
int data_size = ARRAY_SIZE(data);
int i;
@ -994,51 +1011,57 @@ static void test_other_opts(int index, int debug) {
char *opt_data;
char *expected;
int strstr_cmp;
};
// s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<"))
struct item data[] = {
/* 0*/ { BARCODE_CODE128, "1", -1, " --bg=", "EF9900", "" },
/* 1*/ { BARCODE_CODE128, "1", -1, " -bg=", "EF9900", "" },
/* 2*/ { BARCODE_CODE128, "1", -1, " --bg=", "EF9900AA", "" },
/* 3*/ { BARCODE_CODE128, "1", -1, " --bg=", "GF9900", "Error 654: Malformed background colour 'GF9900' (hexadecimal only)" },
/* 4*/ { BARCODE_CODE128, "1", -1, " --fg=", "000000", "" },
/* 5*/ { BARCODE_CODE128, "1", -1, " --fg=", "00000000", "" },
/* 6*/ { BARCODE_CODE128, "1", -1, " --fg=", "000000F", "Error 651: Malformed foreground colour (6 or 8 characters only)" },
/* 7*/ { BARCODE_CODE128, "1", -1, " --fg=", "000000FG", "Error 653: Malformed foreground colour '000000FG' (hexadecimal only)" },
/* 8*/ { BARCODE_CODE128, "1", -1, " --compliantheight", "", "" },
/* 9*/ { BARCODE_CODE128, "1", -1, " --fontsize=", "10", "" },
/* 10*/ { BARCODE_CODE128, "1", -1, " --fontsize=", "101", "Warning 126: Font size out of range (0 to 100), ignoring" },
/* 11*/ { BARCODE_CODE128, "1", -1, " --nobackground", "", "" },
/* 12*/ { BARCODE_CODE128, "1", -1, " --noquietzones", "", "" },
/* 13*/ { BARCODE_CODE128, "1", -1, " --notext", "", "" },
/* 14*/ { BARCODE_CODE128, "1", -1, " --quietzones", "", "" },
/* 15*/ { BARCODE_CODE128, "1", -1, " --reverse", "", "" },
/* 16*/ { BARCODE_CODE128, "1", -1, " --werror", NULL, "" },
/* 17*/ { 19, "1", -1, " --werror", NULL, "Error 207: Codabar 18 not supported" },
/* 18*/ { BARCODE_GS1_128, "[01]12345678901231", -1, "", NULL, "" },
/* 19*/ { BARCODE_GS1_128, "0112345678901231", -1, "", NULL, "Error 252: Data does not start with an AI" },
/* 20*/ { BARCODE_GS1_128, "0112345678901231", -1, " --gs1nocheck", NULL, "Error 252: Data does not start with an AI" },
/* 21*/ { BARCODE_GS1_128, "[00]376104250021234569", -1, "", NULL, "" },
/* 22*/ { BARCODE_GS1_128, "[00]376104250021234568", -1, "", NULL, "Warning 261: AI (00) position 18: Bad checksum '8', expected '9'" },
/* 23*/ { BARCODE_GS1_128, "[00]376104250021234568", -1, " --gs1nocheck", NULL, "" },
/* 24*/ { BARCODE_GS1_128, "[00]376104250021234568", -1, " --werror", NULL, "Error 261: AI (00) position 18: Bad checksum '8', expected '9'" },
/* 25*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "1", "Error 155: Invalid Structured Append argument, expect \"index,count[,ID]\"" },
/* 26*/ { BARCODE_AZTEC, "1", -1, " --structapp=", ",", "Error 156: Structured Append index too short" },
/* 27*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "1234567890,", "Error 156: Structured Append index too long" },
/* 28*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "123456789,", "Error 159: Structured Append count too short" },
/* 29*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "123456789,1234567890", "Error 159: Structured Append count too long" },
/* 30*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "123456789,123456789,", "Error 158: Structured Append ID too short" },
/* 31*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "123456789,1234567890,", "Error 157: Structured Append count too long" },
/* 32*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "123456789,123456789,123456789012345678901234567890123", "Error 158: Structured Append ID too long" },
/* 33*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "123456789,123456789,12345678901234567890123456789012", "Error 701: Structured Append count out of range (2-26)" },
/* 34*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "26,26,12345678901234567890123456789012", "" },
/* 35*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "A,26,12345678901234567890123456789012", "Error 160: Invalid Structured Append index (digits only)" },
/* 36*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "26,A,12345678901234567890123456789012", "Error 161: Invalid Structured Append count (digits only)" },
/* 37*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "26,1,12345678901234567890123456789012", "Error 162: Invalid Structured Append count, must be >= 2" },
/* 38*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "0,2,12345678901234567890123456789012", "Error 163: Structured Append index out of range (1-2)" },
/* 39*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "3,2,12345678901234567890123456789012", "Error 163: Structured Append index out of range (1-2)" },
/* 40*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "2,3,12345678901234567890123456789012", "" },
/* 41*/ { BARCODE_PDF417, "1", -1, " --heightperrow", "", "" },
/* 0*/ { BARCODE_CODE128, "1", -1, " --bg=", "EF9900", "", 0 },
/* 1*/ { BARCODE_CODE128, "1", -1, " -bg=", "EF9900", "", 0 },
/* 2*/ { BARCODE_CODE128, "1", -1, " --bg=", "EF9900AA", "", 0 },
/* 3*/ { BARCODE_CODE128, "1", -1, " --bg=", "GF9900", "Error 654: Malformed background colour 'GF9900' (hexadecimal only)", 0 },
/* 4*/ { BARCODE_CODE128, "1", -1, " --fg=", "000000", "", 0 },
/* 5*/ { BARCODE_CODE128, "1", -1, " --fg=", "00000000", "", 0 },
/* 6*/ { BARCODE_CODE128, "1", -1, " --fg=", "000000F", "Error 651: Malformed foreground colour (6 or 8 characters only)", 0 },
/* 7*/ { BARCODE_CODE128, "1", -1, " --fg=", "000000FG", "Error 653: Malformed foreground colour '000000FG' (hexadecimal only)", 0 },
/* 8*/ { BARCODE_CODE128, "1", -1, " --compliantheight", "", "", 0 },
/* 9*/ { BARCODE_CODE128, "1", -1, " --fontsize=", "10", "", 0 },
/* 10*/ { BARCODE_CODE128, "1", -1, " --fontsize=", "101", "Warning 126: Font size out of range (0 to 100), ignoring", 0 },
/* 11*/ { BARCODE_CODE128, "1", -1, " --nobackground", "", "", 0 },
/* 12*/ { BARCODE_CODE128, "1", -1, " --noquietzones", "", "", 0 },
/* 13*/ { BARCODE_CODE128, "1", -1, " --notext", "", "", 0 },
/* 14*/ { BARCODE_CODE128, "1", -1, " --quietzones", "", "", 0 },
/* 15*/ { BARCODE_CODE128, "1", -1, " --reverse", "", "", 0 },
/* 16*/ { BARCODE_CODE128, "1", -1, " --werror", NULL, "", 0 },
/* 17*/ { 19, "1", -1, " --werror", NULL, "Error 207: Codabar 18 not supported", 0 },
/* 18*/ { BARCODE_GS1_128, "[01]12345678901231", -1, "", NULL, "", 0 },
/* 19*/ { BARCODE_GS1_128, "0112345678901231", -1, "", NULL, "Error 252: Data does not start with an AI", 0 },
/* 20*/ { BARCODE_GS1_128, "0112345678901231", -1, " --gs1nocheck", NULL, "Error 252: Data does not start with an AI", 0 },
/* 21*/ { BARCODE_GS1_128, "[00]376104250021234569", -1, "", NULL, "", 0 },
/* 22*/ { BARCODE_GS1_128, "[00]376104250021234568", -1, "", NULL, "Warning 261: AI (00) position 18: Bad checksum '8', expected '9'", 0 },
/* 23*/ { BARCODE_GS1_128, "[00]376104250021234568", -1, " --gs1nocheck", NULL, "", 0 },
/* 24*/ { BARCODE_GS1_128, "[00]376104250021234568", -1, " --werror", NULL, "Error 261: AI (00) position 18: Bad checksum '8', expected '9'", 0 },
/* 25*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "1", "Error 155: Invalid Structured Append argument, expect \"index,count[,ID]\"", 0 },
/* 26*/ { BARCODE_AZTEC, "1", -1, " --structapp=", ",", "Error 156: Structured Append index too short", 0 },
/* 27*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "1234567890,", "Error 156: Structured Append index too long", 0 },
/* 28*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "123456789,", "Error 159: Structured Append count too short", 0 },
/* 29*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "123456789,1234567890", "Error 159: Structured Append count too long", 0 },
/* 30*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "123456789,123456789,", "Error 158: Structured Append ID too short", 0 },
/* 31*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "123456789,1234567890,", "Error 157: Structured Append count too long", 0 },
/* 32*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "123456789,123456789,123456789012345678901234567890123", "Error 158: Structured Append ID too long", 0 },
/* 33*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "123456789,123456789,12345678901234567890123456789012", "Error 701: Structured Append count out of range (2-26)", 0 },
/* 34*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "26,26,12345678901234567890123456789012", "", 0 },
/* 35*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "A,26,12345678901234567890123456789012", "Error 160: Invalid Structured Append index (digits only)", 0 },
/* 36*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "26,A,12345678901234567890123456789012", "Error 161: Invalid Structured Append count (digits only)", 0 },
/* 37*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "26,1,12345678901234567890123456789012", "Error 162: Invalid Structured Append count, must be >= 2", 0 },
/* 38*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "0,2,12345678901234567890123456789012", "Error 163: Structured Append index out of range (1-2)", 0 },
/* 39*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "3,2,12345678901234567890123456789012", "Error 163: Structured Append index out of range (1-2)", 0 },
/* 40*/ { BARCODE_AZTEC, "1", -1, " --structapp=", "2,3,12345678901234567890123456789012", "", 0 },
/* 41*/ { BARCODE_PDF417, "1", -1, " --heightperrow", "", "", 0 },
/* 42*/ { -1, NULL, -1, " -v", NULL, "Zint version ", 1 },
/* 43*/ { -1, NULL, -1, " --version", NULL, "Zint version ", 1 },
/* 44*/ { -1, NULL, -1, " -h", NULL, "Encode input data in a barcode ", 1 },
/* 45*/ { -1, NULL, -1, " -e", NULL, "3: ISO/IEC 8859-1 ", 1 },
/* 46*/ { -1, NULL, -1, " -t", NULL, "1 CODE11 ", 1 },
};
int data_size = ARRAY_SIZE(data);
int i;
@ -1066,7 +1089,11 @@ static void test_other_opts(int index, int debug) {
strcat(cmd, " 2>&1");
assert_nonnull(exec(cmd, buf, sizeof(buf) - 1, debug, i), "i:%d exec(%s) NULL\n", i, cmd);
assert_zero(strcmp(buf, data[i].expected), "i:%d buf (%s) != expected (%s) (%s)\n", i, buf, data[i].expected, cmd);
if (data[i].strstr_cmp) {
assert_nonnull(strstr(buf, data[i].expected), "i:%d strstr buf (%s) != expected (%s) (%s)\n", i, buf, data[i].expected, cmd);
} else {
assert_zero(strcmp(buf, data[i].expected), "i:%d strcmp buf (%s) != expected (%s) (%s)\n", i, buf, data[i].expected, cmd);
}
}
testFinish();