Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=0f51f322ce3047cd550a61f2bc54ec8e8624c142

commit 0f51f322ce3047cd550a61f2bc54ec8e8624c142
Author: Michel Hermier <[email protected]>
Date:   Mon Aug 18 15:01:58 2014 +0200

libpacman: Merge C FList implementation into fptrlist.h.

diff --git a/lib/libpacman/CMakeLists.txt b/lib/libpacman/CMakeLists.txt
index 82cbf7d..ebe5494 100644
--- a/lib/libpacman/CMakeLists.txt
+++ b/lib/libpacman/CMakeLists.txt
@@ -24,7 +24,6 @@ set(FLIB_SOURCES
util/fcallback.h
util/fdispatchlogger.c
util/fdispatchlogger.h
-       util/flist.c
util/flist.h
util/ffilelogger.c
util/ffilelogger.h
diff --git a/lib/libpacman/util/flist.c b/lib/libpacman/util/flist.c
deleted file mode 100644
index 60e1890..0000000
--- a/lib/libpacman/util/flist.c
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- *  flist.c
- *
- *  Copyright (c) 2002-2006 by Judd Vinet <[email protected]>
- *  Copyright (c) 2013 by Michel Hermier <[email protected]>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program 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 General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- *  USA.
- */
-
-#include "config.h"
-
-#include "util/fptrlist.h"
-
-#include "fstdlib.h"
-
-#include <assert.h>
-
-#ifndef F_NOCOMPAT
-#define previous prev
-#endif
-
-int f_listitem_delete(FListItem *self, FVisitor *visitor)
-{
-       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
-
-       f_visit(self, visitor);
-       free(self);
-       return 0;
-}
-
-int f_listitem_insert_after(FListItem *self, FListItem *previous)
-{
-       FListItem *next;
-
-       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
-       ASSERT(previous != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
-
-       next = previous->next;
-       previous->next = self;
-       self->next = next;
-       self->previous = previous;
-#ifndef F_NOCOMPAT
-       if (next != NULL)
-#endif
-       next->previous = self;
-       return 0;
-}
-
-FListItem *f_listitem_next(FListItem *self)
-{
-       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, NULL));
-
-       return self->next;
-}
-
-FListItem *f_listitem_previous(FListItem *self)
-{
-       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, NULL));
-
-       return self->previous;
-}
-
-FList *f_list_new()
-{
-#ifndef F_NOCOMPAT
-       return NULL;
-#else
-       FList *self;
-
-       ASSERT((self = f_zalloc(sizeof(*self))) != NULL, return NULL);
-
-       f_list_init(self);
-       return self;
-#endif
-}
-
-int f_list_delete(FList *self, FVisitor *visitor)
-{
-       return f_list_fini(self, visitor);
-}
-
-int f_list_init(FList *self)
-{
-       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
-
-#ifdef F_NOCOMPAT
-       self->as_FListItem.next = self->as_FListItem.previous = 
&self->as_FListItem;
-#endif
-       return 0;
-}
-
-int f_list_fini(FList *self, FVisitor *visitor)
-{
-       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
-
-       return f_list_clear(self, visitor);
-}
-
-int f_list_append(FList *self, FListItem *item)
-{
-       return f_listitem_insert_after(item, f_list_last(self));
-}
-
-int f_list_append_unique(FList *self, FListItem *item, FListItemComparatorFunc 
comparator)
-{
-       if (!f_list_contains(self, comparator, item)) {
-               return f_list_append(self, item);
-       }
-       return -1;
-}
-
-int f_list_clear(FList *self, FVisitor *visitor)
-{
-       return -1;
-}
-
-int f_list_contains(const FList *list, FListItemComparatorFunc comparator, 
const void *comparator_data)
-{
-       return f_list_find_const(list, comparator, comparator_data) != NULL;
-}
-
-int f_list_count(const FList *list)
-{
-       const FListItem *it;
-       int i;
-
-       for(i = 0, it = f_list_first_const(list); it != f_list_end_const(list); 
it = it->next, i++);
-       return i;
-}
-
-int f_list_empty(const FList *list)
-{
-       return list == NULL;
-}
-
-FListItem *f_list_end(FList *self)
-{
-       return (FListItem *)f_list_end_const(self);
-}
-
-const FListItem *f_list_end_const(const FList *self)
-{
-#ifndef F_NOCOMPAT
-       return NULL;
-#else
-       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, NULL));
-
-       return &self->as_FListItem;
-#endif
-}
-
-FListItem *f_list_find(FList *self, FListItemComparatorFunc comparator, const 
void *comparator_data)
-{
-       return (FListItem *)f_list_find_const(self, comparator, 
comparator_data);
-}
-
-const FListItem *f_list_find_const(const FList *list, FListItemComparatorFunc 
comparator, const void *comparator_data)
-{
-       const FListItem *end = f_list_end_const(list);
-       const FListItem *it;
-
-       for(it = f_list_first_const(list); it != end; it = it->next) {
-               if(comparator(it, comparator_data) == 0) {
-                       break;
-               }
-       }
-       return it != end ? it : NULL;
-}
-
-FListItem *f_list_first(FList *self)
-{
-       return (FListItem *)f_list_first_const(self);
-}
-
-const FListItem *f_list_first_const(const FList *self)
-{
-       return (FListItem *)self;
-}
-
-void f_list_foreach(const FList *list, FListItemVisitorFunc visitor, void 
*visitor_data)
-{
-       const FListItem *it;
-
-       for(it = f_list_first_const(list); it != f_list_end_const(list); it = 
it->next) {
-               visitor((FListItem *)it, visitor_data);
-       }
-}
-
-FListItem *f_list_last(FList *self)
-{
-       return (FListItem *)f_list_last_const(self);
-}
-
-const FListItem *f_list_last_const(const FList *self)
-{
-       const FListItem *it;
-
-       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, NULL));
-
-       it = f_list_first_const(self);
-       while(it->next != f_list_end_const(self)) {
-               it = it->next;
-       }
-       return it;
-}
-
-FListItem *f_list_rend(FList *self)
-{
-       return (FListItem *)f_list_rend_const(self);
-}
-
-const FListItem *f_list_rend_const(const FList *self)
-{
-#ifndef F_NOCOMPAT
-       return NULL;
-#else
-       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, NULL));
-
-       return &self->as_FListItem;
-#endif
-}
-
diff --git a/lib/libpacman/util/flist.h b/lib/libpacman/util/flist.h
index 54ec9ea..b818339 100644
--- a/lib/libpacman/util/flist.h
+++ b/lib/libpacman/util/flist.h
@@ -343,58 +343,9 @@ private:
RET_ERR(PM_ERR_WRONG_ARGS, NULL);
}
};
-
#endif /* F_NOCOMPAT */
-
-extern "C" {
#endif /* __cplusplus */

-#ifndef F_NOCOMPAT
-typedef struct __pmlist_t FList;
-typedef struct __pmlist_t FListItem;
-#else
-typedef struct FList FList;
-typedef struct FListItem FListItem;
-#endif
-
-typedef int (*FListItemComparatorFunc)(const FListItem *item, const void 
*comparator_data);
-typedef void (*FListItemVisitorFunc)(FListItem *item, void *visitor_data);
-
-int f_listitem_delete(FListItem *self, FVisitor *visitor);
-
-int f_listitem_insert_after(FListItem *self, FListItem *previous);
-FListItem *f_listitem_next(FListItem *self);
-FListItem *f_listitem_previous(FListItem *self);
-
-FList *f_list_new(void);
-int f_list_delete(FList *self, FVisitor *visitor);
-
-int f_list_init(FList *self);
-int f_list_fini(FList *self, FVisitor *visitor);
-
-#define f_list_add f_list_append
-int f_list_append(FList *self, FListItem *item);
-int f_list_append_unique(FList *self, FListItem *item, FListItemComparatorFunc 
comparator);
-int f_list_clear(FList *self, FVisitor *visitor);
-int f_list_contains(const FList *list, FListItemComparatorFunc comparator, 
const void *comparator_data);
-int f_list_count(const FList *list);
-int f_list_empty(const FList *list);
-FListItem *f_list_end(FList *self);
-const FListItem *f_list_end_const(const FList *self);
-FListItem *f_list_find(FList *self, FListItemComparatorFunc comparator, const 
void *comparator_data);
-const FListItem *f_list_find_const(const FList *self, FListItemComparatorFunc 
comparator, const void *comparator_data);
-FListItem *f_list_first(FList *self);
-const FListItem *f_list_first_const(const FList *self);
-void f_list_foreach(const FList *list, FListItemVisitorFunc visitor, void 
*visitor_data);
-FListItem *f_list_last(FList *self);
-const FListItem *f_list_last_const(const FList *self);
-FListItem *f_list_rend(FList *self);
-const FListItem *f_list_rend_const(const FList *self);
-
-#ifdef __cplusplus
-}
-#endif
-
#endif /* F_LIST_H */

