diff options
Diffstat (limited to 'spec/ruby/optional/capi/ext/string_spec.c')
-rw-r--r-- | spec/ruby/optional/capi/ext/string_spec.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/spec/ruby/optional/capi/ext/string_spec.c b/spec/ruby/optional/capi/ext/string_spec.c index 0568b42212..929d69f9e5 100644 --- a/spec/ruby/optional/capi/ext/string_spec.c +++ b/spec/ruby/optional/capi/ext/string_spec.c @@ -181,6 +181,10 @@ VALUE string_spec_rb_str_length(VALUE self, VALUE str) { VALUE string_spec_rb_str_new(VALUE self, VALUE str, VALUE len) { return rb_str_new(RSTRING_PTR(str), FIX2INT(len)); } + +VALUE string_spec_rb_str_new_offset(VALUE self, VALUE str, VALUE offset, VALUE len) { + return rb_str_new(RSTRING_PTR(str) + FIX2INT(offset), FIX2INT(len)); +} #endif #ifdef HAVE_RB_STR_NEW2 @@ -370,6 +374,13 @@ VALUE string_spec_StringValue(VALUE self, VALUE str) { } #endif +#ifdef HAVE_SAFE_STRING_VALUE +static VALUE string_spec_SafeStringValue(VALUE self, VALUE str) { + SafeStringValue(str); + return str; +} +#endif + #ifdef HAVE_RB_STR_HASH static VALUE string_spec_rb_str_hash(VALUE self, VALUE str) { st_index_t val = rb_str_hash(str); @@ -529,6 +540,7 @@ void Init_string_spec(void) { #ifdef HAVE_RB_STR_NEW rb_define_method(cls, "rb_str_new", string_spec_rb_str_new, 2); + rb_define_method(cls, "rb_str_new_offset", string_spec_rb_str_new_offset, 3); #endif #ifdef HAVE_RB_STR_NEW2 @@ -639,6 +651,10 @@ void Init_string_spec(void) { rb_define_method(cls, "StringValue", string_spec_StringValue, 1); #endif +#ifdef HAVE_SAFE_STRING_VALUE + rb_define_method(cls, "SafeStringValue", string_spec_SafeStringValue, 1); +#endif + #ifdef HAVE_RB_STR_HASH rb_define_method(cls, "rb_str_hash", string_spec_rb_str_hash, 1); #endif |