]> git.meshlink.io Git - catta/blob - src/rlist.c
rename everything avahi to catta
[catta] / src / rlist.c
1 /***
2   This file is part of catta.
3
4   catta is free software; you can redistribute it and/or modify it
5   under the terms of the GNU Lesser General Public License as
6   published by the Free Software Foundation; either version 2.1 of the
7   License, or (at your option) any later version.
8
9   catta is distributed in the hope that it will be useful, but WITHOUT
10   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11   or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
12   Public License for more details.
13
14   You should have received a copy of the GNU Lesser General Public
15   License along with catta; if not, write to the Free Software
16   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
17   USA.
18 ***/
19
20 #ifdef HAVE_CONFIG_H
21 #include <config.h>
22 #endif
23
24 #include <stdlib.h>
25
26 #include <catta/rlist.h>
27 #include <catta/malloc.h>
28
29 CattaRList* catta_rlist_prepend(CattaRList *r, void *data) {
30     CattaRList *n;
31
32     if (!(n = catta_new(CattaRList, 1)))
33         return NULL;
34
35     n->data = data;
36
37     CATTA_LLIST_PREPEND(CattaRList, rlist, r, n);
38     return r;
39 }
40
41 CattaRList* catta_rlist_remove(CattaRList *r, void *data) {
42     CattaRList *n;
43
44     for (n = r; n; n = n->rlist_next)
45
46         if (n->data == data) {
47             CATTA_LLIST_REMOVE(CattaRList, rlist, r, n);
48             catta_free(n);
49             break;
50         }
51
52     return r;
53 }
54
55 CattaRList* catta_rlist_remove_by_link(CattaRList *r, CattaRList *n) {
56     assert(n);
57
58     CATTA_LLIST_REMOVE(CattaRList, rlist, r, n);
59     catta_free(n);
60
61     return r;
62 }