summaryrefslogtreecommitdiff
path: root/src/testpattern/uncompress-checksums.in
blob: e97fe251bc2e0b404765f5cb2cf5494690b6dbec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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;
    }
}