Change to sprintf function

While testing the Log4r module I’ve discovered that the sprintf function has
changed in 1.8.

Using the following test script

#!/usr/bin/ruby -w

puts sprintf("%*3$s %s", “abcd”, “abcd”, 10)

I get

[mark@laptop log4r-1.0.2]$ ruby1.6 -v test.rb
ruby 1.6.7 (2002-03-01) [i586-linux-gnu]
abcd abcd

[mark@laptop log4r-1.0.2]$ ruby -v test.rb
ruby 1.8.0 (2003-08-04) [i686-linux]
test.rb:3:in `sprintf’: unnumbered(1) mixed with numbered (ArgumentError)
from test.rb:3

Does anyone know the correct way to call sprintf under 1.8? I’ve looked at the
ruby-lang site to see if this change is mentioned but that just lists the new
&p modifier.

Thanks in advance

Best Regards

Mark Sparshatt

While testing the Log4r module I’ve discovered that the sprintf function has
changed in 1.8.

[mark@laptop log4r-1.0.2]$ ruby -v test.rb
ruby 1.8.0 (2003-08-04) [i686-linux]
test.rb:3:in `sprintf’: unnumbered(1) mixed with numbered (ArgumentError)
from test.rb:3

Does anyone know the correct way to call sprintf under 1.8? I’ve looked at the
ruby-lang site to see if this change is mentioned but that just lists the new
&p modifier.

It was discussed on this list a few days ago. See http://ruby-talk.org/

(Note: the search engine is deceptive. Ignore the message about the archive
containing 0 documents / 0 documents matched your search, and just scroll
down to the results)

Regards,

Brian.

···

On Tue, Sep 02, 2003 at 10:08:19PM +0900, mark wrote:

puts sprintf("%*3$s %s", "abcd", "abcd", 10)

Well, it want

svg% ruby -we 'puts sprintf("%*3$1$s %2$s\n", "abcd", "abcd", 10)'
      abcd abcd
svg%

Guy Decoux

While testing the Log4r module I’ve discovered that the sprintf function
has changed in 1.8.

[mark@laptop log4r-1.0.2]$ ruby -v test.rb
ruby 1.8.0 (2003-08-04) [i686-linux]
test.rb:3:in `sprintf’: unnumbered(1) mixed with numbered (ArgumentError)
from test.rb:3

Does anyone know the correct way to call sprintf under 1.8? I’ve looked
at the ruby-lang site to see if this change is mentioned but that just
lists the new &p modifier.

It was discussed on this list a few days ago. See http://ruby-talk.org/

(Note: the search engine is deceptive. Ignore the message about the archive
containing 0 documents / 0 documents matched your search, and just scroll
down to the results)

Oops, I guess that I missed that discussion.
Thanks for the pointer, I’ll remember to check the archives next time.

···

On Tuesday 02 Sep 2003 2:39 pm, Brian Candler wrote:

On Tue, Sep 02, 2003 at 10:08:19PM +0900, mark wrote:

On Tuesday 02 Sep 2003 2:39 pm, ts wrote:

puts sprintf(“%*3$s %s”, “abcd”, “abcd”, 10)

Well, it want

svg% ruby -we ‘puts sprintf(“%*3$1$s %2$s\n”, “abcd”, “abcd”, 10)’
abcd abcd
svg%

Guy Decoux

Thanks, that’s the answer.

Best regards

Mark Sparshatt