[Top] [All Lists]

Interaction of encoded-character extension with variables extension

2007-12-21 04:09:04


I am building a Sieve implementation and, while reading the new 3028bis specification, I noticed the new encoded-character extension. Its substitution syntax is somewhat similar to what the variables extension defined ( i.e. ${....} ). I am currently working with draft-ietf-sieve-3028bis-13 and draft-ietf-sieve-variables-08. Now I am wondering how these extensions are supposed to work if both are active. Niether specification mentions this possibility (variables-08 seems to be pretty old already though).

One could define encoded-character substituion to be performed before any variables substitution, making the variables substitution act upon the result of the encoded character substitution. This would make the following possible:

"${hex: 24 7B}foobar}" ==> "${foobar}" ==> "Whatever the foobar variable holds."

Although this is (to my opinion) intuitively the most logical implementation, I can imagine other options in which encoded character and variables substituion is performed in parallel, making use of the fact that both extensions use the same delimiters for marking a substitution. This could make things more efficient, as only one pass is needed to identify substitutions in the string. This makes the above situation result in just "${foobar}" without further substitution. Although the above example is pretty useless and very unlikely to occur in reality, I think it is appropriate for a specification to explicitly note what is to be done in this situation.

Note that I am not trying to revive any old discussion on this topic. I would just like to know what your opion is on this issue and I am hoping that you could make this more explicit in the specification.


Stephan Bosch

<Prev in Thread] Current Thread [Next in Thread>