+2001-11-02 Simon Josefsson <jas@extundo.com>
+
+ * gnus-sieve.el (gnus-sieve-script): Use "stop" instead of "elsif"
+ for non-crossposting.
+ (gnus-sieve-crosspost): Default to t to be consistent with other
+ parts of Gnus.
+
2001-11-01 18:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
* mm-util.el (mm-iso-8859-15-compatible): Add inconvertible chars.
For example: \"nnimap:mailbox\""
:group 'gnus-sieve)
-(defcustom gnus-sieve-crosspost nil
+(defcustom gnus-sieve-crosspost t
"Whether the generated Sieve script should do crossposting."
:type 'bool
:group 'gnus-sieve)
such group, a Sieve IF control structure is generated, having the
test as the condition and { fileinto \"group.name\"; } as the body.
-If CROSSPOST is non-nil, concatenate these conditionals
-sequencially, otherwsie with `elsif', causing a match on one group the
-other tests to be skipped.
+If CROSSPOST is nil, each conditional body contains a \"stop\" command
+which stops execution after a match is found.
For example: If the INBOX.list.sieve group has the
(let* ((group (gnus-info-group info))
(spec (gnus-group-find-parameter group 'sieve t)))
(when spec
- (push (concat "if " (gnus-sieve-test spec) " {\n\t"
- "fileinto \"" (gnus-group-real-name group)
- "\";\n}")
+ (push (concat "if " (gnus-sieve-test spec) " {\n"
+ "\tfileinto \"" (gnus-group-real-name group) "\";\n"
+ (if gnus-sieve-crosspost
+ ""
+ "\tstop;\n")
+ "}")
script)))))
- (mapconcat 'identity script (if crosspost "\n" "\nels"))))
+ (mapconcat 'identity script "\n")))
(provide 'gnus-sieve)