From: Mark Wooding Date: Sat, 4 May 2024 14:39:25 +0000 (+0100) Subject: defs.m4: Factor out the apodosis/haeresis handling in `LOOKUP_DOMAIN'. X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/exim-config/commitdiff_plain/dc957579e1011086c1cd7d82d1cfe20894bfd0c0 defs.m4: Factor out the apodosis/haeresis handling in `LOOKUP_DOMAIN'. --- diff --git a/defs.m4 b/defs.m4 index f83e2e6..8be119d 100644 --- a/defs.m4 +++ b/defs.m4 @@ -142,6 +142,20 @@ CLRSEP<::>FOREACH(<:SEP(:)$:><:1:>, <:$1:>):>) m4_define(<:WARNING_HEADER:>, <:add_header = X-CONF_header_token-Warning: $1 $2:>) +## _LOOKUP_ARGS([if-found], [if-not-found], [default]) +## +## Processing for lookup arguments. Use as +## +## ${lookup {K} ST {F} _LOOKUP_ARGS(...)}$. +## +## IF-FOUND defaults to `{$value}'; IF-NOT-FOUND defaults to DEFAULT, which +## defaults to `{}'. +m4_define(<:_LOOKUP_ARGS:>, + <:m4_ifelse(<:$1$2$3:>, <::>, <::>, + <:$1$2:>, <::>, <:{$value}$3:>, + <:$2:>, <::>, <:$1$3:>, + <:$1$2:>):>) + ## LOOKUP_DOMAIN(dom, [if-found], [if-not-found]) ## ## Look up DOM in the master domains file. If it's found, put the @@ -152,9 +166,7 @@ m4_define(<:WARNING_HEADER:>, m4_define(<:LOOKUP_DOMAIN:>, <:if exists{CONF_sysconf_dir/domains.conf} \ {${lookup {$1}partial0-lsearch{CONF_sysconf_dir/domains.conf} \ - m4_ifelse(<:$2$3:>, <::>, <::>, - <:$2:>, <::>, <:{$value}$3:>, - <:$2$3:>)}} \ + _LOOKUP_ARGS(<:$2:>, <:$3:>)}} \ $3:>) ## KV(key, result)