summaryrefslogtreecommitdiff
path: root/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'parse.c')
-rw-r--r--parse.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/parse.c b/parse.c
index 9d996d4..ca0de2a 100644
--- a/parse.c
+++ b/parse.c
@@ -1011,18 +1011,25 @@ parse_line (Package *pkg, const char *untrimmed, const char *path, gboolean igno
gchar *prefix = pkg->pcfiledir;
const int prefix_len = strlen (prefix);
const char *const lib_pkgconfig = "\\lib\\pkgconfig";
+ const char *const share_pkgconfig = "\\share\\pkgconfig";
const int lib_pkgconfig_len = strlen (lib_pkgconfig);
+ const int share_pkgconfig_len = strlen (share_pkgconfig);
- if (strlen (prefix) > lib_pkgconfig_len &&
- pathnamecmp (prefix + prefix_len - lib_pkgconfig_len,
- lib_pkgconfig) == 0)
+ if ((strlen (prefix) > lib_pkgconfig_len &&
+ pathnamecmp (prefix + prefix_len - lib_pkgconfig_len, lib_pkgconfig) == 0) ||
+ (strlen (prefix) > share_pkgconfig_len &&
+ pathnamecmp (prefix + prefix_len - share_pkgconfig_len, share_pkgconfig) == 0))
{
- /* It ends in lib\pkgconfig. Good. */
+ /* It ends in lib\pkgconfig or share\pkgconfig. Good. */
gchar *p;
prefix = g_strdup (prefix);
- prefix[prefix_len - lib_pkgconfig_len] = '\0';
+ if (strlen (prefix) > lib_pkgconfig_len &&
+ pathnamecmp (prefix + prefix_len - lib_pkgconfig_len, lib_pkgconfig) == 0)
+ prefix[prefix_len - lib_pkgconfig_len] = '\0';
+ else
+ prefix[prefix_len - share_pkgconfig_len] = '\0';
/* Turn backslashes into slashes or
* poptParseArgvString() will eat them when ${prefix}