summaryrefslogtreecommitdiffstats
path: root/parse.y
diff options
context:
space:
mode:
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