Browse Source

bug 3120: tweak DDCN call number splitting for labels

Allow a call number of the form MP3-CD F PARKER to be split as

MP3-CD
F
PARKER

instead of

MP
3
-CD
F
PARKER

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
3.2.x
Galen Charlton 15 years ago
parent
commit
d8bd2345ed
  1. 6
      C4/Labels.pm
  2. 3
      t/Labels_split_ddcn.t

6
C4/Labels.pm

@ -905,8 +905,6 @@ sub deduplicate_batch {
return $killed, undef;
}
our $possible_decimal = qr/\d+(?:\.\d+)?/;
sub split_lccn {
my ($lccn) = @_;
$_ = $lccn;
@ -929,6 +927,8 @@ sub split_lccn {
return @parts;
}
our $possible_decimal = qr/\d{3,}(?:\.\d+)?/; # at least three digits for a DDCN
sub split_ddcn {
my ($ddcn) = @_;
$_ = $ddcn;
@ -937,7 +937,7 @@ sub split_ddcn {
my (@parts) = m/
^([a-zA-Z-]+(?:$possible_decimal)?) # R220.3 # BIO # first example will require extra splitting
\s*
\s+
(.+) # H2793Z H32 c.2 # R5c.1 # everything else (except bracketing spaces)
\s*
/x;

3
t/Labels_split_ddcn.t

@ -5,7 +5,7 @@
use strict;
use warnings;
use Test::More tests => 62;
use Test::More tests => 72;
BEGIN {
use_ok('C4::Labels');
@ -18,6 +18,7 @@ my $ddcns = {
'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)],
'MP3-CD F PARKER' => [qw(MP3-CD F PARKER)],
};
foreach my $ddcn (sort keys %$ddcns) {

Loading…
Cancel
Save