/* Copyright (c) 1993 Stephen F. White */ #include "cool.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); }