Hi,

At Thu, 25 Jun 2009 11:19:55 +0900,
Run Paint Run Run wrote in [ruby-core:24024]:
> The ARGF.chars and ARGF.bytes iterators (along with their
> aliases) don't set ARGF.lineno. It always returns 0,
> irrespective of the actual line number. While the case could
> be made that line numbers don't make much sense when dealing
> with bytes, they certainly do for characters.

It's actually "gets'ed count".

> 1.8 HEAD appears to return the number of the file descriptor instead...
> 
>     $ ruby -v
>     ruby 1.9.2dev (2009-06-21 trunk 23774) [i686-linux]
> 
>     ARGF.chars { print ARGF.lineno } #=> 0000..000
> 
>     $ ruby8 -v
>     ruby 1.8.8dev (2009-06-17) [i686-linux]
> 
>     ARGF.bytes { print ARGF.lineno } #=> 333....333

What do you mean?  Seems like both work properly.

$ echo -e 'aaaa\nbbb' |./ruby -ve 'gets; ARGF.chars{print ARGF.lineno};puts'
ruby 1.8.8dev (2009-06-23 ruby_1_8 23825) [i686-linux]
1111

$ echo -e 'aaaa\nbbb' |./ruby -ve 'ARGF.chars{print ARGF.lineno};puts'
ruby 1.8.8dev (2009-06-23 ruby_1_8 23825) [i686-linux]
000000000

$ echo -e 'aaaa\nbbb' |./ruby -ve 'gets; ARGF.chars{print ARGF.lineno};puts'
ruby 1.9.2dev (2009-06-25 trunk 23851) [i686-linux]
1111

$ echo -e 'aaaa\nbbb' |./ruby -ve 'ARGF.chars{print ARGF.lineno};puts'
ruby 1.9.2dev (2009-06-25 trunk 23851) [i686-linux]
000000000

-- 
Nobu Nakada