On Tue, 2017-01-10 at 02:59 +0300, Alexey Dobriyan wrote:
> %Z is going to be removed in favour of %z.
> 
> Signed-off-by: Alexey Dobriyan <[email protected]>
> ---
> 
>  scripts/checkpatch.pl |    6 ++++++
>  1 file changed, 6 insertions(+)
> 
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -5189,6 +5189,12 @@ sub process {
>                                    "\%Ld/%Lu are not-standard C, use 
> %lld/%llu\n" . $herecurr);
>                               last;
>                       }
> +                     # check for %Z
> +                     if ($string =~ /(?<!%)%[\*\d\.\$]*Z[diouxX]/) {
> +                             WARN("PRINTF_Z",
> +                                  "%Z is non-standard C, use %z\n" . 
> $herecurr);
> +                             last;
> +                     }
>                       if ($string =~ /0x%[\*\d\.\$\Llzth]*[udi]/) {
>                               ERROR("PRINTF_0xDECIMAL",
>                                     "Prefixing 0x with decimal output is 
> defective\n" . $herecurr);

Right concept, slightly incorrect implementation.

diouxX isn't necessary, ?<!% isn't necessary either as
there's a s/%%/__/g above it, last; probably isn't a
good idea as a single string could have both %Lu and
%Zu and unrelated, thanks for reminding me, I knew but
forgot to fix, the PRINTF_0xDECIMAL is defective as
there's a requirement that the match string only use
upper case.

Reply via email to