summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--alot/db/manager.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/alot/db/manager.py b/alot/db/manager.py
index 148cfe2a..efd70e70 100644
--- a/alot/db/manager.py
+++ b/alot/db/manager.py
@@ -60,12 +60,14 @@ class _DBWriteList:
def _do_tag_add(self, db, tags, query):
for msg in db.messages(query):
msg_tags = msg.tags
- msg_tags |= tags
+ op_tags = tags - msg_tags
+ msg_tags |= op_tags
def _do_tag_remove(self, db, tags, query):
for msg in db.messages(query):
msg_tags = msg.tags
- msg_tags -= tags
+ op_tags = tags & msg_tags
+ msg_tags -= op_tags
def _do_tag_set(self, db, tags, query):
for msg in db.messages(query):