? reset_seen.patch
Index: bsfilter
===================================================================
RCS file: /home/akira/cvsroot/hack/bsfilter/bsfilter,v
retrieving revision 1.1.1.7
retrieving revision 1.1.1.7.2.1
diff -u -r1.1.1.7 -r1.1.1.7.2.1
--- bsfilter	2 Sep 2003 10:14:37 -0000	1.1.1.7
+++ bsfilter	9 Sep 2003 12:11:17 -0000	1.1.1.7.2.1
@@ -1491,6 +1491,7 @@
                      ["--imap-folder-spam", GetoptLong::REQUIRED_ARGUMENT],
                      ["--imap-fetch-unseen", GetoptLong::NO_ARGUMENT],
                      ["--imap-fetch-unflagged", GetoptLong::NO_ARGUMENT],
+                     ["--imap-reset-seen-flag", GetoptLong::NO_ARGUMENT],
                      ["--homedir", GetoptLong::REQUIRED_ARGUMENT],
                      ["--config-file", GetoptLong::REQUIRED_ARGUMENT],
                      ["--db", GetoptLong::REQUIRED_ARGUMENT],
@@ -1873,6 +1874,11 @@
 #    $message_fh.printf("set_delete_flag %d\n", @uid) if ($options["verbose"])    
     @imap.uid_store(@uid, "+FLAGS", [:Deleted])
   end
+
+  def unset_seen_flag
+#    $message_fh.printf("unset_seen_flag %d\n", @uid) if ($options["verbose"])    
+    @imap.uid_store(@uid, "-FLAGS", [:Seen])
+  end
 end
 
 def main
@@ -2039,9 +2045,11 @@
               imapm.insert_rfc822_header!("X-Spam-Probability:", sprintf("%f", token_db.probability))
             end
             if (updated)
+	      imapm.unset_seen_flag if $options["imap-reset-seen-flag"] && !token_db.spam_flag
               imapm.append(target_mailbox)
               imapm.set_delete_flag
             elsif (target_mailbox != mailbox)
+	      imapm.unset_seen_flag if $options["imap-reset-seen-flag"] && !token_db.spam_flag
               imapm.copy(target_mailbox)
               imapm.set_delete_flag
             end
