--- 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 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);