summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-02-24 03:55:01 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-02-24 03:55:01 +0000
commit6bab1e5abd81d57fe1046a7acc7f699ab6ee3190 (patch)
tree8de61871089ded9ff953b23091362286b9cabe55 /parse.y
parentabf6499961c0cf0dd7a20323e915f9c82fcf8b4f (diff)
dyna_var,regex,line cotinuation
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@90 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y12
1 files changed, 11 insertions, 1 deletions
diff --git a/parse.y b/parse.y
index 48a38e4431..589c58c9ac 100644
--- a/parse.y
+++ b/parse.y
@@ -1564,6 +1564,14 @@ nextc()
VALUE v = io_gets(lex_input);
if (NIL_P(v)) return -1;
+ while (RSTRING(v)->ptr[RSTRING(v)->len-1] == '\n' &&
+ RSTRING(v)->ptr[RSTRING(v)->len-2] == '\\') {
+ VALUE v2 = io_gets(lex_input);
+
+ if (!NIL_P(v2)) {
+ str_cat(v, RSTRING(v2)->ptr, RSTRING(v2)->len);
+ }
+ }
lex_pbeg = lex_p = RSTRING(v)->ptr;
lex_pend = lex_p + RSTRING(v)->len;
if (RSTRING(v)->len == 8 &&
@@ -3312,7 +3320,9 @@ assignable(id, val)
lhs = NEW_LASGN(id, val);
}
else{
- dyna_var_asgn(id, TRUE);
+ if (!dyna_var_defined(id)) {
+ dyna_var_asgn(id, TRUE);
+ }
lhs = NEW_DASGN(id, val);
}
}