mirror of
https://github.com/zint/zint
synced 2024-11-16 20:57:25 +13:00
general: use explicit float consts rather than calced ones
manual: remove extra tags from "manual.txt" and clean up table captions
This commit is contained in:
parent
f3a982c1dd
commit
cf04ac15b0
@ -1,7 +1,7 @@
|
|||||||
/* 2of5.c - Handles Code 2 of 5 barcodes */
|
/* 2of5.c - Handles Code 2 of 5 barcodes */
|
||||||
/*
|
/*
|
||||||
libzint - the open source barcode library
|
libzint - the open source barcode library
|
||||||
Copyright (C) 2008-2023 Robin Stuart <rstuart114@gmail.com>
|
Copyright (C) 2008-2024 Robin Stuart <rstuart114@gmail.com>
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
@ -213,7 +213,7 @@ static int c25_inter_common(struct zint_symbol *symbol, unsigned char source[],
|
|||||||
(P = character pairs, N = wide/narrow ratio = 3)
|
(P = character pairs, N = wide/narrow ratio = 3)
|
||||||
width = (P(4N + 6) + N + 6)X = (length / 2) * 18 + 9 */
|
width = (P(4N + 6) + N + 6)X = (length / 2) * 18 + 9 */
|
||||||
/* Taking min X = 0.330mm from Annex D.3.1 (application specification) */
|
/* Taking min X = 0.330mm from Annex D.3.1 (application specification) */
|
||||||
const float min_height_min = stripf(5.0f / 0.33f);
|
const float min_height_min = 15.151515f; /* 5.0 / 0.33 */
|
||||||
float min_height = stripf((18.0f * (length / 2) + 9.0f) * 0.15f);
|
float min_height = stripf((18.0f * (length / 2) + 9.0f) * 0.15f);
|
||||||
if (min_height < min_height_min) {
|
if (min_height < min_height_min) {
|
||||||
min_height = min_height_min;
|
min_height = min_height_min;
|
||||||
@ -276,7 +276,9 @@ INTERNAL int itf14(struct zint_symbol *symbol, unsigned char source[], int lengt
|
|||||||
/* GS1 General Specifications 21.0.1 5.12.3.2 table 2, including footnote (**): (note bind/box additional
|
/* GS1 General Specifications 21.0.1 5.12.3.2 table 2, including footnote (**): (note bind/box additional
|
||||||
to symbol->height), same as GS1-128: "in case of further space constraints"
|
to symbol->height), same as GS1-128: "in case of further space constraints"
|
||||||
height 5.8mm / 1.016mm (X max) ~ 5.7; default 31.75mm / 0.495mm ~ 64.14 */
|
height 5.8mm / 1.016mm (X max) ~ 5.7; default 31.75mm / 0.495mm ~ 64.14 */
|
||||||
error_number = set_height(symbol, stripf(5.8f / 1.016f), stripf(31.75f / 0.495f), 0.0f, 0 /*no_errtxt*/);
|
const float min_height = 5.70866156f; /* 5.8 / 1.016 */
|
||||||
|
const float default_height = 64.1414108f; /* 31.75 / 0.495 */
|
||||||
|
error_number = set_height(symbol, min_height, default_height, 0.0f, 0 /*no_errtxt*/);
|
||||||
} else {
|
} else {
|
||||||
(void) set_height(symbol, 0.0f, 50.0f, 0.0f, 1 /*no_errtxt*/);
|
(void) set_height(symbol, 0.0f, 50.0f, 0.0f, 1 /*no_errtxt*/);
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* bc412.c - Handles IBM BC412 (SEMI T1-95) symbology */
|
/* bc412.c - Handles IBM BC412 (SEMI T1-95) symbology */
|
||||||
/*
|
/*
|
||||||
libzint - the open source barcode library
|
libzint - the open source barcode library
|
||||||
Copyright (C) 2022 Robin Stuart <rstuart114@gmail.com>
|
Copyright (C) 2022-2024 Robin Stuart <rstuart114@gmail.com>
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
@ -134,11 +134,14 @@ INTERNAL int bc412(struct zint_symbol *symbol, unsigned char source[], int lengt
|
|||||||
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
||||||
/* SEMI T1-95 Table 1 "Module" (Character) Height 2mm ± 0.025mm, using Module Spacing 0.12mm ± 0.025mm as
|
/* SEMI T1-95 Table 1 "Module" (Character) Height 2mm ± 0.025mm, using Module Spacing 0.12mm ± 0.025mm as
|
||||||
X-dimension */
|
X-dimension */
|
||||||
error_number = set_height(symbol, stripf(1.975f / 0.145f), stripf(2.0f / 0.12f), stripf(2.025f / 0.095f),
|
const float min_height = 13.6206894f; /* 1.975 / 0.145 */
|
||||||
0 /*no_errtxt*/);
|
const float default_height = 16.666666f; /* 2.0 / 0.12 */
|
||||||
|
const float max_height = 21.3157902f; /* 2.025 / 0.095 */
|
||||||
|
error_number = set_height(symbol, min_height, default_height, max_height, 0 /*no_errtxt*/);
|
||||||
} else {
|
} else {
|
||||||
/* Using compliant height as default as no backwards compatibility to consider */
|
/* Using compliant height as default as no backwards compatibility to consider */
|
||||||
(void) set_height(symbol, 0.0f, stripf(2.0f / 0.12f), 0.0f, 1 /*no_errtxt*/);
|
const float default_height = 16.666666f; /* 2.0 / 0.12 */
|
||||||
|
(void) set_height(symbol, 0.0f, default_height, 0.0f, 1 /*no_errtxt*/);
|
||||||
}
|
}
|
||||||
|
|
||||||
return error_number;
|
return error_number;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* code.c - Handles Code 11, 39, 39+, 93, PZN, Channel and VIN */
|
/* code.c - Handles Code 11, 39, 39+, 93, PZN, Channel and VIN */
|
||||||
/*
|
/*
|
||||||
libzint - the open source barcode library
|
libzint - the open source barcode library
|
||||||
Copyright (C) 2008-2023 Robin Stuart <rstuart114@gmail.com>
|
Copyright (C) 2008-2024 Robin Stuart <rstuart114@gmail.com>
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
@ -327,8 +327,9 @@ INTERNAL int code39(struct zint_symbol *symbol, unsigned char source[], int leng
|
|||||||
/* MIL-STD-1189 Rev. B Section 5.2
|
/* MIL-STD-1189 Rev. B Section 5.2
|
||||||
Min height 0.25" / 0.04" (X max) = 6.25
|
Min height 0.25" / 0.04" (X max) = 6.25
|
||||||
Default height 0.625" (average of 0.375" - 0.875") / 0.01375" (average of 0.0075" - 0.02") ~ 45.45 */
|
Default height 0.625" (average of 0.375" - 0.875") / 0.01375" (average of 0.0075" - 0.02") ~ 45.45 */
|
||||||
error_number = set_height(symbol, 6.25f, stripf(0.625f / 0.01375f), stripf(0.875f / 0.0075f),
|
const float default_height = 45.4545441f; /* 0.625 / 0.01375 */
|
||||||
0 /*no_errtxt*/);
|
const float max_height = 116.666664f; /* 0.875 / 0.0075 */
|
||||||
|
error_number = set_height(symbol, 6.25f, default_height, max_height, 0 /*no_errtxt*/);
|
||||||
} else if (symbol->symbology == BARCODE_CODE39 || symbol->symbology == BARCODE_EXCODE39
|
} else if (symbol->symbology == BARCODE_CODE39 || symbol->symbology == BARCODE_EXCODE39
|
||||||
|| symbol->symbology == BARCODE_HIBC_39) {
|
|| symbol->symbology == BARCODE_HIBC_39) {
|
||||||
/* ISO/IEC 16388:2007 4.4 (e) recommended min height 5.0mm or 15% of width excluding quiet zones;
|
/* ISO/IEC 16388:2007 4.4 (e) recommended min height 5.0mm or 15% of width excluding quiet zones;
|
||||||
@ -429,7 +430,9 @@ INTERNAL int pzn(struct zint_symbol *symbol, unsigned char source[], int length)
|
|||||||
"normal" X 0.25mm (0.187mm - 0.45mm), height 8mm - 20mm for 0.25mm X, 10mm mentioned so use that
|
"normal" X 0.25mm (0.187mm - 0.45mm), height 8mm - 20mm for 0.25mm X, 10mm mentioned so use that
|
||||||
as default, 10mm / 0.25mm = 40 */
|
as default, 10mm / 0.25mm = 40 */
|
||||||
if (error_number < ZINT_ERROR) {
|
if (error_number < ZINT_ERROR) {
|
||||||
error_number = set_height(symbol, stripf(8.0f / 0.45f), 40.0f, stripf(20.0f / 0.187f), 0 /*no_errtxt*/);
|
const float min_height = 17.7777786f; /* 8.0 / 0.45 */
|
||||||
|
const float max_height = 106.951874f; /* 20.0 / 0.187 */
|
||||||
|
error_number = set_height(symbol, min_height, 40.0f, max_height, 0 /*no_errtxt*/);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (error_number < ZINT_ERROR) {
|
if (error_number < ZINT_ERROR) {
|
||||||
@ -588,7 +591,7 @@ INTERNAL int code93(struct zint_symbol *symbol, unsigned char source[], int leng
|
|||||||
/* ANSI/AIM BC5-1995 Section 2.6 minimum height 0.2" or 15% of symbol length, whichever is greater
|
/* ANSI/AIM BC5-1995 Section 2.6 minimum height 0.2" or 15% of symbol length, whichever is greater
|
||||||
no max X given so for min height use symbol length = (9 * (C + 4) + 1) * X + 2 * Q = symbol->width + 20;
|
no max X given so for min height use symbol length = (9 * (C + 4) + 1) * X + 2 * Q = symbol->width + 20;
|
||||||
use 40 as default height based on figures in spec */
|
use 40 as default height based on figures in spec */
|
||||||
float min_height = stripf((symbol->width + 20) * 0.15f);
|
const float min_height = stripf((symbol->width + 20) * 0.15f);
|
||||||
error_number = set_height(symbol, min_height, min_height > 40.0f ? min_height : 40.0f, 0.0f, 0 /*no_errtxt*/);
|
error_number = set_height(symbol, min_height, min_height > 40.0f ? min_height : 40.0f, 0.0f, 0 /*no_errtxt*/);
|
||||||
} else {
|
} else {
|
||||||
(void) set_height(symbol, 0.0f, 50.0f, 0.0f, 1 /*no_errtxt*/);
|
(void) set_height(symbol, 0.0f, 50.0f, 0.0f, 1 /*no_errtxt*/);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* code128.c - Handles Code 128 and derivatives */
|
/* code128.c - Handles Code 128 and derivatives */
|
||||||
/*
|
/*
|
||||||
libzint - the open source barcode library
|
libzint - the open source barcode library
|
||||||
Copyright (C) 2008-2023 Robin Stuart <rstuart114@gmail.com>
|
Copyright (C) 2008-2024 Robin Stuart <rstuart114@gmail.com>
|
||||||
Bugfixes thanks to Christian Sakowski and BogDan Vatra
|
Bugfixes thanks to Christian Sakowski and BogDan Vatra
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
@ -989,8 +989,8 @@ INTERNAL int gs1_128_cc(struct zint_symbol *symbol, unsigned char source[], int
|
|||||||
/* GS1 General Specifications 21.0.1 5.12.3.2 table 2, including footnote (**):
|
/* GS1 General Specifications 21.0.1 5.12.3.2 table 2, including footnote (**):
|
||||||
same as ITF-14: "in case of further space constraints" height 5.8mm / 1.016mm (X max) ~ 5.7;
|
same as ITF-14: "in case of further space constraints" height 5.8mm / 1.016mm (X max) ~ 5.7;
|
||||||
default 31.75mm / 0.495mm ~ 64.14 */
|
default 31.75mm / 0.495mm ~ 64.14 */
|
||||||
const float min_height = stripf(5.8f / 1.016f);
|
const float min_height = 5.70866156f; /* 5.8 / 1.016 */
|
||||||
const float default_height = stripf(31.75f / 0.495f);
|
const float default_height = 64.1414108f; /* 31.75 / 0.495 */
|
||||||
if (symbol->symbology == BARCODE_GS1_128_CC) {
|
if (symbol->symbology == BARCODE_GS1_128_CC) {
|
||||||
/* Pass back via temporary linear structure */
|
/* Pass back via temporary linear structure */
|
||||||
symbol->height = symbol->height ? min_height : default_height;
|
symbol->height = symbol->height ? min_height : default_height;
|
||||||
@ -1153,9 +1153,11 @@ INTERNAL int dpd(struct zint_symbol *symbol, unsigned char source[], int length)
|
|||||||
/* DPD Parcel Label Specification Version 2.4.1 (19.01.2021) Section 4.6.1.2
|
/* DPD Parcel Label Specification Version 2.4.1 (19.01.2021) Section 4.6.1.2
|
||||||
25mm / 0.4mm (X max) = 62.5 min, 25mm / 0.375 (X) ~ 66.66 default */
|
25mm / 0.4mm (X max) = 62.5 min, 25mm / 0.375 (X) ~ 66.66 default */
|
||||||
if (relabel) { /* If relabel then half-size */
|
if (relabel) { /* If relabel then half-size */
|
||||||
error_number = set_height(symbol, 31.25f, stripf(12.5f / 0.375f), 0.0f, 0 /*no_errtxt*/);
|
const float default_height = 33.3333321f; /* 12.5 / 0.375 */
|
||||||
|
error_number = set_height(symbol, 31.25f, default_height, 0.0f, 0 /*no_errtxt*/);
|
||||||
} else {
|
} else {
|
||||||
error_number = set_height(symbol, 62.5f, stripf(25.0f / 0.375f), 0.0f, 0 /*no_errtxt*/);
|
const float default_height = 66.6666641f; /* 25.0 / 0.375 */
|
||||||
|
error_number = set_height(symbol, 62.5f, default_height, 0.0f, 0 /*no_errtxt*/);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
(void) set_height(symbol, 0.0f, relabel ? 25.0f : 50.0f, 0.0f, 1 /*no_errtxt*/);
|
(void) set_height(symbol, 0.0f, relabel ? 25.0f : 50.0f, 0.0f, 1 /*no_errtxt*/);
|
||||||
@ -1299,7 +1301,7 @@ INTERNAL int upu_s10(struct zint_symbol *symbol, unsigned char source[], int len
|
|||||||
|
|
||||||
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
||||||
/* Universal Postal Union S10 Section 8, using max X 0.51mm & minimum height 12.5mm or 15% of width */
|
/* Universal Postal Union S10 Section 8, using max X 0.51mm & minimum height 12.5mm or 15% of width */
|
||||||
const float min_height_min = stripf(12.5f / 0.51f);
|
const float min_height_min = 24.5098038f; /* 12.5 / 0.51 */
|
||||||
float min_height = stripf(symbol->width * 0.15f);
|
float min_height = stripf(symbol->width * 0.15f);
|
||||||
if (min_height < min_height_min) {
|
if (min_height < min_height_min) {
|
||||||
min_height = min_height_min;
|
min_height = min_height_min;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* emf.c - Support for Microsoft Enhanced Metafile Format */
|
/* emf.c - Support for Microsoft Enhanced Metafile Format */
|
||||||
/*
|
/*
|
||||||
libzint - the open source barcode library
|
libzint - the open source barcode library
|
||||||
Copyright (C) 2016-2023 Robin Stuart <rstuart114@gmail.com>
|
Copyright (C) 2016-2024 Robin Stuart <rstuart114@gmail.com>
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
@ -43,7 +43,7 @@
|
|||||||
#include "emf.h"
|
#include "emf.h"
|
||||||
|
|
||||||
/* Multiply truncating to 3 decimal places (avoids rounding differences on various platforms) */
|
/* Multiply truncating to 3 decimal places (avoids rounding differences on various platforms) */
|
||||||
#define mul3dpf(m, arg) stripf(roundf((m) * (arg) * 1000.0f) / 1000.0f)
|
#define emf_mul3dpf(m, arg) stripf(roundf((m) * (arg) * 1000.0f) / 1000.0f)
|
||||||
|
|
||||||
static int emf_count_rectangles(const struct zint_symbol *symbol) {
|
static int emf_count_rectangles(const struct zint_symbol *symbol) {
|
||||||
int rectangles = 0;
|
int rectangles = 0;
|
||||||
@ -479,7 +479,7 @@ INTERNAL int emf_plot(struct zint_symbol *symbol, int rotate_angle) {
|
|||||||
causes various different rendering issues for LibreOffice Draw and Inkscape, so using following hack */
|
causes various different rendering issues for LibreOffice Draw and Inkscape, so using following hack */
|
||||||
if (previous_diameter != circ->diameter + circ->width) { /* Drawing MaxiCode bullseye using overlayed discs */
|
if (previous_diameter != circ->diameter + circ->width) { /* Drawing MaxiCode bullseye using overlayed discs */
|
||||||
previous_diameter = circ->diameter + circ->width;
|
previous_diameter = circ->diameter + circ->width;
|
||||||
radius = mul3dpf(0.5f, previous_diameter);
|
radius = emf_mul3dpf(0.5f, previous_diameter);
|
||||||
}
|
}
|
||||||
circle[this_circle].type = 0x0000002a; /* EMR_ELLIPSE */
|
circle[this_circle].type = 0x0000002a; /* EMR_ELLIPSE */
|
||||||
circle[this_circle].size = 24;
|
circle[this_circle].size = 24;
|
||||||
@ -518,9 +518,9 @@ INTERNAL int emf_plot(struct zint_symbol *symbol, int rotate_angle) {
|
|||||||
|
|
||||||
if (previous_diameter != hex->diameter) {
|
if (previous_diameter != hex->diameter) {
|
||||||
previous_diameter = hex->diameter;
|
previous_diameter = hex->diameter;
|
||||||
radius = mul3dpf(0.5f, previous_diameter);
|
radius = emf_mul3dpf(0.5f, previous_diameter);
|
||||||
half_radius = mul3dpf(0.25f, previous_diameter);
|
half_radius = emf_mul3dpf(0.25f, previous_diameter);
|
||||||
half_sqrt3_radius = mul3dpf(0.43301270189221932338f, previous_diameter);
|
half_sqrt3_radius = emf_mul3dpf(0.43301270189221932338f, previous_diameter);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Note rotation done via world transform */
|
/* Note rotation done via world transform */
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* imail.c - Handles Intelligent Mail (aka OneCode) for USPS */
|
/* imail.c - Handles Intelligent Mail (aka OneCode) for USPS */
|
||||||
/*
|
/*
|
||||||
libzint - the open source barcode library
|
libzint - the open source barcode library
|
||||||
Copyright (C) 2008-2023 Robin Stuart <rstuart114@gmail.com>
|
Copyright (C) 2008-2024 Robin Stuart <rstuart114@gmail.com>
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
@ -437,10 +437,12 @@ INTERNAL int usps_imail(struct zint_symbol *symbol, unsigned char source[], int
|
|||||||
Tracker 0.048" (average of 0.039" - 0.057")
|
Tracker 0.048" (average of 0.039" - 0.057")
|
||||||
Ascender/descender 0.0965" (average of 0.082" - 0.111") less T = 0.0485"
|
Ascender/descender 0.0965" (average of 0.082" - 0.111") less T = 0.0485"
|
||||||
*/
|
*/
|
||||||
symbol->row_height[0] = stripf(0.0485f * 43); /* 2.0855 */
|
const float min_height = 4.875f; /* 0.125 * 39 */
|
||||||
symbol->row_height[1] = stripf(0.048f * 43); /* 2.064 */
|
const float max_height = 7.75500011f; /* 0.165 * 47 */
|
||||||
|
symbol->row_height[0] = 2.0855f; /* 0.0485 * 43 */
|
||||||
|
symbol->row_height[1] = 2.06399989f; /* 0.048 * 43 */
|
||||||
/* Note using max X for minimum and min X for maximum */
|
/* Note using max X for minimum and min X for maximum */
|
||||||
error_number = daft_set_height(symbol, stripf(0.125f * 39) /*4.875*/, stripf(0.165f * 47) /*7.755*/);
|
error_number = daft_set_height(symbol, min_height, max_height);
|
||||||
} else {
|
} else {
|
||||||
symbol->row_height[0] = 3.0f;
|
symbol->row_height[0] = 3.0f;
|
||||||
symbol->row_height[1] = 2.0f;
|
symbol->row_height[1] = 2.0f;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* library.c - external functions of libzint */
|
/* library.c - external functions of libzint */
|
||||||
/*
|
/*
|
||||||
libzint - the open source barcode library
|
libzint - the open source barcode library
|
||||||
Copyright (C) 2009-2023 Robin Stuart <rstuart114@gmail.com>
|
Copyright (C) 2009-2024 Robin Stuart <rstuart114@gmail.com>
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
@ -68,7 +68,7 @@ static void set_symbol_defaults(struct zint_symbol *symbol) {
|
|||||||
symbol->show_hrt = 1; /* Show human readable text */
|
symbol->show_hrt = 1; /* Show human readable text */
|
||||||
symbol->input_mode = DATA_MODE;
|
symbol->input_mode = DATA_MODE;
|
||||||
symbol->eci = 0; /* Default 0 uses ECI 3 */
|
symbol->eci = 0; /* Default 0 uses ECI 3 */
|
||||||
symbol->dot_size = 4.0f / 5.0f;
|
symbol->dot_size = 0.8f; /* 0.4 / 0.5 */
|
||||||
symbol->text_gap = 1.0f;
|
symbol->text_gap = 1.0f;
|
||||||
symbol->guard_descent = 5.0f;
|
symbol->guard_descent = 5.0f;
|
||||||
symbol->warn_level = WARN_DEFAULT;
|
symbol->warn_level = WARN_DEFAULT;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* mailmark.c - Royal Mail 4-state and 2D Mailmark barcodes */
|
/* mailmark.c - Royal Mail 4-state and 2D Mailmark barcodes */
|
||||||
/*
|
/*
|
||||||
libzint - the open source barcode library
|
libzint - the open source barcode library
|
||||||
Copyright (C) 2008-2023 Robin Stuart <rstuart114@gmail.com>
|
Copyright (C) 2008-2024 Robin Stuart <rstuart114@gmail.com>
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
@ -497,10 +497,12 @@ INTERNAL int mailmark_4s(struct zint_symbol *symbol, unsigned char source[], int
|
|||||||
Using recommended 1.9mm and 1.3mm heights for Ascender/Descenders and Trackers resp. as defaults
|
Using recommended 1.9mm and 1.3mm heights for Ascender/Descenders and Trackers resp. as defaults
|
||||||
Min height 4.22mm * 39 (max pitch) / 25.4mm ~ 6.47, max height 5.84mm * 47 (min pitch) / 25.4mm ~ 10.8
|
Min height 4.22mm * 39 (max pitch) / 25.4mm ~ 6.47, max height 5.84mm * 47 (min pitch) / 25.4mm ~ 10.8
|
||||||
*/
|
*/
|
||||||
symbol->row_height[0] = stripf((1.9f * 42.3f) / 25.4f); /* ~3.16 */
|
const float min_height = 6.47952747f; /* (4.22 * 39) / 25.4 */
|
||||||
symbol->row_height[1] = stripf((1.3f * 42.3f) / 25.4f); /* ~2.16 */
|
const float max_height = 10.8062992f; /* (5.84 * 47) / 25.4 */
|
||||||
|
symbol->row_height[0] = 3.16417313f; /* (1.9 * 42.3) / 25.4 */
|
||||||
|
symbol->row_height[1] = 2.16496062f; /* (1.3 * 42.3) / 25.4 */
|
||||||
/* Note using max X for minimum and min X for maximum */
|
/* Note using max X for minimum and min X for maximum */
|
||||||
error_number = daft_set_height(symbol, stripf((4.22f * 39) / 25.4f), stripf((5.84f * 47) / 25.4f));
|
error_number = daft_set_height(symbol, min_height, max_height);
|
||||||
} else {
|
} else {
|
||||||
symbol->row_height[0] = 4.0f;
|
symbol->row_height[0] = 4.0f;
|
||||||
symbol->row_height[1] = 2.0f;
|
symbol->row_height[1] = 2.0f;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* medical.c - Handles 1 track and 2 track pharmacode and Codabar */
|
/* medical.c - Handles 1 track and 2 track pharmacode and Codabar */
|
||||||
/*
|
/*
|
||||||
libzint - the open source barcode library
|
libzint - the open source barcode library
|
||||||
Copyright (C) 2008-2023 Robin Stuart <rstuart114@gmail.com>
|
Copyright (C) 2008-2024 Robin Stuart <rstuart114@gmail.com>
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
@ -275,7 +275,7 @@ INTERNAL int codabar(struct zint_symbol *symbol, unsigned char source[], int len
|
|||||||
narrow/wide ratio as 2 and I = X) width = ((2 * N + 5) * C + (N – 1) * (D + 2)) * X + I * (C – 1) + 2Q
|
narrow/wide ratio as 2 and I = X) width = ((2 * N + 5) * C + (N – 1) * (D + 2)) * X + I * (C – 1) + 2Q
|
||||||
= ((4 + 5) * C + (D + 2) + C - 1 + 2 * 10) * X = (10 * C + D + 21) * X
|
= ((4 + 5) * C + (D + 2) + C - 1 + 2 * 10) * X = (10 * C + D + 21) * X
|
||||||
Length (C) includes start/stop chars */
|
Length (C) includes start/stop chars */
|
||||||
const float min_height_min = stripf(5.0f / 0.43f);
|
const float min_height_min = 11.6279068f; /* 5.0 / 0.43 */
|
||||||
float min_height = stripf((10.0f * ((add_checksum ? length + 1 : length) + 2.0f) + d_chars + 21.0f) * 0.15f);
|
float min_height = stripf((10.0f * ((add_checksum ? length + 1 : length) + 2.0f) + d_chars + 21.0f) * 0.15f);
|
||||||
if (min_height < min_height_min) {
|
if (min_height < min_height_min) {
|
||||||
min_height = min_height_min;
|
min_height = min_height_min;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* output.c - Common routines for raster/vector
|
/* output.c - Common routines for raster/vector
|
||||||
|
|
||||||
libzint - the open source barcode library
|
libzint - the open source barcode library
|
||||||
Copyright (C) 2020-2023 Robin Stuart <rstuart114@gmail.com>
|
Copyright (C) 2020-2024 Robin Stuart <rstuart114@gmail.com>
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
@ -504,8 +504,8 @@ static int out_quiet_zones(const struct zint_symbol *symbol, const int hide_text
|
|||||||
/* USPS DMM 300 2006 (2011) 708.9.3 (top/bottom zero)
|
/* USPS DMM 300 2006 (2011) 708.9.3 (top/bottom zero)
|
||||||
right 0.125" (min) / 0.03925" (X max) ~ 3.18, left 1.25" - 0.66725" (max width of barcode)
|
right 0.125" (min) / 0.03925" (X max) ~ 3.18, left 1.25" - 0.66725" (max width of barcode)
|
||||||
- 0.375 (max right) = 0.20775" / 0.03925" (X max) ~ 5.29 */
|
- 0.375 (max right) = 0.20775" / 0.03925" (X max) ~ 5.29 */
|
||||||
*right = (float) (0.125 / 0.03925);
|
*right = 3.18471336f; /* 0.125 / 0.03925 */
|
||||||
*left = (float) (0.20775 / 0.03925);
|
*left = 5.29299355f; /* 0.20775 / 0.03925 */
|
||||||
done = 1;
|
done = 1;
|
||||||
break;
|
break;
|
||||||
case BARCODE_PHARMA:
|
case BARCODE_PHARMA:
|
||||||
@ -561,13 +561,13 @@ static int out_quiet_zones(const struct zint_symbol *symbol, const int hide_text
|
|||||||
/* Customer Barcode Technical Specifications (2012) left/right 6mm / 0.6mm = 10,
|
/* Customer Barcode Technical Specifications (2012) left/right 6mm / 0.6mm = 10,
|
||||||
top/bottom 2mm / 0.6mm ~ 3.33 (X max) */
|
top/bottom 2mm / 0.6mm ~ 3.33 (X max) */
|
||||||
*left = *right = 10.0f;
|
*left = *right = 10.0f;
|
||||||
*top = *bottom = (float) (2.0 / 0.6);
|
*top = *bottom = 3.33333325f; /* 2.0 / 0.6 */
|
||||||
done = 1;
|
done = 1;
|
||||||
break;
|
break;
|
||||||
case BARCODE_RM4SCC:
|
case BARCODE_RM4SCC:
|
||||||
/* Royal Mail Know How User's Manual Appendix C: using CBC, same as MAILMARK_4S, 2mm all round,
|
/* Royal Mail Know How User's Manual Appendix C: using CBC, same as MAILMARK_4S, 2mm all round,
|
||||||
use X max (25.4mm / 39) i.e. 20 bars per 25.4mm */
|
use X max (25.4mm / 39) i.e. 20 bars per 25.4mm */
|
||||||
*left = *right = *top = *bottom = (float) ((2.0 * 39.0) / 25.4); /* ~ 3.07 */
|
*left = *right = *top = *bottom = 3.07086611f; /* (2.0 * 39.0) / 25.4 */
|
||||||
done = 1;
|
done = 1;
|
||||||
break;
|
break;
|
||||||
case BARCODE_DATAMATRIX:
|
case BARCODE_DATAMATRIX:
|
||||||
@ -578,7 +578,7 @@ static int out_quiet_zones(const struct zint_symbol *symbol, const int hide_text
|
|||||||
break;
|
break;
|
||||||
case BARCODE_JAPANPOST:
|
case BARCODE_JAPANPOST:
|
||||||
/* Japan Post Zip/Barcode Manual p.13 2mm all round, X 0.6mm, 2mm / 0.6mm ~ 3.33 */
|
/* Japan Post Zip/Barcode Manual p.13 2mm all round, X 0.6mm, 2mm / 0.6mm ~ 3.33 */
|
||||||
*left = *right = *top = *bottom = (float) (2.0 / 0.6);
|
*left = *right = *top = *bottom = 3.33333325f; /* 2.0 / 0.6 */
|
||||||
done = 1;
|
done = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -591,8 +591,8 @@ static int out_quiet_zones(const struct zint_symbol *symbol, const int hide_text
|
|||||||
case BARCODE_USPS_IMAIL:
|
case BARCODE_USPS_IMAIL:
|
||||||
/* USPS-B-3200 (2015) Section 2.3.2 left/right 0.125", top/bottom 0.026", use X max (1 / 39)
|
/* USPS-B-3200 (2015) Section 2.3.2 left/right 0.125", top/bottom 0.026", use X max (1 / 39)
|
||||||
i.e. 20 bars per inch */
|
i.e. 20 bars per inch */
|
||||||
*left = *right = 0.125f * 39.0f; /* 4.875 */
|
*left = *right = 4.875f; /* 0.125 * 39.0 */
|
||||||
*top = *bottom = 0.026f * 39.0f; /* 1.014 */
|
*top = *bottom = 1.01400006f; /* 0.026 * 39.0 */
|
||||||
done = 1;
|
done = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -604,7 +604,7 @@ static int out_quiet_zones(const struct zint_symbol *symbol, const int hide_text
|
|||||||
|
|
||||||
case BARCODE_KIX:
|
case BARCODE_KIX:
|
||||||
/* Handleiding KIX code brochure - same as RM4SCC/MAILMARK_4S */
|
/* Handleiding KIX code brochure - same as RM4SCC/MAILMARK_4S */
|
||||||
*left = *right = *top = *bottom = (float) ((2.0 * 39.0) / 25.4); /* ~ 3.07 */
|
*left = *right = *top = *bottom = 3.07086611f; /* (2.0 * 39.0) / 25.4 */
|
||||||
done = 1;
|
done = 1;
|
||||||
break;
|
break;
|
||||||
case BARCODE_AZTEC:
|
case BARCODE_AZTEC:
|
||||||
@ -630,7 +630,7 @@ static int out_quiet_zones(const struct zint_symbol *symbol, const int hide_text
|
|||||||
case BARCODE_MAILMARK_4S:
|
case BARCODE_MAILMARK_4S:
|
||||||
/* Royal Mail Mailmark Barcode Definition Document Section 3.5.2, 2mm all round, use X max (25.4mm / 39)
|
/* Royal Mail Mailmark Barcode Definition Document Section 3.5.2, 2mm all round, use X max (25.4mm / 39)
|
||||||
i.e. 20 bars per 25.4mm */
|
i.e. 20 bars per 25.4mm */
|
||||||
*left = *right = *top = *bottom = (float) ((2.0 * 39.0) / 25.4); /* ~ 3.07 */
|
*left = *right = *top = *bottom = 3.07086611f; /* (2.0 * 39.0) / 25.4 */
|
||||||
done = 1;
|
done = 1;
|
||||||
break;
|
break;
|
||||||
case BARCODE_UPU_S10:
|
case BARCODE_UPU_S10:
|
||||||
|
@ -99,18 +99,18 @@ static int usps_set_height(struct zint_symbol *symbol, const int no_errtxt) {
|
|||||||
*/
|
*/
|
||||||
/* CEPNet e Código Bidimensional Datamatrix 2D (26/05/2021) 3.3.2 Arquitetura das barras - same as POSTNET */
|
/* CEPNet e Código Bidimensional Datamatrix 2D (26/05/2021) 3.3.2 Arquitetura das barras - same as POSTNET */
|
||||||
int error_number = 0;
|
int error_number = 0;
|
||||||
float h_ratio; /* Half ratio */
|
|
||||||
|
|
||||||
/* No legacy for CEPNet as new */
|
/* No legacy for CEPNet as new */
|
||||||
if ((symbol->output_options & COMPLIANT_HEIGHT) || symbol->symbology == BARCODE_CEPNET) {
|
if ((symbol->output_options & COMPLIANT_HEIGHT) || symbol->symbology == BARCODE_CEPNET) {
|
||||||
symbol->row_height[0] = stripf(0.075f * 43); /* 3.225 */
|
symbol->row_height[0] = 3.2249999f; /* 0.075 * 43 */
|
||||||
symbol->row_height[1] = stripf(0.05f * 43); /* 2.15 */
|
symbol->row_height[1] = 2.1500001f; /* 0.05 * 43 */
|
||||||
} else {
|
} else {
|
||||||
symbol->row_height[0] = 6.0f;
|
symbol->row_height[0] = 6.0f;
|
||||||
symbol->row_height[1] = 6.0f;
|
symbol->row_height[1] = 6.0f;
|
||||||
}
|
}
|
||||||
if (symbol->height) {
|
if (symbol->height) {
|
||||||
h_ratio = symbol->row_height[1] / (symbol->row_height[0] + symbol->row_height[1]); /* 0.4 */
|
/* Half ratio */
|
||||||
|
const float h_ratio = symbol->row_height[1] / (symbol->row_height[0] + symbol->row_height[1]); /* 0.4 */
|
||||||
symbol->row_height[1] = stripf(symbol->height * h_ratio);
|
symbol->row_height[1] = stripf(symbol->height * h_ratio);
|
||||||
if (symbol->row_height[1] < 0.5f) { /* Absolute minimum */
|
if (symbol->row_height[1] < 0.5f) { /* Absolute minimum */
|
||||||
symbol->row_height[1] = 0.5f;
|
symbol->row_height[1] = 0.5f;
|
||||||
@ -369,8 +369,10 @@ INTERNAL int fim(struct zint_symbol *symbol, unsigned char source[], int length)
|
|||||||
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
||||||
/* USPS Domestic Mail Manual (USPS DMM 300) Jan 8, 2006 (updated 2011) 708.9.3
|
/* USPS Domestic Mail Manual (USPS DMM 300) Jan 8, 2006 (updated 2011) 708.9.3
|
||||||
X 0.03125" (1/32) +- 0.008" so X max 0.03925", height 0.625" (5/8) +- 0.125" (1/8) */
|
X 0.03125" (1/32) +- 0.008" so X max 0.03925", height 0.625" (5/8) +- 0.125" (1/8) */
|
||||||
error_number = set_height(symbol, stripf(0.5f / 0.03925f), 20.0f /*0.625 / 0.03125*/,
|
const float min_height = 12.7388535f; /* 0.5 / 0.03925 */
|
||||||
stripf(0.75f / 0.02415f), 0 /*no_errtxt*/);
|
const float default_height = 20.0f; /* 0.625 / 0.03125 */
|
||||||
|
const float max_height = 31.0559006f; /* 0.75 / 0.02415 */
|
||||||
|
error_number = set_height(symbol, min_height, default_height, max_height, 0 /*no_errtxt*/);
|
||||||
} else {
|
} else {
|
||||||
(void) set_height(symbol, 0.0f, 50.0f, 0.0f, 1 /*no_errtxt*/);
|
(void) set_height(symbol, 0.0f, 50.0f, 0.0f, 1 /*no_errtxt*/);
|
||||||
}
|
}
|
||||||
@ -382,10 +384,11 @@ INTERNAL int fim(struct zint_symbol *symbol, unsigned char source[], int length)
|
|||||||
/* Used by auspost.c also */
|
/* Used by auspost.c also */
|
||||||
INTERNAL int daft_set_height(struct zint_symbol *symbol, const float min_height, const float max_height) {
|
INTERNAL int daft_set_height(struct zint_symbol *symbol, const float min_height, const float max_height) {
|
||||||
int error_number = 0;
|
int error_number = 0;
|
||||||
float t_ratio; /* Tracker ratio */
|
|
||||||
|
|
||||||
if (symbol->height) {
|
if (symbol->height) {
|
||||||
t_ratio = stripf(symbol->row_height[1] / stripf(symbol->row_height[0] * 2 + symbol->row_height[1]));
|
/* Tracker ratio */
|
||||||
|
const float t_ratio = stripf(symbol->row_height[1] / stripf(symbol->row_height[0] * 2
|
||||||
|
+ symbol->row_height[1]));
|
||||||
symbol->row_height[1] = stripf(symbol->height * t_ratio);
|
symbol->row_height[1] = stripf(symbol->height * t_ratio);
|
||||||
if (symbol->row_height[1] < 0.5f) { /* Absolute minimum */
|
if (symbol->row_height[1] < 0.5f) { /* Absolute minimum */
|
||||||
symbol->row_height[1] = 0.5f;
|
symbol->row_height[1] = 0.5f;
|
||||||
@ -487,10 +490,12 @@ INTERNAL int rm4scc(struct zint_symbol *symbol, unsigned char source[], int leng
|
|||||||
Bar pitch and min/maxes same as Mailmark, so using recommendations from
|
Bar pitch and min/maxes same as Mailmark, so using recommendations from
|
||||||
Royal Mail Mailmark Barcode Definition Document (15 Sept 2015) Section 3.5.1
|
Royal Mail Mailmark Barcode Definition Document (15 Sept 2015) Section 3.5.1
|
||||||
*/
|
*/
|
||||||
symbol->row_height[0] = stripf((1.9f * 42.3f) / 25.4f); /* ~3.16 */
|
const float min_height = 6.47952747f; /* (4.22 * 39) / 25.4 */
|
||||||
symbol->row_height[1] = stripf((1.3f * 42.3f) / 25.4f); /* ~2.16 */
|
const float max_height = 10.8062992f; /* (5.84 * 47) / 25.4 */
|
||||||
|
symbol->row_height[0] = 3.16417313f; /* (1.9 * 42.3) / 25.4 */
|
||||||
|
symbol->row_height[1] = 2.16496062f; /* (1.3 * 42.3) / 25.4 */
|
||||||
/* Note using max X for minimum and min X for maximum */
|
/* Note using max X for minimum and min X for maximum */
|
||||||
error_number = daft_set_height(symbol, stripf((4.22f * 39) / 25.4f), stripf((5.84f * 47) / 25.4f));
|
error_number = daft_set_height(symbol, min_height, max_height);
|
||||||
} else {
|
} else {
|
||||||
symbol->row_height[0] = 3.0f;
|
symbol->row_height[0] = 3.0f;
|
||||||
symbol->row_height[1] = 2.0f;
|
symbol->row_height[1] = 2.0f;
|
||||||
@ -543,10 +548,12 @@ INTERNAL int kix(struct zint_symbol *symbol, unsigned char source[], int length)
|
|||||||
|
|
||||||
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
||||||
/* Dimensions same as RM4SCC */
|
/* Dimensions same as RM4SCC */
|
||||||
symbol->row_height[0] = stripf((1.9f * 42.3f) / 25.4f); /* ~3.16 */
|
const float min_height = 6.47952747f; /* (4.22 * 39) / 25.4 */
|
||||||
symbol->row_height[1] = stripf((1.3f * 42.3f) / 25.4f); /* ~2.16 */
|
const float max_height = 10.8062992f; /* (5.84 * 47) / 25.4 */
|
||||||
|
symbol->row_height[0] = 3.16417313f; /* (1.9 * 42.3) / 25.4 */
|
||||||
|
symbol->row_height[1] = 2.16496062f; /* (1.3 * 42.3) / 25.4 */
|
||||||
/* Note using max X for minimum and min X for maximum */
|
/* Note using max X for minimum and min X for maximum */
|
||||||
error_number = daft_set_height(symbol, stripf((4.22f * 39) / 25.4f), stripf((5.84f * 47) / 25.4f));
|
error_number = daft_set_height(symbol, min_height, max_height);
|
||||||
} else {
|
} else {
|
||||||
symbol->row_height[0] = 3.0f;
|
symbol->row_height[0] = 3.0f;
|
||||||
symbol->row_height[1] = 2.0f;
|
symbol->row_height[1] = 2.0f;
|
||||||
@ -737,9 +744,11 @@ INTERNAL int japanpost(struct zint_symbol *symbol, unsigned char source[], int l
|
|||||||
X 0.6mm (0.5mm - 0.7mm)
|
X 0.6mm (0.5mm - 0.7mm)
|
||||||
Tracker height 1.2mm (1.05mm - 1.35mm) / 0.6mm = 2,
|
Tracker height 1.2mm (1.05mm - 1.35mm) / 0.6mm = 2,
|
||||||
Ascender/descender = 1.2mm (Full 3.6mm (3.4mm - 3.6mm, max preferred) less T divided by 2) / 0.6mm = 2 */
|
Ascender/descender = 1.2mm (Full 3.6mm (3.4mm - 3.6mm, max preferred) less T divided by 2) / 0.6mm = 2 */
|
||||||
|
const float min_height = 4.85714293f; /* 3.4 / 0.7 */
|
||||||
|
const float max_height = 7.19999981f; /* 3.6 / 0.5 */
|
||||||
symbol->row_height[0] = 2.0f;
|
symbol->row_height[0] = 2.0f;
|
||||||
symbol->row_height[1] = 2.0f;
|
symbol->row_height[1] = 2.0f;
|
||||||
error_number = daft_set_height(symbol, stripf(3.4f / 0.7f) /*~4.857*/, stripf(3.6f / 0.5f) /*7.2*/);
|
error_number = daft_set_height(symbol, min_height, max_height);
|
||||||
} else {
|
} else {
|
||||||
symbol->row_height[0] = 3.0f;
|
symbol->row_height[0] = 3.0f;
|
||||||
symbol->row_height[1] = 2.0f;
|
symbol->row_height[1] = 2.0f;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* raster.c - Handles output to raster files */
|
/* raster.c - Handles output to raster files */
|
||||||
/*
|
/*
|
||||||
libzint - the open source barcode library
|
libzint - the open source barcode library
|
||||||
Copyright (C) 2009-2023 Robin Stuart <rstuart114@gmail.com>
|
Copyright (C) 2009-2024 Robin Stuart <rstuart114@gmail.com>
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
@ -825,8 +825,10 @@ static int plot_raster_maxicode(struct zint_symbol *symbol, const int rotate_ang
|
|||||||
}
|
}
|
||||||
if (error_number == 0) {
|
if (error_number == 0) {
|
||||||
/* Check whether size is compliant */
|
/* Check whether size is compliant */
|
||||||
|
const float min_ratio = 0.92993629f; /* 24.82 / 26.69 */
|
||||||
|
const float max_ratio = 1.177984f; /* 27.93 / 23.71 */
|
||||||
const float size_ratio = (float) hex_image_width / hex_image_height;
|
const float size_ratio = (float) hex_image_width / hex_image_height;
|
||||||
if (size_ratio < 24.82f / 26.69f || size_ratio > 27.93f / 23.71f) {
|
if (size_ratio < min_ratio || size_ratio > max_ratio) {
|
||||||
strcpy(symbol->errtxt, "663: Size not within the minimum/maximum ranges");
|
strcpy(symbol->errtxt, "663: Size not within the minimum/maximum ranges");
|
||||||
error_number = ZINT_WARN_NONCOMPLIANT;
|
error_number = ZINT_WARN_NONCOMPLIANT;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,15 @@
|
|||||||
/* gen_corpora.c - write out initial fuzz data for zint, allowing for how `set_symbol()` in "fuzz.h" uses first X
|
/* gen_corpora.c - write out initial fuzz data for zint, allowing for how `set_symbol()` in "fuzz.h" uses first X
|
||||||
bytes to set various `zint_symbol` members (namely `input_mode`, `option_1`, `option_2`, `eci`, `option_3`) */
|
bytes to set various `zint_symbol` members (namely `input_mode`, `option_1`, `option_2`, `eci`, `option_3`) */
|
||||||
|
/*
|
||||||
|
From "backend/tests/fuzz" directory:
|
||||||
|
|
||||||
|
rm -rf fuzz_data_corpus fuzz_gs1_corpus
|
||||||
|
rm -f fuzz_data_seed_corpus.zip fuzz_gs1_seed_corpus.zip
|
||||||
|
gcc gen_corpora.c -o gen_corpora -lzint -fsanitize=address
|
||||||
|
./gen_corpora
|
||||||
|
zip -j fuzz_data_seed_corpus.zip fuzz_data_corpus/*
|
||||||
|
zip -j fuzz_gs1_seed_corpus.zip fuzz_gs1_corpus/*
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
libzint - the open source barcode library
|
libzint - the open source barcode library
|
||||||
Copyright (C) 2024 Robin Stuart <rstuart114@gmail.com>
|
Copyright (C) 2024 Robin Stuart <rstuart114@gmail.com>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
libzint - the open source barcode library
|
libzint - the open source barcode library
|
||||||
Copyright (C) 2019-2023 Robin Stuart <rstuart114@gmail.com>
|
Copyright (C) 2019-2024 Robin Stuart <rstuart114@gmail.com>
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
@ -682,7 +682,7 @@ static void test_buffer_vector(const testCtx *const p_ctx) {
|
|||||||
/*128*/ { BARCODE_UPNQR, "1234567890AB", "", 77, 77, 77, 154, 154 },
|
/*128*/ { BARCODE_UPNQR, "1234567890AB", "", 77, 77, 77, 154, 154 },
|
||||||
/*129*/ { BARCODE_ULTRA, "1234567890", "", 13, 13, 18, 36, 26 },
|
/*129*/ { BARCODE_ULTRA, "1234567890", "", 13, 13, 18, 36, 26 },
|
||||||
/*130*/ { BARCODE_RMQR, "12345", "", 11, 11, 27, 54, 22 },
|
/*130*/ { BARCODE_RMQR, "12345", "", 11, 11, 27, 54, 22 },
|
||||||
/*131*/ { BARCODE_BC412, "1234567", "", 16.666668, 1, 102, 204, 49.613335 },
|
/*131*/ { BARCODE_BC412, "1234567", "", 16.666666, 1, 102, 204, 49.613335 },
|
||||||
};
|
};
|
||||||
int data_size = ARRAY_SIZE(data);
|
int data_size = ARRAY_SIZE(data);
|
||||||
int i, length, ret;
|
int i, length, ret;
|
||||||
@ -2012,8 +2012,8 @@ static void test_quiet_zones(const testCtx *const p_ctx) {
|
|||||||
/*292*/ { BARCODE_ULTRA, BARCODE_QUIET_ZONES, -1, -1, -1, "1234", "", 0, 13, 13, 15, 34, 30, 2, 2, 30, 2 },
|
/*292*/ { BARCODE_ULTRA, BARCODE_QUIET_ZONES, -1, -1, -1, "1234", "", 0, 13, 13, 15, 34, 30, 2, 2, 30, 2 },
|
||||||
/*293*/ { BARCODE_RMQR, -1, -1, -1, -1, "1234", "", 0, 11, 11, 27, 54, 22, 0, 0, 14, 2 },
|
/*293*/ { BARCODE_RMQR, -1, -1, -1, -1, "1234", "", 0, 11, 11, 27, 54, 22, 0, 0, 14, 2 },
|
||||||
/*294*/ { BARCODE_RMQR, BARCODE_QUIET_ZONES, -1, -1, -1, "1234", "", 0, 11, 11, 27, 62, 30, 4, 4, 14, 2 },
|
/*294*/ { BARCODE_RMQR, BARCODE_QUIET_ZONES, -1, -1, -1, "1234", "", 0, 11, 11, 27, 62, 30, 4, 4, 14, 2 },
|
||||||
/*295*/ { BARCODE_BC412, -1, -1, -1, -1, "1234567", "", 0, 16.666668, 1, 102, 204, 49.613335, 0, 0, 2, 33.333336 },
|
/*295*/ { BARCODE_BC412, -1, -1, -1, -1, "1234567", "", 0, 16.666666, 1, 102, 204, 49.613335, 0, 0, 2, 33.333336 },
|
||||||
/*296*/ { BARCODE_BC412, BARCODE_QUIET_ZONES, -1, -1, -1, "1234567", "", 0, 16.666668, 1, 102, 244, 49.613335, 20, 0, 2, 33.333336 },
|
/*296*/ { BARCODE_BC412, BARCODE_QUIET_ZONES, -1, -1, -1, "1234567", "", 0, 16.666666, 1, 102, 244, 49.613335, 20, 0, 2, 33.333336 },
|
||||||
};
|
};
|
||||||
int data_size = ARRAY_SIZE(data);
|
int data_size = ARRAY_SIZE(data);
|
||||||
int i, length, ret;
|
int i, length, ret;
|
||||||
@ -2590,8 +2590,8 @@ static void test_height(const testCtx *const p_ctx) {
|
|||||||
/*316*/ { BARCODE_USPS_IMAIL, COMPLIANT_HEIGHT, 4.8, "12345678901234567890", "", ZINT_WARN_NONCOMPLIANT, 4.8000002, 3, 129, 258, 9.6000004, "" },
|
/*316*/ { BARCODE_USPS_IMAIL, COMPLIANT_HEIGHT, 4.8, "12345678901234567890", "", ZINT_WARN_NONCOMPLIANT, 4.8000002, 3, 129, 258, 9.6000004, "" },
|
||||||
/*317*/ { BARCODE_USPS_IMAIL, COMPLIANT_HEIGHT, 4.9, "12345678901234567890", "", 0, 4.9000001, 3, 129, 258, 9.8000002, "" },
|
/*317*/ { BARCODE_USPS_IMAIL, COMPLIANT_HEIGHT, 4.9, "12345678901234567890", "", 0, 4.9000001, 3, 129, 258, 9.8000002, "" },
|
||||||
/*318*/ { BARCODE_USPS_IMAIL, -1, 7.7, "12345678901234567890", "", 0, 7.6999998, 3, 129, 258, 15.4, "" },
|
/*318*/ { BARCODE_USPS_IMAIL, -1, 7.7, "12345678901234567890", "", 0, 7.6999998, 3, 129, 258, 15.4, "" },
|
||||||
/*319*/ { BARCODE_USPS_IMAIL, COMPLIANT_HEIGHT, 7.7, "12345678901234567890", "", 0, 7.7000003, 3, 129, 258, 15.400001, "" },
|
/*319*/ { BARCODE_USPS_IMAIL, COMPLIANT_HEIGHT, 7.7, "12345678901234567890", "", 0, 7.69999981, 3, 129, 258, 15.3999996, "" },
|
||||||
/*320*/ { BARCODE_USPS_IMAIL, COMPLIANT_HEIGHT, 7.8, "12345678901234567890", "", ZINT_WARN_NONCOMPLIANT, 7.7999997, 3, 129, 258, 15.599999, "" },
|
/*320*/ { BARCODE_USPS_IMAIL, COMPLIANT_HEIGHT, 7.8, "12345678901234567890", "", ZINT_WARN_NONCOMPLIANT, 7.80000019, 3, 129, 258, 15.6000004, "" },
|
||||||
/*321*/ { BARCODE_PLESSEY, -1, 1, "1234567890", "", 0, 1, 1, 227, 454, 2, "" },
|
/*321*/ { BARCODE_PLESSEY, -1, 1, "1234567890", "", 0, 1, 1, 227, 454, 2, "" },
|
||||||
/*322*/ { BARCODE_PLESSEY, COMPLIANT_HEIGHT, 1, "1234567890", "", 0, 1, 1, 227, 454, 2, "TODO: Find doc" },
|
/*322*/ { BARCODE_PLESSEY, COMPLIANT_HEIGHT, 1, "1234567890", "", 0, 1, 1, 227, 454, 2, "TODO: Find doc" },
|
||||||
/*323*/ { BARCODE_PLESSEY, -1, 4, "1234567890", "", 0, 4, 1, 227, 454, 8, "" },
|
/*323*/ { BARCODE_PLESSEY, -1, 4, "1234567890", "", 0, 4, 1, 227, 454, 8, "" },
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* upcean.c - Handles UPC, EAN and ISBN */
|
/* upcean.c - Handles UPC, EAN and ISBN */
|
||||||
/*
|
/*
|
||||||
libzint - the open source barcode library
|
libzint - the open source barcode library
|
||||||
Copyright (C) 2008-2022 Robin Stuart <rstuart114@gmail.com>
|
Copyright (C) 2008-2024 Robin Stuart <rstuart114@gmail.com>
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
@ -135,7 +135,7 @@ static int upca_cc(struct zint_symbol *symbol, const unsigned char source[], int
|
|||||||
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
||||||
/* BS EN 797:1996 4.5.1 Nominal dimensions 22.85mm / 0.33mm (X) ~ 69.24,
|
/* BS EN 797:1996 4.5.1 Nominal dimensions 22.85mm / 0.33mm (X) ~ 69.24,
|
||||||
same as minimum GS1 General Specifications 21.0.1 5.12.3.1 */
|
same as minimum GS1 General Specifications 21.0.1 5.12.3.1 */
|
||||||
const float height = stripf(22.85f / 0.33f);
|
const float height = 69.242424f; /* 22.85 / 0.33 */
|
||||||
if (symbol->symbology == BARCODE_UPCA_CC) {
|
if (symbol->symbology == BARCODE_UPCA_CC) {
|
||||||
symbol->height = height; /* Pass back min row == default height */
|
symbol->height = height; /* Pass back min row == default height */
|
||||||
} else {
|
} else {
|
||||||
@ -307,7 +307,7 @@ static int upce_cc(struct zint_symbol *symbol, unsigned char source[], int lengt
|
|||||||
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
||||||
/* BS EN 797:1996 4.5.1 Nominal dimensions 22.85mm / 0.33mm (X) ~ 69.24,
|
/* BS EN 797:1996 4.5.1 Nominal dimensions 22.85mm / 0.33mm (X) ~ 69.24,
|
||||||
same as minimum GS1 General Specifications 21.0.1 5.12.3.1 */
|
same as minimum GS1 General Specifications 21.0.1 5.12.3.1 */
|
||||||
const float height = stripf(22.85f / 0.33f);
|
const float height = 69.242424f; /* 22.85 / 0.33 */
|
||||||
if (symbol->symbology == BARCODE_UPCE_CC) {
|
if (symbol->symbology == BARCODE_UPCE_CC) {
|
||||||
symbol->height = height; /* Pass back min row == default height */
|
symbol->height = height; /* Pass back min row == default height */
|
||||||
} else {
|
} else {
|
||||||
@ -443,7 +443,7 @@ static int ean13_cc(struct zint_symbol *symbol, const unsigned char source[], in
|
|||||||
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
||||||
/* BS EN 797:1996 4.5.1 Nominal dimensions 22.85mm / 0.33mm (X) ~ 69.24,
|
/* BS EN 797:1996 4.5.1 Nominal dimensions 22.85mm / 0.33mm (X) ~ 69.24,
|
||||||
same as minimum GS1 General Specifications 21.0.1 5.12.3.1 */
|
same as minimum GS1 General Specifications 21.0.1 5.12.3.1 */
|
||||||
const float height = stripf(22.85f / 0.33f);
|
const float height = 69.242424f; /* 22.85 / 0.33 */
|
||||||
if (symbol->symbology == BARCODE_EANX_CC) {
|
if (symbol->symbology == BARCODE_EANX_CC) {
|
||||||
symbol->height = height; /* Pass back min row == default height */
|
symbol->height = height; /* Pass back min row == default height */
|
||||||
} else {
|
} else {
|
||||||
@ -492,7 +492,7 @@ static int ean8_cc(struct zint_symbol *symbol, const unsigned char source[], int
|
|||||||
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
||||||
/* BS EN 797:1996 4.5.1 Nominal dimensions 18.23mm / 0.33mm (X) ~ 55.24,
|
/* BS EN 797:1996 4.5.1 Nominal dimensions 18.23mm / 0.33mm (X) ~ 55.24,
|
||||||
same as minimum GS1 General Specifications 21.0.1 5.12.3.1 */
|
same as minimum GS1 General Specifications 21.0.1 5.12.3.1 */
|
||||||
const float height = stripf(18.23f / 0.33f);
|
const float height = 55.242424f; /* 18.23 / 0.33 */
|
||||||
if (symbol->symbology == BARCODE_EANX_CC) {
|
if (symbol->symbology == BARCODE_EANX_CC) {
|
||||||
symbol->height = height; /* Pass back min row == default height */
|
symbol->height = height; /* Pass back min row == default height */
|
||||||
} else {
|
} else {
|
||||||
@ -817,7 +817,7 @@ INTERNAL int eanx_cc(struct zint_symbol *symbol, unsigned char source[], int src
|
|||||||
ustrcpy(symbol->text, first_part);
|
ustrcpy(symbol->text, first_part);
|
||||||
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
if (symbol->output_options & COMPLIANT_HEIGHT) {
|
||||||
/* 21.9mm from GS1 General Specifications 5.2.6.6, Figure 5.2.6.6-6 */
|
/* 21.9mm from GS1 General Specifications 5.2.6.6, Figure 5.2.6.6-6 */
|
||||||
const float height = stripf(21.9f / 0.33f); /* 21.9mm / 0.33mm ~ 66.36 */
|
const float height = 66.3636398f; /* 21.9 / 0.33 */
|
||||||
error_number = set_height(symbol, height, height, 0.0f, 0 /*no_errtxt*/);
|
error_number = set_height(symbol, height, height, 0.0f, 0 /*no_errtxt*/);
|
||||||
} else {
|
} else {
|
||||||
(void) set_height(symbol, 0.0f, 50.0f, 0.0f, 1 /*no_errtxt*/);
|
(void) set_height(symbol, 0.0f, 50.0f, 0.0f, 1 /*no_errtxt*/);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
* Copyright (C) 2021-2023 by Robin Stuart <rstuart114@gmail.com> *
|
* Copyright (C) 2021-2024 by Robin Stuart <rstuart114@gmail.com> *
|
||||||
* *
|
* *
|
||||||
* This program is free software: you can redistribute it and/or modify *
|
* This program is free software: you can redistribute it and/or modify *
|
||||||
* it under the terms of the GNU General Public License as published by *
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
@ -167,11 +167,14 @@ $(OUT_TXT) : $(SOURCE) $(SOURCE_MAN_PAGE) $(INCLUDES_TXT) Makefile
|
|||||||
-V $(MAIN_FONT) -V $(MONO_FONT) -V $(CJK_FONT) \
|
-V $(MAIN_FONT) -V $(MONO_FONT) -V $(CJK_FONT) \
|
||||||
$(TXT_OPTS) \
|
$(TXT_OPTS) \
|
||||||
-o $(OUT_TXT)
|
-o $(OUT_TXT)
|
||||||
# Indent Man Page sections in TOC, remove trailing spaces and echoed image tags
|
# Indent Man Page sections in TOC, remove trailing spaces, echoed image tags, tbl: hashes
|
||||||
|
# & clean up Table captions
|
||||||
sed -i \
|
sed -i \
|
||||||
-e 's/^\(- [A-Z][A-Z ]*\)$$/ \1/' \
|
-e 's/^\(- [A-Z][A-Z ]*\)$$/ \1/' \
|
||||||
-e 's/ *$$//' \
|
-e 's/ *$$//' \
|
||||||
-e '/^\[.*\]$$/{N;N;s/\[\(.*\)\]\n\n\1/[\1]/;p;d}' \
|
-e '/^\[.*\]$$/{N;N;s/\[\(.*\)\]\n\n\1/[\1]/;p;d}' \
|
||||||
|
-e 's/ *{#tbl:[^}]*}//' \
|
||||||
|
-e 's/: Table\xC2\xA0: \([^:]*\):/Table : \1/' \
|
||||||
$(OUT_TXT)
|
$(OUT_TXT)
|
||||||
# Wrap
|
# Wrap
|
||||||
sed -i '/.\{81\}/{s/.\{80\}/&\n/}' $(OUT_TXT)
|
sed -i '/.\{81\}/{s/.\{80\}/&\n/}' $(OUT_TXT)
|
||||||
|
10
docs/README
10
docs/README
@ -2,8 +2,8 @@ For generation of "docs/manual.pdf" and "docs/manual.txt" from "manual.pmd" usin
|
|||||||
|
|
||||||
On Ubuntu/Debian (tested on Ubuntu 22.04)
|
On Ubuntu/Debian (tested on Ubuntu 22.04)
|
||||||
|
|
||||||
wget https://github.com/jgm/pandoc/releases/download/3.1.11/pandoc-3.1.11-1-amd64.deb
|
wget https://github.com/jgm/pandoc/releases/download/3.1.11.1/pandoc-3.1.11.1-1-amd64.deb
|
||||||
sudo dpkg -i pandoc-3.1.11-1-amd64.deb
|
sudo dpkg -i pandoc-3.1.11.1-1-amd64.deb
|
||||||
sudo apt install python3-pip
|
sudo apt install python3-pip
|
||||||
pip install pandoc-tablenos --user
|
pip install pandoc-tablenos --user
|
||||||
export PATH=~/.local/bin:"$PATH"
|
export PATH=~/.local/bin:"$PATH"
|
||||||
@ -18,9 +18,9 @@ On Ubuntu/Debian (tested on Ubuntu 22.04)
|
|||||||
|
|
||||||
On Fedora (tested on Fedora Linux 38 (Workstation Edition))
|
On Fedora (tested on Fedora Linux 38 (Workstation Edition))
|
||||||
|
|
||||||
wget https://github.com/jgm/pandoc/releases/download/3.1.11/pandoc-3.1.11-linux-amd64.tar.gz
|
wget https://github.com/jgm/pandoc/releases/download/3.1.11.1/pandoc-3.1.11.1-linux-amd64.tar.gz
|
||||||
tar xf pandoc-3.1.11-linux-amd64.tar.gz
|
tar xf pandoc-3.1.11.1-linux-amd64.tar.gz
|
||||||
sudo mv -i pandoc-3.1.11/bin/pandoc /usr/local/bin
|
sudo mv -i pandoc-3.1.11.1/bin/pandoc /usr/local/bin
|
||||||
sudo dnf install python3-pip
|
sudo dnf install python3-pip
|
||||||
pip install pandoc-tablenos --user
|
pip install pandoc-tablenos --user
|
||||||
export PATH=~/.local/bin:"$PATH"
|
export PATH=~/.local/bin:"$PATH"
|
||||||
|
@ -593,7 +593,7 @@ meanings as given below:
|
|||||||
* Insert leading asterisks
|
* Insert leading asterisks
|
||||||
Any other character Interpreted literally
|
Any other character Interpreted literally
|
||||||
|
|
||||||
: Table : Sequence Format Characters:
|
Table : Sequence Format Characters
|
||||||
|
|
||||||
Once you’re happy with the Sequence Data, click the "Export..." button to bring
|
Once you’re happy with the Sequence Data, click the "Export..." button to bring
|
||||||
up the Export Dialog, discussed next.
|
up the Export Dialog, discussed next.
|
||||||
@ -717,7 +717,7 @@ sequences are shown in the table below.
|
|||||||
is hexadecimal (000000-10FFFF)
|
is hexadecimal (000000-10FFFF)
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
: Table : Escape Sequences:
|
Table : Escape Sequences
|
||||||
|
|
||||||
(Special escape sequences are available for Code 128 only to manually switch
|
(Special escape sequences are available for Code 128 only to manually switch
|
||||||
Code Sets - see 6.1.10.1 Standard Code 128 (ISO 15417) for details.)
|
Code Sets - see 6.1.10.1 Standard Code 128 (ISO 15417) for details.)
|
||||||
@ -761,7 +761,7 @@ The currently supported output file formats are shown in the following table.
|
|||||||
tif Tagged Image File Format
|
tif Tagged Image File Format
|
||||||
txt Text file (see 4.19 Other Options)
|
txt Text file (see 4.19 Other Options)
|
||||||
|
|
||||||
: Table : Output File Formats:
|
Table : Output File Formats
|
||||||
|
|
||||||
The filename can contain directories and sub-directories also, which will be
|
The filename can contain directories and sub-directories also, which will be
|
||||||
created if they don’t already exist:
|
created if they don’t already exist:
|
||||||
@ -999,7 +999,7 @@ underscores are optional.
|
|||||||
146 BARCODE_BC412 IBM BC412 (SEMI T1-95)
|
146 BARCODE_BC412 IBM BC412 (SEMI T1-95)
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
: Table : Barcode Types (Symbologies):
|
Table : Barcode Types (Symbologies)
|
||||||
|
|
||||||
4.4 Adjusting Height
|
4.4 Adjusting Height
|
||||||
|
|
||||||
@ -1206,7 +1206,7 @@ To summarize the more intricate details:
|
|||||||
Yes EMF 40 0.1 N/A
|
Yes EMF 40 0.1 N/A
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
|
|
||||||
: Table : Scaling Multipliers and Minima:
|
Table : Scaling Multipliers and Minima
|
||||||
|
|
||||||
4.9.1 Scaling by X-dimension and Resolution
|
4.9.1 Scaling by X-dimension and Resolution
|
||||||
|
|
||||||
@ -1325,7 +1325,7 @@ Latin-2 (ISO/IEC 8859-2 plus ASCII).
|
|||||||
UPNQR Latin-2 N/A
|
UPNQR Latin-2 N/A
|
||||||
All others ASCII N/A
|
All others ASCII N/A
|
||||||
|
|
||||||
: Table : Default Character Sets:
|
Table : Default Character Sets
|
||||||
|
|
||||||
If Zint encounters characters which can not be encoded using the default
|
If Zint encounters characters which can not be encoded using the default
|
||||||
character encoding then it will take advantage of the ECI (Extended Channel
|
character encoding then it will take advantage of the ECI (Extended Channel
|
||||||
@ -1375,7 +1375,7 @@ data. The symbologies that support ECI are
|
|||||||
DotCode MicroPDF417 Ultracode
|
DotCode MicroPDF417 Ultracode
|
||||||
------------- -------------- -----------
|
------------- -------------- -----------
|
||||||
|
|
||||||
: Table : ECI-Aware Symbologies:
|
Table : ECI-Aware Symbologies
|
||||||
|
|
||||||
Be aware that not all barcode readers support ECI mode, so this can sometimes
|
Be aware that not all barcode readers support ECI mode, so this can sometimes
|
||||||
lead to unreadable barcodes. If you are using characters beyond those supported
|
lead to unreadable barcodes. If you are using characters beyond those supported
|
||||||
@ -1422,7 +1422,7 @@ formatted. Zint automatically translates the data into the target encoding.
|
|||||||
170 ISO/IEC 646 Invariant[6]
|
170 ISO/IEC 646 Invariant[6]
|
||||||
899 8-bit binary data
|
899 8-bit binary data
|
||||||
|
|
||||||
: Table : ECI Codes:
|
Table : ECI Codes
|
||||||
|
|
||||||
An ECI value of 0 does not encode any ECI information in the code symbol (unless
|
An ECI value of 0 does not encode any ECI information in the code symbol (unless
|
||||||
the data contains non-default character set characters). In this case, the
|
the data contains non-default character set characters). In this case, the
|
||||||
@ -1525,7 +1525,7 @@ characters in the output filename as shown in the table below:
|
|||||||
@ Insert a number or * (or + on Windows)
|
@ Insert a number or * (or + on Windows)
|
||||||
Any other Insert literally
|
Any other Insert literally
|
||||||
|
|
||||||
: Table : Batch Filename Formatting:
|
Table : Batch Filename Formatting
|
||||||
|
|
||||||
For instance
|
For instance
|
||||||
|
|
||||||
@ -1541,7 +1541,7 @@ The following table shows some examples to clarify this method:
|
|||||||
-o my~~~bar.eps "my001bar.eps", "my002bar.eps", "my003bar.eps"
|
-o my~~~bar.eps "my001bar.eps", "my002bar.eps", "my003bar.eps"
|
||||||
-o t#es~t~.png "t es0t1.png", "t es0t2.png", "t es0t3.png"
|
-o t#es~t~.png "t es0t1.png", "t es0t2.png", "t es0t3.png"
|
||||||
|
|
||||||
: Table : Batch Filename Examples:
|
Table : Batch Filename Examples
|
||||||
|
|
||||||
The special characters can span directories also, which is useful when creating
|
The special characters can span directories also, which is useful when creating
|
||||||
a large number of barcodes:
|
a large number of barcodes:
|
||||||
@ -1551,7 +1551,7 @@ a large number of barcodes:
|
|||||||
-o dir~/file~~~.svg "dir0/file001.svg", "dir0/file002.svg", …
|
-o dir~/file~~~.svg "dir0/file001.svg", "dir0/file002.svg", …
|
||||||
, "dir0/file999.svg", "dir1/file000.svg", …
|
, "dir0/file999.svg", "dir1/file000.svg", …
|
||||||
|
|
||||||
: Table : Batch Directory Examples:
|
Table : Batch Directory Examples
|
||||||
|
|
||||||
For an alternative method of naming output files see the --mirror option in 4.14
|
For an alternative method of naming output files see the --mirror option in 4.14
|
||||||
Automatic Filenames below.
|
Automatic Filenames below.
|
||||||
@ -2204,7 +2204,7 @@ the nature of the error. The errors generated by Zint are:
|
|||||||
ZINT_WARN_HRT_TRUNCATED occurs.
|
ZINT_WARN_HRT_TRUNCATED occurs.
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
: Table : API Warning and Error Return Values:
|
Table : API Warning and Error Return Values
|
||||||
|
|
||||||
To catch errors use an integer variable as shown in the code below:
|
To catch errors use an integer variable as shown in the code below:
|
||||||
|
|
||||||
@ -2562,7 +2562,7 @@ see which are set.
|
|||||||
defined?
|
defined?
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
: Table : API Capability Flags:
|
Table : API Capability Flags
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
@ -2869,7 +2869,7 @@ below:
|
|||||||
5 Modulo-11 (NCR)
|
5 Modulo-11 (NCR)
|
||||||
6 Modulo-11 (NCR) & Modulo-10
|
6 Modulo-11 (NCR) & Modulo-10
|
||||||
|
|
||||||
: Table : MSI Plessey Check Digit Options:
|
Table : MSI Plessey Check Digit Options
|
||||||
|
|
||||||
To not show the check digit or digits in the Human Readable Text, add 10 to the
|
To not show the check digit or digits in the Human Readable Text, add 10 to the
|
||||||
--vers value. For example --vers=12 (API option_2 = 12) will add two hidden
|
--vers value. For example --vers=12 (API option_2 = 12) will add two hidden
|
||||||
@ -3114,7 +3114,7 @@ and is of the form:
|
|||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
: Table : DPD Input Fields:
|
Table : DPD Input Fields
|
||||||
|
|
||||||
A warning will be generated if the Service Code, the Destination Country Code,
|
A warning will be generated if the Service Code, the Destination Country Code,
|
||||||
or the last 10 characters of the Tracking Number are non-numeric.
|
or the last 10 characters of the Tracking Number are non-numeric.
|
||||||
@ -3230,7 +3230,7 @@ the table below:
|
|||||||
7 000000 576688
|
7 000000 576688
|
||||||
8 0000000 7742862
|
8 0000000 7742862
|
||||||
|
|
||||||
: Table : Channel Value Ranges:
|
Table : Channel Value Ranges
|
||||||
|
|
||||||
6.1.14 BC412 (SEMI T1-95)
|
6.1.14 BC412 (SEMI T1-95)
|
||||||
|
|
||||||
@ -3463,7 +3463,7 @@ encoding methods. Valid values are shown below.
|
|||||||
Expanded Stacked component
|
Expanded Stacked component
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
: Table : GS1 Composite Symbology Values:
|
Table : GS1 Composite Symbology Values
|
||||||
|
|
||||||
The data to be encoded in the linear component of a composite symbol should be
|
The data to be encoded in the linear component of a composite symbol should be
|
||||||
entered into a primary string with the data for the 2D component being entered
|
entered into a primary string with the data for the 2D component being entered
|
||||||
@ -3600,7 +3600,7 @@ shown in the following table.
|
|||||||
23 99999999999999999999999 67-bar 62 N
|
23 99999999999999999999999 67-bar 62 N
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
|
|
||||||
: Table : Australia Post Input Formats:
|
Table : Australia Post Input Formats
|
||||||
|
|
||||||
6.5.1.2 Reply Paid Barcode
|
6.5.1.2 Reply Paid Barcode
|
||||||
|
|
||||||
@ -3660,7 +3660,8 @@ the following table.
|
|||||||
|
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
: Table : Royal Mail 4-State Mailmark Input Fields:
|
Table : Royal Mail 4-State Mailmark Input Fields
|
||||||
|
|
||||||
|
|
||||||
The 6 Destination+DPS (Destination Post Code plus Delivery Point Suffix)
|
The 6 Destination+DPS (Destination Post Code plus Delivery Point Suffix)
|
||||||
patterns are:
|
patterns are:
|
||||||
@ -3670,7 +3671,8 @@ patterns are:
|
|||||||
FFNFNLLNL FNNLLNLSS FNNNLLNLS
|
FFNFNLLNL FNNLLNLSS FNNNLLNLS
|
||||||
----------- ----------- -----------
|
----------- ----------- -----------
|
||||||
|
|
||||||
: Table : Royal Mail Mailmark Destination+DPS Patterns:
|
Table : Royal Mail Mailmark Destination+DPS Patterns
|
||||||
|
|
||||||
|
|
||||||
where 'F' stands for full alphabetic (A-Z), 'L' for limited alphabetic (A-Z less
|
where 'F' stands for full alphabetic (A-Z), 'L' for limited alphabetic (A-Z less
|
||||||
'CIKMOV'), 'N' for numeric (0-9), and 'S' for space.
|
'CIKMOV'), 'N' for numeric (0-9), and 'S' for space.
|
||||||
@ -3757,7 +3759,7 @@ standards have now been removed from Zint.
|
|||||||
9 26 x 26 19 88 x 88 29 16 x 36
|
9 26 x 26 19 88 x 88 29 16 x 36
|
||||||
10 32 x 32 20 96 x 96 30 16 x 48
|
10 32 x 32 20 96 x 96 30 16 x 48
|
||||||
|
|
||||||
: Table : Data Matrix Sizes:
|
Table : Data Matrix Sizes
|
||||||
|
|
||||||
The largest version 24 (144 x 144) can encode 3116 digits, around 2335
|
The largest version 24 (144 x 144) can encode 3116 digits, around 2335
|
||||||
alphanumeric characters, or 1555 bytes of data.
|
alphanumeric characters, or 1555 bytes of data.
|
||||||
@ -3781,7 +3783,7 @@ the following values as before:
|
|||||||
38 12 x 88 47 26 x 48
|
38 12 x 88 47 26 x 48
|
||||||
39 16 x 64 48 26 x 64
|
39 16 x 64 48 26 x 64
|
||||||
|
|
||||||
: Table : DMRE Sizes:
|
Table : DMRE Sizes
|
||||||
|
|
||||||
DMRE symbol sizes may be activated in automatic size mode using the option
|
DMRE symbol sizes may be activated in automatic size mode using the option
|
||||||
--dmre (API option_3 = DM_DMRE).
|
--dmre (API option_3 = DM_DMRE).
|
||||||
@ -3828,7 +3830,7 @@ section, as summarized below.
|
|||||||
Reserved 6 Spaces
|
Reserved 6 Spaces
|
||||||
Customer Data 6, 45 or 29 Anything (Latin-1)
|
Customer Data 6, 45 or 29 Anything (Latin-1)
|
||||||
|
|
||||||
: Table : Royal Mail 2D Mailmark Input Fields:
|
Table : Royal Mail 2D Mailmark Input Fields
|
||||||
|
|
||||||
The 6 Destination+DPS (Destination Post Code plus Delivery Point Suffix)
|
The 6 Destination+DPS (Destination Post Code plus Delivery Point Suffix)
|
||||||
patterns are the same as for the 4-state - see Table
|
patterns are the same as for the 4-state - see Table
|
||||||
@ -3841,7 +3843,7 @@ i.e.
|
|||||||
FFNFNLL FNNLLSS FNNNLLS
|
FFNFNLL FNNLLSS FNNNLLS
|
||||||
--------- --------- ---------
|
--------- --------- ---------
|
||||||
|
|
||||||
: Table : Royal Mail 2D Mailmark RTS Patterns:
|
Table : Royal Mail 2D Mailmark RTS Patterns
|
||||||
|
|
||||||
where 'F' is full alphabetic (A-Z), 'L' limited alphabetic (A-Z less 'CIKMOV'),
|
where 'F' is full alphabetic (A-Z), 'L' limited alphabetic (A-Z less 'CIKMOV'),
|
||||||
'N' numeric (0-9), and 'S' space.
|
'N' numeric (0-9), and 'S' space.
|
||||||
@ -3855,7 +3857,7 @@ optional customer data:
|
|||||||
Type 9 32 x 32 45 characters 10
|
Type 9 32 x 32 45 characters 10
|
||||||
Type 29 16 x 48 29 characters 30
|
Type 29 16 x 48 29 characters 30
|
||||||
|
|
||||||
: Table : Royal Mail 2D Mailmark Sizes:
|
Table : Royal Mail 2D Mailmark Sizes
|
||||||
|
|
||||||
Zint will automatically select a size based on the amount of customer data, or
|
Zint will automatically select a size based on the amount of customer data, or
|
||||||
it can be specified using the --vers option (API option_2), which takes the Zint
|
it can be specified using the --vers option (API option_2), which takes the Zint
|
||||||
@ -3882,7 +3884,7 @@ option_1) as shown in the following table.
|
|||||||
3 Q Approx 55% of symbol Approx 25%
|
3 Q Approx 55% of symbol Approx 25%
|
||||||
4 H Approx 65% of symbol Approx 30%
|
4 H Approx 65% of symbol Approx 30%
|
||||||
|
|
||||||
: Table : QR Code ECC Levels:
|
Table : QR Code ECC Levels
|
||||||
|
|
||||||
The size of the symbol can be specified by setting the --vers option (API
|
The size of the symbol can be specified by setting the --vers option (API
|
||||||
option_2) to the QR Code version required (1-40). The size of symbol generated
|
option_2) to the QR Code version required (1-40). The size of symbol generated
|
||||||
@ -3905,7 +3907,7 @@ is shown in the table below.
|
|||||||
13 69 x 69 27 125 x 125
|
13 69 x 69 27 125 x 125
|
||||||
14 73 x 73 28 129 x 129
|
14 73 x 73 28 129 x 129
|
||||||
|
|
||||||
: Table : QR Code Sizes:
|
Table : QR Code Sizes
|
||||||
|
|
||||||
The maximum capacity of a QR Code symbol (version 40) is 7089 numeric digits,
|
The maximum capacity of a QR Code symbol (version 40) is 7089 numeric digits,
|
||||||
4296 alphanumeric characters or 2953 bytes of data. QR Code symbols can also be
|
4296 alphanumeric characters or 2953 bytes of data. QR Code symbols can also be
|
||||||
@ -3963,7 +3965,7 @@ that versions M1 and M2 have restrictions on what characters can be encoded.
|
|||||||
4 M4 17 x 17 Latin-1 and Shift JIS
|
4 M4 17 x 17 Latin-1 and Shift JIS
|
||||||
------------------------------------------------------------------
|
------------------------------------------------------------------
|
||||||
|
|
||||||
: Table : Micro QR Code Sizes:
|
Table : Micro QR Code Sizes
|
||||||
|
|
||||||
Version M4 can encode up to 35 digits, 21 alphanumerics, 15 bytes or 9 Kanji
|
Version M4 can encode up to 35 digits, 21 alphanumerics, 15 bytes or 9 Kanji
|
||||||
characters.
|
characters.
|
||||||
@ -3983,7 +3985,7 @@ not available for any version, and ECC level Q is only available for version M4:
|
|||||||
3 Q Approx 55% of symbol Approx 25% M4
|
3 Q Approx 55% of symbol Approx 25% M4
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
: Table : Micro QR ECC Levels:
|
Table : Micro QR ECC Levels
|
||||||
|
|
||||||
The defaults for symbol size and ECC level depend on the input and whether
|
The defaults for symbol size and ECC level depend on the input and whether
|
||||||
either of them is specified.
|
either of them is specified.
|
||||||
@ -4014,7 +4016,7 @@ valid for this type of symbol.
|
|||||||
2 M Approx 37% of symbol Approx 15%
|
2 M Approx 37% of symbol Approx 15%
|
||||||
4 H Approx 65% of symbol Approx 30%
|
4 H Approx 65% of symbol Approx 30%
|
||||||
|
|
||||||
: Table : rMQR ECC Levels:
|
Table : rMQR ECC Levels
|
||||||
|
|
||||||
The preferred symbol sizes can be selected using the --vers option (API
|
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
|
option_2) as shown in the table below. Input values between 33 and 38 fix the
|
||||||
@ -4062,7 +4064,7 @@ height of the symbol while allowing Zint to determine the minimum symbol width.
|
|||||||
19 R13x59 13 x 59 38 R17xW 17 x automatic width
|
19 R13x59 13 x 59 38 R17xW 17 x automatic width
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
: Table : rMQR Sizes:
|
Table : rMQR Sizes
|
||||||
|
|
||||||
The largest version R17x139 (32) can encode up to 361 digits, 219 alphanumerics,
|
The largest version R17x139 (32) can encode up to 361 digits, 219 alphanumerics,
|
||||||
150 bytes, or 92 Kanji characters.
|
150 bytes, or 92 Kanji characters.
|
||||||
@ -4113,7 +4115,7 @@ message required by Zint is given in the following table.
|
|||||||
10 - 12 Three-digit country code according to ISO 3166-1.
|
10 - 12 Three-digit country code according to ISO 3166-1.
|
||||||
13 - 15 Three-digit service code. This depends on your parcel courier.
|
13 - 15 Three-digit service code. This depends on your parcel courier.
|
||||||
|
|
||||||
: Table : MaxiCode Structured Carrier Message Format:
|
Table : MaxiCode Structured Carrier Message Format
|
||||||
|
|
||||||
The primary message can be set at the command prompt using the --primary switch
|
The primary message can be set at the command prompt using the --primary switch
|
||||||
(API primary). The secondary message uses the normal data entry method. For
|
(API primary). The secondary message uses the normal data entry method. For
|
||||||
@ -4168,7 +4170,7 @@ Example maximum data lengths are given in the table below:
|
|||||||
6 93 138 50
|
6 93 138 50
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
: Table : MaxiCode Data Length Maxima:
|
Table : MaxiCode Data Length Maxima
|
||||||
|
|
||||||
* - secondary only
|
* - secondary only
|
||||||
|
|
||||||
@ -4212,7 +4214,7 @@ a smaller bullseye pattern at the centre of the symbol.
|
|||||||
11 45 x 45 23 95 x 95 35 147 x 147
|
11 45 x 45 23 95 x 95 35 147 x 147
|
||||||
12 49 x 49 24 101 x 101 36 151 x 151
|
12 49 x 49 24 101 x 101 36 151 x 151
|
||||||
|
|
||||||
: Table : Aztec Code Sizes:
|
Table : Aztec Code Sizes
|
||||||
|
|
||||||
Note that in symbols which have a specified size the amount of error correction
|
Note that in symbols which have a specified size the amount of error correction
|
||||||
is dependent on the length of the data input and Zint will allow error
|
is dependent on the length of the data input and Zint will allow error
|
||||||
@ -4228,7 +4230,7 @@ the --secure option (API option_1) to a value from the following table.
|
|||||||
3 >36% + 3 codewords
|
3 >36% + 3 codewords
|
||||||
4 >50% + 3 codewords
|
4 >50% + 3 codewords
|
||||||
|
|
||||||
: Table : Aztec Code Error Correction Modes:
|
Table : Aztec Code Error Correction Modes
|
||||||
|
|
||||||
It is not possible to select both symbol size and error correction capacity for
|
It is not possible to select both symbol size and error correction capacity for
|
||||||
the same symbol. If both options are selected then the error correction capacity
|
the same symbol. If both options are selected then the error correction capacity
|
||||||
@ -4288,7 +4290,7 @@ and variable-width versions (versions S and T). These can be selected by using
|
|||||||
10 T width x 16 90 55
|
10 T width x 16 90 55
|
||||||
--------------------------------------------------------------
|
--------------------------------------------------------------
|
||||||
|
|
||||||
: Table : Code One Sizes:
|
Table : Code One Sizes
|
||||||
|
|
||||||
Version S symbols can only encode numeric data. The width of version S and
|
Version S symbols can only encode numeric data. The width of version S and
|
||||||
version T symbols is determined by the length of the input data.
|
version T symbols is determined by the length of the input data.
|
||||||
@ -4326,7 +4328,7 @@ using the --secure option (API option_1), according to the following tables.
|
|||||||
6 78 x 78 13 162 x 162
|
6 78 x 78 13 162 x 162
|
||||||
7 90 x 90
|
7 90 x 90
|
||||||
|
|
||||||
: Table : Grid Matrix Sizes:
|
Table : Grid Matrix Sizes
|
||||||
|
|
||||||
Mode Error Correction Capacity
|
Mode Error Correction Capacity
|
||||||
------ ---------------------------
|
------ ---------------------------
|
||||||
@ -4336,7 +4338,7 @@ using the --secure option (API option_1), according to the following tables.
|
|||||||
4 Approximately 40%
|
4 Approximately 40%
|
||||||
5 Approximately 50%
|
5 Approximately 50%
|
||||||
|
|
||||||
: Table : Grid Matrix Error Correction Modes:
|
Table : Grid Matrix Error Correction Modes
|
||||||
|
|
||||||
Non-ASCII data density may be maximized by using the --fullmultibyte switch (API
|
Non-ASCII data density may be maximized by using the --fullmultibyte switch (API
|
||||||
option_3 = ZINT_FULL_MULTIBYTE), but check that your barcode reader supports
|
option_3 = ZINT_FULL_MULTIBYTE), but check that your barcode reader supports
|
||||||
@ -4414,7 +4416,7 @@ to a value between 1 and 84 according to the following table.
|
|||||||
27 75 x 75 55 131 x 131 83 187 x 187
|
27 75 x 75 55 131 x 131 83 187 x 187
|
||||||
28 77 x 77 56 133 x 133 84 189 x 189
|
28 77 x 77 56 133 x 133 84 189 x 189
|
||||||
|
|
||||||
: Table : Han Xin Sizes:
|
Table : Han Xin Sizes
|
||||||
|
|
||||||
The largest version (84) can encode 7827 digits, 4350 ASCII characters, up to
|
The largest version (84) can encode 7827 digits, 4350 ASCII characters, up to
|
||||||
2175 Chinese characters, or 3261 bytes, making it the most capacious of all the
|
2175 Chinese characters, or 3261 bytes, making it the most capacious of all the
|
||||||
@ -4431,7 +4433,7 @@ following table.
|
|||||||
3 Approx 23%
|
3 Approx 23%
|
||||||
4 Approx 30%
|
4 Approx 30%
|
||||||
|
|
||||||
: Table : Han Xin Error Correction Modes:
|
Table : Han Xin Error Correction Modes
|
||||||
|
|
||||||
Non-ASCII data density may be maximized by using the --fullmultibyte switch (API
|
Non-ASCII data density may be maximized by using the --fullmultibyte switch (API
|
||||||
option_3 = ZINT_FULL_MULTIBYTE), but check that your barcode reader supports
|
option_3 = ZINT_FULL_MULTIBYTE), but check that your barcode reader supports
|
||||||
@ -4461,7 +4463,7 @@ modes are supported. The amount of error correction can be set using the
|
|||||||
5 EC4 Approx 25%
|
5 EC4 Approx 25%
|
||||||
6 EC5 Approx 33%
|
6 EC5 Approx 33%
|
||||||
|
|
||||||
: Table : Ultracode Error Correction Values:
|
Table : Ultracode Error Correction Values
|
||||||
|
|
||||||
Zint does not currently implement data compression by default, but this can be
|
Zint does not currently implement data compression by default, but this can be
|
||||||
initiated through the API by setting
|
initiated through the API by setting
|
||||||
@ -4505,7 +4507,7 @@ generated using the characters A-E as shown in the table below.
|
|||||||
D Used for Information Based Indicia (IBI) postage.
|
D Used for Information Based Indicia (IBI) postage.
|
||||||
E Used for customized mail with a USPS Intelligent Mail barcode.
|
E Used for customized mail with a USPS Intelligent Mail barcode.
|
||||||
|
|
||||||
: Table : Valid FIM Characters:
|
Table : Valid FIM Characters
|
||||||
|
|
||||||
6.7.2 Flattermarken
|
6.7.2 Flattermarken
|
||||||
|
|
||||||
@ -4695,7 +4697,7 @@ reproduced here for reference.
|
|||||||
E SO RS . > N ^ n ~
|
E SO RS . > N ^ n ~
|
||||||
F SI US / ? O _ o DEL
|
F SI US / ? O _ o DEL
|
||||||
|
|
||||||
: Table : ASCII:
|
Table : ASCII
|
||||||
|
|
||||||
A.2 Latin Alphabet No. 1 (ISO/IEC 8859-1)
|
A.2 Latin Alphabet No. 1 (ISO/IEC 8859-1)
|
||||||
|
|
||||||
@ -4724,7 +4726,7 @@ defined.
|
|||||||
E ® ¾ Î Þ î þ
|
E ® ¾ Î Þ î þ
|
||||||
F ¯ ¿ Ï ß ï ÿ
|
F ¯ ¿ Ï ß ï ÿ
|
||||||
|
|
||||||
: Table : ISO/IEC 8859-1:
|
Table : ISO/IEC 8859-1
|
||||||
|
|
||||||
Annex B. Qt Backend QZint
|
Annex B. Qt Backend QZint
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.\" Automatically generated by Pandoc 3.1.11
|
.\" Automatically generated by Pandoc 3.1.11.1
|
||||||
.\"
|
.\"
|
||||||
.TH "ZINT" "1" "January 2024" "Version 2.13.0.9" ""
|
.TH "ZINT" "1" "January 2024" "Version 2.13.0.9" ""
|
||||||
.SH NAME
|
.SH NAME
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* main.c - Command line handling routines for Zint */
|
/* main.c - Command line handling routines for Zint */
|
||||||
/*
|
/*
|
||||||
libzint - the open source barcode library
|
libzint - the open source barcode library
|
||||||
Copyright (C) 2008-2023 Robin Stuart <rstuart114@gmail.com>
|
Copyright (C) 2008-2024 Robin Stuart <rstuart114@gmail.com>
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
#ifndef _MSC_VER
|
#ifndef _MSC_VER
|
||||||
# include <getopt.h>
|
# include <getopt.h>
|
||||||
# ifdef __NetBSD__ /* `getopt_long_only()` not available */
|
# if defined(__NetBSD__) && !defined(getopt_long_only) /* `getopt_long_only()` not available */
|
||||||
# define getopt_long_only getopt_long
|
# define getopt_long_only getopt_long
|
||||||
# endif
|
# endif
|
||||||
# include <zint.h>
|
# include <zint.h>
|
||||||
@ -1817,13 +1817,11 @@ int main(int argc, char **argv) {
|
|||||||
return do_exit(ZINT_ERROR_INVALID_OPTION);
|
return do_exit(ZINT_ERROR_INVALID_OPTION);
|
||||||
}
|
}
|
||||||
switch (val) {
|
switch (val) {
|
||||||
case 90: rotate_angle = 90;
|
case 0:
|
||||||
break;
|
case 90:
|
||||||
case 180: rotate_angle = 180;
|
case 180:
|
||||||
break;
|
case 270:
|
||||||
case 270: rotate_angle = 270;
|
rotate_angle = val;
|
||||||
break;
|
|
||||||
case 0: rotate_angle = 0;
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
|
Loading…
Reference in New Issue
Block a user