21 #ifndef __LINK_T_DEFINED
22 typedef struct s_link_t
24 void* item; /* the item associated with the link */
25 struct s_link_t* next; /* address to the next link */
26 struct s_link_t* prev; /* address to the prev link */
28 #define __LINK_T_DEFINED
31 typedef struct s_lstrings
33 const char* item; /* not used */
34 link_t next; /* point to the last node of the lstrings */
35 link_t prev; /* point to the first node of the lstrings */
36 int size; /* the number of node contained by the lstrings */
39 }s_lstrings_t,* lstrings_t;
45 lstrings_rewind(lstrings_t lstrings);
48 lstrings_unwind(lstrings_t lstrings);
51 lstrings_clear(lstrings_t lstrings);
54 lstrings_free(lstrings_t* lstrings_ptr);
57 lstrings_push_front(lstrings_t lstrings, const char* string);
60 lstrings_push_back(lstrings_t lstrings, const char* string);
63 lstrings_pop_back(lstrings_t lstrings);
66 lstrings_pop_front(lstrings_t lstrings);
69 lstrings_remove(lstrings_t lstrings, const char* string);
72 lstrings_get_size(lstrings_t lstrings);
74 lstrings_contains(lstrings_t lstrings, const char* string);
77 lstrings_is_empty(lstrings_t lstrings);
80 lstrings_move_next(lstrings_t lstrings);
83 lstrings_get(lstrings_t lstrings);
86 lstrings_set(lstrings_t lstrings, const char* string);
89 lstrings_get_at(lstrings_t lstrings, int pos);
92 lstrings_set_at(lstrings_t lstrings, int pos, const char* string);
95 lstrings_move_prev(lstrings_t lstrings);
98 lstrings_seek(lstrings_t lstrings, int offset, int whence);
101 lstrings_tell(lstrings_t lstrings);
104 lstrings_getpos(lstrings_t lstrings, int* pos);
107 lstrings_setpos(lstrings_t lstrings, int pos);
110 lstrings_get_front(lstrings_t lstrings);
113 lstrings_get_back(lstrings_t lstrings);
116 lstrings_insert_after(lstrings_t lstrings, const char* what, const char* where);
119 lstrings_insert_before(lstrings_t lstrings, const char* what, const char* where);
122 lstrings_to_cstr(lstrings_t lstrings);
130 #endif /* !__lstrings_H */