Re: [sieve] Variable expansion issues

NED+mta-filters@mauve.mrochek.com Thu, 22 October 2009 15:58 UTC

Return-Path: <NED+mta-filters@mauve.mrochek.com>
X-Original-To: sieve@core3.amsl.com
Delivered-To: sieve@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 14B433A6A7F for <sieve@core3.amsl.com>; Thu, 22 Oct 2009 08:58:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UvlbCfdUfoxu for <sieve@core3.amsl.com>; Thu, 22 Oct 2009 08:58:46 -0700 (PDT)
Received: from mauve.mrochek.com (mauve.mrochek.com [66.59.230.40]) by core3.amsl.com (Postfix) with ESMTP id 4D18D3A6A75 for <sieve@ietf.org>; Thu, 22 Oct 2009 08:58:46 -0700 (PDT)
Received: from dkim-sign.mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01NF6NKB9B6O0023TT@mauve.mrochek.com> for sieve@ietf.org; Thu, 22 Oct 2009 08:58:54 -0700 (PDT)
Received: from mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01NF2XJNXWHS0000BI@mauve.mrochek.com> (original mail from NED@mauve.mrochek.com) for sieve@ietf.org; Thu, 22 Oct 2009 08:58:51 -0700 (PDT)
Date: Thu, 22 Oct 2009 08:52:03 -0700
From: NED+mta-filters@mauve.mrochek.com
In-reply-to: "Your message dated Thu, 22 Oct 2009 17:26:25 +0200" <4AE079A1.4010101@rename-it.nl>
To: Stephan Bosch <stephan@rename-it.nl>
Message-id: <01NF6NK9J0DQ0000BI@mauve.mrochek.com>
MIME-version: 1.0
Content-type: TEXT/PLAIN; format="flowed"
Content-transfer-encoding: 7bit
References: <20091006155529.GB30158@schlund.de> <01NEKCVGKSCW0000BF@mauve.mrochek.com> <4AE079A1.4010101@rename-it.nl>
Cc: sieve@ietf.org
Subject: Re: [sieve] Variable expansion issues
X-BeenThere: sieve@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: SIEVE Working Group <sieve.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/sieve>, <mailto:sieve-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sieve>
List-Post: <mailto:sieve@ietf.org>
List-Help: <mailto:sieve-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sieve>, <mailto:sieve-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 22 Oct 2009 15:58:47 -0000

> Hi Ned,

> NED+mta-filters@mauve.mrochek.com wrote:
> > I actually disagreed with the exclusion of variables from the first argument to
> > set here. But that's water long since under the bridge.
> >
> [...]
> >
> > Since I disagree with the exclusion of set, I also am opposed to this
> > expansion. And even if I were to agree to this in principle (which I don't),
> > I would still object to this change on the grounds that it makes
> > currently conforming implementation nonconformant for no good reason.
> >
> [...]
> >
> > I understand the logic behind such exclusions. I just don't agree that the
> > supposed benefits are worth the loss in flexibility.
>  >

> Although I tend to agree with your appreciation for flexibility, I also
> value consistency. My implementation does not support constructing
> variable names with variable substitutions anywhere, since I assumed all
> variable name arguments to have similar requirements as the set
> command's variable name argument (e.g. for hasflag). Now I am wondering
> whether I should implement support for this anyway. Did you?

Well, I wouldn't go so far as to say "implement support", because that sounds
like a bunch of work. The routine in my implementation that computes parameter
values takes an argument specifying whether or not to perform variable
expansion in a given case. So for me changing the semantics so that, say, the
first argument of set allows variable expansions is simply a matter of changing
FALSE to TRUE in one call.

I even have the parameter set to TRUE for arguments to body, but if you
actually use a variable substitution in such an argument you're very likely to
get a run time error. As I explained previously, the alternative was not to
implement any form of body test.

				Ned