From 4eb5cf1f7a7087463f2898c2c94fbcbb87242e75 Mon Sep 17 00:00:00 2001 From: William Morgan Date: Mon, 31 Aug 2009 22:24:05 -0400 Subject: [PATCH] rejigger sup-sync logic slightly --- bin/sup-sync | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/bin/sup-sync b/bin/sup-sync index 003a72d..ddcf8c5 100755 --- 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 -- 2.43.0