/* singly linked list routines */
/* written by Xiayi Edwards */
/* released to the public domain */
#include
#include
#include
#include "dlist.h"
void dlistDefaults(DLIST * dlist)
{
return;
}
void dlistInit(DLIST * dlist)
{
dlist->last = malloc(sizeof(struct pointers));
dlist->begin = dlist->last;
dlist->begin->p2 = NULL;
return;
}
void dlistAddNode(DLIST * dlist, void *data, size_t len)
{
dlist->last->p1 = malloc(len);
memcpy(dlist->last->p1, data, len);
dlist->last->p2 = malloc(sizeof(struct pointers));
dlist->last = dlist->last->p2;
dlist->last->p2 = NULL;
return;
}
void *dlistFirst(DLIST * dlist)
{
dlist->last = dlist->begin->p2;
if (dlist->begin->p2 == NULL)
{
return (NULL);
}
return (dlist->begin->p1);
}
void *dlistNext(DLIST * dlist)
{
void *rp;
if (dlist->last->p2 == NULL)
{
return (NULL);
}
rp = dlist->last->p1;
dlist->last = dlist->last->p2;
return (rp);
}
void dlistTerm(DLIST * dlist)
{
return;
}
@EOT:
---
* Origin: X (3:711/934.9)
|