X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=t%2Fsrc%2Fstandalone.c;h=887da0ee08d0fb7349a349d2cf860d50e9abd47c;hb=d41803b9c1bcafabf115a188e3b4a489103bbdca;hp=9c2228417782ceea1be48ee79ff7cea2b29321dc;hpb=505301d49e81bcd0e1827026cd4672b8722ac349;p=gedcom-parse.git diff --git a/t/src/standalone.c b/t/src/standalone.c index 9c22284..887da0e 100644 --- a/t/src/standalone.c +++ b/t/src/standalone.c @@ -30,7 +30,7 @@ #include #include #include -#include "utf8.h" +#include "utf8tools.h" #define BOGUS_FILE_NAME "bogus.ged" int total_conv_fails = 0; @@ -67,7 +67,8 @@ void header_end(Gedcom_rec rec, Gedcom_ctxt self, Gedcom_val parsed_value) output(1, "Header end, context is %ld\n", void_ptr_to_int(self)); } -char family_xreftags[100][255]; +#define MAXFAMILY 100 +char family_xreftags[MAXFAMILY][255]; int family_nr = 1; Gedcom_ctxt family_start(Gedcom_rec rec, int level, Gedcom_val xref, char *tag, @@ -76,7 +77,9 @@ Gedcom_ctxt family_start(Gedcom_rec rec, int level, Gedcom_val xref, char *tag, { struct xref_value *xr = GEDCOM_XREF_PTR(xref); output(1, "Family start, xref is %s\n", xr->string); - strcpy(family_xreftags[family_nr], xr->string); + if (family_nr < MAXFAMILY) { + strcpy(family_xreftags[family_nr], xr->string); + } xr->object = (Gedcom_ctxt)int_to_void_ptr(family_nr); return (Gedcom_ctxt)int_to_void_ptr(family_nr++); } @@ -104,8 +107,11 @@ Gedcom_ctxt note_start(Gedcom_rec rec, int level, Gedcom_val xref, char *tag, void family_end(Gedcom_rec rec, Gedcom_ctxt self, Gedcom_val parsed_value) { - output(1, "Family end, xref is %s\n", - family_xreftags[void_ptr_to_int(self)]); + char* family_xref = ""; + int family_nr = void_ptr_to_int(self); + if (family_nr < MAXFAMILY) + family_xref = family_xreftags[void_ptr_to_int(self)]; + output(1, "Family end, xref is %s\n", family_xref); } Gedcom_ctxt submit_start(Gedcom_rec rec, int level, Gedcom_val xref, char *tag, @@ -317,6 +323,7 @@ int main(int argc, char* argv[]) setlocale(LC_ALL, ""); gedcom_set_debug_level(debug_level, NULL); gedcom_set_compat_handling(compat_enabled); + gedcom_set_compat_options(COMPAT_ALLOW_OUT_OF_CONTEXT); gedcom_set_error_handling(mech); gedcom_set_message_handler(gedcom_message_handler); gedcom_set_default_callback(default_cb);