m4_divert(-1)m4_dnl ### -*-m4-*- ### ### Basic definitions for distorted.org.uk Exim configuration ### ### (c) 2012 Mark Wooding ### ###----- Licensing notice --------------------------------------------------- ### ### This program is free software; you can redistribute it and/or modify ### it under the terms of the GNU General Public License as published by ### the Free Software Foundation; either version 2 of the License, or ### (at your option) any later version. ### ### This program is distributed in the hope that it will be useful, ### but WITHOUT ANY WARRANTY; without even the implied warranty of ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ### GNU General Public License for more details. ### ### You should have received a copy of the GNU General Public License ### along with this program; if not, write to the Free Software Foundation, ### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. m4_changequote(<:, :>) m4_changecom(<:#:#:>) ###-------------------------------------------------------------------------- ### Output file preamble and postamble. m4_divert(0)m4_dnl ### -*-conf-*- GENERATED FROM /etc/mail/m4/*.m4: DO NOT EDIT! ### ### Exim configuration for distorted.org.uk. m4_divert(1000)m4_dnl ### GENERATED FROM exim4.conf.m4: DO NOT EDIT! m4_divert(-1) ###-------------------------------------------------------------------------- ### Useful macros. ## ONEOF(arg, ...) ## ## Output the first of its arguments that is non-empty. m4_define(<:ONEOF:>, <:m4_ifelse(<:$#:>, <:1:>, <:$1:>, <:$1:>, <::>, <:ONEOF(m4_shift($@)):>, <:$1:>):>) ## DEFCONF(CONF, DEFAULT) ## ## Define config variable CONF, assigning it the DEFAULT value if not ## overridden by `SETCONF'. m4_define(<:DEFCONF:>, <:m4_ifdef(<:CONF_$1:>, <::>, <:m4_define(<:CONF_$1:>, <:$2:>):>):>) ## SETCONF(CONF, VALUE) ## ## Set config variable VALUE. m4_define(<:SETCONF:>, <:m4_define(<:CONF_$1:>, <:$2:>):>) ## FOREACH(what, list) ## ## The LIST is a comma-separated list of things, like an m4 argument list. ## For each item in the list, expand WHAT as if it's the body of a macro with ## the list item as its arguments. In other words, the list item itself can ## be a list of comma-separated items, which are available as $1, $2, ..., ## within WHAT. m4_define(<:_FOREACH:>, <:m4_dnl m4_ifelse(<:$#:>, <:1:>, <:_foreach_func($1):>, <:_foreach_func($1)<::>_FOREACH(m4_shift($@)):>):>) m4_define(<:FOREACH:>, <:m4_dnl m4_pushdef(<:_foreach_func:>, <:$1:>)m4_dnl _FOREACH($2)<::>m4_dnl m4_popdef(<:_foreach_func:>):>) m4_define(<:DIVERT:>, <:m4_dnl m4_divert(m4_indir(<:_div:$1:>))m4_dnl :>) m4_define(<:SECTION:>, <:m4_dnl DIVERT(<:$1:>)m4_dnl m4_ifdef(<:_done:$1:>, <::>, <:m4_dnl ###-------------------------------------------------------------------------- m4_ifdef(<:_head:$1:>, <:m4_indir(<:_head:$1:>):>, <:begin $1:>) m4_define(<:_done:$1:>, <:1:>):>)m4_dnl m4_ifelse(<:$2:>, <::>, <::>, <:m4_dnl DIVERT(<:$1/$2:>)m4_dnl m4_ifdef(<:_done:$1/$2:>, <::>, <:m4_dnl m4_ifdef(<:_head:$1/$2:>, <:<:##:> m4_indir(<:_head:$1/$2:>) :>)m4_define(<:_done:$1/$2:>):>):>):>) 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:>)}} \ $3:>) m4_define(<:KV:>, <:${extract {$1}{$value}$2}:>) m4_define(<:DOMKV:>, <:${extract {$1}{$domain_data}$2}:>) m4_divert(999)m4_dnl ###----- That's all, folks -------------------------------------------------- m4_divert(-1)