commit 4eb5cf1f7a7087463f2898c2c94fbcbb87242e75
parent 75ca131934f1e38852949703163f67e653f51e09
Author: William Morgan <wmorgan-sup@masanjin.net>
Date: Mon, 31 Aug 2009 22:24:05 -0400
rejigger sup-sync logic slightly
Diffstat:
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/bin/sup-sync b/bin/sup-sync
@@ -173,18 +173,22 @@ begin
## decide what to do based on message labels and the operation we're performing
dothis, new_labels = case
- when (op == :restore) && restored_state[m.id] && old_m && (old_m.labels != restored_state[m.id])
- num_restored += 1
- [:update_message_state, restored_state[m.id]]
- when (op == :restore) && restored_state[m.id] && !old_m
- num_restored += 1
- m.labels = restored_state[m.id]
- :add_message
+ when (op == :restore) && restored_state[m.id]
+ if old_m && (old_m.labels != restored_state[m.id])
+ num_restored += 1
+ [:update_message_state, restored_state[m.id]]
+ elsif old_m.nil?
+ num_restored += 1
+ m.labels = restored_state[m.id]
+ :add_message
+ else
+ # labels are the same; don't do anything
+ end
when op == :discard
if old_m && (old_m.labels != m.labels)
[:update_message_state, m.labels]
else
- # don't do anything
+ # labels are the same; don't do anything
end
else
## duplicate behavior of poll mode: if index_state is non-nil, this is a newer