[ruby-core:93551] [Ruby master Bug#11417] Wrong description for `limit` parameter for IO#gets

From: merch-redmine@...
Date: 2019-07-05 01:25:31 UTC
List: ruby-core #93551
Issue #11417 has been updated by jeremyevans0 (Jeremy Evans).

Status changed from Open to Closed

This was fixed in commit:965e9df38045594d126991e6a109c5746242d2ba.

----------------------------------------
Bug #11417: Wrong description for `limit` parameter for IO#gets
https://bugs.ruby-lang.org/issues/11417#change-79119

* Author: asterite (Ary Borenszweig)
* Status: Closed
* Priority: Normal
* Assignee: 
* Target version: 
* 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/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next