sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit d28973ca33f219614fb416dffb3df226ee32c958
parent f7f1f6e0600b52c03ab4a513b2ff14921ff3f58b
Author: Sascha Silbe <sascha-pgp@silbe.org>
Date:   Tue, 18 Jan 2011 19:24:27 +0100

poll: fix message update vs. already-imported detection

poll_from prepends existing locations to the "new" message, so we can't use
just the first location.

While using the last location would work, calculating the difference should be
fast and is more robust in the face of future changes to poll_from.

Signed-off-by: Sascha Silbe 

Diffstat:
M lib/sup/poll.rb | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/lib/sup/poll.rb b/lib/sup/poll.rb
@@ -115,10 +115,11 @@ EOS
             yield "Deleting #{m.id}"
           elsif action == :add
             if old_m
-              if not old_m.locations.member? m.location
-                yield "Message at #{m.source_info} is an updated of an old message. Updating labels from #{old_m.labels.to_a * ','} => #{m.labels.to_a * ','}"
+              new_locations = (m.locations - old_m.locations)
+              if not new_locations.empty?
+                yield "Message at #{new_locations[0].info} is an update of an old message. Updating labels from #{old_m.labels.to_a * ','} => #{m.labels.to_a * ','}"
               else
-                yield "Skipping already-imported message at #{m.source_info}"
+                yield "Skipping already-imported message at #{m.locations[-1].info}"
               end
             else
               yield "Found new message at #{m.source_info} with labels #{m.labels.to_a * ','}"