diff -r 000000000000 -r 83f4b4db085c toolsandutils/productionbldtools/differ.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolsandutils/productionbldtools/differ.pl Tue Feb 02 01:39:43 2010 +0200 @@ -0,0 +1,55 @@ +#!\usr\bin\perl +# Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "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: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# Treates the output of diff -q to list common parts of filenames of differing +# files +# +# + +while (my $line=) + { + chomp($line); + + if ($line =~ /^Files .* differ$/) + { + if ($line =~ /^Files ([^\s]+) and ([^\s]+) differ$/) + { + # Files present but differing + my @one = reverse(split(/[\/\\]/,$1)); + my @two = reverse(split(/[\/\\]/,$2)); + my @common; # Shared RHS of path/filename + + my $index = 0; + + while + ( ($index < scalar(@one)) + && ($index < scalar(@two)) + ) + { + # If path section is identical, copy to @common + if ($one[$index] eq $two[$index]) + { unshift @common, $one[$index]; } + else + { last; } + $index++; + } + + print join("\\",@common)."\n"; + } + else + { + die "Could not parse \"$line\"\n"; + } + } + }