[gdk-pixbuf] queryloaders: use an intermediate pixbuf_libdir variable
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdk-pixbuf] queryloaders: use an intermediate pixbuf_libdir variable
- Date: Fri, 12 Jan 2018 07:51:08 +0000 (UTC)
commit 49d722168029f0d897279bae5704d1fb930900f8
Author: Ignacio Casal Quinteiro <qignacio amazon com>
Date: Fri Jan 5 16:54:19 2018 +0100
queryloaders: use an intermediate pixbuf_libdir variable
This is to avoid undefining and redefining PIXBUF_LIBDIR on
windows
gdk-pixbuf/queryloaders.c | 33 ++++++++++++++++++++-------------
1 files changed, 20 insertions(+), 13 deletions(-)
---
diff --git a/gdk-pixbuf/queryloaders.c b/gdk-pixbuf/queryloaders.c
index 9c17624..da72ab3 100644
--- a/gdk-pixbuf/queryloaders.c
+++ b/gdk-pixbuf/queryloaders.c
@@ -257,16 +257,20 @@ int main (int argc, char **argv)
GString *contents;
gchar *cache_file = NULL;
gint first_file = 1;
+ gchar *pixbuf_libdir;
+
+ pixbuf_libdir = g_strdup (PIXBUF_LIBDIR);
#ifdef G_OS_WIN32
gchar *libdir;
- gchar *runtime_prefix;
- gchar *slash;
- if (g_ascii_strncasecmp (PIXBUF_LIBDIR, GDK_PIXBUF_PREFIX, strlen (GDK_PIXBUF_PREFIX)) == 0 &&
- G_IS_DIR_SEPARATOR (PIXBUF_LIBDIR[strlen (GDK_PIXBUF_PREFIX)])) {
- /* GDK_PIXBUF_PREFIX is a prefix of PIXBUF_LIBDIR, as it
- * normally is. Replace that prefix in PIXBUF_LIBDIR
+ if (g_ascii_strncasecmp (pixbuf_libdir, GDK_PIXBUF_PREFIX, strlen (GDK_PIXBUF_PREFIX)) == 0 &&
+ G_IS_DIR_SEPARATOR (pixbuf_libdir[strlen (GDK_PIXBUF_PREFIX)])) {
+ gchar *runtime_prefix;
+ gchar *slash;
+
+ /* GDK_PIXBUF_PREFIX is a prefix of pixbuf_libdir, as it
+ * normally is. Replace that prefix in pixbuf_libdir
* with the installation directory on this machine.
* We assume this invokation of
* gdk-pixbuf-query-loaders is run from either a "bin"
@@ -288,7 +292,7 @@ int main (int argc, char **argv)
if (slash == NULL ||
g_ascii_strcasecmp (slash + 1, ".libs") == 0 ||
g_ascii_strcasecmp (slash + 1, "gdk-pixbuf") == 0) {
- libdir = PIXBUF_LIBDIR;
+ libdir = NULL;
}
else {
if (slash != NULL && g_ascii_strcasecmp (slash + 1, "bin") == 0) {
@@ -296,17 +300,18 @@ int main (int argc, char **argv)
}
libdir = g_build_filename (runtime_prefix,
- PIXBUF_LIBDIR + strlen (GDK_PIXBUF_PREFIX) + 1,
+ pixbuf_libdir + strlen (GDK_PIXBUF_PREFIX) + 1,
NULL);
}
}
else {
- libdir = PIXBUF_LIBDIR;
+ libdir = NULL;
}
-#undef PIXBUF_LIBDIR
-#define PIXBUF_LIBDIR libdir
-
+ if (libdir != NULL) {
+ g_free (pixbuf_libdir);
+ pixbuf_libdir = libdir;
+ }
#endif
/* This call is necessary to ensure we actually link against libgobject;
@@ -354,7 +359,7 @@ int main (int argc, char **argv)
#endif
if (moduledir == NULL || *moduledir == '\0') {
g_free (moduledir);
- moduledir = g_strdup (PIXBUF_LIBDIR);
+ moduledir = g_strdup (pixbuf_libdir);
}
g_string_append_printf (contents, "# LoaderDir = %s\n#\n", moduledir);
@@ -408,5 +413,7 @@ int main (int argc, char **argv)
else
g_print ("%s\n", contents->str);
+ g_free (pixbuf_libdir);
+
return 0;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]