summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2023-06-22 20:10:13 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2023-06-22 20:10:13 +0900
commit1344de56219cf83ca146c5346783f8483af534f9 (patch)
tree921159e6a2ad47ca4d7d38690d8d1d6029a9c2c1 /parse.y
parent8142728b5a0b9cab217124e5dad33f8d46fd3652 (diff)
[Bug #19743] All but EOF can be read again after push-back
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y2
1 files changed, 2 insertions, 0 deletions
diff --git a/parse.y b/parse.y
index 76386e47ed..329b578f36 100644
--- a/parse.y
+++ b/parse.y
@@ -7121,6 +7121,7 @@ static void
pushback(struct parser_params *p, int c)
{
if (c == -1) return;
+ p->eofp = 0;
p->lex.pcur--;
if (p->lex.pcur > p->lex.pbeg && p->lex.pcur[0] == '\n' && p->lex.pcur[-1] == '\r') {
p->lex.pcur--;
@@ -9164,6 +9165,7 @@ parse_numeric(struct parser_params *p, int c)
c = nextc(p);
if (c != '-' && c != '+' && !ISDIGIT(c)) {
pushback(p, c);
+ c = nondigit;
nondigit = 0;
goto decode_num;
}