diff options
author | Bruce Beare <bruce.j.beare@intel.com> | 2010-12-26 09:55:10 -0800 |
---|---|---|
committer | Bruce Beare <bruce.j.beare@intel.com> | 2011-01-02 17:00:08 -0800 |
commit | 378083a3f03db4eb623789c6f7a4bd827f44eb64 (patch) | |
tree | 32e4099f5c0770711c8f2ec4290e2468a005ecb5 /init | |
parent | f1c2a7352f19cf729f91bf2559fc93ef12c74dca (diff) | |
download | core-378083a3f03db4eb623789c6f7a4bd827f44eb64.tar.gz core-378083a3f03db4eb623789c6f7a4bd827f44eb64.tar.bz2 core-378083a3f03db4eb623789c6f7a4bd827f44eb64.zip |
init: Fix parser line numbering
Change-Id: I3885dd7d631e7330d92780df822b3ee1a8d0350b
Signed-off-by: Bruce Beare <brucex.j.beare@intel.com>
Diffstat (limited to 'init')
-rw-r--r-- | init/init_parser.c | 3 | ||||
-rw-r--r-- | init/parser.c | 11 |
2 files changed, 9 insertions, 5 deletions
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; } |