On Fri, Jul 22, 2022 at 04:41:54PM -0700, Chris Torek wrote: > > 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? I thought about it, but it seemed cleaner to lift the ternary out to capture the result, too, leading to the if/else-statement I sent in the patch above. If we wanted to change it, I'd probably suggest a more general-purpose strbuf function that implemented this behavior through a single call. But it sounds like supporting the carriage return character was a mistake from the beginning, which simplifies this direction quite a bit, anyways. Thanks, Taylor