checkpatch: extend check for camel[0-9_]*CASE
authorAntonio Borneo <borneo.antonio@gmail.com>
Tue, 30 Aug 2022 13:28:56 +0000 (15:28 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sun, 18 Sep 2022 08:21:09 +0000 (08:21 +0000)
Linux has some automatically generated macros that can trigger
camelCASE check. This forces checkpatch to only detect the pattern
[A-Z][a-z]|[a-z][A-Z]
for adjacent case transition.

In OpenOCD we do not have such case, so extend the check to
[A-Z][0-9_]*[a-z]|[a-z][0-9_]*[A-Z]
and remove the detection of Linux special cases.

Change-Id: I82cb6dc668edbb093f68991337da1f4b933f1fac
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/7152
Tested-by: jenkins
tools/scripts/checkpatch.pl

index 0319d43d534b2732ec9110dae82021322e94eb6d..dc01effb4349fa3ae0b8b4fab1e8b015f0914b2d 100755 (executable)
@@ -1130,6 +1130,7 @@ sub seed_camelcase_file {
        my @lines = split('\n', $text);
 
        foreach my $line (@lines) {
+               if (!$OpenOCD) {
                next if ($line !~ /(?:[A-Z][a-z]|[a-z][A-Z])/);
                if ($line =~ /^[ \t]*(?:#[ \t]*define|typedef\s+$Type)\s+(\w*(?:[A-Z][a-z]|[a-z][A-Z])\w*)/) {
                        $camelcase{$1} = 1;
@@ -1138,6 +1139,17 @@ sub seed_camelcase_file {
                } elsif ($line =~ /^\s*(?:union|struct|enum)\s+(\w*(?:[A-Z][a-z]|[a-z][A-Z])\w*)\s*[;\{]/) {
                        $camelcase{$1} = 1;
                }
+               } # !$OpenOCD
+               # OpenOCD Specific: Begin: extend to camel[0-9_]*CASE
+               next if ($line !~ /(?:[A-Z][0-9_]*[a-z]|[a-z][0-9_]*[A-Z])/);
+               if ($line =~ /^[ \t]*(?:#[ \t]*define|typedef\s+$Type)\s+(\w*(?:[A-Z][0-9_]*[a-z]|[a-z][0-9_]*[A-Z])\w*)/) {
+                       $camelcase{$1} = 1;
+               } elsif ($line =~ /^\s*$Declare\s+(\w*(?:[A-Z][0-9_]*[a-z]|[a-z][0-9_]*[A-Z])\w*)\s*[\(\[,;]/) {
+                       $camelcase{$1} = 1;
+               } elsif ($line =~ /^\s*(?:union|struct|enum)\s+(\w*(?:[A-Z][0-9_]*[a-z]|[a-z][0-9_]*[A-Z])\w*)\s*[;\{]/) {
+                       $camelcase{$1} = 1;
+               }
+               # OpenOCD Specific: End
        }
 }
 
@@ -5798,6 +5810,7 @@ sub process {
                        my $var = $1;
 
 #CamelCase
+                       if (!$OpenOCD) {
                        if ($var !~ /^$Constant$/ &&
                            $var =~ /[A-Z][a-z]|[a-z][A-Z]/ &&
 #Ignore some autogenerated defines and enum values
@@ -5809,9 +5822,20 @@ sub process {
                            $var !~ /^(?:[a-z0-9_]*|[A-Z0-9_]*)?_?[a-z][A-Z](?:_[a-z0-9_]+|_[A-Z0-9_]+)?$/ &&
 #Ignore some three character SI units explicitly, like MiB and KHz
                            $var !~ /^(?:[a-z_]*?)_?(?:[KMGT]iB|[KMGT]?Hz)(?:_[a-z_]+)?$/) {
+                       }
+                       } # !$OpenOCD
+                       # OpenOCD Specific: Begin: remove Linux exceptions, extend to camel[0-9_]*CASE
+                       if ($var !~ /^$Constant$/ &&
+                           $var =~ /[A-Z][0-9_]*[a-z]|[a-z][0-9_]*[A-Z]/) {
+                       # OpenOCD Specific: End
                                while ($var =~ m{\b($Ident)}g) {
                                        my $word = $1;
+                                       if (!$OpenOCD) {
                                        next if ($word !~ /[A-Z][a-z]|[a-z][A-Z]/);
+                                       } # !$OpenOCD
+                                       # OpenOCD Specific: Begin: extend to camel[0-9_]*CASE
+                                       next if ($word !~ /[A-Z][0-9_]*[a-z]|[a-z][0-9_]*[A-Z]/);
+                                       # OpenOCD Specific: End
                                        if (!$OpenOCD) {
                                        # This will not work for OpenOCD jenkins because it runs
                                        # checkpatch from a tree already patched. Any new camelcase