| Age | Commit message (Collapse) | Author |
|
When ungetting the string same as the same buffer string, extending
the buffer can move the pointer in the argument. Reported by manun
Manu (manun) at https://hackerone.com/reports/2805165.
https://github.com/ruby/stringio/commit/95c1194832
|
|
[Feature #20205]
Followup: https://github.com/ruby/stringio/pull/94
They no longer need to be special cases. If StringIO end up
mutating a chilled string, a warning will be emitted.
https://github.com/ruby/stringio/commit/dc62d65449
|
|
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>
|
|
[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
|
|
As preparation for https://bugs.ruby-lang.org/issues/20205
making sure the test suite is compatible with frozen string
literals is making things easier.
|
|
https://github.com/ruby/stringio/commit/0205bd1c86
|
|
(https://github.com/ruby/stringio/pull/85)
* Fix compile warnings on latest Java.
* Adjust one test for JRuby erroring on bad pos= value.
* Replace hard JVM synchronization with a spin lock.
* Avoid duplicate reads of state fields where possible.
* Remove long-deprecated codepoints, chars, bytes, lines methods.
* Mark fcntl as not implemented
* Split most of the remaining variable-arity methods.
https://github.com/ruby/stringio/commit/31a9d42e6c
|
|
(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
|
|
(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/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>
|
|
Fixes GH-57
|
|
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/eb322a9716
|
|
https://github.com/ruby/stringio/commit/16847fea32
|
|
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
|
|
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
|
|
https://github.com/ruby/stringio/commit/a35268a3ac
|
|
[Bug #17675] https://bugs.ruby-lang.org/issues/17675
https://github.com/ruby/stringio/commit/1ed61d0cbc
|
|
|
|
https://github.com/ruby/stringio/commit/ee3fec7512
https://github.com/ruby/stringio/commit/18dcd045ef
https://github.com/ruby/stringio/commit/18dcd045ef
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3460
|
|
https://github.com/ruby/stringio/commit/59df1c8293
Notes:
Merged: https://github.com/ruby/ruby/pull/3334
|
|
https://github.com/ruby/stringio/commit/1d28e5c969
Notes:
Merged: https://github.com/ruby/ruby/pull/3334
|
|
As `rb_str_conv_enc()` returns the argument string object itself
unchanged when any conversion failed, check the incompatibility in
that case.
Fixes https://github.com/ruby/stringio/issues/13
https://github.com/ruby/stringio/commit/ede6bdcc71
Notes:
Merged: https://github.com/ruby/ruby/pull/3334
|
|
[Bug #16497]
https://github.com/ruby/stringio/commit/4958a5ccab
|
|
Ruby 2.7 deprecates taint and it no longer has an effect.
The lack of taint support should not cause a problem in
previous Ruby versions.
https://github.com/ruby/stringio/commit/60ee9ccd95
|
|
`8 * RbConfig::SIZEOF` ... is not straight.
|
|
https://github.com/ruby/stringio/commit/b249631c43
|
|
https://github.com/ruby/stringio/commit/7b20075ab0
|
|
|
|
* string.c: String#setbyte to accept arbitrary integers [Bug #15460]
* io.c: ditto for IO#ungetbyte
* ext/strringio/stringio.c: ditto for StringIO#ungetbyte
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
see r65802 and [Bug #14359]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66760 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
They should work separatedly from Ruby core repository.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
FrozenError will be used instead of RuntimeError for exceptions
raised when there is an attempt to modify a frozen object. The
reason for this change is to differentiate exceptions related
to frozen objects from generic exceptions such as those generated
by Kernel#raise without an exception class.
From: Jeremy Evans <code@jeremyevans.net>
Signed-off-by: Urabe Shyouhei <shyouhei@ruby-lang.org>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61131 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* ext/stringio/stringio.c (strio_write_m): make StringIO#write
accept multiple arguments, as well as IO#write.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* ext/stringio/stringio.c (strio_gets): should return string with
the external encoding, at empty chomped result .
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59582 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* ext/stringio/stringio.c (strio_gets): should return string with
the external encoding, at empty result.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59581 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* ext/stringio/stringio.c (strio_read): should return string with
the external encoding, at EOF too.
[ruby-core:82349] [Bug #13806]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* test/stringio/test_stringio.rb (test_read): add assertions
of return value of read with a buffer string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* ext/stringio/stringio.c (strio_ungetc): raise RangeError instead
of TypeError at too big value, as well as IO#ungetc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* ext/stringio/stringio.c (strio_ungetc): check if the character
code is valid in the encoding. reported by Ahmad Sherif
(ahmadsherif) at https://hackerone.com/reports/209593.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58040 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* ext/stringio/stringio.c (strio_getline): chomp CR not only LF,
as well as String#chomp.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57043 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* ext/stringio/stringio.c (strio_getline): implement chomp option.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* test/stringio/test_stringio.rb (test_gets, test_each):
assertions for paragraph mode.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* ext/stringio/stringio.c (strio_seek): Avoid signed integer overflow.
It's not harmful in practice here, but is still undefined behavior.
* ext/stringio/stringio.c (strio_extend): Check that the new length does
not exceed LONG_MAX. This fixes the invalid write on the overflow.
* test/stringio/test_stringio.rb (test_write_integer_overflow): Add a
test case for the above fix in strio_extend().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
They may fail parallel test-all
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55602 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|