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 =~ [EMAIL PROTECTED]/@@;
> 
>-              #
>-              # 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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to