summaryrefslogtreecommitdiff
path: root/gdk-pixbuf
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2009-01-13 11:17:25 +0000
committerTor Lillqvist <tml@src.gnome.org>2009-01-13 11:17:25 +0000
commitc1e67e994cba12e992f1a731218497212cc48761 (patch)
tree503827048ac1a0df09ecda9ebc389327587c54c9 /gdk-pixbuf
parent30db57475064a2f0e2fd5bf6d4a525e98befbc04 (diff)
downloadgdk-pixbuf-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/ChangeLog16
-rw-r--r--gdk-pixbuf/queryloaders.c38
2 files changed, 38 insertions, 16 deletions
diff --git a/gdk-pixbuf/ChangeLog b/gdk-pixbuf/ChangeLog
index d50d57e48..ffeeb1892 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 e0850f715..ba8163899 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;