openbsd-ports/devel/pkgconfig/patches/patch-pkg_c
jasper 9ede0b1032 - update to 0.25
- switch to new depends
- set license version
2010-09-28 11:41:22 +00:00

69 lines
1.8 KiB
Plaintext

$OpenBSD: patch-pkg_c,v 1.8 2010/09/28 11:41:22 jasper Exp $
--- pkg.c.orig Sat May 8 22:14:17 2010
+++ pkg.c Tue Sep 28 13:23:56 2010
@@ -403,7 +403,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;
@@ -983,6 +1031,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);