View Single Post
Old 26 Mar 2020, 03:45 AM   #7
xyzzy
Essential Contributor
 
Join Date: May 2018
Posts: 474
The "stop" they are testing is a variable set earlier to indicate further down that execution is to stop after some additional action. But the code is not ready to stop execution at the point they set it.

Here's the tests I inserted at the beginning of the last edit block before my additional code...

Code:
if anyof(string :is ["${stop}", "${skipinbox}", "${hasmailbox}", "${deletetotrash}", "${spam}"] "Y",
         exists "X-LinkId") {
  stop;
}
That covers all their various test switches where they haven't added stops (although skipinbox and hasmailbox may be redundant). Now the original code I have down there can start with it's own if or remain an elsif. I changed mine to an if.

IMO, it's a shame they didn't "sprinkle" a few underscores in their switch names to help reduce possible naming conflicts with identifiers the user might use in their own code.

I submitted a ticket last night requesting they allow me to turn the new rules stuff back on.

----
Update:
I looked at a copy of the last time I updated my sieve code (I always save a copy) and I noticed they had added the following just before the last edit block (at the end of section 6),
Code:
if string :is "${stop}" "Y" {
#   For backwards compatibility
}
That may be the result of my earlier ticket where I warned them about introducing a syntax error with existing user code that may have started the last edit block with an elsif.

Last edited by xyzzy : 26 Mar 2020 at 07:37 AM.
xyzzy is offline   Reply With Quote