summaryrefslogtreecommitdiff
path: root/ext/stringio
AgeCommit message (Collapse)Author
2024-06-04merge revision(s) f54369830f83a65fb54916d762883fbe6eeb7d0b, ↵Takashi Kokubun
338eb0065bd81ba8ae8b9402abc94804a24594cc, ac636f5709feb1d9d7a0c46a86be153be765cf21: [Backport #20516] Revert "Rollback to released version numbers of stringio and strscan" This reverts commit 6a79e53823e328281b9e9eee53cd141af28f8548. [ruby/strscan] StringScanner#captures: Return nil not "" for unmached capture (https://github.com/ruby/strscan/pull/72) fix https://github.com/ruby/strscan/issues/70 If there is no substring matching the group (s[3]), the behavior is different. If there is no substring matching the group, the corresponding element (s[3]) should be nil. ``` s = StringScanner.new('foobarbaz') #=> #<StringScanner 0/9 @ "fooba..."> s.scan /(foo)(bar)(BAZ)?/ #=> "foobar" s[0] #=> "foobar" s[1] #=> "foo" s[2] #=> "bar" s[3] #=> nil s.captures #=> ["foo", "bar", ""] s.captures.compact #=> ["foo", "bar", ""] ``` ``` s = StringScanner.new('foobarbaz') #=> #<StringScanner 0/9 @ "fooba..."> s.scan /(foo)(bar)(BAZ)?/ #=> "foobar" s[0] #=> "foobar" s[1] #=> "foo" s[2] #=> "bar" s[3] #=> nil s.captures #=> ["foo", "bar", nil] s.captures.compact #=> ["foo", "bar"] ``` https://docs.ruby-lang.org/ja/latest/method/MatchData/i/captures.html ``` /(foo)(bar)(BAZ)?/ =~ "foobarbaz" #=> 0 $~.to_a #=> ["foobar", "foo", "bar", nil] $~.captures #=> ["foo", "bar", nil] $~.captures.compact #=> ["foo", "bar"] ``` * StringScanner#captures is not yet documented. https://docs.ruby-lang.org/ja/latest/class/StringScanner.html https://github.com/ruby/strscan/commit/1fbfdd3c6f [ruby/strscan] Bump version https://github.com/ruby/strscan/commit/d6f97ec102
2023-12-16Rollback to released version numbers of stringio and strscanHiroshi SHIBATA
2023-11-28[ruby/stringio] Development of 3.1.1 started.Sutou Kouhei
https://github.com/ruby/stringio/commit/75da93d48f
2023-11-27[ruby/stringio] Do not compile the C extension on TruffleRubyBenoit Daloze
* 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
2023-11-08[ruby/stringio] Development of 3.1.0 started.Sutou Kouhei
https://github.com/ruby/stringio/commit/a2f8ef1a6a
2023-11-08[ruby/stringio] Add missing row separator encoding conversionSutou Kouhei
(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
2023-11-04[ruby/stringio] Make STRINGIO_VERSION uniformNobuyoshi Nakada
https://github.com/ruby/stringio/commit/4400bf3380
2023-11-04[ruby/stringio] Move Java version to Java directoryNobuyoshi Nakada
https://github.com/ruby/stringio/commit/3f90a0d619
2023-10-05[ruby/stringio] StringIO#pread: handle 0 length like IO#preadJean byroot Boussier
(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>
2023-09-22[ruby/stringio] [DOC] Fix linkBurdette Lamar
(https://github.com/ruby/stringio/pull/65) https://github.com/ruby/stringio/commit/e3ea087d04
2023-08-29Development of 3.0.9 started.Sutou Kouhei
2023-08-02Implement StringIO#pread (#56)Jean byroot Boussier
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>
2023-06-02[ruby/stringio] Development of 3.0.8 started.Hiroshi SHIBATA
https://github.com/ruby/stringio/commit/1587d3698e
2023-06-01[ruby/stringio] Avoid direct struct usage.Samuel Williams
(https://github.com/ruby/stringio/pull/54) We will eventually want to refactor this, but for now this is compatible enough.
2023-06-01Revert "Hide most of the implementation of `struct rb_io`. (#6511)"NARUSE, Yui
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.
2023-05-30Hide most of the implementation of `struct rb_io`. (#6511)Samuel Williams
* 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>
2023-05-08[ruby/stringio] Drop support for ruby 2.6 or earlierNobuyoshi Nakada
(https://github.com/ruby/stringio/pull/47) `rb_io_extract_modeenc` has been exported since ruby 2.7.
2023-05-03[ruby/stringio] Update write-barrier at copyingNobuyoshi Nakada
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
2023-04-14[ruby/stringio] Development of 3.0.7 started.Sutou Kouhei
https://github.com/ruby/stringio/commit/5d39880f70
2023-02-28Update the depend filesMatt Valentine-House
Notes: Merged: https://github.com/ruby/ruby/pull/7310
2023-02-28[ruby/stringio] Implement write barrier on StringIOJean Boussier
It only has a single reference set in 3 places which makes it fairly easy to implement. https://github.com/ruby/stringio/commit/009896b973
2023-02-27Remove intern/gc.h from Make depsMatt Valentine-House
Notes: Merged: https://github.com/ruby/ruby/pull/7330
2023-02-25[ruby/stringio] Remove (newly unneeded) remarks about aliasesBurdetteLamar
https://github.com/ruby/stringio/commit/60bb320477
2023-02-08Extract include/ruby/internal/attr/packed_struct.hNobuyoshi Nakada
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` Notes: Merged: https://github.com/ruby/ruby/pull/7268
2023-02-03[ruby/stringio] Development of 3.0.6 started.Nobuyoshi Nakada
https://github.com/ruby/stringio/commit/a7561f447b
2023-02-02[ruby/stringio] Revert "bump up to 3.0.6" [ci skip]Nobuyoshi Nakada
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
2023-02-02[ruby/stringio] bump up to 3.0.6Nobuyoshi Nakada
https://github.com/ruby/stringio/commit/325933500b
2023-01-28[ruby/stringio] [Bug #19389] Fix chomping with longer separatorNobuyoshi Nakada
https://github.com/ruby/stringio/commit/eb322a9716
2022-12-26bump up to 3.0.5Sutou Kouhei
Notes: Merged: https://github.com/ruby/ruby/pull/7025
2022-12-09Merge stringio-3.0.4Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/6890
2022-12-08[ruby/stringio] bump up to 3.0.5Sutou Kouhei
https://github.com/ruby/stringio/commit/e62b9d78d3
2022-12-08[ruby/stringio] bump up to 3.0.4Sutou Kouhei
https://github.com/ruby/stringio/commit/5ba853d6ff
2022-12-05[ruby/stringio] Revert "Bump version to 3.0.4"Hiroshi SHIBATA
This reverts commit https://github.com/ruby/stringio/commit/aeb7e1a0bde6. https://github.com/ruby/stringio/commit/003dd0d003
2022-12-05[ruby/stringio] Bump version to 3.0.4Hiroshi SHIBATA
https://github.com/ruby/stringio/commit/aeb7e1a0bd
2022-10-21[ruby/stringio] [DOC] Enhanced RDoc for StringIOBurdette Lamar
(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
2022-10-19[ruby/stringio] [DOC] Enhanced RDoc for StringIOBurdette Lamar
(https://github.com/ruby/stringio/pull/35) Treated: - #getc - #getbyte - #ungetc - #ungetbyte - #readchar - #readbyte - #each_char https://github.com/ruby/stringio/commit/6400af8d9f
2022-10-19[ruby/stringio] [DOC] StringIO doc enhancementsBurdette Lamar
(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
2022-10-19[DOC] Fix rdoc-refNobuyoshi Nakada
2022-10-18[DOC] Enhanced RDoc for StringIO (#34)Burdette Lamar
Treated: - #lineno - #lineno= - #binmode - #reopen - #pos - #pos= - #rewind - #seek - #sync - #each_byte
2022-07-01[ruby/stringio] Fix the result of `StringIO#truncate` so compatible with `File`Nobuyoshi Nakada
https://github.com/ruby/stringio/commit/16847fea32
2022-05-30[ruby/stringio] Fix extracting encoding names in the fallback codeNobuyoshi Nakada
https://github.com/ruby/stringio/commit/0fe2e0c1e5
2022-05-30[ruby/stringio] Accept external and internal encodings pairNobuyoshi Nakada
Fix https://github.com/ruby/stringio/pull/16 https://github.com/ruby/stringio/commit/c8a69e80d2
2022-05-30[ruby/stringio] Fix handling of chomp with paragraph separatorJeremy Evans
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
2022-05-30[ruby/stringio] Update ext/stringio/stringio.cJeremy Evans
https://github.com/ruby/stringio/commit/1edc88587e Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2022-05-30[ruby/stringio] Ignore chomp keyword for nil separatorJeremy Evans
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
2022-05-30[ruby/stringio] Fix each with multiple character string and chompJeremy Evans
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
2022-05-30[ruby/stringio] Fix expanding size at ungetc/ungetbyteNobuyoshi Nakada
https://github.com/ruby/stringio/commit/a35268a3ac
2022-05-20Merge JRuby implementation for stringio and io-waitHiroshi SHIBATA
2022-05-09[ruby/stringio] bump up to 3.0.3Sutou Kouhei
https://github.com/ruby/stringio/commit/64f225bf00
2022-05-09[ruby/stringio] Bump versionSutou Kouhei
https://github.com/ruby/stringio/commit/b79152d08f