Release 0.3
[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   int compat_enabled = 1;
10   if (argc > 1) {
11     int i;
12     for (i=1; i<argc; i++) {
13       if (!strncmp(argv[i], "-d", 2))
14         gedcom_enable_debug();
15       else if (!strncmp(argv[i], "-fi", 3))
16         mech = IMMED_FAIL;
17       else if (!strncmp(argv[i], "-fd", 3))
18         mech = DEFER_FAIL;
19       else if (!strncmp(argv[i], "-fn", 3))
20         mech = IGNORE_ERRORS;
21       else if (!strncmp(argv[i], "-nc", 3))
22         compat_enabled = 0;
23       else {
24         printf ("Unrecognized option: %s\n", argv[i]);
25         exit(1);
26       }
27     }
28   }
29   gedcom_set_compat_handling(compat_enabled);
30   gedcom_set_error_handling(mech);
31   if (gedcom_parse() == 0) {
32     printf("Parse succeeded\n");
33     return 0;
34   }
35   else {
36     printf("Parse failed\n");
37     return 1;
38   }
39 }
40
41 int gedcom_debug_print(char* s, ...)
42 {
43   int res;
44 #if YYDEBUG != 0
45   if (gedcom_debug) {
46     va_list ap;
47     va_start(ap, s);
48     res = vfprintf(stderr, s, ap);
49     va_end(ap);
50   }
51 #endif
52   return(res);
53 }
54
55 int gedcom_warning(char* s, ...)
56 {
57   int res;
58   va_list ap;
59
60   va_start(ap, s);
61   fprintf(stderr, "Warning on line %d: ", line_no);
62   res = vfprintf(stderr, s, ap);
63   fprintf(stderr, "\n");
64   va_end(ap);
65   
66   return res;
67 }
68
69 int gedcom_error(char* s, ...)
70 {
71   int res;
72   va_list ap;
73
74   va_start(ap, s);
75   fprintf(stderr, "Error on line %d: ", line_no);
76   res = vfprintf(stderr, s, ap);
77   fprintf(stderr, "\n");
78   va_end(ap);
79   
80   return res;
81 }