X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gedcom%2Fmultilex.c;h=42b9f5000613e95c959b32e226e89578e1a2fe4a;hb=b1a87b467d9c6b38aa4a2b2e4537b0deff9a251e;hp=8473624bad70c4c75899b715de7229b241788e9f;hpb=057bd8173b055b22794d7e544a1b6ddd4f60ff96;p=gedcom-parse.git diff --git a/gedcom/multilex.c b/gedcom/multilex.c index 8473624..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,10 +111,11 @@ 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); line_no = 1; @@ -127,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; }