Full error handling for tags and subtags...
[gedcom-parse.git] / standalone.c
1 /* $Id$ */
2 /* $Name$ */
3
4 #include "gedcom.h"
5
6 int main(int argc, char* argv[])
7 {
8   MECHANISM mech = IMMED_FAIL;
9   if (argc > 1) {
10     int i;
11     for (i=1; i<argc; i++) {
12       if (!strncmp(argv[i], "-d", 2))
13         gedcom_enable_debug();
14       else if (!strncmp(argv[i], "-fi", 3))
15         mech = IMMED_FAIL;
16       else if (!strncmp(argv[i], "-fd", 3))
17         mech = DEFER_FAIL;
18       else if (!strncmp(argv[i], "-fn", 3))
19         mech = IGNORE_ERRORS;
20       else {
21         printf ("Unrecognized option: %s\n", argv[i]);
22         exit(1);
23       }
24     }
25   }
26   gedcom_set_error_handling(mech);
27   if (gedcom_parse() == 0) {
28     printf("Parse succeeded\n");
29   }
30   else {
31     printf("Parse failed\n");
32   }
33 }
34
35 int gedcom_error(char* s, ...)
36 {
37   int res;
38   va_list ap;
39
40   va_start(ap, s);
41   fprintf(stderr, "Error on line %d: ", line_no);
42   res = vfprintf(stderr, s, ap);
43   fprintf(stderr, "\n");
44   va_end(ap);
45   
46   return res;
47 }