mirror of
https://github.com/zint/zint
synced 2024-11-16 20:57:25 +13:00
testcommon: fix sizeof bug; AZTEC/QR: suppress cppcheck warnings (#233)
This commit is contained in:
parent
9b02cd5221
commit
4d3aae45d0
@ -1485,7 +1485,7 @@ INTERNAL int aztec_runes(struct zint_symbol *symbol, unsigned char source[], int
|
||||
for (x = 8; x < 19; x++) {
|
||||
if (CompactAztecMap[r + x] == 1) {
|
||||
set_module(symbol, y - 8, x - 8);
|
||||
} else if (CompactAztecMap[r + x] >= 2 && binary_string[CompactAztecMap[r + x] - 2000] == '1') {
|
||||
} else if (CompactAztecMap[r + x] && binary_string[CompactAztecMap[r + x] - 2000] == '1') {
|
||||
set_module(symbol, y - 8, x - 8);
|
||||
}
|
||||
}
|
||||
|
@ -35,33 +35,34 @@
|
||||
|
||||
static const short CompactAztecMap[] = {
|
||||
/* 27 x 27 data grid */
|
||||
609, 608, 411, 413, 415, 417, 419, 421, 423, 425, 427, 429, 431, 433, 435, 437, 439, 441, 443, 445, 447, 449, 451, 453, 455, 457, 459,
|
||||
607, 606, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 454, 456, 458,
|
||||
605, 604, 409, 408, 243, 245, 247, 249, 251, 253, 255, 257, 259, 261, 263, 265, 267, 269, 271, 273, 275, 277, 279, 281, 283, 460, 461,
|
||||
603, 602, 407, 406, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 462, 463,
|
||||
601, 600, 405, 404, 241, 240, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 284, 285, 464, 465,
|
||||
599, 598, 403, 402, 239, 238, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 286, 287, 466, 467,
|
||||
597, 596, 401, 400, 237, 236, 105, 104, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 140, 141, 288, 289, 468, 469,
|
||||
595, 594, 399, 398, 235, 234, 103, 102, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 142, 143, 290, 291, 470, 471,
|
||||
593, 592, 397, 396, 233, 232, 101, 100, 1, 1, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 0, 1, 28, 29, 144, 145, 292, 293, 472, 473,
|
||||
591, 590, 395, 394, 231, 230, 99, 98, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 30, 31, 146, 147, 294, 295, 474, 475,
|
||||
589, 588, 393, 392, 229, 228, 97, 96, 2027, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2007, 32, 33, 148, 149, 296, 297, 476, 477,
|
||||
587, 586, 391, 390, 227, 226, 95, 94, 2026, 1, 0, 1, 1, 1, 1, 1, 0, 1, 2008, 34, 35, 150, 151, 298, 299, 478, 479,
|
||||
585, 584, 389, 388, 225, 224, 93, 92, 2025, 1, 0, 1, 0, 0, 0, 1, 0, 1, 2009, 36, 37, 152, 153, 300, 301, 480, 481,
|
||||
583, 582, 387, 386, 223, 222, 91, 90, 2024, 1, 0, 1, 0, 1, 0, 1, 0, 1, 2010, 38, 39, 154, 155, 302, 303, 482, 483,
|
||||
581, 580, 385, 384, 221, 220, 89, 88, 2023, 1, 0, 1, 0, 0, 0, 1, 0, 1, 2011, 40, 41, 156, 157, 304, 305, 484, 485,
|
||||
579, 578, 383, 382, 219, 218, 87, 86, 2022, 1, 0, 1, 1, 1, 1, 1, 0, 1, 2012, 42, 43, 158, 159, 306, 307, 486, 487,
|
||||
577, 576, 381, 380, 217, 216, 85, 84, 2021, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2013, 44, 45, 160, 161, 308, 309, 488, 489,
|
||||
575, 574, 379, 378, 215, 214, 83, 82, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 47, 162, 163, 310, 311, 490, 491,
|
||||
573, 572, 377, 376, 213, 212, 81, 80, 0, 0, 2020, 2019, 2018, 2017, 2016, 2015, 2014, 0, 0, 48, 49, 164, 165, 312, 313, 492, 493,
|
||||
571, 570, 375, 374, 211, 210, 78, 76, 74, 72, 70, 68, 66, 64, 62, 60, 58, 56, 54, 50, 51, 166, 167, 314, 315, 494, 495,
|
||||
569, 568, 373, 372, 209, 208, 79, 77, 75, 73, 71, 69, 67, 65, 63, 61, 59, 57, 55, 52, 53, 168, 169, 316, 317, 496, 497,
|
||||
567, 566, 371, 370, 206, 204, 202, 200, 198, 196, 194, 192, 190, 188, 186, 184, 182, 180, 178, 176, 174, 170, 171, 318, 319, 498, 499,
|
||||
565, 564, 369, 368, 207, 205, 203, 201, 199, 197, 195, 193, 191, 189, 187, 185, 183, 181, 179, 177, 175, 172, 173, 320, 321, 500, 501,
|
||||
563, 562, 366, 364, 362, 360, 358, 356, 354, 352, 350, 348, 346, 344, 342, 340, 338, 336, 334, 332, 330, 328, 326, 322, 323, 502, 503,
|
||||
561, 560, 367, 365, 363, 361, 359, 357, 355, 353, 351, 349, 347, 345, 343, 341, 339, 337, 335, 333, 331, 329, 327, 324, 325, 504, 505,
|
||||
558, 556, 554, 552, 550, 548, 546, 544, 542, 540, 538, 536, 534, 532, 530, 528, 526, 524, 522, 520, 518, 516, 514, 512, 510, 506, 507,
|
||||
559, 557, 555, 553, 551, 549, 547, 545, 543, 541, 539, 537, 535, 533, 531, 529, 527, 525, 523, 521, 519, 517, 515, 513, 511, 508, 509
|
||||
609, 608, 411, 413, 415, 417, 419, 421, 423, 425, 427, 429, 431, 433, 435, 437, 439, 441, 443, 445, 447, 449, 451, 453, 455, 457, 459, // 0
|
||||
607, 606, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 454, 456, 458, // 1
|
||||
605, 604, 409, 408, 243, 245, 247, 249, 251, 253, 255, 257, 259, 261, 263, 265, 267, 269, 271, 273, 275, 277, 279, 281, 283, 460, 461, // 2
|
||||
603, 602, 407, 406, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 462, 463, // 3
|
||||
601, 600, 405, 404, 241, 240, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 284, 285, 464, 465, // 4
|
||||
599, 598, 403, 402, 239, 238, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 286, 287, 466, 467, // 5
|
||||
597, 596, 401, 400, 237, 236, 105, 104, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 140, 141, 288, 289, 468, 469, // 6
|
||||
595, 594, 399, 398, 235, 234, 103, 102, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 142, 143, 290, 291, 470, 471, // 7
|
||||
593, 592, 397, 396, 233, 232, 101, 100, 1, 1, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 0, 1, 28, 29, 144, 145, 292, 293, 472, 473, // 8
|
||||
591, 590, 395, 394, 231, 230, 99, 98, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 30, 31, 146, 147, 294, 295, 474, 475, // 9
|
||||
589, 588, 393, 392, 229, 228, 97, 96, 2027, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2007, 32, 33, 148, 149, 296, 297, 476, 477, // 10
|
||||
587, 586, 391, 390, 227, 226, 95, 94, 2026, 1, 0, 1, 1, 1, 1, 1, 0, 1, 2008, 34, 35, 150, 151, 298, 299, 478, 479, // 11
|
||||
585, 584, 389, 388, 225, 224, 93, 92, 2025, 1, 0, 1, 0, 0, 0, 1, 0, 1, 2009, 36, 37, 152, 153, 300, 301, 480, 481, // 12
|
||||
583, 582, 387, 386, 223, 222, 91, 90, 2024, 1, 0, 1, 0, 1, 0, 1, 0, 1, 2010, 38, 39, 154, 155, 302, 303, 482, 483, // 13
|
||||
581, 580, 385, 384, 221, 220, 89, 88, 2023, 1, 0, 1, 0, 0, 0, 1, 0, 1, 2011, 40, 41, 156, 157, 304, 305, 484, 485, // 14
|
||||
579, 578, 383, 382, 219, 218, 87, 86, 2022, 1, 0, 1, 1, 1, 1, 1, 0, 1, 2012, 42, 43, 158, 159, 306, 307, 486, 487, // 15
|
||||
577, 576, 381, 380, 217, 216, 85, 84, 2021, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2013, 44, 45, 160, 161, 308, 309, 488, 489, // 16
|
||||
575, 574, 379, 378, 215, 214, 83, 82, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 47, 162, 163, 310, 311, 490, 491, // 17
|
||||
573, 572, 377, 376, 213, 212, 81, 80, 0, 0, 2020, 2019, 2018, 2017, 2016, 2015, 2014, 0, 0, 48, 49, 164, 165, 312, 313, 492, 493, // 18
|
||||
571, 570, 375, 374, 211, 210, 78, 76, 74, 72, 70, 68, 66, 64, 62, 60, 58, 56, 54, 50, 51, 166, 167, 314, 315, 494, 495, // 19
|
||||
569, 568, 373, 372, 209, 208, 79, 77, 75, 73, 71, 69, 67, 65, 63, 61, 59, 57, 55, 52, 53, 168, 169, 316, 317, 496, 497, // 20
|
||||
567, 566, 371, 370, 206, 204, 202, 200, 198, 196, 194, 192, 190, 188, 186, 184, 182, 180, 178, 176, 174, 170, 171, 318, 319, 498, 499, // 21
|
||||
565, 564, 369, 368, 207, 205, 203, 201, 199, 197, 195, 193, 191, 189, 187, 185, 183, 181, 179, 177, 175, 172, 173, 320, 321, 500, 501, // 22
|
||||
563, 562, 366, 364, 362, 360, 358, 356, 354, 352, 350, 348, 346, 344, 342, 340, 338, 336, 334, 332, 330, 328, 326, 322, 323, 502, 503, // 23
|
||||
561, 560, 367, 365, 363, 361, 359, 357, 355, 353, 351, 349, 347, 345, 343, 341, 339, 337, 335, 333, 331, 329, 327, 324, 325, 504, 505, // 24
|
||||
558, 556, 554, 552, 550, 548, 546, 544, 542, 540, 538, 536, 534, 532, 530, 528, 526, 524, 522, 520, 518, 516, 514, 512, 510, 506, 507, // 25
|
||||
559, 557, 555, 553, 551, 549, 547, 545, 543, 541, 539, 537, 535, 533, 531, 529, 527, 525, 523, 521, 519, 517, 515, 513, 511, 508, 509, // 26
|
||||
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
||||
};
|
||||
|
||||
/* Pre-calculated finder, descriptor, orientation mappings for full-range symbol */
|
||||
|
12
backend/qr.c
12
backend/qr.c
@ -42,6 +42,16 @@
|
||||
#include "reedsol.h"
|
||||
#include <assert.h>
|
||||
|
||||
#define LEVEL_L 1
|
||||
#define LEVEL_M 2
|
||||
#define LEVEL_Q 3
|
||||
#define LEVEL_H 4
|
||||
|
||||
#define QR_PERCENT 38 /* Alphanumeric mode % */
|
||||
|
||||
#define RMQR_VERSION 41
|
||||
#define MICROQR_VERSION 73
|
||||
|
||||
/* Returns true if input glyph is in the Alphanumeric set */
|
||||
static int is_alpha(const unsigned int glyph, const int gs1) {
|
||||
int retval = 0;
|
||||
@ -497,7 +507,7 @@ static void qr_binary(unsigned char datastream[], const int version, const int t
|
||||
bp = bin_append_posn(byte, byte > 0xFF ? 16 : 8, binary, bp);
|
||||
|
||||
if (debug_print) {
|
||||
printf("0x%02X(%d) ", byte, byte);
|
||||
printf("0x%02X(%d) ", byte, (int) byte);
|
||||
}
|
||||
}
|
||||
|
||||
|
12
backend/qr.h
12
backend/qr.h
@ -1,7 +1,7 @@
|
||||
/* qr.h Data for QR Code, Micro QR Code and rMQR
|
||||
|
||||
libzint - the open source barcode library
|
||||
Copyright (C) 2008 - 2020 Robin Stuart <rstuart114@gmail.com>
|
||||
Copyright (C) 2008 - 2021 Robin Stuart <rstuart114@gmail.com>
|
||||
Copyright (C) 2006 Kentaro Fukuchi <fukuchi@megaui.net>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
@ -31,13 +31,6 @@
|
||||
*/
|
||||
/* vim: set ts=4 sw=4 et : */
|
||||
|
||||
#define LEVEL_L 1
|
||||
#define LEVEL_M 2
|
||||
#define LEVEL_Q 3
|
||||
#define LEVEL_H 4
|
||||
|
||||
#define QR_PERCENT 38 /* Alphanumeric mode % */
|
||||
|
||||
/* From ISO/IEC 18004:2015 Table 5 Encoding/decoding table for Alphanumeric mode */
|
||||
static const char qr_alphanumeric[59] = {
|
||||
36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43, /* SP-/ */
|
||||
@ -46,9 +39,6 @@ static const char qr_alphanumeric[59] = {
|
||||
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 /* P-Z */
|
||||
};
|
||||
|
||||
#define RMQR_VERSION 100
|
||||
#define MICROQR_VERSION 200
|
||||
|
||||
/* From ISO/IEC 18004:2015 Table 7 */
|
||||
static const unsigned short int qr_data_codewords_L[] = {
|
||||
19, 34, 55, 80, 108, 136, 156, 194, 232, 274, 324, 370, 428, 461, 523, 589, 647,
|
||||
|
@ -120,7 +120,7 @@ static void test_big5_utf8(int index) {
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, length, ret;
|
||||
|
||||
struct zint_symbol symbol;
|
||||
struct zint_symbol symbol = {0};
|
||||
unsigned int b5data[20];
|
||||
|
||||
testStart("test_big5_utf8");
|
||||
|
@ -134,7 +134,7 @@ static void test_hrt_cpy_iso8859_1(int index, int debug) {
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, length, ret;
|
||||
|
||||
struct zint_symbol symbol;
|
||||
struct zint_symbol symbol = {0};
|
||||
|
||||
testStart("test_hrt_cpy_iso8859_1");
|
||||
|
||||
|
@ -54,7 +54,7 @@ static void test_utf8_to_unicode(int index, int debug) {
|
||||
int i, length, ret;
|
||||
|
||||
unsigned int vals[20];
|
||||
struct zint_symbol symbol;
|
||||
struct zint_symbol symbol = {0};
|
||||
|
||||
testStart("test_utf8_to_unicode");
|
||||
|
||||
|
@ -103,12 +103,14 @@ static int gb18030_wctomb_zint2(unsigned int *r1, unsigned int *r2, unsigned int
|
||||
return 4;
|
||||
}
|
||||
// GB18030 (libiconv-1.16/lib/gb18030.h)
|
||||
if (wc >= 0x10000 && wc < 0x10400) { // Code set 3 (Unicode U+10000..U+10FFFF)
|
||||
// Code set 3 (Unicode U+10000..U+10FFFF)
|
||||
if (wc >= 0x10000 /*&& wc < 0x10400*/) { // Not being called for U+10400..U+10FFFF
|
||||
c = wc - 0x10000;
|
||||
*r1 = 0x9030;
|
||||
*r2 = 0x8130 + (c % 10) + 0x100 * (c / 10);
|
||||
return 4;
|
||||
}
|
||||
|
||||
tab_length = ARRAY_SIZE(test_gb18030_tab);
|
||||
start_i = test_gb18030_tab_ind[wc >> 10];
|
||||
end_i = start_i + 0x800 > tab_length ? tab_length : start_i + 0x800;
|
||||
@ -142,10 +144,10 @@ static void test_gb18030_wctomb_zint(void) {
|
||||
val1_1 = val1_2 = val2_1 = val2_2 = 0;
|
||||
ret = gb18030_wctomb_zint(&val1_1, &val1_2, i);
|
||||
ret2 = gb18030_wctomb_zint2(&val2_1, &val2_2, i);
|
||||
assert_equal(ret, ret2, "i:%d 0x%04X ret %d != ret2 %d, val1_1 0x%04X, val2_1 0x%04X, val1_2 0x%04X, val2_2 0x%04X\n", i, i, ret, ret2, val1_1, val2_1, val1_2, val2_2);
|
||||
assert_equal(ret, ret2, "i:%d 0x%04X ret %d != ret2 %d, val1_1 0x%04X, val2_1 0x%04X, val1_2 0x%04X, val2_2 0x%04X\n", (int) i, i, ret, ret2, val1_1, val2_1, val1_2, val2_2);
|
||||
if (ret2) {
|
||||
assert_equal(val1_1, val2_1, "i:%d 0x%04X val1_1 0x%04X != val2_1 0x%04X\n", i, i, val1_1, val2_1);
|
||||
assert_equal(val1_2, val2_2, "i:%d 0x%04X val1_2 0x%04X != val2_2 0x%04X\n", i, i, val1_2, val2_2);
|
||||
assert_equal(val1_1, val2_1, "i:%d 0x%04X val1_1 0x%04X != val2_1 0x%04X\n", (int) i, i, val1_1, val2_1);
|
||||
assert_equal(val1_2, val2_2, "i:%d 0x%04X val1_2 0x%04X != val2_2 0x%04X\n", (int) i, i, val1_2, val2_2);
|
||||
}
|
||||
}
|
||||
|
||||
@ -185,7 +187,7 @@ static void test_gb18030_utf8(int index) {
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, length, ret;
|
||||
|
||||
struct zint_symbol symbol;
|
||||
struct zint_symbol symbol = {0};
|
||||
unsigned int gbdata[30];
|
||||
|
||||
testStart("test_gb18030_utf8");
|
||||
|
@ -2652,6 +2652,7 @@ static void test_rmqr_encode(int index, int generate, int debug) {
|
||||
char *comment;
|
||||
char *expected;
|
||||
};
|
||||
// Note very little available to compare these to (BWIPP gives very different results TODO: investigate) so should be considered "unproven"
|
||||
struct item data[] = {
|
||||
/* 0*/ { UNICODE_MODE, "0123456", 4, 11, 0, 11, 27, "Draft ISO 2018-6-8 Annex H I.2, currently no image to compare to",
|
||||
"111111101010101010101010111"
|
||||
@ -2681,6 +2682,75 @@ static void test_rmqr_encode(int index, int generate, int debug) {
|
||||
"101101101100110111000010001"
|
||||
"111010101010101010101011111"
|
||||
},
|
||||
/* 2*/ { UNICODE_MODE, "123456789012", -1, 1, 0, 7, 43, "R7x34 M max numeric 12 digits",
|
||||
"1111111010101010101011101010101010101010111"
|
||||
"1000001001011011001110111100000000011000101"
|
||||
"1011101010110010101111101001000111111111111"
|
||||
"1011101001101000000100111011010101000010001"
|
||||
"1011101000111001001111110010111101110010101"
|
||||
"1000001011111101000110100110000000011010001"
|
||||
"1111111010101010101011101010101010101011111"
|
||||
},
|
||||
/* 3*/ { UNICODE_MODE, "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678", 4, 32, 0, 17, 139, "R17x139 H max numeric 178 digits",
|
||||
"1111111010101010101010101011101010101010101010101010101110101010101010101010101010111010101010101010101010101011101010101010101010101010111"
|
||||
"1000001011001000110010100110111110011010111100010111001010001011000101011111010101101010110111011011111110010110100110010111101000100111001"
|
||||
"1011101010000000000011101111110000111110100010101011001111101110111000000101100010111111010110100111111010000011100001110011001100010010001"
|
||||
"1011101010010001001011011110110110001011110111000001111000011010111010001110100001001101110010000101111110100110111111101000000001000010000"
|
||||
"1011101001001111000111101011001111001111010001011011011110111000111001000100111001110111001001011000101011111111111111001101010011111000111"
|
||||
"1000001010001010101111010110110110101110111110111100010001000011101011101010001111001001100101001010001001011000111000011111101001010010010"
|
||||
"1111111010000101010101110011100101000111101010101110100111101111100000110100110101110101010011100011001100010001100000100110111011111110011"
|
||||
"0000000000011101001101111000100110010011011001110000111000111101011000111111101010000101001011110001000101101110100100100000010010111100100"
|
||||
"1111010111011011000110010101111110011000010100000011011110010011100001111101000010010101001111111010000111101101111011011000010100010001101"
|
||||
"0111101110101010001010101110000111000110011011010110100001111100111100101100100001000010101101100010101000010100001111011111101110110001010"
|
||||
"1111111110011100100100000111000011110101110100011000110100011110000100111000110110111001101100001110111000100011001000110011101101000110011"
|
||||
"0110110101110001110100000110101010100000011001011000000001001111111001010101001110000111101100000100011110100010110111100101000001001011010"
|
||||
"1010010110011001000100010001000111111110101001001111001101010001000111010101001101011111111000111111001011001111110111101010010010111011111"
|
||||
"0011110011110100101011001000001010100011101111100100001000011000111100011011110010001101000111101011100001010100101010001110111001111110001"
|
||||
"1011101000011100110000101111100101100011010011000110011110101101000101011010001011111010000101000100110100010111110000110111101010111110101"
|
||||
"1000101001111010100011010110111110101000110110000000101011110010110010010000110110101111110010110100110111101010110000100000011110010110001"
|
||||
"1110101010101010101010101011101010101010101010101010101110101010101010101010101010111010101010101010101010101011101010101010101010101011111"
|
||||
},
|
||||
/* 4*/ { UNICODE_MODE, "123456789012345678901234567890123456789012345678901234", 4, 33, 0, 7, 139, "R7xauto H max numeric 54 digits",
|
||||
"1111111010101010101010101011101010101010101010101010101110101010101010101010101010111010101010101010101010101011101010101010101010101010111"
|
||||
"1000001011011110100001110010100100001111000111011101011011001100000111111010011111101110111011101001010011101110111011000110000001001000001"
|
||||
"1011101000010001001110011111100000100110110101101011101110101000100001001100001110111010100000110100100001111011101000110111011110101011111"
|
||||
"1011101001111010110000111110101111100001011110010111010010111110100110011111111111101101010101000111101010011000110111101010001100000010001"
|
||||
"1011101011110100001010000011101111100111101100000011011110100010111101101100100111111011101000110101101000000111101110111001010100101010101"
|
||||
"1000001010001000001011100010101001100011000011000010011011011011011111110010010011101000011010011110010110111010101010010011111110010110001"
|
||||
"1111111010101010101010101011101010101010101010101010101110101010101010101010101010111010101010101010101010101011101010101010101010101011111"
|
||||
},
|
||||
/* 5*/ { UNICODE_MODE, "123456789012345678901234567890123", 4, 35, 0, 11, 59, "R11xauto H with max numeric 33 digits for width 59",
|
||||
"11111110101010101011101010101010101010111010101010101010111"
|
||||
"10000010101010010010100111111011011110101001100110110011001"
|
||||
"10111010000110110111101001001010100001111010000100000000011"
|
||||
"10111010101111011100110000010110100101100001111110110110100"
|
||||
"10111010001110111011111110110011010100011010101010010000101"
|
||||
"10000010000110100110000001000110110100100000001100100110000"
|
||||
"11111110111000101111111010001011010011111111101101101011111"
|
||||
"00000000010001110000100101111101101110100011001010111010001"
|
||||
"11010101101011100011100001110011000010111111110000010010101"
|
||||
"10011110000011110010101110111110000100101110100001000110001"
|
||||
"11101010101010101011101010101010101010111010101010101011111"
|
||||
},
|
||||
/* 6*/ { UNICODE_MODE, "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", -1, 38, 0, 17, 139, "R17xauto M max numeric 361 digits",
|
||||
"1111111010101010101010101011101010101010101010101010101110101010101010101010101010111010101010101010101010101011101010101010101010101010111"
|
||||
"1000001001000101001111000010110100001000101100110001101010100000111110001000100011101011111000001110011001110010100111000101001100000001101"
|
||||
"1011101011100100000111001011101001110010101001100000001111010010111111101001111110111000101000010010110101111111111101111101101000001011001"
|
||||
"1011101001000111010101101000100010100110111111000010001010000111000001110010101101101100011111010001000111001110011101000011110011100111010"
|
||||
"1011101000011011001010110111000101101000011001111111100110101100100010000110011000110010001110111101000010010001000111100010001111110010101"
|
||||
"1000001000010011010111011100110011101001111000011100111001111010111111001101001001101010001000000100111100000100000000111100001000011110110"
|
||||
"1111111011000011001100001011100101010100001110100100010101100010100001111000000110011101001100000011111010101111101010011101110001001101101"
|
||||
"0000000010101010011100011110100011110101111000010000000010110101000000110111010110100101100101111001001000101010011001000010010111110000110"
|
||||
"1111000101000101010110010101111001011001110001111100101110110101011111010111100011110000110011101111100001010011010011000010011110110010011"
|
||||
"0111110010111110100111011100100110100111011110110111111000100100111111001000100001001010111010000110011001110110001110100011101010000101010"
|
||||
"1000110110001000011011011001101111100101110100110000000101010010110110101100011100011111101000011010110100011101100100111101100100001010011"
|
||||
"0010111001011000101010100000011101100011011000111100001000000111001000110110111111100101010111010001000111001000011101011100100101111011110"
|
||||
"1000000110001011100000011101011000110101100001100011100110101100100000011011110100110101010110111101000010000011100110100011011011110111111"
|
||||
"0010111110101011111010111110000101111100111101001010111001111010111111111001011100001111101000100100111100010010000010111111011011000110001"
|
||||
"1101011001000100011101010111100001001010100010010110011111100011000101100010001111111011100101000011111110101111101000011110100000010110101"
|
||||
"1001100101010101001010100010100011011100111001110111011010110101000100100111100110101011100101111011001010100110111111000010110110100110001"
|
||||
"1110101010101010101010101011101010101010101010101010101110101010101010101010101010111010101010101010101010101011101010101010101010101011111"
|
||||
},
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, length, ret;
|
||||
@ -2705,7 +2775,7 @@ static void test_rmqr_encode(int index, int generate, int debug) {
|
||||
i, testUtilInputModeName(data[i].input_mode), data[i].data, data[i].option_1, data[i].option_2, testUtilErrorName(data[i].ret),
|
||||
symbol->rows, symbol->width, data[i].comment);
|
||||
testUtilModulesPrint(symbol, " ", "\n");
|
||||
printf(" },\n");
|
||||
printf(" },\n");
|
||||
} else {
|
||||
if (ret < ZINT_ERROR) {
|
||||
assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d (%s)\n", i, symbol->rows, data[i].expected_rows, data[i].data);
|
||||
|
@ -143,7 +143,7 @@ static void test_sjis_utf8(int index) {
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, length, ret;
|
||||
|
||||
struct zint_symbol symbol;
|
||||
struct zint_symbol symbol = {0};
|
||||
unsigned int jisdata[20];
|
||||
|
||||
testStart("test_sjis_utf8");
|
||||
|
@ -2796,7 +2796,7 @@ int testUtilBwipp(int index, const struct zint_symbol *symbol, int option_1, int
|
||||
sprintf(bwipp_opts_buf + strlen(bwipp_opts_buf), "%sgssep", strlen(bwipp_opts_buf) ? " " : "");
|
||||
bwipp_opts = bwipp_opts_buf;
|
||||
}
|
||||
if (option_2 >= 1 && option_2 <= (int) sizeof(intsymbol)) {
|
||||
if (option_2 >= 1 && option_2 <= ARRAY_SIZE(intsymbol)) {
|
||||
int idx = intsymbol[option_2 - 1];
|
||||
sprintf(bwipp_opts_buf + strlen(bwipp_opts_buf), "%srows=%d columns=%d",
|
||||
strlen(bwipp_opts_buf) ? " " : "", matrixH[idx], matrixW[idx]);
|
||||
|
@ -75,9 +75,10 @@ Reader Initialisation: Some symbologies allow a special character to be included
|
||||
programming codes relevant to your scanner.
|
||||
|
||||
ECI: The ECI mechanism allows for multi-language data to be encoded in
|
||||
symbols which would usually support only Latin-1 characters. This can
|
||||
be useful, for example, if you need to encode Cyrillic characters, but
|
||||
should be used with caution as not all scanners support this method.
|
||||
symbols which would usually support only Latin-1 (ISO/IEC 8859-1)
|
||||
characters. This can be useful, for example, if you need to encode
|
||||
Cyrillic characters, but should be used with caution as not all scanners
|
||||
support this method.
|
||||
|
||||
|
||||
2. Installing Zint
|
||||
@ -2373,13 +2374,13 @@ ZINT_FULL_MULTIBYTE | (N + 1) << 8.
|
||||
|
||||
6.6.4 Rectangular Micro QR Code (rMQR)
|
||||
--------------------------------------
|
||||
A rectangular version of QR Code. Like QR code rMQR supports encoding of GS1
|
||||
data, Latin-1 and Kanji characters in the Shift JIS encoding scheme. It does not
|
||||
support other ISO/IEC 8859 character sets or encodings. As with other
|
||||
symbologies data should be entered as UTF-8 with the conversion to Shift JIS
|
||||
being handled by Zint. The amount of ECC codewords can be adjusted using the
|
||||
--secure= option (API option_1), however only ECC levels M and H are valid for
|
||||
this type of symbol.
|
||||
A rectangular version of QR Code. Like QR Code, rMQR supports encoding of GS1
|
||||
data, and Latin-1 characters in the ISO/IEC 8859-1 set and Kanji characters in
|
||||
the Shift JIS encoding scheme. It does not support other ISO/IEC 8859 character
|
||||
sets or encodings. As with other symbologies data should be entered as UTF-8
|
||||
with the conversion to Latin-1 or Shift JIS being handled by Zint. The amount of
|
||||
ECC codewords can be adjusted using the --secure= option (API option_1), however
|
||||
only ECC levels M and H are valid for this type of symbol.
|
||||
|
||||
-------------------------------------------------------------------------
|
||||
Input | ECC Level | Error Correction Capacity | Recovery Capacity
|
||||
@ -2392,9 +2393,9 @@ The preferred symbol sizes can be selected using the --vers= option (API
|
||||
option_2) as shown in the table below. Input values between 33 and 38 fix the
|
||||
height of the symbol while allowing Zint to determine the minimum symbol width.
|
||||
|
||||
---------------------------------
|
||||
Input | Version | Symbol Size
|
||||
---------------------------------
|
||||
---------------------------------------
|
||||
Input | Version | Symbol Size (HxW)
|
||||
---------------------------------------
|
||||
1 | R7x43 | 7 x 73
|
||||
2 | R7x59 | 7 x 59
|
||||
3 | R7x77 | 7 x 77
|
||||
@ -2427,14 +2428,14 @@ Input | Version | Symbol Size
|
||||
30 | R17x77 | 17 x 77
|
||||
31 | R17x99 | 17 x 99
|
||||
32 | R17x139 | 17 x 139
|
||||
---------------------------------
|
||||
33 | Fixed height 7
|
||||
34 | Fixed height 9
|
||||
35 | Fixed height 11
|
||||
36 | Fixed height 13
|
||||
37 | Fixed height 15
|
||||
38 | Fixed height 17
|
||||
---------------------------------
|
||||
---------------------------------------
|
||||
33 | R7 x automatic width
|
||||
34 | R9 x automatic width
|
||||
35 | R11 x automatic width
|
||||
36 | R13 x automatic width
|
||||
37 | R15 x automatic width
|
||||
38 | R17 x automatic width
|
||||
---------------------------------------
|
||||
|
||||
For barcode readers that support it, non-ASCII data density may be maximized by
|
||||
using the --fullmultibyte switch or by setting option_3 to ZINT_FULL_MULTIBYTE.
|
||||
|
@ -44,192 +44,192 @@
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R7x43</string>
|
||||
<string>R7x43 (Zint 1)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R7x59</string>
|
||||
<string>R7x59 (Zint 2)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R7x77</string>
|
||||
<string>R7x77 (Zint 3)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R7x99</string>
|
||||
<string>R7x99 (Zint 4)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R7x139</string>
|
||||
<string>R7x139 (Zint 5)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R9x43</string>
|
||||
<string>R9x43 (Zint 6)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R9x59</string>
|
||||
<string>R9x59 (Zint 7)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R9x77</string>
|
||||
<string>R9x77 (Zint 8)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R9x99</string>
|
||||
<string>R9x99 (Zint 9)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R9x139</string>
|
||||
<string>R9x139 (Zint 10)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R11x27</string>
|
||||
<string>R11x27 (Zint 11)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R11x43</string>
|
||||
<string>R11x43 (Zint 12)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R11x59</string>
|
||||
<string>R11x59 (Zint 13)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R11x77</string>
|
||||
<string>R11x77 (Zint 14)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R11x99</string>
|
||||
<string>R11x99 (Zint 15)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R11x139</string>
|
||||
<string>R11x139 (Zint 16)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R13x27</string>
|
||||
<string>R13x27 (Zint 17)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R13x43</string>
|
||||
<string>R13x43 (Zint 18)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R13x59</string>
|
||||
<string>R13x59 (Zint 19)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R13x77</string>
|
||||
<string>R13x77 (Zint 20)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R13x99</string>
|
||||
<string>R13x99 (Zint 21)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R13x139</string>
|
||||
<string>R13x139 (Zint 22)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R15x43</string>
|
||||
<string>R15x43 (Zint 23)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R15x59</string>
|
||||
<string>R15x59 (Zint 24)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R15x77</string>
|
||||
<string>R15x77 (Zint 25)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R15x99</string>
|
||||
<string>R15x99 (Zint 26)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R15x139</string>
|
||||
<string>R15x139 (Zint 27)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R17x43</string>
|
||||
<string>R17x43 (Zint 28)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R17x59</string>
|
||||
<string>R17x59 (Zint 29)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R17x77</string>
|
||||
<string>R17x77 (Zint 30)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R17x99</string>
|
||||
<string>R17x99 (Zint 31)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R17x139</string>
|
||||
<string>R17x139 (Zint 32)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R7x Automatic Width</string>
|
||||
<string>R7 x Automatic Width (Zint 33)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R9x Automatic Width</string>
|
||||
<string>R9 x Automatic Width (Zint 34)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R11x Automatic Width</string>
|
||||
<string>R11 x Automatic Width (Zint 35)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R13x Automatic Width</string>
|
||||
<string>R13 x Automatic Width (Zint 36)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R15 x Automatic Width</string>
|
||||
<string>R15 x Automatic Width (Zint 37)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>R17 x Automatic Width</string>
|
||||
<string>R17 x Automatic Width (Zint 38)</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
|
Loading…
Reference in New Issue
Block a user