gtk+ r22106 - trunk/gdk-pixbuf



Author: tml
Date: Tue Jan 13 11:17:25 2009
New Revision: 22106
URL: http://svn.gnome.org/viewvc/gtk+?rev=22106&view=rev

Log:
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.



Modified:
   trunk/gdk-pixbuf/ChangeLog
   trunk/gdk-pixbuf/queryloaders.c

Modified: trunk/gdk-pixbuf/queryloaders.c
==============================================================================
--- trunk/gdk-pixbuf/queryloaders.c	(original)
+++ trunk/gdk-pixbuf/queryloaders.c	Tue Jan 13 11:17:25 2009
@@ -230,27 +230,33 @@
 		 * 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;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]