summaryrefslogtreecommitdiff
path: root/string.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-12-06 09:04:03 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-12-06 09:04:03 +0000
commitdee96209bfbb957538c7adeb01a65f3830749179 (patch)
tree3289aa4829f7fcb044cfa70341caaafd1aa086b0 /string.c
parent4263bb432accd9bd98654c3e8cc312414e7db906 (diff)
19991206
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r--string.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/string.c b/string.c
index 7b8c558c11..ee22f202e4 100644
--- a/string.c
+++ b/string.c
@@ -128,7 +128,7 @@ rb_str_to_str(str)
}
static void
-rb_str_assign(str, str2)
+rb_str_become(str, str2)
VALUE str, str2;
{
if (str == str2) return;
@@ -422,7 +422,9 @@ rb_str_concat(str1, str2)
}
}
if (TYPE(str2) != T_STRING) str2 = rb_str_to_str(str2);
- return rb_str_cat(str1, RSTRING(str2)->ptr, RSTRING(str2)->len);
+ str1 = rb_str_cat(str1, RSTRING(str2)->ptr, RSTRING(str2)->len);
+ if (OBJ_TAINTED(str2)) OBJ_TAINT(str1);
+ return str1;
}
int
@@ -746,7 +748,7 @@ rb_str_succ_bang(str)
VALUE str;
{
rb_str_modify(str);
- rb_str_assign(str, rb_str_succ(str));
+ rb_str_become(str, rb_str_succ(str));
return str;
}