[Top] [All Lists]

Re: [sieve] I-D Action: draft-ietf-sieve-include-07.txt

2011-07-08 01:57:50
Uploaded -08 with these changes, thank you!

On Tue, Jul 5, 2011 at 12:20 PM, Stephan Bosch 
<stephan(_at_)rename-it(_dot_)nl> wrote:
Op 5-7-2011 18:59, Aaron Stone schreef:

On Tue, Jul 5, 2011 at 9:47 AM,<internet-drafts(_at_)ietf(_dot_)org>  wrote:

A URL for this Internet-Draft is:

At long last, I've updated the Include draft. Thanks to Stephan Bosch,
whose comments from many months ago I incorporated into this revision.

Ah nice :)

I have three issues still:

## ISSUE 1:

I've fed the examples to my compiler and it still finds a few familiar

* First example starting at page 8:

spam_tests: line 6: error: the reject command requires 1 positional
argument(s), but 0 is/are specified.
default: line 4: error: failed to validate included :global script

* Third example starting at page 11:

active: line 5: error: missing semicolon ';' after set command.
active: line 8: error: missing semicolon ';' after set command.
active: line 13: error: unknown command 'fileinto' (only reported once at
first occurence).
active: error: validation failed.

When I fix those, more errors follow:

active: line 3: error: invalid variable identifier 'test-mailbox'.

And, thereafter:

spam_checks: line 2: error: invalid variable identifier 'test-mailbox'.
spam_checks: line 6: error: invalid variable name 'test-mailbox'.
active: line 6: error: failed to validate included script 'spam_checks'.

* Fifth example starting at page 13:

example5: line 9: error: expected end of command ';' or the beginning of a
compound block '{', but found '}'.
(missing semicolon after vacation command)

## ISSUE 2:

While I was working on this, I thought of something that is not explicitly
addressed in the document (correct me if I'm wrong). Initially I had
forgotten to check for the validity of the global command's value argument
and now I am wondering: what is the exact syntax of that argument? Logic
dictates that this is simply an 'identifier' as used in RFC5229 and defined
in RFC5228, since only simple variables make any sense. I can imagine though
that at some point more namespaces are defined by new extensions and some
people may assume that the variable name in the value argument can have a
namespace prefix as defined in RFC5229. Some may even allow to make match
values global. This would make the following script legal:

require "include";
require "variables";
require "frop";   # This jolly extension defines a new (writable) namespace
called 'frop'

global "normal";
global "frop.abnormal";

global "0";
if header :matches "from" "*" {  }

Something similar is true for the global namespace:

set "global.frop.abnormal" "Frop!";
set "global.0" "Friep!";

Although the above is pretty far-fetched and stupid, I think it is better
when this is excluded explicitly by stating the argument's exact syntax
instead of calling it only a 'variable name' (much like Section 4 in

Is this the paragraph that needs work?

   A variable has global scope in all scripts that have declared it with
   the "global" command.  If a script uses that variable name without
   declaring it global, the name specifies a separate, non-global
   variable within that script.

Yeah, that's not terribly concise. I'm struggling a bit to find clear
language for this.

Also the syntax of the sub-items of the global namespace should be
defined explicitly.

I'm not sure what you mean here.

## 'ISSUE' 3:

I've had a few request and questions from users about having an optional
include, i.e. an include directive that is skipped without error if (and
only if) the to-be-included script does not exist. Do you find this a useful
feature? If yes, is it possible to add this to the main draft now or should
there be an 'include-optional' extension that adds an ':optional' tag to the
include command?

Oh, huh. I suppose at least a hack around this would be an empty script?

sieve mailing list