aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/checkpatch.pl
diff options
context:
space:
mode:
authorDaniel Walker <dwalker@fifo99.com>2009-09-21 20:04:35 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-09-22 10:17:47 -0400
commit113f04a836481e9ecc26e8dee8b0e4d52878a288 (patch)
tree3f6261a456fd09d2219bb2fe80d90fd0c093f753 /scripts/checkpatch.pl
parent463f28648586721c2191130c9b3c27589dcc11a0 (diff)
checkpatch: handle C99 comments correctly (performance issue)
This fixes the sanitation process in checkpatch.pl so that it blocks out the text after a C99 style comment the same way it does with block style comments. This prevents the text from getting processed as regular code. Signed-off-by: Daniel Walker <dwalker@fifo99.com> Signed-off-by: Andy Whitcroft <apw@canonical.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'scripts/checkpatch.pl')
-rwxr-xr-xscripts/checkpatch.pl13
1 files changed, 13 insertions, 0 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index fd6481649258..aa009a3b5b81 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -356,6 +356,13 @@ sub sanitise_line {
356 $off++; 356 $off++;
357 next; 357 next;
358 } 358 }
359 if ($sanitise_quote eq '' && substr($line, $off, 2) eq '//') {
360 $sanitise_quote = '//';
361
362 substr($res, $off, 2, $sanitise_quote);
363 $off++;
364 next;
365 }
359 366
360 # A \ in a string means ignore the next character. 367 # A \ in a string means ignore the next character.
361 if (($sanitise_quote eq "'" || $sanitise_quote eq '"') && 368 if (($sanitise_quote eq "'" || $sanitise_quote eq '"') &&
@@ -379,6 +386,8 @@ sub sanitise_line {
379 #print "c<$c> SQ<$sanitise_quote>\n"; 386 #print "c<$c> SQ<$sanitise_quote>\n";
380 if ($off != 0 && $sanitise_quote eq '*/' && $c ne "\t") { 387 if ($off != 0 && $sanitise_quote eq '*/' && $c ne "\t") {
381 substr($res, $off, 1, $;); 388 substr($res, $off, 1, $;);
389 } elsif ($off != 0 && $sanitise_quote eq '//' && $c ne "\t") {
390 substr($res, $off, 1, $;);
382 } elsif ($off != 0 && $sanitise_quote && $c ne "\t") { 391 } elsif ($off != 0 && $sanitise_quote && $c ne "\t") {
383 substr($res, $off, 1, 'X'); 392 substr($res, $off, 1, 'X');
384 } else { 393 } else {
@@ -386,6 +395,10 @@ sub sanitise_line {
386 } 395 }
387 } 396 }
388 397
398 if ($sanitise_quote eq '//') {
399 $sanitise_quote = '';
400 }
401
389 # The pathname on a #include may be surrounded by '<' and '>'. 402 # The pathname on a #include may be surrounded by '<' and '>'.
390 if ($res =~ /^.\s*\#\s*include\s+\<(.*)\>/) { 403 if ($res =~ /^.\s*\#\s*include\s+\<(.*)\>/) {
391 my $clean = 'X' x length($1); 404 my $clean = 'X' x length($1);