mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* string.c (rb_enc_str_copy): added for wrapper for rb_enc_copy.
this also copy coderange when ptr and len is equal. * string.c (rb_enc_cr_str_copy): added for wrapper for rb_enc_copy. this always copy coderange. * string.c (str_replace_shared): use rb_enc_str_copy. * string.c (str_new3): don't rb_enc_copy because encoding is copied at str_replace_shared. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
96ada56fb9
commit
492f431a46
2 changed files with 32 additions and 4 deletions
13
ChangeLog
13
ChangeLog
|
@ -1,3 +1,16 @@
|
|||
Wed Feb 20 19:15:38 2008 NARUSE, Yui <naruse@ruby-lang.org>
|
||||
|
||||
* string.c (rb_enc_str_copy): added for wrapper for rb_enc_copy.
|
||||
this also copy coderange when ptr and len is equal.
|
||||
|
||||
* string.c (rb_enc_cr_str_copy): added for wrapper for rb_enc_copy.
|
||||
this always copy coderange.
|
||||
|
||||
* string.c (str_replace_shared): use rb_enc_str_copy.
|
||||
|
||||
* string.c (str_new3): don't rb_enc_copy because encoding is copied
|
||||
at str_replace_shared.
|
||||
|
||||
Wed Feb 20 13:08:52 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* instruby.rb (parse_args): added --dir-mode, --script-mode and
|
||||
|
|
23
string.c
23
string.c
|
@ -201,6 +201,23 @@ coderange_scan(const char *p, long len, rb_encoding *enc)
|
|||
return ENC_CODERANGE_VALID;
|
||||
}
|
||||
|
||||
void
|
||||
rb_enc_str_copy(VALUE str1, VALUE str2)
|
||||
{
|
||||
rb_enc_copy(str1, str2);
|
||||
if (RSTRING_PTR(str1) == RSTRING_PTR(str2) &&
|
||||
RSTRING_LEN(str1) == RSTRING_LEN(str2)) {
|
||||
ENC_CODERANGE_SET(str1, ENC_CODERANGE(str2));
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
rb_enc_cr_str_copy(VALUE str1, VALUE str2)
|
||||
{
|
||||
rb_enc_copy(str1, str2);
|
||||
ENC_CODERANGE_SET(str1, ENC_CODERANGE(str2));
|
||||
}
|
||||
|
||||
int
|
||||
rb_enc_str_coderange(VALUE str)
|
||||
{
|
||||
|
@ -359,6 +376,7 @@ str_replace_shared(VALUE str2, VALUE str)
|
|||
RSTRING(str2)->as.heap.aux.shared = str;
|
||||
FL_SET(str2, ELTS_SHARED);
|
||||
}
|
||||
rb_enc_cr_str_copy(str2, str);
|
||||
|
||||
return str2;
|
||||
}
|
||||
|
@ -372,10 +390,7 @@ str_new_shared(VALUE klass, VALUE str)
|
|||
static VALUE
|
||||
str_new3(VALUE klass, VALUE str)
|
||||
{
|
||||
VALUE str2 = str_new_shared(klass, str);
|
||||
|
||||
rb_enc_copy(str2, str);
|
||||
return str2;
|
||||
return str_new_shared(klass, str);
|
||||
}
|
||||
|
||||
VALUE
|
||||
|
|
Loading…
Reference in a new issue