Thanks for that patch: it's a good move forward for i18n. Some suggestions: * Today I fixed the bug with "%%" and the 'error' function, so there's no need for a FIXME or a workaround any more. * In strings.texi, reorder the format spec description so that it matches the textual order of a format spec. This should lessen confusion. * Allow field numbers in a %% spec. All other components of a format spec are allowed in %%, so odd to report an error for just field numbers. * There is no need for a special diagnostic for field numbers greater than PTRDIFF_MAX. Just use the same diagnostic other too-large field numbers use. This avoids a need for an alloca. * Reword "Invalid field number `0'" to "Invalid format field number 0" to make it more obvious that it's a format and there's no need to quote the 0. Proposed further patch attached (it addresses the above points), along with a copy of your patch rebased to current master for convenience.