gs1: update to latest gs1-syntax-dictionary (cset64, separate

latitude/longitude, mediatype, new AIs 7241, 7242, 8030)
  TODO: integrate gs1-syntax-engine
BWIPP: update to latest (bwipp_dump.ps)
manual: README: pandoc latest
This commit is contained in:
gitlost 2023-07-05 21:26:16 +01:00
parent a324fe90f6
commit 6733e76be4
10 changed files with 727 additions and 597 deletions

View file

@ -1,10 +1,10 @@
/*
* GS1 AI checker generated by "backend/tools/gen_gs1_lint.php" from
* https://ref.gs1.org/tools/gs1-barcode-syntax-resource/syntax-dictionary/
* https://raw.githubusercontent.com/gs1/gs1-syntax-dictionary/main/gs1-syntax-dictionary.txt
*/
/*
libzint - the open source barcode library
Copyright (C) 2021-2022 Robin Stuart <rstuart114@gmail.com>
Copyright (C) 2021-2023 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@ -36,7 +36,7 @@
#ifndef Z_GS1_LINT_H
#define Z_GS1_LINT_H
/* N18,csum,key (Used by SSCC) */
/* N18,csum,key (Used by SSCC, GSRN - PROVIDER, GSRN - RECIPIENT) */
static int n18_csum_key(const unsigned char *data, const int data_len,
int *p_err_no, int *p_err_posn, char err_msg[50]) {
return data_len == 18
@ -88,7 +88,7 @@ static int x__28(const unsigned char *data, const int data_len,
&& cset82(data, data_len, 0, 1, 28, p_err_no, p_err_posn, err_msg);
}
/* X..30 (Used by ADDITIONAL ID, CUST. PART NO., SECONDARY SERIAL, REF. TO SOURCE...) */
/* X..30 (Used by ADDITIONAL ID, CUST. PART No., SECONDARY SERIAL, REF. TO SOURCE...) */
static int x__30(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
@ -257,13 +257,16 @@ static int x2_iso3166alpha2(const unsigned char *data, const int data_len,
&& iso3166alpha2(data, data_len, 0, 2, 2, p_err_no, p_err_posn, err_msg, 0);
}
/* N20,latlong (Used by SHIP TO GEO) */
static int n20_latlong(const unsigned char *data, const int data_len,
/* N10,latitude N10,longitude (Used by SHIP TO GEO) */
static int n10_latitude_n10_longitude(const unsigned char *data, const int data_len,
int *p_err_no, int *p_err_posn, char err_msg[50]) {
return data_len == 20
&& latlong(data, data_len, 0, 20, 20, p_err_no, p_err_posn, err_msg, 1 /*length_only*/)
&& numeric(data, data_len, 0, 20, 20, p_err_no, p_err_posn, err_msg)
&& latlong(data, data_len, 0, 20, 20, p_err_no, p_err_posn, err_msg, 0);
&& latitude(data, data_len, 0, 10, 10, p_err_no, p_err_posn, err_msg, 1 /*length_only*/)
&& longitude(data, data_len, 10, 10, 10, p_err_no, p_err_posn, err_msg, 1 /*length_only*/)
&& numeric(data, data_len, 0, 10, 10, p_err_no, p_err_posn, err_msg)
&& latitude(data, data_len, 0, 10, 10, p_err_no, p_err_posn, err_msg, 0)
&& numeric(data, data_len, 10, 10, 10, p_err_no, p_err_posn, err_msg)
&& longitude(data, data_len, 10, 10, 10, p_err_no, p_err_posn, err_msg, 0);
}
/* N1,yesno (Used by DANGEROUS GOODS, AUTH TO LEAVE, SIG REQUIRED) */
@ -397,6 +400,22 @@ static int x2_x__28(const unsigned char *data, const int data_len,
&& cset82(data, data_len, 2, 1, 28, p_err_no, p_err_posn, err_msg);
}
/* N2,mediatype (Used by AIDC MEDIA TYPE) */
static int n2_mediatype(const unsigned char *data, const int data_len,
int *p_err_no, int *p_err_posn, char err_msg[50]) {
return data_len == 2
&& mediatype(data, data_len, 0, 2, 2, p_err_no, p_err_posn, err_msg, 1 /*length_only*/)
&& numeric(data, data_len, 0, 2, 2, p_err_no, p_err_posn, err_msg)
&& mediatype(data, data_len, 0, 2, 2, p_err_no, p_err_posn, err_msg, 0);
}
/* X..25 (Used by VCN, REF No.) */
static int x__25(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
&& cset82(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg);
}
/* N4,nonzero N5,nonzero N3,nonzero N1,winding N1 (Used by DIMENSIONS) */
static int n4_nonzero_n5_nonzero_n3_nonzero_n1_winding_n1(const unsigned char *data, const int data_len,
int *p_err_no, int *p_err_posn, char err_msg[50]) {
@ -500,15 +519,6 @@ static int x__25_csumalpha_key(const unsigned char *data, const int data_len,
&& key(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg, 0);
}
/* N18,csum (Used by GSRN - PROVIDER, GSRN - RECIPIENT) */
static int n18_csum(const unsigned char *data, const int data_len,
int *p_err_no, int *p_err_posn, char err_msg[50]) {
return data_len == 18
&& csum(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg, 1 /*length_only*/)
&& numeric(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg)
&& csum(data, data_len, 0, 18, 18, p_err_no, p_err_posn, err_msg, 0);
}
/* N..10 (Used by SRIN) */
static int n__10(const unsigned char *data, const int data_len,
int *p_err_no, int *p_err_posn, char err_msg[50]) {
@ -516,11 +526,11 @@ static int n__10(const unsigned char *data, const int data_len,
&& numeric(data, data_len, 0, 1, 10, p_err_no, p_err_posn, err_msg);
}
/* X..25 (Used by REF NO.) */
static int x__25(const unsigned char *data, const int data_len,
/* Z..90 (Used by DIGSIG) */
static int z__90(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
&& cset82(data, data_len, 0, 1, 25, p_err_no, p_err_posn, err_msg);
return data_len >= 1 && data_len <= 90
&& cset64(data, data_len, 0, 1, 90, p_err_no, p_err_posn, err_msg);
}
/* X..70,couponcode */
@ -724,7 +734,7 @@ static int gs1_lint(const int ai, const unsigned char *data, const int data_len,
return x__30(data, data_len, p_err_no, p_err_posn, err_msg);
}
if (ai == 4309) {
return n20_latlong(data, data_len, p_err_no, p_err_posn, err_msg);
return n10_latitude_n10_longitude(data, data_len, p_err_no, p_err_posn, err_msg);
}
if (ai == 4318) {
return x__20(data, data_len, p_err_no, p_err_posn, err_msg);
@ -795,6 +805,12 @@ static int gs1_lint(const int ai, const unsigned char *data, const int data_len,
if (ai == 7240) {
return x__20(data, data_len, p_err_no, p_err_posn, err_msg);
}
if (ai == 7241) {
return n2_mediatype(data, data_len, p_err_no, p_err_posn, err_msg);
}
if (ai == 7242) {
return x__25(data, data_len, p_err_no, p_err_posn, err_msg);
}
} else if (ai < 8100) {
@ -835,7 +851,7 @@ static int gs1_lint(const int ai, const unsigned char *data, const int data_len,
return x__25_csumalpha_key(data, data_len, p_err_no, p_err_posn, err_msg);
}
if (ai == 8017 || ai == 8018) {
return n18_csum(data, data_len, p_err_no, p_err_posn, err_msg);
return n18_csum_key(data, data_len, p_err_no, p_err_posn, err_msg);
}
if (ai == 8019) {
return n__10(data, data_len, p_err_no, p_err_posn, err_msg);
@ -843,6 +859,9 @@ static int gs1_lint(const int ai, const unsigned char *data, const int data_len,
if (ai == 8020) {
return x__25(data, data_len, p_err_no, p_err_posn, err_msg);
}
if (ai == 8030) {
return z__90(data, data_len, p_err_no, p_err_posn, err_msg);
}
} else if (ai < 8200) {