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)
downloadpkg-config-bbbdab4c606a1996e6ba573336b425ccc136463c.tar.gz
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)]))
{