procmail
[Top] [All Lists]

Re: ((2^31) -1) scored condition(s) followed by some AND's -- don't work "as expected"

2002-10-13 21:05:18
At 23:24 2002-10-13 -0400, parv wrote:
i thought the following recipe would exit as soon as it hits/scores
the maximum number, but it doesn't (seem to). my understanding
was...

You understood wrong.  See 'man procmailsc'

[snip-snip]
  *   9876543210^0  subj  ??  ()(\<ot\>|off topic|scanner|scan.+elite)
  * $ 9876543210^0  B  ??  ()$Digital_C
  * $               B  ??  ()$Digital_A
  * $               B  ??  ()$Digital_B

Conditions 3 and 4 *MUST* be met, since they ARE NOT SCORED. If you want them skipped with maximal scoring, then make them scored conditions, and they will be.

Look under "MISCELLANEOUS" in 'man procmailsc'. 'plus infinity' and 'negative infinity' have a distinct difference in how they're handled: since procmail condition lines are AND'ed, a FAILURE to match (negative infinity) implies a FALSE, and thus ALL the remaining conditions don't need to be evaluated to know that we should skip this recipe (just as if we'd reached a regular regexp which returned false). Plus infinity merely means that the *SCORED* portion of the conditions don't need to continue to be evaluated ("subsequent weighted conditions will simply be skipped").

so my question is when the 2d condition is met, why is the 3d condition
being checked?  procmail version is 3.22 2001/09/10.

.. becuase the 3rd and 4th conditions are not scored. A hit on maximal scoring (or a build up to a maximal score) merely skips all the other SCORED conditions - it doesn't cause non-scored conditions to be skipped. If it did, THAT would be broken.

---
 Sean B. Straw / Professional Software Engineering

 Procmail disclaimer: <http://www.professional.org/procmail/disclaimer.html>
 Please DO NOT carbon me on list replies.  I'll get my copy from the list.

_______________________________________________
procmail mailing list
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail