diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-01-27 15:39:14 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-01-27 15:39:14 +0000 |
commit | 7c69f166bd05703ecf8ed07fac0927f5fc9b22fa (patch) | |
tree | 941429be2fdbf19abca1785b2020a956692ee2fd /parse.y | |
parent | b980803a6e89c8e8b951fe6090fca8f083ef4687 (diff) | |
download | ruby-7c69f166bd05703ecf8ed07fac0927f5fc9b22fa.tar.gz |
* parse.y (parser_set_encode): check if encoding is ASCII compatible.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -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 |