Look for encoding configuration file in current directory AND in package
authorPeter Verthez <Peter.Verthez@advalvas.be>
Sun, 9 Dec 2001 17:26:06 +0000 (17:26 +0000)
committerPeter Verthez <Peter.Verthez@advalvas.be>
Sun, 9 Dec 2001 17:26:06 +0000 (17:26 +0000)
data directory.

gedcom/encoding.c

index d306dfa7b347627b401f9e7e2308035db39cef2d..5fdaba57f1588fa88f8498d1c57f06e2cd285c0d 100644 (file)
@@ -14,6 +14,7 @@
 #include <iconv.h>
 #include <search.h>
 #include <stdio.h>
+#include <limits.h>
 #include "gedcom_internal.h"
 #include "encoding.h"
 
@@ -84,7 +85,16 @@ void init_encodings()
     char charwidth[MAXBUF + 1];
     char iconv_n[MAXBUF + 1];
     in = fopen(ENCODING_CONF_FILE, "r");
-    if (in != NULL) {
+    if (in == NULL) {
+      char path[PATH_MAX];
+      sprintf(path, "%s/%s", PKGDATADIR, ENCODING_CONF_FILE);
+      in = fopen(path, "r");
+    }
+    if (in == NULL) {
+      gedcom_warning("Could not open encoding configuration file '%s'",
+                    ENCODING_CONF_FILE);
+    }
+    else {
       while (fgets(buffer, sizeof(buffer), in) != NULL) {
        if (buffer[strlen(buffer) - 1] != '\n') {
          gedcom_error("Line too long in encoding configuration file '%s'",
@@ -104,10 +114,6 @@ void init_encodings()
       }
       fclose(in);
     }
-    else {
-      gedcom_warning("Could not open encoding configuration file '%s'",
-                    ENCODING_CONF_FILE);
-    }
   }
 }