From: Taylor Blau Date: Mon, 25 Jul 2022 23:39:14 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 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