summaryrefslogtreecommitdiff
path: root/transcode.c
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-18 18:32:24 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-18 18:32:24 +0000
commit69ee4246e59593b8bea71d4ad8a151d5a3d52ae9 (patch)
treed1f0ac8fd11e9f8e7ee149635f9b74fec25391d0 /transcode.c
parentdb881044bcaf3fce9fbce99f6af8d3cd353ef05e (diff)
* transcode.c (str_transcode0): fix: :xml option doesn't
work on str.encode([options]) form without default_internal. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'transcode.c')
-rw-r--r--transcode.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/transcode.c b/transcode.c
index b01d4a1f08..1997e310c3 100644
--- a/transcode.c
+++ b/transcode.c
@@ -2457,7 +2457,8 @@ str_transcode0(int argc, VALUE *argv, VALUE *self, int ecflags, VALUE ecopts)
if (argc == 0) {
arg1 = rb_enc_default_internal();
if (NIL_P(arg1)) {
- return -1;
+ if (!ecflags) return -1;
+ arg1 = rb_obj_encoding(str);
}
ecflags |= ECONV_INVALID_REPLACE | ECONV_UNDEF_REPLACE;
}