79 lines
2.7 KiB
Diff
79 lines
2.7 KiB
Diff
diff -pur barcode-0.98/main.c barcode-0.98-fix/main.c
|
|
--- barcode-0.98/main.c 2002-03-01 21:31:07.000000000 +0000
|
|
+++ barcode-0.98-fix/main.c 2005-10-11 07:19:39.000000000 +0000
|
|
@@ -419,7 +419,6 @@ char *strerror(int error)
|
|
*/
|
|
int main(int argc, char **argv)
|
|
{
|
|
- struct Barcode_Item * bc;
|
|
FILE *ifile = stdin;
|
|
FILE *ofile = stdout;
|
|
char *line;
|
|
@@ -549,14 +548,6 @@ int main(int argc, char **argv)
|
|
int ystep = (page_hei - ymargin0 - ymargin1)/lines;
|
|
int x = columns, y = -1; /* position in the table, start off-page */
|
|
|
|
- if (!ximargin) ximargin = BARCODE_DEFAULT_MARGIN;
|
|
- if (!yimargin) yimargin = BARCODE_DEFAULT_MARGIN;
|
|
- /* Assign default size unless -g did it (Joachim Reichelt) */
|
|
- if ( !code_width && !code_height) {
|
|
- code_width = xstep - 2*ximargin;
|
|
- code_height = ystep - 2*yimargin;
|
|
- }
|
|
-
|
|
page=0;
|
|
while ( (line = retrieve_input_string(ifile)) ) {
|
|
x++; /* fit x and y */
|
|
@@ -564,35 +555,28 @@ int main(int argc, char **argv)
|
|
x=0; y--;
|
|
if (y<0) {
|
|
y = lines-1; page++;
|
|
- /* flush page */
|
|
- if (ps && page > 1) fprintf(ofile, "showpage\n");
|
|
- if (pcl && page > 1) fprintf(ofile, "\f");
|
|
- /* new page */
|
|
- if (ps) fprintf(ofile, "%%%%Page: %i %i\n\n",page,page);
|
|
+ if (page>1) {
|
|
+ if (ps) {
|
|
+ fprintf(ofile, "showpage\n");
|
|
+ fprintf(ofile, "%%%%Page: %i %i\n\n",page,page);
|
|
+ }
|
|
+ if (pcl) fprintf(ofile, "\f");
|
|
+ }
|
|
}
|
|
}
|
|
|
|
/*
|
|
- * Create a barcode item. This allows to set the margin to 0, as
|
|
- * we have [xy]imargin to use. But don't use Encode_and_Print(),
|
|
- * unroll it here instead
|
|
+ * Print this code, using the internal margins as spacing.
|
|
+ * In order to remove the extra (default) margin, subtract it
|
|
+ * in advance (dirty)
|
|
*/
|
|
- bc = Barcode_Create(line);
|
|
- if (!bc) {
|
|
- fprintf(stderr, "%s: Barcode_Create(): %s\n", argv[0],
|
|
- strerror(errno));
|
|
- exit(1);
|
|
- }
|
|
- bc->margin = 0;
|
|
- if ( (Barcode_Position(bc, code_width, code_height,
|
|
- xmargin0 + ximargin + x * xstep,
|
|
- ymargin0 + yimargin + y * ystep, 0.0) < 0)
|
|
- || (Barcode_Encode(bc, flags) < 0)
|
|
- || (Barcode_Print(bc, ofile, flags) < 0) ) {
|
|
- fprintf(stderr, "%s: can't encode \"%s\": %s\n", argv[0],
|
|
- line, strerror(bc->error));
|
|
+ if (Barcode_Encode_and_Print(line, ofile,
|
|
+ xstep - 2*ximargin, ystep - 2*yimargin,
|
|
+ xmargin0 + ximargin + x * xstep - BARCODE_DEFAULT_MARGIN,
|
|
+ ymargin0 + yimargin + y * ystep - BARCODE_DEFAULT_MARGIN,
|
|
+ flags)<0) {
|
|
+ fprintf(stderr, "%s: can't encode \"%s\"\n", argv[0], line);
|
|
}
|
|
- Barcode_Delete(bc);
|
|
}
|
|
if (ps) fprintf(ofile, "showpage\n\n%%%%Trailer\n\n");
|
|
if (pcl) fprintf(ofile, "\f");
|