summaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorBruce Beare <bruce.j.beare@intel.com>2010-12-26 09:55:10 -0800
committerBruce Beare <bruce.j.beare@intel.com>2011-01-02 17:00:08 -0800
commit378083a3f03db4eb623789c6f7a4bd827f44eb64 (patch)
tree32e4099f5c0770711c8f2ec4290e2468a005ecb5 /init
parentf1c2a7352f19cf729f91bf2559fc93ef12c74dca (diff)
downloadcore-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.c3
-rw-r--r--init/parser.c11
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;
}