Bug 164002 - query scripts don't work uninstalled on windows

2009-01-12  Tor Lillqvist  <tml@iki.fi>

	Bug 164002 - query scripts don't work uninstalled on windows

	* queryloaders.c (main): Use the configure-time PIXBUF_LIBDIR if
	the exe is located in a .libs folder, i.e. run in the build
	directory through a libtool wrapper script or wrapper executable,
	or in the source folder itself. Otherwise continue to infer the
	runtime prefix from the exe's location.

2009-01-12  Tor Lillqvist  <tml@iki.fi>

	* queryloaders.c (main): Remove the Win9x code path. It had been
	left by mistake. Win9x code is gone from the rest of GTK+ since
	2.12.


svn path=/trunk/; revision=22106
This commit is contained in:
Tor Lillqvist 2009-01-13 11:17:25 +00:00 committed by Tor Lillqvist
parent 30db574750
commit c1e67e994c
2 changed files with 38 additions and 16 deletions

View File

@ -1,3 +1,19 @@
2009-01-12 Tor Lillqvist <tml@iki.fi>
Bug 164002 - query scripts don't work uninstalled on windows
* queryloaders.c (main): Use the configure-time PIXBUF_LIBDIR if
the exe is located in a .libs folder, i.e. run in the build
directory through a libtool wrapper script or wrapper executable,
or in the source folder itself. Otherwise continue to infer the
runtime prefix from the exe's location.
2009-01-12 Tor Lillqvist <tml@iki.fi>
* queryloaders.c (main): Remove the Win9x code path. It had been
left by mistake. Win9x code is gone from the rest of GTK+ since
2.12.
2009-01-07 Matthias Clasen <mclasen@redhat.com> 2009-01-07 Matthias Clasen <mclasen@redhat.com>
Bug 566862 pixbuf_new_from_file does not autodetect format Bug 566862 pixbuf_new_from_file does not autodetect format

View File

@ -230,27 +230,33 @@ int main (int argc, char **argv)
* subdirectory of the installation directory, or in * subdirectory of the installation directory, or in
* the installation directory itself. * the installation directory itself.
*/ */
if (G_WIN32_HAVE_WIDECHAR_API ()) { wchar_t fn[1000];
wchar_t fn[1000]; GetModuleFileNameW (NULL, fn, G_N_ELEMENTS (fn));
GetModuleFileNameW (NULL, fn, G_N_ELEMENTS (fn)); runtime_prefix = g_utf16_to_utf8 (fn, -1, NULL, NULL, NULL);
runtime_prefix = g_utf16_to_utf8 (fn, -1, NULL, NULL, NULL);
}
else {
char fn[1000];
GetModuleFileNameA (NULL, fn, G_N_ELEMENTS (fn));
runtime_prefix = g_locale_to_utf8 (fn, -1, NULL, NULL, NULL);
}
slash = strrchr (runtime_prefix, '\\'); slash = strrchr (runtime_prefix, '\\');
*slash = '\0'; *slash = '\0';
slash = strrchr (runtime_prefix, '\\'); slash = strrchr (runtime_prefix, '\\');
if (slash != NULL && g_ascii_strcasecmp (slash + 1, "bin") == 0) { /* If running from some weird location, or from the
*slash = '\0'; * build directory (either in the .libs folder where
* libtool places the real executable when using a
* wrapper, or directly from the gdk-pixbuf folder),
* use the compile-time libdir.
*/
if (slash == NULL ||
g_ascii_strcasecmp (slash + 1, ".libs") == 0 ||
g_ascii_strcasecmp (slash + 1, "gdk-pixbuf") == 0) {
libdir = PIXBUF_LIBDIR;
} }
else {
if (slash != NULL && g_ascii_strcasecmp (slash + 1, "bin") == 0) {
*slash = '\0';
}
libdir = g_strconcat (runtime_prefix, libdir = g_strconcat (runtime_prefix,
"/", "/",
PIXBUF_LIBDIR + strlen (GTK_PREFIX) + 1, PIXBUF_LIBDIR + strlen (GTK_PREFIX) + 1,
NULL); NULL);
}
} }
else { else {
libdir = PIXBUF_LIBDIR; libdir = PIXBUF_LIBDIR;