diff options
Diffstat (limited to 'contrib/mklog')
-rwxr-xr-x | contrib/mklog | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/contrib/mklog b/contrib/mklog index 61126280f1f..ff20cf1ba0f 100755 --- a/contrib/mklog +++ b/contrib/mklog @@ -1,5 +1,5 @@ #!/usr/bin/perl -# Copyright (C) 2012-2014 Free Software Foundation, Inc. +# Copyright (C) 2012-2017 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -195,8 +195,20 @@ foreach (@diff_lines) { } elsif($right eq '/dev/null') { $filename = $left; } else { - print STDERR "Error: failed to parse diff for $left and $right\n"; - exit 1; + my @ldirs = split /[\/\\]/, $left; + my @rdirs = split /[\/\\]/, $right; + + $filename = ''; + while ((my $l = pop @ldirs) && (my $r = pop @rdirs)) { + last if ($l ne $r); + $filename = "$l/$filename"; + } + $filename =~ s/\/$//; + + if (!$filename) { + print STDERR "Error: failed to parse diff for $left and $right\n"; + exit 1; + } } $left = $right = undef; ($clname, $relname) = get_clname ($filename); |