Bug 2500 Tweaking DDCN Split for Hyphenated Volumn Numbers
authorChris Nighswonger <cnighswonger@foundations.edu>
Wed, 27 May 2009 15:30:14 +0000 (11:30 -0400)
committerGalen Charlton <galen.charlton@liblime.com>
Wed, 27 May 2009 15:45:36 +0000 (10:45 -0500)
Presently 252.051 T147 v.1-2 is split as

252.051
T147
v.1
-2

This patch corrects the algorithm so that it splits as

252.051
T147
v.1-2

It also updates Labels_split_ddcn.t to include this particular case.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
C4/Labels.pm
t/Labels_split_ddcn.t

index ac3ce7c..2ee2568 100644 (file)
@@ -953,7 +953,7 @@ sub split_ddcn {
 
     push @parts, split /\s+/, pop @parts;   # split the last piece into an arbitrary number of pieces at spaces
 
-    if ($parts[-1] =~ /^(.*\d+)(\D.*)$/) {
+    if ($parts[-1] !~ /^.*\d-\d.*$/ && $parts[-1] =~ /^(.*\d+)(\D.*)$/) {
          pop @parts;            # pull off the mathching last element, like example 2
         push @parts, $1, $2;    # replace it with the two pieces
     }
index 20ff5bd..26aad55 100755 (executable)
@@ -5,7 +5,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 72;
+use Test::More tests => 82;
 
 BEGIN {
     use_ok('C4::Labels');
@@ -19,6 +19,7 @@ my $ddcns = {
     'R220.3 H2793Z H32 c.2' => [qw(R 220.3 H2793Z H32 c.2)],
     'CD-ROM 787.87 EAS'     => [qw(CD-ROM 787.87 EAS)],
     'MP3-CD F PARKER'       => [qw(MP3-CD F PARKER)],
+    '252.051 T147 v.1-2'    => [qw(252.051 T147 v.1-2)],
 };
 
 foreach my $ddcn (sort keys %$ddcns) {