diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1999-01-21 09:04:58 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1999-01-21 09:04:58 +0000 |
commit | 8ef071c882218ff2d9f00f51f55e872343776104 (patch) | |
tree | 93989de48296e87724e9cf379c5f1395a14acb31 /parse.y | |
parent | 41d0ebf4660c74a92bfd9484bd3659d5367d2d76 (diff) |
1.2.2 release
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 16 |
1 files changed, 9 insertions, 7 deletions
@@ -2183,7 +2183,8 @@ here_document(term) char *eos; int len; VALUE str, line; - char *save_beg, *save_end, *save_lexp; + VALUE lastline_save; + int offset_save; NODE *list = 0; int linesave = sourceline; @@ -2212,9 +2213,8 @@ here_document(term) break; } tokfix(); - save_lexp = lex_p; - save_beg = lex_pbeg; - save_end = lex_pend; + lastline_save = lex_lastline; + offset_save = lex_p - lex_pbeg; eos = strdup(tok()); len = strlen(eos); @@ -2262,9 +2262,11 @@ here_document(term) } } free(eos); - lex_p = save_lexp; - lex_pbeg = save_beg; - lex_pend = save_end; + lex_lastline = lastline_save; + lex_pbeg = RSTRING(lex_lastline)->ptr; + lex_pend = lex_pbeg + RSTRING(lex_lastline)->len; + lex_p = lex_pbeg + offset_save; + lex_state = EXPR_END; heredoc_end = sourceline; sourceline = linesave; |