| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
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/8522c90e4b
|
|
|
|
| |
https://github.com/ruby/stringio/commit/9cc1dfa19c
|
|
|
|
| |
https://github.com/ruby/stringio/commit/5dd52d4aec
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
* Before this it was compiled but not used, because TruffleRuby has
a stringio.rb in stdlib and .rb has precedence over .so.
In fact that extension never worked on TruffleRuby,
because rb_io_extract_modeenc() has never been defined on TruffleRuby.
* So this just skip compiling the extension since compilation of it now fails:
https://github.com/ruby/openssl/issues/699
https://github.com/ruby/stringio/commit/d791b63df6
|
|
|
|
| |
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/commit/3f90a0d619
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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>
|
|
|
|
|
|
| |
(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
|
|
|
|
|
|
|
|
|
| |
Split `PACKED_STRUCT` and `PACKED_STRUCT_UNALIGNED` macros into the
macros bellow:
* `RBIMPL_ATTR_PACKED_STRUCT_BEGIN`
* `RBIMPL_ATTR_PACKED_STRUCT_END`
* `RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_BEGIN`
* `RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_END`
|
|
|
|
| |
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
|
| |
|
| |
|
|
|
|
| |
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
|