On Wed, Dec 06, 2023 at 02:25:01PM -0500, Taylor Blau wrote: > On Wed, Dec 06, 2023 at 06:07:29PM +0100, René Scharfe wrote: > > > It's not perfect > > > of course, but would at least ensure that we can easily convert things > > > over time without having to duplicate the exact message everywhere. > > > > Maybe the simplest option would be to use a macro, e.g. > > > > #define INCOMPATIBLE_OPTIONS_MESSAGE \ > > _("options '%s' and '%s' cannot be used together") > > > > It could be used with both error() and die(), and the compiler would > > still ensure that two strings are passed along with it, but I don't know > > how to encode that requirement in the macro name somehow to make it > > self-documenting. Perhaps by getting the number two in there? > > I think that this is a great idea. It nicely solves Patrick's concern > that we have to duplicate this message ID everywhere, and equally solves > yours by calling error() inline instead of having to pass down the > option values. > > I think that including a number in the macro name would be helpful here. Does our i18n tooling know how to extract such messages defined in macros? I have to admit I don't really know how it works under the hood. But if it does work then this looks like a good solution to me. Patrick