diff -r 4a4ca5a019bb -r a600c1a596f7 williamr/compare_7z_listings.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/williamr/compare_7z_listings.pl Mon Jun 01 15:26:59 2009 +0100 @@ -0,0 +1,58 @@ +#!/usr/bin/perl + +# Copyright (c) 2009 Symbian Foundation Ltd +# This component and the accompanying materials are made available +# under the terms of the License "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Symbian Foundation Ltd - initial contribution. +# +# Contributors: +# +# Description: +# Compare two 7z listings, looking for files present in both + +use strict; + +my %first_files; +my $line; +my $file_index = -1; + +while ($line=<>) + { + + if ($line =~ /^Listing archive/) + { + $file_index++; + print "$file_index: Processing $line"; + next; + } + + # 2009-04-30 11:26:58 D.... 0 0 epoc32\cshlpcmp_template + # 2009-03-20 22:22:18 ..... 72192 16307 epoc32\cshlpcmp_template\cshelp2000.dot + + next if (length($line) < 54); + + my $dir_attribute = substr($line, 20, 1); + if ($dir_attribute eq ".") + { + chomp $line; + my $fullpath = substr($line, 53); + + if ($file_index == 0) + { + # first file + $first_files{$fullpath} = $line; + next; + } + if (defined $first_files{$fullpath}) + { + print "Duplicate filename: $fullpath\n"; + print "\t$first_files{$fullpath}\n\t$line\n"; + next + } + } + } +