1
0
mirror of https://git.code.sf.net/p/zint/code synced 2025-12-18 18:37:07 +00:00

gs1: update to latest gs1-syntax-dictionary (key -> gcppos1,

keyoff1 -> gcppos2)
This commit is contained in:
gitlost
2025-06-05 13:48:50 +01:00
parent 766fbd98bb
commit e18b047a45
5 changed files with 78 additions and 78 deletions

View File

@@ -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 */ #define GS1_GCP_MIN_LENGTH 4 /* Minimum length of GS1 Company Prefix */
/* Check for a GS1 Prefix (GS1 General Specifications GS1 1.4.2) */ /* 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) { int *p_err_posn, char err_msg[50], const int length_only) {
(void)max; (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) */ /* 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) { 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 */ /* Note following date/time checkers (!length_only) assume data all digits, i.e. `numeric()` has succeeded */

View File

@@ -36,26 +36,26 @@
#ifndef Z_GS1_LINT_H #ifndef Z_GS1_LINT_H
#define Z_GS1_LINT_H #define Z_GS1_LINT_H
/* N18,csum,keyoff1 (Used by SSCC) */ /* N18,csum,gcppos2 (Used by SSCC) */
static int gs1_n18_csum_keyoff1(const unsigned char *data, 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]) { const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) {
return data_len == 18 return data_len == 18
&& gs1_csum(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && 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_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_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) */ /* N14,csum,gcppos2 (Used by GTIN, CONTENT, MTO GTIN) */
static int gs1_n14_csum_keyoff1(const unsigned char *data, 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]) { const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) {
return data_len == 14 return data_len == 14
&& gs1_csum(data, data_len, 0, 14, 14, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && 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_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_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, ...) */ /* 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); && gs1_numeric(data, data_len, 0, 1, 6, p_err_no, p_err_posn, err_msg);
} }
/* N13,csum,key [X..17] (Used by GDTI) */ /* N13,csum,gcppos1 [X..17] (Used by GDTI) */
static int gs1_n13_csum_key__x__17_(const unsigned char *data, 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]) { const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) {
return data_len >= 13 && data_len <= 30 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_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_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_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); && gs1_cset82(data, data_len, 13, 0, 17, p_err_no, p_err_posn, err_msg);
} }
/* N13,csum,key [N..12] (Used by GCN) */ /* N13,csum,gcppos1 [N..12] (Used by GCN) */
static int gs1_n13_csum_key__n__12_(const unsigned char *data, 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]) { const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) {
return data_len >= 13 && data_len <= 25 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_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_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_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); && 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); && 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) */ /* X..30,gcppos1 (Used by GINC, GIAI - ASSEMBLY, GIAI) */
static int gs1_x__30_key(const unsigned char *data, 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]) { const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) {
return data_len >= 1 && data_len <= 30 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_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) */ /* N17,csum,gcppos1 (Used by GSIN) */
static int gs1_n17_csum_key(const unsigned char *data, 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]) { const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) {
return data_len == 17 return data_len == 17
&& gs1_csum(data, data_len, 0, 17, 17, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && 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_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_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) */ /* 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_key(const unsigned char *data, 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]) { const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) {
return data_len == 13 return data_len == 13
&& gs1_csum(data, data_len, 0, 13, 13, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && 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_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_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) */ /* 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); && 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) */ /* N1,zero N13,csum,gcppos1 [X..16] (Used by GRAI) */
static int gs1_n1_zero_n13_csum_key__x__16_(const unsigned char *data, 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]) { const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) {
return data_len >= 14 && data_len <= 30 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_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_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_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_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_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_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); && 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) */ /* N14,csum,gcppos2 N4,pieceoftotal (Used by ITIP, ITIP CONTENT) */
static int gs1_n14_csum_keyoff1_n4_pieceoftotal(const unsigned char *data, 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]) { const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) {
return data_len == 18 return data_len == 18
&& gs1_csum(data, data_len, 0, 14, 14, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && 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_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_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_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_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); && 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); && gs1_cset82(data, data_len, 0, 1, 50, p_err_no, p_err_posn, err_msg);
} }
/* Y..30,key (Used by CPID) */ /* Y..30,gcppos1 (Used by CPID) */
static int gs1_y__30_key(const unsigned char *data, 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]) { const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) {
return data_len >= 1 && data_len <= 30 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_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) */ /* 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); && gs1_nozeroprefix(data, data_len, 0, 1, 12, p_err_no, p_err_posn, err_msg, 0);
} }
/* X..25,csumalpha,key (Used by GMN) */ /* X..25,csumalpha,gcppos1 (Used by GMN) */
static int gs1_x__25_csumalpha_key(const unsigned char *data, 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]) { const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) {
return data_len >= 1 && data_len <= 25 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_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_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_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) */ /* X..25,csumalpha,gcppos1,hasnondigit (Used by MUDI) */
static int gs1_x__25_csumalpha_key_hasnondigit(const unsigned char *data, 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]) { const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) {
return data_len >= 1 && data_len <= 25 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_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_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_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_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); && 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) */ /* N18,csum,gcppos1 (Used by GSRN - PROVIDER, GSRN - RECIPIENT) */
static int gs1_n18_csum_key(const unsigned char *data, 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]) { const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) {
return data_len == 18 return data_len == 18
&& gs1_csum(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) && 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_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_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) */ /* 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 < 100) {
if (ai == 0) { 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) { 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) { if (ai == 10 || ai == 21 || ai == 22) {
return gs1_x__20(data, data_len, p_err_no, p_err_posn, err_msg); 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); return gs1_x__20(data, data_len, p_err_no, p_err_posn, err_msg);
} }
if (ai == 253) { 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) { 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) { } 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); return gs1_x__30(data, data_len, p_err_no, p_err_posn, err_msg);
} }
if (ai == 401) { 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) { 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) { 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) { if (ai == 420) {
return gs1_x__20(data, data_len, p_err_no, p_err_posn, err_msg); 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); return gs1_x__20(data, data_len, p_err_no, p_err_posn, err_msg);
} }
if (ai == 7023) { 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) { if (ai >= 7030 && ai <= 7039) {
return gs1_n3_iso3166999_x__27(data, data_len, p_err_no, p_err_posn, err_msg); 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); return gs1_x__20(data, data_len, p_err_no, p_err_posn, err_msg);
} }
if (ai == 8003) { 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) { 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) { if (ai == 8005) {
return gs1_n6(data, data_len, p_err_no, p_err_posn, err_msg); return gs1_n6(data, data_len, p_err_no, p_err_posn, err_msg);
} }
if (ai == 8006 || ai == 8026) { 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) { if (ai == 8007) {
return gs1_x__34_iban(data, data_len, p_err_no, p_err_posn, err_msg); 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); return gs1_x__50(data, data_len, p_err_no, p_err_posn, err_msg);
} }
if (ai == 8010) { 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) { if (ai == 8011) {
return gs1_n__12_nozeroprefix(data, data_len, p_err_no, p_err_posn, err_msg); return gs1_n__12_nozeroprefix(data, data_len, p_err_no, p_err_posn, err_msg);
} }
if (ai == 8013) { 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) { 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) { 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) { if (ai == 8019) {
return gs1_n__10(data, data_len, p_err_no, p_err_posn, err_msg); return gs1_n__10(data, data_len, p_err_no, p_err_posn, err_msg);

View File

@@ -56,7 +56,7 @@ foreach ($lines as $line) {
if ($line === '' || $line[0] === '#') { if ($line === '' || $line[0] === '#') {
continue; 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)) { $line, $matches)) {
print $line . PHP_EOL; print $line . PHP_EOL;
exit("$basename:" . __LINE__ . " ERROR: Could not parse line $line_no" . PHP_EOL); exit("$basename:" . __LINE__ . " ERROR: Could not parse line $line_no" . PHP_EOL);

View File

@@ -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 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) 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 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.1-1-amd64.deb sudo dpkg -i pandoc-3.7.0.2-1-amd64.deb
For Ubuntu 22.04 (python < 3.12) For Ubuntu 22.04 (python < 3.12)
sudo apt install python3-pip sudo apt install python3-pip
pip install pandoc-tablenos --user 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)) 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 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.1-linux-amd64.tar.gz tar xf pandoc-3.7.0.2-linux-amd64.tar.gz
sudo mv -i pandoc-3.7.0.1/bin/pandoc /usr/local/bin sudo mv -i pandoc-3.7.0.2/bin/pandoc /usr/local/bin
sudo dnf install python3-pip sudo dnf install python3-pip
pip install pandoc-tablenos --user pip install pandoc-tablenos --user
export PATH=~/.local/bin:"$PATH" export PATH=~/.local/bin:"$PATH"

View File

@@ -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" .TH "ZINT" "1" "April 2025" "Version 2.15.0.9"
.SH NAME .SH NAME