From: shugo@...
Date: 2017-07-13T03:17:19+00:00
Subject: [ruby-core:82019] [Ruby trunk Bug#13741] A documentation bug of IO#putc
Issue #13741 has been reported by shugo (Shugo Maeda).
----------------------------------------
Bug #13741: A documentation bug of IO#putc
https://bugs.ruby-lang.org/issues/13741
* Author: shugo (Shugo Maeda)
* Status: Open
* Priority: Normal
* Assignee: naruse (Yui NARUSE)
* Target version:
* ruby -v:
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
The documentation of IO#putc says:
```
* call-seq:
* ios.putc(obj) -> obj
*
* If obj is Numeric
, write the character whose code is
* the least-significant byte of obj, otherwise write the first byte
* of the string representation of obj to ios. Note: This
* method is not safe for use with multi-byte characters as it will truncate
* them.
```
However, it supports multi-byte characters in the string argument form
since r29447:
```
$ ruby -e 'putc "���������������"'
���
```
How about to change the documentation?
```
* If obj is Numeric
, write the character whose code is
* the least-significant byte of obj.
* If obj is String
, write the first character
* of obj to ios.
* Otherwise, raise TypeError
.
```
It may be better to change the behavior of the numeric argument form
to support multi-byte characters if ios has encoding
information, but it's a different issue.
--
https://bugs.ruby-lang.org/
Unsubscribe: