libzint.so: suppress exporting INTERNAL functions to the shared library; ZINT_TEST

This commit is contained in:
gitlost 2019-12-19 00:37:55 +00:00
parent c524d32227
commit bca82ecc0d
58 changed files with 489 additions and 491 deletions

View File

@ -19,6 +19,7 @@ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules" )
set(ZINT_DEBUG FALSE CACHE BOOL "Set debug compile flag") set(ZINT_DEBUG FALSE CACHE BOOL "Set debug compile flag")
set(ZINT_SANITIZE FALSE CACHE BOOL "Set sanitize compile/link flags") set(ZINT_SANITIZE FALSE CACHE BOOL "Set sanitize compile/link flags")
set(ZINT_TEST FALSE CACHE BOOL "Set test compile flag")
include (SetPaths.cmake) include (SetPaths.cmake)
@ -38,6 +39,9 @@ if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC)
add_compile_options("-fsanitize=address") add_compile_options("-fsanitize=address")
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=undefined -fsanitize=address") set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=undefined -fsanitize=address")
endif (ZINT_SANITIZE) endif (ZINT_SANITIZE)
if (ZINT_TEST)
add_definitions("-DZINT_TEST")
endif (ZINT_TEST)
endif (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) endif (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC)

View File

@ -29,6 +29,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
@ -59,7 +60,7 @@ static inline char check_digit(unsigned int count) {
} }
/* Code 2 of 5 Standard (Code 2 of 5 Matrix) */ /* Code 2 of 5 Standard (Code 2 of 5 Matrix) */
int matrix_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int matrix_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number; int i, error_number;
char dest[512]; /* 6 + 80 * 6 + 6 + 1 ~ 512*/ char dest[512]; /* 6 + 80 * 6 + 6 + 1 ~ 512*/
@ -90,7 +91,7 @@ int matrix_two_of_five(struct zint_symbol *symbol, unsigned char source[], int l
} }
/* Code 2 of 5 Industrial */ /* Code 2 of 5 Industrial */
int industrial_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int industrial_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number; int i, error_number;
char dest[512]; /* 6 + 40 * 10 + 6 + 1 */ char dest[512]; /* 6 + 40 * 10 + 6 + 1 */
@ -121,7 +122,7 @@ int industrial_two_of_five(struct zint_symbol *symbol, unsigned char source[], i
} }
/* Code 2 of 5 IATA */ /* Code 2 of 5 IATA */
int iata_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int iata_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number; int i, error_number;
char dest[512]; /* 4 + 45 * 10 + 3 + 1 */ char dest[512]; /* 4 + 45 * 10 + 3 + 1 */
@ -151,7 +152,7 @@ int iata_two_of_five(struct zint_symbol *symbol, unsigned char source[], int len
} }
/* Code 2 of 5 Data Logic */ /* Code 2 of 5 Data Logic */
int logic_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int logic_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number; int i, error_number;
char dest[512]; /* 4 + 80 * 6 + 3 + 1 */ char dest[512]; /* 4 + 80 * 6 + 3 + 1 */
@ -182,7 +183,7 @@ int logic_two_of_five(struct zint_symbol *symbol, unsigned char source[], int le
} }
/* Code 2 of 5 Interleaved */ /* Code 2 of 5 Interleaved */
int interleaved_two_of_five(struct zint_symbol *symbol, const unsigned char source[], size_t length) { INTERNAL int interleaved_two_of_five(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
int i, j, error_number; int i, j, error_number;
char bars[7], spaces[7], mixed[14], dest[1000]; char bars[7], spaces[7], mixed[14], dest[1000];
@ -243,7 +244,7 @@ int interleaved_two_of_five(struct zint_symbol *symbol, const unsigned char sour
} }
/* Interleaved 2-of-5 (ITF) */ /* Interleaved 2-of-5 (ITF) */
int itf14(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int itf14(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number, zeroes; int i, error_number, zeroes;
unsigned int count; unsigned int count;
char localstr[16]; char localstr[16];
@ -284,7 +285,7 @@ int itf14(struct zint_symbol *symbol, unsigned char source[], int length) {
} }
/* Deutshe Post Leitcode */ /* Deutshe Post Leitcode */
int dpleit(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int dpleit(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number; int i, error_number;
unsigned int count; unsigned int count;
char localstr[16]; char localstr[16];
@ -321,7 +322,7 @@ int dpleit(struct zint_symbol *symbol, unsigned char source[], int length) {
} }
/* Deutsche Post Identcode */ /* Deutsche Post Identcode */
int dpident(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int dpident(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number, zeroes; int i, error_number, zeroes;
unsigned int count; unsigned int count;
char localstr[16]; char localstr[16];
@ -355,5 +356,3 @@ int dpident(struct zint_symbol *symbol, unsigned char source[], int length) {
ustrcpy(symbol->text, (unsigned char*) localstr); ustrcpy(symbol->text, (unsigned char*) localstr);
return error_number; return error_number;
} }

View File

@ -29,6 +29,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
#define GDSET "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz #" #define GDSET "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz #"
@ -68,7 +69,7 @@ static inline char convert_pattern(char data, int shift) {
} }
/* Adds Reed-Solomon error correction to auspost */ /* Adds Reed-Solomon error correction to auspost */
void rs_error(char data_pattern[]) { static void rs_error(char data_pattern[]) {
size_t reader, triple_writer = 0; size_t reader, triple_writer = 0;
char triple[31]; char triple[31];
unsigned char result[5]; unsigned char result[5];
@ -90,7 +91,7 @@ void rs_error(char data_pattern[]) {
} }
/* Handles Australia Posts's 4 State Codes */ /* Handles Australia Posts's 4 State Codes */
int australia_post(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int australia_post(struct zint_symbol *symbol, unsigned char source[], int length) {
/* Customer Standard Barcode, Barcode 2 or Barcode 3 system determined automatically /* Customer Standard Barcode, Barcode 2 or Barcode 3 system determined automatically
(i.e. the FCC doesn't need to be specified by the user) dependent (i.e. the FCC doesn't need to be specified by the user) dependent
on the length of the input string */ on the length of the input string */
@ -248,6 +249,3 @@ int australia_post(struct zint_symbol *symbol, unsigned char source[], int lengt
return error_number; return error_number;
} }

View File

@ -970,7 +970,7 @@ static void populate_map() {
AztecMap[(avoidReferenceGrid(76) * 151) + avoidReferenceGrid(77)] = 1; AztecMap[(avoidReferenceGrid(76) * 151) + avoidReferenceGrid(77)] = 1;
} }
int aztec(struct zint_symbol *symbol, unsigned char source[], const size_t length) { INTERNAL int aztec(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
int x, y, i, j, p, data_blocks, ecc_blocks, layers, total_bits; int x, y, i, j, p, data_blocks, ecc_blocks, layers, total_bits;
char binary_string[20000], bit_pattern[20045], descriptor[42]; char binary_string[20000], bit_pattern[20045], descriptor[42];
char adjusted_string[20000]; char adjusted_string[20000];
@ -1582,7 +1582,7 @@ int aztec(struct zint_symbol *symbol, unsigned char source[], const size_t lengt
} }
/* Encodes Aztec runes as specified in ISO/IEC 24778:2008 Annex A */ /* Encodes Aztec runes as specified in ISO/IEC 24778:2008 Annex A */
int aztec_runes(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int aztec_runes(struct zint_symbol *symbol, unsigned char source[], int length) {
int input_value, error_number, i, y, x; int input_value, error_number, i, y, x;
char binary_string[28]; char binary_string[28];
unsigned char data_codewords[3], ecc_codewords[6]; unsigned char data_codewords[3], ecc_codewords[6];
@ -1692,4 +1692,3 @@ int aztec_runes(struct zint_symbol *symbol, unsigned char source[], int length)
return 0; return 0;
} }

View File

@ -29,6 +29,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
@ -43,7 +44,7 @@
#define SSET "0123456789ABCDEF" #define SSET "0123456789ABCDEF"
int bmp_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) { INTERNAL int bmp_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
int i, row, column; int i, row, column;
int fgred, fggrn, fgblu, bgred, bggrn, bgblu; int fgred, fggrn, fgblu, bgred, bggrn, bgblu;
int row_size; int row_size;
@ -145,4 +146,3 @@ int bmp_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
free(bitmap); free(bitmap);
return 0; return 0;
} }

View File

@ -94,7 +94,7 @@ typedef struct sCharacterSetTable
* The result is an or of CodeA,CodeB,CodeC,CodeFNC1 in dependency of the * The result is an or of CodeA,CodeB,CodeC,CodeFNC1 in dependency of the
* possible Code 128 character sets. * possible Code 128 character sets.
*/ */
int GetPossibleCharacterSet(unsigned char C) static int GetPossibleCharacterSet(unsigned char C)
{ {
if (C<='\x19') /* Dec:31 */ if (C<='\x19') /* Dec:31 */
return CodeA; return CodeA;
@ -173,7 +173,7 @@ static void CreateCharacterSetTable(CharacterSetTable T[], unsigned char *data,c
* one bundle into the line (up to here). This is calculated online because * one bundle into the line (up to here). This is calculated online because
* it depends on the space in the line. * it depends on the space in the line.
*/ */
int RemainingDigits(CharacterSetTable *T, int charCur,int emptyColumns) static int RemainingDigits(CharacterSetTable *T, int charCur,int emptyColumns)
{ {
int digitCount; /* Numerical digits fitting in the line */ int digitCount; /* Numerical digits fitting in the line */
int runChar; int runChar;
@ -541,7 +541,7 @@ static int Rows2Columns(CharacterSetTable *T, unsigned char *data, const size_t
/* Print a character in character set A /* Print a character in character set A
*/ */
void A2C128_A(uchar **ppOutPos,uchar c) static void A2C128_A(uchar **ppOutPos,uchar c)
{ {
uchar * pOutPos = *ppOutPos; uchar * pOutPos = *ppOutPos;
switch(c){ switch(c){
@ -564,7 +564,7 @@ void A2C128_A(uchar **ppOutPos,uchar c)
} }
/* Output c in Set B /* Output c in Set B
*/ */
void A2C128_B(uchar **ppOutPos,uchar c) static void A2C128_B(uchar **ppOutPos,uchar c)
{ {
uchar * pOutPos = *ppOutPos; uchar * pOutPos = *ppOutPos;
switch(c){ switch(c){
@ -581,7 +581,7 @@ void A2C128_B(uchar **ppOutPos,uchar c)
} }
/* Output c1, c2 in Set C /* Output c1, c2 in Set C
*/ */
void A2C128_C(uchar **ppOutPos,uchar c1,uchar c2) static void A2C128_C(uchar **ppOutPos,uchar c1,uchar c2)
{ {
uchar * pOutPos = *ppOutPos; uchar * pOutPos = *ppOutPos;
switch(c1){ switch(c1){
@ -594,7 +594,7 @@ void A2C128_C(uchar **ppOutPos,uchar c1,uchar c2)
} }
/* Output a character in Characterset /* Output a character in Characterset
*/ */
void ASCIIZ128(uchar **ppOutPos, int CharacterSet,uchar c1, uchar c2) static void ASCIIZ128(uchar **ppOutPos, int CharacterSet,uchar c1, uchar c2)
{ {
if (CharacterSet==CodeA) if (CharacterSet==CodeA)
A2C128_A(ppOutPos,c1); A2C128_A(ppOutPos,c1);
@ -605,7 +605,7 @@ void ASCIIZ128(uchar **ppOutPos, int CharacterSet,uchar c1, uchar c2)
} }
/* XLate Table A of Codablock-F Specification and call output /* XLate Table A of Codablock-F Specification and call output
*/ */
void SumASCII(uchar **ppOutPos, int Sum, int CharacterSet) static void SumASCII(uchar **ppOutPos, int Sum, int CharacterSet)
{ {
switch (CharacterSet){ switch (CharacterSet){
case CodeA: case CodeA:
@ -628,7 +628,7 @@ void SumASCII(uchar **ppOutPos, int Sum, int CharacterSet)
/* Main function called by zint framework /* Main function called by zint framework
*/ */
int codablock(struct zint_symbol *symbol,const unsigned char source[], const size_t length) { INTERNAL int codablock(struct zint_symbol *symbol,const unsigned char source[], const size_t length) {
size_t charCur,dataLength; size_t charCur,dataLength;
int Error; int Error;
int rows, columns, useColumns; int rows, columns, useColumns;
@ -1005,5 +1005,3 @@ int codablock(struct zint_symbol *symbol,const unsigned char source[], const siz
} }
return 0; return 0;
} }

View File

@ -29,6 +29,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
/* In version 0.5 this file was 1,553 lines long! */ /* In version 0.5 this file was 1,553 lines long! */
@ -95,17 +96,17 @@ static const char *C93Table[47] = {
}; };
/* Global Variables for Channel Code */ /* Global Variables for Channel Code */
int S[11], B[11]; static int S[11], B[11];
long value; static long value;
long target_value; static long target_value;
char pattern[30]; static char pattern[30];
/* Function Prototypes */ /* Function Prototypes */
void NextS(int Chan, int i, int MaxS, int MaxB); static void NextS(int Chan, int i, int MaxS, int MaxB);
void NextB(int Chan, int i, int MaxB, int MaxS); static void NextB(int Chan, int i, int MaxB, int MaxS);
/* *********************** CODE 11 ******************** */ /* *********************** CODE 11 ******************** */
int code_11(struct zint_symbol *symbol, unsigned char source[], int length) { /* Code 11 */ INTERNAL int code_11(struct zint_symbol *symbol, unsigned char source[], int length) { /* Code 11 */
unsigned int i; unsigned int i;
int h, c_digit, c_weight, c_count, k_digit, k_weight, k_count; int h, c_digit, c_weight, c_count, k_digit, k_weight, k_count;
@ -186,7 +187,7 @@ int code_11(struct zint_symbol *symbol, unsigned char source[], int length) { /*
} }
/* Code 39 */ /* Code 39 */
int c39(struct zint_symbol *symbol, unsigned char source[], const size_t length) { INTERNAL int c39(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
unsigned int i; unsigned int i;
unsigned int counter; unsigned int counter;
int error_number; int error_number;
@ -290,7 +291,7 @@ int c39(struct zint_symbol *symbol, unsigned char source[], const size_t length)
} }
/* Pharmazentral Nummer (PZN) */ /* Pharmazentral Nummer (PZN) */
int pharmazentral(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int pharmazentral(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number, zeroes; int i, error_number, zeroes;
unsigned int count, check_digit; unsigned int count, check_digit;
@ -334,7 +335,7 @@ int pharmazentral(struct zint_symbol *symbol, unsigned char source[], int length
} }
/* Extended Code 39 - ISO/IEC 16388:2007 Annex A */ /* Extended Code 39 - ISO/IEC 16388:2007 Annex A */
int ec39(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int ec39(struct zint_symbol *symbol, unsigned char source[], int length) {
unsigned char buffer[150] = {0}; unsigned char buffer[150] = {0};
unsigned int i; unsigned int i;
@ -366,7 +367,7 @@ int ec39(struct zint_symbol *symbol, unsigned char source[], int length) {
} }
/* Code 93 is an advancement on Code 39 and the definition is a lot tighter */ /* Code 93 is an advancement on Code 39 and the definition is a lot tighter */
int c93(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int c93(struct zint_symbol *symbol, unsigned char source[], int length) {
/* SILVER includes the extra characters a, b, c and d to represent Code 93 specific /* SILVER includes the extra characters a, b, c and d to represent Code 93 specific
shift characters 1, 2, 3 and 4 respectively. These characters are never used by shift characters 1, 2, 3 and 4 respectively. These characters are never used by
@ -465,7 +466,7 @@ int c93(struct zint_symbol *symbol, unsigned char source[], int length) {
licenses and fees. AIM USA, its member companies, or individual officers licenses and fees. AIM USA, its member companies, or individual officers
assume no liability for the use of this document." */ assume no liability for the use of this document." */
void CheckCharacter() { static void CheckCharacter() {
if (value == target_value) { if (value == target_value) {
int i; int i;
@ -481,7 +482,7 @@ void CheckCharacter() {
} }
} }
void NextB(int Chan, int i, int MaxB, int MaxS) { static void NextB(int Chan, int i, int MaxB, int MaxS) {
int b; int b;
b = (S[i] + B[i - 1] + S[i - 1] + B[i - 2] > 4) ? 1 : 2; b = (S[i] + B[i - 1] + S[i - 1] + B[i - 2] > 4) ? 1 : 2;
@ -497,7 +498,7 @@ void NextB(int Chan, int i, int MaxB, int MaxS) {
} }
} }
void NextS(int Chan, int i, int MaxS, int MaxB) { static void NextS(int Chan, int i, int MaxS, int MaxB) {
int s; int s;
for (s = (i < Chan + 2) ? 1 : MaxS; s <= MaxS; s++) { for (s = (i < Chan + 2) ? 1 : MaxS; s <= MaxS; s++) {
@ -507,7 +508,7 @@ void NextS(int Chan, int i, int MaxS, int MaxB) {
} }
/* Channel Code - According to ANSI/AIM BC12-1998 */ /* Channel Code - According to ANSI/AIM BC12-1998 */
int channel_code(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int channel_code(struct zint_symbol *symbol, unsigned char source[], int length) {
int channels, i; int channels, i;
int error_number = 0, range = 0, zeroes; int error_number = 0, range = 0, zeroes;
char hrt[9]; char hrt[9];
@ -596,7 +597,7 @@ int channel_code(struct zint_symbol *symbol, unsigned char source[], int length)
/* Vehicle Identification Number (VIN) */ /* Vehicle Identification Number (VIN) */
int vin(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length) { INTERNAL int vin(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length) {
/* This code verifies the check digit present in North American VIN codes */ /* This code verifies the check digit present in North American VIN codes */
@ -692,4 +693,3 @@ int vin(struct zint_symbol *symbol, const unsigned char source[], const size_t i
return 0; return 0;
} }

View File

@ -39,7 +39,7 @@
#include <string.h> #include <string.h>
#include <math.h> #include <math.h>
void horiz(struct zint_symbol *symbol, int row_no, int full) { static void horiz(struct zint_symbol *symbol, int row_no, int full) {
int i; int i;
if (full) { if (full) {
@ -53,7 +53,7 @@ void horiz(struct zint_symbol *symbol, int row_no, int full) {
} }
} }
void central_finder(struct zint_symbol *symbol, int start_row, int row_count, int full_rows) { static void central_finder(struct zint_symbol *symbol, int start_row, int row_count, int full_rows) {
int i; int i;
for (i = 0; i < row_count; i++) { for (i = 0; i < row_count; i++) {
@ -69,7 +69,7 @@ void central_finder(struct zint_symbol *symbol, int start_row, int row_count, in
} }
} }
void vert(struct zint_symbol *symbol, int column, int height, int top) { static void vert(struct zint_symbol *symbol, int column, int height, int top) {
int i; int i;
if (top) { if (top) {
@ -83,7 +83,7 @@ void vert(struct zint_symbol *symbol, int column, int height, int top) {
} }
} }
void spigot(struct zint_symbol *symbol, int row_no) { static void spigot(struct zint_symbol *symbol, int row_no) {
int i; int i;
for (i = symbol->width - 1; i > 0; i--) { for (i = symbol->width - 1; i > 0; i--) {
@ -93,7 +93,7 @@ void spigot(struct zint_symbol *symbol, int row_no) {
} }
} }
int isedi(unsigned char input) { static int isedi(unsigned char input) {
int result = 0; int result = 0;
if (input == 13) { if (input == 13) {
@ -118,7 +118,7 @@ int isedi(unsigned char input) {
return result; return result;
} }
int dq4bi(unsigned char source[], int sourcelen, int position) { static int dq4bi(unsigned char source[], int sourcelen, int position) {
int i; int i;
for (i = position; isedi(source[position + i]) && ((position + i) < sourcelen); i++); for (i = position; isedi(source[position + i]) && ((position + i) < sourcelen); i++);
@ -350,7 +350,7 @@ static int c1_look_ahead_test(unsigned char source[], int sourcelen, int positio
return best_scheme; return best_scheme;
} }
int c1_encode(struct zint_symbol *symbol, unsigned char source[], unsigned int target[], int length) { static int c1_encode(struct zint_symbol *symbol, unsigned char source[], unsigned int target[], int length) {
int current_mode, next_mode; int current_mode, next_mode;
int sp, tp, gs1, i, j, p, latch; int sp, tp, gs1, i, j, p, latch;
int c40_buffer[6], c40_p; int c40_buffer[6], c40_p;
@ -1172,7 +1172,7 @@ int c1_encode(struct zint_symbol *symbol, unsigned char source[], unsigned int t
return tp; return tp;
} }
void block_copy(struct zint_symbol *symbol, char grid[][120], int start_row, int start_col, int height, int width, int row_offset, int col_offset) { static void block_copy(struct zint_symbol *symbol, char grid[][120], int start_row, int start_col, int height, int width, int row_offset, int col_offset) {
int i, j; int i, j;
for (i = start_row; i < (start_row + height); i++) { for (i = start_row; i < (start_row + height); i++) {
@ -1184,7 +1184,7 @@ void block_copy(struct zint_symbol *symbol, char grid[][120], int start_row, int
} }
} }
int code_one(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int code_one(struct zint_symbol *symbol, unsigned char source[], int length) {
int size = 1, i, j; int size = 1, i, j;
char datagrid[136][120]; char datagrid[136][120];
@ -1770,5 +1770,3 @@ int code_one(struct zint_symbol *symbol, unsigned char source[], int length) {
return 0; return 0;
} }

View File

@ -76,7 +76,7 @@ static const char *C128Table[107] = {
}; };
/* Determine appropriate mode for a given character */ /* Determine appropriate mode for a given character */
int parunmodd(const unsigned char llyth) { INTERNAL int parunmodd(const unsigned char llyth) {
int modd; int modd;
modd = 0; modd = 0;
@ -102,7 +102,7 @@ int parunmodd(const unsigned char llyth) {
/** /**
* bring together same type blocks * bring together same type blocks
*/ */
void grwp(int *indexliste) { static void grwp(int *indexliste) {
/* bring together same type blocks */ /* bring together same type blocks */
if (*(indexliste) > 1) { if (*(indexliste) > 1) {
@ -131,7 +131,7 @@ void grwp(int *indexliste) {
/** /**
* Implements rules from ISO 15417 Annex E * Implements rules from ISO 15417 Annex E
*/ */
void dxsmooth(int *indexliste) { static void dxsmooth(int *indexliste) {
int i, last, next; int i, last, next;
for (i = 0; i < *(indexliste); i++) { for (i = 0; i < *(indexliste); i++) {
@ -241,7 +241,7 @@ void dxsmooth(int *indexliste) {
* Translate Code 128 Set A characters into barcodes. * Translate Code 128 Set A characters into barcodes.
* This set handles all control characters NULL to US. * This set handles all control characters NULL to US.
*/ */
void c128_set_a(unsigned char source, char dest[], int values[], int *bar_chars) { static void c128_set_a(unsigned char source, char dest[], int values[], int *bar_chars) {
if (source > 127) { if (source > 127) {
if (source < 160) { if (source < 160) {
@ -268,7 +268,7 @@ void c128_set_a(unsigned char source, char dest[], int values[], int *bar_chars)
* This set handles all characters which are not part of long numbers and not * This set handles all characters which are not part of long numbers and not
* control characters. * control characters.
*/ */
void c128_set_b(unsigned char source, char dest[], int values[], int *bar_chars) { static void c128_set_b(unsigned char source, char dest[], int values[], int *bar_chars) {
if (source > 127) { if (source > 127) {
strcat(dest, C128Table[source - 32 - 128]); strcat(dest, C128Table[source - 32 - 128]);
values[(*bar_chars)] = source - 32 - 128; values[(*bar_chars)] = source - 32 - 128;
@ -282,7 +282,7 @@ void c128_set_b(unsigned char source, char dest[], int values[], int *bar_chars)
/* Translate Code 128 Set C characters into barcodes /* Translate Code 128 Set C characters into barcodes
* This set handles numbers in a compressed form * This set handles numbers in a compressed form
*/ */
void c128_set_c(unsigned char source_a, unsigned char source_b, char dest[], int values[], int *bar_chars) { static void c128_set_c(unsigned char source_a, unsigned char source_b, char dest[], int values[], int *bar_chars) {
int weight; int weight;
weight = (10 * ctoi(source_a)) + ctoi(source_b); weight = (10 * ctoi(source_a)) + ctoi(source_b);
@ -292,7 +292,7 @@ void c128_set_c(unsigned char source_a, unsigned char source_b, char dest[], int
} }
/* Handle Code 128 and NVE-18 */ /* Handle Code 128 and NVE-18 */
int code_128(struct zint_symbol *symbol, unsigned char source[], const size_t length) { INTERNAL int code_128(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
int i, j, k, values[170] = {0}, bar_characters, read, total_sum; int i, j, k, values[170] = {0}, bar_characters, read, total_sum;
int error_number, indexchaine, indexliste, f_state; int error_number, indexchaine, indexliste, f_state;
size_t sourcelen; size_t sourcelen;
@ -683,7 +683,7 @@ int code_128(struct zint_symbol *symbol, unsigned char source[], const size_t le
} }
/* Handle EAN-128 (Now known as GS1-128) */ /* Handle EAN-128 (Now known as GS1-128) */
int ean_128(struct zint_symbol *symbol, unsigned char source[], const size_t length) { INTERNAL int ean_128(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
int i, j, values[170], bar_characters, read, total_sum; int i, j, values[170], bar_characters, read, total_sum;
int error_number, indexchaine, indexliste; int error_number, indexchaine, indexliste;
char set[170], mode, last_set; char set[170], mode, last_set;
@ -994,7 +994,7 @@ int ean_128(struct zint_symbol *symbol, unsigned char source[], const size_t len
} }
/* Add check digit if encoding an NVE18 symbol */ /* Add check digit if encoding an NVE18 symbol */
int nve_18(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int nve_18(struct zint_symbol *symbol, unsigned char source[], int length) {
int error_number, zeroes, i, nve_check, total_sum, sourcelen; int error_number, zeroes, i, nve_check, total_sum, sourcelen;
unsigned char ean128_equiv[25]; unsigned char ean128_equiv[25];
@ -1037,7 +1037,7 @@ int nve_18(struct zint_symbol *symbol, unsigned char source[], int length) {
} }
/* EAN-14 - A version of EAN-128 */ /* EAN-14 - A version of EAN-128 */
int ean_14(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int ean_14(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, count, check_digit; int i, count, check_digit;
int error_number, zeroes; int error_number, zeroes;
unsigned char ean128_equiv[20]; unsigned char ean128_equiv[20];
@ -1077,5 +1077,3 @@ int ean_14(struct zint_symbol *symbol, unsigned char source[], int length) {
return error_number; return error_number;
} }

View File

@ -53,7 +53,7 @@
#define CANDB 98 #define CANDB 98
#define CANDBB 99 #define CANDBB 99
extern int parunmodd(const unsigned char llyth); INTERNAL int parunmodd(const unsigned char llyth);
static int list[2][170]; static int list[2][170];
@ -257,7 +257,7 @@ static void c16k_set_c(const unsigned char source_a, unsigned char source_b, uns
(*bar_chars)++; (*bar_chars)++;
} }
int code16k(struct zint_symbol *symbol, unsigned char source[], const size_t length) { INTERNAL int code16k(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
char width_pattern[100]; char width_pattern[100];
int current_row, rows_needed, looper, first_check, second_check; int current_row, rows_needed, looper, first_check, second_check;
int indexchaine, f_state; int indexchaine, f_state;
@ -732,6 +732,3 @@ int code16k(struct zint_symbol *symbol, unsigned char source[], const size_t len
symbol->width = 70; symbol->width = 70;
return errornum; return errornum;
} }

View File

@ -41,7 +41,7 @@
/* "!" represents Shift 1 and "&" represents Shift 2, "*" represents FNC1 */ /* "!" represents Shift 1 and "&" represents Shift 2, "*" represents FNC1 */
int code_49(struct zint_symbol *symbol, unsigned char source[], const int length) { INTERNAL int code_49(struct zint_symbol *symbol, unsigned char source[], const int length) {
int i, j, rows, M, x_count, y_count, z_count, posn_val, local_value; int i, j, rows, M, x_count, y_count, z_count, posn_val, local_value;
char intermediate[170] = ""; char intermediate[170] = "";
int codewords[170], codeword_count; int codewords[170], codeword_count;
@ -344,4 +344,3 @@ int code_49(struct zint_symbol *symbol, unsigned char source[], const int length
return 0; return 0;
} }

View File

@ -32,16 +32,15 @@
/* vim: set ts=4 sw=4 et : */ /* vim: set ts=4 sw=4 et : */
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#include "common.h" #include "common.h"
/* Local replacement for strlen() with unsigned char strings */ /* Local replacement for strlen() with unsigned char strings */
size_t ustrlen(const unsigned char data[]) { INTERNAL size_t ustrlen(const unsigned char data[]) {
return strlen((const char*) data); return strlen((const char*) data);
} }
/* Converts a character 0-9 to its equivalent integer value */ /* Converts a character 0-9 to its equivalent integer value */
int ctoi(const char source) { INTERNAL int ctoi(const char source) {
if ((source >= '0') && (source <= '9')) if ((source >= '0') && (source <= '9'))
return (source - '0'); return (source - '0');
if ((source >= 'A') && (source <= 'F')) if ((source >= 'A') && (source <= 'F'))
@ -51,9 +50,8 @@ int ctoi(const char source) {
return -1; return -1;
} }
/* Convert an integer value to a string representing its binary equivalent */ /* Convert an integer value to a string representing its binary equivalent */
void bin_append(const int arg, const int length, char *binary) { INTERNAL void bin_append(const int arg, const int length, char *binary) {
size_t posn = strlen(binary); size_t posn = strlen(binary);
bin_append_posn(arg, length, binary, posn); bin_append_posn(arg, length, binary, posn);
@ -62,7 +60,7 @@ void bin_append(const int arg, const int length, char *binary) {
} }
/* Convert an integer value to a string representing its binary equivalent at a set position */ /* Convert an integer value to a string representing its binary equivalent at a set position */
void bin_append_posn(const int arg, const int length, char *binary, size_t posn) { INTERNAL void bin_append_posn(const int arg, const int length, char *binary, size_t posn) {
int i; int i;
int start; int start;
@ -77,15 +75,16 @@ void bin_append_posn(const int arg, const int length, char *binary, size_t posn)
} }
/* Converts an integer value to its hexadecimal character */ /* Converts an integer value to its hexadecimal character */
char itoc(const int source) { INTERNAL char itoc(const int source) {
if ((source >= 0) && (source <= 9)) { if ((source >= 0) && (source <= 9)) {
return ('0' + source); return ('0' + source);
} else { } else {
return ('A' + (source - 10)); return ('A' + (source - 10));
} }
} }
/* Converts lower case characters to upper case in a string source[] */ /* Converts lower case characters to upper case in a string source[] */
void to_upper(unsigned char source[]) { INTERNAL void to_upper(unsigned char source[]) {
size_t i, src_len = ustrlen(source); size_t i, src_len = ustrlen(source);
for (i = 0; i < src_len; i++) { for (i = 0; i < src_len; i++) {
@ -96,7 +95,7 @@ void to_upper(unsigned char source[]) {
} }
/* Verifies that a string only uses valid characters */ /* Verifies that a string only uses valid characters */
int is_sane(const char test_string[], const unsigned char source[], const size_t length) { INTERNAL int is_sane(const char test_string[], const unsigned char source[], const size_t length) {
unsigned int j; unsigned int j;
size_t i, lt = strlen(test_string); size_t i, lt = strlen(test_string);
@ -117,7 +116,7 @@ int is_sane(const char test_string[], const unsigned char source[], const size_t
} }
/* Replaces huge switch statements for looking up in tables */ /* Replaces huge switch statements for looking up in tables */
void lookup(const char set_string[], const char *table[], const char data, char dest[]) { INTERNAL void lookup(const char set_string[], const char *table[], const char data, char dest[]) {
size_t i, n = strlen(set_string); size_t i, n = strlen(set_string);
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
@ -128,7 +127,7 @@ void lookup(const char set_string[], const char *table[], const char data, char
} }
/* Returns the position of data in set_string */ /* Returns the position of data in set_string */
int posn(const char set_string[], const char data) { INTERNAL int posn(const char set_string[], const char data) {
int i, n = (int)strlen(set_string); int i, n = (int)strlen(set_string);
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
@ -140,7 +139,7 @@ int posn(const char set_string[], const char data) {
} }
/* Returns the number of times a character occurs in a string */ /* Returns the number of times a character occurs in a string */
int ustrchr_cnt(const unsigned char string[], const size_t length, const unsigned char c) { INTERNAL int ustrchr_cnt(const unsigned char string[], const size_t length, const unsigned char c) {
int count = 0; int count = 0;
int i; int i;
for (i = 0; i < length; i++) { for (i = 0; i < length; i++) {
@ -152,22 +151,22 @@ int ustrchr_cnt(const unsigned char string[], const size_t length, const unsigne
} }
/* Return true (1) if a module is dark/black, otherwise false (0) */ /* Return true (1) if a module is dark/black, otherwise false (0) */
int module_is_set(const struct zint_symbol *symbol, const int y_coord, const int x_coord) { INTERNAL int module_is_set(const struct zint_symbol *symbol, const int y_coord, const int x_coord) {
return (symbol->encoded_data[y_coord][x_coord / 7] >> (x_coord % 7)) & 1; return (symbol->encoded_data[y_coord][x_coord / 7] >> (x_coord % 7)) & 1;
} }
/* Set a module to dark/black */ /* Set a module to dark/black */
void set_module(struct zint_symbol *symbol, const int y_coord, const int x_coord) { INTERNAL void set_module(struct zint_symbol *symbol, const int y_coord, const int x_coord) {
symbol->encoded_data[y_coord][x_coord / 7] |= 1 << (x_coord % 7); symbol->encoded_data[y_coord][x_coord / 7] |= 1 << (x_coord % 7);
} }
/* Set (or unset) a module to white */ /* Set (or unset) a module to white */
void unset_module(struct zint_symbol *symbol, const int y_coord, const int x_coord) { INTERNAL void unset_module(struct zint_symbol *symbol, const int y_coord, const int x_coord) {
symbol->encoded_data[y_coord][x_coord / 7] &= ~(1 << (x_coord % 7)); symbol->encoded_data[y_coord][x_coord / 7] &= ~(1 << (x_coord % 7));
} }
/* Expands from a width pattern to a bit pattern */ /* Expands from a width pattern to a bit pattern */
void expand(struct zint_symbol *symbol, const char data[]) { INTERNAL void expand(struct zint_symbol *symbol, const char data[]) {
size_t reader, n = strlen(data); size_t reader, n = strlen(data);
int writer, i; int writer, i;
@ -201,7 +200,7 @@ void expand(struct zint_symbol *symbol, const char data[]) {
} }
/* Indicates which symbologies can have row binding */ /* Indicates which symbologies can have row binding */
int is_stackable(const int symbology) { INTERNAL int is_stackable(const int symbology) {
if (symbology < BARCODE_PDF417) { if (symbology < BARCODE_PDF417) {
return 1; return 1;
} }
@ -224,7 +223,7 @@ int is_stackable(const int symbology) {
} }
/* Indicates which symbols can have addon (EAN-2 and EAN-5) */ /* Indicates which symbols can have addon (EAN-2 and EAN-5) */
int is_extendable(const int symbology) { INTERNAL int is_extendable(const int symbology) {
if (symbology == BARCODE_EANX || symbology == BARCODE_EANX_CHK) { if (symbology == BARCODE_EANX || symbology == BARCODE_EANX_CHK) {
return 1; return 1;
} }
@ -251,11 +250,11 @@ int is_extendable(const int symbology) {
} }
/* Indicates which symbols can have composite 2D component data */ /* Indicates which symbols can have composite 2D component data */
int is_composite(int symbology) { INTERNAL int is_composite(int symbology) {
return symbology >= BARCODE_EANX_CC && symbology <= BARCODE_RSS_EXPSTACK_CC; return symbology >= BARCODE_EANX_CC && symbology <= BARCODE_RSS_EXPSTACK_CC;
} }
int istwodigits(const unsigned char source[], const size_t position) { INTERNAL int istwodigits(const unsigned char source[], const size_t position) {
if ((source[position] >= '0') && (source[position] <= '9')) { if ((source[position] >= '0') && (source[position] <= '9')) {
if ((source[position + 1] >= '0') && (source[position + 1] <= '9')) { if ((source[position + 1] >= '0') && (source[position + 1] <= '9')) {
return 1; return 1;
@ -266,7 +265,7 @@ int istwodigits(const unsigned char source[], const size_t position) {
} }
/* State machine to decode UTF-8 to Unicode codepoints (state 0 means done, state 12 means error) */ /* State machine to decode UTF-8 to Unicode codepoints (state 0 means done, state 12 means error) */
unsigned int decode_utf8(unsigned int* state, unsigned int* codep, const unsigned char byte) { INTERNAL unsigned int decode_utf8(unsigned int* state, unsigned int* codep, const unsigned char byte) {
/* /*
Copyright (c) 2008-2009 Bjoern Hoehrmann <bjoern@hoehrmann.de> Copyright (c) 2008-2009 Bjoern Hoehrmann <bjoern@hoehrmann.de>
@ -312,7 +311,7 @@ unsigned int decode_utf8(unsigned int* state, unsigned int* codep, const unsigne
/* Convert UTF-8 to Unicode. If `disallow_4byte` unset, allow all values (UTF-32). /* Convert UTF-8 to Unicode. If `disallow_4byte` unset, allow all values (UTF-32).
* If `disallow_4byte` set, only allow codepoints <= U+FFFF (ie four-byte sequences not allowed) (UTF-16, no surrogates) */ * If `disallow_4byte` set, only allow codepoints <= U+FFFF (ie four-byte sequences not allowed) (UTF-16, no surrogates) */
int utf8_to_unicode(struct zint_symbol *symbol, const unsigned char source[], unsigned int vals[], size_t *length, int disallow_4byte) { INTERNAL int utf8_to_unicode(struct zint_symbol *symbol, const unsigned char source[], unsigned int vals[], size_t *length, int disallow_4byte) {
size_t bpos; size_t bpos;
int jpos; int jpos;
unsigned int codepoint, state = 0; unsigned int codepoint, state = 0;
@ -344,7 +343,7 @@ int utf8_to_unicode(struct zint_symbol *symbol, const unsigned char source[], un
} }
/* Enforce minimum permissable height of rows */ /* Enforce minimum permissable height of rows */
void set_minimum_height(struct zint_symbol *symbol, const int min_height) { INTERNAL void set_minimum_height(struct zint_symbol *symbol, const int min_height) {
int fixed_height = 0; int fixed_height = 0;
int zero_count = 0; int zero_count = 0;
int i; int i;
@ -369,7 +368,7 @@ void set_minimum_height(struct zint_symbol *symbol, const int min_height) {
} }
/* Calculate optimized encoding modes. Adapted from Project Nayuki */ /* Calculate optimized encoding modes. Adapted from Project Nayuki */
void pn_define_mode(char* mode, const unsigned int data[], const size_t length, const int debug, INTERNAL void pn_define_mode(char* mode, const unsigned int data[], const size_t length, const int debug,
unsigned int state[], const char mode_types[], const int num_modes, pn_head_costs head_costs, pn_switch_cost switch_cost, pn_eod_cost eod_cost, pn_cur_cost cur_cost) { unsigned int state[], const char mode_types[], const int num_modes, pn_head_costs head_costs, pn_switch_cost switch_cost, pn_eod_cost eod_cost, pn_cur_cost cur_cost) {
/* /*
* Copyright (c) Project Nayuki. (MIT License) * Copyright (c) Project Nayuki. (MIT License)
@ -400,12 +399,12 @@ void pn_define_mode(char* mode, const unsigned int data[], const size_t length,
cur_costs = (unsigned int*) _alloca(num_modes * sizeof(unsigned int)); cur_costs = (unsigned int*) _alloca(num_modes * sizeof(unsigned int));
#endif #endif
/* char_modes[i * num_modes + j] represents the mode to encode the code point at index i such that the final segment ends in /* char_modes[i * num_modes + j] represents the mode to encode the code point at index i such that the final
* mode_types[j] and the total number of bits is minimized over all possible choices */ * segment ends in mode_types[j] and the total number of bits is minimized over all possible choices */
memset(char_modes, 0, length * num_modes); memset(char_modes, 0, length * num_modes);
/* At the beginning of each iteration of the loop below, prev_costs[j] is the minimum number of 1/6 (1/GM_MULT) bits needed /* At the beginning of each iteration of the loop below, prev_costs[j] is the minimum number of 1/6 (1/XX_MULT)
* to encode the entire string prefix of length i, and end in mode_types[j] */ * bits needed to encode the entire string prefix of length i, and end in mode_types[j] */
memcpy(prev_costs, (*head_costs)(state), num_modes * sizeof(unsigned int)); memcpy(prev_costs, (*head_costs)(state), num_modes * sizeof(unsigned int));
/* Calculate costs using dynamic programming */ /* Calculate costs using dynamic programming */
@ -460,6 +459,7 @@ void pn_define_mode(char* mode, const unsigned int data[], const size_t length,
} }
} }
#ifdef ZINT_TEST
/* Dumps hex-formatted codewords in symbol->errtxt (for use in testing) */ /* Dumps hex-formatted codewords in symbol->errtxt (for use in testing) */
void debug_test_codeword_dump(struct zint_symbol *symbol, unsigned char* codewords, int length) { void debug_test_codeword_dump(struct zint_symbol *symbol, unsigned char* codewords, int length) {
int i, max = length, cnt_len = 0; int i, max = length, cnt_len = 0;
@ -473,3 +473,4 @@ void debug_test_codeword_dump(struct zint_symbol *symbol, unsigned char* codewor
} }
symbol->errtxt[strlen(symbol->errtxt) - 1] = '\0'; /* Zap last space */ symbol->errtxt[strlen(symbol->errtxt) - 1] = '\0'; /* Zap last space */
} }
#endif

View File

@ -51,40 +51,48 @@
#define ustrcpy(target,source) strcpy((char*)target,(const char*)source) #define ustrcpy(target,source) strcpy((char*)target,(const char*)source)
#if defined(__GNUC__) && !defined(ZINT_TEST)
#define INTERNAL __attribute__ ((visibility ("hidden")))
#else
#define INTERNAL
#endif /* defined(__GNUC__) && !defined(ZINT_TEST) */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
extern size_t ustrlen(const unsigned char data[]); INTERNAL size_t ustrlen(const unsigned char data[]);
extern int ctoi(const char source); INTERNAL int ctoi(const char source);
extern char itoc(const int source); INTERNAL char itoc(const int source);
extern void to_upper(unsigned char source[]); INTERNAL void to_upper(unsigned char source[]);
extern int is_sane(const char test_string[], const unsigned char source[], const size_t length); INTERNAL int is_sane(const char test_string[], const unsigned char source[], const size_t length);
extern void lookup(const char set_string[], const char *table[], const char data, char dest[]); INTERNAL void lookup(const char set_string[], const char *table[], const char data, char dest[]);
extern void bin_append(const int arg, const int length, char *binary); INTERNAL void bin_append(const int arg, const int length, char *binary);
extern void bin_append_posn(const int arg, const int length, char *binary, size_t posn); INTERNAL void bin_append_posn(const int arg, const int length, char *binary, size_t posn);
extern int posn(const char set_string[], const char data); INTERNAL int posn(const char set_string[], const char data);
extern int ustrchr_cnt(const unsigned char string[], const size_t length, const unsigned char c); INTERNAL int ustrchr_cnt(const unsigned char string[], const size_t length, const unsigned char c);
extern int module_is_set(const struct zint_symbol *symbol, const int y_coord, const int x_coord); INTERNAL int module_is_set(const struct zint_symbol *symbol, const int y_coord, const int x_coord);
extern void set_module(struct zint_symbol *symbol, const int y_coord, const int x_coord); INTERNAL void set_module(struct zint_symbol *symbol, const int y_coord, const int x_coord);
extern int istwodigits(const unsigned char source[], const size_t position); INTERNAL int istwodigits(const unsigned char source[], const size_t position);
extern void expand(struct zint_symbol *symbol, const char data[]); INTERNAL void expand(struct zint_symbol *symbol, const char data[]);
extern void unset_module(struct zint_symbol *symbol, const int y_coord, const int x_coord); INTERNAL void unset_module(struct zint_symbol *symbol, const int y_coord, const int x_coord);
extern int is_stackable(const int symbology); INTERNAL int is_stackable(const int symbology);
extern int is_extendable(const int symbology); INTERNAL int is_extendable(const int symbology);
extern int is_composite(const int symbology); INTERNAL int is_composite(const int symbology);
extern unsigned int decode_utf8(unsigned int* state, unsigned int* codep, const unsigned char byte); INTERNAL unsigned int decode_utf8(unsigned int* state, unsigned int* codep, const unsigned char byte);
extern int utf8_to_unicode(struct zint_symbol *symbol, const unsigned char source[], unsigned int vals[], size_t *length, int disallow_4byte); INTERNAL int utf8_to_unicode(struct zint_symbol *symbol, const unsigned char source[], unsigned int vals[], size_t *length, int disallow_4byte);
extern void set_minimum_height(struct zint_symbol *symbol, const int min_height); INTERNAL void set_minimum_height(struct zint_symbol *symbol, const int min_height);
typedef unsigned int* (*pn_head_costs)(unsigned int state[]); typedef unsigned int* (*pn_head_costs)(unsigned int state[]);
typedef unsigned int (*pn_switch_cost)(unsigned int state[], const int k, const int j); typedef unsigned int (*pn_switch_cost)(unsigned int state[], const int k, const int j);
typedef unsigned int (*pn_eod_cost)(unsigned int state[], const int k); typedef unsigned int (*pn_eod_cost)(unsigned int state[], const int k);
typedef void (*pn_cur_cost)(unsigned int state[], const unsigned int data[], const size_t length, const int i, char* char_modes, unsigned int prev_costs[], unsigned int cur_costs[]); typedef void (*pn_cur_cost)(unsigned int state[], const unsigned int data[], const size_t length, const int i, char* char_modes, unsigned int prev_costs[], unsigned int cur_costs[]);
extern void pn_define_mode(char* mode, const unsigned int data[], const size_t length, const int debug, INTERNAL void pn_define_mode(char* mode, const unsigned int data[], const size_t length, const int debug,
unsigned int state[], const char mode_types[], const int num_modes, pn_head_costs head_costs, pn_switch_cost switch_cost, pn_eod_cost eod_cost, pn_cur_cost cur_cost); unsigned int state[], const char mode_types[], const int num_modes, pn_head_costs head_costs, pn_switch_cost switch_cost, pn_eod_cost eod_cost, pn_cur_cost cur_cost);
extern void debug_test_codeword_dump(struct zint_symbol *symbol, unsigned char* codewords, int length); #ifdef ZINT_TEST
void debug_test_codeword_dump(struct zint_symbol *symbol, unsigned char* codewords, int length);
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -65,12 +65,12 @@
#define UINT unsigned short #define UINT unsigned short
extern int eanx(struct zint_symbol *symbol, unsigned char source[], int length); INTERNAL int eanx(struct zint_symbol *symbol, unsigned char source[], int length);
extern int ean_128(struct zint_symbol *symbol, unsigned char source[], const size_t length); INTERNAL int ean_128(struct zint_symbol *symbol, unsigned char source[], const size_t length);
extern void ean_leading_zeroes(struct zint_symbol *symbol, unsigned char source[], unsigned char local_source[]); INTERNAL void ean_leading_zeroes(struct zint_symbol *symbol, unsigned char source[], unsigned char local_source[]);
extern int rss14(struct zint_symbol *symbol, unsigned char source[], int length); INTERNAL int rss14(struct zint_symbol *symbol, unsigned char source[], int length);
extern int rsslimited(struct zint_symbol *symbol, unsigned char source[], int length); INTERNAL int rsslimited(struct zint_symbol *symbol, unsigned char source[], int length);
extern int rssexpanded(struct zint_symbol *symbol, unsigned char source[], int length); INTERNAL int rssexpanded(struct zint_symbol *symbol, unsigned char source[], int length);
static UINT pwr928[69][7]; static UINT pwr928[69][7];
@ -796,7 +796,7 @@ static int calc_padding_cca(int binary_length, int cc_width) {
return target_bitsize; return target_bitsize;
} }
int calc_padding_ccb(int binary_length, int cc_width) { static int calc_padding_ccb(int binary_length, int cc_width) {
int target_bitsize = 0; int target_bitsize = 0;
switch (cc_width) { switch (cc_width) {
@ -895,7 +895,7 @@ int calc_padding_ccb(int binary_length, int cc_width) {
return target_bitsize; return target_bitsize;
} }
int calc_padding_ccc(int binary_length, int *cc_width, int lin_width, int *ecc) { static int calc_padding_ccc(int binary_length, int *cc_width, int lin_width, int *ecc) {
int target_bitsize = 0; int target_bitsize = 0;
int byte_length, codewords_used, ecc_level, ecc_codewords, rows; int byte_length, codewords_used, ecc_level, ecc_codewords, rows;
int codewords_total, target_codewords, target_bytesize; int codewords_total, target_codewords, target_bytesize;
@ -1344,7 +1344,7 @@ static int cc_binary_string(struct zint_symbol *symbol, const char source[], cha
return 0; return 0;
} }
int linear_dummy_run(unsigned char *source, int length) { static int linear_dummy_run(unsigned char *source, int length) {
struct zint_symbol *dummy; struct zint_symbol *dummy;
int error_number; int error_number;
int linear_width; int linear_width;
@ -1363,7 +1363,7 @@ int linear_dummy_run(unsigned char *source, int length) {
} }
} }
int composite(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int composite(struct zint_symbol *symbol, unsigned char source[], int length) {
int error_number, cc_mode, cc_width, ecc_level; int error_number, cc_mode, cc_width, ecc_level;
int j, i, k; int j, i, k;
unsigned int bs = 13 * length + 500 + 1; /* Allow for 8 bits + 5-bit latch per char + 500 bits overhead/padding */ unsigned int bs = 13 * length + 500 + 1; /* Allow for 8 bits + 5-bit latch per char + 500 bits overhead/padding */

View File

@ -40,7 +40,6 @@
/* vim: set ts=4 sw=4 et : */ /* vim: set ts=4 sw=4 et : */
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#include <ctype.h> #include <ctype.h>
#include <string.h> #include <string.h>
#include <assert.h> #include <assert.h>
@ -52,8 +51,8 @@
#define ceilf ceil #define ceilf ceil
#endif #endif
#endif #endif
#include "reedsol.h"
#include "common.h" #include "common.h"
#include "reedsol.h"
#include "dmatrix.h" #include "dmatrix.h"
/* Annex M placement alorithm low level */ /* Annex M placement alorithm low level */
@ -1164,7 +1163,7 @@ static void add_tail(unsigned char target[], int tp, const int tail_length) {
} }
} }
int data_matrix_200(struct zint_symbol *symbol,const unsigned char source[], const size_t in_length) { static int data_matrix_200(struct zint_symbol *symbol,const unsigned char source[], const size_t in_length) {
int i, skew = 0; int i, skew = 0;
size_t inputlen = in_length; size_t inputlen = in_length;
unsigned char binary[2200]; unsigned char binary[2200];
@ -1327,7 +1326,7 @@ int data_matrix_200(struct zint_symbol *symbol,const unsigned char source[], con
return error_number; return error_number;
} }
int dmatrix(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length) { INTERNAL int dmatrix(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length) {
int error_number; int error_number;
if (symbol->option_1 <= 1) { if (symbol->option_1 <= 1) {
@ -1341,5 +1340,3 @@ int dmatrix(struct zint_symbol *symbol, const unsigned char source[], const size
return error_number; return error_number;
} }

View File

@ -29,6 +29,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
/* /*
Containes Extended Rectangular Data Matrix (DMRE) Containes Extended Rectangular Data Matrix (DMRE)
@ -36,19 +37,8 @@
Contact: harald.oehlmann@eurodatacouncil.org Contact: harald.oehlmann@eurodatacouncil.org
*/ */
#include "common.h" #ifndef __DMATRIX_H
#define __DMATRIX_H
#ifndef __IEC16022ECC200_H
#define __IEC16022ECC200_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
extern int data_matrix_200(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#define MAXBARCODE 3116 #define MAXBARCODE 3116
@ -255,6 +245,4 @@ static const unsigned short int matrixrsblock[] = {
/*44*/ 56, /*104x104*/ 68, /*120x120*/ 62, /*132x132*/ 62 /*144x144*/ /*44*/ 56, /*104x104*/ 68, /*120x120*/ 62, /*132x132*/ 62 /*144x144*/
}; };
#endif /* __DMATRIX_H */
#endif

View File

@ -104,7 +104,7 @@ static int clr_row(char *Dots, const int Hgt, const int Wid, const int y) {
} }
/* Dot pattern scoring routine from Annex A */ /* Dot pattern scoring routine from Annex A */
const int score_array(char Dots[], int Hgt, int Wid) { static const int score_array(char Dots[], int Hgt, int Wid) {
int x, y, worstedge, first, last, sum; int x, y, worstedge, first, last, sum;
int penalty_local = 0; int penalty_local = 0;
int penalty = 0; int penalty = 0;
@ -268,7 +268,7 @@ const int score_array(char Dots[], int Hgt, int Wid) {
// employing Galois Field GF, where GF is prime, with a prime modulus of PM // employing Galois Field GF, where GF is prime, with a prime modulus of PM
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
void rsencode(int nd, int nc, unsigned char *wd) { static void rsencode(int nd, int nc, unsigned char *wd) {
int i, j, k, nw, start, step, root[GF], c[GF]; int i, j, k, nw, start, step, root[GF], c[GF];
// Start by generating "nc" roots (antilogs): // Start by generating "nc" roots (antilogs):
@ -312,7 +312,7 @@ void rsencode(int nd, int nc, unsigned char *wd) {
} }
/* Check if the next character is directly encodable in code set A (Annex F.II.D) */ /* Check if the next character is directly encodable in code set A (Annex F.II.D) */
int datum_a(const unsigned char source[], int position, int length) { static int datum_a(const unsigned char source[], int position, int length) {
int retval = 0; int retval = 0;
if (position < length) { if (position < length) {
@ -325,7 +325,7 @@ int datum_a(const unsigned char source[], int position, int length) {
} }
/* Check if the next character is directly encodable in code set B (Annex F.II.D) */ /* Check if the next character is directly encodable in code set B (Annex F.II.D) */
int datum_b(const unsigned char source[], int position, int length) { static int datum_b(const unsigned char source[], int position, int length) {
int retval = 0; int retval = 0;
if (position < length) { if (position < length) {
@ -352,7 +352,7 @@ int datum_b(const unsigned char source[], int position, int length) {
} }
/* Check if the next characters are directly encodable in code set C (Annex F.II.D) */ /* Check if the next characters are directly encodable in code set C (Annex F.II.D) */
int datum_c(const unsigned char source[], int position, int length) { static int datum_c(const unsigned char source[], int position, int length) {
int retval = 0; int retval = 0;
if (position <= length - 2) { if (position <= length - 2) {
@ -365,7 +365,7 @@ int datum_c(const unsigned char source[], int position, int length) {
} }
/* Returns how many consecutive digits lie immediately ahead (Annex F.II.A) */ /* Returns how many consecutive digits lie immediately ahead (Annex F.II.A) */
int n_digits(const unsigned char source[], int position, int length) { static int n_digits(const unsigned char source[], int position, int length) {
int i; int i;
for (i = position; ((source[i] >= '0') && (source[i] <= '9')) && (i < length); i++); for (i = position; ((source[i] >= '0') && (source[i] <= '9')) && (i < length); i++);
@ -374,7 +374,7 @@ int n_digits(const unsigned char source[], int position, int length) {
} }
/* checks ahead for 10 or more digits starting "17xxxxxx10..." (Annex F.II.B) */ /* checks ahead for 10 or more digits starting "17xxxxxx10..." (Annex F.II.B) */
int seventeen_ten(const unsigned char source[], int position, int length) { static int seventeen_ten(const unsigned char source[], int position, int length) {
int found = 0; int found = 0;
if (n_digits(source, position, length) >= 10) { if (n_digits(source, position, length) >= 10) {
@ -390,7 +390,7 @@ int seventeen_ten(const unsigned char source[], int position, int length) {
/* checks how many characters ahead can be reached while datum_c is true, /* checks how many characters ahead can be reached while datum_c is true,
* returning the resulting number of codewords (Annex F.II.E) * returning the resulting number of codewords (Annex F.II.E)
*/ */
int ahead_c(const unsigned char source[], int position, int length) { static int ahead_c(const unsigned char source[], int position, int length) {
int count = 0; int count = 0;
int i; int i;
@ -402,7 +402,7 @@ int ahead_c(const unsigned char source[], int position, int length) {
} }
/* Annex F.II.F */ /* Annex F.II.F */
int try_c(const unsigned char source[], int position, int length) { static int try_c(const unsigned char source[], int position, int length) {
int retval = 0; int retval = 0;
if (n_digits(source, position, length) > 0) { if (n_digits(source, position, length) > 0) {
@ -415,7 +415,7 @@ int try_c(const unsigned char source[], int position, int length) {
} }
/* Annex F.II.G */ /* Annex F.II.G */
int ahead_a(const unsigned char source[], int position, int length) { static int ahead_a(const unsigned char source[], int position, int length) {
int count = 0; int count = 0;
int i; int i;
@ -428,7 +428,7 @@ int ahead_a(const unsigned char source[], int position, int length) {
} }
/* Annex F.II.H */ /* Annex F.II.H */
int ahead_b(const unsigned char source[], int position, int length) { static int ahead_b(const unsigned char source[], int position, int length) {
int count = 0; int count = 0;
int i; int i;
@ -441,7 +441,7 @@ int ahead_b(const unsigned char source[], int position, int length) {
} }
/* checks if the next character is in the range 128 to 255 (Annex F.II.I) */ /* checks if the next character is in the range 128 to 255 (Annex F.II.I) */
int binary(const unsigned char source[], int position) { static int binary(const unsigned char source[], int position) {
int retval = 0; int retval = 0;
if (source[position] >= 128) { if (source[position] >= 128) {
@ -452,7 +452,7 @@ int binary(const unsigned char source[], int position) {
} }
/* Analyse input data stream and encode using algorithm from Annex F */ /* Analyse input data stream and encode using algorithm from Annex F */
int dotcode_encode_message(struct zint_symbol *symbol, const unsigned char source[], int length, unsigned char *codeword_array, int *binary_finish) { static int dotcode_encode_message(struct zint_symbol *symbol, const unsigned char source[], int length, unsigned char *codeword_array, int *binary_finish) {
int input_position, array_length, i; int input_position, array_length, i;
char encoding_mode; char encoding_mode;
int inside_macro; int inside_macro;
@ -1102,7 +1102,7 @@ static size_t make_dotstream(unsigned char masked_array[], int array_length, cha
/* Determines if a given dot is a reserved corner dot /* Determines if a given dot is a reserved corner dot
* to be used by one of the last six bits * to be used by one of the last six bits
*/ */
int is_corner(int column, int row, int width, int height) { static int is_corner(int column, int row, int width, int height) {
int corner = 0; int corner = 0;
/* Top Left */ /* Top Left */
@ -1144,7 +1144,7 @@ int is_corner(int column, int row, int width, int height) {
} }
/* Place the dots in the symbol*/ /* Place the dots in the symbol*/
void fold_dotstream(char dot_stream[], int width, int height, char dot_array[]) { static void fold_dotstream(char dot_stream[], int width, int height, char dot_array[]) {
int column, row; int column, row;
int input_position = 0; int input_position = 0;
@ -1209,7 +1209,7 @@ void fold_dotstream(char dot_stream[], int width, int height, char dot_array[])
} }
} }
void apply_mask(int mask, int data_length, unsigned char *masked_codeword_array, unsigned char *codeword_array, int ecc_length, char *dot_stream) { static void apply_mask(int mask, int data_length, unsigned char *masked_codeword_array, unsigned char *codeword_array, int ecc_length, char *dot_stream) {
int weight = 0; int weight = 0;
int j; int j;
@ -1246,7 +1246,7 @@ void apply_mask(int mask, int data_length, unsigned char *masked_codeword_array,
rsencode(data_length + 1, ecc_length, masked_codeword_array); rsencode(data_length + 1, ecc_length, masked_codeword_array);
} }
void force_corners(int width, int height, char *dot_array) { static void force_corners(int width, int height, char *dot_array) {
if (width % 2) { if (width % 2) {
// "Vertical" symbol // "Vertical" symbol
dot_array[0] = '1'; dot_array[0] = '1';
@ -1266,7 +1266,7 @@ void force_corners(int width, int height, char *dot_array) {
} }
} }
int dotcode(struct zint_symbol *symbol, const unsigned char source[], int length) { INTERNAL int dotcode(struct zint_symbol *symbol, const unsigned char source[], int length) {
int i, j, k; int i, j, k;
size_t jc, n_dots; size_t jc, n_dots;
int data_length, ecc_length; int data_length, ecc_length;
@ -1519,4 +1519,3 @@ int dotcode(struct zint_symbol *symbol, const unsigned char source[], int length
return 0; return 0;
} }

View File

@ -28,18 +28,19 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include "eci.h" #include "eci.h"
#include "zint.h" #include "common.h"
#ifdef _MSC_VER #ifdef _MSC_VER
#include <malloc.h> #include <malloc.h>
#endif #endif
/* Convert Unicode to other character encodings */ /* Convert Unicode to other character encodings */
int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length) { INTERNAL int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length) {
int in_posn; int in_posn;
int out_posn; int out_posn;
int ext; int ext;
@ -253,7 +254,7 @@ int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[]
} }
/* Find the lowest ECI mode which will encode a given set of Unicode text */ /* Find the lowest ECI mode which will encode a given set of Unicode text */
int get_best_eci(unsigned char source[], size_t length) { INTERNAL int get_best_eci(unsigned char source[], size_t length) {
int eci = 3; int eci = 3;
#ifndef _MSC_VER #ifndef _MSC_VER
@ -271,5 +272,3 @@ int get_best_eci(unsigned char source[], size_t length) {
return 26; // If all of these fail, use Unicode! return 26; // If all of these fail, use Unicode!
} }

View File

@ -28,6 +28,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
/* Developed according to [MS-EMF] - v20160714, Released July 14, 2016 /* Developed according to [MS-EMF] - v20160714, Released July 14, 2016
* and [MS-WMF] - v20160714, Released July 14, 2016 */ * and [MS-WMF] - v20160714, Released July 14, 2016 */
@ -41,7 +42,7 @@
#include "common.h" #include "common.h"
#include "emf.h" #include "emf.h"
int count_rectangles(struct zint_symbol *symbol) { static int count_rectangles(struct zint_symbol *symbol) {
int rectangles = 0; int rectangles = 0;
struct zint_vector_rect *rect; struct zint_vector_rect *rect;
@ -54,7 +55,7 @@ int count_rectangles(struct zint_symbol *symbol) {
return rectangles; return rectangles;
} }
int count_circles(struct zint_symbol *symbol) { static int count_circles(struct zint_symbol *symbol) {
int circles = 0; int circles = 0;
struct zint_vector_circle *circ; struct zint_vector_circle *circ;
@ -67,7 +68,7 @@ int count_circles(struct zint_symbol *symbol) {
return circles; return circles;
} }
int count_hexagons(struct zint_symbol *symbol) { static int count_hexagons(struct zint_symbol *symbol) {
int hexagons = 0; int hexagons = 0;
struct zint_vector_hexagon *hex; struct zint_vector_hexagon *hex;
@ -80,7 +81,7 @@ int count_hexagons(struct zint_symbol *symbol) {
return hexagons; return hexagons;
} }
int count_strings(struct zint_symbol *symbol) { static int count_strings(struct zint_symbol *symbol) {
int strings = 0; int strings = 0;
struct zint_vector_string *str; struct zint_vector_string *str;
@ -93,7 +94,7 @@ int count_strings(struct zint_symbol *symbol) {
return strings; return strings;
} }
void utfle_copy(unsigned char *output, unsigned char *input, int length) { static void utfle_copy(unsigned char *output, unsigned char *input, int length) {
int i; int i;
int o; int o;
@ -117,7 +118,7 @@ void utfle_copy(unsigned char *output, unsigned char *input, int length) {
} while (i < length); } while (i < length);
} }
int bump_up(int input) { static int bump_up(int input) {
/* Strings length must be a multiple of 4 bytes */ /* Strings length must be a multiple of 4 bytes */
if ((input % 2) == 1) { if ((input % 2) == 1) {
input++; input++;
@ -125,7 +126,7 @@ int bump_up(int input) {
return input; return input;
} }
int emf_plot(struct zint_symbol *symbol) { INTERNAL int emf_plot(struct zint_symbol *symbol) {
int i,j; int i,j;
FILE *emf_file; FILE *emf_file;
int fgred, fggrn, fgblu, bgred, bggrn, bgblu; int fgred, fggrn, fgblu, bgred, bggrn, bgblu;

View File

@ -57,7 +57,7 @@
#include "gb2312.h" #include "gb2312.h"
#include "gb18030.h" #include "gb18030.h"
extern int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length); /* Convert Unicode to other encodings */ INTERNAL int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length); /* Convert Unicode to other encodings */
/* /*
* CP936 extensions (libiconv-1.16/lib/cp936ext.h) * CP936 extensions (libiconv-1.16/lib/cp936ext.h)
@ -2795,7 +2795,7 @@ static const unsigned short gb18030_pua2charset[31*3] = {
0xe864, 0xe864, 0xfea0, 0xe864, 0xe864, 0xfea0,
}; };
int gb18030_wctomb_zint(unsigned int* r1, unsigned int* r2, unsigned int wc) { INTERNAL int gb18030_wctomb_zint(unsigned int* r1, unsigned int* r2, unsigned int wc) {
int ret; int ret;
/* Code set 0 (ASCII) */ /* Code set 0 (ASCII) */
@ -2867,7 +2867,7 @@ int gb18030_wctomb_zint(unsigned int* r1, unsigned int* r2, unsigned int wc) {
} }
/* Convert UTF-8 string to GB 18030 and place in array of ints */ /* Convert UTF-8 string to GB 18030 and place in array of ints */
int gb18030_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* gbdata) { INTERNAL int gb18030_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* gbdata) {
int i, j, error_number, ret; int i, j, error_number, ret;
unsigned int length; unsigned int length;
#ifndef _MSC_VER #ifndef _MSC_VER
@ -2902,7 +2902,7 @@ int gb18030_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], s
} }
/* Convert UTF-8 string to single byte ECI and place in array of ints */ /* Convert UTF-8 string to single byte ECI and place in array of ints */
int gb18030_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* gbdata) { INTERNAL int gb18030_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* gbdata) {
int error_number; int error_number;
#ifndef _MSC_VER #ifndef _MSC_VER
unsigned char single_byte[*p_length + 1]; unsigned char single_byte[*p_length + 1];
@ -2922,7 +2922,7 @@ int gb18030_utf8tosb(int eci, const unsigned char source[], size_t* p_length, un
} }
/* Copy byte input stream to array of ints, putting double-bytes that match HANXIN Chinese mode in single entry, and quad-bytes in 2 entries */ /* Copy byte input stream to array of ints, putting double-bytes that match HANXIN Chinese mode in single entry, and quad-bytes in 2 entries */
void gb18030_cpy(const unsigned char source[], size_t* p_length, unsigned int* gbdata) { INTERNAL void gb18030_cpy(const unsigned char source[], size_t* p_length, unsigned int* gbdata) {
int i, j, done; int i, j, done;
unsigned int length; unsigned int length;
unsigned char c1, c2, c3, c4; unsigned char c1, c2, c3, c4;

View File

@ -37,10 +37,10 @@
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
int gb18030_wctomb_zint(unsigned int* r1, unsigned int* r2, unsigned int wc); INTERNAL int gb18030_wctomb_zint(unsigned int* r1, unsigned int* r2, unsigned int wc);
int gb18030_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* gbdata); INTERNAL int gb18030_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* gbdata);
int gb18030_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* gbdata); INTERNAL int gb18030_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* gbdata);
void gb18030_cpy(const unsigned char source[], size_t* p_length, unsigned int* gbdata); INTERNAL void gb18030_cpy(const unsigned char source[], size_t* p_length, unsigned int* gbdata);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -56,7 +56,7 @@
#include "common.h" #include "common.h"
#include "gb2312.h" #include "gb2312.h"
extern int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length); /* Convert Unicode to other encodings */ INTERNAL int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length); /* Convert Unicode to other encodings */
/* /*
* GB2312.1980-0 (libiconv-1.16/lib/gb2312.h) * GB2312.1980-0 (libiconv-1.16/lib/gb2312.h)
@ -1499,7 +1499,7 @@ static const Summary16 gb2312_uni2indx_pageff[15] = {
{ 7441, 0x0000 }, { 7441, 0x0000 }, { 7441, 0x002b }, { 7441, 0x0000 }, { 7441, 0x0000 }, { 7441, 0x002b },
}; };
int gb2312_wctomb_zint(unsigned int* r, unsigned int wc) { INTERNAL int gb2312_wctomb_zint(unsigned int* r, unsigned int wc) {
const Summary16 *summary = NULL; const Summary16 *summary = NULL;
if (wc >= 0x0000 && wc < 0x0460) { if (wc >= 0x0000 && wc < 0x0460) {
if (wc == 0x00b7) { /* ZINT: Patched to duplicate map to 0xA1A4 */ if (wc == 0x00b7) { /* ZINT: Patched to duplicate map to 0xA1A4 */
@ -1541,7 +1541,7 @@ int gb2312_wctomb_zint(unsigned int* r, unsigned int wc) {
} }
/* Convert UTF-8 string to GB 2312 (EUC-CN) and place in array of ints */ /* Convert UTF-8 string to GB 2312 (EUC-CN) and place in array of ints */
int gb2312_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* gbdata) { INTERNAL int gb2312_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* gbdata) {
int i, error_number; int i, error_number;
unsigned int length; unsigned int length;
#ifndef _MSC_VER #ifndef _MSC_VER
@ -1570,7 +1570,7 @@ int gb2312_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], si
} }
/* Convert UTF-8 string to single byte ECI and place in array of ints */ /* Convert UTF-8 string to single byte ECI and place in array of ints */
int gb2312_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* gbdata) { INTERNAL int gb2312_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* gbdata) {
int error_number; int error_number;
#ifndef _MSC_VER #ifndef _MSC_VER
unsigned char single_byte[*p_length + 1]; unsigned char single_byte[*p_length + 1];
@ -1590,7 +1590,7 @@ int gb2312_utf8tosb(int eci, const unsigned char source[], size_t* p_length, uns
} }
/* Copy byte input stream to array of ints, putting double-bytes that match GRIDMATRIX Chinese mode in single entry */ /* Copy byte input stream to array of ints, putting double-bytes that match GRIDMATRIX Chinese mode in single entry */
void gb2312_cpy(const unsigned char source[], size_t* p_length, unsigned int* gbdata) { INTERNAL void gb2312_cpy(const unsigned char source[], size_t* p_length, unsigned int* gbdata) {
int i, j; int i, j;
unsigned int length; unsigned int length;
unsigned char c1, c2; unsigned char c1, c2;

View File

@ -37,10 +37,10 @@
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
int gb2312_wctomb_zint(unsigned int* r, unsigned int wc); INTERNAL int gb2312_wctomb_zint(unsigned int* r, unsigned int wc);
int gb2312_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* gbdata); INTERNAL int gb2312_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* gbdata);
int gb2312_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* gbdata); INTERNAL int gb2312_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* gbdata);
void gb2312_cpy(const unsigned char source[], size_t* p_length, unsigned int* gbdata); INTERNAL void gb2312_cpy(const unsigned char source[], size_t* p_length, unsigned int* gbdata);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -91,7 +91,7 @@ static int general_field_next_none(char* general_field, int i, int general_field
/* Attempts to apply encoding rules from sections 7.2.5.5.1 to 7.2.5.5.3 /* Attempts to apply encoding rules from sections 7.2.5.5.1 to 7.2.5.5.3
* of ISO/IEC 24724:2011 (same as sections 5.4.1 to 5.4.3 of ISO/IEC 24723:2010) */ * of ISO/IEC 24724:2011 (same as sections 5.4.1 to 5.4.3 of ISO/IEC 24723:2010) */
int general_field_encode(char* general_field, int* p_mode, int* p_last_digit, char binary_string[]) { INTERNAL int general_field_encode(char* general_field, int* p_mode, int* p_last_digit, char binary_string[]) {
int i, d1, d2; int i, d1, d2;
int mode = *p_mode; int mode = *p_mode;
int last_digit = 0; /* Set to odd remaining digit at end if any */ int last_digit = 0; /* Set to odd remaining digit at end if any */

View File

@ -39,7 +39,7 @@
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
extern int general_field_encode(char* general_field, int* p_mode, int* p_last_digit, char binary_string[]); INTERNAL int general_field_encode(char* general_field, int* p_mode, int* p_last_digit, char binary_string[]);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */

View File

@ -29,6 +29,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
@ -123,7 +124,7 @@ static void FlushStringTable(statestruct *pState) {
} }
} }
unsigned short FindPixelOutlet(statestruct *pState, unsigned short HeadNode, unsigned char Byte) { static unsigned short FindPixelOutlet(statestruct *pState, unsigned short HeadNode, unsigned char Byte) {
unsigned short Outlet; unsigned short Outlet;
Outlet = (pState->NodeAxon)[HeadNode]; Outlet = (pState->NodeAxon)[HeadNode];
@ -176,7 +177,7 @@ static char NextCode(statestruct *pState, unsigned char * pPixelValueCur, unsign
return 1; return 1;
} }
int gif_lzw(unsigned char *pOut, int OutLength, unsigned char *pIn, int InLen) { static int gif_lzw(unsigned char *pOut, int OutLength, unsigned char *pIn, int InLen) {
unsigned char PixelValueCur; unsigned char PixelValueCur;
unsigned char CodeBits; unsigned char CodeBits;
unsigned short Pos; unsigned short Pos;
@ -260,7 +261,7 @@ int gif_lzw(unsigned char *pOut, int OutLength, unsigned char *pIn, int InLen) {
} }
} }
int gif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) { INTERNAL int gif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
char outbuf[10]; char outbuf[10];
FILE *gif_file; FILE *gif_file;
unsigned short usTemp; unsigned short usTemp;

View File

@ -49,7 +49,7 @@
/* Bits multiplied by this for costs, so as to be whole integer divisible by 2 and 3 */ /* Bits multiplied by this for costs, so as to be whole integer divisible by 2 and 3 */
#define GM_MULT 6 #define GM_MULT 6
static char numeral_nondigits[] = " +-.,"; /* Non-digit numeral set, excluding EOL (carriage return/linefeed) */ static const char numeral_nondigits[] = " +-.,"; /* Non-digit numeral set, excluding EOL (carriage return/linefeed) */
/* Whether in numeral or not. If in numeral, *p_numeral_end is set to position after numeral, and *p_numeral_cost is set to per-numeral cost */ /* Whether in numeral or not. If in numeral, *p_numeral_end is set to position after numeral, and *p_numeral_cost is set to per-numeral cost */
static int in_numeral(const unsigned int gbdata[], const size_t length, const int posn, unsigned int* p_numeral_end, unsigned int* p_numeral_cost) { static int in_numeral(const unsigned int gbdata[], const size_t length, const int posn, unsigned int* p_numeral_end, unsigned int* p_numeral_cost) {
@ -133,7 +133,7 @@ static unsigned int* gm_head_costs(unsigned int state[]) {
/* Cost of switching modes from k to j - see AIMD014 Rev. 1.63 Table 9 Type conversion codes */ /* Cost of switching modes from k to j - see AIMD014 Rev. 1.63 Table 9 Type conversion codes */
static unsigned int gm_switch_cost(unsigned int state[], const int k, const int j) { static unsigned int gm_switch_cost(unsigned int state[], const int k, const int j) {
static unsigned int switch_costs[GM_NUM_MODES][GM_NUM_MODES] = { static const unsigned int switch_costs[GM_NUM_MODES][GM_NUM_MODES] = {
/* H N L U M B */ /* H N L U M B */
/*H*/ { 0, (13 + 2) * GM_MULT, 13 * GM_MULT, 13 * GM_MULT, 13 * GM_MULT, (13 + 9) * GM_MULT }, /*H*/ { 0, (13 + 2) * GM_MULT, 13 * GM_MULT, 13 * GM_MULT, 13 * GM_MULT, (13 + 9) * GM_MULT },
/*N*/ { 10 * GM_MULT, 0, 10 * GM_MULT, 10 * GM_MULT, 10 * GM_MULT, (10 + 9) * GM_MULT }, /*N*/ { 10 * GM_MULT, 0, 10 * GM_MULT, 10 * GM_MULT, 10 * GM_MULT, (10 + 9) * GM_MULT },
@ -148,7 +148,7 @@ static unsigned int gm_switch_cost(unsigned int state[], const int k, const int
/* Final end-of-data cost - see AIMD014 Rev. 1.63 Table 9 Type conversion codes */ /* Final end-of-data cost - see AIMD014 Rev. 1.63 Table 9 Type conversion codes */
static unsigned int gm_eod_cost(unsigned int state[], const int k) { static unsigned int gm_eod_cost(unsigned int state[], const int k) {
static unsigned int eod_costs[GM_NUM_MODES] = { static const unsigned int eod_costs[GM_NUM_MODES] = {
/* H N L U M B */ /* H N L U M B */
13 * GM_MULT, 10 * GM_MULT, 5 * GM_MULT, 5 * GM_MULT, 10 * GM_MULT, 4 * GM_MULT 13 * GM_MULT, 10 * GM_MULT, 5 * GM_MULT, 5 * GM_MULT, 10 * GM_MULT, 4 * GM_MULT
}; };
@ -220,7 +220,7 @@ static void gm_cur_cost(unsigned int state[], const unsigned int gbdata[], const
/* Calculate optimized encoding modes */ /* Calculate optimized encoding modes */
static void define_mode(char* mode, const unsigned int gbdata[], const size_t length, const int debug) { static void define_mode(char* mode, const unsigned int gbdata[], const size_t length, const int debug) {
static char mode_types[] = { GM_CHINESE, GM_NUMBER, GM_LOWER, GM_UPPER, GM_MIXED, GM_BYTE }; /* Must be in same order as GM_H etc */ static const char mode_types[] = { GM_CHINESE, GM_NUMBER, GM_LOWER, GM_UPPER, GM_MIXED, GM_BYTE }; /* Must be in same order as GM_H etc */
unsigned int state[3] = { 0 /*numeral_end*/, 0 /*numeral_cost*/, 0 /*byte_count*/ }; unsigned int state[3] = { 0 /*numeral_end*/, 0 /*numeral_cost*/, 0 /*byte_count*/ };
pn_define_mode(mode, gbdata, length, debug, state, mode_types, GM_NUM_MODES, gm_head_costs, gm_switch_cost, gm_eod_cost, gm_cur_cost); pn_define_mode(mode, gbdata, length, debug, state, mode_types, GM_NUM_MODES, gm_head_costs, gm_switch_cost, gm_eod_cost, gm_cur_cost);
@ -919,7 +919,7 @@ static void place_layer_id(char* grid, int size, int layers, int modules, int ec
} }
} }
int grid_matrix(struct zint_symbol *symbol, const unsigned char source[], size_t length) { INTERNAL int grid_matrix(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
int size, modules, error_number; int size, modules, error_number;
int auto_layers, min_layers, layers, auto_ecc_level, min_ecc_level, ecc_level; int auto_layers, min_layers, layers, auto_ecc_level, min_ecc_level, ecc_level;
int x, y, i; int x, y, i;
@ -1058,7 +1058,9 @@ int grid_matrix(struct zint_symbol *symbol, const unsigned char source[], size_t
} }
gm_add_ecc(binary, data_cw, layers, ecc_level, word); gm_add_ecc(binary, data_cw, layers, ecc_level, word);
#ifdef ZINT_TEST
if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, word, data_cw); if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, word, data_cw);
#endif
size = 6 + (layers * 12); size = 6 + (layers * 12);
modules = 1 + (layers * 2); modules = 1 + (layers * 2);

View File

@ -44,7 +44,7 @@
to be bulletproof, nor does it report very accurately what problem was found to be bulletproof, nor does it report very accurately what problem was found
or where, but should prevent some of the more common encoding errors */ or where, but should prevent some of the more common encoding errors */
void itostr(char ai_string[], int ai_value) { static void itostr(char ai_string[], int ai_value) {
int thou, hund, ten, unit; int thou, hund, ten, unit;
char temp[2]; char temp[2];
@ -70,7 +70,7 @@ void itostr(char ai_string[], int ai_value) {
strcat(ai_string, ")"); strcat(ai_string, ")");
} }
int gs1_verify(struct zint_symbol *symbol, const unsigned char source[], const size_t src_len, char reduced[]) { INTERNAL int gs1_verify(struct zint_symbol *symbol, const unsigned char source[], const size_t src_len, char reduced[]) {
int i, j, last_ai, ai_latch; int i, j, last_ai, ai_latch;
char ai_string[7]; /* 6 char max "(NNNN)" */ char ai_string[7]; /* 6 char max "(NNNN)" */
int bracket_level, max_bracket_level, ai_length, max_ai_length, min_ai_length; int bracket_level, max_bracket_level, ai_length, max_ai_length, min_ai_length;

View File

@ -358,7 +358,7 @@ static unsigned int* hx_head_costs(unsigned int state[]) {
/* Cost of switching modes from k to j */ /* Cost of switching modes from k to j */
static unsigned int hx_switch_cost(unsigned int state[], const int k, const int j) { static unsigned int hx_switch_cost(unsigned int state[], const int k, const int j) {
static unsigned int switch_costs[HX_NUM_MODES][HX_NUM_MODES] = { static const unsigned int switch_costs[HX_NUM_MODES][HX_NUM_MODES] = {
/* N T B 1 2 D F */ /* N T B 1 2 D F */
/*N*/ { 0, (10 + 4) * HX_MULT, (10 + 4 + 13) * HX_MULT, (10 + 4) * HX_MULT, (10 + 4) * HX_MULT, (10 + 4) * HX_MULT, 10 * HX_MULT }, /*N*/ { 0, (10 + 4) * HX_MULT, (10 + 4 + 13) * HX_MULT, (10 + 4) * HX_MULT, (10 + 4) * HX_MULT, (10 + 4) * HX_MULT, 10 * HX_MULT },
/*T*/ { (6 + 4) * HX_MULT, 0, (6 + 4 + 13) * HX_MULT, (6 + 4) * HX_MULT, (6 + 4) * HX_MULT, (6 + 4) * HX_MULT, 6 * HX_MULT }, /*T*/ { (6 + 4) * HX_MULT, 0, (6 + 4 + 13) * HX_MULT, (6 + 4) * HX_MULT, (6 + 4) * HX_MULT, (6 + 4) * HX_MULT, 6 * HX_MULT },
@ -374,7 +374,7 @@ static unsigned int hx_switch_cost(unsigned int state[], const int k, const int
/* Final end-of-data costs */ /* Final end-of-data costs */
static unsigned int hx_eod_cost(unsigned int state[], const int k) { static unsigned int hx_eod_cost(unsigned int state[], const int k) {
static unsigned int eod_costs[HX_NUM_MODES] = { static const unsigned int eod_costs[HX_NUM_MODES] = {
/* N T B 1 2 D F */ /* N T B 1 2 D F */
10 * HX_MULT, 6 * HX_MULT, 0, 12 * HX_MULT, 12 * HX_MULT, 15 * HX_MULT, 0 10 * HX_MULT, 6 * HX_MULT, 0, 12 * HX_MULT, 12 * HX_MULT, 15 * HX_MULT, 0
}; };
@ -436,7 +436,7 @@ static void hx_cur_cost(unsigned int state[], const unsigned int gbdata[], const
/* Calculate optimized encoding modes */ /* Calculate optimized encoding modes */
static void hx_define_mode(char* mode, const unsigned int gbdata[], const size_t length, const int debug) { static void hx_define_mode(char* mode, const unsigned int gbdata[], const size_t length, const int debug) {
static char mode_types[] = { 'n', 't', 'b', '1', '2', 'd', 'f' }; /* Must be in same order as HX_N etc */ static const char mode_types[] = { 'n', 't', 'b', '1', '2', 'd', 'f' }; /* Must be in same order as HX_N etc */
unsigned int state[5] = { 0 /*numeric_end*/, 0 /*numeric_cost*/, 1 /*text_submode*/, 0 /*fourbyte_end*/, 0 /*fourbyte_cost*/ }; unsigned int state[5] = { 0 /*numeric_end*/, 0 /*numeric_cost*/, 1 /*text_submode*/, 0 /*fourbyte_end*/, 0 /*fourbyte_cost*/ };
pn_define_mode(mode, gbdata, length, debug, state, mode_types, HX_NUM_MODES, hx_head_costs, hx_switch_cost, hx_eod_cost, hx_cur_cost); pn_define_mode(mode, gbdata, length, debug, state, mode_types, HX_NUM_MODES, hx_head_costs, hx_switch_cost, hx_eod_cost, hx_cur_cost);
@ -1370,7 +1370,7 @@ static int hx_apply_bitmask(unsigned char *grid, int size) {
} }
/* Han Xin Code - main */ /* Han Xin Code - main */
int han_xin(struct zint_symbol *symbol, const unsigned char source[], size_t length) { INTERNAL int han_xin(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
int est_binlen; int est_binlen;
int ecc_level = symbol->option_1; int ecc_level = symbol->option_1;
int i, j, version; int i, j, version;
@ -1542,7 +1542,9 @@ int han_xin(struct zint_symbol *symbol, const unsigned char source[], size_t len
} }
printf("\n"); printf("\n");
} }
#ifdef ZINT_TEST
if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, datastream, data_codewords); if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, datastream, data_codewords);
#endif
hx_setup_grid(grid, size, version); hx_setup_grid(grid, size, version);

View File

@ -29,6 +29,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
/* The function "USPS_MSB_Math_CRC11GenerateFrameCheckSequence" /* The function "USPS_MSB_Math_CRC11GenerateFrameCheckSequence"
is Copyright (C) 2006 United States Postal Service */ is Copyright (C) 2006 United States Postal Service */
@ -209,7 +210,7 @@ static const unsigned short int AppxD_IV[130] = {
** Outputs: ** Outputs:
** return unsigned short - 11 bit Frame Check Sequence (right justified) ** return unsigned short - 11 bit Frame Check Sequence (right justified)
***************************************************************************/ ***************************************************************************/
extern unsigned short USPS_MSB_Math_CRC11GenerateFrameCheckSequence(unsigned char *ByteArrayPtr) { static unsigned short USPS_MSB_Math_CRC11GenerateFrameCheckSequence(unsigned char *ByteArrayPtr) {
unsigned short GeneratorPolynomial = 0x0F35; unsigned short GeneratorPolynomial = 0x0F35;
unsigned short FrameCheckSequence = 0x07FF; unsigned short FrameCheckSequence = 0x07FF;
unsigned short Data; unsigned short Data;
@ -243,7 +244,7 @@ extern unsigned short USPS_MSB_Math_CRC11GenerateFrameCheckSequence(unsigned cha
return FrameCheckSequence; return FrameCheckSequence;
} }
int imail(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int imail(struct zint_symbol *symbol, unsigned char source[], int length) {
char data_pattern[200]; char data_pattern[200];
int error_number; int error_number;
int i, j, read; int i, j, read;
@ -565,4 +566,3 @@ int imail(struct zint_symbol *symbol, unsigned char source[], int length) {
symbol->width = read - 1; symbol->width = read - 1;
return error_number; return error_number;
} }

View File

@ -29,13 +29,14 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include "common.h" #include "common.h"
#include "large.h" #include "large.h"
void binary_add(short int accumulator[], short int input_buffer[]) { /* Binary addition */ INTERNAL void binary_add(short int accumulator[], short int input_buffer[]) { /* Binary addition */
int i, carry; int i, carry;
carry = 0; carry = 0;
@ -92,7 +93,7 @@ void binary_add(short int accumulator[], short int input_buffer[]) { /* Binary a
} }
} }
void binary_subtract(short int accumulator[], short int input_buffer[]) { INTERNAL void binary_subtract(short int accumulator[], short int input_buffer[]) {
/* 2's compliment subtraction */ /* 2's compliment subtraction */
/* take input_buffer from accumulator and put answer in accumulator */ /* take input_buffer from accumulator and put answer in accumulator */
int i; int i;
@ -115,7 +116,7 @@ void binary_subtract(short int accumulator[], short int input_buffer[]) {
binary_add(accumulator, sub_buffer); binary_add(accumulator, sub_buffer);
} }
void binary_multiply(short int reg[], char data[]) { INTERNAL void binary_multiply(short int reg[], char data[]) {
/* Multiply the contents of reg[] by a number */ /* Multiply the contents of reg[] by a number */
short int temp[112] = {0}; short int temp[112] = {0};
short int accum[112] = {0}; short int accum[112] = {0};
@ -135,7 +136,7 @@ void binary_multiply(short int reg[], char data[]) {
} }
} }
void shiftdown(short int buffer[]) { INTERNAL void shiftdown(short int buffer[]) {
int i; int i;
buffer[102] = 0; buffer[102] = 0;
@ -146,7 +147,7 @@ void shiftdown(short int buffer[]) {
} }
} }
void shiftup(short int buffer[]) { INTERNAL void shiftup(short int buffer[]) {
int i; int i;
for (i = 102; i > 0; i--) { for (i = 102; i > 0; i--) {
@ -156,7 +157,7 @@ void shiftup(short int buffer[]) {
buffer[0] = 0; buffer[0] = 0;
} }
short int islarger(short int accum[], short int reg[]) { INTERNAL short int islarger(short int accum[], short int reg[]) {
/* Returns 1 if accum[] is larger than reg[], else 0 */ /* Returns 1 if accum[] is larger than reg[], else 0 */
int i, latch, larger; int i, latch, larger;
latch = 0; latch = 0;
@ -178,7 +179,7 @@ short int islarger(short int accum[], short int reg[]) {
return larger; return larger;
} }
void binary_load(short int reg[], char data[], const size_t src_len) { INTERNAL void binary_load(short int reg[], char data[], const size_t src_len) {
size_t read; size_t read;
int i; int i;
short int temp[112] = {0}; short int temp[112] = {0};
@ -208,5 +209,3 @@ void binary_load(short int reg[], char data[], const size_t src_len) {
binary_add(reg, temp); binary_add(reg, temp);
} }
} }

View File

@ -29,6 +29,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
#ifndef __LARGE_H #ifndef __LARGE_H
#define __LARGE_H #define __LARGE_H
@ -36,17 +37,16 @@
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
extern void binary_load(short int reg[], char data[], const size_t src_len); INTERNAL void binary_load(short int reg[], char data[], const size_t src_len);
extern void binary_add(short int accumulator[], short int input_buffer[]); INTERNAL void binary_add(short int accumulator[], short int input_buffer[]);
extern void binary_subtract(short int accumulator[], short int input_buffer[]); INTERNAL void binary_subtract(short int accumulator[], short int input_buffer[]);
extern void shiftdown(short int buffer[]); INTERNAL void shiftdown(short int buffer[]);
extern void shiftup(short int buffer[]); INTERNAL void shiftup(short int buffer[]);
extern short int islarger(short int accum[], short int reg[]); INTERNAL short int islarger(short int accum[], short int reg[]);
extern void binary_multiply(short int reg[], char data[]); INTERNAL void binary_multiply(short int reg[], char data[]);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */
#endif /* __LARGE_H */ #endif /* __LARGE_H */

View File

@ -78,7 +78,7 @@ struct zint_symbol *ZBarcode_Create() {
return symbol; return symbol;
} }
extern void vector_free(struct zint_symbol *symbol); /* Free vector structures */ INTERNAL void vector_free(struct zint_symbol *symbol); /* Free vector structures */
void ZBarcode_Clear(struct zint_symbol *symbol) { void ZBarcode_Clear(struct zint_symbol *symbol) {
int i, j; int i, j;
@ -113,77 +113,77 @@ void ZBarcode_Delete(struct zint_symbol *symbol) {
free(symbol); free(symbol);
} }
extern int get_best_eci(unsigned char source[], size_t length); /* Calculate suitable ECI mode */ INTERNAL int get_best_eci(unsigned char source[], size_t length); /* Calculate suitable ECI mode */
extern int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length); /* Convert Unicode to other encodings */ INTERNAL int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length); /* Convert Unicode to other encodings */
extern int eanx(struct zint_symbol *symbol, unsigned char source[], int length); /* EAN system barcodes */ INTERNAL int eanx(struct zint_symbol *symbol, unsigned char source[], int length); /* EAN system barcodes */
extern int c39(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Code 3 from 9 (or Code 39) */ INTERNAL int c39(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Code 3 from 9 (or Code 39) */
extern int pharmazentral(struct zint_symbol *symbol, unsigned char source[], int length); /* Pharmazentral Nummer (PZN) */ INTERNAL int pharmazentral(struct zint_symbol *symbol, unsigned char source[], int length); /* Pharmazentral Nummer (PZN) */
extern int ec39(struct zint_symbol *symbol, unsigned char source[], int length); /* Extended Code 3 from 9 (or Code 39+) */ INTERNAL int ec39(struct zint_symbol *symbol, unsigned char source[], int length); /* Extended Code 3 from 9 (or Code 39+) */
extern int codabar(struct zint_symbol *symbol, unsigned char source[], int length); /* Codabar - a simple substitution cipher */ INTERNAL int codabar(struct zint_symbol *symbol, unsigned char source[], int length); /* Codabar - a simple substitution cipher */
extern int matrix_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 2 of 5 Standard (& Matrix) */ INTERNAL int matrix_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 2 of 5 Standard (& Matrix) */
extern int industrial_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 2 of 5 Industrial */ INTERNAL int industrial_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 2 of 5 Industrial */
extern int iata_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 2 of 5 IATA */ INTERNAL int iata_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 2 of 5 IATA */
extern int interleaved_two_of_five(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* Code 2 of 5 Interleaved */ INTERNAL int interleaved_two_of_five(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* Code 2 of 5 Interleaved */
extern int logic_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 2 of 5 Data Logic */ INTERNAL int logic_two_of_five(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 2 of 5 Data Logic */
extern int itf14(struct zint_symbol *symbol, unsigned char source[], int length); /* ITF-14 */ INTERNAL int itf14(struct zint_symbol *symbol, unsigned char source[], int length); /* ITF-14 */
extern int dpleit(struct zint_symbol *symbol, unsigned char source[], int length); /* Deutsche Post Leitcode */ INTERNAL int dpleit(struct zint_symbol *symbol, unsigned char source[], int length); /* Deutsche Post Leitcode */
extern int dpident(struct zint_symbol *symbol, unsigned char source[], int length); /* Deutsche Post Identcode */ INTERNAL int dpident(struct zint_symbol *symbol, unsigned char source[], int length); /* Deutsche Post Identcode */
extern int c93(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 93 - a re-working of Code 39+, generates 2 check digits */ INTERNAL int c93(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 93 - a re-working of Code 39+, generates 2 check digits */
extern int code_128(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Code 128 and NVE-18 */ INTERNAL int code_128(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Code 128 and NVE-18 */
extern int ean_128(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* EAN-128 (GS1-128) */ INTERNAL int ean_128(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* EAN-128 (GS1-128) */
extern int code_11(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 11 */ INTERNAL int code_11(struct zint_symbol *symbol, unsigned char source[], int length); /* Code 11 */
extern int msi_handle(struct zint_symbol *symbol, unsigned char source[], int length); /* MSI Plessey */ INTERNAL int msi_handle(struct zint_symbol *symbol, unsigned char source[], int length); /* MSI Plessey */
extern int telepen(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Telepen ASCII */ INTERNAL int telepen(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Telepen ASCII */
extern int telepen_num(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Telepen Numeric */ INTERNAL int telepen_num(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Telepen Numeric */
extern int plessey(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Plessey Code */ INTERNAL int plessey(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Plessey Code */
extern int pharma_one(struct zint_symbol *symbol, unsigned char source[], int length); /* Pharmacode One Track */ INTERNAL int pharma_one(struct zint_symbol *symbol, unsigned char source[], int length); /* Pharmacode One Track */
extern int flattermarken(struct zint_symbol *symbol, unsigned char source[], int length); /* Flattermarken */ INTERNAL int flattermarken(struct zint_symbol *symbol, unsigned char source[], int length); /* Flattermarken */
extern int fim(struct zint_symbol *symbol, unsigned char source[], int length); /* Facing Identification Mark */ INTERNAL int fim(struct zint_symbol *symbol, unsigned char source[], int length); /* Facing Identification Mark */
extern int pharma_two(struct zint_symbol *symbol, unsigned char source[], int length); /* Pharmacode Two Track */ INTERNAL int pharma_two(struct zint_symbol *symbol, unsigned char source[], int length); /* Pharmacode Two Track */
extern int post_plot(struct zint_symbol *symbol, unsigned char source[], int length); /* Postnet */ INTERNAL int post_plot(struct zint_symbol *symbol, unsigned char source[], int length); /* Postnet */
extern int planet_plot(struct zint_symbol *symbol, unsigned char source[], int length); /* PLANET */ INTERNAL int planet_plot(struct zint_symbol *symbol, unsigned char source[], int length); /* PLANET */
extern int imail(struct zint_symbol *symbol, unsigned char source[], int length); /* Intelligent Mail (aka USPS OneCode) */ INTERNAL int imail(struct zint_symbol *symbol, unsigned char source[], int length); /* Intelligent Mail (aka USPS OneCode) */
extern int royal_plot(struct zint_symbol *symbol, unsigned char source[], int length); /* RM4SCC */ INTERNAL int royal_plot(struct zint_symbol *symbol, unsigned char source[], int length); /* RM4SCC */
extern int australia_post(struct zint_symbol *symbol, unsigned char source[], int length); /* Australia Post 4-state */ INTERNAL int australia_post(struct zint_symbol *symbol, unsigned char source[], int length); /* Australia Post 4-state */
extern int code16k(struct zint_symbol *symbol, unsigned char source[],const size_t length); /* Code 16k */ INTERNAL int code16k(struct zint_symbol *symbol, unsigned char source[],const size_t length); /* Code 16k */
extern int pdf417enc(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* PDF417 */ INTERNAL int pdf417enc(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* PDF417 */
extern int micro_pdf417(struct zint_symbol *symbol, unsigned char chaine[], const size_t length); /* Micro PDF417 */ INTERNAL int micro_pdf417(struct zint_symbol *symbol, unsigned char chaine[], const size_t length); /* Micro PDF417 */
extern int maxicode(struct zint_symbol *symbol, unsigned char source[], int length); /* Maxicode */ INTERNAL int maxicode(struct zint_symbol *symbol, unsigned char source[], int length); /* Maxicode */
extern int rss14(struct zint_symbol *symbol, unsigned char source[], int length); /* RSS-14 */ INTERNAL int rss14(struct zint_symbol *symbol, unsigned char source[], int length); /* RSS-14 */
extern int rsslimited(struct zint_symbol *symbol, unsigned char source[], int length); /* RSS Limited */ INTERNAL int rsslimited(struct zint_symbol *symbol, unsigned char source[], int length); /* RSS Limited */
extern int rssexpanded(struct zint_symbol *symbol, unsigned char source[], int length); /* RSS Expanded */ INTERNAL int rssexpanded(struct zint_symbol *symbol, unsigned char source[], int length); /* RSS Expanded */
extern int composite(struct zint_symbol *symbol, unsigned char source[], int length); /* Composite Symbology */ INTERNAL int composite(struct zint_symbol *symbol, unsigned char source[], int length); /* Composite Symbology */
extern int kix_code(struct zint_symbol *symbol, unsigned char source[], int length); /* TNT KIX Code */ INTERNAL int kix_code(struct zint_symbol *symbol, unsigned char source[], int length); /* TNT KIX Code */
extern int aztec(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Aztec Code */ INTERNAL int aztec(struct zint_symbol *symbol, unsigned char source[], const size_t length); /* Aztec Code */
extern int code32(struct zint_symbol *symbol, unsigned char source[], int length); /* Italian Pharmacode */ INTERNAL int code32(struct zint_symbol *symbol, unsigned char source[], int length); /* Italian Pharmacode */
extern int daft_code(struct zint_symbol *symbol, unsigned char source[], int length); /* DAFT Code */ INTERNAL int daft_code(struct zint_symbol *symbol, unsigned char source[], int length); /* DAFT Code */
extern int ean_14(struct zint_symbol *symbol, unsigned char source[], int length); /* EAN-14 */ INTERNAL int ean_14(struct zint_symbol *symbol, unsigned char source[], int length); /* EAN-14 */
extern int nve_18(struct zint_symbol *symbol, unsigned char source[], int length); /* NVE-18 */ INTERNAL int nve_18(struct zint_symbol *symbol, unsigned char source[], int length); /* NVE-18 */
extern int microqr(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* Micro QR Code */ INTERNAL int microqr(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* Micro QR Code */
extern int aztec_runes(struct zint_symbol *symbol, unsigned char source[], int length); /* Aztec Runes */ INTERNAL int aztec_runes(struct zint_symbol *symbol, unsigned char source[], int length); /* Aztec Runes */
extern int korea_post(struct zint_symbol *symbol, unsigned char source[], int length); /* Korea Post */ INTERNAL int korea_post(struct zint_symbol *symbol, unsigned char source[], int length); /* Korea Post */
extern int japan_post(struct zint_symbol *symbol, unsigned char source[], int length); /* Japanese Post */ INTERNAL int japan_post(struct zint_symbol *symbol, unsigned char source[], int length); /* Japanese Post */
extern int code_49(struct zint_symbol *symbol, unsigned char source[], const int length); /* Code 49 */ INTERNAL int code_49(struct zint_symbol *symbol, unsigned char source[], const int length); /* Code 49 */
extern int channel_code(struct zint_symbol *symbol, unsigned char source[], int length); /* Channel Code */ INTERNAL int channel_code(struct zint_symbol *symbol, unsigned char source[], int length); /* Channel Code */
extern int code_one(struct zint_symbol *symbol, unsigned char source[], int length); /* Code One */ INTERNAL int code_one(struct zint_symbol *symbol, unsigned char source[], int length); /* Code One */
extern int grid_matrix(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* Grid Matrix */ INTERNAL int grid_matrix(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* Grid Matrix */
extern int han_xin(struct zint_symbol * symbol, const unsigned char source[], size_t length); /* Han Xin */ INTERNAL int han_xin(struct zint_symbol * symbol, const unsigned char source[], size_t length); /* Han Xin */
extern int dotcode(struct zint_symbol * symbol, const unsigned char source[], int length); /* DotCode */ INTERNAL int dotcode(struct zint_symbol * symbol, const unsigned char source[], int length); /* DotCode */
extern int codablock(struct zint_symbol * symbol, const unsigned char source[], const size_t length); /* Codablock */ INTERNAL int codablock(struct zint_symbol * symbol, const unsigned char source[], const size_t length); /* Codablock */
extern int upnqr(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* UPNQR */ INTERNAL int upnqr(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* UPNQR */
extern int qr_code(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* QR Code */ INTERNAL int qr_code(struct zint_symbol *symbol, const unsigned char source[], size_t length); /* QR Code */
extern int dmatrix(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* Data Matrix (IEC16022) */ INTERNAL int dmatrix(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* Data Matrix (IEC16022) */
extern int vin(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* VIN Code (Vehicle Identification Number) */ INTERNAL int vin(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* VIN Code (Vehicle Identification Number) */
extern int mailmark(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* Royal Mail 4-state Mailmark */ INTERNAL int mailmark(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* Royal Mail 4-state Mailmark */
extern int ultracode(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* Ultracode */ INTERNAL int ultracode(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* Ultracode */
extern int rmqr(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* rMQR */ INTERNAL int rmqr(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length); /* rMQR */
extern int plot_raster(struct zint_symbol *symbol, int rotate_angle, int file_type); /* Plot to PNG/BMP/PCX */ INTERNAL int plot_raster(struct zint_symbol *symbol, int rotate_angle, int file_type); /* Plot to PNG/BMP/PCX */
extern int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_type); /* Plot to EPS/EMF/SVG */ INTERNAL int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_type); /* Plot to EPS/EMF/SVG */
void error_tag(char error_string[], int error_number) { static void error_tag(char error_string[], int error_number) {
if (error_number != 0) { if (error_number != 0) {
char error_buffer[100]; char error_buffer[100];
@ -200,7 +200,7 @@ void error_tag(char error_string[], int error_number) {
} }
/* Output a hexadecimal representation of the rendered symbol */ /* Output a hexadecimal representation of the rendered symbol */
int dump_plot(struct zint_symbol *symbol) { static int dump_plot(struct zint_symbol *symbol) {
FILE *f; FILE *f;
int i, r; int i, r;
char hex[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', char hex[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8',
@ -873,7 +873,7 @@ static int reduced_charset(struct zint_symbol *symbol, const unsigned char *sour
return error_number; return error_number;
} }
void strip_bom(unsigned char *source, int *input_length) { static void strip_bom(unsigned char *source, int *input_length) {
int i; int i;
if (*input_length > 3) { if (*input_length > 3) {
@ -887,7 +887,7 @@ void strip_bom(unsigned char *source, int *input_length) {
} }
} }
int escape_char_process(struct zint_symbol *symbol, unsigned char *input_string, int *length) { static int escape_char_process(struct zint_symbol *symbol, unsigned char *input_string, int *length) {
int error_number; int error_number;
int in_posn, out_posn; int in_posn, out_posn;
int hex1, hex2; int hex1, hex2;

View File

@ -29,6 +29,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
/* /*
* Developed in accordance with "Royal Mail Mailmark barcode C encoding and deconding instructions" * Developed in accordance with "Royal Mail Mailmark barcode C encoding and deconding instructions"
@ -81,7 +82,7 @@ static const unsigned short extender_group_l[26] = {
2, 5, 7, 8, 13, 14, 15, 16, 21, 22, 23, 0, 1, 3, 4, 6, 9, 10, 11, 12, 17, 18, 19, 20, 24, 25 2, 5, 7, 8, 13, 14, 15, 16, 21, 22, 23, 0, 1, 3, 4, 6, 9, 10, 11, 12, 17, 18, 19, 20, 24, 25
}; };
int verify_character(char input, char type) { static int verify_character(char input, char type) {
int val = 0; int val = 0;
switch (type) { switch (type) {
@ -106,7 +107,7 @@ int verify_character(char input, char type) {
} }
} }
int verify_postcode(char* postcode, int type) { static int verify_postcode(char* postcode, int type) {
int i; int i;
char pattern[11]; char pattern[11];
@ -122,7 +123,7 @@ int verify_postcode(char* postcode, int type) {
} }
/* Royal Mail Mailmark */ /* Royal Mail Mailmark */
int mailmark(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length) { INTERNAL int mailmark(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length) {
char local_source[28]; char local_source[28];
int format; int format;

View File

@ -29,6 +29,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
/* Includes corrections thanks to Monica Swanson @ Source Technologies */ /* Includes corrections thanks to Monica Swanson @ Source Technologies */
#include "common.h" #include "common.h"
@ -37,10 +38,10 @@
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
int maxi_codeword[144]; static int maxi_codeword[144];
/* Handles error correction of primary message */ /* Handles error correction of primary message */
void maxi_do_primary_check() { static void maxi_do_primary_check() {
unsigned char data[15]; unsigned char data[15];
unsigned char results[15]; unsigned char results[15];
int j; int j;
@ -61,7 +62,7 @@ void maxi_do_primary_check() {
} }
/* Handles error correction of odd characters in secondary */ /* Handles error correction of odd characters in secondary */
void maxi_do_secondary_chk_odd(int ecclen) { static void maxi_do_secondary_chk_odd(int ecclen) {
unsigned char data[100]; unsigned char data[100];
unsigned char results[30]; unsigned char results[30];
int j; int j;
@ -85,7 +86,7 @@ void maxi_do_secondary_chk_odd(int ecclen) {
} }
/* Handles error correction of even characters in secondary */ /* Handles error correction of even characters in secondary */
void maxi_do_secondary_chk_even(int ecclen) { static void maxi_do_secondary_chk_even(int ecclen) {
unsigned char data[100]; unsigned char data[100];
unsigned char results[30]; unsigned char results[30];
int j; int j;
@ -109,7 +110,7 @@ void maxi_do_secondary_chk_even(int ecclen) {
} }
/* Moves everything up so that a shift or latch can be inserted */ /* Moves everything up so that a shift or latch can be inserted */
void maxi_bump(int set[], int character[], int bump_posn) { static void maxi_bump(int set[], int character[], int bump_posn) {
int i; int i;
for (i = 143; i > bump_posn; i--) { for (i = 143; i > bump_posn; i--) {
@ -119,7 +120,7 @@ void maxi_bump(int set[], int character[], int bump_posn) {
} }
/* If the value is present in array, return the value, else return badvalue */ /* If the value is present in array, return the value, else return badvalue */
int value_in_array(int val, int arr[], int badvalue, int arrLength){ static int value_in_array(int val, int arr[], int badvalue, int arrLength) {
int i; int i;
for(i = 0; i < arrLength; i++){ for(i = 0; i < arrLength; i++){
if(arr[i] == val) return val; if(arr[i] == val) return val;
@ -128,7 +129,7 @@ int value_in_array(int val, int arr[], int badvalue, int arrLength){
} }
/* Choose the best set from previous and next set in the range of the setval array, if no value can be found we return setval[0] */ /* Choose the best set from previous and next set in the range of the setval array, if no value can be found we return setval[0] */
int bestSurroundingSet(int index, int length, int set[], int setval[], int setLength) { static int bestSurroundingSet(int index, int length, int set[], int setval[], int setLength) {
int badValue = -1; int badValue = -1;
int option1 = value_in_array(set[index - 1], setval, badValue, setLength); int option1 = value_in_array(set[index - 1], setval, badValue, setLength);
if (index + 1 < length) { if (index + 1 < length) {
@ -146,7 +147,7 @@ int bestSurroundingSet(int index, int length, int set[], int setval[], int setLe
} }
/* Format text according to Appendix A */ /* Format text according to Appendix A */
int maxi_text_process(int mode, unsigned char source[], int length, int eci) { static int maxi_text_process(int mode, unsigned char source[], int length, int eci) {
/* This code doesn't make use of [Lock in C], [Lock in D] /* This code doesn't make use of [Lock in C], [Lock in D]
and [Lock in E] and so is not always the most efficient at and [Lock in E] and so is not always the most efficient at
compressing data, but should suffice for most applications */ compressing data, but should suffice for most applications */
@ -533,7 +534,7 @@ int maxi_text_process(int mode, unsigned char source[], int length, int eci) {
} }
/* Format structured primary for Mode 2 */ /* Format structured primary for Mode 2 */
void maxi_do_primary_2(char postcode[], int country, int service) { static void maxi_do_primary_2(char postcode[], int country, int service) {
size_t postcode_length; size_t postcode_length;
int postcode_num, i; int postcode_num, i;
@ -559,7 +560,7 @@ void maxi_do_primary_2(char postcode[], int country, int service) {
} }
/* Format structured primary for Mode 3 */ /* Format structured primary for Mode 3 */
void maxi_do_primary_3(char postcode[], int country, int service) { static void maxi_do_primary_3(char postcode[], int country, int service) {
int i, h; int i, h;
h = strlen(postcode); h = strlen(postcode);
@ -589,7 +590,7 @@ void maxi_do_primary_3(char postcode[], int country, int service) {
maxi_codeword[9] = ((service & 0x3f0) >> 4); maxi_codeword[9] = ((service & 0x3f0) >> 4);
} }
int maxicode(struct zint_symbol *symbol, unsigned char local_source[], const int length) { INTERNAL int maxicode(struct zint_symbol *symbol, unsigned char local_source[], const int length) {
int i, j, block, bit, mode, lp = 0; int i, j, block, bit, mode, lp = 0;
int bit_pattern[7], internal_error = 0, eclen; int bit_pattern[7], internal_error = 0, eclen;
char postcode[12], countrystr[4], servicestr[4]; char postcode[12], countrystr[4], servicestr[4];
@ -734,5 +735,3 @@ int maxicode(struct zint_symbol *symbol, unsigned char local_source[], const int
return internal_error; return internal_error;
} }

View File

@ -29,13 +29,15 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include "common.h" #include "common.h"
extern int c39(struct zint_symbol *symbol, unsigned char source[], const size_t length); INTERNAL int c39(struct zint_symbol *symbol, unsigned char source[], const size_t length);
/* Codabar table checked against EN 798:1995 */ /* Codabar table checked against EN 798:1995 */
#define CALCIUM "0123456789-$:/.+ABCD" #define CALCIUM "0123456789-$:/.+ABCD"
@ -46,7 +48,7 @@ static const char *CodaTable[20] = {
"21212111", "11212121", "11221211", "12121121", "11121221", "11122211" "21212111", "11212121", "11221211", "12121121", "11121221", "11122211"
}; };
int pharma_one(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int pharma_one(struct zint_symbol *symbol, unsigned char source[], int length) {
/* "Pharmacode can represent only a single integer from 3 to 131070. Unlike other /* "Pharmacode can represent only a single integer from 3 to 131070. Unlike other
commonly used one-dimensional barcode schemes, pharmacode does not store the data in a commonly used one-dimensional barcode schemes, pharmacode does not store the data in a
form corresponding to the human-readable digits; the number is encoded in binary, rather form corresponding to the human-readable digits; the number is encoded in binary, rather
@ -106,7 +108,7 @@ int pharma_one(struct zint_symbol *symbol, unsigned char source[], int length) {
return error_number; return error_number;
} }
int pharma_two_calc(struct zint_symbol *symbol, unsigned char source[], char dest[]) { static int pharma_two_calc(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
/* This code uses the Two Track Pharamacode defined in the document at /* This code uses the Two Track Pharamacode defined in the document at
http://www.laetus.com/laetus.php?request=file&id=69 and using a modified http://www.laetus.com/laetus.php?request=file&id=69 and using a modified
algorithm from the One Track system. This standard accepts integet values algorithm from the One Track system. This standard accepts integet values
@ -151,7 +153,7 @@ int pharma_two_calc(struct zint_symbol *symbol, unsigned char source[], char des
return error_number; return error_number;
} }
int pharma_two(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int pharma_two(struct zint_symbol *symbol, unsigned char source[], int length) {
/* Draws the patterns for two track pharmacode */ /* Draws the patterns for two track pharmacode */
char height_pattern[200]; char height_pattern[200];
unsigned int loopey, h; unsigned int loopey, h;
@ -192,7 +194,7 @@ int pharma_two(struct zint_symbol *symbol, unsigned char source[], int length) {
} }
/* The Codabar system consisting of simple substitution */ /* The Codabar system consisting of simple substitution */
int codabar(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int codabar(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, error_number; int i, error_number;
char dest[512]; char dest[512];
@ -232,7 +234,7 @@ int codabar(struct zint_symbol *symbol, unsigned char source[], int length) {
} }
/* Italian Pharmacode */ /* Italian Pharmacode */
int code32(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int code32(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, zeroes, error_number, checksum, checkpart, checkdigit; int i, zeroes, error_number, checksum, checkpart, checkdigit;
char localstr[10], risultante[7]; char localstr[10], risultante[7];
long int pharmacode, devisor; long int pharmacode, devisor;
@ -305,5 +307,3 @@ int code32(struct zint_symbol *symbol, unsigned char source[], int length) {
return error_number; return error_number;
} }

View File

@ -29,6 +29,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
@ -44,7 +45,7 @@
#define SSET "0123456789ABCDEF" #define SSET "0123456789ABCDEF"
int pcx_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) { INTERNAL int pcx_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
int fgred, fggrn, fgblu, bgred, bggrn, bgblu; int fgred, fggrn, fgblu, bgred, bggrn, bgblu;
int row, column, i, colour; int row, column, i, colour;
int run_count; int run_count;
@ -170,4 +171,3 @@ int pcx_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
return 0; return 0;
} }

View File

@ -30,6 +30,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
/* This code is adapted from "Code barre PDF 417 / PDF 417 barcode" v2.5.0 /* This code is adapted from "Code barre PDF 417 / PDF 417 barcode" v2.5.0
which is Copyright (C) 2004 (Grandzebu). which is Copyright (C) 2004 (Grandzebu).
@ -81,11 +82,11 @@ static const char MicroAutosize[56] = {
1, 14, 2, 7, 3, 25, 8, 16, 5, 17, 9, 6, 10, 11, 28, 12, 19, 13, 29, 20, 30, 21, 22, 31, 23, 32, 33, 34 1, 14, 2, 7, 3, 25, 8, 16, 5, 17, 9, 6, 10, 11, 28, 12, 19, 13, 29, 20, 30, 21, 22, 31, 23, 32, 33, 34
}; };
int liste[2][1000]; /* global */ static int liste[2][1000]; /* global */
/* 866 */ /* 866 */
int quelmode(char codeascii) { static int quelmode(char codeascii) {
int mode = BYT; int mode = BYT;
if ((codeascii == '\t') || (codeascii == '\n') || (codeascii == '\r') || ((codeascii >= ' ') && (codeascii <= '~'))) { if ((codeascii == '\t') || (codeascii == '\n') || (codeascii == '\r') || ((codeascii >= ' ') && (codeascii <= '~'))) {
mode = TEX; mode = TEX;
@ -99,7 +100,7 @@ int quelmode(char codeascii) {
} }
/* 844 */ /* 844 */
void regroupe(int *indexliste) { static void regroupe(int *indexliste) {
/* bring together same type blocks */ /* bring together same type blocks */
if (*(indexliste) > 1) { if (*(indexliste) > 1) {
@ -127,7 +128,7 @@ void regroupe(int *indexliste) {
} }
/* 478 */ /* 478 */
void pdfsmooth(int *indexliste) { static void pdfsmooth(int *indexliste) {
int i, crnt, last, next, length; int i, crnt, last, next, length;
for (i = 0; i < *(indexliste); i++) { for (i = 0; i < *(indexliste); i++) {
@ -223,7 +224,7 @@ void pdfsmooth(int *indexliste) {
} }
/* 547 */ /* 547 */
void textprocess(int *chainemc, int *mclength, char chaine[], int start, int length) { static void textprocess(int *chainemc, int *mclength, char chaine[], int start, int length) {
int j, indexlistet, curtable, listet[2][5000], chainet[5000], wnet; int j, indexlistet, curtable, listet[2][5000], chainet[5000], wnet;
wnet = 0; wnet = 0;
@ -414,7 +415,7 @@ void textprocess(int *chainemc, int *mclength, char chaine[], int start, int len
} }
/* 671 */ /* 671 */
void byteprocess(int *chainemc, int *mclength, unsigned char chaine[], int start, int length) { INTERNAL void byteprocess(int *chainemc, int *mclength, unsigned char chaine[], int start, int length) {
int debug = 0; int debug = 0;
if (debug) printf("\nEntering byte mode at position %d\n", start); if (debug) printf("\nEntering byte mode at position %d\n", start);
@ -482,7 +483,7 @@ void byteprocess(int *chainemc, int *mclength, unsigned char chaine[], int start
} }
/* 712 */ /* 712 */
void numbprocess(int *chainemc, int *mclength, char chaine[], int start, int length) { static void numbprocess(int *chainemc, int *mclength, char chaine[], int start, int length) {
int j, loop, dummy[100], diviseur, nombre; int j, loop, dummy[100], diviseur, nombre;
char chainemod[50], chainemult[100], temp; char chainemod[50], chainemult[100], temp;
@ -837,7 +838,7 @@ static int pdf417(struct zint_symbol *symbol, unsigned char chaine[], const size
} }
/* 345 */ /* 345 */
int pdf417enc(struct zint_symbol *symbol, unsigned char source[], const size_t length) { INTERNAL int pdf417enc(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
int codeerr, error_number; int codeerr, error_number;
error_number = 0; error_number = 0;
@ -890,7 +891,7 @@ int pdf417enc(struct zint_symbol *symbol, unsigned char source[], const size_t l
} }
/* like PDF417 only much smaller! */ /* like PDF417 only much smaller! */
int micro_pdf417(struct zint_symbol *symbol, unsigned char chaine[], const size_t length) { INTERNAL int micro_pdf417(struct zint_symbol *symbol, unsigned char chaine[], const size_t length) {
int i, k, j, indexchaine, indexliste, mode, longueur, mccorrection[50], offset; int i, k, j, indexchaine, indexliste, mode, longueur, mccorrection[50], offset;
int total, chainemc[2700], mclength, dummy[5], codeerr; int total, chainemc[2700], mclength, dummy[5], codeerr;
char pattern[580]; char pattern[580];
@ -1313,5 +1314,3 @@ int micro_pdf417(struct zint_symbol *symbol, unsigned char chaine[], const size_
return codeerr; return codeerr;
} }

View File

@ -29,6 +29,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
@ -49,7 +50,7 @@ static const char *MSITable[10] = {
}; };
/* Not MSI/Plessey but the older Plessey standard */ /* Not MSI/Plessey but the older Plessey standard */
int plessey(struct zint_symbol *symbol, unsigned char source[], const size_t length) { INTERNAL int plessey(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
unsigned int i; unsigned int i;
unsigned char *checkptr; unsigned char *checkptr;
@ -111,7 +112,7 @@ int plessey(struct zint_symbol *symbol, unsigned char source[], const size_t len
} }
/* Plain MSI Plessey - does not calculate any check character */ /* Plain MSI Plessey - does not calculate any check character */
int msi_plessey(struct zint_symbol *symbol, unsigned char source[], const size_t length) { static int msi_plessey(struct zint_symbol *symbol, unsigned char source[], const size_t length) {
size_t i; size_t i;
char dest[512]; /* 2 + 55 * 8 + 3 + 1 ~ 512 */ char dest[512]; /* 2 + 55 * 8 + 3 + 1 ~ 512 */
@ -138,7 +139,7 @@ int msi_plessey(struct zint_symbol *symbol, unsigned char source[], const size_t
/* MSI Plessey with Modulo 10 check digit - algorithm from Barcode Island /* MSI Plessey with Modulo 10 check digit - algorithm from Barcode Island
* http://www.barcodeisland.com/ */ * http://www.barcodeisland.com/ */
int msi_plessey_mod10(struct zint_symbol *symbol, unsigned char source[], int length) { static int msi_plessey_mod10(struct zint_symbol *symbol, unsigned char source[], int length) {
unsigned long i, wright, dau, pedwar, pump, n; unsigned long i, wright, dau, pedwar, pump, n;
@ -205,7 +206,7 @@ int msi_plessey_mod10(struct zint_symbol *symbol, unsigned char source[], int le
/* MSI Plessey with two Modulo 10 check digits - algorithm from /* MSI Plessey with two Modulo 10 check digits - algorithm from
* Barcode Island http://www.barcodeisland.com/ */ * Barcode Island http://www.barcodeisland.com/ */
int msi_plessey_mod1010(struct zint_symbol *symbol, unsigned char source[], const unsigned int src_len) { static int msi_plessey_mod1010(struct zint_symbol *symbol, unsigned char source[], const unsigned int src_len) {
unsigned long i, n, wright, dau, pedwar, pump, chwech; unsigned long i, n, wright, dau, pedwar, pump, chwech;
@ -309,7 +310,7 @@ int msi_plessey_mod1010(struct zint_symbol *symbol, unsigned char source[], cons
/* Calculate a Modulo 11 check digit using the system discussed on Wikipedia - /* Calculate a Modulo 11 check digit using the system discussed on Wikipedia -
see http://en.wikipedia.org/wiki/Talk:MSI_Barcode */ see http://en.wikipedia.org/wiki/Talk:MSI_Barcode */
int msi_plessey_mod11(struct zint_symbol *symbol, unsigned char source[], const unsigned int src_len) { static int msi_plessey_mod11(struct zint_symbol *symbol, unsigned char source[], const unsigned int src_len) {
/* uses the IBM weight system */ /* uses the IBM weight system */
int i, weight, x, check; int i, weight, x, check;
int error_number; int error_number;
@ -367,7 +368,7 @@ int msi_plessey_mod11(struct zint_symbol *symbol, unsigned char source[], const
/* Combining the Barcode Island and Wikipedia code /* Combining the Barcode Island and Wikipedia code
* Verified against http://www.bokai.com/BarcodeJSP/applet/BarcodeSampleApplet.htm */ * Verified against http://www.bokai.com/BarcodeJSP/applet/BarcodeSampleApplet.htm */
int msi_plessey_mod1110(struct zint_symbol *symbol, unsigned char source[], const unsigned int src_len) { static int msi_plessey_mod1110(struct zint_symbol *symbol, unsigned char source[], const unsigned int src_len) {
/* Weighted using the IBM system */ /* Weighted using the IBM system */
unsigned long i, weight, x, check, wright, dau, pedwar, pump; unsigned long i, weight, x, check, wright, dau, pedwar, pump;
size_t h; size_t h;
@ -462,7 +463,7 @@ int msi_plessey_mod1110(struct zint_symbol *symbol, unsigned char source[], cons
return error_number; return error_number;
} }
int msi_handle(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int msi_handle(struct zint_symbol *symbol, unsigned char source[], int length) {
int error_number; int error_number;
error_number = is_sane(NEON, source, length); error_number = is_sane(NEON, source, length);
@ -491,4 +492,3 @@ int msi_handle(struct zint_symbol *symbol, unsigned char source[], int length) {
return error_number; return error_number;
} }

View File

@ -29,6 +29,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
#include <stdio.h> #include <stdio.h>
#ifdef _MSC_VER #ifdef _MSC_VER
@ -71,7 +72,7 @@ static void writepng_error_handler(png_structp png_ptr, png_const_charp msg) {
longjmp(graphic->jmpbuf, 1); longjmp(graphic->jmpbuf, 1);
} }
int png_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) { INTERNAL int png_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
struct mainprog_info_type wpng_info; struct mainprog_info_type wpng_info;
struct mainprog_info_type *graphic; struct mainprog_info_type *graphic;
png_structp png_ptr; png_structp png_ptr;
@ -189,5 +190,3 @@ int png_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
return 0; return 0;
} }
#endif /* NO_PNG */ #endif /* NO_PNG */

View File

@ -86,7 +86,7 @@ static const char *JapanTable[19] = {
}; };
/* Handles the PostNet system used for Zip codes in the US */ /* Handles the PostNet system used for Zip codes in the US */
int postnet(struct zint_symbol *symbol, unsigned char source[], char dest[], int length) { static int postnet(struct zint_symbol *symbol, unsigned char source[], char dest[], int length) {
unsigned int i, sum, check_digit; unsigned int i, sum, check_digit;
int error_number; int error_number;
@ -121,7 +121,7 @@ int postnet(struct zint_symbol *symbol, unsigned char source[], char dest[], int
} }
/* Puts PostNet barcodes into the pattern matrix */ /* Puts PostNet barcodes into the pattern matrix */
int post_plot(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int post_plot(struct zint_symbol *symbol, unsigned char source[], int length) {
char height_pattern[256]; /* 5 + 38 * 5 + 5 + 5 + 1 ~ 256 */ char height_pattern[256]; /* 5 + 38 * 5 + 5 + 5 + 1 ~ 256 */
unsigned int loopey, h; unsigned int loopey, h;
int writer; int writer;
@ -152,7 +152,7 @@ int post_plot(struct zint_symbol *symbol, unsigned char source[], int length) {
} }
/* Handles the PLANET system used for item tracking in the US */ /* Handles the PLANET system used for item tracking in the US */
int planet(struct zint_symbol *symbol, unsigned char source[], char dest[], int length) { static int planet(struct zint_symbol *symbol, unsigned char source[], char dest[], int length) {
unsigned int i, sum, check_digit; unsigned int i, sum, check_digit;
int error_number; int error_number;
@ -187,7 +187,7 @@ int planet(struct zint_symbol *symbol, unsigned char source[], char dest[], int
} }
/* Puts PLANET barcodes into the pattern matrix */ /* Puts PLANET barcodes into the pattern matrix */
int planet_plot(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int planet_plot(struct zint_symbol *symbol, unsigned char source[], int length) {
char height_pattern[256]; /* 5 + 38 * 5 + 5 + 5 + 1 ~ 256 */ char height_pattern[256]; /* 5 + 38 * 5 + 5 + 5 + 1 ~ 256 */
unsigned int loopey, h; unsigned int loopey, h;
int writer; int writer;
@ -217,7 +217,7 @@ int planet_plot(struct zint_symbol *symbol, unsigned char source[], int length)
} }
/* Korean Postal Authority */ /* Korean Postal Authority */
int korea_post(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int korea_post(struct zint_symbol *symbol, unsigned char source[], int length) {
int total, loop, check, zeroes, error_number; int total, loop, check, zeroes, error_number;
char localstr[8], dest[80]; char localstr[8], dest[80];
@ -257,7 +257,7 @@ int korea_post(struct zint_symbol *symbol, unsigned char source[], int length) {
/* The simplest barcode symbology ever! Supported by MS Word, so here it is! /* The simplest barcode symbology ever! Supported by MS Word, so here it is!
glyphs from http://en.wikipedia.org/wiki/Facing_Identification_Mark */ glyphs from http://en.wikipedia.org/wiki/Facing_Identification_Mark */
int fim(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int fim(struct zint_symbol *symbol, unsigned char source[], int length) {
char dest[16] = {0}; char dest[16] = {0};
@ -295,7 +295,7 @@ int fim(struct zint_symbol *symbol, unsigned char source[], int length) {
} }
/* Handles the 4 State barcodes used in the UK by Royal Mail */ /* Handles the 4 State barcodes used in the UK by Royal Mail */
char rm4scc(char source[], unsigned char dest[], int length) { static char rm4scc(char source[], unsigned char dest[], int length) {
unsigned int i; unsigned int i;
int top, bottom, row, column, check_digit; int top, bottom, row, column, check_digit;
char values[3], set_copy[] = KRSET; char values[3], set_copy[] = KRSET;
@ -332,7 +332,7 @@ char rm4scc(char source[], unsigned char dest[], int length) {
} }
/* Puts RM4SCC into the data matrix */ /* Puts RM4SCC into the data matrix */
int royal_plot(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int royal_plot(struct zint_symbol *symbol, unsigned char source[], int length) {
char height_pattern[210]; char height_pattern[210];
unsigned int loopey, h; unsigned int loopey, h;
int writer; int writer;
@ -378,7 +378,7 @@ int royal_plot(struct zint_symbol *symbol, unsigned char source[], int length) {
/* Handles Dutch Post TNT KIX symbols /* Handles Dutch Post TNT KIX symbols
The same as RM4SCC but without check digit The same as RM4SCC but without check digit
Specification at http://www.tntpost.nl/zakelijk/klantenservice/downloads/kIX_code/download.aspx */ Specification at http://www.tntpost.nl/zakelijk/klantenservice/downloads/kIX_code/download.aspx */
int kix_code(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int kix_code(struct zint_symbol *symbol, unsigned char source[], int length) {
char height_pattern[75], localstr[20]; char height_pattern[75], localstr[20];
unsigned int loopey; unsigned int loopey;
int writer, i, h; int writer, i, h;
@ -428,7 +428,7 @@ int kix_code(struct zint_symbol *symbol, unsigned char source[], int length) {
} }
/* Handles DAFT Code symbols */ /* Handles DAFT Code symbols */
int daft_code(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int daft_code(struct zint_symbol *symbol, unsigned char source[], int length) {
char height_pattern[100]; char height_pattern[100];
unsigned int loopey, h; unsigned int loopey, h;
int writer, i, error_number; int writer, i, error_number;
@ -485,7 +485,7 @@ int daft_code(struct zint_symbol *symbol, unsigned char source[], int length) {
} }
/* Flattermarken - Not really a barcode symbology! */ /* Flattermarken - Not really a barcode symbology! */
int flattermarken(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int flattermarken(struct zint_symbol *symbol, unsigned char source[], int length) {
int loop, error_number; int loop, error_number;
char dest[512]; /* 90 * 4 + 1 ~ */ char dest[512]; /* 90 * 4 + 1 ~ */
@ -510,7 +510,7 @@ int flattermarken(struct zint_symbol *symbol, unsigned char source[], int length
} }
/* Japanese Postal Code (Kasutama Barcode) */ /* Japanese Postal Code (Kasutama Barcode) */
int japan_post(struct zint_symbol *symbol, unsigned char source[], int length) { INTERNAL int japan_post(struct zint_symbol *symbol, unsigned char source[], int length) {
int error_number, h; int error_number, h;
char pattern[69]; char pattern[69];
int writer, loopey, inter_posn, i, sum, check; int writer, loopey, inter_posn, i, sum, check;

View File

@ -29,6 +29,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
#include <locale.h> #include <locale.h>
#include <string.h> #include <string.h>
@ -37,7 +38,7 @@
#include <math.h> #include <math.h>
#include "common.h" #include "common.h"
int ps_plot(struct zint_symbol *symbol) { INTERNAL int ps_plot(struct zint_symbol *symbol) {
FILE *feps; FILE *feps;
int fgred, fggrn, fgblu, bgred, bggrn, bgblu; int fgred, fggrn, fgblu, bgred, bggrn, bgblu;
float red_ink, green_ink, blue_ink, red_paper, green_paper, blue_paper; float red_ink, green_ink, blue_ink, red_paper, green_paper, blue_paper;

View File

@ -39,10 +39,9 @@
#include "sjis.h" #include "sjis.h"
#include "qr.h" #include "qr.h"
#include "reedsol.h" #include "reedsol.h"
#include <stdlib.h> /* abs */
#include <assert.h> #include <assert.h>
extern int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length); /* Convert Unicode to other encodings */ INTERNAL int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length); /* Convert Unicode to other encodings */
/* Returns true if input glyph is in the Alphanumeric set */ /* Returns true if input glyph is in the Alphanumeric set */
static int is_alpha(const unsigned int glyph, const int gs1) { static int is_alpha(const unsigned int glyph, const int gs1) {
@ -140,7 +139,7 @@ static int in_alpha(const unsigned int jisdata[], const size_t length, const int
#define QR_B 2 /* Byte */ #define QR_B 2 /* Byte */
#define QR_K 3 /* Kanji */ #define QR_K 3 /* Kanji */
static char mode_types[] = { 'N', 'A', 'B', 'K', }; /* Must be in same order as QR_N etc */ static const char mode_types[] = { 'N', 'A', 'B', 'K', }; /* Must be in same order as QR_N etc */
#define QR_NUM_MODES 4 #define QR_NUM_MODES 4
@ -159,7 +158,7 @@ static char mode_types[] = { 'N', 'A', 'B', 'K', }; /* Must be in same order as
/* Initial mode costs */ /* Initial mode costs */
static unsigned int* qr_head_costs(unsigned int state[]) { static unsigned int* qr_head_costs(unsigned int state[]) {
static int head_costs[7][QR_NUM_MODES] = { static const int head_costs[7][QR_NUM_MODES] = {
/* N A B K */ /* N A B K */
{ (10 + 4) * QR_MULT, (9 + 4) * QR_MULT, (8 + 4) * QR_MULT, (8 + 4) * QR_MULT, }, /* QR */ { (10 + 4) * QR_MULT, (9 + 4) * QR_MULT, (8 + 4) * QR_MULT, (8 + 4) * QR_MULT, }, /* QR */
{ (12 + 4) * QR_MULT, (11 + 4) * QR_MULT, (16 + 4) * QR_MULT, (10 + 4) * QR_MULT, }, { (12 + 4) * QR_MULT, (11 + 4) * QR_MULT, (16 + 4) * QR_MULT, (10 + 4) * QR_MULT, },
@ -260,7 +259,7 @@ static int mode_bits(const int version) {
/* Return character count indicator bits based on version and mode */ /* Return character count indicator bits based on version and mode */
static int cci_bits(const int version, const int mode) { static int cci_bits(const int version, const int mode) {
static int cci_bits[7][QR_NUM_MODES] = { static const int cci_bits[7][QR_NUM_MODES] = {
/* N A B K */ /* N A B K */
{ 10, 9, 8, 8, }, /* QRCODE */ { 10, 9, 8, 8, }, /* QRCODE */
{ 12, 11, 16, 10, }, { 12, 11, 16, 10, },
@ -1523,7 +1522,7 @@ static int getBinaryLength(const int version, char inputMode[], const unsigned i
return count; return count;
} }
int qr_code(struct zint_symbol *symbol, const unsigned char source[], size_t length) { INTERNAL int qr_code(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
int i, j, est_binlen; int i, j, est_binlen;
int ecc_level, autosize, version, max_cw, target_codewords, blocks, size; int ecc_level, autosize, version, max_cw, target_codewords, blocks, size;
int bitmask, gs1; int bitmask, gs1;
@ -1715,7 +1714,9 @@ int qr_code(struct zint_symbol *symbol, const unsigned char source[], size_t len
#endif #endif
qr_binary(datastream, version, target_codewords, mode, jisdata, length, gs1, symbol->eci, est_binlen, symbol->debug); qr_binary(datastream, version, target_codewords, mode, jisdata, length, gs1, symbol->eci, est_binlen, symbol->debug);
#ifdef ZINT_TEST
if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, datastream, target_codewords); if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, datastream, target_codewords);
#endif
add_ecc(fullstream, datastream, version, target_codewords, blocks, symbol->debug); add_ecc(fullstream, datastream, version, target_codewords, blocks, symbol->debug);
size = qr_sizes[version - 1]; size = qr_sizes[version - 1];
@ -1827,8 +1828,9 @@ static void micro_qr_m1(struct zint_symbol *symbol, char binary_data[]) {
data_blocks[2] += 0x80 >> j; data_blocks[2] += 0x80 >> j;
} }
} }
#ifdef ZINT_TEST
if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, data_blocks, data_codewords); if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, data_blocks, data_codewords);
#endif
/* Calculate Reed-Solomon error codewords */ /* Calculate Reed-Solomon error codewords */
rs_init_gf(0x11d); rs_init_gf(0x11d);
@ -1907,8 +1909,9 @@ static void micro_qr_m2(struct zint_symbol *symbol, char binary_data[], const in
} }
} }
} }
#ifdef ZINT_TEST
if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, data_blocks, data_codewords); if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, data_blocks, data_codewords);
#endif
/* Calculate Reed-Solomon error codewords */ /* Calculate Reed-Solomon error codewords */
rs_init_gf(0x11d); rs_init_gf(0x11d);
@ -2021,8 +2024,9 @@ static void micro_qr_m3(struct zint_symbol *symbol, char binary_data[], const in
} }
} }
} }
#ifdef ZINT_TEST
if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, data_blocks, data_codewords); if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, data_blocks, data_codewords);
#endif
/* Calculate Reed-Solomon error codewords */ /* Calculate Reed-Solomon error codewords */
rs_init_gf(0x11d); rs_init_gf(0x11d);
@ -2110,8 +2114,9 @@ static void micro_qr_m4(struct zint_symbol *symbol, char binary_data[], const in
} }
} }
} }
#ifdef ZINT_TEST
if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, data_blocks, data_codewords); if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, data_blocks, data_codewords);
#endif
/* Calculate Reed-Solomon error codewords */ /* Calculate Reed-Solomon error codewords */
rs_init_gf(0x11d); rs_init_gf(0x11d);
@ -2328,7 +2333,7 @@ static int micro_apply_bitmask(unsigned char *grid,const int size) {
return best_pattern; return best_pattern;
} }
int microqr(struct zint_symbol *symbol, const unsigned char source[], size_t length) { INTERNAL int microqr(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
size_t i; size_t i;
int j, size; int j, size;
char full_stream[200]; char full_stream[200];
@ -2624,7 +2629,7 @@ int microqr(struct zint_symbol *symbol, const unsigned char source[], size_t len
} }
/* For UPNQR the symbol size and error correction capacity is fixed */ /* For UPNQR the symbol size and error correction capacity is fixed */
int upnqr(struct zint_symbol *symbol, const unsigned char source[], size_t length) { INTERNAL int upnqr(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
int i, j, est_binlen; int i, j, est_binlen;
int ecc_level, version, target_codewords, blocks, size; int ecc_level, version, target_codewords, blocks, size;
int bitmask, error_number; int bitmask, error_number;
@ -2695,7 +2700,9 @@ int upnqr(struct zint_symbol *symbol, const unsigned char source[], size_t lengt
#endif #endif
qr_binary(datastream, version, target_codewords, mode, jisdata, length, 0, symbol->eci, est_binlen, symbol->debug); qr_binary(datastream, version, target_codewords, mode, jisdata, length, 0, symbol->eci, est_binlen, symbol->debug);
#ifdef ZINT_TEST
if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, datastream, target_codewords); if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, datastream, target_codewords);
#endif
add_ecc(fullstream, datastream, version, target_codewords, blocks, symbol->debug); add_ecc(fullstream, datastream, version, target_codewords, blocks, symbol->debug);
size = qr_sizes[version - 1]; size = qr_sizes[version - 1];
@ -2848,7 +2855,7 @@ static void setup_rmqr_grid(unsigned char* grid,const int h_size,const int v_siz
} }
/* rMQR according to 2018 draft standard */ /* rMQR according to 2018 draft standard */
int rmqr(struct zint_symbol *symbol, const unsigned char source[], size_t length) { INTERNAL int rmqr(struct zint_symbol *symbol, const unsigned char source[], size_t length) {
int i, j, est_binlen; int i, j, est_binlen;
int ecc_level, autosize, version, max_cw, target_codewords, blocks, h_size, v_size; int ecc_level, autosize, version, max_cw, target_codewords, blocks, h_size, v_size;
int gs1; int gs1;
@ -3006,7 +3013,9 @@ int rmqr(struct zint_symbol *symbol, const unsigned char source[], size_t length
#endif #endif
qr_binary(datastream, RMQR_VERSION + version, target_codewords, mode, jisdata, length, gs1, 0 /*eci*/, est_binlen, symbol->debug); qr_binary(datastream, RMQR_VERSION + version, target_codewords, mode, jisdata, length, gs1, 0 /*eci*/, est_binlen, symbol->debug);
#ifdef ZINT_TEST
if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, datastream, target_codewords); if (symbol->debug & ZINT_DEBUG_TEST) debug_test_codeword_dump(symbol, datastream, target_codewords);
#endif
add_ecc(fullstream, datastream, RMQR_VERSION + version, target_codewords, blocks, symbol->debug); add_ecc(fullstream, datastream, RMQR_VERSION + version, target_codewords, blocks, symbol->debug);
h_size = rmqr_width[version]; h_size = rmqr_width[version];

View File

@ -49,14 +49,14 @@
#define SSET "0123456789ABCDEF" #define SSET "0123456789ABCDEF"
#ifndef NO_PNG #ifndef NO_PNG
extern int png_pixel_plot(struct zint_symbol *symbol, char *pixelbuf); INTERNAL int png_pixel_plot(struct zint_symbol *symbol, char *pixelbuf);
#endif /* NO_PNG */ #endif /* NO_PNG */
extern int bmp_pixel_plot(struct zint_symbol *symbol, char *pixelbuf); INTERNAL int bmp_pixel_plot(struct zint_symbol *symbol, char *pixelbuf);
extern int pcx_pixel_plot(struct zint_symbol *symbol, char *pixelbuf); INTERNAL int pcx_pixel_plot(struct zint_symbol *symbol, char *pixelbuf);
extern int gif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf); INTERNAL int gif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf);
extern int tif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf); INTERNAL int tif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf);
void buffer_plot(struct zint_symbol *symbol, char *pixelbuf) { static void buffer_plot(struct zint_symbol *symbol, char *pixelbuf) {
/* Place pixelbuffer into symbol */ /* Place pixelbuffer into symbol */
int fgred, fggrn, fgblu, bgred, bggrn, bgblu; int fgred, fggrn, fgblu, bgred, bggrn, bgblu;
int row, column, i; int row, column, i;
@ -90,7 +90,7 @@ void buffer_plot(struct zint_symbol *symbol, char *pixelbuf) {
} }
} }
int save_raster_image_to_file(struct zint_symbol *symbol, int image_height, int image_width, char *pixelbuf, int rotate_angle, int image_type) { static int save_raster_image_to_file(struct zint_symbol *symbol, int image_height, int image_width, char *pixelbuf, int rotate_angle, int image_type) {
int error_number; int error_number;
int row, column; int row, column;
@ -208,7 +208,7 @@ int save_raster_image_to_file(struct zint_symbol *symbol, int image_height, int
return error_number; return error_number;
} }
void draw_bar(char *pixelbuf, int xpos, int xlen, int ypos, int ylen, int image_width, int image_height) { static void draw_bar(char *pixelbuf, int xpos, int xlen, int ypos, int ylen, int image_width, int image_height) {
/* Draw a rectangle */ /* Draw a rectangle */
int i, j, png_ypos; int i, j, png_ypos;
@ -223,7 +223,7 @@ void draw_bar(char *pixelbuf, int xpos, int xlen, int ypos, int ylen, int image_
} }
} }
void draw_circle(char *pixelbuf, int image_width, int image_height, int x0, int y0, float radius, char fill) { static void draw_circle(char *pixelbuf, int image_width, int image_height, int x0, int y0, float radius, char fill) {
int x, y; int x, y;
int radius_i = (int) radius; int radius_i = (int) radius;
@ -239,7 +239,7 @@ void draw_circle(char *pixelbuf, int image_width, int image_height, int x0, int
} }
} }
void draw_bullseye(char *pixelbuf, int image_width, int image_height, int xoffset, int yoffset, int scaler) { static void draw_bullseye(char *pixelbuf, int image_width, int image_height, int xoffset, int yoffset, int scaler) {
/* Central bullseye in Maxicode symbols */ /* Central bullseye in Maxicode symbols */
float x = 14.5 * scaler; float x = 14.5 * scaler;
float y = 15.0 * scaler; float y = 15.0 * scaler;
@ -256,7 +256,7 @@ void draw_bullseye(char *pixelbuf, int image_width, int image_height, int xoffse
draw_circle(pixelbuf, image_width, image_height, x + xoffset, y + yoffset, (0.602 * scaler) + 1, '0'); draw_circle(pixelbuf, image_width, image_height, x + xoffset, y + yoffset, (0.602 * scaler) + 1, '0');
} }
void draw_hexagon(char *pixelbuf, int image_width, char *scaled_hexagon, int hexagon_size, int xposn, int yposn) { static void draw_hexagon(char *pixelbuf, int image_width, char *scaled_hexagon, int hexagon_size, int xposn, int yposn) {
/* Put a hexagon into the pixel buffer */ /* Put a hexagon into the pixel buffer */
int i, j; int i, j;
@ -269,7 +269,7 @@ void draw_hexagon(char *pixelbuf, int image_width, char *scaled_hexagon, int hex
} }
} }
void draw_letter(char *pixelbuf, unsigned char letter, int xposn, int yposn, int textflags, int image_width, int image_height) { static void draw_letter(char *pixelbuf, unsigned char letter, int xposn, int yposn, int textflags, int image_width, int image_height) {
/* Put a letter into a position */ /* Put a letter into a position */
int skip; int skip;
@ -387,7 +387,7 @@ void draw_letter(char *pixelbuf, unsigned char letter, int xposn, int yposn, int
} }
/* Plot a string into the pixel buffer */ /* Plot a string into the pixel buffer */
void draw_string(char *pixbuf, char input_string[], int xposn, int yposn, int textflags, int image_width, int image_height) { static void draw_string(char *pixbuf, char input_string[], int xposn, int yposn, int textflags, int image_width, int image_height) {
int i, string_length, string_left_hand, letter_width = 7; int i, string_length, string_left_hand, letter_width = 7;
switch (textflags) { switch (textflags) {
@ -413,7 +413,7 @@ void draw_string(char *pixbuf, char input_string[], int xposn, int yposn, int te
} }
void plot_hexline(char *scaled_hexagon, int hexagon_size, float start_x, float start_y, float end_x, float end_y) { static void plot_hexline(char *scaled_hexagon, int hexagon_size, float start_x, float start_y, float end_x, float end_y) {
/* Draw a straight line from start to end */ /* Draw a straight line from start to end */
int i; int i;
float inc_x, inc_y; float inc_x, inc_y;
@ -430,7 +430,7 @@ void plot_hexline(char *scaled_hexagon, int hexagon_size, float start_x, float s
} }
} }
void plot_hexagon(char *scaled_hexagon, int hexagon_size) { static void plot_hexagon(char *scaled_hexagon, int hexagon_size) {
/* Create a hexagon shape and fill it */ /* Create a hexagon shape and fill it */
int line, i; int line, i;
@ -486,7 +486,7 @@ void plot_hexagon(char *scaled_hexagon, int hexagon_size) {
} }
} }
int plot_raster_maxicode(struct zint_symbol *symbol, int rotate_angle, int data_type) { static int plot_raster_maxicode(struct zint_symbol *symbol, int rotate_angle, int data_type) {
/* Plot a MaxiCode symbol with hexagons and bullseye */ /* Plot a MaxiCode symbol with hexagons and bullseye */
int i, row, column, xposn; int i, row, column, xposn;
int image_height, image_width; int image_height, image_width;
@ -566,7 +566,7 @@ int plot_raster_maxicode(struct zint_symbol *symbol, int rotate_angle, int data_
} }
/* Convert UTF-8 to Latin1 Codepage for the interpretation line */ /* Convert UTF-8 to Latin1 Codepage for the interpretation line */
void to_latin1(unsigned char source[], unsigned char preprocessed[]) { static void to_latin1(unsigned char source[], unsigned char preprocessed[]) {
int j, i, input_length; int j, i, input_length;
input_length = ustrlen(source); input_length = ustrlen(source);
@ -604,7 +604,7 @@ void to_latin1(unsigned char source[], unsigned char preprocessed[]) {
return; return;
} }
int plot_raster_dotty(struct zint_symbol *symbol, int rotate_angle, int data_type) { static int plot_raster_dotty(struct zint_symbol *symbol, int rotate_angle, int data_type) {
float scaler = 2 * symbol->scale; float scaler = 2 * symbol->scale;
char *scaled_pixelbuf; char *scaled_pixelbuf;
int r, i; int r, i;
@ -654,7 +654,7 @@ int plot_raster_dotty(struct zint_symbol *symbol, int rotate_angle, int data_typ
return error_number; return error_number;
} }
int plot_raster_default(struct zint_symbol *symbol, int rotate_angle, int data_type) { static int plot_raster_default(struct zint_symbol *symbol, int rotate_angle, int data_type) {
int textdone, main_width, comp_offset, large_bar_count; int textdone, main_width, comp_offset, large_bar_count;
char textpart[10], addon[6]; char textpart[10], addon[6];
float addon_text_posn, preset_height, large_bar_height; float addon_text_posn, preset_height, large_bar_height;
@ -1118,7 +1118,7 @@ int plot_raster_default(struct zint_symbol *symbol, int rotate_angle, int data_t
return error_number; return error_number;
} }
int plot_raster(struct zint_symbol *symbol, int rotate_angle, int file_type) { INTERNAL int plot_raster(struct zint_symbol *symbol, int rotate_angle, int file_type) {
int error; int error;
#ifdef NO_PNG #ifdef NO_PNG
@ -1139,5 +1139,3 @@ int plot_raster(struct zint_symbol *symbol, int rotate_angle, int file_type) {
return error; return error;
} }

View File

@ -28,6 +28,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
// It is not written with high efficiency in mind, so is probably // It is not written with high efficiency in mind, so is probably
// not suitable for real-time encoding. The aim was to keep it // not suitable for real-time encoding. The aim was to keep it
@ -48,12 +49,10 @@
// malloc/free can be avoided by using static arrays of a suitable // malloc/free can be avoided by using static arrays of a suitable
// size. // size.
#include <stdio.h> // only needed for debug (main)
#ifdef _MSC_VER #ifdef _MSC_VER
#include <malloc.h> #include <malloc.h>
#else
#include <stdlib.h>
#endif #endif
#include "common.h"
#include "reedsol.h" #include "reedsol.h"
static int logmod; // 2**symsize - 1 static int logmod; // 2**symsize - 1
static int rlen; static int rlen;
@ -70,7 +69,7 @@ static int *logt = NULL, *alog = NULL, *rspoly = NULL;
// polynomial. e.g. for ECC200 (8-bit symbols) the polynomial is // polynomial. e.g. for ECC200 (8-bit symbols) the polynomial is
// a**8 + a**5 + a**3 + a**2 + 1, which translates to 0x12d. // a**8 + a**5 + a**3 + a**2 + 1, which translates to 0x12d.
void rs_init_gf(const int poly) { INTERNAL void rs_init_gf(const int poly) {
int m, b, p, v; int m, b, p, v;
// Find the top bit, and hence the symbol size // Find the top bit, and hence the symbol size
@ -105,7 +104,7 @@ void rs_init_gf(const int poly) {
// (x + 2**i)*(x + 2**(i+1))*... [nsym terms] // (x + 2**i)*(x + 2**(i+1))*... [nsym terms]
// For ECC200, index is 1. // For ECC200, index is 1.
void rs_init_code(const int nsym, int index) { INTERNAL void rs_init_code(const int nsym, int index) {
int i, k; int i, k;
rspoly = (int *) malloc(sizeof (int) * (nsym + 1)); rspoly = (int *) malloc(sizeof (int) * (nsym + 1));
@ -125,7 +124,7 @@ void rs_init_code(const int nsym, int index) {
} }
} }
void rs_encode(const size_t len,const unsigned char *data, unsigned char *res) { INTERNAL void rs_encode(const size_t len,const unsigned char *data, unsigned char *res) {
int i, k; int i, k;
for (i = 0; i < rlen; i++) for (i = 0; i < rlen; i++)
res[i] = 0; res[i] = 0;
@ -145,7 +144,7 @@ void rs_encode(const size_t len,const unsigned char *data, unsigned char *res) {
} }
/* The same as above but for larger bitlengths - Aztec code compatible */ /* The same as above but for larger bitlengths - Aztec code compatible */
void rs_encode_long(const int len, const unsigned int *data, unsigned int *res) { INTERNAL void rs_encode_long(const int len, const unsigned int *data, unsigned int *res) {
int i, k; int i, k;
for (i = 0; i < rlen; i++) for (i = 0; i < rlen; i++)
res[i] = 0; res[i] = 0;
@ -165,10 +164,9 @@ void rs_encode_long(const int len, const unsigned int *data, unsigned int *res)
} }
/* Free memory */ /* Free memory */
void rs_free(void) { INTERNAL void rs_free(void) {
free(logt); free(logt);
free(alog); free(alog);
free(rspoly); free(rspoly);
rspoly = NULL; rspoly = NULL;
} }

View File

@ -29,6 +29,7 @@
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
#ifndef __REEDSOL_H #ifndef __REEDSOL_H
#define __REEDSOL_H #define __REEDSOL_H
@ -37,15 +38,14 @@
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
extern void rs_init_gf(const int poly); INTERNAL void rs_init_gf(const int poly);
extern void rs_init_code(const int nsym,int index); INTERNAL void rs_init_code(const int nsym,int index);
extern void rs_encode(const size_t len,const unsigned char *data, unsigned char *res); INTERNAL void rs_encode(const size_t len,const unsigned char *data, unsigned char *res);
extern void rs_encode_long(const int len,const unsigned int *data, unsigned int *res); INTERNAL void rs_encode_long(const int len,const unsigned int *data, unsigned int *res);
extern void rs_free(void); INTERNAL void rs_free(void);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */
#endif /* __REEDSOL_H */ #endif /* __REEDSOL_H */

View File

@ -79,7 +79,7 @@
* combins(n,r): returns the number of Combinations of r selected from n: * combins(n,r): returns the number of Combinations of r selected from n:
* Combinations = n! / ((n - r)! * r!) * Combinations = n! / ((n - r)! * r!)
**********************************************************************/ **********************************************************************/
int combins(int n, int r) { static int combins(int n, int r) {
int i, j; int i, j;
int maxDenom, minDenom; int maxDenom, minDenom;
int val; int val;
@ -120,7 +120,7 @@ int combins(int n, int r) {
* Return: * Return:
* static int widths[] = element widths * static int widths[] = element widths
**********************************************************************/ **********************************************************************/
void getRSSwidths(int val, int n, int elements, int maxWidth, int noNarrow) { static void getRSSwidths(int val, int n, int elements, int maxWidth, int noNarrow) {
int bar; int bar;
int elmWidth; int elmWidth;
int mxwElement; int mxwElement;
@ -161,7 +161,7 @@ void getRSSwidths(int val, int n, int elements, int maxWidth, int noNarrow) {
} }
/* GS1 DataBar-14 */ /* GS1 DataBar-14 */
int rss14(struct zint_symbol *symbol, unsigned char source[], int src_len) { INTERNAL int rss14(struct zint_symbol *symbol, unsigned char source[], int src_len) {
int error_number = 0, i, j, mask; int error_number = 0, i, j, mask;
short int accum[112], left_reg[112], right_reg[112], x_reg[112], y_reg[112]; short int accum[112], left_reg[112], right_reg[112], x_reg[112], y_reg[112];
int data_character[4], data_group[4], v_odd[4], v_even[4]; int data_character[4], data_group[4], v_odd[4], v_even[4];
@ -732,7 +732,7 @@ int rss14(struct zint_symbol *symbol, unsigned char source[], int src_len) {
} }
/* GS1 DataBar Limited */ /* GS1 DataBar Limited */
int rsslimited(struct zint_symbol *symbol, unsigned char source[], int src_len) { INTERNAL int rsslimited(struct zint_symbol *symbol, unsigned char source[], int src_len) {
int error_number = 0, i, mask; int error_number = 0, i, mask;
short int accum[112], left_reg[112], right_reg[112], x_reg[112], y_reg[112]; short int accum[112], left_reg[112], right_reg[112], x_reg[112], y_reg[112];
int left_group, right_group, left_odd, left_even, right_odd, right_even; int left_group, right_group, left_odd, left_even, right_odd, right_even;
@ -1058,7 +1058,7 @@ int rsslimited(struct zint_symbol *symbol, unsigned char source[], int src_len)
} }
/* Handles all data encodation from section 7.2.5 of ISO/IEC 24724 */ /* Handles all data encodation from section 7.2.5 of ISO/IEC 24724 */
int rss_binary_string(struct zint_symbol *symbol, char source[], char binary_string[]) { static int rss_binary_string(struct zint_symbol *symbol, char source[], char binary_string[]) {
int encoding_method, i, j, read_posn, last_digit, debug = symbol->debug, mode = NUMERIC; int encoding_method, i, j, read_posn, last_digit, debug = symbol->debug, mode = NUMERIC;
int symbol_characters, characters_per_row; int symbol_characters, characters_per_row;
#ifndef _MSC_VER #ifndef _MSC_VER
@ -1510,7 +1510,7 @@ int rss_binary_string(struct zint_symbol *symbol, char source[], char binary_str
} }
/* GS1 DataBar Expanded */ /* GS1 DataBar Expanded */
int rssexpanded(struct zint_symbol *symbol, unsigned char source[], int src_len) { INTERNAL int rssexpanded(struct zint_symbol *symbol, unsigned char source[], int src_len) {
int i, j, k, p, data_chars, vs[21], group[21], v_odd[21], v_even[21]; int i, j, k, p, data_chars, vs[21], group[21], v_odd[21], v_even[21];
char substring[21][14], latch; char substring[21][14], latch;
int char_widths[21][8], checksum, check_widths[8], c_group; int char_widths[21][8], checksum, check_widths[8], c_group;
@ -1957,5 +1957,3 @@ int rssexpanded(struct zint_symbol *symbol, unsigned char source[], int src_len)
return 0; return 0;
} }

View File

@ -56,7 +56,7 @@
#include "common.h" #include "common.h"
#include "sjis.h" #include "sjis.h"
extern int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length); /* Convert Unicode to other encodings */ INTERNAL int utf_to_eci(const int eci, const unsigned char source[], unsigned char dest[], size_t *length); /* Convert Unicode to other encodings */
/* /*
* JISX0201.1976-0 (libiconv-1.16/lib/jisx0201.h) * JISX0201.1976-0 (libiconv-1.16/lib/jisx0201.h)
@ -1481,7 +1481,7 @@ static int jisx0208_wctomb(unsigned int* r, unsigned int wc) {
*/ */
/* Returns 1 or 2 on success, 0 if no mapping */ /* Returns 1 or 2 on success, 0 if no mapping */
int sjis_wctomb_zint(unsigned int* r, unsigned int wc) { INTERNAL int sjis_wctomb_zint(unsigned int* r, unsigned int wc) {
int ret; int ret;
/* Try JIS X 0201-1976. */ /* Try JIS X 0201-1976. */
@ -1512,7 +1512,7 @@ int sjis_wctomb_zint(unsigned int* r, unsigned int wc) {
} }
/* Convert UTF-8 string to Shift JIS and place in array of ints */ /* Convert UTF-8 string to Shift JIS and place in array of ints */
int sjis_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* jisdata) { INTERNAL int sjis_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* jisdata) {
int i, error_number; int i, error_number;
unsigned int length; unsigned int length;
#ifndef _MSC_VER #ifndef _MSC_VER
@ -1537,7 +1537,7 @@ int sjis_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size
} }
/* Convert UTF-8 string to single byte ECI and place in array of ints */ /* Convert UTF-8 string to single byte ECI and place in array of ints */
int sjis_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* jisdata) { INTERNAL int sjis_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* jisdata) {
int error_number; int error_number;
#ifndef _MSC_VER #ifndef _MSC_VER
unsigned char single_byte[*p_length + 1]; unsigned char single_byte[*p_length + 1];
@ -1557,7 +1557,7 @@ int sjis_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsig
} }
/* Copy byte input stream to array of ints, putting double-bytes that match QR Kanji mode in single entry */ /* Copy byte input stream to array of ints, putting double-bytes that match QR Kanji mode in single entry */
void sjis_cpy(const unsigned char source[], size_t* p_length, unsigned int* jisdata) { INTERNAL void sjis_cpy(const unsigned char source[], size_t* p_length, unsigned int* jisdata) {
int i, j; int i, j;
unsigned int jis, length; unsigned int jis, length;
unsigned char c; unsigned char c;

View File

@ -37,10 +37,10 @@
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
int sjis_wctomb_zint(unsigned int* r, unsigned int wc); INTERNAL int sjis_wctomb_zint(unsigned int* r, unsigned int wc);
int sjis_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* jisdata); INTERNAL int sjis_utf8tomb(struct zint_symbol *symbol, const unsigned char source[], size_t* p_length, unsigned int* jisdata);
int sjis_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* jisdata); INTERNAL int sjis_utf8tosb(int eci, const unsigned char source[], size_t* p_length, unsigned int* jisdata);
void sjis_cpy(const unsigned char source[], size_t* p_length, unsigned int* jisdata); INTERNAL void sjis_cpy(const unsigned char source[], size_t* p_length, unsigned int* jisdata);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -42,7 +42,7 @@
#include "common.h" #include "common.h"
void make_html_friendly(unsigned char * string, char * html_version) { static void make_html_friendly(unsigned char * string, char * html_version) {
/* Converts text to use HTML entity codes */ /* Converts text to use HTML entity codes */
int i, html_pos; int i, html_pos;
@ -86,7 +86,7 @@ void make_html_friendly(unsigned char * string, char * html_version) {
} }
} }
int svg_plot(struct zint_symbol *symbol) { INTERNAL int svg_plot(struct zint_symbol *symbol) {
FILE *fsvg; FILE *fsvg;
int error_number = 0; int error_number = 0;
const char *locale = NULL; const char *locale = NULL;

View File

@ -29,6 +29,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
#define SODIUM "0123456789X" #define SODIUM "0123456789X"
@ -56,7 +57,7 @@ static char *TeleTable[] = {
"3113111113", "11311111111111", "331111111111", "111113111113", "31111111111111", "111311111113", "131111111113" "3113111113", "11311111111111", "331111111111", "111113111113", "31111111111111", "111311111113", "131111111113"
}; };
int telepen(struct zint_symbol *symbol, unsigned char source[], const size_t src_len) { INTERNAL int telepen(struct zint_symbol *symbol, unsigned char source[], const size_t src_len) {
unsigned int i, count, check_digit; unsigned int i, count, check_digit;
int error_number; int error_number;
char dest[512]; /*14 + 30 * 14 + 14 + 14 + 1 ~ 512 */ char dest[512]; /*14 + 30 * 14 + 14 + 14 + 1 ~ 512 */
@ -103,7 +104,7 @@ int telepen(struct zint_symbol *symbol, unsigned char source[], const size_t src
return error_number; return error_number;
} }
int telepen_num(struct zint_symbol *symbol, unsigned char source[], const size_t src_len) { INTERNAL int telepen_num(struct zint_symbol *symbol, unsigned char source[], const size_t src_len) {
unsigned int count, check_digit, glyph; unsigned int count, check_digit, glyph;
int error_number; int error_number;
size_t i,temp_length = src_len; size_t i,temp_length = src_len;
@ -165,4 +166,3 @@ int telepen_num(struct zint_symbol *symbol, unsigned char source[], const size_t
ustrcpy(symbol->text, temp); ustrcpy(symbol->text, temp);
return error_number; return error_number;
} }

View File

@ -10,6 +10,7 @@ set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/"
set(ZINT_DEBUG FALSE CACHE BOOL "Set debug compile flag") set(ZINT_DEBUG FALSE CACHE BOOL "Set debug compile flag")
set(ZINT_SANITIZE FALSE CACHE BOOL "Set sanitize compile/link flags") set(ZINT_SANITIZE FALSE CACHE BOOL "Set sanitize compile/link flags")
set(ZINT_TEST FALSE CACHE BOOL "Set test compile flag")
find_package (LibZint 2.7.0 REQUIRED) find_package (LibZint 2.7.0 REQUIRED)
find_package(PNG) find_package(PNG)
@ -29,6 +30,9 @@ if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
add_compile_options("-fsanitize=address") add_compile_options("-fsanitize=address")
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=undefined -fsanitize=address") set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=undefined -fsanitize=address")
endif (ZINT_SANITIZE) endif (ZINT_SANITIZE)
if (ZINT_TEST)
add_definitions("-DZINT_TEST")
endif (ZINT_TEST)
endif () endif ()
add_library(testcommon add_library(testcommon

View File

@ -1,15 +1,25 @@
Zint backend test suite Zint backend test suite
----------------------- -----------------------
To make: To make, first make libzint with ZINT_TEST defined:
cd <project-dir>
mkdir build
cd build
cmake -DZINT_TEST:BOOL:1 ..
make
Then make the tests:
cd <project-dir> cd <project-dir>
cd backend/tests cd backend/tests
mkdir build mkdir build
cd build cd build
cmake .. cmake -DZINT_TEST:BOOL:1 ..
make make
(ZINT_TEST is needed to export INTERNAL functions for use and testing.)
To run all tests: To run all tests:
make test make test
@ -50,4 +60,8 @@ To undo sanitize/debug, remake each after setting:
cmake -DZINT_SANITIZE:BOOL=0 .. cmake -DZINT_SANITIZE:BOOL=0 ..
cmake -DZINT_DEBUG:BOOL=0 .. cmake -DZINT_DEBUG:BOOL=0 ..
Note that sanitize is not safe to use in production, as it's a security risk. To get a clean libzint, set the above and also:
cmake -DZINT_TEST:BOOL=0 ..
(The tests will now fail to link.)

View File

@ -37,9 +37,7 @@
#define TESTCOMMON_H #define TESTCOMMON_H
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#include <string.h> #include <string.h>
#include <zint.h>
#include "../common.h" #include "../common.h"
extern int assertionFailed; extern int assertionFailed;

View File

@ -29,6 +29,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
@ -42,15 +43,7 @@
#include <malloc.h> #include <malloc.h>
#endif #endif
int tbump_up(int input) { INTERNAL int tif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
/* Strings length must be a multiple of 4 bytes */
if ((input % 2) == 1) {
input++;
}
return input;
}
int tif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
int fgred, fggrn, fgblu, bgred, bggrn, bgblu; int fgred, fggrn, fgblu, bgred, bggrn, bgblu;
int i; int i;
int rows_per_strip, strip_count; int rows_per_strip, strip_count;

View File

@ -33,7 +33,7 @@
#include <string.h> #include <string.h>
#include "common.h" #include "common.h"
int ultracode(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length) { INTERNAL int ultracode(struct zint_symbol *symbol, const unsigned char source[], const size_t in_length) {
strcpy(symbol->errtxt, "1000: Ultracode has not been implemented - yet!"); strcpy(symbol->errtxt, "1000: Ultracode has not been implemented - yet!");

View File

@ -28,6 +28,7 @@
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. SUCH DAMAGE.
*/ */
/* vim: set ts=4 sw=4 et : */
#define SODIUM "0123456789+" #define SODIUM "0123456789+"
#define EAN2 102 #define EAN2 102
@ -80,7 +81,7 @@ static const char *EANsetB[10] = {
}; };
/* Calculate the correct check digit for a UPC barcode */ /* Calculate the correct check digit for a UPC barcode */
char upc_check(char source[]) { static char upc_check(char source[]) {
unsigned int i, count, check_digit; unsigned int i, count, check_digit;
count = 0; count = 0;
@ -101,7 +102,7 @@ char upc_check(char source[]) {
} }
/* UPC A is usually used for 12 digit numbers, but this function takes a source of any length */ /* UPC A is usually used for 12 digit numbers, but this function takes a source of any length */
void upca_draw(char source[], char dest[]) { static void upca_draw(char source[], char dest[]) {
unsigned int i, half_way; unsigned int i, half_way;
half_way = strlen(source) / 2; half_way = strlen(source) / 2;
@ -124,7 +125,7 @@ void upca_draw(char source[], char dest[]) {
} }
/* Make a UPC A barcode when we haven't been given the check digit */ /* Make a UPC A barcode when we haven't been given the check digit */
int upca(struct zint_symbol *symbol, unsigned char source[], char dest[]) { static int upca(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
int length; int length;
char gtin[15]; char gtin[15];
@ -148,7 +149,7 @@ int upca(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
} }
/* UPC E is a zero-compressed version of UPC A */ /* UPC E is a zero-compressed version of UPC A */
int upce(struct zint_symbol *symbol, unsigned char source[], char dest[]) { static int upce(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
unsigned int i, num_system; unsigned int i, num_system;
char emode, equivalent[12], check_digit, parity[8], temp[9]; char emode, equivalent[12], check_digit, parity[8], temp[9];
char hrt[9]; char hrt[9];
@ -302,7 +303,7 @@ int upce(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
} }
/* EAN-2 and EAN-5 add-on codes */ /* EAN-2 and EAN-5 add-on codes */
void add_on(unsigned char source[], char dest[], int mode) { static void add_on(unsigned char source[], char dest[], int mode) {
char parity[6]; char parity[6];
unsigned int i, code_type; unsigned int i, code_type;
@ -362,7 +363,7 @@ void add_on(unsigned char source[], char dest[], int mode) {
/* ************************ EAN-13 ****************** */ /* ************************ EAN-13 ****************** */
/* Calculate the correct check digit for a EAN-13 barcode */ /* Calculate the correct check digit for a EAN-13 barcode */
char ean_check(char source[]) { static char ean_check(char source[]) {
int i; int i;
unsigned int h, count, check_digit; unsigned int h, count, check_digit;
@ -383,7 +384,7 @@ char ean_check(char source[]) {
return itoc(check_digit); return itoc(check_digit);
} }
int ean13(struct zint_symbol *symbol, unsigned char source[], char dest[]) { static int ean13(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
unsigned int length, i, half_way; unsigned int length, i, half_way;
char parity[6]; char parity[6];
char gtin[15]; char gtin[15];
@ -437,7 +438,7 @@ int ean13(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
} }
/* Make an EAN-8 barcode when we haven't been given the check digit */ /* Make an EAN-8 barcode when we haven't been given the check digit */
int ean8(struct zint_symbol *symbol, unsigned char source[], char dest[]) { static int ean8(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
/* EAN-8 is basically the same as UPC-A but with fewer digits */ /* EAN-8 is basically the same as UPC-A but with fewer digits */
int length; int length;
char gtin[10]; char gtin[10];
@ -463,7 +464,7 @@ int ean8(struct zint_symbol *symbol, unsigned char source[], char dest[]) {
} }
/* For ISBN(13) only */ /* For ISBN(13) only */
char isbn13_check(unsigned char source[]) { static char isbn13_check(unsigned char source[]) {
unsigned int i, weight, sum, check, h; unsigned int i, weight, sum, check, h;
sum = 0; sum = 0;
@ -483,7 +484,7 @@ char isbn13_check(unsigned char source[]) {
} }
/* For ISBN(10) and SBN only */ /* For ISBN(10) and SBN only */
char isbn_check(unsigned char source[]) { static char isbn_check(unsigned char source[]) {
unsigned int i, weight, sum, check, h; unsigned int i, weight, sum, check, h;
char check_char; char check_char;
@ -564,7 +565,7 @@ static int isbn(struct zint_symbol *symbol, unsigned char source[], const size_t
} }
/* Add leading zeroes to EAN and UPC strings */ /* Add leading zeroes to EAN and UPC strings */
void ean_leading_zeroes(struct zint_symbol *symbol, unsigned char source[], unsigned char local_source[]) { INTERNAL void ean_leading_zeroes(struct zint_symbol *symbol, unsigned char source[], unsigned char local_source[]) {
unsigned char first_part[20], second_part[20], zfirst_part[20], zsecond_part[20]; unsigned char first_part[20], second_part[20], zfirst_part[20], zsecond_part[20];
int with_addon = 0; int with_addon = 0;
int first_len = 0, second_len = 0, zfirst_len = 0, zsecond_len = 0, i, h; int first_len = 0, second_len = 0, zfirst_len = 0, zsecond_len = 0, i, h;
@ -693,7 +694,7 @@ void ean_leading_zeroes(struct zint_symbol *symbol, unsigned char source[], unsi
} }
/* splits string to parts before and after '+' parts */ /* splits string to parts before and after '+' parts */
int eanx(struct zint_symbol *symbol, unsigned char source[], int src_len) { INTERNAL int eanx(struct zint_symbol *symbol, unsigned char source[], int src_len) {
unsigned char first_part[20] = {0}, second_part[20] = {0}, dest[1000] = {0}; unsigned char first_part[20] = {0}, second_part[20] = {0}, dest[1000] = {0};
unsigned char local_source[20] = {0}; unsigned char local_source[20] = {0};
unsigned int latch, reader, writer, with_addon; unsigned int latch, reader, writer, with_addon;
@ -912,4 +913,3 @@ int eanx(struct zint_symbol *symbol, unsigned char source[], int src_len) {
return 0; return 0;
} }

View File

@ -43,11 +43,11 @@
#define SSET "0123456789ABCDEF" #define SSET "0123456789ABCDEF"
extern int ps_plot(struct zint_symbol *symbol); INTERNAL int ps_plot(struct zint_symbol *symbol);
extern int svg_plot(struct zint_symbol *symbol); INTERNAL int svg_plot(struct zint_symbol *symbol);
extern int emf_plot(struct zint_symbol *symbol); INTERNAL int emf_plot(struct zint_symbol *symbol);
struct zint_vector_rect *vector_plot_create_rect(float x, float y, float width, float height) { static struct zint_vector_rect *vector_plot_create_rect(float x, float y, float width, float height) {
struct zint_vector_rect *rect; struct zint_vector_rect *rect;
rect = (struct zint_vector_rect*) malloc(sizeof (struct zint_vector_rect)); rect = (struct zint_vector_rect*) malloc(sizeof (struct zint_vector_rect));
@ -63,7 +63,7 @@ struct zint_vector_rect *vector_plot_create_rect(float x, float y, float width,
return rect; return rect;
} }
int vector_plot_add_rect(struct zint_symbol *symbol, struct zint_vector_rect *rect, struct zint_vector_rect **last_rect) { static int vector_plot_add_rect(struct zint_symbol *symbol, struct zint_vector_rect *rect, struct zint_vector_rect **last_rect) {
if (!rect) return ZINT_ERROR_MEMORY; if (!rect) return ZINT_ERROR_MEMORY;
if (*last_rect) if (*last_rect)
(*last_rect)->next = rect; (*last_rect)->next = rect;
@ -74,7 +74,7 @@ int vector_plot_add_rect(struct zint_symbol *symbol, struct zint_vector_rect *re
return 1; return 1;
} }
struct zint_vector_hexagon *vector_plot_create_hexagon(float x, float y, float diameter) { static struct zint_vector_hexagon *vector_plot_create_hexagon(float x, float y, float diameter) {
struct zint_vector_hexagon *hexagon; struct zint_vector_hexagon *hexagon;
hexagon = (struct zint_vector_hexagon*) malloc(sizeof (struct zint_vector_hexagon)); hexagon = (struct zint_vector_hexagon*) malloc(sizeof (struct zint_vector_hexagon));
@ -87,7 +87,7 @@ struct zint_vector_hexagon *vector_plot_create_hexagon(float x, float y, float d
return hexagon; return hexagon;
} }
int vector_plot_add_hexagon(struct zint_symbol *symbol, struct zint_vector_hexagon *hexagon, struct zint_vector_hexagon **last_hexagon) { static int vector_plot_add_hexagon(struct zint_symbol *symbol, struct zint_vector_hexagon *hexagon, struct zint_vector_hexagon **last_hexagon) {
if (!hexagon) return ZINT_ERROR_MEMORY; if (!hexagon) return ZINT_ERROR_MEMORY;
if (*last_hexagon) if (*last_hexagon)
(*last_hexagon)->next = hexagon; (*last_hexagon)->next = hexagon;
@ -98,7 +98,7 @@ int vector_plot_add_hexagon(struct zint_symbol *symbol, struct zint_vector_hexag
return 1; return 1;
} }
struct zint_vector_circle *vector_plot_create_circle(float x, float y, float diameter, int colour) { static struct zint_vector_circle *vector_plot_create_circle(float x, float y, float diameter, int colour) {
struct zint_vector_circle *circle; struct zint_vector_circle *circle;
circle = (struct zint_vector_circle *) malloc(sizeof (struct zint_vector_circle)); circle = (struct zint_vector_circle *) malloc(sizeof (struct zint_vector_circle));
@ -112,7 +112,7 @@ struct zint_vector_circle *vector_plot_create_circle(float x, float y, float dia
return circle; return circle;
} }
int vector_plot_add_circle(struct zint_symbol *symbol, struct zint_vector_circle *circle, struct zint_vector_circle **last_circle) { static int vector_plot_add_circle(struct zint_symbol *symbol, struct zint_vector_circle *circle, struct zint_vector_circle **last_circle) {
if (!circle) return ZINT_ERROR_MEMORY; if (!circle) return ZINT_ERROR_MEMORY;
if (*last_circle) if (*last_circle)
(*last_circle)->next = circle; (*last_circle)->next = circle;
@ -123,7 +123,7 @@ int vector_plot_add_circle(struct zint_symbol *symbol, struct zint_vector_circle
return 1; return 1;
} }
int vector_plot_add_string(struct zint_symbol *symbol, static int vector_plot_add_string(struct zint_symbol *symbol,
unsigned char *text, float x, float y, float fsize, float width, unsigned char *text, float x, float y, float fsize, float width,
struct zint_vector_string **last_string) { struct zint_vector_string **last_string) {
struct zint_vector_string *string; struct zint_vector_string *string;
@ -147,7 +147,7 @@ int vector_plot_add_string(struct zint_symbol *symbol,
return 1; return 1;
} }
void vector_free(struct zint_symbol *symbol) { INTERNAL void vector_free(struct zint_symbol *symbol) {
if (symbol->vector != NULL) { if (symbol->vector != NULL) {
struct zint_vector_rect *rect; struct zint_vector_rect *rect;
struct zint_vector_hexagon *hex; struct zint_vector_hexagon *hex;
@ -193,7 +193,7 @@ void vector_free(struct zint_symbol *symbol) {
} }
} }
void vector_scale(struct zint_symbol *symbol) { static void vector_scale(struct zint_symbol *symbol) {
struct zint_vector_rect *rect; struct zint_vector_rect *rect;
struct zint_vector_hexagon *hex; struct zint_vector_hexagon *hex;
struct zint_vector_circle *circle; struct zint_vector_circle *circle;
@ -239,7 +239,7 @@ void vector_scale(struct zint_symbol *symbol) {
return; return;
} }
void vector_reduce_rectangles(struct zint_symbol *symbol) { static void vector_reduce_rectangles(struct zint_symbol *symbol) {
// Looks for vertically aligned rectangles and merges them together // Looks for vertically aligned rectangles and merges them together
struct zint_vector_rect *rect, *target, *prev; struct zint_vector_rect *rect, *target, *prev;
@ -266,7 +266,7 @@ void vector_reduce_rectangles(struct zint_symbol *symbol) {
return; return;
} }
int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_type) { INTERNAL int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_type) {
int error_number; int error_number;
struct zint_vector *vector; struct zint_vector *vector;
struct zint_vector_rect *rectangle, *rect, *last_rectangle = NULL; struct zint_vector_rect *rectangle, *rect, *last_rectangle = NULL;