Skip to content

Commit c2e3d39

Browse files
committed
* parse.y (yylex): do not accept " __END__\n". ([ruby-dev:19245])
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3247 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
1 parent 67a7c34 commit c2e3d39

File tree

3 files changed

+20
-14
lines changed

3 files changed

+20
-14
lines changed

ChangeLog

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
Tue Dec 31 01:30:29 2002 WATANABE Hirofumi <eban@ruby-lang.org>
2+
3+
* parse.y (yylex): do not accept " __END__\n". ([ruby-dev:19245])
4+
15
Mon Dec 30 21:10:59 2002 WATANABE Hirofumi <eban@ruby-lang.org>
26

37
* parse.y (yylex): use strncmp instead of strcmp.

parse.y

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3102,14 +3102,14 @@ whole_match_p(eos, len, indent)
31023102
int len, indent;
31033103
{
31043104
char *p = lex_pbeg;
3105+
int n;
31053106

31063107
if (indent) {
31073108
while (*p && ISSPACE(*p)) p++;
31083109
}
3109-
if (strncmp(eos, p, len) == 0) {
3110-
if (p[len] == '\n' || p[len] == '\r') return Qtrue;
3111-
if (p + len == lex_pend) return Qtrue;
3112-
}
3110+
n= lex_pend - (p + len);
3111+
if (n < 0 || n > 0 && p[len] != '\n' && p[len] != '\r') return Qfalse;
3112+
if (strncmp(eos, p, len) == 0) return Qtrue;
31133113
return Qfalse;
31143114
}
31153115

@@ -4206,6 +4206,15 @@ yylex()
42064206
}
42074207
break;
42084208

4209+
case '_':
4210+
if (lex_p - 1 == lex_pbeg && whole_match_p("__END__", 7, 0)) {
4211+
ruby__end__seen = 1;
4212+
lex_lastline = 0;
4213+
return -1;
4214+
}
4215+
newtok();
4216+
break;
4217+
42094218
default:
42104219
if (!is_identchar(c) || ISDIGIT(c)) {
42114220
rb_compile_error("Invalid char `\\%03o' in expression", c);
@@ -4321,13 +4330,6 @@ yylex()
43214330
}
43224331
}
43234332
tokfix();
4324-
if (strncmp(tok(), "__END__", 7) == 0 &&
4325-
(lex_p - lex_pbeg == 7 || lex_p - lex_pbeg == 8) &&
4326-
(lex_pend == lex_p || *lex_p == '\n' || *lex_p == '\r')) {
4327-
ruby__end__seen = 1;
4328-
lex_lastline = 0;
4329-
return -1;
4330-
}
43314333
last_id = yylval.id = rb_intern(tok());
43324334
if ((dyna_in_block() && rb_dvar_defined(last_id)) || local_id(last_id)) {
43334335
lex_state = EXPR_END;

version.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
#define RUBY_VERSION "1.8.0"
2-
#define RUBY_RELEASE_DATE "2002-12-30"
2+
#define RUBY_RELEASE_DATE "2002-12-31"
33
#define RUBY_VERSION_CODE 180
4-
#define RUBY_RELEASE_CODE 20021230
4+
#define RUBY_RELEASE_CODE 20021231
55

66
#define RUBY_VERSION_MAJOR 1
77
#define RUBY_VERSION_MINOR 8
88
#define RUBY_VERSION_TEENY 0
99
#define RUBY_RELEASE_YEAR 2002
1010
#define RUBY_RELEASE_MONTH 12
11-
#define RUBY_RELEASE_DAY 30
11+
#define RUBY_RELEASE_DAY 31

0 commit comments

Comments
 (0)