]> gitweb.michael.orlitzky.com - postfix-logwatch.git/commitdiff
Fix redundant argument to sprintf warning.
authorMichael Orlitzky <michael@orlitzky.com>
Thu, 24 Aug 2017 11:34:36 +0000 (07:34 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Thu, 24 Aug 2017 12:14:04 +0000 (08:14 -0400)
Perl 5.22 now warns about redundant (i.e. extra) arguments to the
sprintf function. If your format string only has two place-holders but
you pass three place-fillers, you get warned:

  Redundant argument in sprintf at ./postfix-logwatch line 1382...

The issue there was that the format string passed to sprintf was
constructed dynamically; sometimes it would contain two place-holders,
and sometimes three. Three place-fillers were always passed, so when
only two place-holders were used, the warning would be thrown. This was
fixed by testing whether or not there are two or three place-holders,
and passing the appropriate number of place-fillers.

postfix-logwatch

index 1e58a95c3366908284c2012b2d15ffaa6ae36f95..92ed62138fe0d37ab30268f40c8e5ccbc3ee67d3 100644 (file)
@@ -1378,8 +1378,17 @@ sub print_summary_report (\@) {
                      $$divisor == $Totals{$keyname} ? 100.00 : $Totals{$keyname} * 100 / $$divisor;
             }
             else {
-               push @{$lines[$cur_level]}, 
-                  sprintf "$fmt  %-23s $extra\n", $total, $desc, commify ($Totals{$keyname});
+               my $new_line;
+               if ($extra eq '') {
+                   $new_line = sprintf("$fmt  %-23s \n", $total, $desc);
+               }
+               else {
+                   $new_line = sprintf("$fmt  %-23s $extra\n",
+                                       $total,
+                                       $desc,
+                                       commify ($Totals{$keyname}));
+               }
+               push @{$lines[$cur_level]}, $new_line
             }
          }
       }