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