[Top] [All Lists]

Re: [sieve] Notify (RFC 5435) questions

2009-10-05 17:53:39
On Mon, 5 Oct 2009, Barry Leiba wrote:
But I still contend the definition in 5229 of what bits of the core
5228 syntax can be replaced by variables isn't sufficiently clear.
Unfortunately, (1) we all know what we meant, and (2) neither of us
has yet come up with text that cleanly fixes the issue.

As an aside, there *is* an unarguable erratum in 5229: where the text
says "multi-line-dotstuff" it should be "multiline-dotstart", and
where it says "multi-line-literal" it should say "multiline-literal".

Yep, those are clearly typos.

For an example of the problem of clarity, let's look at an example from 

          fileinto "INBOX.lists.${2}"; stop;

I contend that's not valid from a strict reading of the grammar,
though we clearly want to allow it.  We've said that a variable can
stand in for a "quoted-string", but we did not say it could stand in
for a PORTION of a quoted string -- specifically, for a quoted-text
construction (and I'm not sure even that would do it, given the 5228

Umm, what?  5229, section 3p2 says:
   When a string is evaluated, substrings matching variable-ref SHALL be
   replaced by the value of variable-name.

*Substrings* matching variable-ref are replaced.  That seems to me to be 
an explict statement declaration that it "stands in" for a portion of a 
string.  Where do you see syntax or requirements that say that the entire 
string must match the variable-ref syntax?

I'll also note that since we don't include "number" in the
constructions that can be substituted, we can't use variables in the
"size" test, for example.  So this is syntactically invalid:

       if size :over ${max} {

I'm not sure whether or not that was intended.

I seemed clear enough to me at the time.  The fact that we call out the 
syntax elements for quoted-string and multiline strings would seem to back 
up that people knew we were just talking about strings.

Philip Guenther

sieve mailing list