X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fmain.cc;h=d212edef92fdfd2bb3f5f97baf46fc731cfb4f63;hb=dd4c0e040f83c1d28a2600db8a8bc70dc1fba0d3;hp=ceb6ceb3120bc349f32598d05e3b80700c3f251b;hpb=e5888d398350b26ba2cdc634cc9791e90b4fc6b6;p=ardour.git diff --git a/gtk2_ardour/main.cc b/gtk2_ardour/main.cc index ceb6ceb312..d212edef92 100644 --- a/gtk2_ardour/main.cc +++ b/gtk2_ardour/main.cc @@ -31,6 +31,7 @@ #include "pbd/file_utils.h" #include "pbd/textreceiver.h" #include "pbd/failed_constructor.h" +#include "pbd/pathexpand.h" #include "pbd/pthread_utils.h" #ifdef BOOST_SP_ENABLE_DEBUG_HOOKS #include "pbd/boost_debug.h" @@ -101,7 +102,7 @@ gui_jack_error () static void export_search_path (const string& base_dir, const char* varname, const char* dir) { string path; - const char * cstr = getenv (varname); + const char * cstr = g_getenv (varname); if (cstr) { path = cstr; @@ -112,7 +113,7 @@ static void export_search_path (const string& base_dir, const char* varname, con path += base_dir; path += dir; - setenv (varname, path.c_str(), 1); + g_setenv (varname, path.c_str(), 1); } #ifdef __APPLE__ @@ -125,7 +126,7 @@ extern void set_language_preference (); // cocoacarbon.mm void fixup_bundle_environment (int, char* []) { - if (!getenv ("ARDOUR_BUNDLED")) { + if (!g_getenv ("ARDOUR_BUNDLED")) { return; } @@ -153,7 +154,7 @@ fixup_bundle_environment (int, char* []) vector lpath; lpath.push_back (bundle_dir); - lpath.push_back ("share"); + lpath.push_back ("Resources"); lpath.push_back ("locale"); localedir = strdup (Glib::build_filename (lpath).c_str()); } @@ -172,15 +173,15 @@ fixup_bundle_environment (int, char* []) export_search_path (bundle_dir, "ARDOUR_INSTANT_XML_PATH", "/Resources"); export_search_path (bundle_dir, "LADSPA_PATH", "/Plugins"); export_search_path (bundle_dir, "VAMP_PATH", "/lib"); - export_search_path (bundle_dir, "SUIL_MODULE_DIR", "/lib"); export_search_path (bundle_dir, "GTK_PATH", "/lib/gtkengines"); - setenv ("PATH", (bundle_dir + "/MacOS:" + std::string(getenv ("PATH"))).c_str(), 1); + g_setenv ("SUIL_MODULE_DIR", (bundle_dir + "/lib").c_str(), 1); + g_setenv ("PATH", (bundle_dir + "/MacOS:" + std::string(g_getenv ("PATH"))).c_str(), 1); /* unset GTK_RC_FILES so that we only load the RC files that we define */ - unsetenv ("GTK_RC_FILES"); + g_unsetenv ("GTK_RC_FILES"); /* write a pango.rc file and tell pango to use it. we'd love to put this into the PROGRAM_NAME.app bundle and leave it there, @@ -205,13 +206,13 @@ fixup_bundle_environment (int, char* []) << endl; pangorc.close (); - setenv ("PANGO_RC_FILE", path.c_str(), 1); + g_setenv ("PANGO_RC_FILE", path.c_str(), 1); } } - setenv ("CHARSETALIASDIR", bundle_dir.c_str(), 1); - setenv ("FONTCONFIG_FILE", Glib::build_filename (bundle_dir, "Resources/fonts.conf").c_str(), 1); - setenv ("GDK_PIXBUF_MODULE_FILE", Glib::build_filename (bundle_dir, "Resources/gdk-pixbuf.loaders").c_str(), 1); + g_setenv ("CHARSETALIASDIR", bundle_dir.c_str(), 1); + g_setenv ("FONTCONFIG_FILE", Glib::build_filename (bundle_dir, "Resources/fonts.conf").c_str(), 1); + g_setenv ("GDK_PIXBUF_MODULE_FILE", Glib::build_filename (bundle_dir, "Resources/gdk-pixbuf.loaders").c_str(), 1); } static void load_custom_fonts() { @@ -249,7 +250,7 @@ fixup_bundle_environment (int /*argc*/, char* argv[]) * acceptable to build paths directly using '/'. */ - if (!getenv ("ARDOUR_BUNDLED")) { + if (!g_getenv ("ARDOUR_BUNDLED")) { return; } @@ -268,7 +269,7 @@ fixup_bundle_environment (int /*argc*/, char* argv[]) lpath.push_back (dir_path); lpath.push_back ("share"); lpath.push_back ("locale"); - localedir = realpath (Glib::build_filename (lpath).c_str(), NULL); + localedir = canonical_path (Glib::build_filename (lpath)).c_str(); } #endif @@ -282,23 +283,23 @@ fixup_bundle_environment (int /*argc*/, char* argv[]) export_search_path (dir_path, "ARDOUR_DATA_PATH", "/share"); export_search_path (dir_path, "LADSPA_PATH", "/plugins"); export_search_path (dir_path, "VAMP_PATH", "/lib"); - export_search_path (dir_path, "SUIL_MODULE_DIR", "/lib"); export_search_path (dir_path, "GTK_PATH", "/lib/gtkengines"); - setenv ("PATH", (dir_path + "/bin:" + std::string(getenv ("PATH"))).c_str(), 1); + g_setenv ("SUIL_MODULE_DIR", (dir_path + "/lib").c_str(), 1); + g_setenv ("PATH", (dir_path + "/bin:" + std::string(g_getenv ("PATH"))).c_str(), 1); /* unset GTK_RC_FILES so that we only load the RC files that we define */ - unsetenv ("GTK_RC_FILES"); + g_unsetenv ("GTK_RC_FILES"); /* Tell fontconfig where to find fonts.conf. Use the system version if it exists, otherwise use the stuff we included in the bundle */ if (Glib::file_test ("/etc/fonts/fonts.conf", Glib::FILE_TEST_EXISTS)) { - setenv ("FONTCONFIG_FILE", "/etc/fonts/fonts.conf", 1); - setenv ("FONTCONFIG_PATH", "/etc/fonts", 1); + g_setenv ("FONTCONFIG_FILE", "/etc/fonts/fonts.conf", 1); + g_setenv ("FONTCONFIG_PATH", "/etc/fonts", 1); } else { error << _("No fontconfig file found on your system. Things may looked very odd or ugly") << endmsg; } @@ -327,19 +328,19 @@ fixup_bundle_environment (int /*argc*/, char* argv[]) pangorc.close (); } - setenv ("PANGO_RC_FILE", path.c_str(), 1); + g_setenv ("PANGO_RC_FILE", path.c_str(), 1); /* similar for GDK pixbuf loaders, but there's no RC file required to specify where it lives. */ - setenv ("GDK_PIXBUF_MODULE_FILE", Glib::build_filename (userconfigdir, "gdk-pixbuf.loaders").c_str(), 1); + g_setenv ("GDK_PIXBUF_MODULE_FILE", Glib::build_filename (userconfigdir, "gdk-pixbuf.loaders").c_str(), 1); } /* this doesn't do much but setting it should prevent various parts of the GTK/GNU stack from looking outside the bundle to find the charset.alias file. */ - setenv ("CHARSETALIASDIR", dir_path.c_str(), 1); + g_setenv ("CHARSETALIASDIR", dir_path.c_str(), 1); } @@ -460,7 +461,7 @@ int main (int argc, char *argv[]) text_receiver.listen_to (warning); #ifdef BOOST_SP_ENABLE_DEBUG_HOOKS - if (getenv ("BOOST_DEBUG")) { + if (g_getenv ("BOOST_DEBUG")) { boost_debug_shared_ptr_show_live_debugging (true); } #endif @@ -505,9 +506,11 @@ int main (int argc, char *argv[]) return curvetest (curvetest_file); } +#ifndef PLATFORM_WINDOWS if (::signal (SIGPIPE, sigpipe_handler)) { cerr << _("Cannot xinstall SIGPIPE error handler") << endl; } +#endif try { ui = new ARDOUR_UI (&argc, &argv, localedir);