bug 3120: tweak splitting of Dewey call number
authorGalen Charlton <galen.charlton@liblime.com>
Fri, 8 May 2009 22:31:14 +0000 (17:31 -0500)
committerGalen Charlton <galen.charlton@liblime.com>
Mon, 11 May 2009 12:47:09 +0000 (07:47 -0500)
If a call number prefix contains a hyphen, try not to
split on the hyphen.  For example, rather than
splitting the call number 'CD-ROM 787.87 EAS'
like this:

CD
-ROM
787.87
EAS

it should be

CD-ROM
787.87
EAS

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

index 14d3227..02607c2 100644 (file)
@@ -936,7 +936,7 @@ sub split_ddcn {
     # ddcn examples: 'R220.3 H2793Z H32 c.2', 'BIO JP2 R5c.1'
 
     my (@parts) = m/
-        ^([a-zA-Z]+(?:$possible_decimal)?) # R220.3            # BIO   # first example will require extra splitting
+        ^([a-zA-Z-]+(?:$possible_decimal)?) # R220.3            # BIO   # first example will require extra splitting
         \s*
         (.+)                               # H2793Z H32 c.2   # R5c.1   # everything else (except bracketing spaces)
         \s*
index ca879f3..7927ec0 100755 (executable)
@@ -5,7 +5,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 52;
+use Test::More tests => 62;
 
 BEGIN {
     use_ok('C4::Labels');
@@ -17,6 +17,7 @@ my $ddcns = {
     'FIC GIR J5c.1'         => [qw(FIC GIR J5 c.1 )],
     'J DAR G7c.11'          => [qw( J  DAR G7 c.11)],
     '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)],
 };
 
 foreach my $ddcn (sort keys %$ddcns) {