From e18b047a45707f87c6fab49bcd74bcdf78ba5a4c Mon Sep 17 00:00:00 2001 From: gitlost Date: Thu, 5 Jun 2025 13:48:50 +0100 Subject: [PATCH] gs1: update to latest gs1-syntax-dictionary (key -> gcppos1, keyoff1 -> gcppos2) --- backend/gs1.c | 6 +- backend/gs1_lint.h | 134 ++++++++++++++++----------------- backend/tools/gen_gs1_lint.php | 2 +- docs/README | 12 +-- docs/zint.1 | 2 +- 5 files changed, 78 insertions(+), 78 deletions(-) diff --git a/backend/gs1.c b/backend/gs1.c index 353cec80..0677ac20 100644 --- a/backend/gs1.c +++ b/backend/gs1.c @@ -278,7 +278,7 @@ static int gs1_csumalpha(const unsigned char *data, int data_len, int offset, in #define GS1_GCP_MIN_LENGTH 4 /* Minimum length of GS1 Company Prefix */ /* Check for a GS1 Prefix (GS1 General Specifications GS1 1.4.2) */ -static int gs1_key(const unsigned char *data, int data_len, int offset, int min, int max, int *p_err_no, +static int gs1_gcppos1(const unsigned char *data, int data_len, int offset, int min, int max, int *p_err_no, int *p_err_posn, char err_msg[50], const int length_only) { (void)max; @@ -317,10 +317,10 @@ static int gs1_key(const unsigned char *data, int data_len, int offset, int min, } /* Check for a GS1 Prefix at offset 1 (2nd position) */ -static int gs1_keyoff1(const unsigned char *data, int data_len, int offset, int min, int max, int *p_err_no, +static int gs1_gcppos2(const unsigned char *data, int data_len, int offset, int min, int max, int *p_err_no, int *p_err_posn, char err_msg[50], const int length_only) { - return gs1_key(data, data_len, offset + 1, min - 1, max - 1, p_err_no, p_err_posn, err_msg, length_only); + return gs1_gcppos1(data, data_len, offset + 1, min - 1, max - 1, p_err_no, p_err_posn, err_msg, length_only); } /* Note following date/time checkers (!length_only) assume data all digits, i.e. `numeric()` has succeeded */ diff --git a/backend/gs1_lint.h b/backend/gs1_lint.h index 3cd8c416..6846f97d 100644 --- a/backend/gs1_lint.h +++ b/backend/gs1_lint.h @@ -36,26 +36,26 @@ #ifndef Z_GS1_LINT_H #define Z_GS1_LINT_H -/* N18,csum,keyoff1 (Used by SSCC) */ -static int gs1_n18_csum_keyoff1(const unsigned char *data, +/* N18,csum,gcppos2 (Used by SSCC) */ +static int gs1_n18_csum_gcppos2(const unsigned char *data, const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) { return data_len == 18 && gs1_csum(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) - && gs1_keyoff1(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) + && gs1_gcppos2(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && gs1_numeric(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg) && gs1_csum(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg, 0) - && gs1_keyoff1(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg, 0); + && gs1_gcppos2(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg, 0); } -/* N14,csum,keyoff1 (Used by GTIN, CONTENT, MTO GTIN) */ -static int gs1_n14_csum_keyoff1(const unsigned char *data, +/* N14,csum,gcppos2 (Used by GTIN, CONTENT, MTO GTIN) */ +static int gs1_n14_csum_gcppos2(const unsigned char *data, const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) { return data_len == 14 && gs1_csum(data, data_len, 0, 14, 14, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) - && gs1_keyoff1(data, data_len, 0, 14, 14, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) + && gs1_gcppos2(data, data_len, 0, 14, 14, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && gs1_numeric(data, data_len, 0, 14, 14, p_err_no, p_err_posn, err_msg) && gs1_csum(data, data_len, 0, 14, 14, p_err_no, p_err_posn, err_msg, 0) - && gs1_keyoff1(data, data_len, 0, 14, 14, p_err_no, p_err_posn, err_msg, 0); + && gs1_gcppos2(data, data_len, 0, 14, 14, p_err_no, p_err_posn, err_msg, 0); } /* X..20 (Used by BATCH/LOT, SERIAL, CPV, PCN, GLN EXTENSION COMPONENT, SHIP TO POST, RTN TO POST, REFURB LOT, ...) */ @@ -102,27 +102,27 @@ static int gs1_n__6(const unsigned char *data, && gs1_numeric(data, data_len, 0, 1, 6, p_err_no, p_err_posn, err_msg); } -/* N13,csum,key [X..17] (Used by GDTI) */ -static int gs1_n13_csum_key__x__17_(const unsigned char *data, +/* N13,csum,gcppos1 [X..17] (Used by GDTI) */ +static int gs1_n13_csum_gcppos1__x__17_(const unsigned char *data, const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) { return data_len >= 13 && data_len <= 30 && gs1_csum(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) - && gs1_key(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) + && gs1_gcppos1(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && gs1_numeric(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg) && gs1_csum(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 0) - && gs1_key(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 0) + && gs1_gcppos1(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 0) && gs1_cset82(data, data_len, 13, 0, 17, p_err_no, p_err_posn, err_msg); } -/* N13,csum,key [N..12] (Used by GCN) */ -static int gs1_n13_csum_key__n__12_(const unsigned char *data, +/* N13,csum,gcppos1 [N..12] (Used by GCN) */ +static int gs1_n13_csum_gcppos1__n__12_(const unsigned char *data, const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) { return data_len >= 13 && data_len <= 25 && gs1_csum(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) - && gs1_key(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) + && gs1_gcppos1(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && gs1_numeric(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg) && gs1_csum(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 0) - && gs1_key(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 0) + && gs1_gcppos1(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 0) && gs1_numeric(data, data_len, 13, 0, 12, p_err_no, p_err_posn, err_msg); } @@ -164,35 +164,35 @@ static int gs1_n4(const unsigned char *data, && gs1_numeric(data, data_len, 0, 4, 4, p_err_no, p_err_posn, err_msg); } -/* X..30,key (Used by GINC, GIAI - ASSEMBLY, GIAI) */ -static int gs1_x__30_key(const unsigned char *data, +/* X..30,gcppos1 (Used by GINC, GIAI - ASSEMBLY, GIAI) */ +static int gs1_x__30_gcppos1(const unsigned char *data, const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) { return data_len >= 1 && data_len <= 30 - && gs1_key(data, data_len, 0, 1, 30, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) + && gs1_gcppos1(data, data_len, 0, 1, 30, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && gs1_cset82(data, data_len, 0, 1, 30, p_err_no, p_err_posn, err_msg) - && gs1_key(data, data_len, 0, 1, 30, p_err_no, p_err_posn, err_msg, 0); + && gs1_gcppos1(data, data_len, 0, 1, 30, p_err_no, p_err_posn, err_msg, 0); } -/* N17,csum,key (Used by GSIN) */ -static int gs1_n17_csum_key(const unsigned char *data, +/* N17,csum,gcppos1 (Used by GSIN) */ +static int gs1_n17_csum_gcppos1(const unsigned char *data, const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) { return data_len == 17 && gs1_csum(data, data_len, 0, 17, 17, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) - && gs1_key(data, data_len, 0, 17, 17, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) + && gs1_gcppos1(data, data_len, 0, 17, 17, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && gs1_numeric(data, data_len, 0, 17, 17, p_err_no, p_err_posn, err_msg) && gs1_csum(data, data_len, 0, 17, 17, p_err_no, p_err_posn, err_msg, 0) - && gs1_key(data, data_len, 0, 17, 17, p_err_no, p_err_posn, err_msg, 0); + && gs1_gcppos1(data, data_len, 0, 17, 17, p_err_no, p_err_posn, err_msg, 0); } -/* N13,csum,key (Used by SHIP TO LOC, BILL TO, PURCHASE FROM, SHIP FOR LOC, LOC No., PAY TO, PROD/SERV LOC, PARTY) */ -static int gs1_n13_csum_key(const unsigned char *data, +/* N13,csum,gcppos1 (Used by SHIP TO LOC, BILL TO, PURCHASE FROM, SHIP FOR LOC, LOC No., PAY TO, PROD/SERV LOC,...) */ +static int gs1_n13_csum_gcppos1(const unsigned char *data, const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) { return data_len == 13 && gs1_csum(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) - && gs1_key(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) + && gs1_gcppos1(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && gs1_numeric(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg) && gs1_csum(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 0) - && gs1_key(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 0); + && gs1_gcppos1(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 0); } /* N3,iso3166 X..9 (Used by SHIP TO POST) */ @@ -523,31 +523,31 @@ static int gs1_n4_nonzero_n5_nonzero_n3_nonzero_n1_winding_n1(const unsigned cha && gs1_numeric(data, data_len, 13, 1, 1, p_err_no, p_err_posn, err_msg); } -/* N1,zero N13,csum,key [X..16] (Used by GRAI) */ -static int gs1_n1_zero_n13_csum_key__x__16_(const unsigned char *data, +/* N1,zero N13,csum,gcppos1 [X..16] (Used by GRAI) */ +static int gs1_n1_zero_n13_csum_gcppos1__x__16_(const unsigned char *data, const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) { return data_len >= 14 && data_len <= 30 && gs1_zero(data, data_len, 0, 1, 1, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && gs1_csum(data, data_len, 1, 13, 13, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) - && gs1_key(data, data_len, 1, 13, 13, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) + && gs1_gcppos1(data, data_len, 1, 13, 13, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && gs1_numeric(data, data_len, 0, 1, 1, p_err_no, p_err_posn, err_msg) && gs1_zero(data, data_len, 0, 1, 1, p_err_no, p_err_posn, err_msg, 0) && gs1_numeric(data, data_len, 1, 13, 13, p_err_no, p_err_posn, err_msg) && gs1_csum(data, data_len, 1, 13, 13, p_err_no, p_err_posn, err_msg, 0) - && gs1_key(data, data_len, 1, 13, 13, p_err_no, p_err_posn, err_msg, 0) + && gs1_gcppos1(data, data_len, 1, 13, 13, p_err_no, p_err_posn, err_msg, 0) && gs1_cset82(data, data_len, 14, 0, 16, p_err_no, p_err_posn, err_msg); } -/* N14,csum,keyoff1 N4,pieceoftotal (Used by ITIP, ITIP CONTENT) */ -static int gs1_n14_csum_keyoff1_n4_pieceoftotal(const unsigned char *data, +/* N14,csum,gcppos2 N4,pieceoftotal (Used by ITIP, ITIP CONTENT) */ +static int gs1_n14_csum_gcppos2_n4_pieceoftotal(const unsigned char *data, const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) { return data_len == 18 && gs1_csum(data, data_len, 0, 14, 14, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) - && gs1_keyoff1(data, data_len, 0, 14, 14, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) + && gs1_gcppos2(data, data_len, 0, 14, 14, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && gs1_pieceoftotal(data, data_len, 14, 4, 4, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && gs1_numeric(data, data_len, 0, 14, 14, p_err_no, p_err_posn, err_msg) && gs1_csum(data, data_len, 0, 14, 14, p_err_no, p_err_posn, err_msg, 0) - && gs1_keyoff1(data, data_len, 0, 14, 14, p_err_no, p_err_posn, err_msg, 0) + && gs1_gcppos2(data, data_len, 0, 14, 14, p_err_no, p_err_posn, err_msg, 0) && gs1_numeric(data, data_len, 14, 4, 4, p_err_no, p_err_posn, err_msg) && gs1_pieceoftotal(data, data_len, 14, 4, 4, p_err_no, p_err_posn, err_msg, 0); } @@ -586,13 +586,13 @@ static int gs1_x__50(const unsigned char *data, && gs1_cset82(data, data_len, 0, 1, 50, p_err_no, p_err_posn, err_msg); } -/* Y..30,key (Used by CPID) */ -static int gs1_y__30_key(const unsigned char *data, +/* Y..30,gcppos1 (Used by CPID) */ +static int gs1_y__30_gcppos1(const unsigned char *data, const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) { return data_len >= 1 && data_len <= 30 - && gs1_key(data, data_len, 0, 1, 30, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) + && gs1_gcppos1(data, data_len, 0, 1, 30, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && gs1_cset39(data, data_len, 0, 1, 30, p_err_no, p_err_posn, err_msg) - && gs1_key(data, data_len, 0, 1, 30, p_err_no, p_err_posn, err_msg, 0); + && gs1_gcppos1(data, data_len, 0, 1, 30, p_err_no, p_err_posn, err_msg, 0); } /* N..12,nozeroprefix (Used by CPID SERIAL) */ @@ -604,39 +604,39 @@ static int gs1_n__12_nozeroprefix(const unsigned char *data, && gs1_nozeroprefix(data, data_len, 0, 1, 12, p_err_no, p_err_posn, err_msg, 0); } -/* X..25,csumalpha,key (Used by GMN) */ -static int gs1_x__25_csumalpha_key(const unsigned char *data, +/* X..25,csumalpha,gcppos1 (Used by GMN) */ +static int gs1_x__25_csumalpha_gcppos1(const unsigned char *data, const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) { return data_len >= 1 && data_len <= 25 && gs1_csumalpha(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) - && gs1_key(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) + && gs1_gcppos1(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && gs1_cset82(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg) && gs1_csumalpha(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg, 0) - && gs1_key(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg, 0); + && gs1_gcppos1(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg, 0); } -/* X..25,csumalpha,key,hasnondigit (Used by MUDI) */ -static int gs1_x__25_csumalpha_key_hasnondigit(const unsigned char *data, +/* X..25,csumalpha,gcppos1,hasnondigit (Used by MUDI) */ +static int gs1_x__25_csumalpha_gcppos1_hasnondigit(const unsigned char *data, const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) { return data_len >= 1 && data_len <= 25 && gs1_csumalpha(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) - && gs1_key(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) + && gs1_gcppos1(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && gs1_hasnondigit(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && gs1_cset82(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg) && gs1_csumalpha(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg, 0) - && gs1_key(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg, 0) + && gs1_gcppos1(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg, 0) && gs1_hasnondigit(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg, 0); } -/* N18,csum,key (Used by GSRN - PROVIDER, GSRN - RECIPIENT) */ -static int gs1_n18_csum_key(const unsigned char *data, +/* N18,csum,gcppos1 (Used by GSRN - PROVIDER, GSRN - RECIPIENT) */ +static int gs1_n18_csum_gcppos1(const unsigned char *data, const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) { return data_len == 18 && gs1_csum(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) - && gs1_key(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) + && gs1_gcppos1(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && gs1_numeric(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg) && gs1_csum(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg, 0) - && gs1_key(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg, 0); + && gs1_gcppos1(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg, 0); } /* N..10 (Used by SRIN) */ @@ -695,10 +695,10 @@ static int gs1_lint(const int ai, const unsigned char *data, const int data_len, if (ai < 100) { if (ai == 0) { - return gs1_n18_csum_keyoff1(data, data_len, p_err_no, p_err_posn, err_msg); + return gs1_n18_csum_gcppos2(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai >= 1 && ai <= 3) { - return gs1_n14_csum_keyoff1(data, data_len, p_err_no, p_err_posn, err_msg); + return gs1_n14_csum_gcppos2(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 10 || ai == 21 || ai == 22) { return gs1_x__20(data, data_len, p_err_no, p_err_posn, err_msg); @@ -734,10 +734,10 @@ static int gs1_lint(const int ai, const unsigned char *data, const int data_len, return gs1_x__20(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 253) { - return gs1_n13_csum_key__x__17_(data, data_len, p_err_no, p_err_posn, err_msg); + return gs1_n13_csum_gcppos1__x__17_(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 255) { - return gs1_n13_csum_key__n__12_(data, data_len, p_err_no, p_err_posn, err_msg); + return gs1_n13_csum_gcppos1__n__12_(data, data_len, p_err_no, p_err_posn, err_msg); } } else if (ai < 500) { @@ -746,13 +746,13 @@ static int gs1_lint(const int ai, const unsigned char *data, const int data_len, return gs1_x__30(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 401) { - return gs1_x__30_key(data, data_len, p_err_no, p_err_posn, err_msg); + return gs1_x__30_gcppos1(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 402) { - return gs1_n17_csum_key(data, data_len, p_err_no, p_err_posn, err_msg); + return gs1_n17_csum_gcppos1(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai >= 410 && ai <= 417) { - return gs1_n13_csum_key(data, data_len, p_err_no, p_err_posn, err_msg); + return gs1_n13_csum_gcppos1(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 420) { return gs1_x__20(data, data_len, p_err_no, p_err_posn, err_msg); @@ -912,7 +912,7 @@ static int gs1_lint(const int ai, const unsigned char *data, const int data_len, return gs1_x__20(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 7023) { - return gs1_x__30_key(data, data_len, p_err_no, p_err_posn, err_msg); + return gs1_x__30_gcppos1(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai >= 7030 && ai <= 7039) { return gs1_n3_iso3166999_x__27(data, data_len, p_err_no, p_err_posn, err_msg); @@ -972,16 +972,16 @@ static int gs1_lint(const int ai, const unsigned char *data, const int data_len, return gs1_x__20(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 8003) { - return gs1_n1_zero_n13_csum_key__x__16_(data, data_len, p_err_no, p_err_posn, err_msg); + return gs1_n1_zero_n13_csum_gcppos1__x__16_(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 8004) { - return gs1_x__30_key(data, data_len, p_err_no, p_err_posn, err_msg); + return gs1_x__30_gcppos1(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 8005) { return gs1_n6(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 8006 || ai == 8026) { - return gs1_n14_csum_keyoff1_n4_pieceoftotal(data, data_len, p_err_no, p_err_posn, err_msg); + return gs1_n14_csum_gcppos2_n4_pieceoftotal(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 8007) { return gs1_x__34_iban(data, data_len, p_err_no, p_err_posn, err_msg); @@ -993,19 +993,19 @@ static int gs1_lint(const int ai, const unsigned char *data, const int data_len, return gs1_x__50(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 8010) { - return gs1_y__30_key(data, data_len, p_err_no, p_err_posn, err_msg); + return gs1_y__30_gcppos1(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 8011) { return gs1_n__12_nozeroprefix(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 8013) { - return gs1_x__25_csumalpha_key(data, data_len, p_err_no, p_err_posn, err_msg); + return gs1_x__25_csumalpha_gcppos1(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 8014) { - return gs1_x__25_csumalpha_key_hasnondigit(data, data_len, p_err_no, p_err_posn, err_msg); + return gs1_x__25_csumalpha_gcppos1_hasnondigit(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 8017 || ai == 8018) { - return gs1_n18_csum_key(data, data_len, p_err_no, p_err_posn, err_msg); + return gs1_n18_csum_gcppos1(data, data_len, p_err_no, p_err_posn, err_msg); } if (ai == 8019) { return gs1_n__10(data, data_len, p_err_no, p_err_posn, err_msg); diff --git a/backend/tools/gen_gs1_lint.php b/backend/tools/gen_gs1_lint.php index 18f5897d..c38315d1 100644 --- a/backend/tools/gen_gs1_lint.php +++ b/backend/tools/gen_gs1_lint.php @@ -56,7 +56,7 @@ foreach ($lines as $line) { if ($line === '' || $line[0] === '#') { continue; } - if (!preg_match('/^([0-9]+(?:-[0-9]+)?) +([ *?]* )([NXYZ][0-9.][ NXYZ0-9.,a-z=|+\[\]]*)(?:# (.+))?$/', + if (!preg_match('/^([0-9]+(?:-[0-9]+)?) +([ *!?]* )([NXYZ][0-9.][ NXYZ0-9.,a-z=|+\[\]]*)(?:# (.+))?$/', $line, $matches)) { print $line . PHP_EOL; exit("$basename:" . __LINE__ . " ERROR: Could not parse line $line_no" . PHP_EOL); diff --git a/docs/README b/docs/README index c64777cc..669092fc 100644 --- a/docs/README +++ b/docs/README @@ -1,11 +1,11 @@ -% docs/README 2025-05-24 +% docs/README 2025-06-05 For generation of "docs/manual.pdf" and "docs/manual.txt" from "manual.pmd" using a recent version of pandoc On Ubuntu/Debian (tested on Ubuntu 22.04 and Ubuntu 24.04) - wget https://github.com/jgm/pandoc/releases/download/3.7.0.1/pandoc-3.7.0.1-1-amd64.deb - sudo dpkg -i pandoc-3.7.0.1-1-amd64.deb + wget https://github.com/jgm/pandoc/releases/download/3.7.0.2/pandoc-3.7.0.2-1-amd64.deb + sudo dpkg -i pandoc-3.7.0.2-1-amd64.deb For Ubuntu 22.04 (python < 3.12) sudo apt install python3-pip pip install pandoc-tablenos --user @@ -27,9 +27,9 @@ Then On Fedora (tested on Fedora Linux 38 (Workstation Edition) and Fedora Linux 40 (Workstation Edition)) - wget https://github.com/jgm/pandoc/releases/download/3.7.0.1/pandoc-3.7.0.1-linux-amd64.tar.gz - tar xf pandoc-3.7.0.1-linux-amd64.tar.gz - sudo mv -i pandoc-3.7.0.1/bin/pandoc /usr/local/bin + wget https://github.com/jgm/pandoc/releases/download/3.7.0.2/pandoc-3.7.0.2-linux-amd64.tar.gz + tar xf pandoc-3.7.0.2-linux-amd64.tar.gz + sudo mv -i pandoc-3.7.0.2/bin/pandoc /usr/local/bin sudo dnf install python3-pip pip install pandoc-tablenos --user export PATH=~/.local/bin:"$PATH" diff --git a/docs/zint.1 b/docs/zint.1 index eb916c48..b7e0d46d 100644 --- a/docs/zint.1 +++ b/docs/zint.1 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pandoc 3.7.0.1 +.\" Automatically generated by Pandoc 3.7.0.2 .\" .TH "ZINT" "1" "April 2025" "Version 2.15.0.9" .SH NAME