Add interface function gedcom_init(), to avoid problem with GCONV_PATH
[gedcom-parse.git] / gedcom / multilex.c
index 18992760f5883a230d9e0c6671bf21903874b86e..727c17959cb8f7aa03a6c9040ecf415e91d0cedf 100644 (file)
@@ -105,15 +105,20 @@ int determine_encoding(FILE* f)
   }
 }
 
+void gedcom_init()
+{
+  update_gconv_search_path();
+}
+
 int gedcom_parse_file(char* file_name)
 {
   ENCODING enc;
   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);
@@ -139,6 +144,8 @@ int gedcom_parse_file(char* file_name)
   }
 
   textdomain(save_textdom);
+  setlocale(LC_ALL, save_locale);
+  free(save_locale);
   return result;
 }