summaryrefslogtreecommitdiff
path: root/src/testpattern/uncompress-checksums.in
diff options
context:
space:
mode:
Diffstat (limited to 'src/testpattern/uncompress-checksums.in')
-rw-r--r--src/testpattern/uncompress-checksums.in47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/testpattern/uncompress-checksums.in b/src/testpattern/uncompress-checksums.in
new file mode 100644
index 0000000..e97fe25
--- /dev/null
+++ b/src/testpattern/uncompress-checksums.in
@@ -0,0 +1,47 @@
+#!@PERL@
+## Copyright (C) 2016 Robert Krawitz
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+use strict;
+
+my (%checksums);
+
+while (<>) {
+ chomp;
+ my ($sum, @keys) = split;
+ my (@pchunks) = ();
+ foreach my $k (@keys) {
+ $k =~ s/=/________/g;
+ $k =~ s/!/_______/g;
+ $k =~ s/"/______/g;
+ $k =~ s/,/_____/g;
+ $k =~ s/'/____/g;
+ $k =~ s/%/___/g;
+ $k =~ s/>/__/g;
+ my (@chunks) = split(/_/, $k, -1);
+ foreach my $i (0..$#chunks) {
+ if ($chunks[$i] eq '') {
+ $chunks[$i] = $pchunks[$i];
+ } elsif ($chunks[$i] =~ /^([0-9]+)\+(.*)/) {
+ $chunks[$i] = substr($pchunks[$i], 0, $1) . $2;
+ }
+ }
+ my ($answer) = join('_', @chunks);
+ $answer =~ s/(^[^:]*)_:(.*)/$2_$1/;
+ print "$sum *$answer.prn\n";
+ @pchunks = @chunks;
+ }
+}