[Top] [All Lists]

Re: variables draft (draft-homme-sieve-variables-00.txt)

2003-04-07 14:08:56

   Date: Sun, 06 Apr 2003 07:09:40 -0700 (PDT)
   From: ned(_dot_)freed(_at_)mrochek(_dot_)com

   (1) The ${0}, ${1} all-digit variables should be set and modified by the
       glob-style :matches mechanism in addition to :regex. It really should
       not be necessary to implement regex in order to get the ability to
       set variables based on message inputs. For example:

This leads to ambiguity, however.

What does:

envelope :detail :matches "to" "**"
or how about "*a*"?

do? Is it greedy?

Also, this draft might be a little surprising to implementors since
something like:

           if header :regex "List-ID" ["<alpha(.*)@", "(.*)beta@"] {
             fileinto "lists.${1}"; stop;

can no longer short circut due to:

"The decimal value of the numeric variable name will index the list of
matching strings from the each of the group operators in the latest
regular expression match."

So _all_ regular expressions have to be tried and the last of the
matches causes the binding.

   (5) Other than we decide on something and stick with it, I have no
       preference for modifier ordering.

Modifiers should be omitted from this specification. These are
functions; if we're going to define functions, fine. If not, fine.

There are many other problems with this draft, ranging from i18n
concerns: "Variable names are case insensitive." to ones that will
potentially significant problems later on ("All variables have global