use b_plain use cz/vars split_semicolons() for_vec(i, lines, cstr) cstr l = *i if strchr(l, ';') int indent = line_indent(l) int skip = 0 char *p = l while *p char *p0 = p token_t t = token(&p) if t == NAME && tok_eq(p0, p, "for") skip = 2 eif t == DELIMIT && *p0 == ';' && skip-- == 0 skip = 0 while p0 != l && p0[-1] == ' ' --p0 *p0 = '\0' if !is_blank(l) vec_push(work, tofree(Strdup(l))) while *p == ' ' ++p l = p repeat(indent) *--l = '\t' if !is_blank(l) vec_push(work, l) else vec_push(work, l) swap(lines, work) vecclr(work)