From README.UPDATING;
.... There is unfortunately no easy way to use a macro to provide a
list of things that are sometimes negated.
Indeed, I got bitten by this recently, and I'm finding it a bit of a
pain. I had to convert my exim.conf into a Perl script for generating
itself, in fact ...
Can I make a suggestion ? Allow !( ... ) constructs, or some such, in
lists. The effect would be to negate everything inside the list.
Making this work sanely for nested lists where not all the elements
have the same sense would be somewhat harder (particularly the
interaction with the virtual :* rule), but even a version that was
quite literal-minded would be helpful.
Then you could say things like
VIRTUAL_DOMAINS = a.b.c : q.example.com : lsearch;/etc/mail/vdomains
local_domains = myself.example.com : VIRTUAL_DOMAINS
...
# DIRECTORS
system_aliases:
domains = !( VIRTUAL_DOMAINS )
file=/etc/aliases
search_type=lsearch
in a way that means you have to only say each thing once, which is
very valuable for making sure that it's all correct.
Ian.