summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-10 06:42:49 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-10 06:42:49 +0000
commita4c82312c356b2bfa33d2c11c7badc0b72de3b39 (patch)
tree6f495af6d3b7e0e5650061e42581b6530572da0b /io.c
parent76b247202a19a56a0ba24639912ef2a0744371b3 (diff)
* io.c (io_encoding_set): handle nil for v1.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14975 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r--io.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/io.c b/io.c
index 2fc199d861..4b499bc6e6 100644
--- a/io.c
+++ b/io.c
@@ -5627,12 +5627,17 @@ io_encoding_set(rb_io_t *fptr, int argc, VALUE v1, VALUE v2)
fptr->enc = rb_to_encoding(v2);
}
else if (argc == 1) {
- VALUE tmp = rb_check_string_type(v1);
- if (!NIL_P(tmp)) {
- mode_enc(fptr, StringValueCStr(tmp));
+ if if (NIL_P(v1)) {
+ fptr->enc = 0;
}
else {
- fptr->enc = rb_to_encoding(v1);
+ VALUE tmp = rb_check_string_type(v1);
+ if (!NIL_P(tmp)) {
+ mode_enc(fptr, StringValueCStr(tmp));
+ }
+ else {
+ fptr->enc = rb_to_encoding(v1);
+ }
}
}
}