From 8c29f939aa46d613d99ace8ec549b76975c1b2d6 Mon Sep 17 00:00:00 2001
From: Gerhard Gonter <ggonter@gmail.com>
Date: Wed, 4 Sep 2013 10:45:17 +0200
Subject: [PATCH] added P4C1L which is more appropriate for hex codes, e.g. md5
 or uid

---
 textarchive/lib/TA/Hasher.pm | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/textarchive/lib/TA/Hasher.pm b/textarchive/lib/TA/Hasher.pm
index 2025cb0..6948b34 100644
--- a/textarchive/lib/TA/Hasher.pm
+++ b/textarchive/lib/TA/Hasher.pm
@@ -9,7 +9,7 @@ package TA::Hasher;
 use Data::Dumper;
 $Data::Dumper::Indent= 1;
 
-my %known_algorithms= map { $_ => 1 } qw(NULL S3C1L S3C2L P3C3L P3C2L P3C1L);
+my %known_algorithms= map { $_ => 1 } qw(NULL S3C1L S3C2L P3C3L P3C2L P3C1L P4C1L);
 
 sub new
 {
@@ -51,6 +51,10 @@ sub new
   {
     $obj->{'mkpo'}= \&TA::Hasher::P3C1L::mkpo;
   }
+  elsif ($algorithm eq 'P4C1L')
+  {
+    $obj->{'mkpo'}= \&TA::Hasher::P4C1L::mkpo;
+  }
   else
   {
     $obj->{'mkpo'}= \&TA::Hasher::NULL::mkpo;
@@ -217,6 +221,23 @@ sub mkpo
   return { 'L' => \@L };
 }
 
+package TA::Hasher::P4C1L;
+
+sub mkpo
+{
+  my $S= shift;
+
+  return undef unless (defined ($S));
+
+  my @L;
+
+  if ($S =~ m#^(.{1,4})#)
+       { @L= ( $1 ); }
+  else { @L= ( $S ); }
+
+  return { 'L' => \@L };
+}
+
 1;
 
 __END__
@@ -227,5 +248,7 @@ __END__
 
 =item check_path ($mkpo)
 
+=item method to register hasher algorithm
+
 =back
 
-- 
GitLab