From d6e678d2df4a0e6c6078c75103c6ecf53cf16c32 Mon Sep 17 00:00:00 2001 From: Paul Poulain Date: Wed, 15 Dec 2010 20:28:03 +0100 Subject: [PATCH] Bug 5681: Fixes leading zeroes in Add Mulpiple Copies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From Biblibre: I don't know why, but removing sprintf solves the problems with leading zeroes and the problems with large values. (written by jean-andré santoni) Note from Chris: The width is never set, so the sprintf always defaults to a float, which trims the leading zeros. I am not smart enough to figure out how to set a valid width when calling it, and removing the sprintf seems to work See http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=5681 for test results Signed-off-by: Chris Cormack --- C4/Barcodes.pm | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-) diff --git a/C4/Barcodes.pm b/C4/Barcodes.pm index 176d878..a528bd9 100644 --- a/C4/Barcodes.pm +++ b/C4/Barcodes.pm @@ -135,14 +135,11 @@ sub next_value ($;$) { # Note, this enlargement might be undesireable for some barcode formats. # Those should override next_value() to work accordingly. $incr++; - my $width = $self->width || undef; - # we would want to use %$x.$xd, but that would break on large values, like 2160700004168 - # so we let the object tell us if it has a width to focus on. If not, we use float. - my $format = ($width ? '%'."$width.$width".'d' : '%.0f'); - $debug and warn "sprintf(\"$format\",$incr)"; + + $debug and warn "$incr"; $head = $self->process_head($head,$max,$specific); $tail = $self->process_tail($tail,$max,$specific); - my $next_value = $head . sprintf($format,$incr) . $tail; + my $next_value = $head . $incr . $tail; $debug and print STDERR "( next ) max barcode found: $next_value\n"; return $next_value; } -- 1.7.1