mirror of
https://git.code.sf.net/p/zint/code
synced 2025-05-27 13:34:19 -04:00
GS1: update for new AI 4309 with latlong validator, plus new GS1
syntax dictionary format (pre-release) iso4217: new currency code 925
This commit is contained in:
parent
930f458979
commit
a48434c19c
10 changed files with 962 additions and 864 deletions
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
libzint - the open source barcode library
|
||||
Copyright (C) 2021 Robin Stuart <rstuart114@gmail.com>
|
||||
Copyright (C) 2021-2022 Robin Stuart <rstuart114@gmail.com>
|
||||
|
||||
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"
|
||||
#include "../iso4217.h"
|
||||
|
@ -38,7 +38,7 @@ static void test_numeric(int index) {
|
|||
int data;
|
||||
int ret;
|
||||
};
|
||||
// s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<"))
|
||||
/* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */
|
||||
struct item data[] = {
|
||||
/* 0*/ { -1, 0 },
|
||||
/* 1*/ { 0, 0 },
|
||||
|
@ -350,82 +350,84 @@ static void test_numeric(int index) {
|
|||
/*307*/ { 900, 0 },
|
||||
/*308*/ { 901, 1 },
|
||||
/*309*/ { 902, 0 },
|
||||
/*310*/ { 926, 0 },
|
||||
/*311*/ { 927, 1 },
|
||||
/*312*/ { 928, 1 },
|
||||
/*313*/ { 929, 1 },
|
||||
/*314*/ { 930, 1 },
|
||||
/*315*/ { 931, 1 },
|
||||
/*316*/ { 932, 1 },
|
||||
/*317*/ { 933, 1 },
|
||||
/*318*/ { 934, 1 },
|
||||
/*319*/ { 935, 0 },
|
||||
/*320*/ { 936, 1 },
|
||||
/*321*/ { 937, 0 },
|
||||
/*322*/ { 938, 1 },
|
||||
/*323*/ { 939, 0 },
|
||||
/*324*/ { 940, 1 },
|
||||
/*325*/ { 941, 1 },
|
||||
/*326*/ { 942, 0 },
|
||||
/*327*/ { 943, 1 },
|
||||
/*328*/ { 944, 1 },
|
||||
/*329*/ { 945, 0 },
|
||||
/*330*/ { 946, 1 },
|
||||
/*331*/ { 947, 1 },
|
||||
/*332*/ { 948, 1 },
|
||||
/*333*/ { 949, 1 },
|
||||
/*334*/ { 950, 1 },
|
||||
/*335*/ { 951, 1 },
|
||||
/*336*/ { 952, 1 },
|
||||
/*337*/ { 953, 1 },
|
||||
/*338*/ { 954, 0 },
|
||||
/*339*/ { 955, 1 },
|
||||
/*340*/ { 956, 1 },
|
||||
/*341*/ { 957, 1 },
|
||||
/*342*/ { 958, 1 },
|
||||
/*343*/ { 959, 1 },
|
||||
/*344*/ { 960, 1 },
|
||||
/*345*/ { 961, 1 },
|
||||
/*346*/ { 962, 1 },
|
||||
/*347*/ { 963, 1 },
|
||||
/*348*/ { 964, 1 },
|
||||
/*349*/ { 965, 1 },
|
||||
/*350*/ { 966, 0 },
|
||||
/*351*/ { 967, 1 },
|
||||
/*352*/ { 968, 1 },
|
||||
/*353*/ { 969, 1 },
|
||||
/*354*/ { 970, 1 },
|
||||
/*355*/ { 971, 1 },
|
||||
/*356*/ { 972, 1 },
|
||||
/*357*/ { 973, 1 },
|
||||
/*358*/ { 974, 0 },
|
||||
/*359*/ { 975, 1 },
|
||||
/*360*/ { 976, 1 },
|
||||
/*361*/ { 977, 1 },
|
||||
/*362*/ { 978, 1 },
|
||||
/*363*/ { 979, 1 },
|
||||
/*364*/ { 980, 1 },
|
||||
/*365*/ { 981, 1 },
|
||||
/*366*/ { 982, 0 },
|
||||
/*367*/ { 983, 0 },
|
||||
/*368*/ { 984, 1 },
|
||||
/*369*/ { 985, 1 },
|
||||
/*370*/ { 986, 1 },
|
||||
/*371*/ { 987, 0 },
|
||||
/*372*/ { 988, 0 },
|
||||
/*373*/ { 989, 0 },
|
||||
/*374*/ { 990, 1 },
|
||||
/*375*/ { 991, 0 },
|
||||
/*376*/ { 992, 0 },
|
||||
/*377*/ { 993, 0 },
|
||||
/*378*/ { 994, 1 },
|
||||
/*379*/ { 995, 0 },
|
||||
/*380*/ { 996, 0 },
|
||||
/*381*/ { 997, 1 },
|
||||
/*382*/ { 998, 0 },
|
||||
/*383*/ { 999, 1 },
|
||||
/*384*/ { 1000, 0 },
|
||||
/*385*/ { 2000, 0 },
|
||||
/*310*/ { 924, 0 },
|
||||
/*311*/ { 925, 1 },
|
||||
/*312*/ { 926, 0 },
|
||||
/*313*/ { 927, 1 },
|
||||
/*314*/ { 928, 1 },
|
||||
/*315*/ { 929, 1 },
|
||||
/*316*/ { 930, 1 },
|
||||
/*317*/ { 931, 1 },
|
||||
/*318*/ { 932, 1 },
|
||||
/*319*/ { 933, 1 },
|
||||
/*320*/ { 934, 1 },
|
||||
/*321*/ { 935, 0 },
|
||||
/*322*/ { 936, 1 },
|
||||
/*323*/ { 937, 0 },
|
||||
/*324*/ { 938, 1 },
|
||||
/*325*/ { 939, 0 },
|
||||
/*326*/ { 940, 1 },
|
||||
/*327*/ { 941, 1 },
|
||||
/*328*/ { 942, 0 },
|
||||
/*329*/ { 943, 1 },
|
||||
/*330*/ { 944, 1 },
|
||||
/*331*/ { 945, 0 },
|
||||
/*332*/ { 946, 1 },
|
||||
/*333*/ { 947, 1 },
|
||||
/*334*/ { 948, 1 },
|
||||
/*335*/ { 949, 1 },
|
||||
/*336*/ { 950, 1 },
|
||||
/*337*/ { 951, 1 },
|
||||
/*338*/ { 952, 1 },
|
||||
/*339*/ { 953, 1 },
|
||||
/*340*/ { 954, 0 },
|
||||
/*341*/ { 955, 1 },
|
||||
/*342*/ { 956, 1 },
|
||||
/*343*/ { 957, 1 },
|
||||
/*344*/ { 958, 1 },
|
||||
/*345*/ { 959, 1 },
|
||||
/*346*/ { 960, 1 },
|
||||
/*347*/ { 961, 1 },
|
||||
/*348*/ { 962, 1 },
|
||||
/*349*/ { 963, 1 },
|
||||
/*350*/ { 964, 1 },
|
||||
/*351*/ { 965, 1 },
|
||||
/*352*/ { 966, 0 },
|
||||
/*353*/ { 967, 1 },
|
||||
/*354*/ { 968, 1 },
|
||||
/*355*/ { 969, 1 },
|
||||
/*356*/ { 970, 1 },
|
||||
/*357*/ { 971, 1 },
|
||||
/*358*/ { 972, 1 },
|
||||
/*359*/ { 973, 1 },
|
||||
/*360*/ { 974, 0 },
|
||||
/*361*/ { 975, 1 },
|
||||
/*362*/ { 976, 1 },
|
||||
/*363*/ { 977, 1 },
|
||||
/*364*/ { 978, 1 },
|
||||
/*365*/ { 979, 1 },
|
||||
/*366*/ { 980, 1 },
|
||||
/*367*/ { 981, 1 },
|
||||
/*368*/ { 982, 0 },
|
||||
/*369*/ { 983, 0 },
|
||||
/*370*/ { 984, 1 },
|
||||
/*371*/ { 985, 1 },
|
||||
/*372*/ { 986, 1 },
|
||||
/*373*/ { 987, 0 },
|
||||
/*374*/ { 988, 0 },
|
||||
/*375*/ { 989, 0 },
|
||||
/*376*/ { 990, 1 },
|
||||
/*377*/ { 991, 0 },
|
||||
/*378*/ { 992, 0 },
|
||||
/*379*/ { 993, 0 },
|
||||
/*380*/ { 994, 1 },
|
||||
/*381*/ { 995, 0 },
|
||||
/*382*/ { 996, 0 },
|
||||
/*383*/ { 997, 1 },
|
||||
/*384*/ { 998, 0 },
|
||||
/*385*/ { 999, 1 },
|
||||
/*386*/ { 1000, 0 },
|
||||
/*387*/ { 2000, 0 },
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, ret;
|
||||
|
@ -445,7 +447,7 @@ static void test_numeric(int index) {
|
|||
|
||||
/* Binary chop version: Whether ISO 4217 numeric */
|
||||
static int bc_iso4217_numeric(int cc) {
|
||||
static const short codes[179] = {
|
||||
static const short codes[180] = {
|
||||
/*ALL*/ 8, /*DZD*/ 12, /*ARS*/ 32, /*AUD*/ 36, /*BSD*/ 44, /*BHD*/ 48, /*BDT*/ 50, /*AMD*/ 51, /*BBD*/ 52, /*BMD*/ 60,
|
||||
/*BTN*/ 64, /*BOB*/ 68, /*BWP*/ 72, /*BZD*/ 84, /*SBD*/ 90, /*BND*/ 96, /*MMK*/ 104, /*BIF*/ 108, /*KHR*/ 116, /*CAD*/ 124,
|
||||
/*CVE*/ 132, /*KYD*/ 136, /*LKR*/ 144, /*CLP*/ 152, /*CNY*/ 156, /*COP*/ 170, /*KMF*/ 174, /*CRC*/ 188, /*HRK*/ 191, /*CUP*/ 192,
|
||||
|
@ -458,12 +460,12 @@ static int bc_iso4217_numeric(int cc) {
|
|||
/*PYG*/ 600, /*PEN*/ 604, /*PHP*/ 608, /*QAR*/ 634, /*RUB*/ 643, /*RWF*/ 646, /*SHP*/ 654, /*SAR*/ 682, /*SCR*/ 690, /*SLL*/ 694,
|
||||
/*SGD*/ 702, /*VND*/ 704, /*SOS*/ 706, /*ZAR*/ 710, /*SSP*/ 728, /*SZL*/ 748, /*SEK*/ 752, /*CHF*/ 756, /*SYP*/ 760, /*THB*/ 764,
|
||||
/*TOP*/ 776, /*TTD*/ 780, /*AED*/ 784, /*TND*/ 788, /*UGX*/ 800, /*MKD*/ 807, /*EGP*/ 818, /*GBP*/ 826, /*TZS*/ 834, /*USD*/ 840,
|
||||
/*UYU*/ 858, /*UZS*/ 860, /*WST*/ 882, /*YER*/ 886, /*TWD*/ 901, /*UYW*/ 927, /*VES*/ 928, /*MRU*/ 929, /*STN*/ 930, /*CUC*/ 931,
|
||||
/*ZWL*/ 932, /*BYN*/ 933, /*TMT*/ 934, /*GHS*/ 936, /*SDG*/ 938, /*UYI*/ 940, /*RSD*/ 941, /*MZN*/ 943, /*AZN*/ 944, /*RON*/ 946,
|
||||
/*CHE*/ 947, /*CHW*/ 948, /*TRY*/ 949, /*XAF*/ 950, /*XCD*/ 951, /*XOF*/ 952, /*XPF*/ 953, /*XBA*/ 955, /*XBB*/ 956, /*XBC*/ 957,
|
||||
/*XBD*/ 958, /*XAU*/ 959, /*XDR*/ 960, /*XAG*/ 961, /*XPT*/ 962, /*XTS*/ 963, /*XPD*/ 964, /*XUA*/ 965, /*ZMW*/ 967, /*SRD*/ 968,
|
||||
/*MGA*/ 969, /*COU*/ 970, /*AFN*/ 971, /*TJS*/ 972, /*AOA*/ 973, /*BGN*/ 975, /*CDF*/ 976, /*BAM*/ 977, /*EUR*/ 978, /*MXV*/ 979,
|
||||
/*UAH*/ 980, /*GEL*/ 981, /*BOV*/ 984, /*PLN*/ 985, /*BRL*/ 986, /*CLF*/ 990, /*XSU*/ 994, /*USN*/ 997, /*XXX*/ 999,
|
||||
/*UYU*/ 858, /*UZS*/ 860, /*WST*/ 882, /*YER*/ 886, /*TWD*/ 901, /*SLE*/ 925, /*UYW*/ 927, /*VES*/ 928, /*MRU*/ 929, /*STN*/ 930,
|
||||
/*CUC*/ 931, /*ZWL*/ 932, /*BYN*/ 933, /*TMT*/ 934, /*GHS*/ 936, /*SDG*/ 938, /*UYI*/ 940, /*RSD*/ 941, /*MZN*/ 943, /*AZN*/ 944,
|
||||
/*RON*/ 946, /*CHE*/ 947, /*CHW*/ 948, /*TRY*/ 949, /*XAF*/ 950, /*XCD*/ 951, /*XOF*/ 952, /*XPF*/ 953, /*XBA*/ 955, /*XBB*/ 956,
|
||||
/*XBC*/ 957, /*XBD*/ 958, /*XAU*/ 959, /*XDR*/ 960, /*XAG*/ 961, /*XPT*/ 962, /*XTS*/ 963, /*XPD*/ 964, /*XUA*/ 965, /*ZMW*/ 967,
|
||||
/*SRD*/ 968, /*MGA*/ 969, /*COU*/ 970, /*AFN*/ 971, /*TJS*/ 972, /*AOA*/ 973, /*BGN*/ 975, /*CDF*/ 976, /*BAM*/ 977, /*EUR*/ 978,
|
||||
/*MXV*/ 979, /*UAH*/ 980, /*GEL*/ 981, /*BOV*/ 984, /*PLN*/ 985, /*BRL*/ 986, /*CLF*/ 990, /*XSU*/ 994, /*USN*/ 997, /*XXX*/ 999,
|
||||
};
|
||||
|
||||
int s = 0, e = ARRAY_SIZE(codes) - 1;
|
||||
|
@ -510,3 +512,5 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* vim: set ts=4 sw=4 et : */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue