summaryrefslogtreecommitdiff
path: root/string.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-09-18 14:51:08 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-09-18 14:51:08 +0000
commit1495c2f8e9ddaae20665926506705c69231e5b38 (patch)
tree6ab524ad75c135e898bdbb27ba7f77cb3cff2a8f /string.c
parentc825eee9ea12cb3557dbba37ef78672265c0bdc3 (diff)
string.c: UTF-8 string function
* string.c (rb_utf8_str_new, rb_utf8_str_new_cstr): make UTF-8 string. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47625 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r--string.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/string.c b/string.c
index 05e4e802cd..9c562ff78d 100644
--- a/string.c
+++ b/string.c
@@ -34,6 +34,7 @@
#undef rb_str_new_cstr
#undef rb_tainted_str_new_cstr
#undef rb_usascii_str_new_cstr
+#undef rb_utf8_str_new_cstr
#undef rb_enc_str_new_cstr
#undef rb_external_str_new_cstr
#undef rb_locale_str_new_cstr
@@ -589,6 +590,14 @@ rb_usascii_str_new(const char *ptr, long len)
}
VALUE
+rb_utf8_str_new(const char *ptr, long len)
+{
+ VALUE str = str_new(rb_cString, ptr, len);
+ rb_enc_associate_index(str, rb_utf8_encindex());
+ return str;
+}
+
+VALUE
rb_enc_str_new(const char *ptr, long len, rb_encoding *enc)
{
VALUE str;
@@ -616,6 +625,14 @@ rb_usascii_str_new_cstr(const char *ptr)
}
VALUE
+rb_utf8_str_new_cstr(const char *ptr)
+{
+ VALUE str = rb_str_new_cstr(ptr);
+ rb_enc_associate_index(str, rb_utf8_encindex());
+ return str;
+}
+
+VALUE
rb_enc_str_new_cstr(const char *ptr, rb_encoding *enc)
{
must_not_null(ptr);