aboutsummaryrefslogtreecommitdiff
path: root/contrib/mklog
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/mklog')
-rwxr-xr-xcontrib/mklog18
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);