procmail
[Top] [All Lists]

Re: Why was there no error?

2002-01-19 16:59:27
I had this recipe.  Note the typo in the condition:

 * ! H ? ?? formail -rD $size $cachename

why were there no syntax errors logged for it?  ....  But why didn't
" ??" cause a syntax error in the log?

The way the procmail regex engine works (and I don't know whether this
is by accident or design - perhaps Philip knows if it is by design) is
that the '?', '*' and '+' metacharacters do not always act as
metacharacters.

In conditions like yours where you have a sequence such as ' ??', the
first '?' query clearly applies to the space.  The second '?' isn't
legal as a metacharacter there and so, perhaps surprisingly, it acts as
a literal questionmark!  ' ??' is a regular expression that will match
an optional space followed by a question mark.  And ' ???' would be an
optional space followed by an optional question mark.  ' *+??*' would be
zero or more spaces, an optional plus sign, and zero or more question
marks.

Interesting, no?

Martin
-- 
Martin McCarthy                 /</                  PGP key available
    `Procmail Companion'        \>\  http://www.ancient-scotland.co.uk
     Addison Wesley             /</    http://www.ehabitat.demon.co.uk
_______________________________________________
procmail mailing list
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail

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