It doesn't make their design any better. Their "ad" prefix goes against
common advice of having distinguishable identifiers to avoid mix-ups,
and seems to be a theme that got out of hand. The out-of-order
parameters to advertise seem due to lack of strerror(3) that's no longer
a problem.
Before:
advertise("open", "continuing...", "couldn't read profile: %s",
path);
Could be:
error("couldn't read profile: %s: open: %s, continuing...\n",
path, strerror(errno));
And the "open" is typically dropped as superfluous so there's a
repetitive leading NULL passed a lot.