checkpatch: report any absolute references to kernel source files
Absolute references to kernel source files are generally only useful locally to the originator of the patch. Check for any such references and report them. Signed-off-by: Andy Whitcroft <apw@shadowen.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
e09dec4831
commit
6ecd967444
1 changed files with 41 additions and 0 deletions
|
@ -958,6 +958,33 @@ sub CHK {
|
|||
}
|
||||
}
|
||||
|
||||
sub check_absolute_file {
|
||||
my ($absolute, $herecurr) = @_;
|
||||
my $file = $absolute;
|
||||
|
||||
##print "absolute<$absolute>\n";
|
||||
|
||||
# See if any suffix of this path is a path within the tree.
|
||||
while ($file =~ s@^[^/]*/@@) {
|
||||
if (-f "$root/$file") {
|
||||
##print "file<$file>\n";
|
||||
last;
|
||||
}
|
||||
}
|
||||
if (! -f _) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
# It is, so see if the prefix is acceptable.
|
||||
my $prefix = $absolute;
|
||||
substr($prefix, -length($file)) = '';
|
||||
|
||||
##print "prefix<$prefix>\n";
|
||||
if ($prefix ne ".../") {
|
||||
WARN("use relative pathname instead of absolute in changelog text\n" . $herecurr);
|
||||
}
|
||||
}
|
||||
|
||||
sub process {
|
||||
my $filename = shift;
|
||||
|
||||
|
@ -1168,6 +1195,20 @@ sub process {
|
|||
$herecurr) if (!$emitted_corrupt++);
|
||||
}
|
||||
|
||||
# Check for absolute kernel paths.
|
||||
if ($tree) {
|
||||
while ($line =~ m{(?:^|\s)(/\S*)}g) {
|
||||
my $file = $1;
|
||||
|
||||
if ($file =~ m{^(.*?)(?::\d+)+:?$} &&
|
||||
check_absolute_file($1, $herecurr)) {
|
||||
#
|
||||
} else {
|
||||
check_absolute_file($file, $herecurr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# UTF-8 regex found at http://www.w3.org/International/questions/qa-forms-utf-8.en.php
|
||||
if (($realfile =~ /^$/ || $line =~ /^\+/) &&
|
||||
$rawline !~ m/^$UTF8*$/) {
|
||||
|
|
Loading…
Reference in a new issue