From: Chris Torek Date: Fri, 22 Jul 2022 23:41:54 GMT Subject: Re: [PATCH 2/2] builtin/cat-file.c: support NUL-delimited input with `-z` Message-ID: In-Reply-To: On Fri, Jul 22, 2022 at 4:34 PM Taylor Blau 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