Fix for line numbering bug (bug 613480).
authorPeter Verthez <Peter.Verthez@advalvas.be>
Wed, 30 Oct 2002 18:05:33 +0000 (18:05 +0000)
committerPeter Verthez <Peter.Verthez@advalvas.be>
Wed, 30 Oct 2002 18:05:33 +0000 (18:05 +0000)
gedcom/gedcom_lex_common.c
gedcom/multilex.c

index efc4bf931eed796ff332e6dec4df9a36f20d9c28..753df118e615e123a26d319c7b9b813010ecae0c 100644 (file)
@@ -164,6 +164,7 @@ static int dummy_conv = 0;
     gedcom_lval.tag.string = TO_INTERNAL(yytext, tag_buf);                   \
     gedcom_lval.tag.value  = TAG_##THETAG;                                   \
     BEGIN(NORMAL);                                                           \
+    line_no++;                                                               \
     return TAG_##THETAG;                                                     \
   }
 
@@ -260,12 +261,14 @@ static int dummy_conv = 0;
 #define ACTION_ALPHANUM                                                       \
    { if (strlen(yytext) > MAXGEDCTAGLEN * encoding_width) {                   \
        error_tag_too_long(yytext);                                            \
+       line_no++;                                                             \
        return BADTOKEN;                                                       \
      }                                                                        \
      CHECK_LINE_LEN;                                                          \
      gedcom_lval.tag.string = TO_INTERNAL(yytext, tag_buf);                   \
      gedcom_lval.tag.value  = USERTAG;                                        \
      BEGIN(NORMAL);                                                           \
+     line_no++;                                                               \
      return USERTAG;                                                          \
    }
 
@@ -327,7 +330,6 @@ static int dummy_conv = 0;
 #define ACTION_TERMINATOR                                                     \
   { CHECK_LINE_LEN;                                                           \
     INIT_LINE_LEN;                                                            \
-    line_no++;                                                                \
     BEGIN(INITIAL);                                                           \
   }
 
index 175a7be6cb3dbddc0222ec95983b2414c9d65619..5b0aa4eec262861c492e5745115b7bbcd957ddb2 100644 (file)
@@ -171,7 +171,7 @@ int gedcom_parse_file(const char* file_name)
       enc = determine_encoding(file);
       
       if (lexer_init(enc, file)) {
-       line_no = 1;
+       line_no = 0;
        make_xref_table();
        result = gedcom_parse();
        line_no = 0;