On Tue, Jun 27, 2023 at 04:29:02AM -0400, Jeff King wrote: > Your comment above does make me wonder if strbuf_expand_step() should be > quietly handling "%%" itself. But I guess strbuf_expand() doesn't, and > your branch.c quote-literal example probably would not want that > behavior. Er, nope, strbuf_expand() does handle "%%" itself. It really feels like we'd want strbuf_expand_step() to do so, too, then. Even if we had two variants (a "raw" one which doesn't handle "%%" so that branch.c could use it, and then another that wrapped it to handle "%%"). -Peff