Matthieu Moy [off-list ref] writes:
OTOH, you are now accepting %(atom:) as a synonym to %(atom), and it's
not clear whether this is a deliberate decition.
I would say so. When the caller wants to reject %(atom:), the
caller can tell it by checking val[0] == '\0' and reject that.
So it is better if you did not do this:
if (!body[1]) {
/* "atom_name:" */
*val = NULL;
return 1;
}
which robs that information from the caller. It should be
sufficient to just drop the check that allows "colorx" when
expecting "color" without making any other change, I would think.