/* vim: set ts=2 sw=2 noet: */
diff --git a/lib/libpacman/util/fptrlist.c b/lib/libpacman/util/fptrlist.c
index 875d9ce..bca5d96 100644
--- a/lib/libpacman/util/fptrlist.c
+++ b/lib/libpacman/util/fptrlist.c
@@ -26,6 +26,211 @@

#include "fstdlib.h"

+#ifndef F_NOCOMPAT
+#define previous prev
+#endif
+
+int f_listitem_delete(FListItem *self, FVisitor *visitor)
+{
+       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
+
+       f_visit(self, visitor);
+       free(self);
+       return 0;
+}
+
+int f_listitem_insert_after(FListItem *self, FListItem *previous)
+{
+       FListItem *next;
+
+       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
+       ASSERT(previous != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
+
+       next = previous->next;
+       previous->next = self;
+       self->next = next;
+       self->previous = previous;
+#ifndef F_NOCOMPAT
+       if (next != NULL)
+#endif
+       next->previous = self;
+       return 0;
+}
+
+FListItem *f_listitem_next(FListItem *self)
+{
+       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, NULL));
+
+       return self->next;
+}
+
+FListItem *f_listitem_previous(FListItem *self)
+{
+       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, NULL));
+
+       return self->previous;
+}
+
+FList *f_list_new()
+{
+#ifndef F_NOCOMPAT
+       return NULL;
+#else
+       FList *self;
+
+       ASSERT((self = f_zalloc(sizeof(*self))) != NULL, return NULL);
+
+       f_list_init(self);
+       return self;
+#endif
+}
+
+int f_list_delete(FList *self, FVisitor *visitor)
+{
+       return f_list_fini(self, visitor);
+}
+
+int f_list_init(FList *self)
+{
+       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
+
+#ifdef F_NOCOMPAT
+       self->as_FListItem.next = self->as_FListItem.previous = 
&self->as_FListItem;
+#endif
+       return 0;
+}
+
+int f_list_fini(FList *self, FVisitor *visitor)
+{
+       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
+
+       return f_list_clear(self, visitor);
+}
+
+int f_list_append(FList *self, FListItem *item)
+{
+       return f_listitem_insert_after(item, f_list_last(self));
+}
+
+int f_list_append_unique(FList *self, FListItem *item, FListItemComparatorFunc 
comparator)
+{
+       if (!f_list_contains(self, comparator, item)) {
+               return f_list_append(self, item);
+       }
+       return -1;
+}
+
+int f_list_clear(FList *self, FVisitor *visitor)
+{
+       return -1;
+}
+
+int f_list_contains(const FList *list, FListItemComparatorFunc comparator, 
const void *comparator_data)
+{
+       return f_list_find_const(list, comparator, comparator_data) != NULL;
+}
+
+int f_list_count(const FList *list)
+{
+       const FListItem *it;
+       int i;
+
+       for(i = 0, it = f_list_first_const(list); it != f_list_end_const(list); 
it = it->next, i++);
+       return i;
+}
+
+int f_list_empty(const FList *list)
+{
+       return list == NULL;
+}
+
+FListItem *f_list_end(FList *self)
+{
+       return (FListItem *)f_list_end_const(self);
+}
+
+const FListItem *f_list_end_const(const FList *self)
+{
+#ifndef F_NOCOMPAT
+       return NULL;
+#else
+       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, NULL));
+
+       return &self->as_FListItem;
+#endif
+}
+
+FListItem *f_list_find(FList *self, FListItemComparatorFunc comparator, const 
void *comparator_data)
+{
+       return (FListItem *)f_list_find_const(self, comparator, 
comparator_data);
+}
+
+const FListItem *f_list_find_const(const FList *list, FListItemComparatorFunc 
comparator, const void *comparator_data)
+{
+       const FListItem *end = f_list_end_const(list);
+       const FListItem *it;
+
+       for(it = f_list_first_const(list); it != end; it = it->next) {
+               if(comparator(it, comparator_data) == 0) {
+                       break;
+               }
+       }
+       return it != end ? it : NULL;
+}
+
+FListItem *f_list_first(FList *self)
+{
+       return (FListItem *)f_list_first_const(self);
+}
+
+const FListItem *f_list_first_const(const FList *self)
+{
+       return (FListItem *)self;
+}
+
+void f_list_foreach(const FList *list, FListItemVisitorFunc visitor, void 
*visitor_data)
+{
+       const FListItem *it;
+
+       for(it = f_list_first_const(list); it != f_list_end_const(list); it = 
it->next) {
+               visitor((FListItem *)it, visitor_data);
+       }
+}
+
+FListItem *f_list_last(FList *self)
+{
+       return (FListItem *)f_list_last_const(self);
+}
+
+const FListItem *f_list_last_const(const FList *self)
+{
+       const FListItem *it;
+
+       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, NULL));
+
+       it = f_list_first_const(self);
+       while(it->next != f_list_end_const(self)) {
+               it = it->next;
+       }
+       return it;
+}
+
+FListItem *f_list_rend(FList *self)
+{
+       return (FListItem *)f_list_rend_const(self);
+}
+
+const FListItem *f_list_rend_const(const FList *self)
+{
+#ifndef F_NOCOMPAT
+       return NULL;
+#else
+       ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, NULL));
+
+       return &self->as_FListItem;
+#endif
+}
+
FPtrListItem *f_ptrlistitem_new(void *ptr)
{
FPtrListItem *item = f_zalloc(sizeof(*item));
diff --git a/lib/libpacman/util/fptrlist.h b/lib/libpacman/util/fptrlist.h
index df39f40..f8a1fc0 100644
--- a/lib/libpacman/util/fptrlist.h
+++ b/lib/libpacman/util/fptrlist.h
@@ -33,7 +33,7 @@ extern "C" {
struct __pmlist_t {
struct __pmlist_t *prev;
struct __pmlist_t *next;
-  void *data;
+       void *data;
};

typedef struct __pmlist_t FPtrList;
@@ -46,6 +46,48 @@ typedef struct FPtrListItem FPtrListItem;
#include "util/flist.h"
#include "util/list.h"

+#ifndef F_NOCOMPAT
+typedef struct __pmlist_t FList;
+typedef struct __pmlist_t FListItem;
+#else
+typedef struct FList FList;
+typedef struct FListItem FListItem;
+#endif
+
+typedef int (*FListItemComparatorFunc)(const FListItem *item, const void 
*comparator_data);
+typedef void (*FListItemVisitorFunc)(FListItem *item, void *visitor_data);
+
+int f_listitem_delete(FListItem *self, FVisitor *visitor);
+
+int f_listitem_insert_after(FListItem *self, FListItem *previous);
+FListItem *f_listitem_next(FListItem *self);
+FListItem *f_listitem_previous(FListItem *self);
+
+FList *f_list_new(void);
+int f_list_delete(FList *self, FVisitor *visitor);
+
+int f_list_init(FList *self);
+int f_list_fini(FList *self, FVisitor *visitor);
+
+#define f_list_add f_list_append
+int f_list_append(FList *self, FListItem *item);
+int f_list_append_unique(FList *self, FListItem *item, FListItemComparatorFunc 
comparator);
+int f_list_clear(FList *self, FVisitor *visitor);
+int f_list_contains(const FList *list, FListItemComparatorFunc comparator, 
const void *comparator_data);
+int f_list_count(const FList *list);
+int f_list_empty(const FList *list);
+FListItem *f_list_end(FList *self);
+const FListItem *f_list_end_const(const FList *self);
+FListItem *f_list_find(FList *self, FListItemComparatorFunc comparator, const 
void *comparator_data);
+const FListItem *f_list_find_const(const FList *self, FListItemComparatorFunc 
comparator, const void *comparator_data);
+FListItem *f_list_first(FList *self);
+const FListItem *f_list_first_const(const FList *self);
+void f_list_foreach(const FList *list, FListItemVisitorFunc visitor, void 
*visitor_data);
+FListItem *f_list_last(FList *self);
+const FListItem *f_list_last_const(const FList *self);
+FListItem *f_list_rend(FList *self);
+const FListItem *f_list_rend_const(const FList *self);
+
FPtrListItem *f_ptrlistitem_new(void *data);
int f_ptrlistitem_delete(FListItem *self, FVisitor *visitor);
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to