]> git.decadent.org.uk Git - ion3.git/blobdiff - ion/ion.c
Imported Upstream version 20090110
[ion3.git] / ion / ion.c
index 9dc0c936f040e52af2442d34db21c3816291ab0f..9e0c2538c308700b0ed73e23624e2515f400137d 100644 (file)
--- a/ion/ion.c
+++ b/ion/ion.c
@@ -1,7 +1,7 @@
 /*
  * ion/ion/ion.c
  *
- * Copyright (c) Tuomo Valkonen 1999-2007
+ * Copyright (c) Tuomo Valkonen 1999-2009
  *
  * See the included file LICENSE for details.
  */
@@ -19,6 +19,7 @@
 #include <libtu/util.h>
 #include <libtu/optparser.h>
 #include <libtu/errorlog.h>
+#include <libtu/prefix.h>
 #include <libextl/readconfig.h>
 #include <libmainloop/exec.h>
 
@@ -146,17 +147,27 @@ int main(int argc, char*argv[])
     char *efnam=NULL;
     bool may_continue=FALSE;
     bool noerrorlog=FALSE;
+    char *localedir;
 
     libtu_init(argv[0]);
-
-    if(!ioncore_init("ion3", argc, argv, LOCALEDIR))
+    
+#ifdef CF_RELOCATABLE_BIN_LOCATION
+    prefix_set(argv[0], CF_RELOCATABLE_BIN_LOCATION);
+#endif
+    
+    localedir=prefix_add(LOCALEDIR);
+    
+    if(!ioncore_init("ion3", argc, argv, localedir))
         return EXIT_FAILURE;
+    
+    if(localedir!=NULL)
+        free(localedir);
 
-    extl_add_searchdir(EXTRABINDIR); /* ion-completefile */
-    extl_add_searchdir(MODULEDIR);
-    extl_add_searchdir(ETCDIR);
-    extl_add_searchdir(SHAREDIR);
-    extl_add_searchdir(LCDIR);
+    prefix_wrap_simple(extl_add_searchdir, EXTRABINDIR); /* ion-completefile */
+    prefix_wrap_simple(extl_add_searchdir, MODULEDIR);
+    prefix_wrap_simple(extl_add_searchdir, ETCDIR);
+    prefix_wrap_simple(extl_add_searchdir, SHAREDIR);
+    prefix_wrap_simple(extl_add_searchdir, LCDIR);
     extl_set_userdirs("ion3");
 
     optparser_init(argc, argv, OPTP_MIDLONG, ion_opts);