/* Copyright (c) 1993 Stephen F. White */
#include <stdio.h>
#include <sys/time.h>
#include "config.h"
#include "buf.h"
#include "netio.h"
void
buf_add(Buf *buf, String *str)
{
Line *new;
new = MALLOC(Line, 1);
new->str = str;
new->ptr = str->str;
new->next = 0;
if (!buf->tail) {
buf->tail = new;
buf->head = new;
} else {
buf->tail->next = new;
buf->tail = new;
}
}
void
buf_delhead(Buf *buf)
{
Line *old = buf->head;
if (!old) {
return;
} else {
buf->head = old->next;
if (!old->next) { /* if nothing in queue, */
buf->tail = 0; /* reset tail as well */
}
string_free(old->str);
FREE(old);
}
}
void
buf_init(Buf *buf)
{
buf->head = 0;
buf->tail = 0;
}
void
buf_free(Buf *buf)
{
Line *line, *next;
for (line = buf->head; line; line = next) {
next = line->next;
string_free(line->str);
FREE(line);
}
buf_init(buf);
}