From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758344AbdJRAfP (ORCPT ); Tue, 17 Oct 2017 20:35:15 -0400 Received: from smtprelay0186.hostedemail.com ([216.40.44.186]:45680 "EHLO smtprelay.hostedemail.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753664AbdJRAfO (ORCPT ); Tue, 17 Oct 2017 20:35:14 -0400 X-Session-Marker: 6A6F6540706572636865732E636F6D X-Spam-Summary: 2,0,0,,d41d8cd98f00b204,joe@perches.com,:::::,RULES_HIT:41:355:379:541:599:800:960:973:982:988:989:1260:1277:1311:1313:1314:1345:1359:1373:1437:1515:1516:1518:1534:1542:1593:1594:1711:1730:1747:1777:1792:2197:2199:2393:2553:2559:2562:2828:3138:3139:3140:3141:3142:3354:3622:3653:3865:3866:3868:3870:3871:3873:4250:4321:4559:4560:5007:7576:7903:7904:7914:7974:9545:10004:10400:10848:10967:11232:11657:11658:11783:11914:12043:12262:12438:12555:12679:12740:12895:12986:13095:13181:13229:13439:13894:14093:14097:14181:14254:14659:14721:21080:21221:21433:21451:21627:30001:30002:30003:30004:30005:30006:30007:30008:30009:30010:30011:30012:30013:30014:30015:30016:30017:30018:30019:30020:30021:30022:30023:30024:30025:30026:30027:30028:30029:30030:30031:30032:30033:30034:30035:30036:30037:30038:30039:30040:30041:30042:30043:30044:30045:30046:30047:30048:30049:30050:30051:30052:30053:30054:30055:30057:30058:30059:30060:30061:30062:30063:30064:30065:30066:30067:30068:30069:30070:30071: X-HE-Tag: mine33_84be197796958 X-Filterd-Recvd-Size: 3506 Message-ID: <1508286910.6530.38.camel@perches.com> Subject: Re: scripts/checkpatch: Concatenated strings should use spaces between elements From: Joe Perches To: Heinrich Schuchardt , Andy Whitcroft Cc: linux-kernel@vger.kernel.org Date: Tue, 17 Oct 2017 17:35:10 -0700 In-Reply-To: References: <20171017211751.31343-1-xypron.glpk@gmx.de> <1508280192.6530.31.camel@perches.com> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.22.6-1ubuntu1 Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > > > 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. > > > 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 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 ---  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