This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add test for sprintf ordering by both explicit index and not.
authorJames E Keenan <jkeenan@cpan.org>
Tue, 8 Sep 2015 12:59:49 +0000 (08:59 -0400)
committerJames E Keenan <jkeenan@cpan.org>
Mon, 14 Sep 2015 22:46:31 +0000 (18:46 -0400)
Commit 638ca15 earlier in the 5.23 development cycle corrected a
long-standing bug in sprintf.  Not surprisingly, code outside the
core built on this bug will now exhibit a different behavior.
CPAN library Text-sprintfn is one such case.  One test in its
test suite began to fail; see
https://rt.cpan.org/Ticket/Display.html?id=105989.

This commit adds the test which failed in Text-sprintfn's t/01-basic.t to our
t/op/sprintf.t with the corrected test result.  It also adds a 'printf'
version of that corrected expectation to pod/perlfunc.pod.

For: RT #125956

pod/perlfunc.pod
t/op/sprintf.t

index 68d190f..b5fb4f1 100644 (file)
@@ -7410,10 +7410,11 @@ value to format.
 Here are some more examples; be aware that when using an explicit
 index, the C<$> may need escaping:
 
-  printf "%2\$d %d\n",    12, 34;      # will print "34 12\n"
-  printf "%2\$d %d %d\n", 12, 34;      # will print "34 12 34\n"
-  printf "%3\$d %d %d\n", 12, 34, 56;  # will print "56 12 34\n"
-  printf "%2\$*3\$d %d\n", 12, 34, 3;  # will print " 34 12\n"
+  printf "%2\$d %d\n",      12, 34;      # will print "34 12\n"
+  printf "%2\$d %d %d\n",   12, 34;      # will print "34 12 34\n"
+  printf "%3\$d %d %d\n",   12, 34, 56;  # will print "56 12 34\n"
+  printf "%2\$*3\$d %d\n",  12, 34,  3;  # will print " 34 12\n"
+  printf "%*1\$.*f\n",       4,  5, 10;  # will print "5.0000\n"
 
 =back
 
index db934c7..c6550d0 100644 (file)
@@ -312,6 +312,7 @@ __END__
 >%4.*2$d<   >[5,3]<       > 005<          >width with reordered precision<
 >%*3$.*2$d< >[5,3,4]<     > 005<          >reordered width with reordered precision<
 >%3$*2$.*1$d< >[3,4,5]<   > 005<          >reordered param, width, precision<
+>%*1$.*f<   >[4, 5, 10]<  >5.0000<        >perl #125956: reordered param, width, precision, floating point<
 >%d<        >-1<          >-1<
 >%-d<       >-1<          >-1<
 >%+d<       >-1<          >-1<