/* eel-glib-extensions.c - implementation of new functions that conceptually * belong in glib. Perhaps some of these will be * actually rolled into glib someday. * * Copyright (C) 2000 Eazel, Inc. * * The Gnome Library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * see . * * Authors: John Sullivan */ #include #include "eel-glib-extensions.h" #include "eel-debug.h" #include "eel-lib-self-check-functions.h" #include "eel-string.h" #include #include #include gboolean eel_g_strv_equal (char **a, char **b) { int i; if (g_strv_length (a) != g_strv_length (b)) { return FALSE; } for (i = 0; a[i] != NULL; i++) { if (strcmp (a[i], b[i]) != 0) { return FALSE; } } return TRUE; } static int compare_pointers (gconstpointer pointer_1, gconstpointer pointer_2) { if ((const char *) pointer_1 < (const char *) pointer_2) { return -1; } if ((const char *) pointer_1 > (const char *) pointer_2) { return +1; } return 0; } gboolean eel_g_lists_sort_and_check_for_intersection (GList **list_1, GList **list_2) { GList *node_1, *node_2; int compare_result; *list_1 = g_list_sort (*list_1, compare_pointers); *list_2 = g_list_sort (*list_2, compare_pointers); node_1 = *list_1; node_2 = *list_2; while (node_1 != NULL && node_2 != NULL) { compare_result = compare_pointers (node_1->data, node_2->data); if (compare_result == 0) { return TRUE; } if (compare_result <= 0) { node_1 = node_1->next; } if (compare_result >= 0) { node_2 = node_2->next; } } return FALSE; } #if !defined (EEL_OMIT_SELF_CHECK) #endif /* !EEL_OMIT_SELF_CHECK */