Age | Commit message (Collapse) | Author |
|
reads
(https://github.com/ruby/stringio/pull/95)
[[Bug #20418]](https://bugs.ruby-lang.org/issues/20418)
Ruby IO#read preserves the encoding on partial read, but change it when
reading the whole IO
from commit https://github.com/ruby/ruby/commit/0ca7036682da:
> * io.c (read_all): should associate default external encoding.
> * io.c (io_read): should NOT associate default external encoding.
https://github.com/ruby/stringio/commit/073172da31
Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
|
|
https://github.com/ruby/stringio/commit/0da5b725c8
|
|
https://github.com/ruby/stringio/commit/4e8e82fc30
|
|
[Feature #20390]
https://github.com/ruby/stringio/commit/17ee957f34
Co-authored-by: Jean Boussier <byroot@ruby-lang.org>
|
|
https://github.com/ruby/stringio/commit/779f71359d
|
|
https://github.com/ruby/stringio/commit/9cc1dfa19c
|
|
https://github.com/ruby/stringio/commit/0205bd1c86
|
|
(https://github.com/ruby/stringio/pull/77)
Followup of #79
`rb_str_resize()` was changed by https://github.com/ruby/ruby/commit/b0b9f7201acab05c2a3ad92c3043a1f01df3e17f .
```c
rb_str_resize(string, shorter) // clear ENC_CODERANGE in some case
rb_str_resize(string, longer) // does not clear ENC_CODERANGE anymore
```
```c
// rb_str_resize in string.c
if (slen > len && ENC_CODERANGE(str) != ENC_CODERANGE_7BIT) {
ENC_CODERANGE_CLEAR(str);
}
```
I think this change is based on an assumption that appending null bytes
will not change flag `ascii_only?`.
`strio_extend()` will make the string longer if needed, and update the
flags correctly for appending null bytes.
Before `memmove()`, we need to `rb_str_modify()` because updated flags are not
updated for `memmove()`.
https://github.com/ruby/stringio/commit/b31a538576
|
|
Fix https://bugs.ruby-lang.org/issues/20185
https://github.com/ruby/stringio/commit/8230552a46
|
|
This reverts commit 6a79e53823e328281b9e9eee53cd141af28f8548.
|
|
|
|
https://github.com/ruby/stringio/commit/75da93d48f
|
|
https://github.com/ruby/stringio/commit/a2f8ef1a6a
|
|
(https://github.com/ruby/stringio/pull/69)
The conversion logic is borrowed from ruby/ruby's io.c:
https://github.com/ruby/ruby/blob/40391faeab608665da87a05c686c074f91a5a206/io.c#L4059-L4079
Fix ruby/stringio#68
Reported by IWAMOTO Kouichi. Thanks!!!
https://github.com/ruby/stringio/commit/4b170c1a68
|
|
https://github.com/ruby/stringio/commit/4400bf3380
|
|
(https://github.com/ruby/stringio/pull/67)
Fix: https://github.com/ruby/stringio/issues/66
If length is 0, IO#pread don't even try to read the IO, it simply return
the buffer untouched if there is one or a new empty buffer otherwise.
It also doesn't validate the offset when length is 0.
cc @jdelStrother @kou
https://github.com/ruby/stringio/commit/37e9279337
Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
|
|
(https://github.com/ruby/stringio/pull/65)
https://github.com/ruby/stringio/commit/e3ea087d04
|
|
|
|
Both for being closer to real IOs and also because it's a convenient API
in multithreaded scenarios.
Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
|
|
https://github.com/ruby/stringio/commit/1587d3698e
|
|
(https://github.com/ruby/stringio/pull/54)
We will eventually want to refactor this, but for now this is compatible
enough.
|
|
This reverts commit 18e55fc1e1ec20e8f3166e3059e76c885fc9f8f2.
fix [Bug #19704]
https://bugs.ruby-lang.org/issues/19704
This breaks compatibility for extension libraries. Such changes
need a discussion.
|
|
* Add rb_io_path and rb_io_open_descriptor.
* Use rb_io_open_descriptor to create PTY objects
* Rename FMODE_PREP -> FMODE_EXTERNAL and expose it
FMODE_PREP I believe refers to the concept of a "pre-prepared" file, but
FMODE_EXTERNAL is clearer about what the file descriptor represents and
aligns with language in the IO::Buffer module.
* Ensure that rb_io_open_descriptor closes the FD if it fails
If FMODE_EXTERNAL is not set, then it's guaranteed that Ruby will be
responsible for closing your file, eventually, if you pass it to
rb_io_open_descriptor, even if it raises an exception.
* Rename IS_EXTERNAL_FD -> RUBY_IO_EXTERNAL_P
* Expose `rb_io_closed_p`.
* Add `rb_io_mode` to get IO mode.
---------
Co-authored-by: KJ Tsanaktsidis <ktsanaktsidis@zendesk.com>
Notes:
Merged-By: ioquatix <samuel@codeotaku.com>
|
|
(https://github.com/ruby/stringio/pull/47)
`rb_io_extract_modeenc` has been exported since ruby 2.7.
|
|
http://ci.rvm.jp/results/trunk-asserts@ruby-sp2-docker/4552803
```
verify_internal_consistency_reachable_i: WB miss (O->Y) 0x00007f752ddd5550 [3LM ] strio (StringIO)strio -> 0x00007f752d19b7d0 [0 ] T_STRING (String) len: 8, capa: 15 "to_strio"
<internal:/tmp/ruby/src/trunk-asserts/lib/rubygems/core_ext/kernel_require.rb>:53: [BUG] gc_verify_internal_consistency: found internal inconsistency.
```
https://github.com/ruby/stringio/commit/2e8ab43cba
|
|
https://github.com/ruby/stringio/commit/5d39880f70
|
|
It only has a single reference set in 3 places which
makes it fairly easy to implement.
https://github.com/ruby/stringio/commit/009896b973
|
|
https://github.com/ruby/stringio/commit/60bb320477
|
|
https://github.com/ruby/stringio/commit/a7561f447b
|
|
This reverts commit https://github.com/ruby/stringio/commit/325933500b35.
It is bumped to 3.0.5 in advance but not released yet.
https://github.com/ruby/stringio/commit/af67c36693
|
|
https://github.com/ruby/stringio/commit/325933500b
|
|
https://github.com/ruby/stringio/commit/eb322a9716
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/7025
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6890
|
|
https://github.com/ruby/stringio/commit/e62b9d78d3
|
|
https://github.com/ruby/stringio/commit/5ba853d6ff
|
|
This reverts commit https://github.com/ruby/stringio/commit/aeb7e1a0bde6.
https://github.com/ruby/stringio/commit/003dd0d003
|
|
https://github.com/ruby/stringio/commit/aeb7e1a0bd
|
|
(https://github.com/ruby/stringio/pull/36)
Treats:
- #each_codepoint
- #gets
- #readline (shows up in doc for module IO::generic_readable, not class
StringIO)
- #each_line
https://github.com/ruby/stringio/commit/659aca7fe5
|
|
(https://github.com/ruby/stringio/pull/35)
Treated:
- #getc
- #getbyte
- #ungetc
- #ungetbyte
- #readchar
- #readbyte
- #each_char
https://github.com/ruby/stringio/commit/6400af8d9f
|
|
(https://github.com/ruby/stringio/pull/33)
Treated:
- ::new
- ::open
- #string
- #string=
- #close
- #close_read
- #close_write
- #closed?
- #closed_read?
- #closed_write?
- #eof?
https://github.com/ruby/stringio/commit/be9b64d739
|
|
|
|
Treated:
- #lineno
- #lineno=
- #binmode
- #reopen
- #pos
- #pos=
- #rewind
- #seek
- #sync
- #each_byte
|
|
https://github.com/ruby/stringio/commit/16847fea32
|
|
https://github.com/ruby/stringio/commit/0fe2e0c1e5
|
|
Fix https://github.com/ruby/stringio/pull/16
https://github.com/ruby/stringio/commit/c8a69e80d2
|
|
Try to mirror IO behavior, where chomp takes out the entire paragraph
separators between entries, but does not chomp a single line separator
at the end of the string.
Partially Fixes [Bug #18768]
https://github.com/ruby/stringio/commit/a83ddbb7f0
|
|
https://github.com/ruby/stringio/commit/1edc88587e
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
|
nil separator means no separator at all, so nothing should be
chomped.
Partial fix for Ruby [Bug #18770]
https://github.com/ruby/stringio/commit/feaa2ec631
|
|
Previously, this could result in an infinite loop. Always update
the e pointer in this case, setting w when chomping so the chomped
data is not included in the output.
Fixes [Bug #18769]
https://github.com/ruby/stringio/commit/4bf64d5130
|