From a69691879e272240ac27709c1945bfc2b119234e Mon Sep 17 00:00:00 2001 From: Shawn Boyette Date: Tue, 4 Nov 2008 16:56:35 +0000 Subject: [PATCH] improved date stuffs; now pad 008 and then try 260 instead of simply dying --- fingerprinter | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-) diff --git a/fingerprinter b/fingerprinter index 07aa051..681ca46 100755 --- a/fingerprinter +++ b/fingerprinter @@ -75,17 +75,20 @@ sub populate_marc { # date1, date2 my $my_008 = $record->field('008'); $my_008 = $my_008->as_string() if ($my_008); - unless (defined $my_008 and length $my_008 == 40) - { print XF ">> Bad 008 length in rec ",$marc{id},"\n"; return \%marc } - $marc{date1} = substr($my_008,7,4) if ($my_008); - $marc{date2} = substr($my_008,11,4) if ($my_008); # UNUSED - + if (defined $my_008) { + unless (length $my_008 == 40) { + $my_008 = $my_008 . (' ' x (40 - length($my_008))); + print XF ">> Short 008 padded to ",length($my_008)," at rec $count\n"; + } + $marc{date1} = substr($my_008,7,4) if ($my_008); + $marc{date2} = substr($my_008,11,4) if ($my_008); # UNUSED + } unless ($marc{date1} and $marc{date1} =~ /\d{4}/) { my $my_260 = $record->field('260'); my $date1 = $my_260->subfield('c') if $my_260; if (defined $date1 and $date1 =~ /\d{4}/) { $marc{date1} = $date1; - print XF ">> using 260c as date1 on $id\n"; + print XF ">> using 260c as date1 at rec $count\n"; } } -- 1.7.2.5