This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Support reordered precision arguments in (s)printf
authorAaron Crane <arc@cpan.org>
Tue, 7 Jul 2015 16:12:26 +0000 (17:12 +0100)
committerAaron Crane <arc@cpan.org>
Wed, 15 Jul 2015 13:25:05 +0000 (14:25 +0100)
commit638ca15aeec3bf86124489c8c913c5b42d4fee16
tree2c2c3cb9731b20c9e386f7d0a2bbbe7d7121fe61
parent082ce9c667e6d73783164fa1abab61806b678b4f
Support reordered precision arguments in (s)printf

The printf builtins gained support for argument reordering in October 2000,
in eb3fce905f8436bbc374998ec8c7c34ce2b73e4e, as part of the 5.7.x blead
release cycle. However, a simple typo meant that it never worked: the
initial implementation stored the argument index in the variable "ewix"
(explicit width-argument index) instead of "epix" (for "precision").

The bug was noticed in July 2002, two days before the 5.8.0 release, so
fixing it at that stage was deemed riskier than documenting it. The commit in
question is 7b8dd722af72d0ca45650fb784c09763c0732e34, which was originally
posted as http://marc.info/?l=perl5-porters&m=102683138220786&w=2 .

For whatever reason, the obvious fix was never subsequently applied. This
commit remedies that, and extends it to also skip all redundant-argument
warnings when the precision is supplied with via an explicit index.
pod/perlfunc.pod
sv.c
t/op/sprintf.t