diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-08-17 05:06:31 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-08-17 05:06:31 +0000 |
commit | c7e9e1f8f9a61792586276bbbd28104c4e838126 (patch) | |
tree | 11b456aa3b52fe4885c15ccf7d58397c3aba5d75 /parse.y | |
parent | ad56376d19a40131545ed796b9ec5671d6694087 (diff) |
* parse.y (parse_regx): handle backslash escaping of delimiter here.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@1702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -2241,7 +2241,8 @@ read_escape() } static int -tokadd_escape() +tokadd_escape(term) + int term; { int c; @@ -2302,7 +2303,7 @@ tokadd_escape() tokadd('\\'); tokadd('c'); escaped: if ((c = nextc()) == '\\') { - return tokadd_escape(); + return tokadd_escape(term); } else if (c == -1) goto eof; tokadd(c); @@ -2314,7 +2315,8 @@ tokadd_escape() return -1; default: - tokadd('\\'); + if (c != term) + tokadd('\\'); tokadd(c); } return 0; @@ -2345,7 +2347,7 @@ parse_regx(term, paren) continue; case '\\': - if (tokadd_escape() < 0) + if (tokadd_escape(term) < 0) return 0; continue; |