Subject: RE: [Gen-art] gen-art review of draft-ietf-sieve-imapflags-04.txt

From: "Gray, Eric" <[email-masked]>
Date: Mon, 8 May 2006 16:36:05 -0400

--> -----Original Message-----
--> From: Alexey Melnikov [mailto:[email-masked]] 
--> Sent: Monday, May 08, 2006 6:15 AM
--> To: Gray, Eric
--> Cc: [email-masked]; Lisa Dusseault; Cyrus Daboo
--> Subject: Re: [Gen-art] gen-art review of 
--> draft-ietf-sieve-imapflags-04.txt
--> 

--- [SNIP] ---

--> My answers are below, please let me know if you have any 
--> further questions.
--> 
--> >Questions/Comments:
--> >==================
--> >
--> > In section 2.1, you say that spaces are acceptable (MUST 
--> > be always allowed) in flag names.  You also say that a 
--> > string containing a space-separated list of flags (I 
--> > assume flags in this context is the same as flag names) 
--> > is the same as "a string list consisting of the flags."
--> >
--> > I am not sure what this means,
--> >
--> A string list is denoted using ["value1", ..., "valueN"] 
--> notation in Sieve. It is a "list of strings" in usual 
--> programming language sense.
--> 
--> So the text is basically saying that "value1 value 2 ... 
--> valueN" is the same as ["value1", "value2", ..., "valueN"]
--> 
--> > but it seems to say that we MUST allow spaces as valid 
--> > both as part of a flag name and as a separator between 
--> > flag names.
--> >  
--> >
--> IMAP flags/keywords are not allowed to contain spaces 
--> according to RFC 3501.

Although I understand what you mean by string list, now, 
I am still not able to make complete sense of this.

In the third paragraph of section 2.1, you say - 

"The Sieve interpreter SHOULD check the list of flags for validity 
 as described by [IMAP] ABNF. In particular non-ASCII characters 
 are not allowed in flag names. However spaces MUST be always 
 allowed."

However, above you say - 

"IMAP flags/keywords are not allowed to contain spaces 
 according to RFC 3501."

The only way I can reconcile these two statements is by assuming
that "flags" is not the same as "flag names".  This is precisely
the opposite of what I said I was assuming in asking my question
above (I said "I assume flags in this context is the same as flag 
names").

>From your answer above, it seems that by "flags", you may mean
"flag values" as opposed to "flag names" as I had assumed.  Is
it possible for you to be more specific, or is it just assumed 
that anyone reading this specification would already know what 
these terms mean?

-->
 
--- [SNIP] ---

--> 
--> >Also - are all of the values, in the section 4 examples, 
--> valid flag-names?
--> >  
--> >
--> Yes. IMAP allows for any alpha-numeric value to be used as 
--> a keyword name.

What has me confused here is that the IMAP reference (RFC 3501)
says the following:

'All system flags begin with "\".'

Does that mean that the flag-names here are not "system flags",
or does it mean that the examples list "flag values" and not 
"flag names"?

--> 

--- [SNIP] ---

_______________________________________________
Gen-art mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/gen-art

---

From: Alexey Melnikov <[email-masked]>
Date: Tue, 09 May 2006 13:30:47 +0100

>--> My answers are below, please let me know if you have any 
After reading your comments below I think I understand why you are 
confused now.
Flag is just a named boolean variable, it is either set or not. So when 
I write "flag" and "flag name" I mean the same thing.

> are not allowed in flag names. However spaces MUST be always 
I think the last sentence is the cause of your confusion. Spaces are not 
allowed in flag names according to RFC 3501, but that draft wants to 
allow spaces in a string describing list of flags (Remember, for this 
extension ["flag1", "flag2"] is the same as "flag1 flag2" or "flag2 
flag1"). So, how about rewriting the original paragraph:

   The Sieve interpreter SHOULD check the list of flags for validity as
   described by [IMAP] ABNF. In particular non-ASCII characters are not
   allowed in flag names. However spaces MUST be always allowed.
   Multiple spaces between flag names MUST be treated as a single space
   character, leading and trailing spaces MUST be ignored.
   A string containing a space-separated list of flags is equivalent to
   a string list consisting of the flags. The last requirement is to
   simplify amalgamation of multiple flag lists.

to read:

   A string containing a space-separated list of flag names is equivalent
   to a string list consisting of the flags. This requirement is to
   simplify amalgamation of multiple flag lists.

   The Sieve interpreter SHOULD check the list of flags for validity as
   described by [IMAP] ABNF. In particular according to [IMAP] non-ASCII
   characters are not allowed in flag names. However spaces MUST be always
   allowed in strings representing a list of flags. In such strings multiple
   spaces between flag names MUST be treated as a single space
   character, leading and trailing spaces MUST be ignored.
?

>that anyone reading this specification would already know what 
The expectation is that anybody reading the document is already familiar 
with IMAP.

>'All system flags begin with "\".'
There are two types of flags: system flags and keywords. System flags 
(flag names) start with \ and are defined by RFC 3501.
Several system flags can trigger special server behavior.
Keywords are any other flags not starting with \. An IMAP client can set 
any keyword on an IMAP server, however it is not possible to set a flag 
starting with \ which is not defined in RFC 3501. Apart from that there 
is no real difference between system flags and keywords.
(This is just a rewording of Section 2.3.2 from RFC 3501)

Does this help to clarify things?