Subject: Re: sieve-06bis

From: Gregory Sereda <[email-masked]>
Date: Tue, 16 Feb 1999 17:13:09 -0500

At 03:11 PM 2/11/99 -0500, Tim Showalter wrote:
>Hi.  This draft has some of the changes folks have asked for.

I have a few comments.

The spec should make a statement concerning the "case" of the
sieve language.  Since there is no statement, I assume that
sieve language is case-sensitive and must be lower case as
shown in the examples.

In draft 6bis...

 The test-list syntax element provides a way of grouping tests.

   Example:  if any-of (not exists ["From", "Date"],
                ^^^^^^ typo, should be anyof
                   header :contains "from" "[email-masked]") {

...
   For convienence, the MATCH-TYPE syntax element  is  defined  here  as
   follows:

   Syntax:   [ < ":is" / ":contains" / ":matches" > <key: string> ]
                                                    ^^^^^^^^^^^^^
This is incorrect, or at least misleading.  This tagged argument does
not take an argument.  This tagged argument does affect the key-list
argument which is positional and 2nd position on all commands.  In
other words, the ":matches" tag does not allow for wild card matchs
on the header-names, only the key-list argument.  This is similar to
the ":compartor" tag, except that it takes an argument.

In general, moving the tagged arguments before the positional arguments
results in some confusion because the tagged arguments and the positional
arguments which they affect may be interspersed with other arguments.
This, I think, makes sieve less intuitive.  Nevertheless, my major need
is that we clearly specify the current sieve and resist the temptation
to tweak the language syntax, except for very good reasons.

...
   The kind of comparison is done, such as whether or not the comparison
   done is case-insensitive, is specified as a comparator argument to
   the test. 
>> add referrence to ADDRESS-PART, for example....
>> For convienence, the ADDRESS-PART syntax element  is  defined  here  as
>> follows:

   Syntax:   < ":localpart" / ":domain" / ":all" > ":localpart"
                                                   ^^^^^^^^^^^^ typo?? remove
...
 Example:  if header :contains "from" "coyote" {
                discard;
             } elsif :contains header ["subject"] ["$$$"] {
                     ^^^^^^^^^^^^^^^^ syntax, header :contains
                discard;
...
Example:  if header :contains ["From"] ["coyote"] {
                redirect "[email-masked]";
             } elsif header "Subject" contains "$$$" {
                            ^^^^^^^^^^^^^^^^^^ syntax, :contains "Subject"
                redirect "[email-masked]";

Greg Sereda

---

From: Tim Showalter <[email-masked]>
Date: 16 Feb 1999 17:36:39 -0500

> Date: Tue, 16 Feb 1999 17:13:09 -0500
> From: Gregory Sereda <[email-masked]>

> sieve language is case-sensitive and must be lower case as

Good point.  I intended case insensitivity but am indifferent.  I'd
better make that clear.  I'll add this to 2.1:

| Tokens in the ASCII range are considered case-insensitive.

If I edit section 2 again and do any significant rewrite I'll add more
discussion of tokens.

> This is incorrect, or at least misleading. 

It is incorrect, and I've removed the key bit.  I don't think that this
is what we want.

> to tweak the language syntax, except for very good reasons.

I agree with you, and I think several other people do as well (this
opinion was stated in Orlando: we don't like it, but we don't feel like
changing it).  I have no problem with allowing tagged arguments anywhere 
on the command line.

> >> For convienence, the ADDRESS-PART syntax element  is  defined  here  as

Oh, @#^&*.  Fixed.

Thanks for the rest of the corrections, they've all been made in the source.

-- 
Tim Showalter <[email-masked]>