aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xscripts/checkpatch.pl41
1 files changed, 41 insertions, 0 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 9e7e9d1d5958..cc61cf7187ef 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -958,6 +958,33 @@ sub CHK {
958 } 958 }
959} 959}
960 960
961sub check_absolute_file {
962 my ($absolute, $herecurr) = @_;
963 my $file = $absolute;
964
965 ##print "absolute<$absolute>\n";
966
967 # See if any suffix of this path is a path within the tree.
968 while ($file =~ s@^[^/]*/@@) {
969 if (-f "$root/$file") {
970 ##print "file<$file>\n";
971 last;
972 }
973 }
974 if (! -f _) {
975 return 0;
976 }
977
978 # It is, so see if the prefix is acceptable.
979 my $prefix = $absolute;
980 substr($prefix, -length($file)) = '';
981
982 ##print "prefix<$prefix>\n";
983 if ($prefix ne ".../") {
984 WARN("use relative pathname instead of absolute in changelog text\n" . $herecurr);
985 }
986}
987
961sub process { 988sub process {
962 my $filename = shift; 989 my $filename = shift;
963 990
@@ -1168,6 +1195,20 @@ sub process {
1168 $herecurr) if (!$emitted_corrupt++); 1195 $herecurr) if (!$emitted_corrupt++);
1169 } 1196 }
1170 1197
1198# Check for absolute kernel paths.
1199 if ($tree) {
1200 while ($line =~ m{(?:^|\s)(/\S*)}g) {
1201 my $file = $1;
1202
1203 if ($file =~ m{^(.*?)(?::\d+)+:?$} &&
1204 check_absolute_file($1, $herecurr)) {
1205 #
1206 } else {
1207 check_absolute_file($file, $herecurr);
1208 }
1209 }
1210 }
1211
1171# UTF-8 regex found at http://www.w3.org/International/questions/qa-forms-utf-8.en.php 1212# UTF-8 regex found at http://www.w3.org/International/questions/qa-forms-utf-8.en.php
1172 if (($realfile =~ /^$/ || $line =~ /^\+/) && 1213 if (($realfile =~ /^$/ || $line =~ /^\+/) &&
1173 $rawline !~ m/^$UTF8*$/) { 1214 $rawline !~ m/^$UTF8*$/) {