--- barcode-0.98+debian.orig/debian/rules +++ barcode-0.98+debian/debian/rules @@ -0,0 +1,71 @@ +#!/usr/bin/make -f + +include /usr/share/quilt/quilt.make + +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + +CFLAGS += -DHAVE_STRCASECMP + +ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) + CROSS=CC=$(DEB_HOST_GNU_TYPE)-gcc +else + CROSS= +endif + +clean: unpatch + dh_testdir + dh_testroot + rm -f build-stamp + rm -f config.guess config.sub + + [ ! -f Makefile ] || $(MAKE) distclean + + dh_clean + +config.status: configure patch + dh_testdir + +ifneq "$(wildcard /usr/share/misc/config.guess)" "" + cp -f /usr/share/misc/config.guess config.guess +endif +ifneq "$(wildcard /usr/share/misc/config.sub)" "" + cp -f /usr/share/misc/config.sub config.sub +endif + + CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs" ./configure $(CROSS) --prefix=/usr + +build: build-stamp +build-stamp: config.status + dh_testdir + + $(MAKE) + + touch build-stamp + +install: build + dh_testdir + dh_testroot + dh_prep + + $(MAKE) prefix=$(CURDIR)/debian/barcode/usr MAN1DIR=$(CURDIR)/debian/barcode/usr/share/man/man1 MAN3DIR=$(CURDIR)/debian/barcode/usr/share/man/man3 INFODIR=$(CURDIR)/debian/barcode/usr/share/info install + +binary: binary-arch + +binary-arch: install + dh_testdir + dh_testroot + dh_installchangelogs ChangeLog + dh_installdocs + dh_strip --dbg-package=barcode-dbg + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary-indep: + +.PHONY: clean build install binary binary-arch binary-indep --- barcode-0.98+debian.orig/debian/compat +++ barcode-0.98+debian/debian/compat @@ -0,0 +1 @@ +7 --- barcode-0.98+debian.orig/debian/control +++ barcode-0.98+debian/debian/control @@ -0,0 +1,27 @@ +Source: barcode +Section: graphics +Priority: optional +Maintainer: Debian QA Group +Build-Depends: debhelper (>= 7), quilt, autotools-dev, gawk, libpaper-dev +Standards-Version: 3.8.2 +Homepage: http://www.gnu.org/software/barcode/ + +Package: barcode +Architecture: any +Depends: ${misc:Depends}, ${shlibs:Depends} +Description: Utility and library for barcode generation + GNU-barcode can create printouts for the conventional product-tagging + standards: UPC-A, UPC-E, EAN-13, EAN-8, ISBN, and several others. Output is + generated as either Postscript, Encapsulated Postscript, or PCL. + +Package: barcode-dbg +Section: debug +Priority: extra +Architecture: any +Depends: ${misc:Depends}, barcode (= ${binary:Version}) +Description: Utility and library for barcode generation (debug) + GNU-barcode can create printouts for the conventional product-tagging + standards: UPC-A, UPC-E, EAN-13, EAN-8, ISBN, and several others. Output is + generated as either Postscript, Encapsulated Postscript, or PCL. + . + This package contains the debugging symbols. --- barcode-0.98+debian.orig/debian/changelog +++ barcode-0.98+debian/debian/changelog @@ -0,0 +1,208 @@ +barcode (0.98+debian-8) unstable; urgency=low + + * Removing vcs fields. + * Orphaning package. + + -- Daniel Baumann Sun, 09 Aug 2009 01:25:50 +0200 + +barcode (0.98+debian-7) unstable; urgency=low + + * Correcting indenting in copyright file. + * Updatingto debhelper 7. + * Updating to standards 3.8.0. + * Updating vcs fields in control file. + * Using patch-stamp rather than patch in rules file. + * Replacing obsolete dh_clean -k with dh_prep. + * Updating section of the debug package. + * Updating rules to current state of the art. + * Using correct rfc-2822 date formats in changelog. + * Updating package to standards version 3.8.2. + * Prefxing debhelper files with package name. + * Updating year in copyright file. + * Using quilt rather than dpatch. + * Adding patch to add header to info page (Closes: #528867). + + -- Daniel Baumann Fri, 17 Jul 2009 00:11:29 +0200 + +barcode (0.98+debian-6) unstable; urgency=low + + * Reordering compiler flags in configure call. + * Adding debug package. + + -- Daniel Baumann Thu, 17 Apr 2008 00:22:00 +0200 + +barcode (0.98+debian-5) unstable; urgency=medium + + * Enabling 04-manpage.dpatch. + * Removing watch file. + * Reordering rules file. + * Rewriting copyright file in machine-interpretable format. + * Adding vcs fields in control file. + * Updating package to debhelper 6. + * Removing config.guess and config.sub from debian branch. + + -- Daniel Baumann Wed, 16 Apr 2008 14:26:00 +0200 + +barcode (0.98+debian-4) unstable; urgency=low + + * Bumped to new policy. + * Using new homepage field in control. + * Don't hide make errors in clean target of rules. + + -- Daniel Baumann Thu, 27 Dec 2007 08:01:00 +0100 + +barcode (0.98+debian-3) unstable; urgency=low + + * doc/manpager seems to need gawk to produce proper manpages + (Closes: #436523). + + -- Daniel Baumann Tue, 14 Aug 2007 14:30:00 +0200 + +barcode (0.98+debian-2) unstable; urgency=low + + * Added patch from Chris Howie to fix wrong + codabar implementation in barcode (Closes: #320908). + * Added patch from Paolo to fix oversized images + (Closes: #320908). + + -- Daniel Baumann Sat, 14 Apr 2007 17:15:00 +0200 + +barcode (0.98+debian-1) unstable; urgency=low + + * New maintainer (Closes: #358454). + * Rebuild upstream tarball without debian directory. + * Redone debian packaging from scratch. + + -- Daniel Baumann Sat, 07 Apr 2007 13:10:00 +0200 + +barcode (0.98-4) unstable; urgency=low + + * QA upload. Switch to debhelper and do some cleanup (Closes: #372966). + + -- Santiago Vila Thu, 05 Apr 2007 14:40:52 +0200 + +barcode (0.98-3) unstable; urgency=low + + * QA upload. + * Set maintainer address to QA group. + + -- Nico Golde Wed, 21 Mar 2007 16:00:07 +0100 + +barcode (0.98-2) unstable; urgency=low + + * Fix Build dependency on libpaperg-dev (Closes: #346400). + * Fix manpage (Closes: #356932). + * Fix upstream location (Closes: #279600). + * Fix copyright (Closes: #290070). + * Fix spelling (Closes: #363174). + + -- Jim Westveer Wed, 19 Apr 2006 00:15:47 +0100 + +barcode (0.98-1.2) unstable; urgency=low + + * Non-maintainer upload. + * Fix manpage (Closes: #356932). + + -- Luk Claes Wed, 15 Mar 2006 00:15:47 +0100 + +barcode (0.98-1.1) unstable; urgency=high + + * Non-maintainer upload. + * Change build dependency on libpaperg-dev to libpaper-dev (Closes: #346400) + + -- Luk Claes Sun, 22 Jan 2006 18:29:32 +0100 + +barcode (0.98-1) unstable; urgency=low + + * New upstream release. Closes #140931 + * Yes the man page is messy, use info instead. + + -- Jim Westveer (jwest) Thu, 04 Apr 2002 20:04:09 -0800 + +barcode (0.97-2) unstable; urgency=low + + * Fix spelling error in control file. Closes: #124437 + + -- Jim Westveer Sat, 17 Feb 2002 18:14:35 -0800 + +barcode (0.97-1) unstable; urgency=low + + * New upstream release. Closes: #133401 + + -- Jim Westveer Sat, 16 Feb 2002 09:14:35 -0800 + +barcode (0.95.1-4) stable unstable; urgency=low + + * fixed package error (nop). Closes: #70200 + * uploaded to unstable, as stable update was rejected for some stupid reason + + -- Jim Westveer Tue, 13 Nov 2000 08:30:00 -0700 + +barcode (0.95.1-3) stable; urgency=low + + * fixed package error. .orig.tar.gz was not being uploaded + + -- Jim Westveer Tue, 22 Aug 2000 08:30:00 -0700 + +barcode (0.95.1-2) unstable; urgency=low + + * fixed package error. Closes: #69329 + + -- Jim Westveer Sun, 22 Jul 2000 07:30:00 -0700 + +barcode (0.95.1-1) unstable; urgency=low + + * New upstream version 0.95.1 + * patch to 0.95.1 in main.c (stricmp) + to fix compile error. + * 0.95.1 fixes errors found in 0.94 about ymargin1 = y * unit + + -- Jim Westveer Sun, 28 May 2000 07:30:00 -0700 + +barcode (0.95-1) unstable; urgency=low + + * New upstream version 0.95 + + -- Jim Westveer Sun, 28 May 2000 07:00:00 -0700 + +barcode (0.94-1) unstable; urgency=low + + * New upstream version 0.94 + + -- Jim Westveer Tue, 02 Sep 1999 19:00:00 -0700 + +barcode (0.93-1) unstable; urgency=low + + * New upstream version 0.93 + + -- Jim Westveer Mon, 27 Sep 1999 19:05:11 -0700 + +barcode (0.92-2) unstable; urgency=low + + * Changed line 434 of main.c fixixing xmargin Closes: #45112 + + -- Jim Westveer Mon, 19 Sep 1999 19:05:11 -0700 + +barcode (0.92-1) unstable; urgency=low + + * new upstream version + * libbarcode.a installs correctly. + * sources are pristine. + * gnupg signed + + -- Jim Westveer Mon, 13 Sep 1999 09:05:11 -0700 + +barcode (0.91.4-2) unstable; urgency=low + + * Changed Architecture: field to 'any'. Closes: #44992 + + -- Jim Westveer Wed, 01 Sep 1999 10:55:11 -0700 + +barcode (0.91.4-1) unstable; urgency=low + + * Initial release. + * Only changes were to Makefile. + * only uploaded to arch i386, as I have not tested on other archs. + * cant seem to get libbarcode.a to go into /usr/lib ... still working on it. + + -- Jim Westveer Thu, 26 Aug 1999 10:55:11 -0700 --- barcode-0.98+debian.orig/debian/copyright +++ barcode-0.98+debian/debian/copyright @@ -0,0 +1,42 @@ +Author: Alessandro Rubini +Download: http://ftp.gnu.org/gnu/barcode/ + +Files: * +Copyright: (C) 1999-2006 Alessandro Rubini +License: GPL-2+ + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + . + On Debian systems, the complete text of the GNU General Public License + can be found in /usr/share/common-licenses/GPL-2 file. + +Files: debian/* +Copyright: 2007-2009 Daniel Baumann +License: GPL-2+ + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + . + On Debian systems, the complete text of the GNU General Public License + can be found in /usr/share/common-licenses/GPL-2 file. --- barcode-0.98+debian.orig/debian/barcode.docs +++ barcode-0.98+debian/debian/barcode.docs @@ -0,0 +1 @@ +TODO --- barcode-0.98+debian.orig/debian/patches/05-info.patch +++ barcode-0.98+debian/debian/patches/05-info.patch @@ -0,0 +1,15 @@ +Author: Daniel Baumann +Description: Adding info header (Closes: #528867). + +diff -Naurp barcode.orig/doc/barcode.info barcode/doc/barcode.info +--- barcode.orig/doc/barcode.info 2009-07-16 23:49:31.000000000 +0200 ++++ barcode/doc/barcode.info 2009-07-17 00:08:22.000000000 +0200 +@@ -1,3 +1,8 @@ ++START-INFO-DIR-ENTRY ++* Barcode: (barcode). Utility and library for barcode generation ++END-INFO-DIR-ENTRY ++INFO-DIR-SECTION Graphics ++ + This is barcode.info, produced by makeinfo version 4.0 from + barcode.texinfo. + --- barcode-0.98+debian.orig/debian/patches/04-manpage.patch +++ barcode-0.98+debian/debian/patches/04-manpage.patch @@ -0,0 +1,13 @@ +Author: Daniel Baumann +Description: + doc/manpager seems to need gawk to produce proper manpages (Closes: #436523). + +diff -Naurp barcode.orig/doc/manpager barcode/doc/manpager +--- barcode.orig/doc/manpager 2009-07-16 21:49:31.000000000 +0000 ++++ barcode/doc/manpager 2009-07-16 21:57:26.000000000 +0000 +@@ -1,4 +1,4 @@ +-#! /usr/bin/awk -f ++#! /usr/bin/gawk -f + # Copyright (c) 1998-2001 Alessandro Rubini + + BEGIN {IN=0} --- barcode-0.98+debian.orig/debian/patches/01-codabar.patch +++ barcode-0.98+debian/debian/patches/01-codabar.patch @@ -0,0 +1,46 @@ +Author: Chris Howie +Description: Following codabar specification (Closes: #320908). + +diff -Naurp barcode.orig/codabar.c barcode/codabar.c +--- barcode.orig/codabar.c 2009-07-16 21:49:31.000000000 +0000 ++++ barcode/codabar.c 2009-07-16 21:55:33.000000000 +0000 +@@ -29,10 +29,11 @@ + + /* this is ordered in decades to simplify encoding */ + static char alphabet[] = +- "0123456789" "-$:/.+ABCD"; ++ "0123456789" "-$:/.+ABCDTN*E"; + + #define CODE_A 16 + #define CODE_B 17 ++#define CODE_T 20 + + #define NARROW 12 + #define WIDE 14 +@@ -42,7 +43,8 @@ static char *patterns[] = { + "1111133","1111331","1113113","3311111","1131131", + "3111131","1311113","1311311","1331111","3113111", + "1113311","1133111","3111313","3131113","3131311", +-"1131313","1133131","1313113","1113133","1113331" }; ++"1131313","1133131","1313113","1113133","1113331", ++"1133131","1313113","1113133","1113331"}; + + /* + * Check that the text can be encoded. Returns 0 or -1. +@@ -167,13 +169,13 @@ int Barcode_cbr_encode(struct Barcode_It + } + if (!startpresent) { + if (usesum) { +- /* if no start character specified, B is used as a stop char */ +- checksum += CODE_B; ++ /* if no start character specified, T is used as a stop char */ ++ checksum += CODE_T; + checksum = (checksum + 15) / 16 * 16 - checksum; + add_one(ptr, checksum); + ptr += strlen(ptr); + } +- add_one(ptr, CODE_B); ++ add_one(ptr, CODE_T); + } + bc->partial = partial; + bc->textinfo = textinfo; --- barcode-0.98+debian.orig/debian/patches/03-oversize.patch +++ barcode-0.98+debian/debian/patches/03-oversize.patch @@ -0,0 +1,333 @@ +Author: Paolo +Description: Fixing oversized images (Closes: #320908). + +diff -Naurp barcode.orig/codabar.c barcode/codabar.c +--- barcode.orig/codabar.c 2009-07-16 21:49:31.000000000 +0000 ++++ barcode/codabar.c 2009-07-16 21:57:12.000000000 +0000 +@@ -165,6 +165,7 @@ int Barcode_cbr_encode(struct Barcode_It + ptr += strlen(ptr); + } + } ++ textptr[-1] = '\0'; /* overwrite last space */ + if (!startpresent) { + if (usesum) { + /* if no start character specified, B is used as a stop char */ +diff -Naurp barcode.orig/codabar.c.orig barcode/codabar.c.orig +--- barcode.orig/codabar.c.orig 1970-01-01 00:00:00.000000000 +0000 ++++ barcode/codabar.c.orig 2009-07-16 21:49:31.000000000 +0000 +@@ -0,0 +1,182 @@ ++/* ++ * codabar.c -- encoding for Codabar ++ * ++ * Copyright (c) 2000 Leonid A. Broukhis (leob@mailcom.com) ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "barcode.h" ++ ++ ++/* this is ordered in decades to simplify encoding */ ++static char alphabet[] = ++ "0123456789" "-$:/.+ABCD"; ++ ++#define CODE_A 16 ++#define CODE_B 17 ++ ++#define NARROW 12 ++#define WIDE 14 ++ ++/* Patterns */ ++static char *patterns[] = { ++"1111133","1111331","1113113","3311111","1131131", ++"3111131","1311113","1311311","1331111","3113111", ++"1113311","1133111","3111313","3131113","3131311", ++"1131313","1133131","1313113","1113133","1113331" }; ++ ++/* ++ * Check that the text can be encoded. Returns 0 or -1. ++ * If it's all lowecase convert to uppercase and accept it. ++ * If the first character is a letter (A to D), the last one must be too; ++ * no other character should be a letter. ++ */ ++int Barcode_cbr_verify(unsigned char *text) ++{ ++ int i, lower=0, upper=0; ++ int startpresent = 0; ++ ++ if (!strlen(text)) ++ return -1; ++ for (i=0; text[i]; i++) { ++ char * pos; ++ if (isupper(text[i])) upper++; ++ if (islower(text[i])) lower++; ++ pos = strchr(alphabet,toupper(text[i])); ++ if (!pos) ++ return -1; ++ if (i == 0 && pos - alphabet >= CODE_A) ++ startpresent = 1; ++ else if (pos - alphabet >= CODE_A && ++ (!startpresent || i != strlen(text) - 1)) ++ return -1; ++ } ++ if (lower && upper) ++ return -1; ++ return 0; ++} ++ ++static int add_one(char *ptr, int code) ++{ ++ sprintf(ptr,"1%s", /* separator */ patterns[code]); ++ return 0; ++} ++ ++/* ++ * The encoding functions fills the "partial" and "textinfo" fields. ++ * Lowercase chars are converted to uppercase ++ */ ++int Barcode_cbr_encode(struct Barcode_Item *bc) ++{ ++ static char *text; ++ static char *partial; /* dynamic */ ++ static char *textinfo; /* dynamic */ ++ char *c, *ptr, *textptr; ++ int i, code, textpos, usesum, checksum = 0, startpresent; ++ ++ if (bc->partial) ++ free(bc->partial); ++ if (bc->textinfo) ++ free(bc->textinfo); ++ bc->partial = bc->textinfo = NULL; /* safe */ ++ ++ if (!bc->encoding) ++ bc->encoding = strdup("codabar"); ++ ++ text = bc->ascii; ++ if (!text) { ++ bc->error = EINVAL; ++ return -1; ++ } ++ /* the partial code is 8 * (head + text + check + tail) + margin + term. */ ++ partial = malloc( (strlen(text) + 3) * 8 + 2); ++ if (!partial) { ++ bc->error = errno; ++ return -1; ++ } ++ ++ /* the text information is at most "nnn:fff:c " * (strlen + check) +term */ ++ textinfo = malloc(10*(strlen(text) + 1) + 2); ++ if (!textinfo) { ++ bc->error = errno; ++ free(partial); ++ return -1; ++ } ++ ++ ptr = partial; ++ textptr = textinfo; ++ textpos = 0; ++ usesum = bc->flags & BARCODE_NO_CHECKSUM ? 0 : 1; ++ /* if no start character specified, A is used as a start character */ ++ if (!isalpha(text[0])) { ++ add_one(ptr, CODE_A); ++ ptr += strlen(ptr); ++ textpos = WIDE; ++ checksum = CODE_A; ++ startpresent = 0; ++ } else { ++ startpresent = 1; ++ } ++ for (i=0; ierror = EINVAL; /* impossible if text is verified */ ++ free(partial); ++ free(textinfo); ++ return -1; ++ } ++ code = c - alphabet; ++ add_one(ptr, code); ++ sprintf(textptr, "%i:12:%c ", textpos, toupper(text[i])); ++ textpos += code < 12 ? NARROW : WIDE; ++ textptr += strlen(textptr); ++ ptr += strlen(ptr); ++ checksum += code; ++ if (startpresent && usesum && i == strlen(text) - 2) { ++ /* stuff a check symbol before the stop */ ++ c = strchr(alphabet, toupper(text[i+1])); ++ if (!c) /* impossible */ ++ continue; ++ code = c - alphabet; ++ checksum += code; ++ ++ /* Complement to a multiple of 16 */ ++ checksum = (checksum + 15) / 16 * 16 - checksum; ++ add_one(ptr, checksum); ++ ptr += strlen(ptr); ++ } ++ } ++ if (!startpresent) { ++ if (usesum) { ++ /* if no start character specified, B is used as a stop char */ ++ checksum += CODE_B; ++ checksum = (checksum + 15) / 16 * 16 - checksum; ++ add_one(ptr, checksum); ++ ptr += strlen(ptr); ++ } ++ add_one(ptr, CODE_B); ++ } ++ bc->partial = partial; ++ bc->textinfo = textinfo; ++ ++ return 0; ++} +diff -Naurp barcode.orig/code128.c barcode/code128.c +--- barcode.orig/code128.c 2009-07-16 21:49:31.000000000 +0000 ++++ barcode/code128.c 2009-07-16 21:57:12.000000000 +0000 +@@ -142,6 +142,7 @@ int Barcode_128b_encode(struct Barcode_I + textptr += strlen(textptr); + textpos += SYMBOL_WID; /* width of each code */ + } ++ textptr[-1] = '\0'; /* overwrite last space */ + /* Add the checksum, independent of BARCODE_NO_CHECKSUM */ + checksum %= 103; + strcat(partial, codeset[checksum]); +@@ -232,6 +233,7 @@ int Barcode_128c_encode(struct Barcode_I + textptr += strlen(textptr); + textpos += SYMBOL_WID; /* width of each code */ + } ++ textptr[-1] = '\0'; /* overwrite last space */ + /* Add the checksum, independent of BARCODE_NO_CHECKSUM */ + checksum %= 103; + strcat(partial, codeset[checksum]); +@@ -492,6 +494,7 @@ int Barcode_128_encode(struct Barcode_It + textptr += strlen(textptr); + textpos += step; + } ++ textptr[-1] = '\0'; /* overwrite last space */ + + bc->partial = partial; + bc->textinfo = textinfo; +@@ -593,6 +596,7 @@ int Barcode_128raw_encode(struct Barcode + textpos += SYMBOL_WID; /* width of each code */ + i += n; + } ++ textptr[-1] = '\0'; /* overwrite last space */ + /* Add the checksum, independent of BARCODE_NO_CHECKSUM */ + checksum %= 103; + strcat(partial, codeset[checksum]); +diff -Naurp barcode.orig/code39.c barcode/code39.c +--- barcode.orig/code39.c 2009-07-16 21:49:31.000000000 +0000 ++++ barcode/code39.c 2009-07-16 21:57:12.000000000 +0000 +@@ -160,6 +160,7 @@ int Barcode_39_encode(struct Barcode_Ite + textptr += strlen(textptr); + ptr += strlen(ptr); + } ++ textptr[-1] = '\0'; /* overwrite last space */ + /* Add the checksum */ + if ( (bc->flags & BARCODE_NO_CHECKSUM)==0 ) { + code = (strchr(alphabet, checkbet[checksum % 43]) - alphabet); +diff -Naurp barcode.orig/code93.c barcode/code93.c +--- barcode.orig/code93.c 2009-07-16 21:49:31.000000000 +0000 ++++ barcode/code93.c 2009-07-16 21:57:12.000000000 +0000 +@@ -182,6 +182,7 @@ int Barcode_93_encode(struct Barcode_Ite + */ + textpos += 9; + } ++ textptr[-1] = '\0'; /* overwrite last space */ + c_checksum=0; + k_checksum=0; + +diff -Naurp barcode.orig/i25.c barcode/i25.c +--- barcode.orig/i25.c 2009-07-16 21:49:31.000000000 +0000 ++++ barcode/i25.c 2009-07-16 21:57:12.000000000 +0000 +@@ -153,6 +153,7 @@ int Barcode_i25_encode(struct Barcode_It + textpos += 18; /* width of two codes */ + textptr += strlen(textptr); + } ++ textptr[-1] = '\0'; /* overwrite last space */ + strcat(partial, guard[1]); + + bc->partial = partial; +diff -Naurp barcode.orig/msi.c barcode/msi.c +--- barcode.orig/msi.c 2009-07-16 21:49:31.000000000 +0000 ++++ barcode/msi.c 2009-07-16 21:57:12.000000000 +0000 +@@ -132,6 +132,7 @@ int Barcode_msi_encode(struct Barcode_It + } + } + } ++ textptr[-1] = '\0'; /* overwrite last space */ + /* Some implementations use a double checksum. Currently the only way + * to print a barcode with double checksum is to put the checksum + * digit printed below at the end of a code in the command line +diff -Naurp barcode.orig/plessey.c barcode/plessey.c +--- barcode.orig/plessey.c 2009-07-16 21:49:31.000000000 +0000 ++++ barcode/plessey.c 2009-07-16 21:57:12.000000000 +0000 +@@ -140,6 +140,7 @@ int Barcode_pls_encode(struct Barcode_It + checkptr[4*i+2] = (code >> 2) & 1; + checkptr[4*i+3] = (code >> 3) & 1; + } ++ textptr[-1] = '\0'; /* overwrite last space */ + /* The CRC checksum is required */ + for (i=0; i < 4*strlen(text); i++) { + int j; +diff -Naurp barcode.orig/ps.c barcode/ps.c +--- barcode.orig/ps.c 2009-07-16 21:49:31.000000000 +0000 ++++ barcode/ps.c 2009-07-16 21:57:12.000000000 +0000 +@@ -146,11 +146,38 @@ int Barcode_ps_print(struct Barcode_Item + fprintf(f, "%%!PS-Adobe-2.0\n"); + fprintf(f, "%%%%Creator: libbarcode\n"); + if (bc->flags & BARCODE_OUT_EPS) { ++ int bboxw; ++ bboxw=bc->xoff + bc->width + 2* bc->margin; ++ if (!(bc->flags & BARCODE_NO_ASCII)) { ++ ptr = strrchr(bc->textinfo,' '); ++ /*fprintf(stderr, "bc->textinfo=%s\n",bc->textinfo);*/ ++ if (ptr == NULL) { ++ fprintf(stderr, ++ "barcode: last char: impossible data: NULL\n"); ++ } else { ++ /*fprintf(stderr, "ptr=%s\n",ptr);*/ ++ if (sscanf(ptr, "%lf:%lf:%c", &f1, &f2, &c) != 3) { ++ fprintf(stderr, ++ "barcode: last char: impossible data: %s\n", ptr); ++ } else { ++ /* Both the backslash and the two parens are special */ ++ if (c!='\\' && c!=')' && c!='(') { ++ f1=bc->xoff + (f1+f2) * scalef + bc->margin; ++ if (f1 > bboxw) bboxw=f1; ++ } ++ } ++ } ++ } + fprintf(f, "%%%%BoundingBox: %i %i %i %i\n", + bc->xoff, + bc->yoff, +- bc->xoff + bc->width + 2* bc->margin, ++ bboxw, + bc->yoff + bc->height + 2* bc->margin); ++ /* fprintf(f, "%%DEBUG: bc->width=%i bc->height=%i bc->margin=%i " ++ "scalef=%6.2f barlen=%6.2f bc->partial=%c\n", ++ bc->width, bc->height, bc->margin, ++ scalef, (double)barlen, (char)bc->partial[0]); ++ */ + } + fprintf(f, "%%%%EndComments\n"); + if (bc->flags & BARCODE_OUT_PS) { --- barcode-0.98+debian.orig/debian/patches/02-margin.patch +++ barcode-0.98+debian/debian/patches/02-margin.patch @@ -0,0 +1,83 @@ +Author: n/a +Description: Adjusts correct margins. + +diff -Naurp barcode.orig/main.c barcode/main.c +--- barcode.orig/main.c 2009-07-16 21:49:31.000000000 +0000 ++++ barcode/main.c 2009-07-16 21:56:09.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,50 +548,37 @@ 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 */ + if (x >= columns) { + 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"); --- barcode-0.98+debian.orig/debian/patches/series +++ barcode-0.98+debian/debian/patches/series @@ -0,0 +1,5 @@ +01-codabar.patch +02-margin.patch +03-oversize.patch +04-manpage.patch +05-info.patch