3 Gedcom_rec_start_cb record_start_callback[] =
4 { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL };
6 Gedcom_rec_end_cb record_end_callback[] =
7 { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL };
10 void subscribe_to_record(Gedcom_rec rec,
11 Gedcom_rec_start_cb cb_start,
12 Gedcom_rec_end_cb cb_end)
14 record_start_callback[rec] = cb_start;
15 record_end_callback[rec] = cb_end;
18 Gedcom_ctxt start_record(Gedcom_rec rec, char *xreftag)
20 Gedcom_rec_start_cb cb = record_start_callback[rec];
22 return (*cb)(xreftag);
27 void end_record(Gedcom_rec rec, Gedcom_ctxt self)
29 Gedcom_rec_end_cb cb = record_end_callback[rec];
34 Gedcom_ctxt start_element(Gedcom_elt elt, Gedcom_ctxt parent,
35 int level, char *tag, char *raw_value,
38 printf("Start of element %d, parent context is %d\n", elt, (int)parent);
39 printf(" value is: %d %s %s\n", level, tag, raw_value);
40 return (Gedcom_ctxt)(elt+100);
43 void end_element(Gedcom_ctxt parent, Gedcom_ctxt self)
45 printf("End of element, context is %d, parent context is %d\n",
46 (int)self, (int)parent);