summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2013-03-21 04:37:04 -0700
committerYukihiro "Matz" Matsumoto <[email protected]>2013-03-21 04:37:04 -0700
commitf6646f44c2a33147b7f491d1551243c96f72ab25 (patch)
tree2547f62653a9a20638bdee35863b2dad4ac7193f
parent605035bc4261f25063ecf77765b9f844b6e98357 (diff)
parentf00e9b24108c03158613a2fad2366abdafeb2f77 (diff)
downloadmruby-f6646f44c2a33147b7f491d1551243c96f72ab25.tar.gz
mruby-f6646f44c2a33147b7f491d1551243c96f72ab25.zip
Merge pull request #1038 from kouki-o-iij/pr-regexp-escape
bugfix escape charactor for Regexp class
-rw-r--r--src/parse.y15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/parse.y b/src/parse.y
index ee95cfb73..8f1241d33 100644
--- a/src/parse.y
+++ b/src/parse.y
@@ -3459,17 +3459,9 @@ read_escape(parser_state *p)
return c;
case 'b': /* backspace */
- if (is_strterm_type(p, STR_FUNC_REGEXP)) {
- tokadd(p, '\\');
- return 'b';
- }
return '\010';
case 's': /* space */
- if (is_strterm_type(p, STR_FUNC_REGEXP)) {
- tokadd(p, '\\');
- return 's';
- }
return ' ';
case 'M':
@@ -3507,9 +3499,6 @@ read_escape(parser_state *p)
return '\0';
default:
- if (is_strterm_type(p, STR_FUNC_REGEXP)) {
- tokadd(p, '\\');
- }
return c;
}
}
@@ -3583,6 +3572,10 @@ parse_string(parser_state *p)
}
else {
pushback(p, c);
+
+ if(type & STR_FUNC_REGEXP)
+ tokadd(p, '\\');
+
tokadd(p, read_escape(p));
if (hinf)
hinf->line_head = FALSE;