lkml.org 
[lkml]   [2007]   [Jun]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH] update checkpatch.pl to version 0.05

On Jun 16 2007 22:42, Andy Whitcroft wrote:
>@@ -180,12 +182,17 @@ sub ctx_block_get {
> sub ctx_block_outer {
> my ($linenr, $remain) = @_;
>
>- return ctx_block_get($linenr, $remain, 1);
>+ return ctx_block_get($linenr, $remain, 1, '\{', '\}');

'\\{'.

Or, if it works, directly use
return &ctx_block_get($linenr, $remain, 1, qr/\{/, qr/\}/);

>+sub ctx_statement {
>+ my ($linenr, $remain) = @_;
>+
>+ return ctx_block_get($linenr, $remain, 0, '\(', '\)');

^^

>+ my $ident = '[A-Za-z\d_]+';

Oh yes, use the qr operator here. (qr{}, qr//, choose anything like you
would do with m//)

>+ my $storage = '(?:extern|static)';
>+ my $sparse = '(?:__user|__kernel|__force|__iomem)';
>+ my $type = '(?:unsigned\s+)?' .
>+ '(?:void|char|short|int|long|unsigned|float|double|' .
>+ 'long\s+long|' .
>+ "struct\\s+${ident}|" .
>+ "union\\s+${ident}|" .
>+ "${ident}_t)" .
>+ "(?:\\s+$sparse)*" .
>+ '(?:\s*\*+)?';
>+ my $attribute = '(?:__read_mostly|__init|__initdata)';
>+
>+ my $Ident = $ident;
>+ my $Type = $type;
>+ my $Storage = $storage;
>+ my $Declare = "(?:$storage\\s+)?$type";
>+ my $Attribute = $attribute;
>+

> #trailing whitespace
>- if ($line=~/\+.*\S\s+$/) {
>+ if ($line=~/^\+.*\S\s+$/) {
if ($line =~ /^\+.*\S\s+$/) {
> my $herevet = "$here\n" . cat_vet($line) . "\n\n";
> print "trailing whitespace\n";
> print "$herevet";
>@@ -392,17 +420,20 @@ sub process {
> #
> next if ($in_comment);
>
>- # Remove comments from the line before processing.
>+# Remove comments from the line before processing.
> $line =~ s@/\*.*\*/@@g;
> $line =~ s@/\*.*@@;

C being a wonderful language, has this nice pitfall for parsers

foo = number /*pointer_to_int;

> $line =~ s@.*\*/@@;
>
>- #
>- # Checks which may be anchored in the context.
>- #
>+# Standardise the strings and chars within the input to simplify matching.
>+ $line = sanitise_line($line);
>+
>+#
>+# Checks which may be anchored in the context.
>+#
>
>- # Check for switch () and associated case and default
>- # statements should be at the same indent.
>+# Check for switch () and associated case and default
>+# statements should be at the same indent.
> if ($line=~/\bswitch\s*\(.*\)/) {

Codingstyle warrants \bswitch\s+ :)

> # * goes on variable not on type
>- my $type = '(?:char|short|int|long|unsigned|float|double|' .
>- 'struct\s+[A-Za-z\d_]+|' .
>- 'union\s+[A-Za-z\d_]+)';
>-

qr. (I don't know what it is good for - compare qr/xyz/ with 'xyz'...,
but there's a reason to its existence, so let's use it :-)




Jan
--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2007-06-17 00:03    [W:0.029 / U:1.232 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site