Don't set message flags unless they have changed.
authorChris Hanson <org/chris-hanson/cph>
Wed, 10 May 2000 16:53:19 +0000 (16:53 +0000)
committerChris Hanson <org/chris-hanson/cph>
Wed, 10 May 2000 16:53:19 +0000 (16:53 +0000)
v7/src/imail/imail-core.scm

index b168b4af574e26e8c8512d93ef9012668643a7ab..167f84592e32106965ce8af06ccb3551ab96c446 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;; $Id: imail-core.scm,v 1.50 2000/05/08 20:32:50 cph Exp $
+;;; $Id: imail-core.scm,v 1.51 2000/05/10 16:53:19 cph Exp $
 ;;;
 ;;; Copyright (c) 1999-2000 Massachusetts Institute of Technology
 ;;;
 
 (define (set-message-flag message flag)
   (guarantee-message-flag flag 'SET-MESSAGE-FLAG)
-  (set-message-flags! message (flags-add flag (message-flags message)))
-  (message-modified! message))
+  (without-interrupts
+   (lambda ()
+     (let ((flags (message-flags message)))
+       (if (not (flags-member? flag flags))
+          (set-message-flags! message (cons flag flags))))
+     (message-modified! message))))
 
 (define (clear-message-flag message flag)
   (guarantee-message-flag flag 'SET-MESSAGE-FLAG)
-  (set-message-flags! message (flags-delete! flag (message-flags message)))
-  (message-modified! message))
+  (without-interrupts
+   (lambda ()
+     (let ((flags (message-flags message)))
+       (if (flags-member? flag flags)
+          (set-message-flags! message (flags-delete! flag flags))))
+     (message-modified! message))))
 
 (define (folder-flags folder)
   (let ((n (folder-length folder)))