1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Expose the rb_interned_str_* family of functions

Fixes [Feature #13381]
This commit is contained in:
Jean Boussier 2020-09-25 14:46:59 +02:00 committed by Koichi Sasada
parent 68ffc8db08
commit ef19fb111a
Notes: git 2020-11-17 09:39:50 +09:00
3 changed files with 35 additions and 0 deletions

View file

@ -127,6 +127,8 @@ void rb_enc_copy(VALUE dst, VALUE src);
VALUE rb_enc_str_new(const char*, long, rb_encoding*);
VALUE rb_enc_str_new_cstr(const char*, rb_encoding*);
VALUE rb_enc_str_new_static(const char*, long, rb_encoding*);
VALUE rb_enc_interned_str(const char *, long, rb_encoding *);
VALUE rb_enc_interned_str_cstr(const char *, rb_encoding *);
VALUE rb_enc_reg_new(const char*, long, rb_encoding*, int);
PRINTF_ARGS(VALUE rb_enc_sprintf(rb_encoding *, const char*, ...), 2, 3);
VALUE rb_enc_vsprintf(rb_encoding *, const char*, va_list);

View file

@ -74,6 +74,9 @@ VALUE rb_utf8_str_new_cstr(const char*);
VALUE rb_str_new_static(const char *ptr, long len);
VALUE rb_usascii_str_new_static(const char *ptr, long len);
VALUE rb_utf8_str_new_static(const char *ptr, long len);
VALUE rb_str_to_interned_str(VALUE);
VALUE rb_interned_str(const char *, long);
VALUE rb_interned_str_cstr(const char *);
void rb_str_free(VALUE);
void rb_str_shared_replace(VALUE, VALUE);
VALUE rb_str_buf_append(VALUE, VALUE);

View file

@ -11402,6 +11402,36 @@ sym_all_symbols(VALUE _)
return rb_sym_all_symbols();
}
VALUE
rb_str_to_interned_str(VALUE str)
{
return rb_fstring(str);
}
VALUE
rb_interned_str(const char *ptr, long len)
{
return rb_fstring_new(ptr, len);
}
VALUE
rb_interned_str_cstr(const char *ptr)
{
return rb_fstring_cstr(ptr);
}
VALUE
rb_enc_interned_str(const char *ptr, long len, rb_encoding *enc)
{
return rb_fstring_enc_new(ptr, len, enc);
}
VALUE
rb_enc_interned_str_cstr(const char *ptr, rb_encoding *enc)
{
return rb_fstring_enc_new(ptr, strlen(ptr), enc);
}
/*
* A String object holds and manipulates an arbitrary sequence of
* bytes, typically representing characters. String objects may be created