From 13cce1b3c52235abe581bd7e85d87c2eba36d1ef Mon Sep 17 00:00:00 2001 From: "J. David Bavousett" Date: Fri, 26 Dec 2008 15:38:00 -0600 Subject: [PATCH] Modifications to C4/Matcher for colon and ending punctuation Recommended by Michele Maenpaa, this adds handling colon and end-punctuation stripping in subroutine _normalize, and fixes length testing in subroutine _get_match_keys Signed-off-by: Galen Charlton --- C4/Matcher.pm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/C4/Matcher.pm b/C4/Matcher.pm index 645b2ad5ed..294c48113b 100644 --- a/C4/Matcher.pm +++ b/C4/Matcher.pm @@ -786,6 +786,11 @@ sub _get_match_keys { } } $key = _normalize($key); + if ($component->{'length'}){ + if (length($key) > $component->{'length'}){ + $key = _normalize(substr($key,$component->{'offset'},$component{'length'})); + } + } } if ($i == 0) { push @keys, $key if $key; @@ -815,10 +820,12 @@ sub _parse_match_component { # FIXME - default normalizer sub _normalize { my $value = uc shift; + $value =~ s/.;:,\]\[\)\(\/'"//g; $value =~ s/^\s+//; - $value =~ s/^\s+$//; + #$value =~ s/^\s+$//; + $value =~ s/\s+$//; $value =~ s/\s+/ /g; - $value =~ s/[.;,\]\[\)\(\/"']//g; + #$value =~ s/[.;,\]\[\)\(\/"']//g; return $value; }