Add Structured Append support for AZTEC, CODEONE, DATAMATRIX, DOTCODE,

GRIDMATRIX, MAXICODE, MICROPDF417, PDF417, QRCODE, ULTRA
DOTCODE: use pre-calculated generator poly coeffs in Reed-Solomon for
  performance improvement
PDF417/MICROPDF417: use common routine pdf417_initial()
GUI: code lines <= 118, shorthand widget_obj(),
  shorten calling upcean_addon_gap(), upcean_guard_descent()
various backend: var name debug -> debug_print
This commit is contained in:
gitlost 2021-09-28 21:42:44 +01:00
parent e8b1f7a12e
commit c0791ad85e
69 changed files with 6738 additions and 1822 deletions

View file

@ -728,7 +728,7 @@ char *testUtilEscape(char *buffer, int length, char *escaped, int escaped_size)
for (i = 0; b < be && i < escaped_size; b++) {
// For VC6-compatibility need to split literal strings into <= 2K chunks
if (i > 2040 && i / 2040 != chunk) {
if (i > 2040 && i / 2040 != chunk && (*b & 0xC0) != 0x80) { // Avoid UTF-8 continuations
chunk = i / 2040;
if (i + 3 < escaped_size) {
escaped[i] = '"';
@ -2195,6 +2195,13 @@ static const char *testUtilBwippName(int index, const struct zint_symbol *symbol
}
return NULL;
}
if (symbol->structapp.count && symbology != BARCODE_MAXICODE) {
if (debug & ZINT_DEBUG_TEST_PRINT) {
printf("i:%d %s not BWIPP compatible, Structured Append not supported\n",
index, testUtilBarcodeName(symbology));
}
return NULL;
}
if (symbology == BARCODE_CODE11) {
if (option_2 != 1 && option_2 != 2) { /* 2 check digits (Zint default) not supported */
@ -2867,6 +2874,11 @@ int testUtilBwipp(int index, const struct zint_symbol *symbol, int option_1, int
parse = 1;
}
}
if (symbol->structapp.count) {
sprintf(bwipp_opts_buf + strlen(bwipp_opts_buf), "%ssam=%c%c",
strlen(bwipp_opts_buf) ? " " : "", itoc(symbol->structapp.index), itoc(symbol->structapp.count));
bwipp_opts = bwipp_opts_buf;
}
}
}