[ruby-core:82019] [Ruby trunk Bug#13741] A documentation bug of IO#putc

From: shugo@...
Date: 2017-07-13 03:17:19 UTC
List: ruby-core #82019
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 <i>obj</i> is <code>Numeric</code>, write the character whose code is
 *  the least-significant byte of <i>obj</i>, otherwise write the first byte
 *  of the string representation of <i>obj</i> to <em>ios</em>. 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 <i>obj</i> is <code>Numeric</code>, write the character whose code is
 *  the least-significant byte of <i>obj</i>.
 *  If <i>obj</i> is <code>String</code>, write the first character
 *  of <i>obj</i> to <em>ios</em>.
 *  Otherwise, raise <code>TypeError</code>.
```

It may be better to change the behavior of the numeric argument form
to support multi-byte characters if <em>ios</em> has encoding
information, but it's a different issue.




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