On Thu, Sep 21, 2023 at 12:09:10PM -0700, Junio C Hamano wrote:
Oswald Buddenhagen <oswald.buddenhagen@xxxxxx> writes:
fwiw, this is currently the only message that actually uses the %s=%s
format, so as of now, factoring out the argument names has only
theoretical value.
I am not sure I follow, if you mean that the programmer needs to
pass "--show-current-patch" only once if we used something like
"%1$s=%2s and %1$s=%3s", I agree that it probably has little value.
no, i mean that that the usual pattern is just "options '%s' and '%s'
cannot be used together". this format string is indeed used many times,
so it makes sense to factor out the option names to avoid duplication of
translatable strings. not so here. but this particular case is still a
lot less specialized than many of the other strings replaced by the
referenced patch, and it's at least plausible that further uses would be
added at some point, so i left it as-is.
i thought about the duplication of the option string as well, but
compilers should merge the string constants, so that part is indeed
de-duplicated. the cost of the extra pointer push could be avoided by
use of the %1$s syntax, but afaict that's unprecedented in git, and i
kind of expect that some printf implementation would throw up from it.
also, it might reduce the chance of the format being used in another
place, but who knows.
regards