13
0

define CHARSETALIASDIR (again) to stop various bits of the GNU stack from loading a charset.alias file that we did not provide; slightly rearrange logic of fixup_bundle() so that we can do more stuff even if we can't write to the user ardour conf dir (as in 2.X)

git-svn-id: svn://localhost/ardour2/branches/3.0@12771 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2012-06-18 21:33:55 +00:00
parent a8237f1aed
commit a11d9d4e5a

View File

@ -184,31 +184,24 @@ fixup_bundle_environment (int, char* [])
if (g_mkdir_with_parents (userconfigdir.c_str(), 0755) < 0) { if (g_mkdir_with_parents (userconfigdir.c_str(), 0755) < 0) {
error << string_compose (_("cannot create user ardour folder %1 (%2)"), userconfigdir, strerror (errno)) error << string_compose (_("cannot create user ardour folder %1 (%2)"), userconfigdir, strerror (errno))
<< endmsg; << endmsg;
return;
}
path = Glib::build_filename (userconfigdir, "pango.rc");
std::ofstream pangorc (path.c_str());
if (!pangorc) {
error << string_compose (_("cannot open pango.rc file %1") , path) << endmsg;
} else { } else {
pangorc << "[Pango]\nModuleFiles="
<< Glib::build_filename (bundle_dir, "Resources/pango.modules") path = Glib::build_filename (userconfigdir, "pango.rc");
<< endl; std::ofstream pangorc (path.c_str());
pangorc.close (); if (!pangorc) {
error << string_compose (_("cannot open pango.rc file %1") , path) << endmsg;
setenv ("PANGO_RC_FILE", path.c_str(), 1); } else {
pangorc << "[Pango]\nModuleFiles="
<< Glib::build_filename (bundle_dir, "Resources/pango.modules")
<< endl;
pangorc.close ();
setenv ("PANGO_RC_FILE", path.c_str(), 1);
}
} }
// gettext charset aliases XXX do we really need this, since the path setenv ("CHARSETALIASDIR", dir_path.c_str(), 1);
// is totally wrong?
setenv ("CHARSETALIASDIR", path.c_str(), 1);
setenv ("FONTCONFIG_FILE", Glib::build_filename (bundle_dir, "Resources/fonts.conf").c_str(), 1); setenv ("FONTCONFIG_FILE", Glib::build_filename (bundle_dir, "Resources/fonts.conf").c_str(), 1);
// GDK Pixbuf loader module file
setenv ("GDK_PIXBUF_MODULE_FILE", Glib::build_filename (bundle_dir, "Resources/gdk-pixbuf.loaders").c_str(), 1); setenv ("GDK_PIXBUF_MODULE_FILE", Glib::build_filename (bundle_dir, "Resources/gdk-pixbuf.loaders").c_str(), 1);
} }
@ -280,27 +273,33 @@ fixup_bundle_environment (int /*argc*/, char* argv[])
if (g_mkdir_with_parents (userconfigdir.c_str(), 0755) < 0) { if (g_mkdir_with_parents (userconfigdir.c_str(), 0755) < 0) {
error << string_compose (_("cannot create user ardour folder %1 (%2)"), userconfigdir, strerror (errno)) error << string_compose (_("cannot create user ardour folder %1 (%2)"), userconfigdir, strerror (errno))
<< endmsg; << endmsg;
return;
}
path = Glib::build_filename (userconfigdir, "pango.rc");
std::ofstream pangorc (path.c_str());
if (!pangorc) {
error << string_compose (_("cannot open pango.rc file %1") , path) << endmsg;
} else { } else {
pangorc << "[Pango]\nModuleFiles="
<< Glib::build_filename (userconfigdir, "pango.modules") path = Glib::build_filename (userconfigdir, "pango.rc");
<< endl; std::ofstream pangorc (path.c_str());
pangorc.close (); if (!pangorc) {
error << string_compose (_("cannot open pango.rc file %1") , path) << endmsg;
} else {
pangorc << "[Pango]\nModuleFiles="
<< Glib::build_filename (userconfigdir, "pango.modules")
<< endl;
pangorc.close ();
}
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);
} }
setenv ("PANGO_RC_FILE", path.c_str(), 1);
/* similar for GDK pixbuf loaders, but there's no RC file required /* this doesn't do much but setting it should prevent various parts of the GTK/GNU stack
to specify where it lives. from looking outside the bundle to find the charset.alias file.
*/ */
setenv ("CHARSETALIASDIR", dir_path.c_str(), 1);
setenv ("GDK_PIXBUF_MODULE_FILE", Glib::build_filename (userconfigdir, "gdk-pixbuf.loaders").c_str(), 1);
} }
#endif #endif