2 * (c) Oleg Puchinin 2006
3 * graycardinalster@gmail.com
10 struct __dlist_entry_t
;
11 struct __dlist_entry_t
{
13 __dlist_entry_t
* next
;
14 __dlist_entry_t
* prev
;
28 inline char * init (char * one
) {
34 char * init (__dlist_entry_t
* one
);
35 char * add_head (char *);
36 char * add_tail (char *);
37 void rm (__dlist_entry_t
*);
39 inline void del (__dlist_entry_t
*entry
) {
43 inline void remove (__dlist_entry_t
*entry
) {
47 void detach (__dlist_entry_t
* one
);
48 char * add_after (__dlist_entry_t
*, char *);
49 char * add_before (__dlist_entry_t
*, char *);
50 char * add_entry_head (__dlist_entry_t
* one
);
51 char * add_entry_tail (__dlist_entry_t
* one
);
52 char * add_entry_after (__dlist_entry_t
*, __dlist_entry_t
*);
53 char * add_entry_before (__dlist_entry_t
*, __dlist_entry_t
*);
54 void foreach (Dfunc_t
);
56 inline __dlist_entry_t
* new_one (char * one
) {
57 __dlist_entry_t
*entry
;
58 entry
= new __dlist_entry_t
;
59 memset (entry
, 0, sizeof (__dlist_entry_t
));
69 inline __dlist_entry_t
* get_head () {
73 inline __dlist_entry_t
* get_tail () {
77 __dlist_entry_t
* get_entry_at (int N
);
78 char * get_at (int N
);
83 __dlist_entry_t
* head
;
84 __dlist_entry_t
* tail
;