Aaand here's an even prettier version. commit f7d30410d946418a885929f20a498c10e4058243 Author: Edward Z. Yang <ezy...@mit.edu> Date: Tue Aug 21 15:19:11 2012 -0400
Sync and update other threads when Maildir sync-back changes location. Signed-off-by: Edward Z. Yang <ezy...@mit.edu> diff --git a/lib/sup/maildir.rb b/lib/sup/maildir.rb index 0c8c563..050cfaf 100644 --- a/lib/sup/maildir.rb +++ b/lib/sup/maildir.rb @@ -226,7 +226,7 @@ private new_base = (flags.include?("S")) ? "cur" : "new" md_base, md_ver, md_flags = maildir_data orig_path - return orig_path if md_flags == flags + return if md_flags == flags new_loc = File.join new_base, "#{md_base}:#{md_ver},#{flags}" orig_path = File.join @dir, orig_path diff --git a/lib/sup/message.rb b/lib/sup/message.rb index 0616f75..3eeea66 100644 --- a/lib/sup/message.rb +++ b/lib/sup/message.rb @@ -286,10 +286,11 @@ EOS end def sync_back - @locations.each do |l| - if l.valid? - l.sync_back @labels if $config[:sync_back_to_maildir] and l.source.is_a? Maildir - end + if @locations.map { |l| + l.sync_back @labels if l.valid? and $config[:sync_back_to_maildir] and l.source.is_a? Maildir + }.any? + Index.sync_message self, true + UpdateManager.relay self, :updated, self end end _______________________________________________ Sup-devel mailing list Sup-devel@rubyforge.org http://rubyforge.org/mailman/listinfo/sup-devel