diff options
| author | Daniel Walker <dwalker@fifo99.com> | 2009-09-21 20:04:35 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-22 10:17:47 -0400 |
| commit | 113f04a836481e9ecc26e8dee8b0e4d52878a288 (patch) | |
| tree | 3f6261a456fd09d2219bb2fe80d90fd0c093f753 /scripts | |
| parent | 463f28648586721c2191130c9b3c27589dcc11a0 (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')
| -rwxr-xr-x | scripts/checkpatch.pl | 13 |
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); |
