impl prev/next api
This commit is contained in:
parent
de415b0d65
commit
f0e4c84fab
30
include/sl.h
30
include/sl.h
|
@ -398,7 +398,7 @@
|
|||
} \
|
||||
\
|
||||
/* -- skip_find_ */ \
|
||||
int prefix##skip_find_##decl(decl##_t *slist, decl##_node_t *n) \
|
||||
decl##_node_t *prefix##skip_find_##decl(decl##_t *slist, decl##_node_t *n) \
|
||||
{ \
|
||||
((void)slist); /* TODO */ \
|
||||
((void)n); \
|
||||
|
@ -406,7 +406,8 @@
|
|||
} \
|
||||
\
|
||||
/* -- skip_find_gte */ \
|
||||
int prefix##skip_find_gte_##decl(decl##_t *slist, decl##_node_t *n) \
|
||||
decl##_node_t *prefix##skip_find_gte_##decl(decl##_t *slist, \
|
||||
decl##_node_t *n) \
|
||||
{ \
|
||||
((void)slist); /* TODO */ \
|
||||
((void)n); \
|
||||
|
@ -414,7 +415,8 @@
|
|||
} \
|
||||
\
|
||||
/* -- skip_find_lte */ \
|
||||
int prefix##skip_find_lte_##decl(decl##_t *slist, decl##_node_t *n) \
|
||||
decl##_node_t *prefix##skip_find_lte_##decl(decl##_t *slist, \
|
||||
decl##_node_t *n) \
|
||||
{ \
|
||||
((void)slist); /* TODO */ \
|
||||
((void)n); \
|
||||
|
@ -422,19 +424,25 @@
|
|||
} \
|
||||
\
|
||||
/* -- skip_next_node_ */ \
|
||||
int prefix##skip_next_node_##decl(decl##_t *slist, decl##_node_t *n) \
|
||||
decl##_node_t *prefix##skip_next_node_##decl(decl##_t *slist, \
|
||||
decl##_node_t *n) \
|
||||
{ \
|
||||
((void)slist); /* TODO */ \
|
||||
((void)n); \
|
||||
return 0; \
|
||||
if (!slist || !n) \
|
||||
return NULL; \
|
||||
if (n->field.sle_next[0] == slist->slh_tail) \
|
||||
return NULL; \
|
||||
return n->field.sle_next[0]; \
|
||||
} \
|
||||
\
|
||||
/* -- skip_prev_node_ */ \
|
||||
int prefix##skip_prev_node_##decl(decl##_t *slist, decl##_node_t *n) \
|
||||
decl##_node_t *prefix##skip_prev_node_##decl(decl##_t *slist, \
|
||||
decl##_node_t *n) \
|
||||
{ \
|
||||
((void)slist); /* TODO */ \
|
||||
((void)n); \
|
||||
return 0; \
|
||||
if (!slist || !n) \
|
||||
return NULL; \
|
||||
if (n->field.sle_prev == slist->slh_head) \
|
||||
return NULL; \
|
||||
return n->field.sle_prev; \
|
||||
} \
|
||||
\
|
||||
/* -- skip_destroy_ */ \
|
||||
|
|
Loading…
Reference in a new issue