On Fri, Jul 22, 2022 at 4:34 PM Taylor Blau <me@xxxxxxxxxxxx> wrote: > The refactoring here is slightly unfortunate, since we turn loops like: > > while (strbuf_getline(&buf, stdin) != EOF) > > into: > > while (1) { > int ret; > if (opt->nul_terminated) > ret = strbuf_getline_nul(&input, stdin); > else > ret = strbuf_getline(&input, stdin); > > if (ret == EOF) > break; > } > > It's tempting to think that we could use `strbuf_getwholeline()` and > specify either `\n` or `\0` as the terminating character. ... How about: int (*get)(struct strbuf *, FILE *); get = opt->nul_terminated ? strbuf_getline_nul : strbuf_getline; while (get(&buf, stdin) != EOF) or similar? Chris