d9b65f8543
although not actively used anymore, it is still handy as a reference application for our own pkg-config. ok landry@ espie@ agreed updating it
69 lines
1.8 KiB
Plaintext
69 lines
1.8 KiB
Plaintext
$OpenBSD: patch-pkg_c,v 1.7 2008/10/25 16:44:56 jasper Exp $
|
|
--- pkg.c.orig Wed Jan 16 22:59:49 2008
|
|
+++ pkg.c Sat Oct 25 16:53:23 2008
|
|
@@ -393,7 +393,55 @@ get_package_quiet (const char *name)
|
|
return internal_get_package (name, FALSE, TRUE);
|
|
}
|
|
|
|
+/*
|
|
+ If certain directories are present, move them to the end of the list
|
|
+ to avoid conflicts.
|
|
+*/
|
|
static GSList*
|
|
+string_list_fix_local_I_dirs (GSList *list)
|
|
+{
|
|
+ GSList *iter;
|
|
+ GSList *local_I_dirs = NULL;
|
|
+ GSList *local_I_dir_iter = NULL;
|
|
+ GSList *found_dirs = NULL;
|
|
+
|
|
+ iter = list;
|
|
+
|
|
+ local_I_dirs = g_slist_append (local_I_dirs, g_strdup_printf ("-I%s/include", LOCALBASE));
|
|
+ local_I_dirs = g_slist_append (local_I_dirs, g_strdup_printf ("-I%s/include", X11BASE));
|
|
+
|
|
+ while (iter != NULL)
|
|
+ {
|
|
+ local_I_dir_iter = local_I_dirs;
|
|
+ while (local_I_dir_iter != NULL)
|
|
+ {
|
|
+ if (strcmp (local_I_dir_iter->data, iter->data) == 0)
|
|
+ {
|
|
+ debug_spew ("List contains \"%s\" - moving it to the end\n", (gchar *)iter->data);
|
|
+ found_dirs = g_slist_append (found_dirs, iter->data);
|
|
+ iter->data = NULL;
|
|
+ break;
|
|
+ }
|
|
+ local_I_dir_iter = local_I_dir_iter->next;
|
|
+ }
|
|
+ iter = iter->next;
|
|
+ }
|
|
+
|
|
+ g_slist_free (local_I_dirs);
|
|
+
|
|
+ while (found_dirs != NULL)
|
|
+ {
|
|
+ list = g_slist_remove (list, NULL);
|
|
+ list = g_slist_append (list, found_dirs->data);
|
|
+ found_dirs = found_dirs->next;
|
|
+ }
|
|
+
|
|
+ g_slist_free (found_dirs);
|
|
+
|
|
+ return list;
|
|
+}
|
|
+
|
|
+static GSList*
|
|
string_list_strip_duplicates (GSList *list)
|
|
{
|
|
GHashTable *table;
|
|
@@ -979,6 +1027,8 @@ get_merged (Package *pkg, GetListFunc func, gboolean i
|
|
|
|
g_slist_free (dups_list);
|
|
|
|
+ list = string_list_fix_local_I_dirs (list);
|
|
+
|
|
retval = string_list_to_string (list);
|
|
|
|
g_slist_free (list);
|