ALSA: rme32: Fix the missing snd_card_free() call at probe error
[linux-2.6-microblaze.git] / scripts / checkpatch.pl
index 1784921..b01c36a 100755 (executable)
@@ -3172,7 +3172,7 @@ sub process {
                    length($line) > 75 &&
                    !($line =~ /^\s*[a-zA-Z0-9_\/\.]+\s+\|\s+\d+/ ||
                                        # file delta changes
-                     $line =~ /^\s*(?:[\w\.\-]+\/)++[\w\.\-]+:/ ||
+                     $line =~ /^\s*(?:[\w\.\-\+]*\/)++[\w\.\-\+]+:/ ||
                                        # filename then :
                      $line =~ /^\s*(?:Fixes:|Link:|$signature_tags)/i ||
                                        # A Fixes: or Link: line or signature tag line
@@ -3479,47 +3479,47 @@ sub process {
                    # Kconfig supports named choices), so use a word boundary
                    # (\b) rather than a whitespace character (\s)
                    $line =~ /^\+\s*(?:config|menuconfig|choice)\b/) {
-                       my $length = 0;
-                       my $cnt = $realcnt;
-                       my $ln = $linenr + 1;
-                       my $f;
-                       my $is_start = 0;
-                       my $is_end = 0;
-                       for (; $cnt > 0 && defined $lines[$ln - 1]; $ln++) {
-                               $f = $lines[$ln - 1];
-                               $cnt-- if ($lines[$ln - 1] !~ /^-/);
-                               $is_end = $lines[$ln - 1] =~ /^\+/;
+                       my $ln = $linenr;
+                       my $needs_help = 0;
+                       my $has_help = 0;
+                       my $help_length = 0;
+                       while (defined $lines[$ln]) {
+                               my $f = $lines[$ln++];
 
                                next if ($f =~ /^-/);
-                               last if (!$file && $f =~ /^\@\@/);
+                               last if ($f !~ /^[\+ ]/);       # !patch context
 
-                               if ($lines[$ln - 1] =~ /^\+\s*(?:bool|tristate|prompt)\s*["']/) {
-                                       $is_start = 1;
-                               } elsif ($lines[$ln - 1] =~ /^\+\s*(?:---)?help(?:---)?$/) {
-                                       $length = -1;
+                               if ($f =~ /^\+\s*(?:bool|tristate|prompt)\s*["']/) {
+                                       $needs_help = 1;
+                                       next;
+                               }
+                               if ($f =~ /^\+\s*help\s*$/) {
+                                       $has_help = 1;
+                                       next;
                                }
 
-                               $f =~ s/^.//;
-                               $f =~ s/#.*//;
-                               $f =~ s/^\s+//;
-                               next if ($f =~ /^$/);
+                               $f =~ s/^.//;   # strip patch context [+ ]
+                               $f =~ s/#.*//;  # strip # directives
+                               $f =~ s/^\s+//; # strip leading blanks
+                               next if ($f =~ /^$/);   # skip blank lines
 
+                               # At the end of this Kconfig block:
                                # This only checks context lines in the patch
                                # and so hopefully shouldn't trigger false
                                # positives, even though some of these are
                                # common words in help texts
-                               if ($f =~ /^\s*(?:config|menuconfig|choice|endchoice|
-                                                 if|endif|menu|endmenu|source)\b/x) {
-                                       $is_end = 1;
+                               if ($f =~ /^(?:config|menuconfig|choice|endchoice|
+                                              if|endif|menu|endmenu|source)\b/x) {
                                        last;
                                }
-                               $length++;
+                               $help_length++ if ($has_help);
                        }
-                       if ($is_start && $is_end && $length < $min_conf_desc_length) {
+                       if ($needs_help &&
+                           $help_length < $min_conf_desc_length) {
+                               my $stat_real = get_stat_real($linenr, $ln - 1);
                                WARN("CONFIG_DESCRIPTION",
-                                    "please write a paragraph that describes the config symbol fully\n" . $herecurr);
+                                    "please write a help paragraph that fully describes the config symbol\n" . "$here\n$stat_real\n");
                        }
-                       #print "is_start<$is_start> is_end<$is_end> length<$length>\n";
                }
 
 # check MAINTAINERS entries