summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Nicholson <dbn.lists@gmail.com>2016-08-24 10:32:57 -0700
committerDan Nicholson <dbn.lists@gmail.com>2016-08-30 09:41:54 -0700
commitbbbdab4c606a1996e6ba573336b425ccc136463c (patch)
treec5439fea55f605873f8119fe64ba71ce8daa1b3c
parent091722179bda0a6dcf388fbfdfcd948b1cb53e9f (diff)
Don't override empty prefix setting
If the original prefix setting is empty, skip prepending the redefined prefix to other variables. This works the same as if the pc file doesn't have a prefix variable at all. https://bugs.freedesktop.org/show_bug.cgi?id=97453-empty
-rw-r--r--check/Makefile.am1
-rwxr-xr-xcheck/check-relocatable7
-rw-r--r--check/pkgconfig/empty-prefix.pc10
-rw-r--r--parse.c1
4 files changed, 19 insertions, 0 deletions
diff --git a/check/Makefile.am b/check/Makefile.am
index f6d88e9..cf26019 100644
--- a/check/Makefile.am
+++ b/check/Makefile.am
@@ -99,6 +99,7 @@ EXTRA_DIST = \
gtk/xproto.pc \
gtk/xrender.pc \
tilde.pc \
+ pkgconfig/empty-prefix.pc \
pkgconfig/prefixdef.pc \
pkgconfig/prefixdef-expanded.pc \
pcfiledir.pc \
diff --git a/check/check-relocatable b/check/check-relocatable
index 589eddf..40c2c88 100755
--- a/check/check-relocatable
+++ b/check/check-relocatable
@@ -44,3 +44,10 @@ for pkg in prefixdef prefixdef-expanded; do
RESULT="-I/reloc/include -L/reloc/lib -lfoo"
run_test --dont-define-prefix --cflags --libs $pkg
done
+
+# Test prefix redefinition for .pc files with an empty prefix. In this
+# case, there should be no prefix adjustment to the other variables. The
+# result should be the same regardless of prefix redefinition.
+RESULT="-I/some/path/include -L/some/path/lib -lfoo"
+run_test --define-prefix --cflags --libs empty-prefix
+run_test --dont-define-prefix --cflags --libs empty-prefix
diff --git a/check/pkgconfig/empty-prefix.pc b/check/pkgconfig/empty-prefix.pc
new file mode 100644
index 0000000..9007250
--- /dev/null
+++ b/check/pkgconfig/empty-prefix.pc
@@ -0,0 +1,10 @@
+prefix=
+libdir=/some/path/lib
+includedir=/some/path/include
+
+Name: Empty prefix redefinition test
+Description: Test pkg-config empty prefix redefinition
+Version: 1.0.0
+Requires:
+Libs: -L${libdir} -lfoo
+Cflags: -I${includedir}
diff --git a/parse.c b/parse.c
index 4da6702..229d6f2 100644
--- a/parse.c
+++ b/parse.c
@@ -1046,6 +1046,7 @@ parse_line (Package *pkg, const char *untrimmed, const char *path,
}
else if (define_prefix &&
pkg->orig_prefix != NULL &&
+ *(pkg->orig_prefix) != '\0' &&
strncmp (p, pkg->orig_prefix, strlen (pkg->orig_prefix)) == 0 &&
G_IS_DIR_SEPARATOR (p[strlen (pkg->orig_prefix)]))
{