Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/yahoo/yahoo_list.h

    r277674c rb7d3cc34  
    2121 */
    2222
     23/*
     24 * This is a replacement for the GList.  It only provides functions that
     25 * we use in Ayttm.  Thanks to Meredyyd from everybuddy dev for doing
     26 * most of it.
     27 */
     28
    2329#ifndef __YLIST_H__
    2430#define __YLIST_H__
    2531
    26 /* GLib has linked list already, so I don't see why libyahoo2 has to copy this... */
     32#ifdef __cplusplus
     33extern "C" {
     34#endif
    2735
    28 typedef GList YList;
     36typedef struct _YList {
     37        struct _YList *next;
     38        struct _YList *prev;
     39        void *data;
     40} YList;
    2941
    30 #define y_list_append g_list_append
    31 #define y_list_concat g_list_concat
    32 #define y_list_copy g_list_copy
    33 #define y_list_empty g_list_empty
    34 #define y_list_find g_list_find
    35 #define y_list_find_custom g_list_find_custom
    36 #define y_list_foreach g_list_foreach
    37 #define y_list_free g_list_free
    38 #define y_list_free_1 g_list_free_1
    39 #define y_list_insert_sorted g_list_insert_sorted
    40 #define y_list_length g_list_length
    41 #define y_list_next g_list_next
    42 #define y_list_nth g_list_nth
    43 #define y_list_prepend g_list_prepend
    44 #define y_list_remove g_list_remove
    45 #define y_list_remove_link g_list_remove_link
    46 #define y_list_singleton g_list_singleton
     42typedef int (*YListCompFunc) (const void *, const void *);
     43typedef void (*YListFunc) (void *, void *);
    4744
     45YList *y_list_append(YList * list, void *data);
     46YList *y_list_prepend(YList * list, void *data);
     47YList *y_list_remove_link(YList * list, const YList * link);
     48YList *y_list_remove(YList * list, void *data);
     49
     50YList *y_list_insert_sorted(YList * list, void * data, YListCompFunc comp);
     51
     52YList *y_list_copy(YList * list);
     53
     54YList *y_list_concat(YList * list, YList * add);
     55
     56YList *y_list_find(YList * list, const void *data);
     57YList *y_list_find_custom(YList * list, const void *data, YListCompFunc comp);
     58
     59YList *y_list_nth(YList * list, int n);
     60
     61void y_list_foreach(YList * list, YListFunc fn, void *user_data);
     62
     63void y_list_free_1(YList * list);
     64void y_list_free(YList * list);
     65int  y_list_length(const YList * list);
     66int  y_list_empty(const YList * list);
     67int  y_list_singleton(const YList * list);
     68
     69#define y_list_next(list)       list->next
     70
     71#ifdef __cplusplus
     72}
    4873#endif
     74#endif
Note: See TracChangeset for help on using the changeset viewer.