From 378083a3f03db4eb623789c6f7a4bd827f44eb64 Mon Sep 17 00:00:00 2001 From: Bruce Beare Date: Sun, 26 Dec 2010 09:55:10 -0800 Subject: init: Fix parser line numbering Change-Id: I3885dd7d631e7330d92780df822b3ee1a8d0350b Signed-off-by: Bruce Beare --- init/init_parser.c | 3 ++- init/parser.c | 11 +++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) (limited to 'init') diff --git a/init/init_parser.c b/init/init_parser.c index d136c28a0..fafd732c5 100644 --- a/init/init_parser.c +++ b/init/init_parser.c @@ -187,7 +187,7 @@ static void parse_config(const char *fn, char *s) nargs = 0; state.filename = fn; - state.line = 1; + state.line = 0; state.ptr = s; state.nexttoken = 0; state.parse_line = parse_line_no_op; @@ -197,6 +197,7 @@ static void parse_config(const char *fn, char *s) state.parse_line(&state, 0, 0); return; case T_NEWLINE: + state.line++; if (nargs) { int kw = lookup_keyword(args[0]); if (kw_is(kw, SECTION)) { diff --git a/init/parser.c b/init/parser.c index 2f36ac76a..3c2ec00b4 100644 --- a/init/parser.c +++ b/init/parser.c @@ -83,7 +83,6 @@ int next_token(struct parse_state *state) state->ptr = x; return T_EOF; case '\n': - state->line++; x++; state->ptr = x; return T_NEWLINE; @@ -94,9 +93,13 @@ int next_token(struct parse_state *state) continue; case '#': while (*x && (*x != '\n')) x++; - state->line++; - state->ptr = x; - return T_NEWLINE; + if (*x == '\n') { + state->ptr = x+1; + return T_NEWLINE; + } else { + state->ptr = x; + return T_EOF; + } default: goto text; } -- cgit v1.2.3