Chapter 24 documents the transport_filter option. An example is given
where the argv vector for the command comes from an expansion:

  transport_filter = '/bin/cmd${if eq{$host}{a.b.c}{1}{2}}'

  This runs the command /bin/cmd1 if the host name is a.b.c, and
  /bin/cmd2 otherwise. If double quotes had been used, they would have
  been stripped by Exim when it read the option’s value.  When the
  value is used, if the single quotes were missing, the line would be
  split into two items, /bin/cmd${if and eq{$host}{a.b.c}{1}{2}, and
  an error would occur when Exim tried to expand the first one.

I have two problems grokking this:

- I can  find no other place in the spec where it is specifically
  explained what single quotes do, as opposed to double quotes.

- In Section 29.3 on pipe commands (which are supposedly expanded the
  same way), there is this example:

    command = /some/path ${if eq{$local_part}{postmaster}{xx}{yy}}

    will not work, because the expansion item gets split between
    several arguments.  You have to write

    command = /some/path "${if eq{$local_part}{postmaster}{xx}{yy}}"

  So why are double quotes OK here?

-- 
Ian

-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to