mirror of
https://git.code.sf.net/p/zint/code
synced 2026-07-31 02:19:50 +00:00
CLI: make --mirror available in standard non-batch mode via
new routines `mirror_start()`, `mirror_outfile()` & limit substitutions on Unix to backslash (Windows remains the same); restrict "borderwidth", "textgap", "vwhitesp", "whitesp" < 100 CODEONE: fix `ceilf()` -> `C1_MULT_CEIL()` in FAST_MODE encodation (improves/changes some encodation) composite: preserve `gs1_verify()` warning using `warn_level` hack; fix wrong name `zint_dbar_omnstk_set_height()` -> `zint_dbar_stk_set_height()`; use new `zint_micropdf_variant()` & `zint_micropdf_expand()` routines (see below) MICROPDF417: move variant determination into new shareable routine `zint_micropdf_variant()` & expansion into `zint_micropdf_expand()` qzint: add helper methods `setbordertypevalue()`, `encodedinputmode()`, `encodedoutputoptions()`, `ecivaluetoeciindex()` and `eciindextoecivalue()` dbar: for performance pre-calculate `combins()` as array coverage: add `malloc()`-type failure testing to AZTEC, CONTENT_SEGS, MEMORY_FILE, raster, Reed-Solomon & vector; numerous changes to remove unused code and test more branches common: add `isxdigit()` general: various code fiddlings manual: add char names to sequence and batch format char tables; mention long options can be shortened (& use "--compliantheight" -> "--compliant"); expand mirror explanation & document substitutions in footnote; workaround xecjk putting space after double quote when quoting cjk chars & rejig input mode examples; workaround html alignment bug in table gs1-enabled symbologies by adding extra rh dashes to header cols; add "figure nn: " to txt image tags via sed: various other small fixes and rephrasings
This commit is contained in:
+16
-2
@@ -58,6 +58,20 @@
|
||||
#include "reedsol.h"
|
||||
#include "reedsol_logs.h"
|
||||
|
||||
#ifdef ZINT_TEST
|
||||
/* For testing `calloc()` failure */
|
||||
|
||||
static int rs_fail_id = 0; /* RS_FAIL_ID_XXX */
|
||||
|
||||
INTERNAL void zint_test_rs_set_fail(const int id) {
|
||||
rs_fail_id = id;
|
||||
}
|
||||
|
||||
#define rs_calloc(id, num, sz) (rs_fail_id == (id) ? NULL : calloc(num, sz))
|
||||
#else
|
||||
#define rs_calloc(id, num, sz) calloc(num, sz)
|
||||
#endif
|
||||
|
||||
/* rs_init_gf(&rs, prime_poly) initialises the parameters for the Galois Field.
|
||||
The symbol size is determined from the highest bit set in poly
|
||||
This implementation will support sizes up to 8 bits (see rs_uint_init_gf()
|
||||
@@ -258,10 +272,10 @@ INTERNAL int zint_rs_uint_init_gf(rs_uint_t *rs_uint, const unsigned int prime_p
|
||||
rs_uint->logt = NULL;
|
||||
rs_uint->alog = NULL;
|
||||
|
||||
if (!(logt = (unsigned short *) calloc(b, sizeof(unsigned short)))) {
|
||||
if (!(logt = (unsigned short *) rs_calloc(RS_FAIL_ID_LOGT, b, sizeof(unsigned short)))) {
|
||||
return 0;
|
||||
}
|
||||
if (!(alog = (unsigned short *) calloc(b * 2, sizeof(unsigned short)))) {
|
||||
if (!(alog = (unsigned short *) rs_calloc(RS_FAIL_ID_ALOG, b * 2, sizeof(unsigned short)))) {
|
||||
free(logt);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user