Typically the code looks for an element to occur again
void
prlex(FILE *fp, struct wordent *sp0)
{
    struct wordent *sp = sp0->next;
    for (;;) {
        (void) fprintf(fp, "%s", vis_str(sp->word));
        sp = sp->next;
        if (sp == sp0)
            break;
        if (sp->word[0] != '\n')
            (void) fputc(' ', fp);
    }
}