checkpatch: extend check for camel[0-9_]*CASE

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
This commit is contained in:
Antonio Borneo 2022-08-30 15:28:56 +02:00
parent 9f25e470f9
commit 01cf43aab9
1 changed files with 24 additions and 0 deletions

View File

@ -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