Move dlist_add() to lib/llist.c

This commit is contained in:
Rob Landley 2008-01-20 17:34:53 -06:00
parent b1aaba1fc8
commit 6ef04efa85
3 changed files with 18 additions and 16 deletions

View File

@ -8,8 +8,6 @@
ssize_t getline(char **lineptr, size_t *n, FILE *stream);
// llist.c
void llist_free(void *list, void (*freeit)(void *data));
void *llist_pop(void *list); // actually void **list, but the compiler's dumb
struct string_list {
struct string_list *next;
@ -27,6 +25,10 @@ struct double_list {
char *data;
};
void llist_free(void *list, void (*freeit)(void *data));
void *llist_pop(void *list); // actually void **list, but the compiler's dumb
void dlist_add(struct double_list **list, char *data);
// args.c
void get_optflags(void);

View File

@ -30,3 +30,17 @@ void *llist_pop(void *list)
return (void *)next;
}
// Add an entry to the end off a doubly linked list
void dlist_add(struct double_list **list, char *data)
{
struct double_list *line = xmalloc(sizeof(struct double_list));
line->data = data;
if (*list) {
line->next = *list;
line->prev = (*list)->prev;
(*list)->prev->next = line;
(*list)->prev = line;
} else *list = line->next = line->prev = line;
}

View File

@ -70,20 +70,6 @@ static void do_line(void *data)
free(dlist->data);
}
static void dlist_add(struct double_list **list, char *data)
{
struct double_list *line = xmalloc(sizeof(struct double_list));
line->data = data;
if (*list) {
line->next = *list;
line->prev = (*list)->prev;
(*list)->prev->next = line;
(*list)->prev = line;
} else *list = line->next = line->prev = line;
}
static void finish_oldfile(void)
{
if (TT.tempname) replace_tempfile(TT.filein, TT.fileout, &TT.tempname);