pingus-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pingus-Devel] PATCH: fix --datadir option


From: Hans de Goede
Subject: [Pingus-Devel] PATCH: fix --datadir option
Date: Sun, 13 Aug 2006 11:21:04 +0200
User-agent: Thunderbird 1.5.0.4 (X11/20060613)

Hi all,

Currently the --datadir option to pingus doesn't work because the
searchpath gets set in the code before the commandline is parsed, the
attached patch fixes this.

Regards,

Hans
--- pingus-20060721/src/pingus_main.hxx.datapath        2006-07-21 
19:49:31.000000000 +0200
+++ pingus-20060721/src/pingus_main.hxx 2006-07-21 19:49:54.000000000 +0200
@@ -87,6 +87,7 @@
   void deinit_clanlib();
 
   void init_pingus();
+  void init_gettext();
   void init_path_finder();
   void deinit_pingus();
 
--- pingus-20060721/src/pingus_main.cxx.datapath        2006-07-21 
19:42:41.000000000 +0200
+++ pingus-20060721/src/pingus_main.cxx 2006-07-21 19:50:20.000000000 +0200
@@ -570,9 +570,10 @@
   CFRelease(ref);
   path_manager.add_path(CL_String::get_path(std::string(resource_path) + 
"/data/"));
 #else
-  path_manager.add_path(CL_String::get_path(CL_System::get_exe_path() + 
"/data/"));
-  path_manager.add_path(CL_String::get_path(CL_System::get_exe_path() + 
"/../data/"));
-  path_manager.add_path(CL_String::get_path(CL_System::get_exe_path() + 
"/../share/games/pingus/"));
+  char *env_path;
+  path_manager.add_path(PINGUS_DATADIR);
+  if ((env_path=getenv("PINGUS_DATADIR")))
+    path_manager.add_path(env_path);
 #endif
 
   std::list<std::string> file_list;
@@ -585,7 +586,12 @@
                 << "-d option." << std::endl;
       exit(EXIT_FAILURE);
     }
+}
 
+// Initialize locale stuff
+void
+PingusMain::init_gettext()
+{
 #ifdef HAVE_GETTEXT
   textdomain("pingus");
   setlocale(LC_ALL, "");
@@ -830,12 +836,14 @@
 
   try
     {
-      init_path_finder();
+      init_gettext();
 
       quick_check_args(argc, argv);
       read_rc_file();
       check_args(argc, argv);
 
+      init_path_finder();
+
       print_greeting_message();
 #ifdef HAVE_GETTEXT
       setlocale(LC_ALL, font_encoding_locale);

reply via email to

[Prev in Thread] Current Thread [Next in Thread]