diff options
author | Tor Lillqvist <tml@iki.fi> | 2009-01-13 11:17:25 +0000 |
---|---|---|
committer | Tor Lillqvist <tml@src.gnome.org> | 2009-01-13 11:17:25 +0000 |
commit | c1e67e994cba12e992f1a731218497212cc48761 (patch) | |
tree | 503827048ac1a0df09ecda9ebc389327587c54c9 /gdk-pixbuf | |
parent | 30db57475064a2f0e2fd5bf6d4a525e98befbc04 (diff) | |
download | gtk+-c1e67e994cba12e992f1a731218497212cc48761.tar.gz |
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
Diffstat (limited to 'gdk-pixbuf')
-rw-r--r-- | gdk-pixbuf/ChangeLog | 16 | ||||
-rw-r--r-- | gdk-pixbuf/queryloaders.c | 38 |
2 files changed, 38 insertions, 16 deletions
diff --git a/gdk-pixbuf/ChangeLog b/gdk-pixbuf/ChangeLog index d50d57e481..ffeeb1892e 100644 --- a/gdk-pixbuf/ChangeLog +++ b/gdk-pixbuf/ChangeLog @@ -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> Bug 566862 – pixbuf_new_from_file does not autodetect format diff --git a/gdk-pixbuf/queryloaders.c b/gdk-pixbuf/queryloaders.c index e0850f7158..ba81638992 100644 --- a/gdk-pixbuf/queryloaders.c +++ b/gdk-pixbuf/queryloaders.c @@ -230,27 +230,33 @@ int main (int argc, char **argv) * subdirectory of the installation directory, or in * the installation directory itself. */ - if (G_WIN32_HAVE_WIDECHAR_API ()) { - wchar_t fn[1000]; - GetModuleFileNameW (NULL, fn, G_N_ELEMENTS (fn)); - 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); - } + wchar_t fn[1000]; + GetModuleFileNameW (NULL, fn, G_N_ELEMENTS (fn)); + runtime_prefix = g_utf16_to_utf8 (fn, -1, NULL, NULL, NULL); slash = strrchr (runtime_prefix, '\\'); *slash = '\0'; slash = strrchr (runtime_prefix, '\\'); - if (slash != NULL && g_ascii_strcasecmp (slash + 1, "bin") == 0) { - *slash = '\0'; + /* If running from some weird location, or from the + * 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, - "/", - PIXBUF_LIBDIR + strlen (GTK_PREFIX) + 1, - NULL); + libdir = g_strconcat (runtime_prefix, + "/", + PIXBUF_LIBDIR + strlen (GTK_PREFIX) + 1, + NULL); + } } else { libdir = PIXBUF_LIBDIR; |