diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-07-04 06:32:44 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-07-04 06:32:44 +0000 |
commit | 72194a89dac3eb5dcfe47e23eebf61acdd77d056 (patch) | |
tree | cfa8fba1d28dade1455d703a3f98f693cecab720 /string.c | |
parent | 5e294b78204a2077d5c40d84b666b9aee39c8216 (diff) | |
download | ruby-72194a89dac3eb5dcfe47e23eebf61acdd77d056.tar.gz |
string.c: rb_fstring_new assumes US-ASCII
* string.c (rb_fstring_new): make US-ASCII string. another
function may be used for non-ASCII strings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r-- | string.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -226,11 +226,13 @@ rb_fstring(VALUE str) } static VALUE -setup_fake_str(struct RString *fake_str, const char *name, long len) +setup_fake_str(struct RString *fake_str, const char *name, long len, int encidx) { fake_str->basic.flags = T_STRING|RSTRING_NOEMBED|ELTS_SHARED; /* SHARED to be allocated by the callback */ + ENCODING_SET_INLINED((VALUE)fake_str, encidx); + RBASIC_SET_CLASS((VALUE)fake_str, rb_cString); fake_str->as.heap.len = len; fake_str->as.heap.ptr = (char *)name; @@ -242,8 +244,7 @@ VALUE rb_fstring_new(const char *ptr, long len) { struct RString fake_str; - - return rb_fstring(setup_fake_str(&fake_str, ptr, len)); + return rb_fstring(setup_fake_str(&fake_str, ptr, len, ENCINDEX_US_ASCII)); } static int |