Split off libgedcom.so.
[gedcom-parse.git] / gedcom_lex_common.c
index 58296331b732313651202cf5042a1234097c3889..bc7387de4f8797aabaf61916c1fc6cd3437c3cd5 100644 (file)
@@ -12,8 +12,9 @@
 
 #ifndef IN_LEX
 
-#include "gedcom.tab.h"
+#include "external.h"
 #include "gedcom.h"
+#include "gedcom.tab.h"
 #include "multilex.h"
 #include "encoding.h"
 
@@ -265,6 +266,10 @@ int test_loop(ENCODING enc, char* code)
       return CLOSE;                                                           \
     }                                                                         \
     else {                                                                    \
+      /* Reset our state */                                                   \
+      current_level = -1;                                                     \
+      level_diff = MAXGEDCLEVEL;                                              \
+      /* ... then terminate lex */                                            \
       yyterminate();                                                          \
     }                                                                         \
   }