summaryrefslogtreecommitdiff
path: root/encoding.c
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-12 10:35:39 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-12 10:35:39 +0000
commit58740ef8816557481c752889392b4ee148fe94aa (patch)
treefc4ebeda856c0c07a3f3423b8ed31718b07fc09f /encoding.c
parent63a534194cddc07af7ed2bbff56fcc061fcc2e29 (diff)
* encoding.c (rb_enc_set_default_external): default_internal can be
nil, but default_external cannot. * encoding.c (rb_set_default_internal): adds rdoc. * encoding.c (enc_find): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20665 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'encoding.c')
-rw-r--r--encoding.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/encoding.c b/encoding.c
index 910768d56a..f802850f3b 100644
--- a/encoding.c
+++ b/encoding.c
@@ -905,6 +905,9 @@ enc_list(VALUE klass)
* Encoding.find("US-ASCII") => #<Encoding:US-ASCII>
* Encoding.find(:Shift_JIS) => #<Encoding:Shift_JIS>
*
+ * An ArgumentError is raised when no encoding with <i>name</i>.
+ * Only +Encoding.find("internal")+ however returns nil when no encoding named "internal",
+ * in other words, when Ruby has no default internal encoding.
*/
static VALUE
enc_find(VALUE klass, VALUE enc)
@@ -1102,6 +1105,9 @@ get_default_external(VALUE klass)
void
rb_enc_set_default_external(VALUE encoding)
{
+ if (NIL_P(encoding)) {
+ rb_raise(rb_eArgError, "default external can not be nil");
+ }
enc_set_default_encoding(&default_external, encoding,
"external", ENCINDEX_US_ASCII);
}
@@ -1161,9 +1167,10 @@ rb_enc_set_default_internal(VALUE encoding)
/*
* call-seq:
- * Encoding.default_internal = enc
+ * Encoding.default_internal = enc or nil
*
* Sets default internal encoding.
+ * Or removes default internal encoding when passed nil.
*/
static VALUE
set_default_internal(VALUE klass, VALUE encoding)