Re: [Exim] Multi-condition ACL statement in a macro possible…

トップ ページ
このメッセージを削除
このメッセージに返信
著者: Philip Hazel
日付:  
To: Robert Kehl
CC: Pat Lashley, exim-users
題目: Re: [Exim] Multi-condition ACL statement in a macro possible?
On Sun, 14 Sep 2003, Robert Kehl wrote:

> This is the intended behaviour IMHO. A macro simply substitutes it's
> name through it's exact contents. An example - you define a multiline
> macro using \ like this:
>
> MYMACRO=warn message = X-Test: YES \
> condition = ${if {$h_subject}{macro test}{yes}{no}}
>
> In your acl you might have:
>
> MYMACRO
> log_message = mymacro triggered.
>
> After macro substitution, it will become:
>
> warn message = X-Test: YES \
> condition = ${if {$h_subject}{macro test}{yes}{no}}
> log_message = mymacro triggered.


Close, but not quite right. What actually happens is that \
continuations are processed very early on. So when Exim reads the two
lines

MYMACRO=warn message = X-Test: YES \
condition = ${if {$h_subject}{macro test}{yes}{no}}

it converts them into

MYMACRO=warn message = X-Test: YES condition = ${if {$h_subject}{macro test}{yes}{no}}

before defining the macro.

--
Philip Hazel            University of Cambridge Computing Service,
ph10@???      Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book:    http://www.uit.co.uk/exim-book