summaryrefslogtreecommitdiffstats
path: root/parse.y
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-22 05:30:37 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-22 05:30:37 +0000
commitcfb106aa03ba13845aa2f8abe953684c7dd9b0f1 (patch)
tree2fed812bd99009566b217963c1ec55c3ec4627f7 /parse.y
parentab9af5a76a7910ec11cb81bc4f660f4bdffd8663 (diff)
downloadruby-cfb106aa03ba13845aa2f8abe953684c7dd9b0f1.tar.gz
ruby-cfb106aa03ba13845aa2f8abe953684c7dd9b0f1.tar.xz
ruby-cfb106aa03ba13845aa2f8abe953684c7dd9b0f1.zip
* parse.y (reg_named_capture_assign_iter): allows non-ascii names and
get rid of reserved word IDs. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14462 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y4
1 files changed, 2 insertions, 2 deletions
diff --git a/parse.y b/parse.y
index 4a81ae7af..7b64c237a 100644
--- a/parse.y
+++ b/parse.y
@@ -8516,8 +8516,8 @@ reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end,
arg->fail_block = NEW_BEGIN(0);
}
- if (!(len && rb_enc_islower(*name, enc) && rb_enc_symname2_p(s, len, enc))
- || rb_reserved_word(name, len)) {
+ if (!len || (*name != '_' && ISASCII(*name) && !rb_enc_islower(*name, enc)) ||
+ rb_reserved_word(s, len) || !rb_enc_symname2_p(s, len, enc)) {
return ST_CONTINUE;
}
var = rb_intern3(s, len, enc);