X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gedcom%2Fmultilex.c;h=471f5ac37fed065a388799f7715662a5ac07777e;hb=9b4b646eafd90dcff38ab9ed9d89bba0a4a8c62d;hp=1b9ce6f27a7b4b496ea7f8abbf2abffd24d29f35;hpb=e85a34a722825e38c89e974263f3a946b0dcbada;p=gedcom-parse.git diff --git a/gedcom/multilex.c b/gedcom/multilex.c index 1b9ce6f..471f5ac 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,16 +111,17 @@ int gedcom_parse_file(char* file_name) int result = 1; FILE* file; + char *save_locale = 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); line_no = 1; file = fopen(file_name, "r"); if (!file) { - gedcom_error(_("Could not open file '%s'\n"), file_name); + gedcom_error(_("Could not open file '%s'"), file_name); } else { init_encodings(); @@ -127,13 +129,17 @@ 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); return result; }