On Wed, Dec 14, 2022 at 11:23:53AM -0500, Jeff King wrote: > It seems like the cleanest fix would be for atom->name to be _just_ the > name, since there's already a separate "args" field. But since that > field is also used for other things, we can't change it easily (e.g., > it's how we find things in the used_atoms array, and clearly %(refname) > and %(refname:short) are not the same thing). > > Instead, we'll teach our error_bad_arg() function to stop at the first > ":". This is a little hacky, as we're effectively re-parsing the name, > but the format is simple enough to do this as a one-liner, and this > localizes the change to the error-reporting code. > > We'll give the same treatment to err_no_arg(). None of its callers use > this atom->name trick, but it's worth future-proofing it while we're > here. For what it's worth, I think that this balance of a somewhat-hacky implementation against a more significant and trickier refactoring is well thought-out and the right decision, IMHO. Thanks, Taylor