Messages in this thread Patch in this message | | | Subject | Re: scripts/checkpatch: Concatenated strings should use spaces between elements | From | Joe Perches <> | Date | Tue, 17 Oct 2017 17:35:10 -0700 |
| |
On Wed, 2017-10-18 at 00:58 +0200, Heinrich Schuchardt wrote: > On 10/18/2017 12:43 AM, Joe Perches wrote: > > On Tue, 2017-10-17 at 23:17 +0200, Heinrich Schuchardt wrote: > > > This patch creates a warning (CHECK) > > > "Concatenated strings should use spaces between elements" [] > > > +void foo(void) > > > +{ > > > + test(L"\""); > > > > In this case, L must be a constant string and you > > are concatenating L and "\"" > > > > > > See ISO/IEC 9899:1999 > > 6.4.5 String literals > > <cite> > A character string literal is a sequence of zero or more multibyte > characters enclosed in double-quotes, as in "xyz" > A wide string literal is the same, except prefixed by the > letter L. > </cite> > > L"foo" is a literal of type wchar_t * and not two strings. > L is a qualifier and not a constant string. > > Just like ULL in 10ULL.
How about trying this:
From 99bd0ab78a810f537e18a24be42379a6af9d5045 Mon Sep 17 00:00:00 2001 Message-Id: <99bd0ab78a810f537e18a24be42379a6af9d5045.1508286849.git.joe@perches.com> From: Joe Perches <joe@perches.com> Date: Tue, 17 Oct 2017 17:11:14 -0700 Subject: [PATCH] checkpatch: Support wide strings
Allow prefixing typical strings with L for wide strings
Signed-off-by: Joe Perches <joe@perches.com> --- scripts/checkpatch.pl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 359c02b0954e..9f04f803e96b 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -393,7 +393,7 @@ our $Binary = qr{(?i)0b[01]+$Int_type?}; our $Hex = qr{(?i)0x[0-9a-f]+$Int_type?}; our $Int = qr{[0-9]+$Int_type?}; our $Octal = qr{0[0-7]+$Int_type?}; -our $String = qr{"[X\t]*"}; +our $String = qr{(?:\bL)?"[X\t]*"}; our $Float_hex = qr{(?i)0x[0-9a-f]+p-?[0-9]+[fl]?}; our $Float_dec = qr{(?i)(?:[0-9]+\.[0-9]*|[0-9]*\.[0-9]+)(?:e-?[0-9]+)?[fl]?}; our $Float_int = qr{(?i)[0-9]+e-?[0-9]+[fl]?}; @@ -5262,13 +5262,14 @@ sub process { } # concatenated string without spaces between elements - if ($line =~ /$String[A-Z_]/ || $line =~ /[A-Za-z0-9_]$String/) { + if ($line =~ /$String[A-Z_]/ || + ($line =~ /([A-Za-z0-9_]+)$String/ && $1 !~ /^L$/)) { CHK("CONCATENATED_STRING", "Concatenated strings should use spaces between elements\n" . $herecurr); } # uncoalesced string fragments - if ($line =~ /$String\s*"/) { + if ($line =~ /$String\s*L?"/) { WARN("STRING_FRAGMENTS", "Consecutive strings are generally better as a single string\n" . $herecurr); } -- 2.10.0.rc2.1.g053435c
| |