1
0
mirror of https://git.code.sf.net/p/zint/code synced 2026-07-31 02:19:50 +00:00
Files
zint/backend
gitlost a81c9d9258 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
2026-06-23 23:25:23 +01:00
..
2026-04-18 22:55:52 +01:00
2026-04-27 01:02:25 +01:00
2025-12-19 20:36:40 +00:00

% backend/README 2026-03-30
% vim: set ts=4 sw=4 et :

Here is a guide to which bit of source code does what.

library.c:
    API entry points

zint.h:
    main include

zintconfig.h:
    version defines


Barcodes
--------

2of5.c:
    Code 2 of 5 Standard (Matrix)
    Code 2 of 5 Industrial
    Code 2 of 5 IATA
    Code 2 of 5 Data Logic

2of5inter.c:
    Code 2 of 5 Interleaved

2of5inter_based.c:
    ITF-14
    Deutsche Post Leitcode
    Deutsche Post Identcode

auspost.c:
    Australia Post Standard Customer
    Australia Post Reply Paid
    Australia Post Routing
    Australia Post Redirection

aztec.c:
    Aztec Code
    Compact Aztec Code
    Aztec Runes

bc412.c:
    IBM BC412 (SEMI T1-95)

channel.c:
    Channel Code

codabar.c:
    Codabar

codablock.c:
    Codablock F

code11.c:
    Code 11

code128.c:
    Code 128
    Code 128 (Suppress Code Set C)
    GS1-128 (UCC/EAN-128)

code128_based.c:
    NVE-18
    EAN-14
    DPD Code
    Universal Postal Union S10

code16k.c:
    Code 16k

code.c:
    Code 39
    LOGMARS
    Extended Code 39 (Code 39+)
    Code 93
    VIN

code1.c:
    Code One

code49.c:
    Code 49

composite.c:
    CC-A Composite Symbology
    CC-B Composite Symbology
    CC-C Composite Symbology

dotcode.c:
    Dot Code

dmatrix.c:
    Data Matrix (ECC 200)
    Royal Mail 2D Mailmark (CMDM)

dxfilmedge.c:
    DX Film Edge Barcode

gridmtx.c:
    Grid Matrix

hanxin.c:
    Han Xin Code

imail.c:
    USPS Intelligent Mail (OneCode)

maxicode.c:
    UPS MaxiCode

medical.c:
    Pharmacode One-Track
    Pharmacode Two-Track
    Code 32 (Italian Pharmacode)
    Pharmazentral Nummer (PZN)

pdf417.c:
    PDF417
    Compact PDF417
    MicroPDF417

plessey.c:
    UK Plessey Code (bidirectional)
    MSI Plessey

postal.c:
    POSTNET
    PLANET
    Brazilian CEPNet
    Facing Identification Mark (FIM)
    Royal Mail 4-State Country Code (RM4SCC)
    Dutch Post KIX Code
    DAFT Code
    Flattermarken
    Korean Post Barcode
    Japanese Postal Code

qr.c:
    QR Code
    Micro QR Code
    UPNQR
    Rectangular Micro QR Code (rMQR)

rss.c:
    GS1 DataBar Omnidirectional (RSS-14)
    GS1 DataBar Truncated
    GS1 DataBar Stacked (RSS-14 Stacked)
    GS1 DataBar Stacked Omnidirectional (DataBar-14 Stacked Omnidirectional)
        (RSS-14 Stacked Omnidirectional)
    GS1 DataBar Limited (RSS Limited)
    GS1 DataBar Expanded (RSS Expanded)
    GS1 DataBar Expanded Stacked (RSS Expanded Stacked)

telepen.c:
    Telepen ASCII
    Telepen Numeric

upcean.c:
    UPC-A
    UPC-E
    EAN-2 add-on
    EAN-5 add-on
    EAN-8
    EAN-13
    SBN (verification)
    ISBN (verification)
    ISBN-13 (verification)


Common
------

common.c:
    general routines used by all

eci.c:
    ECI, tables in includes
    big5.h, eci_sb.h, gb18030.h, gb2312.h, gbk.h, ksx1001.h, sjis.h

filemem.c:
    Memory file (BARCODE_MEMORY_FILE)

general_field.c:
    GS1 general field compaction (GS1 DataBar and composites)

gs1.c:
    GS1 parsing & verifying, includes
    gs1_lint.h, iso3166.h, iso4217.h

large.c:
    128-bit arithmetic

reedsol.c:
    Reed-Solomon


Output
------

bmp.c:
    Windows Bitmap format (BMP)

emf.c:
    Enhanced Metafile Format (EMF)

gif.c:
    Graphics Interchange Format (GIF)

output.c:
    general output routines

pcx.c:
    ZSoft Paintbrush Format (PCX)

ps.c:
    Encapsulated PostScript Format (EPS)

raster.c:
    raster output, sets up bitmap arrays, includes
    raster_font.h, zfiletypes.h

svg.c:
    Scalable Vector Graphic Format (SVG), includes
    fonts/normal_woff2.h, fonts/upcean_woff2.h

tif.c:
    Tagged Image File Format (TIF)

vector.c:
    vector output, sets up vector linked lists, includes
    zfiletypes.h


Windows-only
------------

dllversion.c:
    DllGetVersion()

libzint.rc:
    resource script