Use function is_valid_pointer (also checks for maximum size).
[gedcom-parse.git] / gedcom / gedcom_internal.h
index e34318144869dede3c2e6b7870fd1cce6f823ca8..9807ecb759f22678807ada7d9f364fe8f0d410d7 100644 (file)
 #define MAXSTDTAGLEN    4
 #define MAXGEDCPTRLEN   22
 #define GEDCOMTAGOFFSET 257
-#define INTERNAL_ENCODING "UTF8"
+#define INTERNAL_ENCODING "UTF-8"
 
 #define GEDCOM_INTERNAL 1
 
+#ifdef __GNUC__
+#define UNUSED __attribute__((unused))
+#else
+#define UNUSED
+#endif
+
 struct tag_struct {
   char *string;
   int value;
 };
 
-int        gedcom_parse();
-int        gedcom_lex();
+typedef enum _PARSE_STATE {
+  STATE_NORMAL,
+  STATE_INITIAL,
+  STATE_EXPECT_TAG
+} ParseState;
+
+int  gedcom_parse();
+int  gedcom_lex();
+int  gedcom_check_token(const char* str, ParseState state, int check_token);
 
-void       gedcom_mem_error(const char *filename, int line);
+void gedcom_mem_error(const char *filename, int line);
 
 #define MEMORY_ERROR gedcom_mem_error(__FILE__, __LINE__)
 
 extern int line_no;
+extern int init_called;
 #endif /* __GEDCOM_INTERNAL_H */