aboutsummaryrefslogtreecommitdiffstats
path: root/io.c
diff options
context:
space:
mode:
authorAlan Wu <XrXr@users.noreply.github.com>2022-12-22 13:15:04 -0500
committerGitHub <noreply@github.com>2022-12-22 13:15:04 -0500
commit98675ac09cf7bc204b708faea1874b0b0610f309 (patch)
tree1e74425765efa10deeca2c32b68c8f29431c3d25 /io.c
parentbba2bfc97512014134ea1c172e7a077bddebdbad (diff)
downloadruby-98675ac09cf7bc204b708faea1874b0b0610f309.tar.gz
[DOC] IO#read doesn't always read in binary mode
When `maxlen` is `nil`, it uses the data mode of the stream. For example in the following: ```ruby File.binwrite("a.txt", "\r\n\r") p File.open("a.txt", "rt").read # "\n\n" p File.open("a.txt", "rt").read(3) # "\r\n\r" ``` Note, this newline translation is _not_ specific to Windows.
Diffstat (limited to 'io.c')
-rw-r--r--io.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/io.c b/io.c
index 1c47a6dcbb..ffca78ac2b 100644
--- a/io.c
+++ b/io.c
@@ -3679,13 +3679,11 @@ io_write_nonblock(rb_execution_context_t *ec, VALUE io, VALUE str, VALUE ex)
* call-seq:
* read(maxlen = nil, out_string = nil) -> new_string, out_string, or nil
*
- * Reads bytes from the stream, (in binary mode);
- * the stream must be opened for reading
+ * Reads bytes from the stream; the stream must be opened for reading
* (see {Access Modes}[rdoc-ref:File@Access+Modes]):
*
- * - If +maxlen+ is +nil+, reads all bytes.
- * - Otherwise reads +maxlen+ bytes, if available.
- * - Otherwise reads all bytes.
+ * - If +maxlen+ is +nil+, reads all bytes using the stream's data mode.
+ * - Otherwise reads up to +maxlen+ bytes in binary mode.
*
* Returns a string (either a new string or the given +out_string+)
* containing the bytes read.