From: Michael Orlitzky Date: Thu, 24 Aug 2017 11:34:36 +0000 (-0400) Subject: Fix redundant argument to sprintf warning. X-Git-Tag: 1.40.04~11 X-Git-Url: https://gitweb.michael.orlitzky.com/?a=commitdiff_plain;h=6afb8e258a5a2a0e7c72c4c25927dde9d1e2ad89;p=postfix-logwatch.git Fix redundant argument to sprintf warning. 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. --- diff --git a/postfix-logwatch b/postfix-logwatch index 1e58a95..92ed621 100644 --- a/postfix-logwatch +++ b/postfix-logwatch @@ -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 } } }