]> git.cworth.org Git - sup/commitdiff
messages in sources with lower ids override those in sources with higher
authorWilliam Morgan <wmorgan-sup@masanjin.net>
Fri, 29 Feb 2008 00:52:38 +0000 (16:52 -0800)
committerWilliam Morgan <wmorgan-sup@masanjin.net>
Fri, 29 Feb 2008 00:52:38 +0000 (16:52 -0800)
lib/sup/index.rb

index 62cfe4bd85b684e9443bee800e3ea1d214abc334..47b2bb599e1fdd6a3d9f4f71099ef4d1471a3d56 100644 (file)
@@ -190,6 +190,11 @@ EOS
     ## flags. this allows messages sent to mailing lists to have their header
     ## updated and to have flags set properly.
     ##
+    ## minor hack: messages in sources with lower ids have priority over
+    ## messages in sources with higher ids. so messages in the inbox will
+    ## override everyone, and messages in the sent box will be overridden
+    ## by everyone else.
+    ##
     ## written in this manner to support previous versions of the index which
     ## did not keep around the entry body. upgrading is thus seamless.
     entry ||= {}
@@ -198,7 +203,7 @@ EOS
     ## if we are a later version of a message, ignore what's in the index,
     ## but merge in the labels.
     if entry[:source_id] && entry[:source_info] && entry[:label] &&
-      ((entry[:source_id].to_i != source_id) || (entry[:source_info].to_i < m.source_info))
+      ((entry[:source_id].to_i > source_id) || (entry[:source_info].to_i < m.source_info))
       labels = (entry[:label].split(/\s+/).map { |l| l.intern } + m.labels).uniq
       Redwood::log "found updated version of message #{m.id}: #{m.subj}"
       Redwood::log "previous version was at #{entry[:source_id].inspect}:#{entry[:source_info].inspect}, this version at #{source_id.inspect}:#{m.source_info.inspect}"