Make bakcend/dotcode.c, emf.c and tif.c compile with MS-VC6

This commit is contained in:
Harald Oehlmann 2017-03-28 18:06:08 +02:00
parent 939d4de4f0
commit 480e514754
4 changed files with 42 additions and 54 deletions

View File

@ -1088,6 +1088,7 @@ int dotcode(struct zint_symbol *symbol, const unsigned char source[], int length
#else #else
char* dot_stream; char* dot_stream;
char* dot_array; char* dot_array;
unsigned char* masked_codeword_array;
unsigned char* codeword_array = (unsigned char *) _alloca(length * 3 * sizeof (unsigned char)); unsigned char* codeword_array = (unsigned char *) _alloca(length * 3 * sizeof (unsigned char));
#endif /* _MSC_VER */ #endif /* _MSC_VER */
@ -1200,7 +1201,7 @@ int dotcode(struct zint_symbol *symbol, const unsigned char source[], int length
#ifndef _MSC_VER #ifndef _MSC_VER
unsigned char masked_codeword_array[data_length + 1 + ecc_length]; unsigned char masked_codeword_array[data_length + 1 + ecc_length];
#else #else
unsigned char* masked_codeword_array = (unsigned char *) _alloca((data_length + 1 + ecc_length) * sizeof (unsigned char)); masked_codeword_array = (unsigned char *) _alloca((data_length + 1 + ecc_length) * sizeof (unsigned char));
#endif /* _MSC_VER */ #endif /* _MSC_VER */
/* Evaluate data mask options */ /* Evaluate data mask options */

View File

@ -155,14 +155,6 @@ int emf_plot(struct zint_symbol *symbol) {
unsigned char output_buffer[12]; unsigned char output_buffer[12];
uint32_t dx; uint32_t dx;
#ifndef _MSC_VER
unsigned char local_text[bump_up(ustrlen(symbol->text) + 1)];
unsigned char string_buffer[2 * bump_up(ustrlen(symbol->text) + 1)];
#else
unsigned char* local_text = (unsigned char*) malloc(bump_up(ustrlen(symbol->text) + 1));
unsigned char* string_buffer = (unsigned char*) malloc(2 * (bump_up(ustrlen(symbol->text) + 1));
#endif
emr_header_t emr_header; emr_header_t emr_header;
emr_eof_t emr_eof; emr_eof_t emr_eof;
emr_createbrushindirect_t emr_createbrushindirect_fg; emr_createbrushindirect_t emr_createbrushindirect_fg;
@ -181,6 +173,19 @@ int emf_plot(struct zint_symbol *symbol) {
box_t box; box_t box;
#ifndef _MSC_VER
unsigned char local_text[bump_up(ustrlen(symbol->text) + 1)];
unsigned char string_buffer[2 * bump_up(ustrlen(symbol->text) + 1)];
#else
unsigned char* local_text;
unsigned char* string_buffer;
emr_rectangle_t *rectangle, *row_binding;
emr_ellipse_t* circle;
emr_polygon_t* hexagon;
local_text = (unsigned char*) _alloca(bump_up(ustrlen(symbol->text) + 1) * sizeof (unsigned char));
string_buffer = (unsigned char*) _alloca(2 * bump_up(ustrlen(symbol->text) + 1) * sizeof (unsigned char));
#endif
row_height = 0; row_height = 0;
textdone = 0; textdone = 0;
comp_offset = 0; comp_offset = 0;
@ -234,21 +239,11 @@ int emf_plot(struct zint_symbol *symbol) {
if (strlen(symbol->fgcolour) != 6) { if (strlen(symbol->fgcolour) != 6) {
strcpy(symbol->errtxt, "Malformed foreground colour target (F41)"); strcpy(symbol->errtxt, "Malformed foreground colour target (F41)");
#ifdef _MSC_VER
free(local_text);
free(string_buffer);
free(dx_buffer);
#endif
return ZINT_ERROR_INVALID_OPTION; return ZINT_ERROR_INVALID_OPTION;
} }
if (strlen(symbol->bgcolour) != 6) { if (strlen(symbol->bgcolour) != 6) {
strcpy(symbol->errtxt, "Malformed background colour target (F42)"); strcpy(symbol->errtxt, "Malformed background colour target (F42)");
#ifdef _MSC_VER
free(local_text);
free(string_buffer);
free(dx_buffer);
#endif
return ZINT_ERROR_INVALID_OPTION; return ZINT_ERROR_INVALID_OPTION;
} }
@ -328,10 +323,10 @@ int emf_plot(struct zint_symbol *symbol) {
emr_ellipse_t circle[circle_count]; emr_ellipse_t circle[circle_count];
emr_polygon_t hexagon[hexagon_count]; emr_polygon_t hexagon[hexagon_count];
#else #else
rectangle = (emr_rectangle_t*) malloc(rectangle_count); rectangle = (emr_rectangle_t*) _alloca(rectangle_count*sizeof(emr_rectangle_t));
row_binding = (emr_rectangle_t*) malloc(rectangle_count); row_binding = (emr_rectangle_t*) _alloca((symbol->rows - 1)*sizeof(emr_rectangle_t));
circle = (emr_ellipse_t*) malloc(circle_count); circle = (emr_ellipse_t*) _alloca(circle_count*sizeof(emr_ellipse_t));
hexagon = (emr_polygon_t*) malloc(hexagon_count); hexagon = (emr_polygon_t*) _alloca(hexagon_count*sizeof(emr_polygon_t));
#endif #endif
/* Header */ /* Header */
@ -1021,15 +1016,6 @@ int emf_plot(struct zint_symbol *symbol) {
} }
if (emf_file == NULL) { if (emf_file == NULL) {
strcpy(symbol->errtxt, "Could not open output file (F40)"); strcpy(symbol->errtxt, "Could not open output file (F40)");
#ifdef _MSC_VER
free(local_text);
free(string_buffer);
free(dx_buffer);
free(rectangle);
free(row_binding);
free(circle);
free(hexagon);
#endif
return ZINT_ERROR_FILE_ACCESS; return ZINT_ERROR_FILE_ACCESS;
} }
@ -1231,16 +1217,5 @@ int emf_plot(struct zint_symbol *symbol) {
} else { } else {
fclose(emf_file); fclose(emf_file);
} }
#ifdef _MSC_VER
free(local_text);
free(string_buffer);
free(dx_buffer);
free(rectangle);
free(row_binding);
free(circle);
free(hexagon);
#endif
return error_number; return error_number;
} }

View File

@ -57,6 +57,10 @@ int tif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
int free_memory; int free_memory;
int row, column; int row, column;
FILE *tif_file; FILE *tif_file;
#ifdef _MSC_VER
uint32_t* strip_offset;
uint32_t* strip_bytes;
#endif
tiff_header_t header; tiff_header_t header;
tiff_ifd_t ifd; tiff_ifd_t ifd;
@ -84,8 +88,8 @@ int tif_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
uint32_t strip_offset[strip_count]; uint32_t strip_offset[strip_count];
uint32_t strip_bytes[strip_count]; uint32_t strip_bytes[strip_count];
#else #else
uint32_t* strip_offset = (uint32_t*) _alloca(strip_count); strip_offset = (uint32_t*) _alloca(strip_count * sizeof(uint32_t));
uint32_t* strip_bytes = (uint32_t*) _alloca(strip_count); strip_bytes = (uint32_t*) _alloca(strip_count * sizeof(uint32_t));
#endif #endif
free_memory = 8; free_memory = 8;

View File

@ -148,6 +148,10 @@ SOURCE=..\..\backend\eci.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\backend\emf.c
# End Source File
# Begin Source File
SOURCE=..\..\frontend\getopt.c SOURCE=..\..\frontend\getopt.c
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -248,6 +252,10 @@ SOURCE=..\..\backend\telepen.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\backend\tif.c
# End Source File
# Begin Source File
SOURCE=..\..\backend\upcean.c SOURCE=..\..\backend\upcean.c
# End Source File # End Source File
# End Group # End Group