summaryrefslogtreecommitdiffstats
path: root/parse.y
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-27 15:39:14 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-27 15:39:14 +0000
commitcd47cd546d65885b1e6760fd52e5bcfb2d8f721e (patch)
tree941429be2fdbf19abca1785b2020a956692ee2fd /parse.y
parent9faf42c280c2b5153e180dbdc71f8791645b9ed7 (diff)
downloadruby-cd47cd546d65885b1e6760fd52e5bcfb2d8f721e.tar.gz
ruby-cd47cd546d65885b1e6760fd52e5bcfb2d8f721e.tar.xz
ruby-cd47cd546d65885b1e6760fd52e5bcfb2d8f721e.zip
* parse.y (parser_set_encode): check if encoding is ASCII compatible.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y8
1 files changed, 7 insertions, 1 deletions
diff --git a/parse.y b/parse.y
index 6164ba46e..19b8ba658 100644
--- a/parse.y
+++ b/parse.y
@@ -5746,10 +5746,16 @@ static void
parser_set_encode(struct parser_params *parser, const char *name)
{
int idx = rb_enc_find_index(name);
+ rb_encoding *enc;
+
if (idx < 0) {
rb_raise(rb_eArgError, "unknown encoding name: %s", name);
}
- parser->enc = rb_enc_from_index(idx);
+ enc = rb_enc_from_index(idx);
+ if (!rb_enc_asciicompat(enc)) {
+ rb_raise(rb_eArgError, "%s is not ASCII compatible", rb_enc_name(enc));
+ }
+ parser->enc = enc;
}
#ifndef RIPPER