Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Ruby (http://www.velocityreviews.com/forums/f66-ruby.html)
-   -   sprintf bug? (http://www.velocityreviews.com/forums/t847819-sprintf-bug.html)

Daniel DeLorme 02-01-2008 03:53 AM

sprintf bug?
 
I've just stumbled across the following:

machine1$ ruby -ve 'printf("(%*-s)\n", 10,"hello")'
ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-freebsd6]
(hello )

machine2$ ruby -ve 'printf("(%*-s)\n", 10,"hello")'
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-freebsd6]
-e:1:in `printf': flag after width (ArgumentError)
from -e:1

I can fix it by changing the pattern to "%-*s", but is that a bug in
patchlevel 111 or is it a "bugfix" for a syntax that was never supposed
to be valid? And if the second case, what is the point of making things
more restrictive?

Daniel


Robert Klemme 02-01-2008 09:08 AM

Re: sprintf bug?
 
2008/2/1, Daniel DeLorme <dan-ml@dan42.com>:
> I've just stumbled across the following:
>
> machine1$ ruby -ve 'printf("(%*-s)\n", 10,"hello")'
> ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-freebsd6]
> (hello )
>
> machine2$ ruby -ve 'printf("(%*-s)\n", 10,"hello")'
> ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-freebsd6]
> -e:1:in `printf': flag after width (ArgumentError)
> from -e:1
>
> I can fix it by changing the pattern to "%-*s", but is that a bug in
> patchlevel 111 or is it a "bugfix" for a syntax that was never supposed
> to be valid?


AFAIK valid syntax always has been this:

irb(main):002:0> sprintf "%*s", 10, "hello"
=> " hello"
irb(main):003:0> sprintf "%-*s", 10, "hello"
=> "hello "

So, it's a bugfix.

> And if the second case, what is the point of making things
> more restrictive?


I do not understand the question: if it is a bug fix then the new
behavior is the one that was originally intended. Code that employs
other syntax is simply broken.

Cheers

robert

--
use.inject do |as, often| as.you_can - without end



All times are GMT. The time now is 10:54 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.