That is a very interesting example, and a valid reason to have me retract the #leftoverbits that led to the patch being discussed.
But wouldn't that lead to an awkward conclusion, i.e., hits from "git grep '[^Q]_("[^"]*%[id]' \*.c" are potential bugs that need to be updated to use ngettext().
Of course, we need to exclude messages like "the error code %d was returned" and "you have a bug on line %d", but there seem to be real errors in randomly selected hits from the "git grep" output, e.g.,
add-patch.c: _("Split into %d hunks."), archive-zip.c: return error(_("path too long (%d chars, SHA1: %s): %s"), builtin/checkout.c: die(_("'%s' matched multiple (%d) remote tracking branches"), builtin/credential-store.c: die_errno(_("unable to get credential storage lock in %d ms"), timeout_ms); builtin/describe.c: _("found %i tags; gave up search at %s\n"), builtin/fsck.c: fprintf_ln(stderr, _("Checking connectivity (%d objects)"), max);
You can notice that I started from 'a' and stopped very early in 'b' ;-).
Thanks.