X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gedcom%2Fmultilex.c;h=42b9f5000613e95c959b32e226e89578e1a2fe4a;hb=4e81582268d1fe7a45df84fa8b136279f59cb63e;hp=cff8608f049337a143c1dca78265807dfc7bcdad;hpb=6c3f98698bd9db6abc7641501d6c1ab96a97797a;p=gedcom-parse.git diff --git a/gedcom/multilex.c b/gedcom/multilex.c index cff8608..42b9f50 100644 --- a/gedcom/multilex.c +++ b/gedcom/multilex.c @@ -1,5 +1,5 @@ /* The lexer multiplexer for Gedcom. - Copyright (C) 2001 The Genes Development Team + Copyright (C) 2001,2002 The Genes Development Team This file is part of the Gedcom parser library. Contributed by Peter Verthez , 2001. @@ -24,6 +24,7 @@ #include "gedcom_internal.h" #include "multilex.h" #include "encoding.h" +#include "xref.h" int line_no; @@ -110,9 +111,9 @@ int gedcom_parse_file(char* file_name) int result = 1; FILE* file; + char *save_locale = strdup(setlocale(LC_ALL, NULL)); char *save_textdom = textdomain(NULL); - setlocale(LC_ALL, ""); /* In fact only necessary if main program doesn't - do this */ + setlocale(LC_ALL, ""); bindtextdomain(PACKAGE, LOCALEDIR); bind_textdomain_codeset(PACKAGE, INTERNAL_ENCODING); textdomain(PACKAGE); @@ -128,13 +129,18 @@ int gedcom_parse_file(char* file_name) if (lexer_init(enc, file)) { line_no = 1; + make_xref_table(); result = gedcom_parse(); + if (result == 0) + result = check_xref_table(); } lexer_close(); fclose(file); } textdomain(save_textdom); + setlocale(LC_ALL, save_locale); + free(save_locale); return result; }