summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--io.c10
2 files changed, 15 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index dd5cad2..f280506 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun Nov 8 10:55:10 2015 Anton Davydov <antondavydov.o@gmail.com>
+
+ * io.c (rb_io_gets_m): Update IO#gets doc for characters more than
+ 1 byte. [Fix GH-1085]
+
Sun Nov 8 10:37:58 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
* lib/uri/ftp.rb: fix a typo.
diff --git a/io.c b/io.c
index 7932a68..0305386 100644
--- a/io.c
+++ b/io.c
@@ -3291,6 +3291,16 @@ rb_io_gets(VALUE io)
*
* File.new("testfile").gets #=> "This is line one\n"
* $_ #=> "This is line one\n"
+ *
+ * If StringIO contains characters more than 1 byte
+ * then <code>gets(1)</code> returns character entirely:
+ *
+ * # russian characters take 2 bytes
+ * File.write("testfile", "\u{442 435 441 442}")
+ * File.open("testfile") {|f|f.gets(1)} #=> "\u0442"
+ * File.open("testfile") {|f|f.gets(2)} #=> "\u0442"
+ * File.open("testfile") {|f|f.gets(3)} #=> "\u0442\u0435"
+ * File.open("testfile") {|f|f.gets(4)} #=> "\u0442\u0435"
*/
static VALUE