CODE128: allow for extended latching (double FNC4) spanning

intermediate CodeC sequence by setting `f_state` only if in
  CodeA/B & checking before adding extended mode switch (cf
  OkapiBarcode commit [9ce6dcc], props Daniel Gredler)
DATAMATRIX: in FAST_MODE re-process any buffered X12 characters
  when mode changes from X12 (cf OkapiBarcode commit [fb7981e],
  props Daniel Gredler)
CODABLOCKF: allow for FNC4 when estimating no. of rows required
CODE16K: make sure row calculation accurate by dispensing with
  glyph estimate & using actual codeword count
CODE16K: ensure initial mode selection allows for extended
  characters
vector.c: add `z_alloca()` cast for `first_row_rects` (ticket
  #272)
MSVC project files: remove incorrect "CompileACpp" setting from
  libzint project files (ticket #272)
bwipp_dump.ps: fix 2/4-track processing; update to latest BWIPP
manual/man page/GUI: Code 16k -> Code 16K
This commit is contained in:
gitlost 2022-10-13 13:33:59 +01:00
parent 92a4a25ed2
commit ada19fc079
32 changed files with 804 additions and 561 deletions

View file

@ -1357,6 +1357,7 @@ static int dm_isoenc(struct zint_symbol *symbol, const unsigned char source[], c
}
if (next_mode != DM_X12) {
sp -= process_p; /* About to throw away buffer, need to re-process input, cf Okapi commit [fb7981e] */
process_p = 0; /* Throw away buffer if any */
target[tp++] = 254; /* Unlatch */
next_mode = DM_ASCII;
@ -1390,7 +1391,7 @@ static int dm_isoenc(struct zint_symbol *symbol, const unsigned char source[], c
} else {
next_mode = DM_EDIFACT;
if (process_p == 3) {
/* Note different then spec Step (f)(2), which suggests checking when 0, but this seems to
/* Note different than spec Step (f)(2), which suggests checking when 0, but this seems to
work better in many cases as the switch to ASCII is "free" */
next_mode = dm_look_ahead_test(source, length, sp, current_mode, process_p, gs1, debug_print);
}