266 Commits

Author SHA1 Message Date
Nobuyoshi Nakada
89d9547800 [ruby/stringio] Revert "bump up to 3.0.6" [ci skip]
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 12:44:53 +00:00
Nobuyoshi Nakada
8087ba736e [ruby/stringio] bump up to 3.0.6
https://github.com/ruby/stringio/commit/325933500b
2023-02-02 04:44:38 +00:00
Nobuyoshi Nakada
21dced8b01 [ruby/stringio] [Bug #19389] Fix chomping with longer separator
https://github.com/ruby/stringio/commit/eb322a9716
2023-01-28 13:00:08 +00:00
Sutou Kouhei
10c9ce9d4c bump up to 3.0.5 2022-12-26 15:09:21 +09:00
Hiroshi SHIBATA
7d04cddfef Merge stringio-3.0.4 2022-12-09 16:36:22 +09:00
Sutou Kouhei
8bbf4e5d8d [ruby/stringio] bump up to 3.0.5
https://github.com/ruby/stringio/commit/e62b9d78d3
2022-12-08 20:58:53 +00:00
Sutou Kouhei
b9d055d760 [ruby/stringio] bump up to 3.0.4
https://github.com/ruby/stringio/commit/5ba853d6ff
2022-12-08 05:12:15 +00:00
Hiroshi SHIBATA
faafb7b740 [ruby/stringio] Revert "Bump version to 3.0.4"
This reverts commit https://github.com/ruby/stringio/commit/aeb7e1a0bde6.

https://github.com/ruby/stringio/commit/003dd0d003
2022-12-05 08:03:29 +00:00
Hiroshi SHIBATA
95e272baf8 [ruby/stringio] Bump version to 3.0.4
https://github.com/ruby/stringio/commit/aeb7e1a0bd
2022-12-05 08:02:25 +00:00
Burdette Lamar
35e03a44b8 [ruby/stringio] [DOC] Enhanced RDoc for StringIO
(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-21 14:12:45 +00:00
Burdette Lamar
c32180d5ce [ruby/stringio] [DOC] Enhanced RDoc for StringIO
(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 15:33:08 +00:00
Burdette Lamar
18b96d8a82 [ruby/stringio] [DOC] StringIO doc enhancements
(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 09:12:18 +09:00
Nobuyoshi Nakada
01d56b99bf
[DOC] Fix rdoc-ref 2022-10-19 08:52:29 +09:00
Burdette Lamar
6bd72a6406 [DOC] Enhanced RDoc for StringIO (#34)
Treated:
- #lineno
- #lineno=
- #binmode
- #reopen
- #pos
- #pos=
- #rewind
- #seek
- #sync
- #each_byte
2022-10-18 18:41:00 +00:00
Nobuyoshi Nakada
302f353fd9 [ruby/stringio] Fix the result of StringIO#truncate so compatible with File
https://github.com/ruby/stringio/commit/16847fea32
2022-07-01 00:52:29 +09:00
Nobuyoshi Nakada
7976142791 [ruby/stringio] Fix extracting encoding names in the fallback code
https://github.com/ruby/stringio/commit/0fe2e0c1e5
2022-05-30 14:48:45 +09:00
Nobuyoshi Nakada
d3e986d9ab [ruby/stringio] Accept external and internal encodings pair
Fix https://github.com/ruby/stringio/pull/16

https://github.com/ruby/stringio/commit/c8a69e80d2
2022-05-30 14:48:44 +09:00
Jeremy Evans
609d73e892 [ruby/stringio] Fix handling of chomp with paragraph separator
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 13:10:46 +09:00
Jeremy Evans
7e3920f0d9 [ruby/stringio] Update ext/stringio/stringio.c
https://github.com/ruby/stringio/commit/1edc88587e

Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2022-05-30 13:01:18 +09:00
Jeremy Evans
adaaf12857 [ruby/stringio] Ignore chomp keyword for nil separator
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 13:01:17 +09:00
Jeremy Evans
1f82269f4e [ruby/stringio] Fix each with multiple character string and chomp
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 12:55:47 +09:00
Nobuyoshi Nakada
bb6357cddd [ruby/stringio] Fix expanding size at ungetc/ungetbyte
https://github.com/ruby/stringio/commit/a35268a3ac
2022-05-30 12:51:37 +09:00
Sutou Kouhei
30632efeaa [ruby/stringio] bump up to 3.0.3
https://github.com/ruby/stringio/commit/64f225bf00
2022-05-09 16:47:28 +09:00
Sutou Kouhei
fbbe7ac7e3 [ruby/stringio] Bump version
https://github.com/ruby/stringio/commit/b79152d08f
2022-05-09 16:36:01 +09:00
Sutou Kouhei
2aca566a10 [ruby/stringio] bump up to 3.0.2.pre1
https://github.com/ruby/stringio/commit/14ec9bc193
2022-04-16 06:34:31 +09:00
Hiroshi SHIBATA
8eb8522f47 [ruby/stringio] Bump up stringio version to 3.0.1
https://github.com/ruby/stringio/commit/f7c40aa339
2021-10-21 20:53:53 +09:00
Nobuyoshi Nakada
771f6dd75d
[ruby/stringio] Suppress a sign-compare warning
https://github.com/ruby/stringio/commit/a88c070e0b
2021-07-08 16:43:22 +09:00
Nobuyoshi Nakada
32a13591e0
[ruby/stringio] Check if closed in loop
[Bug #17675] https://bugs.ruby-lang.org/issues/17675

https://github.com/ruby/stringio/commit/1ed61d0cbc
2021-03-08 10:13:29 +09:00
Nobuyoshi Nakada
8918a9cf6c Removed rb_cData entity
* Use the wrapper of rb_cObject instead of data access
* Replaced rest of extentions
* Updated the version guard for Data
* Added the version guard of rb_cData
2020-12-22 02:51:49 +09:00
Kenta Murata
c71934f8a5
[stringio] Version 3.0.0
https://github.com/ruby/stringio/commit/831be01071
2020-12-18 22:00:07 +09:00
Kenta Murata
3d31944129
[stringio] Make stringio Ractor safe
https://github.com/ruby/stringio/commit/ee3fec7512
https://github.com/ruby/stringio/commit/18dcd045ef
https://github.com/ruby/stringio/commit/18dcd045ef
2020-12-18 22:00:07 +09:00
卜部昌平
43b95bafd5
delete deprecated IO-like methods
This commit deletes
{IO,ARGF,StringIO,Zib::GZipReader}#{bytes,chars,lines,codepoints}, which
have been deprecated since c47c095b9740e7c19d6fdca29ab661c1089221d4.

Note that String also has those methods.  They are neither depreacted
nor deleted because they are not aliases of counterpart each_something.
2020-12-03 12:47:51 +09:00
Nobuyoshi Nakada
280d028125 [ruby/stringio] Bump version to 0.1.4
https://github.com/ruby/stringio/commit/64f2360d38
2020-08-27 23:55:17 +09:00
Yoann Lecuyer
b3c1c767ea [stringio] fix stringio codepoint enumerator off by one error 2020-08-27 23:41:22 +09:00
Nobuyoshi Nakada
16daee1c75 [ruby/stringio] Bump version to 0.1.3
https://github.com/ruby/stringio/commit/376516cd2d
2020-07-20 14:59:19 +09:00
Nobuyoshi Nakada
ddb2acbba6 [ruby/stringio] No compatibility check in US-ASCII case
https://github.com/ruby/stringio/commit/59df1c8293
2020-07-20 14:59:19 +09:00
Nobuyoshi Nakada
a7c67fc6da [ruby/stringio] Removed wrong UNREACHABLE
https://github.com/ruby/stringio/commit/f528538d10
2020-07-20 14:59:19 +09:00
Nobuyoshi Nakada
574871781b [ruby/stringio] Bump version to 0.1.2
https://github.com/ruby/stringio/commit/8cbe3f7397
2020-07-20 14:59:19 +09:00
Nobuyoshi Nakada
6ff9604f85 [ruby/stringio] Raise an error if encoding conversion not succeeded
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
2020-07-20 14:59:19 +09:00
Kenta Murata
f4f157fc81
Suppress warnings no inline ruby debug (#3107)
* Suppress unused warnings occurred due to -fno-inline

* Suppress warning occurred due to RUBY_DEBUG=1
2020-05-22 13:49:08 +09:00
Nobuyoshi Nakada
a8ced388fd [ruby/stringio] Bump version to 0.1.1
https://github.com/ruby/stringio/commit/05d75e5e66
2020-03-15 22:13:23 +09:00
Jean Boussier
e257c08f2e
[ruby/stringio] StringIO#initialize default to the source string encoding
[Bug #16497]

https://github.com/ruby/stringio/commit/4958a5ccab
2020-03-15 18:43:01 +09:00
Hiroshi SHIBATA
af4b3f16ce [ruby/stringio] Bump version to 0.1.0
https://github.com/ruby/stringio/commit/4c1e267e1a
2019-11-30 15:39:56 +09:00
Jeremy Evans
ebc884461b
[ruby/stringio] Remove taint support
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
2019-10-31 16:24:02 +09:00
zverok
2746fd5d50 Update StringIO docs:
* More explanations/examples in class docs;
* Fix links to other methods (remove <code> tag);
* Fix wording of method docs (remove *stringio*
  receiver name, as it is not rendered by modern
  RDoc);
* Add  option mention to linereading
  methods (added in 2.4);
* Several other small fixes.
2019-10-26 10:24:20 -07:00
Nobuyoshi Nakada
f6f03dcad6 [ruby/stringio] Bump up the version
https://github.com/ruby/stringio/commit/f0e5027279
2019-09-29 18:55:34 +09:00
Nobuyoshi Nakada
7fe253f47f [ruby/stringio] Use rb_funcallv_kw when delegating arguments
https://github.com/ruby/stringio/commit/5892663e32
2019-09-29 18:55:32 +09:00
Nobuyoshi Nakada
68ab4a5e35 [ruby/stringio] Replaced rb_funcall2 with rb_funcallv
https://github.com/ruby/stringio/commit/a37ab7c419
2019-09-29 18:55:30 +09:00
Jeremy Evans
80b5a0ff2a
Make rb_scan_args handle keywords more similar to Ruby methods (#2460)
Cfuncs that use rb_scan_args with the : entry suffer similar keyword
argument separation issues that Ruby methods suffer if the cfuncs
accept optional or variable arguments.

This makes the following changes to : handling.

* Treats as **kw, prompting keyword argument separation warnings
  if called with a positional hash.

* Do not look for an option hash if empty keywords are provided.
  For backwards compatibility, treat an empty keyword splat as a empty
  mandatory positional hash argument, but emit a a warning, as this
  behavior will be removed in Ruby 3.  The argument number check
  needs to be moved lower so it can correctly handle an empty
  positional argument being added.

* If the last argument is nil and it is necessary to treat it as an option
  hash in order to make sure all arguments are processed, continue to
  treat the last argument as the option hash. Emit a warning in this case,
  as this behavior will be removed in Ruby 3.

* If splitting the keyword hash into two hashes, issue a warning, as we
  will not be splitting hashes in Ruby 3.

* If the keyword argument is required to fill a mandatory positional
  argument, continue to do so, but emit a warning as this behavior will
  be going away in Ruby 3.

* If keyword arguments are provided and the last argument is not a hash,
  that indicates something wrong. This can happen if a cfunc is calling
  rb_scan_args multiple times, and providing arguments that were not
  passed to it from Ruby.  Callers need to switch to the new
  rb_scan_args_kw function, which allows passing of whether keywords
  were provided.

This commit fixes all warnings caused by the changes above.

It switches some function calls to *_kw versions with appropriate
kw_splat flags. If delegating arguments, RB_PASS_CALLED_KEYWORDS
is used.  If creating new arguments, RB_PASS_KEYWORDS is used if
the last argument is a hash to be treated as keywords.

In open_key_args in io.c, use rb_scan_args_kw.
In this case, the arguments provided come from another C
function, not Ruby.  The last argument may or may not be a hash,
so we can't set keyword argument mode.  However, if it is a
hash, we don't want to warn when treating it as keywords.

In Ruby files, make sure to appropriately use keyword splats
or literal keywords when calling Cfuncs that now issue keyword
argument separation warnings through rb_scan_args.  Also, make
sure not to pass nil in place of an option hash.

Work around Kernel#warn warnings due to problems in the Rubygems
override of the method.  There is an open pull request to fix
these issues in Rubygems, but part of the Rubygems tests for
their override fail on ruby-head due to rb_scan_args not
recognizing empty keyword splats, which this commit fixes.

Implementation wise, adding rb_scan_args_kw is kind of a pain,
because rb_scan_args takes a variable number of arguments.
In order to not duplicate all the code, the function internals need
to be split into two functions taking a va_list, and to avoid passing
in a ton of arguments, a single struct argument is used to handle
the variables previously local to the function.
2019-09-25 11:18:49 -07:00
Nobuyoshi Nakada
2e28b3678f [ruby/stringio] Fixed a typo
b249631c43 (commitcomment-34804150)

https://github.com/ruby/stringio/commit/998d6257fb
2019-08-23 20:52:53 +09:00