Bug#1051713: exim4-daemon-heavy 4.96-22: misbehavior in string expansion function reduce combined with inlisti function

Andreas Metzler ametzler at bebt.de
Wed Sep 13 17:50:42 BST 2023


On 2023-09-11 DebianMrt at sgt.at wrote:
> Package: exim4-daemon-heavy
[...]
>    exim -be '${reduce {<\n 1.1.1.1\n2.2.2.2\n3.3.3.3\n4.4.4.4\n4.4.4.4\n}{}{${if !inlisti{$item}{<\n $value}{$value$item\n}{$value}}}}'

>    output is :

>      4.4.4.4  ->  last 4.4.4.4 not matched in list and last value is the output

> Counter check with exim4 4.94.2 :
[...]
>    exim -be '${reduce {<\n 1.1.1.1\n2.2.2.2\n3.3.3.3\n4.4.4.4\n4.4.4.4\n}{}{${if !inlisti{$item}{<\n $value}{$value$item\n}{$value}}}}'

>    output is :

>    1.1.1.1
>    2.2.2.2
>    3.3.3.3
>    4.4.4.4  -> last 4.4.4.4 matches in list and the reduced list is the output  (double 4.4.4.4 removed)


Hello,

I had forwarded this upstream to
https://bugs.exim.org/show_bug.cgi?id=3024 and received diagnosis/help
there.


Short summary follows, but please read the original response there.

This seems to be not directly fixable since inlisti changed and now
modifies $value for more sorts of matching elements than it used to.
Workarounds can be used and perhaps new features be added to provide the
same result with extended expansion syntax.

cu Andreas



More information about the Pkg-exim4-maintainers mailing list