ungot
if (ungot != NULL || unget_end) {
if (ungot != NULL) {
struct ungot *ug_next;
static struct ungot *ungot = NULL;
if (ungot == NULL) {
struct ungot *ug = ungot;
ungot = ug->ug_next;
unget_end = (ungot == NULL);
struct ungot *ug = ecalloc(1, sizeof (struct ungot));
ug->ug_next = ungot;
ungot = ug;