[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>