init: Fix parser line numbering

Change-Id: I1ac481a2cef749b26c73bc9e6a212e6ace7a0ae2
diff --git a/init/init_parser.c b/init/init_parser.c
index 7ac1a1e..00e6b9e 100644
--- a/init/init_parser.c
+++ b/init/init_parser.c
@@ -188,7 +188,7 @@
 
     nargs = 0;
     state.filename = fn;
-    state.line = 1;
+    state.line = 0;
     state.ptr = s;
     state.nexttoken = 0;
     state.parse_line = parse_line_no_op;
@@ -198,6 +198,7 @@
             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 2f36ac7..3c2ec00 100644
--- a/init/parser.c
+++ b/init/parser.c
@@ -83,7 +83,6 @@
             state->ptr = x;
             return T_EOF;
         case '\n':
-            state->line++;
             x++;
             state->ptr = x;
             return T_NEWLINE;
@@ -94,9 +93,13 @@
             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;
         }