[#71439] [Ruby trunk - Feature #11339] [PATCH] io.c: avoid kwarg parsing in C API — matz@...
Issue #11339 has been updated by Yukihiro Matsumoto.
7 messages
2015/11/11
[#71473] Re: [Ruby trunk - Feature #11339] [PATCH] io.c: avoid kwarg parsing in C API
— Eric Wong <normalperson@...>
2015/11/13
Entire series for sockets
[#71450] Ruby 2.3.0-preview1 Released — "NARUSE, Yui" <naruse@...>
Hi,
5 messages
2015/11/11
[#71617] [Ruby trunk - Feature #11664] [PATCH] introduce rb_autoload_value to replace rb_autoload — nobu@...
Issue #11664 has been updated by Nobuyoshi Nakada.
3 messages
2015/11/20
[#71721] [Ruby trunk - Feature #11741] Migrate Ruby to Git from Subversion — me@...
Issue #11741 has been updated by Jon Moss.
4 messages
2015/11/28
[ruby-core:71379] [Ruby trunk - Bug #11417] Wrong description for `limit` parameter for IO#gets
From:
antondavydov.o@...
Date:
2015-11-07 19:41:15 UTC
List:
ruby-core #71379
Issue #11417 has been updated by Anton Davydov.
Ary hello!
The problem in japanise characters. They are represented by 3 bytes:
~~~
StringIO.new("こんにちは").gets(1) # => "こ"
StringIO.new("こんにちは").gets(2) # => "こ"
StringIO.new("こんにちは").gets(3) # => "こ"
StringIO.new("こんにちは").gets(4) # => "こん"
~~~
Also [I create RP](https://github.com/ruby/ruby/pull/1085) in ruby/ruby repository with updating `IO#gets` documentation.
----------------------------------------
Bug #11417: Wrong description for `limit` parameter for IO#gets
https://bugs.ruby-lang.org/issues/11417#change-54751
* Author: Ary Borenszweig
* Status: Open
* Priority: Normal
* Assignee:
* ruby -v:
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
It says:
"If the first argument is an integer, or optional second argument is given, the returning string would not be longer than the given value in bytes."
But:
~~~
require "stringio"
io = StringIO.new "こんにちは"
string = io.gets(1)
puts string #=> "こ"
puts string.bytes.length #=> 3
~~~
The returning value number of bytes (3) is longer than the given value (1), so it contradicts the description.
I guess the implementation reads chars until the total number of bytes read is equal or bigger than the limit.
But I don't know how to describe this behaviour in a way that's clear to the user.
--
https://bugs.ruby-lang.org/