]> git.decadent.org.uk Git - ion3.git/blobdiff - ion/ion.c
Imported Upstream version 20090110
[ion3.git] / ion / ion.c
index 93a59776a7ef8a5b7fcd4a5e0d9cda17388a0430..9e0c2538c308700b0ed73e23624e2515f400137d 100644 (file)
--- a/ion/ion.c
+++ b/ion/ion.c
@@ -1,12 +1,9 @@
 /*
  * ion/ion/ion.c
  *
- * Copyright (c) Tuomo Valkonen 1999-2006
+ * Copyright (c) Tuomo Valkonen 1999-2009
  *
- * Ion is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
+ * See the included file LICENSE for details.
  */
 
 #include <stdlib.h>
@@ -22,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>
 
@@ -48,16 +46,8 @@ static OptParserOpt ion_opts[]={
      DUMMY_TR("Add directory to search path")},
 
     {OPT_ID('o'), "oneroot",  0, NULL,
-     DUMMY_TR("Manage default root window/non-Xinerama screen only")},
+     DUMMY_TR("Manage default screen only")},
 
-#if defined(CF_XINERAMA) || defined(CF_SUN_XINERAMA)
-    {OPT_ID('x'), "xinerama", OPT_ARG, "1|0", 
-     DUMMY_TR("Use Xinerama screen information (default: 1/yes)")},
-#else
-    {OPT_ID('x'), "xinerama", OPT_ARG, "?", 
-     DUMMY_TR("Ignored: not compiled with Xinerama support")},
-#endif
-    
     {OPT_ID('s'), "session",  OPT_ARG, "session_name", 
      DUMMY_TR("Name of session (affects savefiles)")},
     
@@ -137,7 +127,7 @@ void check_new_user_help()
 static void help()
 {
     int i;
-    printf(TR("Usage: %s [options]\n\n"), prog_execname());
+    printf(TR("Usage: %s [options]\n\n"), libtu_progname());
     for(i=0; ion_opts[i].descr!=NULL; i++)
         ion_opts[i].descr=TR(ion_opts[i].descr);
     optparser_printhelp(OPTP_MIDLONG, ion_opts);
@@ -157,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);
@@ -189,17 +189,6 @@ int main(int argc, char*argv[])
         case OPT_ID('o'):
             stflags|=IONCORE_STARTUP_ONEROOT;
             break;
-        case OPT_ID('x'):
-            {
-                const char *p=optparser_get_arg();
-                if(strcmp(p, "1")==0)
-                    stflags&=~IONCORE_STARTUP_NOXINERAMA;
-                else if(strcmp(p, "0")==0)
-                    stflags|=IONCORE_STARTUP_NOXINERAMA;
-                else
-                    warn(TR("Invalid parameter to -xinerama."));
-            }
-            break;
         case OPT_ID('s'):
             extl_set_sessiondir(optparser_get_arg());
             break;
@@ -259,7 +248,7 @@ fail:
             fclose(ef);
             pid=fork();
             if(pid==0){
-                ioncore_setup_environ(DefaultScreen(ioncore_g.dpy));
+                ioncore_setup_display(DefaultScreen(ioncore_g.dpy));
                 if(!may_continue)
                     XCloseDisplay(ioncore_g.dpy);
                 else