openbsd-ports/devel/pkgconfig/patches/patch-pkg_c
marcm 76c569d7a1 Update to 0.15.0
This update itself doesn't change anything that effects OpenBSD but I
wanted to sync the port with the current version (that has been out for
quite some time).

This port once again builds and statically links against its own internal
glib sources rather than pull in glib-1.2 from ports.  It seemed kinda
silly to build glib-1.2 to build glib-2.0 apps.
2003-09-23 05:59:34 +00:00

68 lines
1.8 KiB
Plaintext

$OpenBSD: patch-pkg_c,v 1.4 2003/09/23 05:59:34 marcm Exp $
--- pkg.c.orig 2003-01-16 13:07:09.000000000 -0800
+++ pkg.c 2003-09-05 11:19:25.000000000 -0700
@@ -339,6 +339,54 @@ get_package (const char *name)
return internal_get_package (name, TRUE, 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)
{
@@ -929,6 +977,8 @@ get_multi_merged (GSList *pkgs, GetListF
g_slist_free (dups_list);
+ list = string_list_fix_local_I_dirs (list);
+
retval = string_list_to_string (list);
g_slist_free (list);