--- psiconv/trunk/lib/psiconv/list.c 2000/12/25 22:25:33 79 +++ psiconv/trunk/lib/psiconv/list.c 2001/01/29 21:57:05 98 @@ -74,6 +74,11 @@ return l->cur_len == 0; } +void psiconv_list_empty(psiconv_list l) +{ + l->cur_len = 0; +} + void *psiconv_list_get(const psiconv_list l, psiconv_u32 indx) { if (indx >= l->cur_len) @@ -92,6 +97,23 @@ return 0; } +int psiconv_list_pop(psiconv_list l, void *el) +{ + if (! l->cur_len) + return -PSICONV_E_OTHER; + l->cur_len --; + memcpy(el,((char *)(l->els)) + l->cur_len * l->el_size,l->el_size); + return -PSICONV_E_OK; +} + +int psiconv_list_replace(psiconv_list l, psiconv_u32 indx, const void *el) +{ + if (indx >= l->cur_len) + return -PSICONV_E_OTHER; + memcpy(((char *) (l->els)) + indx * l->el_size,el, l->el_size); + return -PSICONV_E_OK; +} + void psiconv_list_foreach_el(psiconv_list l, void action(void *el)) { psiconv_u32 i; @@ -178,3 +200,5 @@ l->cur_len += extra->cur_len; return 0; } + +